(malloc) [emacs]: Define as xmalloc.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
6fe533f6
DL
12000-07-14 Dave Love <fx@gnu.org>
2
3 * syntax.c (back_comment): Add null default in switch for pcc.
4
dd7b81cf
KH
52000-07-14 Kenichi Handa <handa@etl.go.jp>
6
0693904a
KH
7 * xfaces.c (realize_x_face): Make fontset using the base of the
8 default'face's fontset, not using the default fontset.
9
dd7b81cf
KH
10 * coding.c (inhibit_iso_escape_detection): New variable.
11 (syms_of_coding): Make it a Lisp variable.
12 (detect_coding_iso2022): If inhibit_iso_escape_detection is
13 nonzero, ignore ISO2022's escape sequence.
14
d5aa31d8
GM
152000-07-14 Gerd Moellmann <gerd@gnu.org>
16
bd23a692
GM
17 * xfns.c (Fx_show_tip): If frame parameters contain a position,
18 use that instead of the mouse position. Add parameters DX and DY.
19
20 * dispextern.h (Fx_show_tip): Adjust number of parameters
21 in prototype.
22
9662da0b
GM
23 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
24 if HELP is a function, call it with OBJECT and POS as parameters
25 to get the help to display.
26 (gen_help_event, kbd_buffer_store_help_event): New functions.
27 (kbd_buffer_get_event): Construct the Lisp help-event differently.
28 (read_char): Call show_help_echo with new parameters.
29
30 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
31 Add prototypes.
32
33 * xterm.c (help_echo_object, help_echo_pos): New variables.
34 (note_mode_line_highlight): Store additional information about the
35 help-echo in help_echo_object and help_echo_pos. Check both
36 `local-map' and `keymap' properties for changing the cursor
37 (note_mouse_highlight): Store additional information about the
38 help-echo in help_echo_object and help_echo_pos.
39 (note_tool_bar_highlight): Set help_echo_object to nil and
40 help_echo_pos to -1.
41 (XTread_socket): Use gen_help_event instead of filling
42 input_events manually.
43 (syms_of_xterm): Staticpro help_echo_object.
44
45 * xmenu.c (menu_highlight_callback): Use
46 kbd_buffer_store_help_event instead of setting up and input_event
47 structure manually.
48
49 * xdisp.c (eval_form): GCPRO argument sexpr.
50 (call_function): New function.
51 (handle_single_display_prop): Use call_function and FUNCTIONP
52 instead of checking whether if font_height is a symbol and
53 using eval_form.
54
55 * eval.c (internal_condition_case_2): New function.
56
57 * lisp.h (FUNCTIONP): New macro.
58 (internal_condition_case_2, call_function): Add prototypes.
59
d5aa31d8
GM
60 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
61 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
62 Always set `arg' member of input_events.
63 (construct_menu_click): Unused function removed.
64
65 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
66
67 * w32term.c (construct_mouse_click, construct_mouse_wheel)
68 (construct_drag_n_drop, x_scroll_bar_handle_click)
69 (w32_read_socket): Always set `arg' member of input_events.
70
71 * keyboard.c (show_help_echo): Use eval_form. Add comment.
72
73 * lisp.h (eval_form): Add prototype.
74
75 * xdisp.c (eval_form): Make it externally visible.
76
0f1a9b23
GM
772000-07-13 Gerd Moellmann <gerd@gnu.org>
78
79 * xterm.c (x_handle_tool_bar_click): Store the frame in the
80 frame_or_window slot of TOOL_BAR_EVENT input events instead of
81 consing. For prefix events, store the frame in the `arg' slot of
82 the event, otherwise store the key there.
83 (XTread_socket): Instead of consing, use the frame_or_window slot
84 of HELP_EVENTs for the frame, and the `arg' slot for the help
85 string.
86
87 * xmenu.c (menu_highlight_callback): Store help string in the
88 `arg' member of the input event; don't cons.
89 (menubar_selection_callback): Use the `arg' slot of input events
90 to queue additional information, instead of consing.
91
92 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
93
94 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
95 TOOL_BAR_EVENTs.
96 (w32_read_socket): Adapt to changes in HELP_EVENTs.
97
98 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
99 input events to queue additional information, instead of consing.
100
101 * keyboard.c (kbd_buffer_gcpro): Renamed from
102 kbd_buffer_frame_or_window. Now used for all Lisp objects
103 referenced from the input queue.
104 (kbd_buffer_store_event): Always use structure assignment for
105 copying input events. Record all Lisp objects referenced from
106 events in kbd_buffer_gcpro.
107 (kbd_buffer_get_event): Construct Lisp `help-echo' events
108 differently from input events. Test for prefix menu_bar_events
109 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
110 event in kbd_buffer_gcpro to nil.
111 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
112 frame_or_window is equal to its arg member as prefix events.
113 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
114 used by an input event to nil.
115 (init_keyboard): Use two times the size of the input queue
116 for kbd_buffer_gcpro.
117 (syms_of_keyboard): Likewise.
118
119 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
120 USER_SIGNAL_EVENT.
121
122 * termhooks.h (struct input_event): Add member `arg'.
123 (MENU_BAR_EVENT): Renamed from menu_bar_event.
124 (USER_SIGNAL_EVENT): Renamed from user_signal.
125
126 * xfaces.c (ASET): Remove definition.
127
128 * lisp.h (AREF, ASET, ASIZE): New macros.
129
130 * fontset.c (AREF, ASIZE): Remove definitions.
131
132 * fns.c (AREF): Remove definition.
133
134 * composite.c (AREF): Remove definition.
135
712eaef2
GM
1362000-07-12 Gerd Moellmann <gerd@gnu.org>
137
d8ee7803
GM
138 * dispnew.c (redraw_overlapped_rows): Add missing local.
139 (scrolling_window): Remove debug code.
140
712eaef2
GM
141 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
142 Before scrolling, turn off a mouse-highlight in the window
143 being scrolled.
144
145 * xterm.c (x_update_window_end): Add parameter
146 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
147 redisplay in XTframe_up_to_date.
148 (x_clear_mouse_face): New function.
149 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
150
151 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
152 current glyph row.
153 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
154 it when any row is written to that contains glyphs highlighted in
155 mouse-face.
156 (update_window): Call the window update end hook with new
157 parameter MOUSE_FACE_OVERWRITTEN_P.
158 (direct_output_for_insert): Give up if row contains mouse-face.
159
160 * dispextern.h (struct redisplay_interface): Add parameter
161 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
162 (clear_mouse_face): New function pointer member.
163
02010917
SM
1642000-07-11 Stefan Monnier <monnier@cs.yale.edu>
165
166 * syntax.c (back_comment): Use one switch rather than a few `if's.
167 Obey open_paren_in_column_0_is_defun_start.
168 When reverting to the `slow' method, try to nicely handle the case
169 of nested comments by checking that the comment-starter we found
170 does indeed match the comment-ender.
171 (scan_sexps_forward, scan_sexps_forward):
172 Ignore excessive opening parenthesis rather than throwing an error.
173
d76c03ea
GM
1742000-07-11 Gerd Moellmann <gerd@gnu.org>
175
176 * doc.c (Fsubstitute_command_keys): Handle case that a GC
177 in Fwhere_is_internal or get_keymap_1 relocates string contents.
178
179 * dispnew.c (direct_output_forward_char): Give up if currently
180 displaying a message instead of the minibuffer contents.
181
182 * xterm.c (x_update_window_begin): No need to turn off the mouse
183 highlight here.
184 (show_mouse_face): Set the mouse_face_p flag of glyph rows
185 depending on whether they contain glyphs highlighted in
186 mouse-face.
187
188 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
189 compare the mouse_face_p flags of both rows.
190
191 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
192
d55ead18
EZ
1932000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
194
195 * keyboard.c (show_help_echo): Accept additional parameter
196 ok_to_overwrite_keystroke_echo.
197 (read_char): Call show_help_echo with a zero
198 ok_to_overwrite_keystroke_echo argument.
199 * keyboard.h (show_help_echo): Update prototype of
200 show_help_echo.
201 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
202 ok_to_overwrite_keystroke_echo argument.
203 * w32menu.c (w32_menu_display_help): Call show_help_echo with
204 non-zero ok_to_overwrite_keystroke_echo argument.
205
df75b1a3
GM
2062000-07-10 Gerd Moellmann <gerd@gnu.org>
207
4b92c49a
GM
208 * xdisp.c (try_window_id): If changes are all below what is
209 displayed in the window, and point is in the window, we still
210 might have to find point on the display.
211
212 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
213 glyphs instead of a single one.
214 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
215 with new argument list.
216 (x_set_glyph_string_gc): Make sure the face's GC is valid.
217
df75b1a3
GM
218 * keymap.c (get_keymap_1): Add comment that this function can GC.
219 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
220 comment that functions can GC.
221 (Fset_keymap_parent): GCPRO arg KEYMAP.
222
4314cf3e
EZ
2232000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
224
225 * msdos.c (XMenuActivate): After exiting the menu, restore the
226 echo area message and erase it.
227
ab49ce15
KH
2282000-07-10 Kenichi Handa <handa@etl.go.jp>
229
230 * fontset.c (Ffontset_info): Make the return value more compatible
231 with that of Emacs 20.
232
090a072f
GM
2332000-07-07 Gerd Moellmann <gerd@gnu.org>
234
235 * eval.c (Fsignal): Handle case that backtrace_list is null.
236
f92de4a6
KH
2372000-07-07 Kenichi Handa <handa@etl.go.jp>
238
239 * ccl.c (Fccl_execute): Typo fixed.
240
dd8888a1
GM
2412000-07-06 Gerd Moellmann <gerd@gnu.org>
242
e5c81191
GM
243 * window.c (window_loop): Add missing gcpro1 local variable.
244
dd8888a1
GM
245 * window.c (Fwindow_list): Reverse list at the end.
246 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
247 means allow windows on OWINDOW's frame, only.
248 (window_loop): Simplified; use Fwindow_list.
249
250 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
251
485266d0
GM
2522000-07-05 Gerd Moellmann <gerd@gnu.org>
253
254 * xterm.c (XTread_socket): Increment handling_signal at the start,
255 decrement it at the end.
256
257 * eval.c (handling_signal): New variable.
258 (Fsignal): Abort if handling_signal is non-zero.
259
260 * lisp.h (handling_signal): External declaration.
261
262 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
263
80fcd514
KR
2642000-07-05 Ken Raeburn <raeburn@gnu.org>
265
266 Sound support for NetBSD through "Linux emulation" support:
267 * config.in (HAVE_SOUNDCARD_H): Undef.
268 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
269 * Makefile.in (LIBSOUND): New variable.
270 (LIBES): Include it.
271 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
272 <soundcard.h>.
273 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
274 elsewhere.
275 (vox_open): Use DEFAULT_SOUND_DEVICE.
276 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
277
d5c5cddd
GM
2782000-07-05 Gerd Moellmann <gerd@gnu.org>
279
280 * print.c (print_error_message): If Vsignaling_function is set,
281 show it in *Messages*.
282
283 * lisp.h (Vsignaling_function): External declaration.
284
285 * eval.c (Vsignaling_function): New variable.
286 (Fsignal): Compute it.
287 (syms_of_eval): Staticpro it.
288
65171e3a
DL
2892000-07-05 Dave Love <fx@gnu.org>
290
291 * syswait.h: Use the autoconf recommended approach. Old code
292 #if'd out in case we need to revert.
293
294 * config.in (HAVE_SYS_WAIT_H): Added.
295
e2c46326
AI
2962000-07-05 Andrew Innes <andrewi@gnu.org>
297
298 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
299 when non-NULL instead of __morecore, to take account of buffer
300 memory. This also solves a problem with spurious memory warnings
301 on Windows.
302
303 * ralloc.c: Make real_morecore non-static.
304
305 * eval.c (internal_condition_case): Comment out abort if
306 interrupt_input_blocked is not zero.
307
308 * makefile.nt: Add support for `bootstrap' and related targets.
309 Include minimal debug info in emacs.exe in release build.
310 Remove all dependencies on lisp.h, and fixup some others.
311
312 * w32.c (init_environment): Install code from 20.7 for providing
313 default values for environment variables, based on the
314 executable's own location.
315 (map_w32_filename): Handle filenames that are longer than
316 MAX_PATH.
317 (sys_socket): Install socket inheritance bug fix from 20.7.
318
319 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
320 here via blockinput.h).
321
a027a91b
SM
3222000-07-05 Stefan Monnier <monnier@cs.yale.edu>
323
e4b31601
SM
324 * w32menu.c (w32_menu_display_help):
325 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
326
327 * keyboard.h (show_help_echo): Declare.
328
329 * keyboard.c (show_help_echo): New function, extracted from read_char.
330 Feval its `msg' argument if it's a cons cell.
331 (read_char): Use it.
4cf8d9d5 332 (follow_key): Pass `autoload' to get_keyelt.
a027a91b
SM
333
334 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
335 (note_tool_bar_highlight, XTread_socket):
336 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
337 (dos_rawgetc):
338 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
339 (note_tool_bar_highlight, w32_read_socket):
340 Do not gratuitously ignore non-string `help-echo' properties.
341
88d75730
GM
3422000-07-05 Gerd Moellmann <gerd@gnu.org>
343
969f7e79
GM
344 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
345
71201b00
GM
346 * window.c (delete_all_subwindows): Reset Vwindow_list.
347
88d75730
GM
348 * xterm.c (x_append_glyph, x_append_composite_glyph)
349 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
350 changes in struct glyph starting 1999-12-27. Some bit-fields of
351 struct glyph were not set, which made glyphs unequal when compared
352 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
353 effects were the result. This also depended on the contents of
354 memory returned by xmalloc. If flickering happens again, activate
355 the code in clear_glyph_row that's in #if 0. If the flickering is
356 gone with that, chances are that it is caused by something
357 similar.
358
359 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
360
361 * dispextern.h: Add some comments.
362
363 * window.c (add_window_to_list): Add parameter LIST.
364 (window_list): Order list so that, for each frame, windows are
365 in canonical order, and so that frames appear in the list in
366 the order given by Vframe_list.
367 (next_window): Reverse the handling of NEXT_P.
368
53654733
GM
3692000-07-04 Gerd Moellmann <gerd@gnu.org>
370
87efd256
GM
371 * window.c (Vwindow_list): New variable.
372 (make_window, delete_window): Set Vwindow_list to nil.
373 (check_window_containing): New function.
374 (window_from_coordinates): Rewritten.
375 (add_window_to_list, window_list, candidate_window_p)
376 (decode_next_window_args, next_window): New functions.
377 (Fnext_window, Fprevious_window): Rewritten in terms of
378 next_window.
379 (Fwindow_list): New function.
380 (Fother_window): Cleaned up.
381 (foreach_window): Add a longer "variable argument list". Let
382 callback function return 0 to indicate that cycling over windows
383 should stop.
384 (foreach_window_1): Likewise.
385 (freeze_window_start): Return int.
386 (init_window): New function.
387 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
388
389 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
390 input_event with bzero.
391 (main): Call init_window.
392
53654733
GM
393 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
394 a menu filter.
395
4a8c194f
KH
3962000-07-04 Kenichi Handa <handa@etl.go.jp>
397
398 * composite.h (make_composition_value_copy): Extern it.
399
400 * composite.c (make_composition_value_copy): New function.
401
402 * editfns.c (Fformat): While copying text properties, make each
403 composition property value a copy.
404
405 * fns.c (concat): While copying text properties, make each
406 composition property value a copy.
407
831a6cb0
GM
4082000-07-03 Gerd Moellmann <gerd@gnu.org>
409
2f516940
GM
410 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
411
aee625fa
GM
412 * fns.c (sweep_weak_table): Mark only objects that are not
413 marked already.
414
831a6cb0
GM
415 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
416 include those frames as candidates which have their focus
417 redirected to the minibuffer frame.
418
d9c4f922
SM
4192000-07-03 Stefan Monnier <monnier@cs.yale.edu>
420
421 * fns.c (Fputhash): Return `value' rather than nil.
422
3780bc22
GM
4232000-06-30 Gerd Moellmann <gerd@gnu.org>
424
97d176db
GM
425 * frame.c (next_frame): Don't check focus redirection in case
426 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
427 unless their focus is redirected, which contradicts the
428 specification of next-frame, and leads to infinite loops in
429 certain situations when cycling through windows with next-window.
430
dca9961d
KH
4312000-06-30 Kenichi Handa <handa@etl.go.jp>
432
433 * coding.c (code_convert_region): Even if the length of text is
434 zero, try to convert it if coding->type is coding_type_ccl.
435 (decode_coding_string, encode_coding_string): Likewise.
436
d5483ab1
GM
4372000-06-28 Gerd Moellmann <gerd@gnu.org>
438
af5c25e1 439 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 440 the display if windows_or_buffers_changed.
af5c25e1
GM
441
442 * dispnew.c (struct row_entry): New structure.
443 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
444 (row_table_size, old_lines, new_lines, old_lines_size)
445 (new_lines_size, run_pool, runs_size, runs): New variables.
446 (add_row_entry): New function.
447 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 448 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
449 holding them in local variables. Use a larger hash table whose
450 size depends on glyph matrix sizes. Don't use bzero to clear the
451 hash table; instead, clear used slots only.
452
453 * fns.c (next_almost_prime): Make it externally visible.
454
455 * lisp.h (next_almost_prime): Add prototype.
456
d5483ab1
GM
457 * s/isc4-0.h (sigunblock): Define.
458
459 * s/sco5.h (sigunblock): Define.
460
93e40f40
DL
4612000-06-27 Dave Love <fx@gnu.org>
462
463 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
464 (moved to osf5-0.h).
465 [!NOT_C_CODE]: Protect string.h stuff.
466
467 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
468 (sys_siglist, NSIG): Definitions moved here from osf1.h.
469
3c4b7685
GM
4702000-06-27 Gerd Moellmann <gerd@gnu.org>
471
97d176db 472 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
473 below the last line from the needed window height.
474
32cad0aa
SM
4752000-06-26 Stefan Monnier <monnier@cs.yale.edu>
476
477 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
478 (Fwidget_get): Use it.
479 (syms_of_fns): Defsubr it.
480
2c69ced2
GM
4812000-06-26 Gerd Moellmann <gerd@gnu.org>
482
1d36487c
GM
483 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
484 display info for XIM.
485 (xim_open_dpy): Likewise.
486 (xim_close_dpy): Don't free the display info's XIM.
487
488 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
489
490 * config.in (USE_XIM): New define.
491
3fc720e4
GM
492 * keymap.c (get_keyelt): For menu-items containing a `:filter
493 FILTER', apply FILTER to the menu-item's definition to get the
494 real definition to use.
495
496 * lisp.h (QCfilter): External declaration.
497
2c69ced2
GM
498 * xfns.c (Fimage_size): New function.
499 (syms_of_xfns): Defsubr it.
500
f978b2a2
AS
5012000-06-26 Andreas Schwab <schwab@suse.de>
502
503 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
504 Fstring_as_unibyte.
505
94cc7892
DL
5062000-06-25 Dave Love <fx@gnu.org>
507
508 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
509 tgetnum.
510
511 * Makefile.in (blockinput.h): Depend on atimer.h.
512 (atimer.h): Depend on systime.h.
513
514 * blockinput.h: Protect against multiple inclusion. Include
515 atimer.h.
516
517 * atimer.h: Protect against multiple inclusion. Include
518 systime.h.
519
520 * lisp.h (swap_in_global_binding): Declare.
521
b8c24556
KR
5222000-06-24 Ken Raeburn <raeburn@gnu.org>
523
524 * process.c (Fopen_network_stream): Turn off atimers for duration
525 of call to connect. (Patch from Gerd.)
526
8cf8560b
DL
5272000-06-23 Dave Love <fx@gnu.org>
528
511c7541
DL
529 * ralloc.c: Maybe include unistd.h
530
8cf8560b
DL
531 * emacs.c (setgrp): Undefine before defining.
532 (malloc_warning, set_time_zone_rule, index): Prototype.
533
534 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
535 HAVE_STRUCT_TIMEZONE.
536
537 * s/osf1.h: Move string.h hack here from alpha.h and make it
538 conditional.
539 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
540 _XOPEN_SOURCE.
541 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
542 (SOCKLEN_TYPE): Don't define.
543
544 * m/alpha.h: Remove string.h hack.
545
546 * s/osf5-0.h: New file.
547
548 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
549 include time.h, done by systime.h.
550 [__FreeBSD__]: Remove redundant includes.
551
3fc720e4 552 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
553 (delete_temp_file): Return Qnil to avoid warning.
554
555 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
556
557 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
558 HAVE_X_WINDOWS.
559
560 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
561
562 * composite.h (compose_text): Declare.
563
564 * xterm.c: Don't include sys/types.h unconditionally. Don't
565 protect its inclusion with !USG (following xmenu.c).
566
ea055732
GM
5672000-06-23 Gerd Moellmann <gerd@gnu.org>
568
569 * xfns.c (x_create_tip_frame): Initialize frame's colors like
570 in x_create_frame.
571
74b01b80
EZ
5722000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
573
574 * coding.c (decode_eol_post_ccl): Special handling for undecided
575 and inconsistent EOL types.
576
64f3a166
GM
5772000-06-22 Gerd Moellmann <gerd@gnu.org>
578
16cf31f7
GM
579 * xrdb.c (x_load_resources): Add default resource for scroll bar's
580 trough color and main window's background color.
581
582 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
583 differently.
584
585 * xterm.h (Xt_app_con): External declaration.
586
587 * widget.c (EmacsFrameRealize): Fix typo.
588
486a103d
GM
589 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
590
64f3a166
GM
591 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
592 (handle_invisible_prop): Record the start of invisible text in
593 it->add_overlay_start.
594 (struct overlay_entry): Add member `overlay'.
595 (handle_overlay_change): Simplify.
596 (next_overlay_string): After having processed overlay strings at the
597 end of the buffer, record that fact in
598 it->overlay_strings_at_end_processed_p.
599 (compare_overlay_entries): If before- and after-strings come
600 from the same overlay, let before-strings come first.
601 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
602 (load_overlay_strings): Take it->add_overlay_start into account
603 when adding overlay strings.
604
605 * dispextern.h (struct it): Add member add_overlay_start.
606
bb746ea6
DL
6072000-06-22 Dave Love <fx@gnu.org>
608
609 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
610
611 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
612
a8f573f3
KH
6132000-06-22 Kenichi Handa <handa@etl.go.jp>
614
615 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
616 is greater than 0.
617
9f2bbc92
DL
6182000-06-21 Dave Love <fx@gnu.org>
619
620 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
621
3ee5041c
SM
6222000-06-21 Stefan Monnier <monnier@cs.yale.edu>
623
624 * syntax.c (back_comment): Simplify string-parity counting (with
625 the added benefit of handling multiple string-styles as long as
626 they are not intertwined).
627 Jump to the slow code as soon as a comment starter is found in
628 a "string_lossage" position. Fixes the case: " /* " /* " */.
629
4c343001
DL
6302000-06-21 Dave Love <fx@gnu.org>
631
632 * Makefile.in: Use GETLOADAVG_LIBS.
633
634 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
635 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
636
e6365855
SM
6372000-06-20 Stefan Monnier <monnier@cs.yale.edu>
638
639 * syntax.c (describe_syntax): Recognize the `n'estable bit.
640 (Fforward_comment, scan_lists):
641 Check the comstyle of single-char comment-starters.
642 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
643 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
644 Check the comstyle of single-char comment-starters.
645 Clarify control-flow around the Scomment case.
e6365855 646
5700d2cc
DL
6472000-06-20 Dave Love <fx@gnu.org>
648
d355bd8a
SM
649 * fns.c (make_hash_table, maybe_resize_hash_table):
650 Cast arg of next_almost_prime.
5700d2cc
DL
651
652 * tparam.c [emacs]: Include lisp.h.
653
654 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
655 and unistd.h.
656
4a27bdfb
GM
6572000-06-20 Gerd Moellmann <gerd@gnu.org>
658
a61d762c
GM
659 * keyboard.c (adjust_point_for_property): Check if display
660 property should be treated as intangible by looking at its
661 value.
662
663 * xdisp.c (single_display_prop_intangible_p)
664 (display_prop_intangible_p): New functions.
665
666 * dispextern.h (display_prop_intangible_p): Add prototype.
667
668 * xdisp.c (dump_glyph_row): Show type of glyph->object.
669
4a27bdfb
GM
670 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
671 argument to sigprocmask.
672
673 * s/sco5.h (sigblock): Redefined to pass a pointer as second
674 argument to sigprocmask.
675
676 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
677 sigprocmask_set, and pass a pointer to it to sigprocmask.
678
679 * sysdep.c (sigprocmask_set): New variable.
680
681 * fileio.c (make_temp_name): Don't use `%s' in string passed to
682 report_file_error.
683
427ec082
SS
6842000-06-20 Sam Steingold <sds@gnu.org>
685
686 * xrdb.c: Don't declare xmalloc, xrealloc.
687
8972fe79 6882000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
689
690 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
691 (re_comp): Cast gettext return value to avoid complaints when
692 !HAVE_LIBINTL.
693
074b6efe
DL
6942000-06-20 Dave Love <fx@gnu.org>
695
f85c008a
DL
696 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
697 HAVE_GETTIMEOFDAY.
698
5700d2cc 699 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 700
d355bd8a 701 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
702
703 * m/alpha.h: Don't declare xmalloc, xrealloc.
704
0af4f205
DL
705 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
706
707 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
708
709 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
710
711 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
712 HAVE_GETWD.
713
074b6efe
DL
714 * keyboard.h (poll_for_input_1): Declare.
715
716 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
717
718 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
719
720 * doprnt.c: Don't declare xmalloc, xrealloc.
721
722 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
723 (getenv, ctime, getwd): Removed.
724 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
725
726 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
727 x_set_tool_bar_lines.
728
729 * config.in: Add HAVE_GETWD. Move some definitions above
730 machine/system includes.
731
68a5e97b
KH
7322000-06-20 Kenichi Handa <handa@etl.go.jp>
733
95417e1e
KH
734 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
735
68a5e97b
KH
736 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
737 contain information about ENCODING.
738
739 * fontset.c (FONTSET_ASCII): Use the first element of char table
740 for an ASCII font, not defalt slot.
741 (fontset_ref_via_base): If FONTSET doesn't contain information for
742 C, try the default fontset.
743 (make_fontset): Don't copy the default fontset.
744 (fontset_font_pattern): Likewise.
745 (accumulate_font_info): If ELT is nil, use the corresponding
746 element in the default fontset.
747
3b4fa1b2
DL
7482000-06-19 Dave Love <fx@gnu.org>
749
943e731c
DL
750 * syntax.c (Fparse_partial_sexp): Doc fix.
751
752 * regex.h: Test PROTOTYPES as well as __STDC__.
753
3b4fa1b2
DL
754 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
755 errno, strerror. Put text after #endif in comment.
756
757 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
758 pcc).
759
760 * xterm.c (x_frame_of_widget): Likewise.
761
cdf0357b
GM
7622000-06-19 Gerd Moellmann <gerd@gnu.org>
763
764 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
765 to Vfundamental_mode_abbrev_table.
766
767 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
768 bogus objects are marked. This slows down GC by ~80 percent, but
769 it might be worth trying when debugging GC-related problems.
770 This feature requires conservative stack marking to be enabled.
771
772 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
773 returns XLookupChars, reset `modifiers' to zero.
774
998e9f8c
DL
7752000-06-19 Dave Love <fx@gnu.org>
776
777 * mktime.c: Unprotoized.
778
d1504184
GM
7792000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
780
781 * data.c (set_internal): If variable is frame-local,
782 store the new value immediately into the frame parameter alist.
783
140c4ac6
KR
7842000-06-19 Ken Raeburn <raeburn@gnu.org>
785
14358466
KR
786 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
787 in the custom handler pointer.
788
140c4ac6
KR
789 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
790 value, or checks for CHAR_META can fail when Lisp_Object is a
791 union type.
792 * keymap.c (get_keyelt): Likewise.
793
10d7bf84
KH
7942000-06-19 Kenichi Handa <handa@etl.go.jp>
795
796 * ccl.h (struct ccl_program): New member eol_type.
797 (struct ccl_spec): New member cr_carryover.
798
799 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
800 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
801
802 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
803 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
804 (decode_eol_post_ccl): New function.
805 (decode_coding): Don't detect EOL format here for CCL based coding
806 systems.
807 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
808 decode_eol_post_ccl after running the CCL program.
809 (code_convert_region): Don't detect EOL format here for CCL based
810 coding systems.
811 (decode_coding_string): Likewise.
812
52e386c2
KR
8132000-06-18 Ken Raeburn <raeburn@gnu.org>
814
815 * charset.c (update_charset_table): Use XINT on "iso_final_char"
816 when treating it as an integer.
817
818 * coding.h (encode_coding_string): Declare.
819
820 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
821 it as an integer.
822
823 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
824 "xkeymap" to avoid shadowing the "enum map_type" value that needs
825 to be passed to get_local_map.
826
827 * sound.c (Fplay_sound): Don't call make_number on
828 Frun_hook_with_args count argument.
829
830 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
831 for lisp objects in X event structure data field, when lisp
832 objects are represented with unions.
833 (x_scroll_bar_to_input_event): Ditto.
834
b357b9d4
KR
8352000-06-16 Ken Raeburn <raeburn@gnu.org>
836
837 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
838 termination of string. Fix sense of test whether
839 Vline_number_display_limit is an integer.
b357b9d4 840
a871441d
GM
8412000-06-16 Gerd Moellmann <gerd@gnu.org>
842
a9021acd
GM
843 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
844 only if HAVE_X_WINDOWS.
845
6344985d
GM
846 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
847 of titles.
848
427ec082 849 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
850 out of bounds.
851
228b083e
EZ
8522000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
853
854 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
855 of its headers.
856
c25b53a2
KH
8572000-06-15 Kenichi Handa <handa@etl.go.jp>
858
859 * coding.c (decode_coding_emacs_mule): Always set src_base at the
860 start of the while loop.
861
a6981b11
GM
8622000-06-15 Gerd Moellmann <gerd@gnu.org>
863
e9924e52
GM
864 * atimer.c (alarm_signal_handler): Add forward declaration.
865
a6981b11
GM
866 * data.c (set_internal): Remove debug code.
867
25fa6deb
GM
8682000-06-14 Gerd Moellmann <gerd@gnu.org>
869
dce6b995
GM
870 * Makefile.in (bootstrap-temacs): Add `-I../src'.
871
9f817ea4
GM
872 * unexec.c (toplevel) [COFF]: Include coff.h.
873
874 * s/lynxos.h: New file.
875
876 * keymap.c (Fsingle_key_description): Enclose function key and
877 event symbol names in angle brackets.
878
8a4e3c0c
GM
879 * xdisp.c (setup_echo_area_for_printing): Call
880 message_log_maybe_newline if message_buf_print is not set.
881
882 * print.c (printchar, strout): Don't check message_buf_print
427ec082 883 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
884 function does something useful even when message_buf_print is
885 already set.
886
25fa6deb
GM
887 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
888 variables.
889 (ensure_echo_area_buffers): Initialize echo buffer's
890 truncate lines setting to nil.
891 (with_echo_area_buffer): Don't set the echo buffer's truncate
892 lines setting here.
8a4e3c0c 893 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
894 of message_truncate_lines.
895 (resize_mini_window): Handle case that lines are truncated.
896 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
897 message-truncate-lines.
898
899 * keyboard.c (read_char): Bind message-truncate-lines to t
900 while displaying a help-echo.
901
902 * lisp.h (Qmessage_truncate_lines): External declaration.
903
163dcff3
GM
9042000-06-13 Gerd Moellmann <gerd@gnu.org>
905
1681ead6
GM
906 * xdisp.c (Vline_number_display_limit): Renamed from
907 line_number_display_limit.
908 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
909 Extend documentation string. Initialize
910 Vline_number_display_limit to nil meaning no limit.
911 (decode_mode_spec): Use Vline_number_display_limit with its new
912 meaning.
913
163dcff3
GM
914 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
915
9162000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
917
918 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 919
163dcff3
GM
920 * xfns.c (x_set_frame_parameters): Comment fix.
921
922 * frame.c (store_frame_param): Call swap_in_global_binding if the
923 variable's current binding was chosen based on this frame.
924
925 * data.c (swap_in_global_binding): New function.
926
a704139d
EZ
9272000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
928
929 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
930 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
931
9b6610db
EZ
9322000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
933
934 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
935
c68833d2
JR
9362000-06-12 Jason Rumney <jasonr@gnu.org>
937
938 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
939
940 * w32.h (EMACS_W32_H): Renamed from _NT_H_
941
942 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
943
944 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
945
ed1056b3
GM
9462000-06-12 Gerd Moellmann <gerd@gnu.org>
947
948 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
949 (syms_of_xfaces): Defsubr Sdump_colors.
950 (x_free_colors): Don't treat b&w specially on default visual.
951 (x_free_dpy_colors): New function.
952 (free_face_colors): Don't check visual class; it's done
953 in x_free_colors.
954
955 * xterm.c (x_frame_of_widget): New function.
956 (x_alloc_nearest_color_for_widget): Use it.
957 (x_copy_dpy_color): New function.
958 (x_destroy_window): Free various colors.
959
5050a2ef
KH
9602000-06-12 Kenichi Handa <handa@etl.go.jp>
961
962 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
963
964 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
965
966 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
967
968 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
969
970 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
971
fb1b041d
DL
9722000-06-11 Dave Love <fx@gnu.org>
973
974 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
975
ff96b5f4
EZ
9762000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
977
978 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
979
db8eeecd
GM
9802000-06-11 Gerd Moellmann <gerd@gnu.org>
981
ed1056b3 982 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
983 to `XEvent *'.
984
49b71c5f
KH
9852000-06-10 Kenichi Handa <handa@etl.go.jp>
986
c479bd55
KH
987 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
988 (regex_compile): Fix the code for handling the case of single byte
989 char and multibyte char being mixed in a range within [...].
990
ff6a65c2
KH
991 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
992 and dst_multibyte members of coding.
993
49b71c5f
KH
994 * charset.c (update_charset_table): Update the table
995 bytes_by_char_head.
996 (init_charset_once): Initialize elements of bytes_by_char_head to
997 1 except for leading codes for private charases.
998
999 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
1000 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
1001 sequence.
1002
9e80b57d
KR
10032000-06-09 Ken Raeburn <raeburn@gnu.org>
1004
1005 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
1006 access the data it doesn't point to.
1007
f83fe4b4
GM
10082000-06-08 Gerd Moellmann <gerd@gnu.org>
1009
1010 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 1011 will be translated to a switch-frame event when reading the
f83fe4b4
GM
1012 event queue. This is necessary because Emacs otherwise won't
1013 perform a switch-frame to a new frame until some other event, for
1014 example a keystroke event, forces it to do so. This has various
1015 effects, one visible being that the cursor of a frame created with
1016 C-x 5 2 or switched to with a window manager key binding like
1017 A-TAB stays hollow because selected_window isn't on the newly
1018 focused frame until the switch-frame is performed.
1019
1020 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
1021 generating a switch-frame event if necessary.
1022
1023 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
1024
1025 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
1026 it's an integer.
1027
0890801b
KH
10282000-06-08 Kenichi Handa <handa@etl.go.jp>
1029
1030 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
1031 charset.
1032
173cbca8
GM
10332000-06-07 Gerd Moellmann <gerd@gnu.org>
1034
3091c2a6
GM
1035 * window.c (displayed_window_lines): Take empty lines at
1036 the bottom of a window into account.
427ec082 1037
f38952fe
GM
1038 * window.c (displayed_window_lines): New function.
1039 (Fmove_to_window_line): Use displayed_window_lines to determine
1040 the number of lines to move, instead of using the window's height.
1041
1042 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
1043 to stop reading, even if the form read sets point to a different
1044 value when evaluated.
1045
427ec082 1046 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
1047 put the cursor.
1048
6ba6c818
KH
10492000-06-07 Kenichi Handa <handa@etl.go.jp>
1050
1051 * fileio.c (e_write): Free composition data if stored in
1052 coding->cmp_data.
1053
5f1aea9a
GM
10542000-06-06 Gerd Moellmann <gerd@gnu.org>
1055
666852af
GM
1056 * xdisp.c (display_line): Set row's and iterator's
1057 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
1058 Set cursor even if row ends in the middle of a character.
1059 (dump_glyph_row): Print values of new flags.
1060 (redisplay_window) <cursor movement in unchanged window>: When
1061 point has been moved forward, and PT is at the end of the cursor
1062 row, don't place the cursor in the next row if the cursor row ends
1063 in the middle of a character or at ZV.
1064
1065 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
1066 (struct glyph_row): Add starts_in_middle_of_char_p and
1067 ends_in_middle_of_char_p.
1068 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
1069 ends_in_middle_of_char_p flag.
1070 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
1071
d13f3e2e
GM
1072 * term.c (append_glyph): Revert change of 2000-06-06.
1073
1074 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
1075 padding glyph not fitting on line as whole character not
1076 fitting on line.
1077
5f1aea9a
GM
1078 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1079 this isn't true for images with `:ascent 100'.
1080
10cda9b0
KH
10812000-06-06 Kenichi Handa <handa@etl.go.jp>
1082
ed00559d
KH
1083 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1084 as modified if it is originally unmodified.
1085
10cda9b0
KH
1086 * term.c (encode_terminal_code): Change the way to check if
1087 terminal coding does any conversion.
1088 (append_glyph): Set glyph->pixel_width correctly.
1089
1090 * xdisp.c (display_line): While checking line continuation, pay
1091 attention to a padding glyph.
1092
1969fae2
GM
10932000-06-05 Gerd Moellmann <gerd@gnu.org>
1094
1095 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1096
162ccef4
DL
10972000-06-05 Dave Love <fx@gnu.org>
1098
f19f32dd
DL
1099 * xdisp.c: Include fontset.h.
1100
1101 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1102
1103 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1104
1105 * dispnew.c: Conditionally include term.h.
1106
1107 * coding.h: Declare code_convert_string_norecord.
1108
1109 * frame.h (struct frame): Use volatile unconditionally.
1110
1111 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1112
1113 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1114
1115 * systime.h: Protect against multiple inclusion.
1116 (timezone) [USG5_4]: Define as time_t.
1117
1118 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1119 (Foptimize_char_table, make_temp_name): Declare.
1120
1121 * Makefile.in (xdisp.o): Depend on fontset.h.
1122
1123 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1124
1125 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1126 (Foptimize_char_table, make_temp_name): Declare.
1127
427ec082 1128 * s/irix4-0.h:
162ccef4
DL
1129 * s/irix5-0.h:
1130 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1131
2082fe81
DL
11322000-06-02 Dave Love <fx@gnu.org>
1133
1134 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1135
dcf671d2
GM
11362000-06-02 Gerd Moellmann <gerd@gnu.org>
1137
1138 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1139 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1140 be freed.
1141
1142 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1143 glyph, use the ASCII NUL character to determine the face.
1144
d42122a3
DL
11452000-06-02 Dave Love <fx@gnu.org>
1146
1147 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1148 (VFORK_RETURN_TYPE): Remove.
427ec082 1149
d42122a3
DL
1150 * config.in: Add NO_MATHERR.
1151
dd432f16
DL
11522000-06-01 Dave Love <fx@gnu.org>
1153
90aa4ea8
DL
1154 * cmds.c (internal_self_insert): Don't check
1155 Vbefore_change_function, Vafter_change_function.
1156
1157 * insdel.c (signal_before_change, signal_after_change): Likewise.
1158
1159 * buffer.c (Vbefore_change_function, Vafter_change_function):
1160 Variables and their initializations deleted.
1161
2330c9d4
DL
1162 * callint.c (Fcall_interactively): Doc fix.
1163
dd432f16
DL
1164 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1165
bf9e8804
DL
11662000-05-31 Dave Love <fx@gnu.org>
1167
1168 * textprop.c: Revert last change -- duplicated.
1169
3694b4ab
GM
11702000-05-31 Gerd Moellmann <gerd@gnu.org>
1171
1172 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1173 in #if 0.
1174
1175 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1176
f14156cd
JR
11772000-05-31 Jason Rumney <jasonr@gnu.org>
1178
8119aab8
JR
1179 * search.c (Fre_search_forward, Fre_search_backward)
1180 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1181
f14156cd
JR
1182 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1183
4aab9be3
JR
11842000-05-30 Jason Rumney <jasonr@gnu.org>
1185
1186 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1187 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1188
1189 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1190 member.
1191
1192 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1193 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1194 expand a nil default_filename.
1195
1196 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1197 pointer to glyph_to_pixel_coords, not a frame.
1198
1199 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1200 coding.h to dependencies.
1201
1202 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1203
1204 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1205 window pointer to be consistent with w32term.c and xterm.c.
1206
1207 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1208 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1209 (Qline_spacing, Qcenter): New variables.
1210 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1211 (x_set_line_spacing): New function.
1212 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1213 macros.
1214 (x_specified_cursor_type): New function.
1215 (x_set_cursor_type): Use it.
1216 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1217 and icon strings.
1218 (validate_x_resource_name, x_get_resource_string): Measure lengths
1219 of external strings in bytes.
1220 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1221 GetTextExtentPoint32 with NULL title.
1222 (Fx_create_frame): Initialize Qline_spacing.
1223 (w32_load_system_font): Initialize font->double_byte_p.
1224 (x_to_w32_charset): Use Vw32_charset_info_alist.
1225 (Image, busy cursor, tooltip functions): Merged changes from
1226 xfns.c. Not yet functional on Windows.
1227
1228 * w32gui.h (W32FontStruct): Add double_byte_p member.
1229
1230 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1231 (emacs_button_translation): Use it.
1232 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1233 in `mask' to be set.
1234
1235 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1236 menu strings.
1237
1238 * w32term.c: Format and doc changes to bring closer to xterm.c.
1239 (w32_char_font_type): New enum.
1240 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1241 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1242 (w32_encode_char): New function.
1243 (x_encode_char): Removed.
1244 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1245 x_encode_char and w32_font_is_double_byte.
1246 (x_produce_image_glyph): Use image_ascent.
1247 (x_produce_glyphs): Use new version of w32_per_char_metric and
1248 handle NULL return value. Allow extra line spacing.
1249 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1250 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1251 w32_font_type member of glyph instead.
1252 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1253 (fast_find_position): Make sure not to consider rows not visible
1254 in the window.
1255 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1256 w32_menu_display_help with input blocked, as it can abort.
1257 (x_display_and_set_cursor): Choose cursor depending
1258 on buffer-local value of cursor_type.
1259 (x_draw_bar_cursor): Add parameter WIDTH.
1260
1261 * w32term.h (CP_DEFAULT): Define.
1262 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1263
10fc3187
GM
12642000-05-30 Gerd Moellmann <gerd@gnu.org>
1265
1266 * search.c (Fre_search_forward, Fre_search_backward)
1267 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1268
d0555360
KH
12692000-05-30 Kenichi Handa <handa@etl.go.jp>
1270
1271 * coding.c (detect_coding_iso2022): Fix code for checking
1272 CODING_CATEGORY_MASK_ISO_8_2.
1273
f1ad044f
SM
12742000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1275
1276 * regex.c (PREFETCH_NOLIMIT): New function.
1277 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1278
84ec3b4b
GM
12792000-05-29 Gerd Moellmann <gerd@gnu.org>
1280
66254a13
GM
1281 * syntax.c (find_defun_start): Move test for
1282 open_paren_in_column_0_is_defun_start outside of the loop.
1283
49e70dec
GM
1284 * xdisp.c (redisplay_window): Really switch buffers when
1285 displaying mode lines, and temporarily set selected_frame to the
1286 frame of the window that's redisplayed.
1287
84ec3b4b
GM
1288 * xfaces.c (free_realized_faces): Block/unblock input.
1289 (free_realized_multibyte_face): Ditto.
1290
869a3a14
DL
12912000-05-29 Dave Love <fx@gnu.org>
1292
1293 * textprop.c (Qkeymap): New variable.
1294 (syms_of_textprop): Intern it.
1295
1296 * keymap.c: Include intervals.h.
1297 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1298
1299 * Makefile.in (keymap.o): Depend on intervals.h.
1300
1301 * keyboard.c (menu_bar_items, tool_bar_items)
1302 (Fexecute_extended_command): Deal with `keymap' property.
1303 (read_key_sequence): Track map from `keymap' property as well as
1304 `local_map'.
1305
1306 * intervals.c (get_local_map): Extra arg to allow looking for
1307 `keymap' too.
1308
1309 * intervals.h (map_property): New enum.
1310 (get_local_map): Extra arg using it.
1311 (Qkeymap): Declare.
1312
84ec3b4b 1313 * lisp.h (get_local_map): Don't declare here.
869a3a14 1314
89d0c844
KH
13152000-05-29 Kenichi Handa <handa@etl.go.jp>
1316
1317 * Makefile.in (callproc.o): Depend on composite.h.
1318
1319 * callproc.c: Include composite.h.
1320 (Fcall_process): Handle composition correctly.
1321
1322 * coding.h (coding_allocate_composition_data): Extern it.
1323 (coding_restore_composition): Likewise.
1324
1325 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1326 yet allocated, finish decoding with result
1327 CODING_FINISH_INSUFFICIENT_CMP.
1328 (coding_allocate_composition_data): Make it non-static.
1329 (coding_restore_composition): Likewise.
1330
797a084a
EZ
13312000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1332
1333 * charset.c (syms_of_charset): Revert last change.
1334
cf872af5
EZ
13352000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1336
1337 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
1338 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1339 Handa.
cf872af5 1340
5b1ae051
EZ
13412000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1342
1343 * charset.c (syms_of_charset): Set width of character sets
1344 eight-bit-control and eight-bit-graphic to 1 column.
1345
34ec9ebe
GM
13462000-05-26 Gerd Moellmann <gerd@gnu.org>
1347
1348 * config.in (HAVE_SPEED_T): New define.
1349
1350 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1351 `extern speed_t'.
1352
dd854dc2
DL
13532000-05-26 Dave Love <fx@gnu.org>
1354
1355 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1356
1357 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1358 (Fsubr_arity): New function.
1359 (syms_of_data): Install them.
1360
ba9f8f95
KH
13612000-05-26 Kenichi Handa <handa@etl.go.jp>
1362
0f3e0672
KH
1363 * charset.c (init_charset_once): Set the table bytes_by_char_head
1364 correctly.
1365
cebefb44
KH
1366 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1367 the default fontset to what Emacs uses by default.
0f3e0672
KH
1368 (check_registry_encoding): This function deleted.
1369 (Fset_fontset_font): Remove the adhoc condition for the default
1370 fontset. Allow cons in FONTNAME.
cebefb44 1371
0f3e0672
KH
1372 * fns.c (map_char_table): Ignore char-table entries for
1373 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1374
7a18af49
KR
13752000-05-25 Ken Raeburn <raeburn@gnu.org>
1376
1377 * emacs.c (main): Initialize keyboard syms before initializing
1378 window code, so face names are available.
1379
d2af47df
SM
13802000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1381
1382 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1383 of an anchor at the beginning of a shy-group.
1384
fc6a6a4e
GM
13852000-05-25 Gerd Moellmann <gerd@gnu.org>
1386
1387 * xdisp.c (handle_invisible_prop): Don't try to skip over
1388 invisible text if end of text is already reached.
1389
005f0d35
DL
13902000-05-25 Dave Love <fx@gnu.org>
1391
02513cdd
DL
1392 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1393
005f0d35
DL
1394 * coding.c (encode_eol): Add null statement after label.
1395
89f6ca4e
EZ
13962000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1397
1398 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1399 2000-05-20.
1400
a4e1759e
KH
14012000-05-25 Kenichi Handa <handa@etl.go.jp>
1402
1403 * ccl.c (ccl_driver): Fix previous change.
1404
eacfd7fe
KH
14052000-05-25 Kenichi Handa <handa@etl.go.jp>
1406
46ab33a9
KH
1407 * coding.c (run_pre_post_conversion_on_str): Set point to the
1408 beginning of buffer before calling coding->post_read_conversion.
1409 (decode_coding_string): Give correct args to
1410 run_pre_post_conversion_on_str.
1411 (encode_coding_string): Likewise.
1412
eacfd7fe
KH
1413 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1414 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1415 eight-bit-graphic correctly.
1416
f8569325
DL
14172000-05-24 Kenichi HANDA <handa@etl.go.jp>
1418
1419 * fileio.c (Finsert_file_contents): Even if a file is not found,
1420 execute codes for setting up coding system. Call
1421 after-insert-file-functions unconditionally.
1422
04545643
GM
14232000-05-24 Gerd Moellmann <gerd@gnu.org>
1424
1425 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1426 BSD_PGRPS are not defined.
1427
747d90ea
KH
14282000-05-24 Kenichi Handa <handa@etl.go.jp>
1429
1430 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1431 DESCRIPTION.
1432 (syms_of_charset): Avoid building same strings.
1433
716e3b88
GM
14342000-05-23 Gerd Moellmann <gerd@gnu.org>
1435
1436 * lread.c (Fload): Add a comment about the meaning of
1437 Vuser_init_file being t.
1438
1439 * puresize.h (BASE_PURESIZE): Increase to 675000.
1440
1441 * s/gnu-linux.h (setpgrp): Don't define it here because this
1442 prevents compilation on GNU/Linux systems with glib 2.2.
1443
1444 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1445 as setpgid.
427ec082 1446
9aeb39fa
EZ
14472000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1448
1449 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1450 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1451 version.
1452 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1453
29ced61b
KH
14542000-05-23 Kenichi Handa <handa@etl.go.jp>
1455
0574a2ed
KH
1456 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1457 unconditionally.
1458
3d80f24d
KH
1459 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1460
1461 * term.c (encode_terminal_code): Set coding->src_multibyte
1462 properly.
1463
29ced61b
KH
1464 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1465
d7e00792
KH
14662000-05-22 Kenichi Handa <handa@etl.go.jp>
1467
c9d80d38
KH
1468 * keyboard.c (read_char): Allow character codes 128..255 to be
1469 handled by input-method-function.
1470
d7e00792
KH
1471 * insdel.c (adjust_markers_for_replace): Fix previous change.
1472 (adjust_after_replace): If PREV_TEXT is nil, call
1473 adjust_markers_for_insert, not adjust_markers_for_replace.
1474
087121cc 14752000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1476
087121cc
GM
1477 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1478 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1479 [HAVE_GRANDPT]: Define.
1480 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1481
1482 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1483 like SYSV_PTYS.
1484
1485 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1486
1487 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1488
c9671f81
KH
14892000-05-20 Kenichi Handa <handa@etl.go.jp>
1490
1491 The following changes are to handle 8-bit characters in a
1492 multibyte buffer/string without facing with byte combining
1493 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1494 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1495
1496 * Makefile.in (fns.o): Depend on charset.h.
1497
1498 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1499 convert it to unibyte.
1500 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1501
1502 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1503 apparent char boundary.
1504 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1505 0x80..0x9F to/from multibyte form.
1506
1507 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1508 to unibyte.
1509
1510 * callproc.c (Fcall_process): Always encode an argument string if
1511 it is multibyte. Setup src_multibyte and dst_multibyte members of
1512 process_coding properly.
ce75fd23 1513
c9671f81
KH
1514 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1515 SPLIT_NON_ASCII_CHAR.
1516
1517 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1518 as is.
1519 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1520
1521 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1522 variables.
1523 (SPLIT_CHARACTER_SEQ): This macro deleted.
1524 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1525 valid.
1526 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1527 and eight-bit-graphic.
1528 (char_to_string): Likewise. Signal an error for too large
1529 character code.
1530 (char_printable_p): Return 0 for 8-bit characters.
1531 (update_charset_table): Update iso_charset_table only when a final
1532 character is non-negative.
1533 (find_charset_in_text): Renamed from find_charset_in_str.
1534 Arguments and return value changed. Callers changed.
1535 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1536 be -1 if CHARSET is used only internally.
1537 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1538 eight-bit-graphic.
1539 (Fcharset_after): Simplified.
1540 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1541 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1542 (multibyte_chars_in_text): Simplified by assuming there's no
1543 invalid multibyte sequence.
1544 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1545 str_as_unibyte): New functions.
1546 (Fstring): Simpified by assuming that byte combining never
1547 happens.
1548 (init_charset_once): Initialization for
1549 LEADING_CODE_8_BIT_CONTROL.
1550 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1551 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1552 eight-bit-control and eight-bit-graphic.
1553
1554 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1555 CHARSET_8_BIT_GRAPHIC): New macros.
1556 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1557 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1558 (CHARSET_REVERSE_CHARSET): Likewise.
1559 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1560 eight-bit-graphic.
1561 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1562 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1563 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1564 encounter an invalid multibyte sequence.
1565 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1566 sequence is always valid.
1567 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1568 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1569 macros.
1570 (CHAR_STRING): For 8-bit characters, call char_to_string.
1571 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1572 multibyte sequence is always valid.
1573 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1574 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1575 str_as_unibyte): Extern them.
1576 (BCOPY_SHORT): Fix a bug.
1577 (CHAR_LEN): This macro deleted. Callers changed to use
1578 CHAR_BYTES.
1579 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1580 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1581 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1582
bd4bde7f 1583 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1584 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1585 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1586 EMIT_BYTES): New macros.
1587 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1588 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1589 macros deleted.
1590 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1591 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1592 check the validity of multibyte sequence.
1593 (decode_coding_emacs_mule): New function.
1594 (encode_coding_emacs_mule): New macro.
1595 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1596 the source.
1597 (DECODE_ISO_CHARACTER): Just return a character code.
1598 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1599 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1600 EMIT_CHAR to produced decoded characters. Exit the loop only by
1601 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1602 block here.
1603 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1604 only position codes for an invalid character.
1605 (encode_designation_at_bol): Return new destination pointer. 5th
1606 arg DSTP is changed to DST.
1607 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1608 from the source by ONE_MORE_CHAR. Don't handle the case of last
1609 block here.
1610 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1611 macros deleted.
1612 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1613 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1614 TWO_MORE_BYTES to fetch a byte from the source.
1615 (encode_eol): Pay attention to coding->src_multibyte.
1616 (detect_coding, detect_eol): Preserve members src_multibyte and
1617 dst_multibyte.
1618 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1619 (encoding_buffer_size): Set magnification to 3 for all coding
1620 systems that require encoding.
1621 (ccl_coding_driver): For decoding, be sure that the result is
1622 valid multibyte sequence.
1623 (decode_coding): Initialize coding->errors and coding->result.
1624 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1625 and raw-text, always call decode_eol. Handle the case of last
1626 block here. If not coding->dst_multibyte, convert the resulting
1627 sequence to unibyte.
1628 (encode_coding): Initialize coding->errors and coding->result.
1629 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1630 and raw-text, always call encode_eol. Handle the case of last
1631 block here.
1632 (shrink_decoding_region, shrink_encoding_region): Detect cases
1633 that we can't skip data more rigidly.
1634 (code_convert_region): Setup src_multibyte and dst_multibyte
1635 members of coding. For decoding, if the buffer is multibyte,
1636 convert the source sequence to unibyte in advance. For encoding,
1637 if the buffer is multibyte, convert the resulting sequence to
1638 multibyte afterward.
1639 (run_pre_post_conversion_on_str): New function.
1640 (code_convert_string): Deleted and divided into the following two.
1641 (decode_coding_string, encode_coding_string): New functions.
1642 (code_convert_string1, code_convert_string_norecord): Call one of
1643 above.
1644 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1645 MAKE_NON_ASCII_CHAR.
1646 (Fset_terminal_coding_system_internal,
1647 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1648 and dst_multibyte members.
1649 (init_coding_once): Initialize iso_code_class with new enum
1650 ISO_control_0 and ISO_control_1.
1651
1652 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1653 devided into ISO_control_0 and ISO_control_1.
1654 (struct coding_system): New members src_multibyte, dst_multibyte,
1655 errors, and result. Delete member fake_multibyte.
1656 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1657 nonzero.
1658 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1659 nonzero.
1660
1661 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1662 (Faset): Likewise.
1663
1664 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1665 multibyte form.
1666 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1667 combining occurs.
1668 (Ftranspose_region): Delete codes for handling byte combining.
1669
1670 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1671 dst_multibyte members of coding. On handling REPLACE on unibyte
1672 buffer, convert the result of decode_coding to unibyte. On
1673 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1674 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1675 multibyteness of the source (buffer or string).
1676
1677 * fns.c (concat): Handle 8-bit characters correctly.
1678 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1679 unibyte in the result.
1680 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1681 valid multibyte form in the result.
1682 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1683 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1684 return -1, signal an error.
1685 (base64_encode_1): New arg MULTIBYTE. Get each character by
1686 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1687 character is found, return -1.
1688 (Fbase64_decode_region): Delete codes for handling byte-combining.
1689 Treat each decoded byte as a unibyte character.
1690 (Fbase64_decode_string): Return unibyte string.
1691 (Fcompare_strings, concat, string_byte_to_char): Use
1692 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1693 FETCH_STRING_CHAR_ADVANCE.
1694 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1695 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1696
1697 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1698 SPLIT_NON_ASCII_CHAR.
1699 (fontset_ref_via_base, fontset_set): Likewise
1700
1701 * insdel.c (adjust_markers_for_record_delete): Deleted.
1702 (adjust_markers_for_insert): Argument changed. Caller changed.
1703 (adjust_markers_for_replace): Likewise.
1704 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1705 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1706 (copy_text): Delete unused local varialbe c_save. For converting
1707 to multibyte, be sure to make all 8-bit characters in valid
1708 multibyte form.
1709 (count_size_as_multibyte): Handle 8-bit characters correctly.
1710 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1711 adjust_after_replace, replace_range, del_range_2)
1712 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1713 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1714 adjust_after_replace, replace_range, del_range_2) Delete codes for
1715 handling byte combining.
1716 (adjust_before_replace): Deleted.
427ec082 1717
c9671f81
KH
1718 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1719 SPLIT_NON_ASCII_CHAR.
1720 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1721 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1722 unconditionally.
1723 (Fkey_description): Likewise.
1724
1725 * lread.c (read1): On reading multibyte string, be sure to make
1726 all 8-bit chararacters in valid multibyte form.
1727 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1728
1729 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1730 unconditionally.
1731
1732 * process.c (Fstart_process): GCPRO current_dir before calling
1733 Ffind_operation_coding_system. Encode arguments here.
1734 (create_process): Don't encode arguments here. Setup
1735 src_multibyte and dst_multibyte members of struct coding.
1736 (read_process_output): Setup src_multibyte and dst_multibyte
1737 members of struct coding. If the output is to multibyte buffer,
1738 always decode the output of the process. Adjust the
1739 representation of 8-bit characters to the multibyteness of the
1740 output.
1741 (send_process): Setup coding->src_multibyte according to the
1742 multibyteness of the source.
1743
1744 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1745 unconditionally.
1746 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1747 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1748
1749 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1750 CHAR_LEN.
1751
1752 * w16select.c (Fw16_set_clipboard_data): Setup members
1753 src_multibyte and dst_multibyte of coding. Adjusted for the
1754 change for find_charset_in_str.
1755 (Fw16_get_clipboard_data): Likewise.
1756
1757 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1758 dst_multibyte of coding.
1759 (x_to_w32_font): Likewise.
1760
1761 * w32select.c (Fw32_set_clipboard_data): Setup members
1762 src_multibyte and dst_multibyte of coding. Adjusted for the
1763 change for find_charset_in_str.
1764 (Fw32_get_clipboard_data): Likewise.
1765
1766 * xdisp.c (get_next_display_element): Handle 8-bit characters
1767 correctly.
1768 (next_element_from_display_vector): Use CHAR_BYTES instead of
1769 CHAR_LEN.
1770 (disp_char_vector): Use SPLIT_CHAR instead of
1771 SPLIT_NON_ASCII_CHAR.
1772
1773 * xselect.c (selection_data_to_lisp_data): Setup members
1774 src_multibyte and dst_multibyte of coding. Adjusted for the
1775 change for find_charset_in_str.
1776 (lisp_data_to_selection_data): Likewise.
1777
5f64c9e0
GM
17782000-05-19 Gerd Moellmann <gerd@gnu.org>
1779
2b63d473
GM
1780 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1781 buffer.
1782
5f64c9e0
GM
1783 * dispextern.h (Vimage_types): Add extern declaration.
1784
1785 * xdisp.c (Vimage_types): Moved here from xfns.c.
1786 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1787
1788 * xfns.c (Vimages_types): Moved to xdisp.c.
1789 (syms_of_xfns): Move `image-types' to xdisp.c.
1790
1791 * w32fns.c (Vimage_types): Removed.
1792 (syms_of_w32fns): Remove `image-types'.
1793
813086ea
KH
17942000-05-18 Kenichi Handa <handa@etl.go.jp>
1795
1796 * fns.c (map_char_table): Pay attention to character number of
1797 charset. Check the validity of charset at the first level. For
1798 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1799 the default value.
1800
1801 * fontset.c: Include "buffer.h".
1802 (fs_load_font): If the face has fontset, record the face ID in
1803 that fontset.
1804 (Finternal_char_font): New function.
1805 (accumulate_font_info): New function.
1806 (Ffontset_info): Rewritten for the new fontset implementation.
1807 (syms_of_fontset): Register Vdefault_fontset in the first element
1808 of Vfontset_table. Include Vdefault_fontset in
1809 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1810 function.
1811
bdaebbf0
DL
18122000-05-16 Dave Love <fx@gnu.org>
1813
1814 * m/iris5d.h: Deleted -- unused.
1815
cb613bb8
GM
18162000-05-16 Gerd Moellmann <gerd@gnu.org>
1817
b15f3b77
GM
1818 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1819 `invalid' instead of `illegal'.
1820
1821 * indent.c (Fmove_to_column): When ending within a tab, insert
1822 spaces first so that markers at the end of the tab get adjusted.
1823
835c1b36
GM
1824 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1825 buffer list that wasn't selected in that frame.
1826
cb613bb8
GM
1827 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1828 is needed on mescaline, use a 2 char prefix, and call
1829 make_temp_name with second arg non-zero.
1830
1831 * fileio.c (make_temp_name): New function, extracted from
1832 Fmake_temp_name.
1833 (Fmake_temp_name): Use it.
1834
f685bea9
EZ
18352000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1836
1837 * window.c (coordinates_in_window): Subtract 1 when computing
1838 right_x.
1839
a1b8d58b
GM
18402000-05-15 Gerd Moellmann <gerd@gnu.org>
1841
1842 * Makefile.in (lisp): Add env.elc.
1843
1844 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1845
a265079f
GM
18462000-05-12 Gerd Moellmann <gerd@gnu.org>
1847
1848 * search.c (Freplace_match): Handle case of `\N' in the
1849 replacement when there's no group N.
1850
da4496b6
GM
18512000-05-11 Gerd Moellmann <gerd@gnu.org>
1852
0ace421a
GM
1853 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1854 of the message to message_dolog.
1855
1172eb8d
GM
1856 * keyboard.c (read_char): Don't clear current message for help
1857 events; let the code handling help events handle this. Change
1858 code detecting help events that should be ignored.
1859
da4496b6
GM
1860 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1861 we're interating over a string.
1862
0623e40f
DL
18632000-05-09 Dave Love <fx@gnu.org>
1864
1865 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1866 that offset before writing. Move gcpro region past call of
1867 Ffile_regular_p.
1868
bae2503b
DL
18692000-05-04 Dave Love <fx@gnu.org>
1870
1871 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1872
ec82fb2f
GM
18732000-05-04 Gerd Moellmann <gerd@gnu.org>
1874
1875 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1876 of inserted characters when BUF equals the current buffer, and PT
1877 is in front of or equal to FROM.
1878
cbf18892
GM
18792000-05-03 Gerd Moellmann <gerd@gnu.org>
1880
4ff40dd0
GM
1881 * xdisp.c (handle_single_display_prop): If display property value
1882 is invalid, or something not supported on the frame, restore
1883 iterator's position to what it was initially. Make sure to return
1884 0 for invalid and unsupported property values.
1885
cbf18892
GM
1886 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1887 that x_per_char_metric returns null.
1888
1b0672c3
GM
18892000-05-02 Gerd Moellmann <gerd@gnu.org>
1890
576da55d
GM
1891 * xterm.h (struct face): Add forward declaration.
1892 (struct image): Ditto.
1893 (image_ascent): Add prototype.
1894
1895 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1896 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1897 image_ascent instead of using IMAGE_ASCENT.
1898
1899 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1900 (IMAGE_ASCENT): Removed.
1901
1902 * xfns.c (Qcenter): New variable.
1903 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1904 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1905 (image_ascent): New function.
1906 (lookup_image): Recognize `:ascent center'.
1907 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1908 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1909 (xbm_load): Don't set image's ascent here.
1910 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1911 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1912 check ascent values here.
1913 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1914 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1915 (syms_of_xfns): Initialize Qcenter.
1916
1b0672c3
GM
1917 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1918 to the limits, increase the limits.
1919
0d7811ed
KH
19202000-05-01 Kenichi Handa <handa@etl.go.jp>
1921
1922 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1923 Check Vfont_encoding_alist against the full name of the opened
1924 font.
1925
a943a5ca
GM
19262000-04-28 Gerd Moellmann <gerd@gnu.org>
1927
1928 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1929 taller than the window.
1930
5dba1e29
KH
19312000-04-28 Kenichi Handa <handa@etl.go.jp>
1932
1933 * xfaces.c (realize_x_face): Fix the argument of the second
1934 xassert. BASE_FACE may not be a face for ASCII.
1935
353964e3
GM
19362000-04-27 Gerd Moellmann <gerd@gnu.org>
1937
c76e04a8
GM
1938 * print.c (print_object): Treat print-length < 0 as nil.
1939
1940 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1941
1942 * s/freebsd.h (TERMCAP_OBJ): Removed.
1943 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1944
1945 * lread.c (read1): Don't treat period followed by certain
1946 characters as symbol start.
1947
1948 * xfns.c (slurp_file): New function.
1949 (xbm_image_p): Handle case of in-memory XBM files.
1950 (xbm_scan): Rewritten to work on memory buffers instead of files.
1951 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1952 Work on memory buffers instead of files. If DATA is null test
1953 if buffer looks like an in-memory XBM file.
1954 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1955 memory buffers instead of files.
1956 (xbm_file_p): New function.
1957 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1958
353964e3
GM
1959 * lread.c (end_of_file_error): New function.
1960 (read1): Call it instead of signaling `end-of-file' directly.
1961
427ec082 1962 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1963 with Fprinc instead of Fprin1.
1964
24d744ac
KR
19652000-04-26 Ken Raeburn <raeburn@gnu.org>
1966
1967 * window.c (freeze_window_start): Check that minibuffer scroll
1968 window isn't nil before extracting the window structure pointer
1969 from it.
1970
1971 * undo.c (record_delete): If we hit the end of the undo list, stop
1972 picking elements apart.
1973
7464346d
GM
19742000-04-26 Gerd Moellmann <gerd@gnu.org>
1975
1976 * xdisp.c (display_line): If lines are continued, restore
1977 iterator's ascent/descent information to the values before the
1978 first glyph not fitting on the line.
1979
612839b6
GM
19802000-04-25 Gerd Moellmann <gerd@gnu.org>
1981
1982 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1983 positions in glyph matrix. Don't compute new window end
1984 positions.
1985
1986 * dispnew.c (increment_matrix_positions): Renamed from
1987 increment_glyph_matrix_buffer_positions.
1988 (increment_row_positions): Renamed from
1989 increment_glyph_row_buffer_positions.
1990
1991 * dispextern.h: Change names of renamed functions from dispnew.c
1992 in prototypes.
1993
cc181e95
GM
19942000-04-24 Gerd Moellmann <gerd@gnu.org>
1995
abfcc168
GM
1996 * fileio.c (Fdo_auto_save): Create directories for auto-save
1997 list file if necessary.
1998
cc181e95
GM
1999 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
2000 from buffer or frame.
2001 (automatic_hscrolling_p): New variable.
2002 (hscroll_windows): Scroll windows horizontally only if automatic
2003 hscrolling is allowed.
2004 (syms_of_xdisp): New variable `automatic-hscrolling'.
2005
2006 * frame.h (struct frame): Add member extra_line_spacing.
2007
2008 * xfns.c (x_set_line_spacing): New function.
2009 (Fx_create_frame): Set line spacing from resources.
2010 (Qline_spacing): New variable.
2011 (syms_of_xfns): Initialize Qline_spacing.
427ec082 2012
cc181e95
GM
2013 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
2014
2015 * buffer.c (init_buffer_once): Handle extra_line_spacing.
2016 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 2017 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
2018 extra_line_spacing from default value.
2019 (init_buffer_once): Initialize default value of extra_line_spacing.
2020
2021 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
2022 and extra3.
2023
2024 * xterm.c (x_produce_glyphs): Remove reference to struct it's
2025 prompt_width. Add extra line spacing.
2026
2027 * term.c (produce_glyphs): Remove reference to struct it's
2028 prompt_width.
2029
2030 * dispextern.h (struct it): Remove member prompt_width, add
2031 extra_line_spacing.
2032
58827478
GM
20332000-04-22 Gerd Moellmann <gerd@gnu.org>
2034
2035 * dispnew.c (update_frame_line): When writing a whole line, make
2036 sure cursor is in the right row afterwards, otherwise a use of
2037 capability `ch' in cmgoto might leave the cursor in the row below.
2038
25a87f42
GM
20392000-04-21 Gerd Moellmann <gerd@gnu.org>
2040
2041 * lisp.h (struct Lisp_Buffer_Cons): Remove.
2042
2043 * keyboard.c (timer_check): Fix typo in comment.
2044
54edf5c2
KH
20452000-04-21 Kenichi Handa <handa@etl.go.jp>
2046
2047 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
2048 name change: ch -> character.
2049
3a64eef5
GM
20502000-04-20 Gerd Moellmann <gerd@gnu.org>
2051
2052 * keyboard.c (echo_message_buffer): New variable.
2053 (echo_now): Set echo_message_buffer to the echo area buffer used
2054 to display the echo.
2055 (cancel_echoing): Reset echo_message_buffer to nil.
2056 (read_char): Code rewritten that handles canceling an echo or
2057 echoing a dash, respectively.
2058
2059 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
2060 directory doesn't exist.
2061
6142fdcb
DL
20622000-04-19 Dave Love <fx@gnu.org>
2063
2064 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
2065 (concat): Don't allow numeric args.
2066 (Fconcat): Doc change.
6142fdcb 2067
ac6b5352
SM
20682000-04-19 Stefan Monnier <monnier@cs.yale.edu>
2069
2070 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
2071 instead define end_match(1|2) more carefully.
2072 Use GET_CHAR_BEFORE_2 for `begline'.
2073
cb9215e4
GM
20742000-04-19 Gerd Moellmann <gerd@gnu.org>
2075
5e3dac3f
GM
2076 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2077 on 64-bit systems where NULL is defined as `0'.
2078
2079 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2080 the `variable argument list' to make it work on Alpha.
2081
cb9215e4
GM
2082 * m/alpha.h (_LP64) [!_LP64]: Define.
2083 (ORDINARY_LINK): Define for NetBSD.
2084
2085 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 2086
f532dca0
DL
20872000-04-19 Dave Love <fx@gnu.org>
2088
c750667e
DL
2089 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2090 change.
2091
2092 * Makefile.in (LIBS): Don't use.
2093 (GETLOADAVG_OBJ): Define again.
2094 (otherobj): Add GETLOADAVG_OBJ.
2095
f532dca0
DL
2096 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2097
1c7e22fd
GM
20982000-04-18 Gerd Moellmann <gerd@gnu.org>
2099
f6d3257b
GM
2100 * lread.c (read_filtered_event): Cancel and start busy cursor.
2101
427ec082 2102 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
2103 that the per-character metrics may be null.
2104
e10f64e7
GM
21052000-04-17 Gerd Moellmann <gerd@gnu.org>
2106
0daee095
GM
2107 * buffer.c (clone_per_buffer_values): New function.
2108 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2109 clone_per_buffer_values if CLONE is not nil.
2110
e10f64e7
GM
2111 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2112
38687d43
DL
21132000-04-16 Dave Love <fx@gnu.org>
2114
2115 * Makefile.in: Remove obsolete localcpp stuff.
2116 (GETLOADAVG_OBJ): Don't define.
2117 (obj): Move LIBOBJS...
2118 (otherobj): ... to here.
2119 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2120 whitespace-only lines after the continuation (Irix).
2121
c21c7262
GM
21222000-04-14 Gerd Moellmann <gerd@gnu.org>
2123
2124 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2125
2126 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2127
314767c0
DL
21282000-04-14 Dave Love <fx@gnu.org>
2129
2130 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2131 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2132 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2133 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2134 NLIST_STRUCT.
2135
2136 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2137 autoconfiscated HAVE_GETLOADAVG.
2138
2139 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2140 BROKEN_MKTIME.
2141
a2522dca
GM
21422000-04-14 Gerd Moellmann <gerd@gnu.org>
2143
2144 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2145 (fill_in_lock_file_name): Avoid existing files that aren't
2146 links.
2147
33744b5d
DL
21482000-04-14 Dave Love <fx@gnu.org>
2149
c21c7262 2150 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2151 (INTERVAL_SRC): Convert to make variable.
2152 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2153 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2154 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2155 add LIBOBJS.
2156 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2157 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2158 (shortlisp): Add facemenu, float-sup, frame.
2159 (SOME_MACHINE_LISP): Remove them from here.
2160 (LIBES): Change unused LDLIBS to autoconf LIBS.
2161
2162 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2163
9d3d5916
KH
21642000-04-14 Kenichi Handa <handa@etl.go.jp>
2165
2166 * composite.c (update_compositions): If FROM and TO are not in a
2167 valid range, do nothing.
2168
198e3c7a
GM
21692000-04-13 Gerd Moellmann <gerd@gnu.org>
2170
2171 * tparam.c (tparam1): Abort when encountering an unknown
2172 `%'-specifier.
2173
2174 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2175 terminfo.o.
2176
2177 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2178 as TERMCAP_OBJ.
2179
055a28c9
EZ
21802000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2181
2182 * fileio.c (a_write): Remove redundant semi-colons.
2183 (e_write): Return -1 if failed to write all the data.
2184 This fixes the changes made at 1999-12-15.
2185
f5c75033
DL
21862000-04-12 Dave Love <fx@gnu.org>
2187
2188 * fns.c (mapcar1): Test for null vals to support mapc.
2189 (Fmapc): New function.
2190
0c3cfc51
EZ
21912000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2192
2193 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2194 (IT_frame_up_to_date): Support the buffer local value of
2195 cursor-type, if defined.
2196
33465a31
DL
21972000-04-10 Dave Love <fx@gnu.org>
2198
2199 * editfns.c (preceding-char, following-char): Doc fix.
2200
6ed56568
KR
22012000-04-10 Ken Raeburn <raeburn@gnu.org>
2202
2203 * Makefile.in (temacs): Revert 2000-03-12 change.
2204
7cf80d4e
JR
22052000-04-10 Jason Rumney <jasonr@gnu.org>
2206
2207 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2208
34f3f342
GM
22092000-04-10 Gerd Moellmann <gerd@gnu.org>
2210
1a1b1895
GM
2211 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2212 area buffer, if it's not set up yet.
2213
34f3f342
GM
2214 * indent.c (compute_motion): Set immediate_quit.
2215
be0dbdab
GM
22162000-04-09 Gerd Moellmann <gerd@gnu.org>
2217
c45be9ac
GM
2218 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2219 variable.
2220 (realize_tty_face): Suppress boldness if colors are the inverse of
2221 the default colors, and tty_suppress_bold_inverse_default_colors_p
2222 is set.
2223 (Ftty_suppress_bold_inverse_default_colors): New function.
2224 (syms_of_xfaces): Defsubr it.
2225
be0dbdab
GM
2226 * buffer.c (Frestore_buffer_modified_p): New function.
2227 (syms_of_buffer): Defsubr it.
2228
e8413c3b
KR
22292000-04-08 Ken Raeburn <raeburn@gnu.org>
2230
87f67317
KR
2231 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2232 charset id (int) argument, not a charset (Lisp_Object).
2233
e8413c3b
KR
2234 * coding.h (code_convert_string): Declare.
2235 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2236 object, as the fourth argument to code_convert_string.
2237
2238 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2239 value.
2240 (Fset_fontset_font): Use EQ to compare lisp objects.
2241
7c752c80
KR
22422000-04-05 Ken Raeburn <raeburn@gnu.org>
2243
c0333abc
KR
2244 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2245 a pointer that looks like a lisp object.
2246 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2247 zero, instead see whether it's an integer object, since they can't
2248 have intervals.
2249 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2250
7c752c80
KR
2251 * dispnew.c (allocate_matrices_for_frame_redisplay,
2252 direct_output_forward_char): Use X(U)INT and make_number as needed
2253 to convert between (unsigned) int values and lisp integers.
2254 * keyboard.c (read_key_sequence): Likewise.
2255 * lread.c (substitute_object_recurse): Likewise.
2256 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2257 * minibuf.c (do_completion, Fminibuffer_complete_word,
2258 Fminibuffer_completion_help): Likewise.
2259 * term.c (produce_special_glyphs): Likewise.
2260
2261 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2262 * print.c (print_preprocess, print_object): Likewise.
2263
2264 * search.c (compile_pattern): Use NILP when checking for nil.
2265
74e49b38
KR
2266 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2267 __OPTIMIZE__]: Provide a GNU C macro version that handles
2268 lisp-object unions.
2269 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2270 field, to better cope with ENABLE_CHECKING and calls that modify a
2271 Lisp_Object using its old value.
2272
685e5ed2
GM
22732000-04-04 Gerd Moellmann <gerd@gnu.org>
2274
c407c570
GM
2275 * window.c (compare_window_configurations): Signal an error
2276 if parameters C1 or C2 aren't window configurations.
2277
685e5ed2
GM
2278 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2279 AFTER_POTENTIAL_GC calls around calls to functions that can
2280 signal an error and thus invoke the debugger.
2281
587a49ab
GM
22822000-04-03 Gerd Moellmann <gerd@gnu.org>
2283
62f20204
GM
2284 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2285 an error if decoding fails.
2286
587a49ab
GM
2287 * keyboard.c (lispy_mouse_names): Variable removed.
2288 (Vlispy_mouse_stem): New variable.
2289 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2290 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2291 for any mouse button number. Increase size of mouse_syms and
2292 button_down_location as needed. Call modify_event_symbol with
2293 different arguments.
2294 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2295 Call modify_event_symbol with different arguments.
2296 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2297 for any button number. Call modify_event_symbol with different
2298 arguments.
2299 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2300 Accept a string for NAME_ALIST_OR_STEM.
2301
2302 * lisp.h (larger_vector): Add prototype.
2303
2304 * fns.c (larger_vector): Make externally visible.
2305
2306 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2307
2d1675e4
SM
23082000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2309
2310 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2311 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2312 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2313 we are between str1 and str2.
2314 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2315 (PATFETCH): Use `TRANSLATE'.
2316 (PATFETCH_RAW): Fetch multibyte char if applicable.
2317 (PATUNFETCH): Remove.
2318 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2319 When writing a char, write it directly into the pattern buffer rather
2320 than going needlessly through a temp char-array.
2321 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2322 multibyte magic and remove the useless `#ifdef emacs'.
2323 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2324 buffer.
2325
2326 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2327 conditional on `emacs'.
2328
2329 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2330
cc2d8c6b
KR
23312000-04-01 Ken Raeburn <raeburn@gnu.org>
2332
2333 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2334 non-union-type versions of XMARK and friends here, because XMARK
2335 and friends won't work on an integer field if NO_UNION_TYPE is not
2336 defined.
2337 (make_number): Define as a function if it's not defined as a
2338 macro.
2339
09654086
KR
2340 * composite.c (run_composite_function): Use NILP when checking for
2341 nil.
2342 (syms_of_composite): Delete local var NARGS, pass an int as first
2343 argument to Fmake_hash_table.
2344
2387b382
KR
2345 * editfns.c (text_property_stickiness): Use NILP to test
2346 Lisp_Object boolean value.
2347 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2348 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2349 problems reading from and changing the same lisp value in an
2350 XSETSTRING call.
2351
27660e89
GM
23522000-04-01 Gerd Moellmann <gerd@gnu.org>
2353
2354 * term.c (TN_no_color_video): New variable.
2355 (term_init): Intitialize TN_no_color_video.
2356 (enum no_color_bit): New enumeration.
2357 (MAY_USE_WITH_COLORS_P): New macro.
2358 (turn_on_face): Use it to determine if attributes may be used
2359 combined with colors.
2360
3578db3c
KR
23612000-04-01 Ken Raeburn <raeburn@gnu.org>
2362
2363 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2364 with int lvalues via casts; instead, just yield lisp object
2365 lvalues.
2366 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2367 proper accessor macros.
2368 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2369 (grow_mini_window): Fix typo getting int value of root->height.
2370
6fc556fd
KR
2371 * xdisp.c (compute_string_pos): Fix order of arguments to
2372 string_pos_nchars_ahead.
2373 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2374 count arg to variable-arg routines like Frun_hook_with_args and
2375 Fformat.
587a49ab
GM
2376 (back_to_previous_visible_line_start)
2377 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2378 fixed-arg routines like Fget_char_property and Fmake_string.
2379 (reconsider_clip_changes): Use XINT when comparing integer lisp
2380 objects, or passing them as int arguments.
587a49ab
GM
2381 (mark_window_display_accurate, insert_left_trunc_glyphs)
2382 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2383 storing or passing integer values as lisp objects.
2384 (set_cursor_from_row, highlight_trailing_whitespace): Use
2385 INTEGERP, not implicit test against zero, for glyph object.
2386 (try_window_id): Don't use make_number when we want an int value.
2387
2388 * xfaces.c (xlfd_symbolic_value): Make last argument a
2389 Lisp_Object, to be consistent with callers.
2390 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2391 (lface_hash): Apply XFASTINT to lisp values before folding in.
2392
2393 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2394 fill in window width and height. Pass an int, not a lisp object,
2395 as first arg to Finsert.
2396
6e7b2457
GM
23972000-04-01 Gerd Moellmann <gerd@gnu.org>
2398
610d841e
GM
2399 * xfaces.c (realize_basic_faces): Block input while realizing
2400 the faces.
2401
6e7b2457
GM
2402 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2403
2404 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2405
aa110c0c
GM
24062000-03-31 Gerd Moellmann <gerd@gnu.org>
2407
2408 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2409 or ASCII, handle case that per-char metric is null.
aa110c0c 2410
8801a864
KR
24112000-03-30 Ken Raeburn <raeburn@gnu.org>
2412
c6129d7e
KR
2413 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2414
8801a864
KR
2415 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2416 XSUBR, XBUFFER): Verify correct object type before returning
2417 pointer, using eassert.
2418 * frame.h (XFRAME): Likewise.
2419
2420 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2421 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2422 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2423 type.
2424 * data.c (set_internal): Likewise.
2425 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2426 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2427 * fileio.c (auto_save_1): Likewise.
2428 * insdel.c (check_markers): Likewise.
2429 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2430 * undo.c (record_insert): Likewise.
2431 * vmsproc.c (child_sig): Likewise.
2432 * window.c (unshow_buffer, window_loop): Likewise.
2433 * xterm.c (x_erase_phys_cursor): Likewise.
2434
8e7af858
GM
24352000-03-30 Gerd Moellmann <gerd@gnu.org>
2436
2437 * xfns.c (free_image_cache): Free the cache structure itself
2438 last, after all its members have been freed.
2439
2440 * lisp.h (xstrdup): Add prototype.
2441
2442 * alloc.c (xstrdup): Moved here from xfaces.c.
2443 (allocating_for_lisp): Variable removed.
2444 (lisp_malloc): Block input around the calls to malloc and
2445 mem_insert.
2446
2447 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2448 of Fsymbol_value.
2449 (xstrdup): Moved to alloc.c.
2450
e0b8c689
KR
24512000-03-29 Ken Raeburn <raeburn@gnu.org>
2452
b96f9fb7
KR
2453 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2454
2455 * emacs.c (main): Fix sense of no-loadup test.
2456
e0b8c689
KR
2457 * config.in (ENABLE_CHECKING): Undef.
2458
2459 * lisp.h (struct interval): Replace "parent" field with a union of
2460 interval pointer and Lisp_Object; add new bitfield to use as
2461 discriminant. Change other flag fields to bitfields.
2462 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2463 is defined and the supplied test fails, print a message and
2464 abort.
2465 (eassert): New macro. Use CHECK to provide an assert-like
2466 facility.
2467
2468 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2469 pointers; abort if the value looks like a lisp object.
2470 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2471 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2472 Modify for new interval parent definition.
2473
2474 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2475 UNMARK_BALANCE_INTERVALS): Update references that need an
2476 addressable lisp object in the interval structure.
2477 (die): New function.
2478 (suppress_checking): New variable.
2479
2480 * intervals.c (interval_start_pos): Just return 0 if there's no
2481 parent object.
2482
f83c5440
GM
24832000-03-29 Gerd Moellmann <gerd@gnu.org>
2484
2485 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2486 and earlier Emacs versions.
2487
2488 * keyboard.c (Ftop_level): Cancel busy-cursor.
2489
2490 * eval.c (call_debugger): Cancel busy-cursor.
2491
fdce64ff
KH
24922000-03-29 Kenichi Handa <handa@etl.go.jp>
2493
2494 * search.c (Freplace_match): Adjust multibyteness of the current
2495 buffer and NEWTEXT. Free allocated memory before signaling an
2496 error.
2497
f6a3f532
SM
24982000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2499
2500 * regex.c (analyse_first): New function obtained by ripping out most
2501 of re_compile_fastmap and generalizing it a little bit so that it
2502 can also just return whether a given (sub)pattern can match the empty
2503 string or not.
2504 (regex_compile): Use `analyse_first' to decide whether the loop-check
2505 needs to be done or not for *, +, *? and +? (the loop check is costly
2506 for non-greedy repetition).
2507 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2508
e9b309ac
DL
25092000-03-28 Dave Love <fx@gnu.org>
2510
bb15bd9a
DL
2511 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2512 alpha.
2513
e9b309ac
DL
2514 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2515
ed0767d8
SM
25162000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2517
2518 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2519 an expression.
2520 (enum re_opcode_t): Update description of succeed_n.
2521 (PATFETCH): Always define.
2522 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2523 operators, char classes, shy-groups and intervals).
2524 Optimize special cases of intervals so as to only use succeed_n and
2525 jump_n when really needed.
2526 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2527 that we don't have to handle the special cases any more.
2528 Simplify on_failure_jump handling as well.
2529
e11e7e46
JR
25302000-03-28 Jason Rumney <jasonr@gnu.org>
2531
2532 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2533
88faab89
GM
25342000-03-27 Gerd Moellmann <gerd@gnu.org>
2535
182ff242
GM
2536 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2537
2538 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2539
182ff242
GM
2540 * alloc.c (mark_maybe_object): New function.
2541 (mark_memory): Use it.
2542 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2543 (setjmp_tested_p, longjmp_done): New variables.
2544 (test_setjmp): New function.
2545 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2546 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2547
c1005d06
GM
2548 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2549 to DEC_TEXT_POS and INC_TEXT_POS.
2550
2551 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2552 with parameter MULTIBYTE_P.
2553
427ec082 2554 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2555 MULTIBYTE_P.
2556
7439e5b9 2557 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2558 buffers because it looks for multibyte character byte sequences
2559 which don't exist in unibyte text.
7439e5b9 2560
d9c545da
GM
2561 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2562
11fd416e 2563 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2564 [DEBUG_X_COLORS]: New functions.
2565 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2566
2567 * xfns.c (x_set_cursor_color): Get color reference counts right.
2568
2569 * xterm.c (x_copy_color): New function.
2570 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2571
2572 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2573 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2574 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2575 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2576 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2577 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2578 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2579 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2580 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2581 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2582
11fd416e
GM
2583 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2584 names for handling per-buffer variables.
d9c545da
GM
2585
2586 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2587 instead of MAX_BUFFER_LOCAL_VARS.
2588 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2589
2590 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2591
88faab89
GM
2592 * xfns.c (x_specified_cursor_type): New function.
2593 (x_set_cursor_type): Use it.
2594
2595 * buffer.h (struct buffer): Add cursor_type.
2596
d80f42b7
SM
25972000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2598
2599 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2600 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2601 opcode.
d80f42b7
SM
2602 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2603 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2604 executing it as well as when popping it off the stack to find infinite
2605 loops in non-greedy repetition operators.
2606
89e80928
GM
26072000-03-26 Gerd Moellmann <gerd@gnu.org>
2608
3d4ff2dd
GM
2609 * doc.c (Qfunction_documentation): New variable.
2610 (syms_of_doc): Initialize Qfunction_documentation.
2611 (Fdocumentation): If FUNCTION is a symbol with non-nil
2612 `function-documentation' property, return a documentation derived
2613 from that.
2614
bd96bd79
GM
2615 * buffer.c (syms_of_buffer): Add default-cursor-type.
2616 (init_buffer_once): Don't let cursor_type have a local value
2617 in every buffer.
2618
19d1bc27
GM
2619 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2620 on buffer-local value of cursor_type.
2621 (x_draw_bar_cursor): Add parameter WIDTH.
2622
2623 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2624 (init_buffer_once): Set default cursor_type value to t.
2625 Mark cursor_type as local everywhere.
2626 (syms_of_buffer): New per-buffer variable cursor-type.
2627
89e80928
GM
2628 * buffer.h (struct buffer): Remove member local_var_flags,
2629 add local_flags.
2630 (MAX_BUFFER_LOCAL_VARS): New macro.
2631 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2632 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2633 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2634 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2635
2636 * print.c (print_object): Use new macros for per-buffer
2637 variables.
2638
2639 * category.c (Fset_category_table): Use new macros for per-buffer
2640 variables.
2641
2642 * buffer.c (buffer_permanent_local_flags): Make a char array.
2643 (max_buffer_local_idx): New variable.
2644 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2645 for new handling of per-buffer variables.
2646 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2647 (init_buffer_once): Initialize per-buffer vars differently.
2648 Set max_buffer_local_idx.
2649
2650 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2651 variables.
2652
2653 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2654 variables.
2655
2656 * data.c (do_symval_forwarding, store_symval_forwarding)
2657 (find_symbol_value, set_internal, default_value, Fset_default)
2658 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2659 per-buffer variables.
2660
2661 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2662
9a0dd3dc
GM
26632000-03-24 Gerd Moellmann <gerd@gnu.org>
2664
b68c375f
GM
2665 * xterm.c (x_term_init): Unblock input around call1 of
2666 Qvendor_specific_keysyms.
2667
9a0dd3dc
GM
2668 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2669 (find_defun_start): Consider an open parenthesis in column 0
2670 a defun start only if open_paren_in_column_0_is_defun_start is set.
2671 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2672
7973e637
SM
26732000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2674
2675 * eval.c (Fautoload): Add entry in load-history (if after dump).
2676 * lread.c (load-history): Update docstring.
2677
39210e90
GM
26782000-03-24 Gerd Moellmann <gerd@gnu.org>
2679
2680 * indent.c (Fvertical_motion): Always use the current buffer.
2681 Temporarily change the window's buffer, if necessary.
2682
72db3ab5
GM
26832000-03-23 Gerd Moellmann <gerd@gnu.org>
2684
2685 * xterm.c (fast_find_position): Make sure not to consider rows
2686 not visible in the window.
2687
990b2375
SM
26882000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2689
2690 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2691 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2692
ff4df011
JR
26932000-03-22 Jason Rumney <jasonr@gnu.org>
2694
2695 * w32menu.c (single_submenu): Set help string to NULL if none.
2696 (w32_menu_show): Set help string correctly.
2697 (add-menu-item): Set help string in MIIM_DATA for menu item.
2698 Load SetMenuItemInfoA explicitly.
2699 (w32_menu_display_help): New function.
427ec082 2700
ff4df011
JR
2701 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2702 (QCdata): Moved to xdisp.c.
2703
2704 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2705 (Vw32_charset_to_codepage_alist): Removed.
2706 (Vw32_charset_info_alist): New variable.
2707 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2708 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2709 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2710 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2711 with TODO comment.
2712 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2713 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2714 Define Vw32_charset_info_alist and w32_charset symbols.
2715
27162000-03-22 Jason Rumney <jasonr@gnu.org>
2717
2718 * makefile.nt (w32bdf.obj): Update dependencies.
2719
2720 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2721
2722 * w32fns.c: Include fontset.h after dispextern.h.
2723 (Fx_create_frame): Do not create fontset.
2724 (w32_load_system_font): Doc fix.
2725 (Fx_close_connection): Free full_name if it is not shared.
2726
2727 * w32term.c: Include fontset.h after dispextern.h.
2728 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2729 updated.
2730 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2731 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2732 (w32_font_is_double_byte): New function, needs body.
2733 (x_append_glyph): Set glyph->glyph_not_available_p.
2734 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2735 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2736 character, convert it to a unibyte character.
2737 (struct glyph_string): Delete member `charset'.
2738 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2739 calculating it is found.
2740 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2741 the case that per char metric is not available correctly.
2742 (x_fill_glyph_string): Handle the case that the specific glyph is
2743 not available correctly.
2744 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2745 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2746 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2747 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2748 fontset. Don't call FS_LOAD_FONT.
2749
439d5cb4
KR
27502000-03-22 Ken Raeburn <raeburn@gnu.org>
2751
2752 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2753 (INT_LISPLIKE): New macro.
2754 (NULL_INTERVAL_P): Use it.
2755 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2756 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2757 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2758
2759 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2760 explicit references to "parent" field of struct interval and
2761 associated unclean type conversions.
2762 * intervals.c (create_root_interval, root_interval, rotate_right,
2763 rotate_left, balance_possible_root_interval, split_interval_right,
2764 split_interval_left, interval_start_pos, find_interval,
2765 next_interval, previous_interval, update_interval,
2766 adjust_intervals_for_insertion, delete_node, delete_interval,
2767 adjust_intervals_for_deletion, merge_interval_right,
2768 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2769 copy_intervals_to_string): Likewise.
2770 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2771 Likewise.
2772 * syntax.c (update_syntax_table): Likewise.
2773
2774 * intervals.c (reproduce_tree_obj): New function, like
2775 reproduce_tree but takes a Lisp_Object for the parent. Declare
2776 with prototype.
2777 (graft_intervals_into_buffer): Use it when appropriate.
2778 (reproduce_tree): Declare with prototype.
2779 (balance_possible_root_interval): Check that the parent is a lisp
2780 object before trying to examine its type.
2781
ee1c5b21
GM
27822000-03-22 Gerd Moellmann <gerd@gnu.org>
2783
2784 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2785 as strings only if both are known to be strings.
2786
2787 * s/openbsd.h (LIBS_TERMCAP): Undef.
2788
1fb352e0
SM
27892000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2790
2791 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2792 definitions for non-Emacs compilation.
2793 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2794 outside of `#ifdef emacs'.
2795 (print_partial_compiled_pattern): Update.
2796 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2797 (re_compile_fastmap): Merge handling of charset and charset_not (for
2798 emacs and non-emacs compilation as well).
2799 Similarly for (not)categoryspec and (not)syntaxspec.
2800 Don't use the fastmap when reaching `anychar' since the added
2801 complexity is not justified.
2802 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2803 and (not)syntaxspec. Merge (not)categoryspec.
2804
fdaa1f77
KH
28052000-03-22 Kenichi Handa <handa@etl.go.jp>
2806
ff1a0d8e
KH
2807 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2808 FACE_FOR_CHAR): Define them differently for the configuration of
2809 --without-x.
fdaa1f77 2810
d152fb46
DL
28112000-03-21 Dave Love <fx@gnu.org>
2812
2813 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2814 doc string.
2815
d2cafc8c
GM
28162000-03-21 Gerd Moellmann <gerd@gnu.org>
2817
2818 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2819 (lface_fully_specified_p): Don't check contents of
2820 LFACE_FONT_INDEX because that attribute is optional.
2821 (realize_x_face): Remove now unwarranted xassert.
2822
9111d4b5
KH
28232000-03-21 Kenichi HANDA <handa@etl.go.jp>
2824
2825 The following changes are to make font selection based on
2826 characters, not charset. In addition, they recover fontset
2827 facilities while utilizing the new font selection mechanism.
2828
6c4bfdc0
KH
2829 * Makefile.in (fontset.o): Depend on dispextern.h.
2830
2831 * alloc.c (mark_face_cache): Don't mark face->registry.
2832
9111d4b5
KH
2833 * dispextern.h (struct glyph): New member glyph_not_available_p.
2834 Use 22 bits for face_id.
2835 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2836 (struct face): Delete member registry, new member ascii_face.
2837 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2838 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2839 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2840 (struct it): Delete member charset, new member
2841 glyph_not_available_p.
2842
2843 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2844 (struct fontset_info, struct fontset_data): Structs removed.
2845 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2846 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2847 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2848 (fs_free_face_fontset, fontset_font_pattern,
2849 face_suitable_for_char_p, face_for_char,
2850 make_fontset_for_ascii_face): Extern them.
2851 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2852 (FS_LOAD_FACE_FONT): New macro.
2853
2854 * fontset.c: All codes rewritten or adjusted for the change of
2855 fontset implementation. Now fontset is represented by char table.
2856 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2857 removed.
2858 (my_strcasecmp): Function removed.
2859 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2860 variables.
2861 (AREF, ASIZE): New macros.
2862 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2863 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2864 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2865 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2866 fontset_id_valid_p, font_family_registry, fontset_name,
2867 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2868 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2869 New functions.
2870 (fs_load_font): New arg FACE. Caller changed.
2871 (fs_query_fontset): Argument changed. Caller changed.
2872 (Fquery_fontset): call fs_query_fontset.
2873 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2874 Functions removed.
2875 (clear_fontset_elements, check_registry_encoding,
2876 check_fontset_name): New functions.
2877 (syms_of_fontset): Set char-table-extra-slots property of fontset
2878 to 3. Staticpro and initialize Vfontset_table and
2879 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2880
2881 * frame.h (struct frame): Member `fontset_data' removed.
2882 (FRAME_FONTSET_DATA): Macro removed.
2883
2884 * frame.c (make_frame): Don't allocate f->fontset_data.
2885 (Fdelete_frame): Don't free f->fontset_data.
2886
6c4bfdc0
KH
2887 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2888
9111d4b5
KH
2889 * xdisp.c (charset_at_position): Function removed.
2890 (init_iterator): Don't set member charset of struct `it'.
2891 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2892 next_element_from_display_vector, insert_left_trunc_glyphs):
2893 Likewise.
2894 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2895 FACE_FOR_CHARSET.
2896 (get_next_display_element, append_space,
2897 extend_face_to_end_of_line): Likewise.
2898
2899 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2900 Variables removed.
2901 (clear_font_table, frame_update_line_height, load_face_font):
2902 Adjusted for the change of fontset implementation.
2903 (load_face_fontset_font): Function removed.
2904 (pixel_point_size): New function.
2905 (font_list): Argument type changed. Caller changed.
2906 (LFACE_FONT): New macro.
2907 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2908 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2909 Lisp_Object. Determine the font name by actually loading a font
2910 by the specified pattern. Set LFACE_FONT (lface) to the specified
2911 pattern. Even if a font is not found, don't try alternatives.
2912 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2913 (set_font_frame_param): If `font' is specified in lface, use it.
2914 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2915 (lface_same_font_attributes_p): Likewise.
2916 (make_realized_face): Arguent changed. Caller changed. Set
2917 face->ascii_face to face itself.
2918 (free_realized_face): Free face->fontset if face is for ASCII.
2919 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2920 deduce_unibyte_registry, x_charset_registry): Functions removed.
2921 (free_realized_multibyte_face): New function.
2922 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2923 changed. Caller changed.
2924 (try_font_list): Argument type changed.
2925 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2926 (choose_face_font): Argument changed. Handle fontset properly.
2927 (choose_face_fontset_font): Function removed.
2928 (realize_default_face, realize_named_face): Don't remove the
2929 former face here.
2930 (realize_face): Argument changed. Caller changed. Remove face
2931 with the arg former_face_id in advance. Load font for the new
2932 face.
2933 (realize_x_face): Argument changed. Caller changed. For a
2934 multibyte character, share fontset with base_face. For a single
2935 byte character, make a new realized fontset. Don't load a font
2936 here.
2937 (realize_tty_face): Argument changed. Caller changed.
2938 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2939 (face_at_buffer_position): Don't check multibyte_p for returning
2940 DEFAULT_FACE_ID.
2941 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2942 FACE_SUITABLE_FOR_CHARSET_P.
2943 (syms_of_xfaces): Remove code for Qx_charset_registry and
2944 Vface_default_registry.
2945
6c4bfdc0
KH
2946 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2947 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2948 (x_per_char_metric): Don't try FONT->default_char. Even if
2949 pcm->width is zero, glyph bits may exist.
2950 (x_encode_char): Always initialize char2b->byte1.
2951 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2952 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2953 changed.
2954 (x_append_glyph): Set glyph->glyph_not_available_p.
2955 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2956 it->charset. Handle the case that per char metric is not
2957 available. If it->multibyte_p is zero and it->c is a multibyte
2958 character, convert it to a unibyte character.
2959 (struct glyph_string): Delete member `charset'.
2960 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2961 the case that per char metric is not available correctly.
2962 (x_fill_glyph_string): Handle the case that the specific glyph is
2963 not available correctly.
2964 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2965 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2966 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2967 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2968 fontset. Don't call FS_LOAD_FONT.
2969
2970 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2971 (x_create_tip_frame): Likewise.
2972 (Fx_close_connection): Free full_name of font_info.
2973
2974 * fns.c (optimize_sub_char_table): New function.
2975 (Foptimize_char_table): New function.
2976 (syms_of_fns): Defsubr Soptimize_char_table.
2977
b33dd3b0
GM
29782000-03-20 Gerd Moellmann <gerd@gnu.org>
2979
2980 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2981 only if buffer is displayed in some window.
2982
2983 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2984 (try_window_reusing_current_matrix): Don't call scroll run
2985 function if run's current and desired position are the same;
2986 this prevents cursor flickering.
2987
4e8a9132
SM
29882000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2989
2990 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2991
2992 * regex.c (RE_STRING_CHAR): New macro.
2993 (GET_CHAR_AFER_2): Remove.
2994 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2995 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2996 (print_partial_compiled_pattern, re_compile_fastmap)
2997 (re_match_2_internal): Remove on_failure_jump_exclusive.
2998 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2999 optimization only need to work for * (ie. can use of_keep_string_jump).
3000 Remove the special case for .*\n since it is now covered by the general
3001 optimization.
3002 (re_search_2): Don't bother with `room'.
3003 (skip_one_char): New function.
3004 (skip_noops): Simplify since `memory' is not needed any more.
3005 (mutually_exclusive_p): Restructure slightly to use `switch' and
3006 add handling for "all" remaining cases.
3007 (re_match_2_internal): Change on_failure_jump_smart to use
3008 on_failure_keep_string_jump (and redirect the end-of-loop jump)
3009 rather than on_failure_jump_exclusive.
3010
2136fdd4
GM
30112000-03-19 Gerd Moellmann <gerd@gnu.org>
3012
3013 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
3014 number of bits per RGB because it's everywhere used as the depth
3015 of the visual.
3016
3017 * term.c (calculate_costs): Remove code dealing with X frames.
3018
e53ae11c
RS
30192000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3020
3021 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
3022
d7b511c4
GM
30232000-03-18 Gerd Moellmann <gerd@gnu.org>
3024
3025 * lread.c (read_integer): Unread the last char not consumed.
3026
16b5d424
GM
30272000-03-17 Gerd Moellmann <gerd@gnu.org>
3028
3029 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 3030 which are in the process of being deleted.
16b5d424 3031
1fa28578
GM
30322000-03-16 Gerd Moellmann <gerd@gnu.org>
3033
83488cce
GM
3034 * Makefile.in (mostlyclean): Add `*.core'.
3035 (clean): Add `bootstrap-emacs'.
3036
1fa28578
GM
3037 * lread.c (read_integer): New function.
3038 (read1): Support read syntax #o, #x, #b, #r.
3039
99633e97
SM
30402000-03-15 Stefan Monnier <monnier@cs.yale.edu>
3041
1fa28578
GM
3042 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
3043 make sure POINTER_TO_OFFSET gives the same value before and after
3044 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
3045 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
3046 (debug): Now only active if > 0 rather than if != 0.
3047 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
3048 (print_partial_compiled_pattern): Add missing `succeed' case. Use
3049 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
3050 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
3051 (store_op1, store_op2, insert_op1, insert_op2)
3052 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
3053 (group_in_compile_stack): Move to after its arg's types are
3054 declared and add a prototype.
99633e97 3055 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
3056 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
3057 wrapper.
99633e97 3058 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
3059 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
3060 indentation of the greedy-op and shy-group code.
99633e97
SM
3061 (at_(beg|end)line_loc_p): Fix argument's types.
3062 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
3063 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
3064 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
3065 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
3066 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
3067 QUIT unconditionally.
99633e97 3068
699238d9
GM
30692000-03-15 Gerd Moellmann <gerd@gnu.org>
3070
3071 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
3072 a sole completion.
3073
3074 * process.c (send_process): Add a hint that the function
3075 can call Lisp code to its comment.
3076
3077 * lread.c (load_dangerous_libraries): New variable.
3078 (Vbytecomp_version_regexp): New variable.
3079 (safe_to_load_p): New function.
3080 (Fload): Handle files not compiled with Emacs specially.
3081 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3082
34e23e5a
GM
30832000-03-14 Gerd Moellmann <gerd@gnu.org>
3084
9c763cca
GM
3085 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3086
3087 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3088 support functions only if HAVE_X11R6_XIM is defined.
3089 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3090
3091 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3092
3093 * xfns.c (X_I18N_INHIBITED): Don't define.
3094 (create_frame_xic): Remove conditional compilation on
3095 X_I18N_INHIBITED.
3096 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3097
3098 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3099 (HAVE_X11R6_XIM): Define.
3100
3101 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3102
34e23e5a
GM
3103 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3104 If set, call XSynchronize.
3105
66f0296e
SM
31062000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3107
34e23e5a
GM
3108 * regex.c: Declare a new type `re_char' used throughout the code
3109 for the string char type. It's `const unsigned char' to match the
3110 rest of Emacs. Consistently make sure all pointers to strings use
3111 it and make sure all pointers into the pattern use `unsigned
3112 char'.
66f0296e 3113 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
3114 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3115 code duplication.
66f0296e
SM
3116
3117 * charset.h (GET_CHAR_AFTER_2): Remove.
3118 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3119
854a025c
KR
31202000-03-12 Ken Raeburn <raeburn@gnu.org>
3121
3122 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3123 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3124 of them try to use backquotes.
3125
b9d2c7e2
DL
31262000-03-12 Dave Love <fx@gnu.org>
3127
3128 * unexelf.c: Restore changes of 1999-10-19.
3129 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3130 fix its type and alignment; copy it from current process.
3131
5e5dff44
GM
31322000-03-12 Gerd Moellmann <gerd@gnu.org>
3133
9b2f3c38
GM
3134 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3135 has been found. Fix bug not computing timer's predecessor.
3136
427ec082 3137 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3138 file name.
3139
e1cff360
GM
3140 * window.c (Fsave_window_excursion): Doc fix.
3141
5e5dff44
GM
3142 * xfns.c (x_defined_color): Rewritten to use
3143 x_allocate_nearest_color.
3144
e411ce4b
EZ
31452000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3146
3147 * msdos.c (vga_installed): New function, code moved from
3148 dos_set_window_size.
3149 (Qbar, Qcursor_type, outside_cursor): New variables.
3150 (syms_of_msdos): Intern and staticpro them.
3151 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3152 shape used outside Emacs when called for the first time.
3153 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3154 cursor shape used outside Emacs.
3155 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3156 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3157 type has changed.
3158 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3159 parameters specify the cursor. Make qreverse a global
3160 variable (renamed to Qreverse).
3161
80460654
GM
31622000-03-09 Gerd Moellmann <gerd@gnu.org>
3163
3164 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3165
95cd4c40
SM
31662000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3167
3168 This is a big redesign of failure-stack and register handling, prompted
3169 by bugs revealed when trying to add shy-groups. Overall, what happened
3170 is that loops are now structured a little differently, groups can be
3171 shy and the code is a little simpler.
3172
3173 * regex.h: Update the copyright.
3174 (RE_SHY_GROUPS): New value.
3175 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3176 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3177
80460654
GM
3178 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3179 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3180 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3181 for (start|stop)_memory since they now only take one argument (the
3182 second has becomes unnecessary).
3183 (print_partial_compiled_pattern): Adjust for changes in
3184 re_opcode_t.
3185 (print_compiled_pattern): Use %ld to printf long ints and flush to
3186 make debugging a little easier.
95cd4c40
SM
3187 (union fail_stack_elt): Make the integer unsigned.
3188 (struct fail_stack_type): Add a `frame' element.
3189 (INIT_FAIL_STACK): Init `frame' as well.
3190 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3191 (DEBUG_PUSH, DEBUG_POP): Remove.
3192 (NUM_REG_ITEMS): Remove.
3193 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3194 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3195 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3196 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3197 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3198 macros.
3199 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3200 address pushed is not the destination of the jump but the source
3201 of it instead.
95cd4c40
SM
3202 (NUM_FAILURE_ITEMS): Remove.
3203 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3204 registers before the actual failure point). Don't hardcode any
3205 meaning for str==NULL anymore.
95cd4c40 3206 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3207 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3208 Remove.
95cd4c40
SM
3209 (REG_UNSET_VALUE): Use NULL (why not?).
3210 (compile_range): Remove declaration since it doesn't exist.
3211 (struct compile_stack_elt_t): Remove inner_group_offset.
3212 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3213 (regex_grow_registers): Remove dead code.
3214 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3215 (regex_compile): Add shy-groups Change loops to use
3216 on_failure_jump_smart&jump instead of
3217 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3218 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3219 variable to me). Use `jump' instead of `jump_past_alt' and don't
3220 bother with push_dummy_failure in alternatives since it is now
3221 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3222 emacs' for (re)allocating the stack.
3223 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3224 from loop when bufp->can_be_null rather than jumping to `done'.
3225 Avoid jumping backwards so as to ensure termination. Use
3226 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3227 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3228 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3229 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3230 improve mutually_exclusive_p to handle ".+\n".
3231 (lowest_active_reg, highest_active_reg,
3232 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3233 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3234 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3235 variables. Push register (in `start_memory') on the stack rather
3236 than storing it in old_reg(start|end). Remove the cycle detection
3237 from `stop_memory', replaced by the use of on_failure_jump_loop
3238 for greedy loops. Add code for the new on_failure_jump_<foo>.
3239 Remove ad-hoc code in `on_failure_jump' to push more registers in
3240 the case of a loop. Take out code from `maybe_pop_jump' into
3241 separate functions and adapt it to the semantics of
3242 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3243 and push_dummy_failure. Remove dummy_failure handling and
3244 handling of `failures to jump to on_failure_jump' (this last one
3245 was already dead code, it seems).
3246 (group_match_null_string_p, alt_match_null_string_p)
3247 (common_op_match_null_string_p): Remove.
95cd4c40 3248
7397acc4
DL
32492000-03-08 Dave Love <fx@gnu.org>
3250
3251 * config.in: Don't depend on __STDC__ for volatile.
3252 Add POINTER_TYPE, PTR, PROTOTYPES.
3253
3254 * hftctl.c, strftime.c: Use PROTOTYPES.
3255 * eval.c (find_handler_clause): Likewise.
3256
3257 * mem-limits.h: Use POINTER_TYPE.
3258
3259 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3260 (memory_warnings): Declare using POINTER_TYPE.
3261
5e91ff9e
GM
32622000-03-08 Gerd Moellmann <gerd@gnu.org>
3263
feab4fba
GM
3264 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3265
25edb08f
GM
3266 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3267 collection.
3268
5e91ff9e
GM
3269 * xfns.c: Remove obsolete code in #if 0.
3270 (Fx_focus_frame): New function.
3271
a735b7e1
KH
32722000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3273
3274 * coding.c (coding_category_name): Add coding-category-utf-8,
3275 coding-category-utf-16-be, coding-category-utf-16-le.
3276 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3277 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3278 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3279 (detect_coding_utf_8): New function.
3280 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3281 UTF_16_LOW_SURROGATE_P): New macros.
3282 (detect_coding_utf_16): New function
3283 (detect_coding_mask): When priorities are specified, skip any
3284 categories that have `nil' coding-system. Fix bug of returning
3285 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3286 returns a mask not set in PRIORITIES.
3287 (detect_eol_type_in_2_octet_form): New function.
3288 (detect_eol): selects detect_eol_type_XXX to call according to
3289 cooding->category_idx.
3290 (detect_coding_system): Remove `nil' coding-system in the result.
3291 (Fupdate_coding_systems_internal): Update all coding-categories.
3292
3293 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3294 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3295 macros.
3296 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3297 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3298 CODING_CATEGORY_IDX_UTF_16_LE.
3299 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3300 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3301 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3302 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3303
9994cc69
GM
33042000-03-07 Gerd Moellmann <gerd@gnu.org>
3305
e9b4e5ff
GM
3306 * doc.c (Fdocumentation_property): If value is not a string,
3307 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3308
f7daf1e1
GM
3309 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3310 close the display with XtCloseDisplay. This caused a bus error
3311 on OpenWindows.
3312
9994cc69
GM
3313 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3314 complete but not unique.
3315
4336c705
GM
33162000-03-06 Gerd Moellmann <gerd@gnu.org>
3317
18bb0684
GM
3318 * process.c (send_process): Remove local variable `procname' that
3319 might become invalid when a GC happens. Instead, access the
3320 process name slot directly.
3321
4336c705
GM
3322 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3323 orig_height if set.
3324
3325 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3326 orig_height if set.
3327
515d0d0e
EZ
33282000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3329
3330 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3331 glyph matrices have been freed.
3332
100b3cbb
GM
33332000-03-05 Gerd Moellmann <gerd@gnu.org>
3334
50df5e5a 3335 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3336 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3337
3338 * xfns.c (QCdata): Moved to xdisp.c.
3339
3340 * xdisp.c (QCdata): Moved here from xfns.c.
3341 (syms_of_xdisp): Initialize QCdata.
3342
3343 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3344
3345 * window.c (coordinates_in_window): Use
3346 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3347 FRAME_INTERNAL_BORDER_WIDTH.
3348
100b3cbb 3349 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3350 it is obviously invalid.
100b3cbb
GM
3351
3352 * xterm.c (x_term_init): Create a colormap if not using the
3353 default visual.
3354
3355 * xterm.h (select_visual): Change prototype.
3356
3357 * xfns.c (select_visual): Rewritten. Recognize user-specified
3358 visual classes.
3359 (visual_classes): New variable.
3360
64d739c4
GM
33612000-03-04 Gerd Moellmann <gerd@gnu.org>
3362
3363 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3364 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3365 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3366 (x_decode_color): Don't handle allocation of white and black
3367 specially.
3368 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3369 XtNcolormap resources.
3370 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3371 (Fx_create_frame): Initialize color members of x_output structure.
3372 (xpm_load): Pass colormap to XPM lib.
3373
3374 * xfaces.c (x_free_colors): Access colormap of frame using
3375 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3376 when default colormap is used.
3377
3378 * xterm.c (x_term_init): Set Colormap member of x_display_info
3379 structure. Copy colormap if resource `privateColormap' is
3380 specified (PseudoColor only).
3381 (x_setup_relief_color): Access colormap of frame using
3382 FRAME_X_COLORMAP.
3383
3384 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3385 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3386
c3cee013
JR
33872000-03-04 Jason Rumney <jasonr@gnu.org>
3388
3389 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3390 other non-platform-specific equivalents.
64d739c4 3391 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3392 specific functions and macros as their w32 equivalents where
3393 non-platform-specifics are not available.
3394 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3395 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3396 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3397 (frame_update_line_height): Use macros to access f->output_data.
3398 (defined_color): Remove FIXME comments; fixed.
3399 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3400 into #ifdef blocks. Add WINDOWSNT blocks.
3401 (Fx_list_fonts): Use macros for accessing font data.
3402 (set_lface_from_font_name): Different default fonts for X and
3403 WINDOWSNT.
3404 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3405 scalable for backward compatibility.
64d739c4 3406 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3407 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3408
64d739c4 3409 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3410 syms_of_w32faces.
3411
3412 * makefile.nt (w32faces.obj): Remove.
3413 (xfaces.obj): Add.
3414
807cc41c
JR
34152000-03-03 Jason Rumney <jasonr@gnu.org>
3416
3417 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3418 correct parameters.
3419
0007072a
KR
34202000-03-03 Ken Raeburn <raeburn@gnu.org>
3421
3422 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3423 standard ELF definitions here if the system header does not.
3424
71a6ba55
GM
34252000-03-03 Gerd Moellmann <gerd@gnu.org>
3426
3427 * xterm.c (PER_CHAR_METRIC): Removed.
3428 (x_per_char_metric_1, x_default_char): New functions.
3429 (x_per_char_metric): If font's default char is invalid, return
3430 metrics of a suitably chosen usable default char.
3431 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3432 char, replace occurrences of unprintable chars with a suitably
3433 chosen usable default char.
71a6ba55 3434
900fa1f1
GM
34352000-03-02 Gerd Moellmann <gerd@gnu.org>
3436
42f55fe0
GM
3437 * xterm.c (note_mouse_highlight): Return quickly if frame's
3438 glyph matrices have been freed.
3439
3440 * dispnew.c (free_glyphs): Block input while freeing matrices.
3441
900fa1f1
GM
3442 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3443
3444 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3445 x_free_colors.
3446
3447 * dispextern.h (x_free_colors): Add prototype.
3448
3449 * xfaces.c (x_free_colors): New function.
3450 (unload_color, free_face_colors): Use it.
3451
2f950292
EZ
34522000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3453
3454 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3455
3456 * window.c [MSDOS]: Include msdos.h.
3457
54d04320
DL
34582000-03-02 Dave Love <fx@gnu.org>
3459
3460 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3461
3462 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3463 set C_OPTIMIZE_SWITCH for gcc.
3464
0ba93ac4
KH
34652000-03-02 Kenichi Handa <handa@etl.go.jp>
3466
3467 * coding.c (coding_save_composition): Be sure to allocate
3468 composition data area in coding even if there's no composition in
3469 the current run.
3470
a2bc11d4
JR
34712000-03-01 Jason Rumney <jasonr@gnu.org>
3472
3473 * w32term.c: Equivalent changes to those made to xterm.c on
3474 2000-02-25 and 2000-02-24.
3475
3476 * w32fns.c: Equivalent changes to those made to xfns.c on
3477 2000-02-25 and 2000-02-21.
3478
3479 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3480 correct line-end convention is followed.
3481
3482 * w32menu.c [HAVE_BOXES]: Remove #undef.
3483 (single_keymap_panes): Remove code for simulating checkmarks.
3484 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3485 Remove code for drawing simulated checkmarks.
3486 (w32_menu_show): make unibyte help string correctly.
3487 (add_menu_item): draw standard Windows checkmarks. Draw radio
3488 buttons as radio buttons if possible.
3489
72d19d75
GM
34902000-03-01 Gerd Moellmann <gerd@gnu.org>
3491
2df636f4
GM
3492 * sysdep.c (start_of_text): Don't define this function for NetBSD
3493 with ELF.
3494
427ec082 3495 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3496 Don't define.
3497 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3498 (LINKER): Don't undef if __NetBSD__ is defined.
3499
3500 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3501
3502 * fileio.c [__NetBSD__]: Define `unix'.
3503
72d19d75
GM
3504 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3505
ed4d0512
GM
35062000-02-29 Gerd Moellmann <gerd@gnu.org>
3507
50b1039f
GM
3508 * atimer.c (start_atimer): Don't abort when timers are stopped.
3509 (append_atimer_lists): New function.
3510 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3511 arbitrary lists of stopped and running atimers.
3512
ed4d0512
GM
3513 * atimer.c (cancel_atimer): Handle canceling an atimer when
3514 some timers are stopped.
3515
3516 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3517 after canceling it.
3518
3519 * fns.c (maybe_resize_hash_table): Handle case of new size
3520 coming out as being the same as old size.
3521
387023ee
JR
35222000-02-27 Jason Rumney <jasonr@gnu.org>
3523
3524 * makefile.nt: Add atimer.h to dependencies.
3525 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3526 * w32console.c: Only disable window system features for dispextern.h
3527 (initialize_w32_display): Build a display info for the console.
3528 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3529 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3530 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3531 as 2 button mice.
3532 * w32gui.h (struct W32FontStruct): Revert last change after change
3533 to xdisp.c.
3534 * w32menu.c (single_submenu): Set up help string.
3535 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3536 (w32_dialog_show): Set up help string.
3537 * w32term.c (w32_display_info_for_display): Remove unused function.
3538 (w32_draw_bitmap): Use pre-built bitmaps.
3539 (w32_initialize_display_info): New function to initialize parts of
3540 display info that are common to both GUI and console frames.
3541 (w32_term_init): Use w32_initialize_display_info. Do not set
3542 Vw32_num_mouse_buttons here, as it is not called for console
3543 frames. Build bitmaps for indicating truncated lines etc.
3544 (x_delete_display): Destroy pre-built bitmaps.
3545 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3546 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3547
4516715a
DL
35482000-02-27 Dave Love <fx@gnu.org>
3549
3550 * lisp.h: Add a bunch of prototypes.
3551
171ca836
KH
35522000-02-26 Kenichi Handa <handa@etl.go.jp>
3553
3554 * keyboard.c (read_char): Set `usec' correctly.
3555
4013921d
KH
35562000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3557
3558 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3559 `lambda', set reg[RRR] to the map index.
3560 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3561 reg[RRR] to 0. Otherwise, set it to -1.
3562
9244a058
GM
35632000-02-25 Gerd Moellmann <gerd@gnu.org>
3564
2df636f4 3565 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3566
f43d79c1 35672000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3568
f43d79c1
GM
3569 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3570 and contains a `:', prepend `/:'.
3571
3572 * window.c (select_window_1): If selected_window is nil,
3573 don't "swap out" the buffer's point.
3574 (Fset_window_configuration): Set selected_window to nil
3575 before calling Fselect_window.
3576 (unshow_buffer): Don't set point in buffer from window's point
3577 if another more recently selected window also shows the buffer.
3578
bed0c171
GM
35792000-02-25 Gerd Moellmann <gerd@gnu.org>
3580
449c3c52
GM
3581 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3582
f5b58615
GM
3583 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3584 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3585 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3586 variables.
3587 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3588 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3589 (hide_busy_cursor): New functions.
3590 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3591
3592 * minibuf.c (read_minibuf): Cancel busy-cursor.
3593
3594 * keyboard.c (command_loop_1): Call start_busy_cursor before
3595 Fcommand_execute and cancel_busy_cursor after it.
3596 (timer_check): Remove busy-cursor code.
3597 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3598 cursor timer.
3599
3600 * process.c (wait_reading_process_input): Remove busy-cursor code.
3601
3602 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3603 Fx_hide_busy_cursor.
3604
3605 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3606 Remove prototyoes.
3607 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3608
3609 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3610
3611 * xterm.c (XTread_socket): Remove busy-cursor code.
3612
4eb8436f
GM
3613 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3614 (build_frame_matrix_from_leaf_window): Put code handling
3615 glyph row's not being a slice of a frame row in #if 0.
3616 (sync_window_with_frame_matrix_rows): New function.
3617 (frame_row_to_window): New function.
3618 (mirror_line_dance): Handle copies between windows.
3619
3cb65b0e
GM
3620 * lread.c (Fload): Use `xfree' instead of `free'.
3621 (init_obarray): Use `xmalloc' instead of `malloc'.
3622
bed0c171
GM
3623 * window.c (Fset_window_buffer): Set WINDOW to the window
3624 after decoding.
2add4349
GM
3625 (coordinates_in_window): Take frame's internal border width
3626 into account.
bed0c171 3627
42088c12
GM
36282000-02-24 Gerd Moellmann <gerd@gnu.org>
3629
3630 * xterm.c (x_display_and_set_cursor): Display cursor of
3631 non-selected windows depending on the setting of
3632 cursor_in_non_selected_windows.
3633
3634 * xdisp.c (cursor_in_non_selected_windows): New variable.
3635 (syms_of_xdisp): DEFVAR_BOOL it.
3636
d1e103b2
GM
36372000-02-23 Gerd Moellmann <gerd@gnu.org>
3638
723e779c
GM
3639 * data.c (Fstring_to_number): If number is greater than what
3640 fits into an integer, return a float.
3641
d1e103b2
GM
3642 * eval.c (specbind): Remove references to
3643 keyword_symbols_constant_flag.
3644
3645 * data.c (keyword_symbols_constant_flag): Removed.
3646 (Fmakunbound, set_internal, syms_of_data): Remove references to
3647 keyword_symbols_constant_flag.
3648
3649 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3650
214f877f
KH
36512000-02-23 Kenichi Handa <handa@etl.go.jp>
3652
3653 * syntax.c (multibyte_syntax_as_symbol): New variable.
3654 (syms_of_syntax): Declare it as a Lisp variable.
3655 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3656 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3657 nonzero, treat all multibyte characters as symbol.
42088c12 3658 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3659 characters.
3660
130adcb7
EZ
36612000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3662
3cb65b0e 3663 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 3664 a deleted frame.
130adcb7 3665
17cbbf95
GM
36662000-02-21 Gerd Moellmann <gerd@gnu.org>
3667
3668 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3669
3670 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3671 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3672
beb0bc36
DL
36732000-02-21 Dave Love <fx@gnu.org>
3674
3675 * frame.c (Vmouse_position_function): New variable.
3676 (Fmouse_position): Use it.
3677 (syms_of_frame): Install it.
3678
3679 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3680
1d92afcd
GM
36812000-02-20 Gerd Moellmann <gerd@gnu.org>
3682
3683 * fileio.c (Finsert_file_contents): Unbind the binding of
3684 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3685
3686 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3687 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3688 (specbind, unbind_to): Handle most common case of non-constant
3689 symbol with trivial value specially.
3690
3691 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3692
2d06696f
RS
36932000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3694
3695 * data.c (Fmake_variable_buffer_local): Doc fix.
3696 Init found_for_buffer to 0.
3697 (Fmake_variable_frame_local): If the variable has already
3698 been buffer-local, set the check_frame field.
3699
1d4311c3
EZ
37002000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3701
3702 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3703 produced for CODING_MODE_LAST_BLOCK requires.
3704
2dc95ddd
DL
37052000-02-18 Dave Love <fx@gnu.org>
3706
3707 * keyboard.c (echo_keystrokes): Remove declaration.
3708 (Vecho_keystrokes) New variable.
3709 (read_char, record_menu_key, read_key_sequence): Use it to allow
3710 use of float value.
3711 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3712
3713 * lread.c: Undef feature selection macros before defining.
3714
f0930f35
GM
37152000-02-18 Gerd Moellmann <gerd@gnu.org>
3716
3717 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3718 for symbols other than the symbol in question.
3719
e3d4de90
DL
37202000-02-17 Dave Love <fx@gnu.org>
3721
3722 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3723
0b378936
GM
37242000-02-17 Gerd Moellmann <gerd@gnu.org>
3725
d621caf7
GM
3726 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3727
0b378936
GM
3728 * alloc.c (enum mem_type): Compile unconditionally.
3729
3b451f74
EZ
37302000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3731
3732 * xfaces.c (tty_defined_color): Don't return faulire indication
3733 for unspecified-fg and unspecified-bg pseudo-colors.
3734
10689a01
GM
37352000-02-17 Gerd Moellmann <gerd@gnu.org>
3736
1216f5e4
GM
3737 * alloc.c (mark_object): Don't mark symbol names in pure space.
3738 (gc_sweep): Don't unmark symbol names in pure space.
3739
3740 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3741 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3742 [GC_MARK_STACK]: New defines.
427ec082 3743 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3744 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3745
3746 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3747
3748 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3749 allocate_buffer instead of xmalloc.
3750
3751 * alloc.c (toplevel): Include setjmp.h.
3752 (PURE_POINTER_P): New define.
3753 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3754 (Vdead) [GC_MARK_STACK]: New variable.
3755 (lisp_malloc): Add parameter TYPE, call mem_insert if
3756 GC_MARK_STACK is defined.
3757 (allocate_buffer): New function.
427ec082 3758 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3759 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3760 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3761 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3762 (MEM_NIL) [GC_MARK_STACK]: New define.
3763 (struct mem_node) [GC_MARK_STACK]: New structure.
3764 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3765 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3766 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3767 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3768 (mark_stack) [GC_MARK_STACK]: New functions.
3769 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3770 (clear_marks): Removed.
3771 (gc_sweep): Set free conses' car, free floats' type, free
3772 symbols' function to Vdead. Use lisp_free to free buffers.
3773 (init_alloc_once): Initialize Vdead.
3774 (survives_gc_p): Return non-zero for pure objects.
3775
3776 * alloc.c: Add comments throughout the file.
3777
2503c8b1
GM
3778 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3779 that unblocks alarms.
3780
8389e1e2
GM
3781 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3782 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3783 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3784
10689a01 3785 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3786
bfc17d18
KH
37872000-02-17 Kenichi Handa <handa@etl.go.jp>
3788
4a09dee0
KH
3789 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3790 avoid infinite error signaling. Allocate sufficient memory for
3791 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3792
2b927d02
SM
37932000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3794
3795 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3796 depends on the previous behavior.
3797
b49cb764
GM
37982000-02-16 Gerd Moellmann <gerd@gnu.org>
3799
3800 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3801
99e95407
GM
38022000-02-15 Gerd Moellmann <gerd@gnu.org>
3803
3804 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3805
3806 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3807 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3808 write(2).
3809
6ffd3cf7
RS
38102000-02-15 Richard M. Stallman <rms@gnu.org>
3811
3812 * data.c (set_internal): Don't make variable buffer-local
3813 if within a let-binding for the same buffer.
3814 (let_shadows_buffer_binding_p): New function.
3815
3816 * eval.c (specbind): For buffer-local value,
3817 record the current buffer also.
3818 (unbind_to): Cope with that change.
3819
cad53475
GM
38202000-02-15 Gerd Moellmann <gerd@gnu.org>
3821
3822 * window.c (Fsave_window_excursion): Doc fix.
3823
1aa963c8
SM
38242000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3825
3826 * syntax.c (back_comment): Make sure we only consider comment-starters
3827 of the relevant style and return -1 in case of a failure to find the
3828 beginning of the comment.
3829 (Fforward_comment): If back_comment fails, go back to the position just
3830 after the comment-end.
3831 (scan_lists): Add comment describing a very minor bug.
3832
b9b84fd3
SM
38332000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3834
3835 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3836 `completion-regexp-list' in the docstring.
3837
3a28db80
DL
38382000-02-14 Dave Love <fx@gnu.org>
3839
3840 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3841
fb4a568d
SM
38422000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3843
3844 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3845 to Emacs' syntax. Also fix the comment about set/not-set meanings
3846 since Emacs syntax is not the value 0 any more.
3847 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3848 since it's now part of RE_SYNTAX_EMACS.
3849
1063ebb5
DL
38502000-02-12 Dave Love <fx@gnu.org>
3851
3852 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3853 Alpha.
3854
fb07a302
GM
38552000-02-12 Gerd Moellmann <gerd@gnu.org>
3856
3857 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3858
aaf2320c
DL
38592000-02-12 Dave Love <fx@gnu.org>
3860
3861 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3862
3863 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3864 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3865 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3866
3867 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3868
3869 * s/nextstep.h: Don't define HAVE_ALLOCA.
3870
3871 * config.in: Add vfork bits.
3872
eedf8bde
GM
38732000-02-12 Gerd Moellmann <gerd@gnu.org>
3874
3875 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3876 unwind function to undo the effect of stopping atimers.
3877
3878 * keyboard.c (bind_polling_period): Stop all timers except
3879 poll_timer.
3880
3881 * atimer.c (stopped_atimers): New variable.
3882 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3883 New functions.
3884
3885 * atimer.h (stop_other_atimers, run_all_atimers)
3886 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3887
eedf8bde
GM
3888 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3889
8476c2f8
KR
38902000-02-11 Ken Raeburn <raeburn@gnu.org>
3891
3892 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3893 library may depend on jpeg.
3894 (atimer.o): Depends on atimer.c.
3895
0e85e4a3
KH
38962000-02-11 Kenichi Handa <handa@etl.go.jp>
3897
3898 * insdel.c (del_range_1): Call update_compositions.
3899 (del_range_both): Call update_compositions just once..
3900
97fa0cc8
DL
39012000-02-10 Dave Love <fx@gnu.org>
3902
3903 * xfns.c (create_frame_xic): Fix initialization of automatic
3904 aggregates for pcc.
3905
25566a3c
KH
39062000-02-09 Kenichi Handa <handa@etl.go.jp>
3907
3908 * ccl.c (CCL_MAKE_CHAR): New macro.
3909 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3910 registers by CCL_MAKE_CHAR before calling translate_char.
3911 <CCL_TranslateCharacterConstTbl> Likewise.
3912
69da54ba
DL
39132000-02-08 Dave Love <fx@gnu.org>
3914
3915 * lread.c (__EXTENSIONS__): Define.
3916
f7136ee8
GM
39172000-02-08 Gerd Moellmann <gerd@gnu.org>
3918
3919 * puresize.h (BASE_PURESIZE): Increase to 650000.
3920
7768790b
EZ
39212000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3922
3923 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3924 the help message.
3925
38fd211b
EZ
39262000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3927
3928 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3929 md, mh, mb, mr, and me to the fake termcap entry.
3930
66e4690f
KR
39312000-02-06 Ken Raeburn <raeburn@gnu.org>
3932
3933 * sound.c (sound_cleanup): Don't call device close routine if the
3934 function pointer is null.
3935
a75dfea0
AI
39362000-02-06 Andrew Innes <andrewi@gnu.org>
3937
3938 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3939 around image definitions and prototypes.
3940 (gamma_correct) [WINDOWSNT]: New prototype.
3941
3942 * w32term.c (x_make_frame_visible): Replace call to
3943 input_poll_signal with poll_for_input.
3944
3945 * window.c [WINDOWSNT]: Include w32term.h.
3946
3947 * xdisp.c [WINDOWSNT]: Include w32term.h.
3948
3949 * makefile.nt: Add dependencies on w32gui.h.
3950 (OBJ1): Include atimer.obj.
3951 ($(BLD)\atimer.obj): New dependency rule.
3952
3953 * w32.c (sigmask): New function (does nothing).
3954 (sigunblock): Ditto.
3955
3956 * frame.c [WINDOWSNT]: Include w32term.h.
3957
3958 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3959
3960 * lread.c (syms_of_lread): Fix literal newlines.
3961
3962 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3963 the string constant limit (2048 bytes) in MSVC.
3964 (main): Ditto.
3965
59ddecde
GM
39662000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3967
3968 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3969 area.
3970 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3971 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3972 dispatch the event.
3973
07590973
DL
39742000-02-04 Dave Love <fx@gnu.org>
3975
3976 * fileio.c: Remove some unused vars.
3977 (_GNU_SOURCE): Define (for euidaccess).
3978
3979 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3980
3981 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3982 gcpro1, gcpro2.
3983 (read_minibuf): Deal with allow_props correctly.
3984
649351f9
EZ
39852000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3986
3987 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3988
66e4690f 39892000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3990
3991 * search.c (compile_pattern): If a cache entry has a nil regexp,
3992 fill in that entry instead of clobbering a previously cached
3993 string regexp.
3994
66e4690f 39952000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3996
3997 * puresize.h (BASE_PURESIZE): Increase to 610000.
3998
d240a249
GM
39992000-02-02 Gerd Moellmann <gerd@gnu.org>
4000
4001 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
4002 can GC.
4003
ca91fb26
KH
40042000-02-02 Kenichi Handa <handa@etl.go.jp>
4005
25660570
KH
4006 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
4007 instead of incrementing ic directly.
4008 <CCL_WriteExprConst> Likewise.
4009 <ccl_set_expr>: Set ic to jump_address.
4010
ca91fb26
KH
4011 * fileio.c (e_write): Fix the handling of
4012 CODING_FINISH_INSUFFICIENT_SRC.
4013
2ede9689
DL
40142000-02-01 Dave Love <fx@gnu.org>
4015
4016 * editfns.c (Fpropertize): Doc fix.
4017
4018 * process.c (Fstart_process): Doc fix.
4019
4020 * eval.c: Fix various doc strings not to duplicate information
4021 from help-manyarg-func-alist.
4022
4023 * window.c (Fset_window_margins): Don't make interactive. Doc
4024 fix.
4025
4026 * doc.c (Vhelp_manyarg_func_alist): New variable.
4027 (Fdocumentation): Use it.
4028 (syms_of_doc): Define it.
4029
b6680a0e
GM
40302000-01-31 Gerd Moellmann <gerd@gnu.org>
4031
2cb750ba
GM
4032 * xterm.c (xim_open_dpy): Remove unused local variable.
4033
74e9213b
GM
4034 * emacs.c (USAGE): Use term `display options' instead of `X
4035 options'.
4036
4037 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
4038 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
4039
b6680a0e
GM
4040 * fns.c (sweep_weak_table): New function.
4041 (sweep_weak_hash_tables): Use it. Keep on marking until there
4042 is no more change.
4043
994c5afe
GM
40442000-01-30 Gerd Moellmann <gerd@gnu.org>
4045
4046 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
4047 that XTread_socket does not crash by trying to call XNoOp on a
4048 closed display.
427ec082 4049
f00276e3
JR
40502000-01-30 Jason Rumney <jasonr@gnu.org>
4051
4052 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4053 Change selected_frame to SELECTED_FRAME ().
4054 (w32_console_mouse_position): Remove #ifndef MULE from around
4055 `insist' parameter.
4056
4057 * makefile.nt: Remove dosfns.obj.
4058
4059 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
4060
4061 * w32fns.c (w32_defined_color): Check for valid frame before
4062 applying gamma correction. Eliminate dependency on frame elsewhere.
4063 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
4064 (w32_to_x_font): Use resx and resy not height_in and width_in.
4065 (x_to_w32_font): Doc fix.
4066 (xlfd_strip_height): New function to strip and return font height.
4067 (w32_font_match): Compare height separately from rest of xlfd
4068 spec, using xlfd_strip_height.
4069
4070 * w32term.c (w32_term_init): Swap resx and height_in, resy and
4071 width_in. Use w32_defined_color in place of defined_color.
4072
4073 * w32faces.c: Merge more of DOS and X specifics in preparation for
4074 merge with xfaces.c.
4075 (defined_color): Remove FIXME comment.
4076 (tty_color_name): Provide w32-specific function.
4077 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4078
4079 * w32console.c (turn_on_face, turn_off_face): Removed.
4080 (w32_face_attributes): New function.
4081 (Global_variables): Reduce scope where possible.
4082 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4083 fill attribute.
4084 (hl_mode): Don't modify text attributes.
4085 (write_glyphs): Don't do anything if len <= 0. Use
4086 w32_face_attributes to get attributes for drawing. Write
4087 terminating codes using char_attr_normal.
4088 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4089 (update_begin, update_end): Likewise.
4090 (vga_stdcolor_name): New function.
4091 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4092 (Fset_screen_color): Remove char_attr_reverse.
4093
b08e8bb2
GM
40942000-01-29 Gerd Moellmann <gerd@gnu.org>
4095
4096 * xfns.c (xic_set_preeditarea): Take window parameter and
4097 window-relative pixel-positions.
4098
4099 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4100 is its frame's selected window.
4101 (xim_instantiate_callback): Likewise.
4102
4103 * xfns.c (x_create_im): Removed.
4104 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4105 (supported_xim_styles): Renamed from supported_styles.
4106 (best_xim_style): Renamed from best_style.
4107 (create_frame_xic): Renamed from xic_create_frame.
4108 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 4109
b08e8bb2
GM
41102000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4111
4112 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4113 our frames, call XFilterEvent with 2nd parameter `None'.
4114 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4115 returning XBufferOverflow.
4116 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4117 area.
4118 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4119 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4120 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4121 (xim_initialize, xim_close)
4122 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4123 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4124 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4125 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4126
4127 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4128 and `xim_styles'.
4129 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4130 `xic_style' and `xic_xfs'.
4131 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4132 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4133 (FRAME_XIM): Removed.
4134
4135 * xfns.c (supported_styles): New variable.
4136 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4137 (xic_create_xfontset, best_style, xic_create_frame)
4138 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4139 (xic_set_xfontset): New functions.
4140
142e109c
DL
41412000-01-28 Dave Love <fx@gnu.org>
4142
4143 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4144
4145 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4146
b02786f9
GM
41472000-01-28 Gerd Moellmann <gerd@gnu.org>
4148
d060bc9f
GM
4149 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4150 for *scratch* if it already existed.
4151
b02786f9
GM
4152 * emacs.c (USAGE): New macro.
4153 (main): Use it to display usage information.
4154
2c52d7e4
EZ
41552000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4156
4157 Support for the menu-help feature:
4158
4159 * msdos.h: Change prototypes of XMenuAddSelection and
4160 XMenuActivate.
4161
4162 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4163 part of the line to the termscript file.
4164 (IT_clear_to_end): Clear the entire line, not just its beginning.
4165 (menu_help_message, prev_menu_help_message): New variables.
4166 (IT_menu_make_room): Make room for the help_text member.
4167 (IT_menu_display): New argument disp_help; all callers changed.
4168 If disp_help is non-zero, store the help text of the active menu
4169 item in menu_help_message.
4170 (XMenuAddPane): Initialize the help_text member to NULL.
4171 (XMenuAddSelection): New argument help_text. Store it in the
4172 XMenu structure.
4173 (XMenuActivate): New argument help_callback. If the value of
4174 menu_help_message has changed since the last time, display the
4175 menu help message text while waiting for the mouse to move. Clear
4176 the echo area before exiting.
4177 (XMenuDestroy): Free the help_text member.
4178
ffe0bcd1
GM
41792000-01-27 Gerd Moellmann <gerd@gnu.org>
4180
4181 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4182 XMenuAddSelection. Pass help callback to XMenuActivate.
4183 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4184
50dbd23f
EZ
41852000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4186
4187 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4188 and EMACS_SET_USECS.
4189
f5941bf8
GM
41902000-01-26 Dave Love <fx@gnu.org>
4191
6c67ddee
DL
4192 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4193
f5941bf8
GM
4194 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4195 an error may be signalled.
4196
9e49c990
GM
41972000-01-26 Gerd Moellmann <gerd@gnu.org>
4198
fc3cb460
GM
4199 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4200 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4201
9e49c990
GM
4202 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4203
d0c037d8
GM
42042000-01-25 Gerd Moellmann <gerd@gnu.org>
4205
4206 * charset.c (Fstring): If there is a multibyte char among
4207 the args, always return a multibyte string.
4208
e12489f9
GM
42092000-01-25 Gerd Moellmann <gerd@gnu.org>
4210
4211 * sysdep.c (sys_select): Turn atimers off and on instead of
4212 recording and restoring old alarm handler
4213
4214 * process.c (toplevel): Include atimer.h.
4215 (create_process_1): Rewritten.
4216 (create_process): Use atimers instead of alarm.
4217 (wait_reading_process_input) [hpux]: Turn atimers off instead
4218 of turning off SIGALRM.
4219 (wait_reading_process_input): Turn off atimers instead off
4220 calling stop_polling.
4221
4222 * emacs.c (main): Call init_atimer.
4223
4224 * keyboard.c (toplevel): Include systime.h and atimer.h.
4225 (polling_for_input): Removed because unused.
4226 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4227 (poll_timer): New variable.
4228 (poll_for_input, poll_for_input_1): New functions.
4229 (start_polling, stop_polling): Rewritten.
4230
4231 * keyboard.h (polling_for_input): Removed.
427ec082 4232
e12489f9
GM
4233 * atimer.h, atimer.c: New files.
4234
4235 * Makefile.in (obj): Add atimer.o.
4236 (atimer.o): New target.
4237
4238 * blockinput.h (pending_atimers): Add extern declaration.
4239 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4240
4241 * lisp.h (popup_activated_flag): Add extern declaration.
4242
4243 * xmenu.c (popup_activated_flag): Make externally visible.
4244 (popup_activate_callback) [USE_MOTIF]: Increment
4245 popup_activated_flag.
4246 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4247
4248 * xterm.c (toplevel): Include atimer.h.
4249 (toolkit_scroll_bar_interaction): New variable.
4250 (Fxt_process_timeouts): Removed.
4251 (x_process_timeouts): New function.
4252 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4253 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4254 (x_make_frame_visible): Call poll_for_input_1 instead of
4255 input_poll_signal. Don't call alarm.
4256 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4257
1e5279b9
DL
42582000-01-24 Dave Love <fx@gnu.org>
4259
6c67ddee 4260 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4261 Don't use -cckr -- apparently not now necessary.
4262
edf6aeb8
EZ
42632000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4264
4265 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4266 screen boundary.
4267
9badad41
JR
42682000-01-23 Jason Rumney <jasonr@gnu.org>
4269
4270 * w32fns.c (w32_defined_color): Apply gamma correction before
4271 trying to map to the palette.
4272 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4273 to w32_clear_rect.
4274
4275 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4276 here. Callers changed to always pass real device context.
4277 (w32_draw_bitmap): Likewise.
4278 (w32_get_glyph_overhangs): Likewise.
4279 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4280 one.
4281 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4282 pfnSetScrollInfo and SetScrollRange.
4283 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4284 back into MULE characters after decoding them.
4285 (x_get_glyph_face_and_encoding): Likewise.
4286 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4287 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4288 (x_produce_glyphs): Calculate per char metrics for a character
4289 that we know exists in default font when font_not_found_p is true.
4290
63bd786b
JR
42912000-01-22 Jason Rumney <jasonr@gnu.org>
4292
4293 * makefile.nt (intervals.obj, composite.obj): New modules.
4294 (composite.h): Added as dependency where appropriate.
4295
4296 * w32gui.h (XGCValue): New struct for emulating X GCs.
4297
4298 * w32term.h (XCharStruct): New struct for emulating X.
4299
4300 * w32console.c (turn_on_face, turn_off_face): New functions.
4301 (change_line_highlight): New prototype for new redisplay.
4302 (write_glyphs): Support multibyte text. Support faces.
4303
4304 * w32faces.c: Complete rewrite for new redisplay based on new
4305 xfaces.c.
4306
4307 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4308 throughout. struct frame * in place of FRAME_PTR.
4309 Skeleton support for images, toolbars, tooltips from xfns.c.
4310 (Fx_create_frame): Use system default for default scroll bar
4311 width.
4312 (w32_get_arg): Renamed from x_get_arg.
4313 (Fx_file_dialog): New function.
4314 (w32_list_fonts): Check cache before asking system.
4315 (Vw32_enable_synthesized_fonts): New variable.
4316 (Vw32_enable_italics): Obsolete, removed.
4317
4318 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4319 Use SELECTED_FRAME macro.
4320
4321 * w32menu.c: Add skeleton support for help strings on menus.
4322 (add_menu_item): Native checkbox and radio support added, but not
4323 yet enabled due to bugs.
4324 (push_menu_item): Add parameters type, selection and help.
4325 Callers updated.
4326 Formatting changes to reduce unnecessary diffs with xmenu.c.
4327
4328 * w32select.c (Fw32_set_clipboard_data): Update call to
4329 find_charset_in_str.
4330
4331 * w32term.c: Complete rewrite for new redisplay based on new
4332 xterm.c with necessary sections merged back in from old w32term.c.
4333
6ffd3cf7 43342000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4335
4336 * data.c (set_internal): Further fix in same criterion.
4337
6ffd3cf7 43382000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4339
4340 * data.c (set_internal): Fix the criteria for whether
4341 to swap out the old cached binding.
4342
60af03f1
DL
43432000-01-19 Dave Love <fx@gnu.org>
4344
4345 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4346
f9be074f
KH
43472000-01-18 Kenichi Handa <handa@etl.go.jp>
4348
4349 * regex.c (re_compile_fastmap): While checking a range table for
4350 `charset', skip flag bits for a character class correctly.
4351
52b8dbf9
GM
43522000-01-17 Gerd Moellmann <gerd@gnu.org>
4353
d36100c9
GM
4354 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4355
52b8dbf9
GM
4356 * xfns.c (x_window): Call lw_create_widget with new parameter
4357 list.
4358
4359 * widget.c (EmacsFrameSetCharSize): Change size of children first
4360 because of problems with main window geometry management under
4361 Lesstif.
4362
4363 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4364 MENU_ITEMS_ITEM_.*.
4365 (MENU_ITEMS_ITEM_HELP): New enumerator.
4366 (push_menu_item): Add parameter HELP. Record help in menu_items.
4367 (single_menu_item, single_submenu, list_of_items): Call
4368 push_menu_item with new parameter.
4369 (single_submenu): Set help string in widget value.
4370 (menu_highlight_callback): New function.
4371 (set_frame_menubar): Call lw_create_widget with new
4372 parameter list.
4373 (xmenu_show, xdialog_show): Ditto.
4374
3139018f
GM
43752000-01-13 Gerd Moellmann <gerd@gnu.org>
4376
4377 * sound.c (Fplay_sound): Improve doc string.
4378
83c8f461
RS
43792000-01-11 Richard M. Stallman <rms@gnu.org>
4380
4381 * lisp.h (set_internal): Enter the new arg.
4382
4383 * eval.c (specbind): Record buffer-local variables specially,
4384 indicating which buffer's binding was saved.
4385 (unbind_to): Restore buffer-local variables specially
4386 in the proper buffer.
4387
4388 * data.c (set_internal): New arg BUF.
427ec082 4389
83c8f461
RS
4390 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4391 * data.c (Fset): Pass new arg to set_internal.
4392 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4393
1fab1775
GM
43942000-01-11 Gerd Moellmann <gerd@gnu.org>
4395
4396 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4397 xprintsym.
4398
83c8f461 43992000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4400
4401 * minibuf.c (Ftry_completion): Doc fix.
4402
7a85e4df
GM
44032000-01-11 Gerd Moellmann <gerd@gnu.org>
4404
4405 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4406 vector, too.
4407
a970dae4
AS
44082000-01-11 Andreas Schwab <schwab@suse.de>
4409
4410 * coding.c (code_convert_region): Initialize total_skip.
4411
c65d14ee
DL
44122000-01-08 Dave Love <fx@gnu.org>
4413
4414 * eval.c (Fuser_variable_p): Check customizability too.
4415
834938d2
GM
44162000-01-07 Gerd Moellmann <gerd@gnu.org>
4417
4418 * minibuf.c (Fcompleting_read): Doc fix.
4419
e0303cd6
GM
44202000-01-05 Gerd Moellmann <gerd@gnu.org>
4421
8a26744b
GM
4422 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4423 -L /usr/local/lib.
4424
e0303cd6
GM
4425 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4426 Check that input style is supported before trying to create an
4427 IC for it.
4428 (x_window): Call x_create_im.
427ec082 4429
2e471eb5
GM
44302000-01-04 Gerd Moellmann <gerd@gnu.org>
4431
560a7bd2
GM
4432 * xfns.c (current_gif_memory_src): New variable.
4433 (gif_load): Record the address of the current memory source
4434 in current_gif_memory_src.
4435 (gif_read_from_memory): Use current_gif_memory_src.
4436
f9ee84a3
GM
4437 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4438 macros statement form.
4439
d1299cde
GM
4440 * sound.c (struct sound): Renamed from struct sound_file.
4441 (struct sound): Add members `data' and `header_size'.
4442 (enum sound_attr): Add SOUND_DATA.
4443 (current_sound, current_sound_device): Variables renamed from
4444 sound_file and sound_device.
4445 (parse_sound): Parse :data.
4446 (parse_sound): Handle sound data in strings.
4447 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4448 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4449 needed header size.
4450 (wav_play, au_play): Play sounds from string data.
4451
2e471eb5
GM
4452 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4453
4454 * lisp.h: Add prototype for allocate_string_data.
4455
4456 * alloc.c (Fgarbage_collect): Return number of live and free
4457 strings.
4458
4459 * alloc.c (mark_buffer): Remove code in #if 0.
4460 (gc_sweep): Ditto.
4461 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4462 (strings_consed): New variable.
4463 (allocate_string): Set it.
4464 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4465 (Fmemory_use_counts): Return strings_consed. Use Flist.
4466
4467 * alloc.c: General cleanup in comments etc. Remove conditional
4468 compilation for `standalone'.
4469
4470 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4471
4472 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4473 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4474 (DONT_COPY_FLAG): Removed.
4475 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4476 (struct sdata, struct sblock): New
4477 (struct string_block): Rewritten.
4478 (STRINGS_IN_STRING_BLOCK): New macro.
4479 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4480 (large_sblocks, string_blocks, string_free_list): New variables.
4481 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4482 (init_strings): Rewritten.
4483 (allocate_string, allocate_string_data, compact_small_strings)
4484 (free_large_strings, sweep_strings): New functions.
4485 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4486 (struct string_block_head, current_string_block)
4487 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4488 (STRING_PAD): Removed.
4489 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4490 (Fgarbage_collect): Don't set mark bit in large strings.
4491 (mark_object): Mark strings differently. Mark symbol names
4492 differently.
4493 (survives_gc_p): Test marked strings differently.
427ec082 4494 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4495 symbol names.
4496 (compact_strings): Removed.
4497
42608ba8
EZ
44982000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4499
4500 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4501 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4502
e0a09e1a
KH
45032000-01-04 Kenichi Handa <handa@etl.go.jp>
4504
dd9f0750 4505 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4506 in a non-empty buffer.
dd9f0750 4507
3c0f3b15 4508 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4509
44cd3ae5
GM
45102000-01-03 Gerd Moellmann <gerd@gnu.org>
4511
4512 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4513 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4514
4515 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4516
c182a70f
EZ
45172000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4518
4519 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4520 need to test for MSDOS frames.
4521
24480d5b
EZ
45222000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4523
4524 * dosfns.c (unspecified_colors): Remove.
4525 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4526 unspecified_bg.
4527 (msdos_stdcolor_name): Return strings for unspecified fore- and
4528 back-ground colors.
4529
4530 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4531 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4532 (tty_color_name): Return Lisp strings for unspecified fore- and
4533 back-ground colors.
4534 (Finternal_set_lisp_face_attribute): Remove the special treatment
4535 for Qunspecified_{f,b}g.
4536 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4537 string.
4538
047f434a
GM
45392000-01-03 Gerd Moellmann <gerd@gnu.org>
4540
4541 * xdisp.c (reseat_at_next_visible_line_start): Position before
4542 newline only if ending up on a newline.
4543 (next_element_from_ellipsis): Return success. Handle case of
4544 displaying no ellipsis. Fix case of ellipsis defined in display
4545 table.
4546 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4547 returns 0.
4548
d684c676
EZ
45492000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4550
4551 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4552 (Fcolor_supported_p): Renamed from face-color-supported-p.
4553
5fe1d139
EZ
45542000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4555
4556 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4557 list of colors renamed to tty-defined-color-alist.
4558 (tty_color_name): Pass the frame to tty-color-by-index.
4559 (realize_tty_face): tty-color-alist is now a function which
4560 accepts the frame as argument.
4561
4562 * term.c (Ftty_display_color_p): Accept an optional argument
4563 FRAME.
4564
816be8b8
EZ
45652000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4566
4567 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4568 encode_terminal_code.
4569
b635321e
EZ
45702000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4571
4572 * dispnew.c (mode_line_string): Support termcap frames as well.
4573
9b784e96
GM
45742000-01-01 Gerd Moellmann <gerd@gnu.org>
4575
27189709
GM
4576 * syntax.c (Fforward_word): Undo previous change.
4577
4578 * editfns.c (Fconstrain_to_field): Don't constrain if
4579 inhibit-field-text-motion is non-nil.
4580 (Fline_beginning_position): Undo previous change.
4581 (Fline_end_position): Ditto.
4582
4583 * syntax.c (Fforward_word): Notice field boundaries only if
4584 inhibit-field-text-motion is nil.
4585
4586 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4587
4588 * editfns.c (Vinhibit_field_text_motion): New variable.
4589 (inhibit-field-text-motion): New DEFVAR_LISP.
4590 (Fline_beginning_position, Fline_end_position): Notice field
4591 boundaries only if inhibit-field-text-motion is nil.
4592
45158a91
GM
4593 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4594 All calls adjusted.
4595 (x_build_heuristic_mask): Likewise.
4596 (xbm_load_image_from_file): Change error output.
4597 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4598 (gif_load, gs_load, x_kill_gs_process): Ditto.
4599
9b784e96
GM
4600 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4601 color indices when accessing raster pixels.
63cec32f
GM
4602 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4603 one of :file or :data.
4604 (enum pbm_keyword_index): Add PBM_DATA.
4605 (pbm_format): Add :data.
4606 (pbm_image_p): Allow either :file or :data.
4607 (pbm_read_file): New function.
4608 (pbm_scan_number): Rewritten to read from string.
4609 (pbm_load): Support :data.
9b784e96 4610
5ad6a5fb
GM
46111999-12-31 Gerd Moellmann <gerd@gnu.org>
4612
4613 * xfns.c: New image functions adapted to Emacs conventions.
4614 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4615 variable `file'.
4616
63448a4d
WP
46171999-12-31 William M. Perry <wmperry@aventail.com>
4618
4619 * xfns.c (jpeg_format): Added the :data keyword
4620 (jpeg_image_p): JPEG is valid with :file _or_ :data
4621 (jpeg_memory_src): Defined new JPEG image source to read from a
4622 memory buffer.
4623 (jpeg_load): Pay attention to the :data keyword if specified.
4624 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4625 found.
4626 (png_format): Added the :data keyword
4627 (png_image_p): PNG is valid with :file _or_ :data
4628 (png_read_from_memory): New PNG read function to read from a
4629 memory buffer.
4630 (png_load): Pay attention to the :data keyword if specified. Uses
4631 png_set_read_fn() instead of png_init_io() if specified.
4632 (tiff_format): Added the :data keyword for TIFF images.
4633 (tiff_image_p): TIFF is valid with :file _or_ :data
4634 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4635 from a memory buffer.
4636 (tiff_load): Pay attention to the :data keyword if specified.
4637 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4638 (gif_format): Added the :data keyword
4639 (gif_image_p): GIF is valid with :file _or_ :data
4640 (gif_read_from_memory): New GIF input function to read from a
4641 memory buffer.
c65d14ee 4642 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4643 instead of DGifOpenFileName() if specified.
4644
c880678e
GM
46451999-12-31 Gerd Moellmann <gerd@gnu.org>
4646
4647 * xdisp.c (next_element_from_buffer): Change assertion at the end
4648 because it doesn't hold when there's an overlay string at the end
4649 from which we deliver an image.
4650
8ccb9a54
EZ
46511999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4652
4653 * msdos.c (IT_update_begin): Don't dereference members of struct
4654 window for deleted windows.
4655
12ce2351
GM
46561999-12-30 Gerd Moellmann <gerd@gnu.org>
4657
a915c648
GM
4658 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4659 a hook, and the hook has a non-nil `no-self-insert' property, let
4660 the return value of the hook specify whether an expansion took
4661 place. If it returns nil, no expansion has been performed.
4662
12ce2351
GM
4663 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4664 differently.
4665
04ee4f45
EZ
46661999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4667
4668 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4669
7f4bc0c3
EZ
46701999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4671
4672 * dispnew.c (mode_line_string): Support MS-DOS frames.
4673
dac204bc
GM
46741999-12-29 Gerd Moellmann <gerd@gnu.org>
4675
4676 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4677
7b712ad8
KH
46781999-12-29 Kenichi Handa <handa@etl.go.jp>
4679
4680 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4681 to signal_after_change.
4682
adb9900f
EZ
46831999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4684
41ad069b
EZ
4685 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4686 dimensions changed, invalidate the mouse highlight info.
4687 (disable_mouse_highlight, help_echo, previous_help_echo): New
4688 variables.
4689 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4690 (fast_find_position, IT_note_mode_line_highlight)
4691 (IT_note_mouse_highlight): New functions.
4692 (IT_update_begin): If the redisplay affects the window where the
4693 mouse highlight is, clear the highlight. If the frame where the
4694 highlight was displayed was killed, invalidate the highlight
4695 info.
4696 (IT_update_end): Reset the highlight flag. Reset the mouse
4697 highlight-defer flag.
4698 (IT_frame_up_to_date): New function, if mouse highlight was
4699 deferred due to GC, do it now.
4700 (internal_terminal_init): Initialize mouse-highlight related
4701 members of the_only_x_display. Assign IT_frame_up_to_date to
4702 frame_up_to_date_hook.
4703 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4704 help_echo changed value, generate a HELP_EVENT event.
4705 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4706
adb9900f
EZ
4707 * msdos.h (struct display_info): New.
4708 (struct x_output): Add the display_info member.
4709 (FRAME_X_DISPLAY_INFO): New macro.
4710
481b5054
GM
47111999-12-28 Gerd Moellmann <gerd@gnu.org>
4712
4713 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4714 if MODIFF > 1.
6448a6b3 4715 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4716
4717 * buffer.c (modify_overlay): Always compute unchanged info.
4718
a2882b0d
KH
47191999-12-27 Kenichi Handa <handa@etl.go.jp>
4720
4721 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4722
89ba5b5f
KH
47231999-12-27 Kenichi Handa <handa@etl.go.jp>
4724
4725 The following changes are to use more bits for face IDs.
4726
4727 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4728 lowest 8 bits are single byte character code, the bits above are
4729 face ID.
481b5054 4730 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4731 above.
481b5054
GM
4732 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4733 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4734
4735 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4736 of GLYPH_MASK_CHAR.
4737
4738 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4739 of GLYPH_MASK_CHAR.
4740
4741 * dispextern.h (struct glyph): Make face_id and padding_p the top
4742 level members. Change members in union `u'.
4743 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4744 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4745 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4746 (CHAR_GLYPH_PADDING_P): Likewise.
4747 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4748 characters.
4749
481b5054 4750 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4751 for the change of struct glyph.
4752 (line_draw_cost): Adjusted for the change of
4753 GLYPH_FROM_CHAR_GLYPH.
4754 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4755
4756 * term.c (encode_terminal_code): Adjusted for the change of struct
4757 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4758 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4759 change of struct glyph.
4760
4761 * xdisp.c: All codes adjusted for the change of struct glyph.
4762
4763 * xterm.c: All codes adjusted for the change of struct glyph.
4764
5bcd116c
KH
47651999-12-27 Kenichi Handa <handa@etl.go.jp>
4766
4767 * composite.h (struct composition): Change the order of declaring
4768 members to reduce the byte size of the structure.
4769
f21b06b7
GM
47701999-12-25 Gerd Moellmann <gerd@gnu.org>
4771
4772 * search.c (looking_at_1): Reset immediate_quit before modifying
4773 global data.
4774
e36557c9
KH
47751999-12-24 Kenichi Handa <handa@etl.go.jp>
4776
4777 * process.c (read_process_output): Fix the arg FROM to
4778 update_compositions.
4779
83c8f461 47801999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4781
4782 * search.c (Freplace_match): For nonliteral replacement in buffer,
4783 construct all the new text first, then insert all at once.
4784
0b863bd9
DL
47851999-12-22 Dave Love <fx@gnu.org>
4786
4787 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4788
6d8e8ef3
GM
47891999-12-22 Gerd Moellmann <gerd@gnu.org>
4790
28d7281d
GM
4791 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4792 lead to size changes to after the X window has been created.
4793
e22ef6eb 4794 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4795 variable in xassert.
4796
8affcced
KH
47971999-12-22 Kenichi Handa <handa@etl.go.jp>
4798
4799 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4800 only when the frame is not for a window system.
8affcced 4801
f2be1146
GM
48021999-12-22 Gerd Moellmann <gerd@gnu.org>
4803
deca1348
GM
4804 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4805 redisplay after changing the multibyteness of a buffer.
4806
f2be1146
GM
4807 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4808 frame's X window to XFilterEvent instead of None because that's
4809 the X window for which the IC was created. This makes dead
4810 accents work when the pointer is not in Emacs' frame.
4811 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4812
a744a2ec
DL
48131999-12-20 Dave Love <fx@gnu.org>
4814
4815 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4816
9e6985ed
GM
48171999-12-19 Gerd Moellmann <gerd@gnu.org>
4818
4819 * eval.c (debugger_may_continue): New variable.
4820 (syms_of_eval): Add a DEFVAR_BOOL for it.
4821 (call_debugger): Bind it.
4822
3b620731
EZ
48231999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4824
4825 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4826 fp->tty_reverse_p is set, unless the computed colors are identical
4827 to frame colors. Print both original and computed colors to
4828 termscript file.
4829 (IT_write_glyphs): Track the changes in handling of composite
4830 characters.
4831 (IT_set_frame_parameters): Don't set frame colors from
4832 unspecified-fg and unspecified-bg pseudo-colors.
4833
0f9a51c4
DL
48341999-12-17 Dave Love <fx@gnu.org>
4835
4836 * data.c (Fkeywordp): New function.
4837 (syms_of_data): Install it.
4838
363e4e42
EZ
48391999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4840
4841 * xfaces.c (tty_defined_color): Fix last change.
4842
cfad01b4
GM
48431999-12-15 Gerd Moellmann <gerd@gnu.org>
4844
4845 * xdisp.c (redisplay_window) <optional new window start>: Check
4846 that window start is in [BEGV..ZV].
4847
f9d2fdc4
EZ
48481999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4849
4850 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4851 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4852
4853 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4854 (syms_of_xfaces): Initialize and staticpro them.
4855 (tty_defined_color): If the color name is unspecified-fg or
4856 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4857 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4858 (tty_color_name): If the color pixel value is either
4859 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4860 Qunspecified_fg or Qunspecified_bg, respectively.
4861 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4862 and Qunspecified_bg for foreground and background colors.
4863 (realize_default_face): If the foreground and background colors
4864 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4865 (realize_tty_face): By default, set the face colors to
4866 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4867 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4868 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4869 Reverse the colors if the default colors were reversed.
4870
4871 * dispnew.c (init_display): Initialize the frame pixels of the
4872 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4873 FACE_TTY_DEFAULT_BG_COLOR.
4874
4875 * term.c (turn_on_face): If the default fore- and background
4876 colors are reversed, enter inverse video mode. Don't send color
4877 escape sequences for unspecified foreground and background colors.
4878 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4879
4880 * dosfns.c (unspecified_colors): New variable.
4881 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4882 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4883 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4884 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4885 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4886 Qunspecified_bg, respectively.
4887
4888 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4889 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4890
e19539f1
KH
48911999-12-15 Kenichi Handa <handa@etl.go.jp>
4892
4893 * coding.c (code_convert_region): Fix the secoding arg to
4894 update_compositions.
4895
5ec14d3c
KH
48961999-12-15 Kenichi Handa <handa@etl.go.jp>
4897
4898 The following changes are for the new composition mechanism. We
4899 have deleted `composition' charset and composite characters,
4900 instead introduced a special text property `composition'.
4901
4902 * Makefile.in (INTERVAL_SRC): Include composite.h.
4903 (INTERVAL_OBJ): Include composite.o.
4904 (SOME_MACHINE_OBJECTS): Include composite.o.
4905 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4906 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4907 Depend on composite.h.
4908 (doc.o): Depend on charset.h.
4909 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4910 (composite.o): New target.
427ec082 4911
5ec14d3c
KH
4912 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4913
4914 * callproc.c (Fcall_process): Call code_convert_string to encode
4915 arguments. Use CODING_REQUIRE_DECODING to check if the process
4916 output should be decoded.
4917
4918 * casefiddle.c: Include composite.h.
4919 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4920 multibyte character. Adjusted for the change of CHAR_STRING.
4921 (casify_region): Likewise. Call update_compositions.
4922
4923 * category.h (CATEGORY_SET): Delete codes for a composite
4924 character.
4925
4926 * category.c (word_boundary_p): Delete codes for a composite
4927 character.
4928 (Fmake_category_table): New function.
4929 (syms_of_category): Defsubr it.
4930
4931 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4932 (ccl_driver): Delete codes for a composite character.
4933
4934 * charset.h: In this entry, just `Modified' means that codes for a
4935 composite character is deleted.
4936 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4937 (charset_composition) (MIN_CHAR_COMPOSITION)
4938 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4939 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4940 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4941 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4942 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4943 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4944 Modified.
4945 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4946 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4947 non_ascii_char_to_string.
4948 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4949 (STRING_CHAR_AND_LENGTH): Likewise.
4950 (FETCH_CHAR_ADVANCE): New macro.
4951 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4952 (MAX_MULTIBYTE_LENGTH): New macro.
4953 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4954 (find_charset_in_str): Argument adjusted.
4955 (CHAR_LEN): Modified.
427ec082 4956
5ec14d3c
KH
4957 * charset.c: In this entry, just `Modified' means that codes for a
4958 composite character is deleted.
4959 (Qcomposition) (leading_code_composition)
4960 (charset_composition) (min_composite_char) (cmpchar_table)
4961 (cmpchar_table_size) (n_cmpchars): Deleted.
4962 (SPLIT_COMPOSITE_SEQ): Deleted.
4963 (SPLIT_MULTIBYTE_SEQ): Modified.
4964 (char_to_string): Renamed from non_ascii_char_to_string.
4965 Modified.
4966 (string_to_char): Renamed from string_to_non_ascii_char.
4967 (split_string): Renamed from split_non_ascii_string.
4968 (char_printable_p) (Fsplit_char)
4969 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4970 (char_bytes) (Fchar_width) (strwidth): Modified.
4971 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4972 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4973 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4974 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4975 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4976 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4977 (Fcmpchar_cmp_count): Deleted.
4978 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4979 (init_charset_once): Modified.
4980 (syms_of_charset): Modified.
4981
4982 * cmds.c (internal_self_insert): Adjusted for the change of
4983 CHAR_STRING.
4984
4985 * coding.h (emacs_code_class_type): Delete the member
4986 EMACS_leading_code_composition.
4987 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4988 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4989 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4990 (COMPOSING_WITH_RULE_P): Macros deleted.
4991 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4992 macros.
4993 (struct composition_data): New structure.
4994 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4995 (struct coding_system): New members composition_rule_follows,
4996 cmp_data, cmp_data_start, cmp_data_index.
4997 (coding_save_composition) (coding_free_composition_data)
4998 (coding_adjust_composition_offset): Extern them.
4999
5000 * coding.c: Include composite.h.
5001 (DECODE_CHARACTER_ASCII): Don't handle composition here.
5002 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
5003 of multibyte code here.
5004 (DECODE_CHARACTER_DIMENSION2): Likewise.
5005 (detect_coding_emacs_mule): Change the case label from
5006 EMACS_leading_code_composition to 0x80.
5007 (detect_coding_iso2022): Handle new composition sequence.
5008 (DECODE_ISO_CHARACTER): Likewise.
5009 (check_composing_code): Deleted.
5010 (coding_allocate_composition_data): New function.
5011 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
5012 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
5013 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
5014 (decode_coding_iso2022): Handle new composition sequence.
5015 (ENCODE_ISO_CHARACTER): Don't check composition here.
5016 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
5017 (ENCODE_COMPOSITION_NO_RULE_START)
5018 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
5019 (ENCODE_COMPOSITION_END): Handle new composition sequence.
5020 (ENCODE_COMPOSITION_FAKE_START): New macro.
5021 (encode_coding_iso2022): Handle new composition sequence.
5022 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
5023 (encode_coding_sjis_big5): Ignore composition.
5024 (setup_coding_system): Initialize new members of struct
5025 coding_system. Enable composition only when the coding system has
5026 `composition' property t.
5027 (coding_free_composition_data) (coding_adjust_composition_offset)
5028 (coding_save_composition) (coding_restore_composition): New
5029 functions.
5030 (code_convert_region): Call coding_save_composition for encoding
5031 and coding_allocate_composition_data for decoding. Don't skip
5032 ASCII characters if we handle composition on encoding. Call
5033 signal_after_change with Check_BORDER.
5034 (code_convert_string): Call coding_save_composition for encoding
5035 and coding_allocate_composition_data for decoding. Don't skip
5036 ASCII characters if we handle composition on encoding.
5037 (code_convert_string1): Set Vlast_coding_system_used after calling
5038 code_convert_string.
5039 (code_convert_string_norecord): Disable composition.
5040 (Fset_terminal_coding_system_internal): Likewise.
5041 (Fset_safe_terminal_coding_system_internal): Likewise.
5042 (Fset_keyboard_coding_system_internal): Likewise.
5043 (init_coding_once): Set emacs_code_class[0x80] to
5044 EMACS_invalid_code.
5045
5046 * composite.h: New file.
5047
5048 * composite.c: New file.
5049
5050 * data.c (Faref): Delete codes for a composite character..
5051 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
5052
5053 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
5054 (struct glyph): Add new sub-structure cmp to the union `u'.
5055 (enum display_element_type): New member IT_COMPOSITION.
5056 (enum prop_idx): New member COMPOSITION_PROP_IDX.
5057 (struct it): New members cmp_id, cmp_len.
5058
5059 * dispnew.c (direct_output_forward_char): Check point moving into
5060 or out of a composition. If so, give up direct method.
5061
5062 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
5063
5064 * editfns.c (Fchar_to_string): Adjusted for the change of
5065 CHAR_STRING.
5066 (general_insert_function): Likewise.
5067 (Finsert_char): Likewise.
5068 (Fsubst_char_in_region): Likewise. Call update_compositions.
5069 (Ftranslate_region): Call update_compositions.
5070 (Ftranspose_regions): Call update_compositions.
5071
5072 * emacs.c (main): Call syms_of_composite.
5073
5074 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
5075 CHAR_STRING.
5076 (Finsert_file_contents): Set Vlast_coding_system_used before
5077 calling signal_after_change. Call update_compositions if some
5078 texts are inserted..
5079 (Fwrite_region): Adjusted for the change of a_write and e_write.
5080 (a_write): Argument changed. Work based on character position,
5081 not byte position.
5082 (e_write): Argument changed. Handle new way of composition.
5083
5084 * fns.c (Flength): The length of char-table is MAX_CHAR.
5085 (concat): Adjusted for the change of CHAR_STRING.
5086 (Ffillarray): Adjusted for the change of CHAR_STRING.
5087 (Fset_char_table_default): Delete codes for a composite character.
5088 (hash_put): Return hash index.
5089
5090 * fontset.h (struct font_info): New member vertical_centering.
5091 (Vvertical_centering_font_regexp): Extern it.
5092
5093 * fontset.c (Vvertical_centering_font_regexp): New variable.
5094 (syms_of_fontset): Declare it as a Lisp variable and initialize.
5095 Set Vignore_relative_composition to nil.
5096 (fs_load_font): Initialize `vertical_centering' of struct
5097 font_info.
5098
5099 * indent.c (check_composition): New function.
5100 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
5101 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
5102 (current_column_1): Handle new way of composition.
5103 (Fmove_to_column): Likewise.
5104 (compute_motion): Likewise.
5105
5106 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
5107 (insert_char): Likewise.
5108 (insert): Call update_compositions.
5109 (insert_and_inherit): Likewise.
5110 (insert_before_markers): Likewise.
5111 (insert_before_markers_and_inherit): Likewise.
5112 (insert_from_string): Likewise.
5113 (insert_from_string_before_markers): Likewise.
5114 (insert_from_buffer): Likewise.
5115 (replace_range): Likewise.
5116 (count_combining_composition): Deleted.
5117 (count_combining_before): Delete codes for a composite character.
5118 (count_combining_after): Likewise.
5119 (del_range_1): Call update_compositions.
5120 (del_range_byte): Likewise.
5121 (del_range_both): Likewise.
5122 (Fcombine_after_change_execute): Likewise.
5123
5124 * intervals.h: Include composite.h.
5125 (get_property_and_range): Extern it.
5126 (Vtext_property_default_nonsticky): Extern it.
427ec082 5127
5ec14d3c
KH
5128 * intervals.c (adjust_intervals_for_insertion): To check stickines
5129 of properties, pay attention to text-property-default-nonsticky.
5130 (merge_properties_sticky): Likewise.
5131 (get_property_and_range): New function.
5132
5133 * keyboard.c (Vdisable_point_adjustment): New variable.
5134 (Vglobal_disable_point_adjustment): New variable.
5135 (syms_of_keyboard): Declare them as Lisp variables.
5136 (command_loop_1): Check them and call adjust_point_for_property if
5137 necessary.
5138 (adjust_point_for_property): New function.
5139
5140 * keymap.c (push_key_description): Adjusted for the change of
5141 CHAR_STRING.
5142 (Ftext_char_description): Likewise.
5143
5144 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5145 (hash_put): Adjusted for the change of the definition.
5146 (signal_after_change): Likewise.
5147 (check_point_in_composition): Extern it.
5148
5149 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5150 Delete a code that handles an invalid too-long multibyte sequence
5151 because we are now sure that we never encounter with such a
5152 sequence.
5153 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5154 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5155 (init_obarray): Likewise.
5156 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5157
5158 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5159
5160 * process.c: Include composite.h.
5161 (read_process_output): Call update_compositions.
5162
5163 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5164
5165 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5166
5167 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5168 character.
5169
5170 * term.c (encode_terminal_code): Delete codes for a composite
5171 character. Adjusted for the change of CHAR_STRING.
5172 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5173 Delete codes for a composite character.
5174
5175 * textprop.c (Vtext_property_default_nonsticky): New variable
5176 (syms_of_textprop): Declare it as a Lisp variable.
5177
5178 * window.c (Frecenter): Clear all caches of compositions.
5179
5180 * xdisp.c (it_props): Add an entry for composition.
5181 (face_before_or_after_it_pos): For composition, check face of a
5182 character after the composition.
5183 (handle_composition_prop): New function.
5184 (get_next_display_element): Adjusted for the change of
5185 CHAR_STRING.
5186 (set_iterator_to_next): Handle the case that it->method ==
5187 next_element_from_composition.
5188 (next_element_from_composition): New function.
5189 (message_dolog): Adjusted for the change of CHAR_STRING.
5190 (set_message_1): Likewise.
5191 (check_point_in_composition): New function.
5192 (reconsider_clip_changes): If point moved into or out of
5193 composition, set b->clip_changed to 1 to force updating of the
5194 screen.
5195 (disp_char_vector): Delete codes for a composite character.
5196 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5197
5198 * xfaces.c (choose_face_fontset_font): Delete codes for a
5199 composite character.
5200 (realize_x_face): Likewise. Change a place to set local variable
5201 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5202
5203 * xfns.c: Include intervals.h.
5204 (syms_of_xfns): Make `display' property nonsticky by default.
5205
5206 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5207 for find_charset_in_str.
5208
5209 * xterm.h (struct x_output): Change member font_baseline to
5210 baseline_offset.
5211
5212 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5213 for composition.
5214 (x_append_composite_glyph): New function.
5215 (VCENTER_BASELINE_OFFSET): New macro.
5216 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5217 of struct it for the composition. Cache pixel offsets in the
5218 struct composition. Delete codes for a composite character.
5219 Handle Vignore_relative_composition in composition code.
5220 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5221 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5222 (x_compute_glyph_string_overhangs): Likewise.
5223 (x_get_glyph_overhangs): Delete codes for a composite character.
5224 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5225 (x_draw_glyph_string_background): Likewise. Delete codes for
5226 checking s->gidx for a composition.
5227 (x_draw_glyph_string_foreground): Delete code for a composite
5228 character.
5229 (x_draw_composite_glyph_string_foreground): New function.
5230 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5231 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5232 (struct work): Deleted.
5233 (x_fill_composite_glyph_string): Argument changed. Mostly
5234 rewritten for that.
5235 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5236 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5237 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5238 (BUILD_GLYPH_STRINGS): For composition, call
5239 BUILD_COMPOSITE_GLYPH_STRING.
5240 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5241 f->output_data.x->font_baseline.
5242
c3c60f13
GM
52431999-12-14 Gerd Moellmann <gerd@gnu.org>
5244
5245 * xterm.c (show_mouse_face): Don't use updated_area, use
5246 TEXT_AREA.
5247
83c8f461 52481999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5249
5250 * minibuf.c (Fall_completions): Doc fix.
5251
83c8f461 52521999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5253
5254 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5255 has been changed by the Lisp code.
5256
d8eccf12
GM
52571999-12-12 Gerd Moellmann <gerd@gnu.org>
5258
5259 * xfns.c: Indentation fixes.
5260
ae56feae
SM
52611999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5262
5263 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5264
dfa1c6ae
GM
52651999-12-10 Gerd Moellmann <gerd@gnu.org>
5266
5267 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5268 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5269
5270 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5271 to frame.h.
5272
ec18280f
SM
52731999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5274
5275 * keyboard.c (Qratio): New symbol.
5276 (scroll_bar_parts): Add `Qratio' to it.
5277 (syms_of_keyboard): Init `Qratio'.
5278 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5279 * xterm.c (#includes): Allow compilation with only Xaw.
5280 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5281 (xt_action_hook): Replace XAW3D by XAW.
5282 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5283 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5284 Determine epsilon dynamically and don't try to be too clever.
5285 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5286 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5287 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5288 scrollbar (using `ratio').
5289 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5290 scrollbar we have so as to set it up more optimally and to fix
5291 xaw3d_arrow_scroll and xaw3d_pick_top.
5292 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5293 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5294 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5295 is not ignored, using a major gross hack.
5296 (x_initialize): Init default values for xaw3d_arrow_scroll and
5297 xaw3d_pick_top.
5298
83b6d970
DL
52991999-12-09 Dave Love <fx@gnu.org>
5300
5301 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5302
3648c842
GM
53031999-12-08 Gerd Moellmann <gerd@gnu.org>
5304
5305 * eval.c: Remove conditional compilation on `standalone'.
5306 (call_debugger): When entering the debugger while redisplaying,
5307 reset redisplaying_p, and go back to the top-level if the debugger
5308 returns.
5309
05e71564
GM
53101999-12-07 Gerd Moellmann <gerd@gnu.org>
5311
5312 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5313 basic faces are realized before trying to use face `menu'.
5314
5315 * window.c (delete_window): Block input for the time window
5316 matrices are being changed.
5317
b46cd536
DL
53181999-12-07 Dave Love <fx@gnu.org>
5319
5320 * lread.c (Fintern_soft): Fix newlines in doc string.
5321
96acb1f7
GM
53221999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5323
5324 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5325 duplicate definition of ElfW.
5326 (find_section): Copied from unexsgi.c.
5327 (unexec): Use find_section. Adjust whitespace. Initialize
5328 new_data2_offset based on old_data, not sbss (this fixes a bug on
5329 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5330 Adjust test for presence of .mdebug section to the new return
5331 value of find_section.
427ec082 5332
96acb1f7
GM
53331999-12-07 Gerd Moellmann <gerd@gnu.org>
5334
5335 * unexelf.c: Merge changes from 20.5.
5336 (unexec): Handle .lit4 and .lit8 unconditionally.
5337
5338 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5339 unexsgi.o again.
427ec082 5340
96acb1f7
GM
5341 * m/iris5d.h (UNEXEC): Likewise.
5342
7dae4502
SM
53431999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5344
5345 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5346 (syms_of_editfns): Register it.
5347 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5348 (del_range_1, del_range_2): Add a ret_string argument to
5349 request that the deleted text be returned.
5350 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5351 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5352 * casefiddle.c (casify_region): Update del_range_1 call.
5353 * coding.c (code_convert_region): Update del_range_2 call.
5354 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5355
397e4fae
GM
53561999-12-06 Gerd Moellmann <gerd@gnu.org>
5357
5358 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5359
3d973f71
GM
53601999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5361
5362 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5363
740e985f
EZ
53641999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5365
5366 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5367
5368 * insdel.c (adjust_markers_for_delete): Fix last change.
5369
2d764c78
EZ
53701999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5371
5372 Changes for automatic remapping of X colors on terminal frames:
5373
5374 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5375 frames.
5376 (Vface_tty_color_alist): Remove.
5377 (tty_defined_color): New function.
5378 (defined_color): Rewrite to support any type of frame.
5379 (tty_color_name): New function.
5380 (face_color_supported_p, Fface_color_gray_p,
5381 Fface_color_supported_p): Support non-X frames.
5382 (load_color): Enclose the color name in quotes, in the log
5383 messages. Remove DOS-specific version of load_color.
5384 (realize_tty_face): Take the supported colors from
5385 tty-color-alist. Support translation of X colors to the closest
5386 tty color, for both MSDOS and tty frames.
5387 [MSDOS]: Don't invert face colors if they were taken from the
5388 frame colors.
5389 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5390
5391 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5392 Define a mostly empty surrogate.
5393 (tty_display): Declare.
5394
5395 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5396 tty_display.
5397 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5398 frames when the frame's param_alist includes 'reverse.
5399 (tty_display): Define.
5400 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5401 output_data.x member.
5402 (Fframe_parameters): Return foreground and background color names
5403 on tty frames as well, in addition to MSDOS frames.
5404
5405 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5406 selected_frame.
5407 (struct x_output): Remove unused members; document who uses each
5408 member.
5409 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5410 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5411 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5412 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5413 unused macro definintions.
5414
5415 * msdos.c (IT_set_frame_parameters): Don't call
5416 recompute_basic_faces, the next redisplay will, anyway.
5417 (x_current_display): Remove unused variable.
5418 Many functions: changes for Lisp_object selected_frame.
5419 (IT_set_face): If the tty_reverse_p flag is set for the face,
5420 reverse the foreground and background colors.
5421 (Fmsdos_remember_default_colors): New function.
5422 (syms_of_msdos): Defsubr it.
5423 (IT_set_frame_parameters): Use initial_screen_colors[] when
5424 creating a new frame. If the frame parameters include 'reverse,
5425 swap the foreground and background colors.
5426 (internal_terminal_init): Initialize initial_screen_colors to -1.
5427 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5428 cus-start.el.
5429
5430 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5431
5432 * xfns.c (x_defined_color): Rename from defined_color. All
5433 callers changed.
5434 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5435 all callers changed.
5436 (Fxw_color_values): Renamed from Fx_color_values; all callers
5437 changed.
5438 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5439 callers changed.
5440 (x_window_to_frame, x_any_window_to_frame,
5441 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5442 x_top_window_to_frame): Use !FRAME_X_P instead of
5443 f->output_data.nothing.
5444 * xterm.h (x_defined_color): Rename from defined_color.
5445
5446 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5447 f->output_data.nothing.
5448 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5449 all callers changed.
5450 (Fxw_color_values): Renamed from Fx_color_values; all callers
5451 changed.
5452 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5453 callers changed.
5454
5455 * dispextern.h (tty_color_name): Add prototype.
5456
5457 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5458 f->output_data.nothing.
5459 * w32menu.c (menubar_id_to_frame): Likewise.
5460 * w32term.h (w32_output): Declare.
5461
5462 * dosfns.c (Qmsdos_color_translate): Remove.
5463 (msdos_stdcolor_name): Now returns a Lisp_Object.
5464 * dosfns.h (Qmsdos_color_translate): Remove.
5465
5466 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5467
b3e5232e
KH
54681999-12-06 Kenichi Handa <handa@etl.go.jp>
5469
5470 * fileio.c (decide_coding_unwind): Renamed from
5471 set_auto_coding_unwind.
5472 (Finsert_file_contents): Make single unwind protect to call both
5473 Vset_auto_coding_function and Ffind_operation_coding_system.
5474
5475 * insdel.c (adjust_markers_for_delete): Make it non-static.
5476
db0e466c
SM
54771999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5478
5479 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5480 operators and handle them properly.
5481 * regex.h (RE_ALL_GREEDY): New option.
5482 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5483 sorting would put it.
5484 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5485 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5486
22afa6e8
DL
54871999-12-04 Dave Love <d.love@dl.ac.uk>
5488
5489 * m/arm.h: New file.
5490
40afb967
DL
54911999-12-03 Dave Love <fx@gnu.org>
5492
5493 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5494
ddf8eff5
GM
54951999-12-02 Gerd Moellmann <gerd@gnu.org>
5496
5497 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5498 for building with Motif.
5499
5500 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5501 unexelf.o.
427ec082 5502
ddf8eff5
GM
5503 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5504
fa09a82d
DL
55051999-12-01 Dave Love <fx@gnu.org>
5506
5507 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5508
ddf8eff5
GM
55091999-11-28 Gerd Moellmann <gerd@gnu.org>
5510
5511 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5512 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5513 macros.
5514
5515 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5516
fa09a82d
DL
55171999-11-28 eliz <eliz@dlpx1>
5518
5519 * emacs.c (synchronize_locale): Avoid compiler warnings about
5520 pointer type mismatch.
5521
f9632fc8
GM
55221999-11-28 Gerd Moellmann <gerd@gnu.org>
5523
717d0121
GM
5524 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5525 out of range position.
5526
427ec082 5527 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5528 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5529
59c65f1e
EZ
55301999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5531
613a8346
EZ
5532 * charset.c (Fmake_char_internal): Print the charset ID when
5533 signalling an error.
5534
59c65f1e
EZ
5535 * emacs.c (synchronize_locale): Avoid compiler warnings about
5536 pointer type mismatch.
5537
83c8f461 55381999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5539
5540 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5541
18df9369
GM
55421999-11-26 Gerd Moellmann <gerd@gnu.org>
5543
65a3ccf7
GM
5544 * puresize.h (BASE_PURESIZE): Increase to 550000.
5545
b3b98592
GM
5546 * textprop.c (set_text_properties): New function. Like
5547 Fset_text_properties, but with additional parameter
5548 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5549 changes.
5550 (Fset_text_properties): Use it.
5551
5552 * insdel.c (insert_1_both): Call set_text_properties with last
5553 parameter nil so that no after changes will be signaled.
5554
5555 * lisp.h: Add prototype for set_text_properties.
5556
18df9369
GM
5557 * xfaces.c (set_lface_from_font_name): Fix previous change.
5558 (recompute_basic_faces): Change assert to abort.
5559
71a8e74b
DL
55601999-11-25 Dave Love <fx@gnu.org>
5561
5562 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5563 (Fmember, Fdelq, Fdelete): Inline car.
5564 (Fy_or_n_p): Doc fix.
5565
bc6a5782
GM
55661999-11-25 Gerd Moellmann <gerd@gnu.org>
5567
3221576b 5568 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5569 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5570 is not set, try to use a reasonable default.
5571
bc6a5782
GM
5572 * dispnew.c (direct_output_for_insert): Set glyph row's
5573 displays_text_p flag. Correct window's window_end_vpos if
5574 necessary.
5575
0c8559bb
PE
55761999-11-25 Paul Eggert <eggert@twinsun.com>
5577
5578 * emacs.c (fixup_locale): Don't bother to record initial locale.
5579 (synchronize_locale): If the desired locale is nil,
5580 treat it as if it were the empty string,
5581 so that we set the locale from the environment.
5582
35737351
KH
55831999-11-25 Kenichi Handa <handa@etl.go.jp>
5584
5585 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5586 of the current buffer via Fset.
5587
5562b47f
DL
55881999-11-24 Dave Love <fx@gnu.org>
5589
5562b47f
DL
5590 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5591
5592 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5593
00da0e4a
GM
55941999-11-24 Gerd Moellmann <gerd@gnu.org>
5595
5596 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5597
5598 * emacs.c (PVEC_FLAG): New variable.
5599
b1775dc1
GM
56001999-11-23 Gerd Moellmann <gerd@gnu.org>
5601
5602 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5603 that fails on IBM PowerPC, AIX 4.2.
427ec082 5604
08de6200
EZ
56051999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5606
5607 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5608 string of mode-line-format. Remove the obsolete %t.
5609
02fda8ff
GM
56101999-11-22 Gerd Moellmann <gerd@gnu.org>
5611
f2fa858f
GM
5612 * dispnew.c (direct_output_for_insert): Increment glyph positions
5613 for glyphs from buffer text only.
5614
02fda8ff
GM
5615 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5616 (gdb_data_seg_bits): New variables.
427ec082 5617
02fda8ff
GM
5618 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5619 work on systems not allowing enumerators > INT_MAX, and it
5620 won't work if EMACS_INT is long long.
5621
1b0d24e7
PE
56221999-11-22 Paul Eggert <eggert@twinsun.com>
5623
5624 Port to SunOS 4.1.x again. Help out with Alpha port.
5625 Rename messages-locale to system-messages-locale,
5626 and likewise for time-locale.
427ec082 5627
1b0d24e7
PE
5628 * callproc.c (strerror): Remove decl.
5629 * fileio.c (strerror): Likewise.
5630 * process.c (strerror): Likewise.
5631 * emacs.c (strerror): Likewise.
5632 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5633 All uses changed.
5634 (Vprevious_system_messages_locale): Likewise, from
5635 Vprevious_messages_locale.
5636 (Vsystem_time_locale): Likewise, from Vtime_locale.
5637 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5638 (ABORT_RETURN_TYPE): New macro.
5639 (abort): Return type is now ABORT_RETURN_TYPE.
5640 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5641 defined.
5642 (syms_of_emacs): messages-locale -> system-messages-locale,
5643 previous-messages-locale -> previous-system-messages-locale,
5644 time-locale -> system-time-locale,
5645 previous-time-locale -> previous-system-time-locale.
5646
5647 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5648 (const): Do not define; that's config.h's job.
5649 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5650 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5651 (<stddef.h>): Include if STDC_HEADERS is defined.
5652 (FREE_RETURN_TYPE): New macro.
5653 (free): Return type is now FREE_RETURN_TYPE.
5654
5655 * lisp.h (synchronize_system_time_locale): Renamed from
5656 synchronize_time_locale. All uses changed.
5657 (synchronize_system_messages_locale): Likewise, from
5658 synchronize_messages_locale.
5659
5660 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5661 stdlib.h now does this.
5662
5663 * process.c (sys_siglist): Remove.
5664
5665 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5666 New macros.
5667
5668 * syntax.c (scan_sexps_forward): Use abort, not assert.
5669
5670 * sysdep.c (my_sys_siglist): New var.
5671 (sys_siglist): New macro. Remove old initialized vars of same name.
5672 (init_signals): Initialize sys_siglist.
5673
5674 * xfns.c (abort): Remove decl; stdlib.h now does this.
5675
0dcd5b54
DL
56761999-11-18 Dave Love <fx@gnu.org>
5677
946173ad
DL
5678 * filelock.c: Add forward declaration for get_boot_time_1.
5679
0dcd5b54
DL
5680 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5681
71447e8f
GM
56821999-11-18 Gerd Moellmann <gerd@gnu.org>
5683
5684 * buffer.h (struct buffer_text): Add comment about moving
5685 buffer text if REL_ALLOC is defined.
5686
eeedff63
KH
56871999-11-18 Kenichi Handa <handa@etl.go.jp>
5688
5689 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5690
5691 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5692 memory for push_key_description.
5693
5694 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5695 allocate memory for push_key_description.
5696 (describe_buffer_bindings): Likewise.
5697
5d7e4a2c
GM
56981999-11-17 Gerd Moellmann <gerd@gnu.org>
5699
5700 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5701 (Fx_hide_busy_cursor): Ditto.
5702
57031999-11-17 Marco Walther <walther@siemens-pyramid.com>
5704
5705 * unexsni.c (unexec): Handle .rel.dyn section.
5706
b5b41e02
DL
57071999-11-16 Dave Love <fx@gnu.org>
5708
5709 * doc.c (Fdocumentation): Remove gcpro here too.
5710
e35b6123
GM
57111999-11-16 Gerd Moellmann <gerd@gnu.org>
5712
5713 * keyboard.c (command_loop_1): Remove no_redisplay.
5714
83c8f461 57151999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5716
5717 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5718 in noninteractive.
5719
b05d3bee
GM
57201999-11-14 Gerd Moellmann <gerd@gnu.org>
5721
5bcfeb49
GM
5722 * xdisp.c (ensure_echo_area_buffers): New.
5723 (with_echo_area_buffer): Use it.
5724 (setup_echo_area_for_printing): Ditto.
5725
b05d3bee
GM
5726 * buffer.c (indicate-empty-lines): Doc-fix.
5727
9b2e6e4c
GM
57281999-11-12 Gerd Moellmann <gerd@gnu.org>
5729
e7f90eab
GM
5730 * term.c (term_init): If "op" isn't available, don't support color
5731 because we can't switch back to the default foreground and
5732 background.
5733
9b2e6e4c
GM
5734 * doc.c (Fdocumentation_property): Remove GCPRO because
5735 Fsubstitute_command_keys gcpro's the string.
5736
1bf21027
KH
57371999-11-12 Kenichi Handa <handa@etl.go.jp>
5738
5739 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5740
3bc6df53
GM
57411999-11-11 Gerd Moellmann <gerd@gnu.org>
5742
5743 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5744 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5745 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5746
35a5514b
GM
57471999-11-10 Gerd Moellmann <gerd@gnu.org>
5748
5749 * xfns.c (QCuser_data): Removed.
5750 (syms_of_xfns): Initialization of QCuser_data removed.
5751 (parse_image_spec): Don't handle :user-data specially. Allow
5752 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5753 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5754 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5755 parse_image_spec accordingly.
5756
83c8f461 57571999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5758
5759 * cmds.c (Fbeginning_of_line): Doc fix.
5760 (Fend_of_line): Doc fix.
5761
5762 * editfns.c (Fline_beginning_position): If N is not 1,
5763 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5764
5765 * syntax.c (Fforward_word): Handle fields even if would have hit
5766 an edge of the buffer. Return nil if affected by fields.
5767
83c8f461 57681999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5769
5770 * editfns.c (preceding_pos): Function deleted.
5771 (text_property_stickiness): Decrement POS directly.
5772 Fix a confusion that used PT instead of POS.
5773
5774 * editfns.c (find_field): Properly handle the case
5775 of a field boundary where `field' inherits from neither side.
5776
5777 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5778 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5779
fa9aabf6
GM
57801999-11-08 Gerd Moellmann <gerd@gnu.org>
5781
5782 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5783 BEFORE_POTENTIAL_GC before DISCARD.
5784
4015b3c0
GM
57851999-11-07 Gerd Moellmann <gerd@gnu.org>
5786
033a5fa3
GM
5787 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5788
5789 * lisp.h: Add prototype for unmark_byte_stack.
5790
5791 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5792 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5793 XUNMARK.
5794
55b064bd
GM
5795 * xdisp.c (resize_mini_window): Fix computation of needed
5796 mini-window height.
5797
5798 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5799 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5800
4015b3c0 5801 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5802 locally there. Rearrange case statements so that those most
4015b3c0
GM
5803 frequently executed come first. Avoid goto's in frequently
5804 executed cases.
5805
fe512f27
GM
58061999-11-05 Gerd Moellmann <gerd@gnu.org>
5807
dd59e217
GM
5808 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5809 AFTER_POTENTIAL_GC around internal_catch.
5810
bcf28080
GM
5811 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5812 relocate_byte_pcs.
5813 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5814
5815 * eval.c (struct catchtag): Add member byte_stack.
5816 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5817 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5818 catchtag.
5819 (unwind_to_catch): Restore byte_stack_list from catchtag.
5820
5821 * lisp.h: Add prototypes for new functions in bytecode.c.
5822 Add extern declaration for byte_stack_list.
5823
5824 * bytecode.c (struct byte_stack): New.
5825 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5826 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5827 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5828 (HANDLE_RELOCATION): Removed.
5829 (Fbyte_code): Use byte_stack structures.
5830
4d59c34c
GM
5831 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5832
fe512f27
GM
5833 * buffer.c (syms_of_buffer): Extend documentation of
5834 mode-line-format.
5835
60b64cd6
GM
58361999-11-04 Gerd Moellmann <gerd@gnu.org>
5837
5838 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5839
5840 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5841 Ferase_field instead of Fdelete_field.
5842
b51b619b
GM
58431999-11-03 Gerd Moellmann <gerd@gnu.org>
5844
5845 * dispnew.c (Finternal_show_cursor): Change it to set the
5846 cursor on/off, not toggle its state.
5847 (Finternal_show_cursor_p): New.
5848 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5849
5865af0d
DL
58501999-11-03 Dave Love <fx@gnu.org>
5851
5852 * charset.c (split_non_ascii_string): Define return value.
5853
82a700f3
GM
58541999-11-03 Gerd Moellmann <gerd@gnu.org>
5855
edfef199
GM
5856 * minibuf.c (string_to_object): New.
5857 (read_minibuf_noninteractive): New.
5858 (read_minibuf): Call read_minibuf_noninteractive if
5859 noninteractive. Use string_to_object.
5860
82a700f3
GM
5861 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5862
b5540f0d
DL
58631999-11-02 Dave Love <fx@gnu.org>
5864
e69dcd60
DL
5865 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5866
827a1788
DL
5867 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5868 declared with glibc2.
b5540f0d 5869
a69a6e61
GM
58701999-11-02 Gerd Moellmann <gerd@gnu.org>
5871
5872 * lisp.h (QUIT): Give it statement form.
5873
87e21fbd
DL
58741999-11-02 Dave Love <fx@gnu.org>
5875
5876 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5877
1b335865
GM
58781999-11-02 Gerd Moellmann <gerd@gnu.org>
5879
9fb5e03d
GM
5880 * xfns.c (QCuser_data): New.
5881 (syms_of_xfns): Initialize QCuser_data.
5882 (parse_image_spec): Ignore :user-data DATA properties.
5883
1b335865
GM
5884 * xdisp.c (display_line): Set charpos of first glyph in blank
5885 lines not corresponding to any text to -1, even if no glyphs are
5886 filled in in that line.
5887
e76f1c44
GM
58881999-11-01 Gerd Moellmann <gerd@gnu.org>
5889
427ec082 5890 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5891 png_get_sRGB in #ifdef.
5892
111259b4
GM
5893 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5894 (syms_of_display): Use the new name.
5895
dd5c96e8
GM
5896 * textprop.c (verify_interval_modification): Signal text-read-only
5897 instead of calling error.
5898
db8878fb
GM
5899 * data.c (Qtext_read_only): New built-in error.
5900 (syms_of_data): Initialize it.
5901
5902 * lisp.h: Add extern declaration for Qtext_read_only.
5903
e76f1c44
GM
5904 * syntax.c: Remove whitespace after open or in front of closing
5905 parentheses.
5906
83c8f461 59071999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5908
5909 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5910
7843e09c
GM
59111999-10-31 Gerd Moellmann <gerd@gnu.org>
5912
575ed805
GM
5913 * xdisp.c (resize_mini_window): Compute needed height differently.
5914
7843e09c
GM
5915 * fns.c (Flength): Unroll loop over lists.
5916
5917 * xdisp.c (append_space): Return non-zero if space was appended.
5918 (display_line): Set charpos of first glyph to -1 only if that
5919 glyph is the space added by append_glyph.
5920
83c8f461 59211999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5922
5923 * print.c (strout): Consider `noninteractive' and use stdout
5924 only when PRINTCHARFUN is t.
5925
5926 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5927 (gcpro_level): Declare it extern.
5928 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5929 Alternate definitions that set `level' and increment `gcpro_level'.
5930 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5931
5932 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5933 (init_eval) [DEBUG_GCPRO]: Initialize it.
5934 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5935 from remaining gcprolist.
5936
3636f7a3
KH
59371999-10-29 Kenichi Handa <handa@etl.go.jp>
5938
5939 * coding.c (code_convert_region): Update `dst' correctly.
5940
a2ad7096
GM
59411999-10-28 Gerd Moellmann <gerd@gnu.org>
5942
5943 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5944 (Frassoc): Rewritten.
5945
1e3196e8
GM
59461999-10-27 Noah Friedman <friedman@splode.com>
5947
5948 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5949 Define PTY_NAME_SPRINTF.
5950 Redefine PTY_TTY_NAME_SPRINTF.
5951 * config.in: Add undef for HAVE_DEV_PTMX.
5952
83c8f461 59531999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5954
5955 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5956 as arg to DEBUG_POP and DEBUG_PRINT.
5957
83c8f461 59581999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5959
5960 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5961 (Ffset): Call Qad_activate_internal.
5962 (syms_of_data): Initialize Qad_activate_internal.
5963
26922151
GM
59641999-10-27 Gerd Moellmann <gerd@gnu.org>
5965
5966 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5967 Vterminal_frame is selected and Vwindow_system is non-nil.
5968
67a5596f
GM
59691999-10-26 Gerd Moellmann <gerd@gnu.org>
5970
2bea706b
GM
5971 * xdisp.c (echo_area_display): Put previous change in #if 0.
5972
67a5596f
GM
5973 * emacs.c (standard_args): Add `file' as synonym for `visit',
5974 `execute' as synonym for `eval'.
5975 (main): Add new options to usage message.
5976
81dc5de5
GM
59771999-10-25 Gerd Moellmann <gerd@gnu.org>
5978
5979 * data.c (Qhash_table): New.
5980 (Ftype_of): Return it for hash tables.
5981 (syms_of_data): Initialize Qhash_table.
5982
83c8f461 59831999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5984
5985 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5986
66e4690f 59871999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5988
7539e11f
KR
5989 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5990 lisp.h.
5991
5992 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5993 Fbuffer_local_variables, Fother_buffer, record_buffer,
5994 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5995 swap_out_buffer_local_variables, overlays_at, overlays_in,
5996 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5997 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5998 Foverlay_put, report_overlay_modification, evaporate_overlays):
5999 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
6000 references.
6001 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
6002 swap_in_symval_forwarding, set_internal, default_value,
6003 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
6004 Fmake_variable_frame_local, Flocal_variable_p,
6005 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
6006 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
6007 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
6008 * emacs.c (main): Likewise.
6009 * fontset.c (fs_load_font, fs_register_fontset,
6010 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
6011 Fnew_fontset, Fset_fontset_font): Likewise.
6012 * frame.c (do_switch_frame, next_frame, prev_frame,
6013 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
6014 Likewise.
6015 * keyboard.c (read_char, help_char_p, event_to_kboard,
6016 kbd_buffer_get_event, timer_start_idle, timer_check,
6017 make_lispy_event, apply_modifiers, reorder_modifiers,
6018 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
6019 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
6020 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
6021 Fcommand_execute, Fexecute_extended_command): Likewise.
6022 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
6023 Fall_completions): Likewise.
6024 * window.c (Fset_window_margins): Likewise.
6025
6026 * callint.c (quotify_args): Don't explicitly use struct
6027 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
6028
3a7093d8
KR
6029 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
6030 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
6031 if __ELF__ is defined.
6032
2a3d7146
GM
60331999-10-24 Gerd Moellmann <gerd@gnu.org>
6034
6035 * window.c (Fnext_window): Add a QUIT in the loop.
6036
8ac52782
GM
60371999-10-23 Gerd Moellmann <gerd@gnu.org>
6038
427ec082 6039 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
6040 New targets.
6041
05f0d15a
DL
60421999-10-22 Dave Love <fx@gnu.org>
6043
6044 * emacs.c (main): Enable profiling conditional on __linux also.
6045
882fb0e6
GM
60461999-10-20 Gerd Moellmann <gerd@gnu.org>
6047
6048 * xrdb.c (x_load_resources): Set default resources for resource
6049 classes instead of for the specific Emacs.
6050
b5f5bc31
GM
60511999-10-19 Gerd Moellmann <gerd@gnu.org>
6052
66f4dd69
GM
6053 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
6054 defines it that way.
427ec082 6055
b5f5bc31
GM
6056 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
6057 if selected_frame is equal to Vterminal_frame.
6058
68c45bf0 60591999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 6060
68c45bf0 6061 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 6062
68c45bf0
PE
6063 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
6064 when dumping, so that the dumped Emacs doesn't have stray locale info.
6065 (dired.o): Depend on systime.h.
6066 (editfns.o): Depend on coding.h.
6067
6068 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
6069 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
6070 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
6071 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
6072 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6073 Include <config.h> before any system include files.
6074
6075 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
6076 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
6077 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
6078 xmenu.c, xterm.c:
6079 Do not include <stdlib.h>, as <config.h> does this now.
6080
6081 * callproc.c (Fcall_process):
6082 Synchronize messages locale before invoking strerror.
6083 Decode resulting string with locale-coding-system.
6084
6085 * coding.c (Vlocale_coding_system): New var.
6086 (syms_of_coding): Adjust to above change.
6087 (emacs_strerror): New function.
6088
6089 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 6090
68c45bf0
PE
6091 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
6092 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
6093 HAVE_STRSIGNAL): New macros.
6094 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
6095 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
6096
6097 * dired.c: Include "systime.h".
6098 (Ffile_attributes): Do not cast s.st_size to int; this loses
6099 information if int is 32 bits but st_size and EMACS_INT are larger.
6100 Treat large device numbers like large inode numbers.
6101
6102 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
6103
6104 * editfns.c: Include coding.h.
6105 (emacs_strftime): Remove decl.
6106 (emacs_strftimeu): New decl.
6107 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
6108 Use emacs_strftimeu instead of emacs_strftime.
6109 (Fformat_time_string): Convert format string using
6110 Vlocale_coding_system, and convert result back. Synchronize time
6111 locale before invoking lower level function. Invoke
6112 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 6113
68c45bf0
PE
6114 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
6115 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
6116 Vprevious_time_locale): New variables.
6117 (main): Invoke setlocale early, so that initial error messages are
6118 localized properly. But skip locale-setting if LC_ALL is "C".
6119 Fix up locale when it's safe to do so.
6120 (fixup_locale): Moved here from xterm.c.
6121 (synchronize_locale, synchronize_time_locale,
6122 synchronize_messages_locale): New functions.
6123 (syms_of_emacs): Accommodate above changes.
6124
6125 * fileio.c (report_file_error): Convert strerror output according
6126 to Vlocale_coding_system.
6127 (Finsert_file_contents): Check for arithmetic overflow in
6128 computations that depend on file size. Report IO errors
6129 with emacs_strerror, not strerror.
6130
6131 * fns.c (Fgethash): Declare dflt parameter.
6132
6133 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
6134 is defined; that's config.h's job.
6135
6136 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
6137 default these values to long, BITS_PER_LONG, and unsigned long.
6138 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6139 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6140 (code_convert_string_norecord, fixup_locale,
6141 synchronize_messages_locale, synchronize_time_locale,
6142 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6143 All Emacs callers of open, close, read, write changed to use
6144 emacs_open, emacs_close, emacs_read, emacs_write.
6145
6146 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6147 changed to file_tell.
6148 (saved_doc_string_position, prev_saved_doc_string_position): Now
6149 of type file_offset.
6150 (init_lread): Do not fix locale here; fixup_locale now does this.
6151
6152 * m/amdahl.h, s/usg5-4.h:
6153 (NSIG): Remove.
6154 (NSIG_MINIMUM): New macro.
6155
6156 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6157 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6158 s/umips.h, s/usg5-4.h:
6159 (SIGIO): Do not undef.
6160 (BROKEN_SIGIO): New macro.
6161
6162 * m/ustation.h:
6163 (SIGTSTP): Do not undef.
6164 (BROKEN_SIGTSTP): New macro.
6165
6166 * s/gnu-linux.h:
6167 (SIGPOLL, SIGURG): Do not undef.
6168 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6169
6170 * s/ptx4.h:
6171 (SIGINFO): Do not undef.
6172 (BROKEN_SIGINFO): New macros.
427ec082 6173
68c45bf0
PE
6174 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6175
6176 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6177 some Emacs-related changes merged.
6178
6179 * print.c (float_to_string): Prepend "-" to representation of a
6180 NaN if the NaN is negative.
6181
6182 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6183 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 6184
68c45bf0
PE
6185 * process.c (status_message, sigchld_handler): Synchronize locale,
6186 then use strsignal istead of sys_siglist.
6187 * w32proc.c (sys_wait): Likewise.
427ec082 6188
68c45bf0
PE
6189 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6190 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6191 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6192 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6193 (open, close, read, write, INTERRUPTIBLE_OPEN,
6194 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6195
6196 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6197
6198 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6199 sys_open, open): Remove.
6200 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6201 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6202 macros are no longer used.
6203 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6204 (emacs_close): Renamed from sys_close.
6205 (emacs_read): Renamed from sys_read.
6206 (emacs_write): Renamed from sys_write.
6207 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6208 (dup2): Do not print error on failure; the real dup2 doesn't.
6209 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6210
6211 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6212 is defined.
6213 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6214 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6215 (strsignal): Declare if !HAVE_STRSIGNAL.
6216
6217 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6218 (ElfW): Define in terms of ElfExpandBitsW.
6219
6220 * w32proc.c (sys_siglist): Remove decl.
6221
6222 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6223 with ANSI C.
6224 (display_string): Declare face_string_pos arg.
6225
6226 * xfns.c (Fx_show_tip): Declare timeout param.
6227
6228 * xterm.c: No need to include locale.h.
6229 (x_alloc_lighter_color, x_setup_relief_color):
6230 Pass arg as double, not float, for compatibility with ANSI C.
6231 (fixup_locale): Move to emacs.c.
6232 (x_term_init): Do not setlocale or fixup locale; the main program
6233 does this now.
6234
2f0b74ea
DL
62351999-10-18 Dave Love <fx@gnu.org>
6236
6237 * doc.c (Fdocumentation_property): Gcpro `tem'.
6238
471aa4a0
KH
62391999-10-18 Kenichi Handa <handa@etl.go.jp>
6240
6241 * lread.c (Fload): Calculate bytes of filename correctly.
6242 (openp): Likewise.
6243
aca2020b
KH
62441999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6245
6246 * print.c (print_preprocess): In case print-circle is nil,
6247 add OBJ to Vprint_number_table only when OBJ is a symbol.
6248
1f5fe392 62491999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6250
6251 * coding.c (code_convert_string): Add record_unwind_protect to
6252 assure setting inhibit_pre_post_conversion back to zero. Take
6253 care of the multibyteness of the working buffer.
6254
6255 * coding.c (inhibit_pre_post_conversion): New variable.
6256 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6257 ignore post-read-conversion and pre-write-conversion property of
6258 the coding system.
6259 (code_convert_region_unwind): New function.
6260 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6261 running pre-write-conversion and post-read-conversion.
6262 (code_convert_string): Likewise.
6263
cd876a91
GM
62641999-10-17 Miles Bader <miles@gnu.org>
6265
6266 * editfns.c: Doc fix.
6267
62681999-10-17 Miles Bader <miles@gnu.org>
6269
6270 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6271 argument preconditions of find_before_next_newline in the case
6272 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6273 was indeed at the edge.
6274
62751999-10-17 Miles Bader <miles@gnu.org>
6276
6277 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6278 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6279
6280 * editfns.c (text_property_eq, text_property_stickiness): Don't
6281 use initializers for auto variables of type Lisp_Object.
6282 (find_field): Likewise. Use braces around nested ifs.
6283 (Fline_end_position): Store the raw eol in a variable, so that the
6284 final expression doesn't look so ugly.
6285 (Fconstrain_to_field): Doc fix.
6286 (preceding_pos): Renamed from `preceeding_pos'.
6287 (text_property_stickiness, find_field): Call preceding_pos,
6288 not preceeding_pos.
6289
62901999-10-17 Miles Bader <miles@gnu.org>
6291
6292 * editfns.c (Ffield_string_no_properties): New function.
6293 (text_property_stickiness, preceeding_pos): New functions.
6294 (Ffield_string): Remove PROPS parameter.
6295 (find_field): Add MERGE_AT_BOUNDARY parameter.
6296 Rewrite to use stickiness of `field' property to resolve
6297 ambiguous cases.
6298 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6299 (Fconstrain_to_field): Likewise.
6300 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6301 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6302 Supply new MERGE_AT_BOUNDARY argument to find_field.
6303 (Fline_beginning_position, Fline_end_position): Supply new
6304 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6305 Pass a value of Qt for the ONLY_IN_LINE argument to
6306 Fconstrain_to_field (only matters if N != 1).
6307 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6308 to Fconstrain_to_field.
6309
6310 * minibuf.c (Fminibuffer_complete_word): Use
6311 Ffield_beginning to find the prompt end.
6312
63131999-10-17 Miles Bader <miles@gnu.org>
6314
6315 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6316 behavior when NEW_POS is nil.
6317 (find_field): Use XSETFASTINT instead of make_number.
6318 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6319 input string by seeing where the field begins, instead of
6320 looking at text-properties.
6321
63221999-10-17 Miles Bader <miles@gnu.org>
6323
6324 * editfns.c (Qfield): New variable.
6325 (find_field, Ferase_field, Ffield_string,
6326 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6327 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6328 (make_buffer_string_both): Remove minibuffer-prompt hack.
6329 (syms_of_editfns): Initialize Qfield, and subr entries for
6330 field functions above.
6331 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6332 minibuf_save_list.
6333 Don't initialize minibuffer prompt length.
6334 Wrap prompt text-properties around the entire prompt.
6335 Add 'prompt text-property to prompt.
6336 Get final value with Ffield_string instead of make_buffer_string.
6337 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6338 minibuf_save_list.
6339 (do_completion): Get minibuffer input with Ffield_string
6340 instead of Fbuffer_string.
6341 Erase minibuffer input with Ferase_field instead of erase_buffer.
6342 (Fminibuffer_complete_and_exit): Likewise.
6343 Test whether buffer is empty by looking for the 'prompt text
6344 property at the end.
6345 Set prompt length by looking for the end of the prompt text property,
6346 and save prompt length for later use (since there is no longer a
6347 buffer variable to get it from).
6348 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6349 (syms_of_minibuf): Remove initializations of
6350 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6351 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6352 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6353 Don't initialize prompt_end_charpos field.
6354 * syntax.c (Fforward_word): Likewise.
6355 Constrain to any field.
6356
3f6f7508
GM
63571999-10-16 Gerd Moellmann <gerd@gnu.org>
6358
6359 * window.c (enum save_restore_action): New.
6360 (save_restore_orig_size): Change parameter list. Add
6361 functionality to check for valid orig_top and orig_height members
6362 in a window tree.
6363 (grow_mini_window): Call save_restore_orig_size with new parameter
6364 list.
6365 (shrink_mini_window): Restore old window sizes only if old
6366 size information is valid in all windows in a window tree.
427ec082 6367
06482119
GM
63681999-10-15 Gerd Moellmann <gerd@gnu.org>
6369
2710454d
GM
6370 * xmenu.c (set_frame_menubar): Don't call
6371 x_set_menu_resources_from_menu_face here.
6372 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6373
06482119
GM
6374 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6375
17fa2837
DL
63761999-10-14 Dave Love <fx@gnu.org>
6377
6378 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6379
45f93416
GM
63801999-10-14 Gerd Moellmann <gerd@gnu.org>
6381
6382 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6383 fails and h_errno is TRY_AGAIN.
6384
c765b723
DL
63851999-10-13 Dave Love <fx@gnu.org>
6386
6387 * filelock.c (lock_file): Move gcpro of `fn'.
6388
dace7f4e
GM
63891999-10-10 Gerd Moellmann <gerd@gnu.org>
6390
6391 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6392
83c8f461 63931999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6394
6395 * print.c (print): When removing objects from Vprint_number_table,
6396 only scan the newly added objects.
6397 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6398 unconditionally force it to stay in the table.
6399
85177c86
GM
64001999-10-09 Gerd Moellmann <gerd@gnu.org>
6401
6402 * xfns.c (prepare_image_for_display): Don't try to load image if
6403 loading it failed before.
6404 (lookup_image, prepare_image_for_display): Remember if loading the
6405 image failed.
6406 (xpm_load): Add missing UNBLOCK_INPUT.
6407
6408 * dispextern.h (struct image): New member load_failed_p.
6409
11e4de5d
SM
64101999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6411
f28eba7b 6412 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6413 in the docstring.
6414
f1da8f06
GM
64151999-10-08 Gerd Moellmann <gerd@gnu.org>
6416
6417 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6418 Don't call XSetInputFocus because that can generate additional
6419 FocusIn events.
427ec082 6420
c37bbd4f
GM
64211999-10-07 Jeffrey C Honig <jch@bsdi.com>
6422
6423 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6424
83c8f461 64251999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6426
6427 * process.c (wait_reading_process_input): When trying to suck
6428 input from one process, for accept-process-output,
6429 exit that loop if we get EAGAIN or EWOULDBLOCK.
6430
577d9e2f
GM
64311999-10-07 Gerd Moellmann <gerd@gnu.org>
6432
6433 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6434 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6435 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6436 Fpixmap_spec_p and Qpixmap_spec_p.
6437 (load_face_colors, check_lface_attrs,
6438 merge_face_vector_with_property,
6439 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6440 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6441 Fbitmap_spec_p.
6442
f5737ad2
GM
64431999-10-07 Gerd Moellmann <gerd@gnu.org>
6444
6445 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6446 MODE_LINE_FACE_ID.
6447
6448 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6449 (struct x_resources) [USE_X_TOOLKIT]: New.
6450 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6451 [USE_MOTIF]: New.
6452 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6453 [USE_LUCID]: New.
6454 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6455 (Qmenu): New.
6456 (syms_of_xfaces): Initialize Qmenu.
6457 (realize_basic_faces): Realize face `menu'.
6458 (resolve_face_name): New.
6459 (lface_from_face_name): Use it.
6460 (Finternal_set_lisp_face_attribute): Ditto.
6461 (Fpixmap_spec_p): Rewritten. Extend doc string.
6462
6463 * xmenu.c (set_frame_menubar, xmenu_show): Call
6464 x_set_menu_resources_from_menu_face.
6465
6466 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6467 (toplevel): Include X11/Intrinsic.h.
6468
6a1aa823
DL
64691999-10-03 Ken'ichi Handa <handa@gnu.org>
6470
6471 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6472 correctly.
6473
26901792
DL
64741999-09-30 Kenichi Handa <handa@etl.go.jp>
6475
6476 * category.c (modify_lower_category_set): Set default value of
6477 TABLE correctly.
6478
6479 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6480 size correctly.
6481
64821999-09-29 Gerd Moellmann <gerd@gnu.org>
6483
6484 * editfns.c (Fpropertize): Renamed from Fproperties.
6485
64861999-09-29 Gerd Moellmann <gerd@gnu.org>
6487
6488 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6489 frame that hasn't been initialized yet.
6490
83c8f461 64911999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6492
6493 * keymap.c (Fsingle_key_description): Make tem big enough.
6494 (describe_buffer_bindings): Make buf big enough.
6495
83c8f461 64961999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6497
6498 * intervals.c (get_local_map): Use indirect_function,
6499 not Findirect_function.
6500
26901792
DL
65011999-09-27 Dave Love <fx@gnu.org>
6502
6503 * cm.h: Remove unneeded declaration of ospeed.
6504
65051999-09-26 Gerd Moellmann <gerd@gnu.org>
6506
6507 * lisp.h (toplevel): Add prototype for
6508 next_single_char_property_change.
6509
6510 * textprop.c (next_single_char_property_change): New.
6511
6512 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6513 next_single_char_property_change.
6514
65151999-09-25 Gerd Moellmann <gerd@gnu.org>
6516
6517 * editfns.c (Fproperties): New.
6518 (syms_of_editfns): Defsubr it.
6519
6520 * xfns.c (lookup_image): Set image's timestamp because it's
6521 used when we look it up.
6522
65231999-09-23 Gerd Moellmann <gerd@gnu.org>
6524
6525 * window.c (enlarge_window): Add window parameter instead of using
6526 selected_window.
6527 (Fdisplay_buffer): Call it with window parameter instead of
6528 setting selected_window.
6529 (Fenlarge_window, Fshrink_window): Ditto.
6530 (shrink_mini_window): If there is no recorded height and position
6531 info, resize mini-window to height 1.
6532
6533 * xfns.c (image_error): Use add_to_log.
6534
6535 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6536 (load_face_font_or_fontset, load_color,
6537 merge_face_vector_with_property): Ditto.
6538
6539 * dispextern.h: Add prototype for add_to_log.
6540
6541 * xfaces.c (add_to_log): Move to xdisp.c.
6542
6543 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6544 parameter.
6545
65461999-09-23 Gerd Moellmann <gerd@gnu.org>
6547
6548 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6549 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6550
6551 * xdisp.c (resize_mini_window): Use grow_mini_window and
6552 shrink_mini_window.
6553
6554 * window.c (window_min_size): Add parameter ignore_fixed_p.
6555 (change_window_height): Call window_min_size with new parameter.
6556 (shrink_window_lowest_first, save_restore_orig_size,
6557 grow_mini_window, shrink_mini_window): New.
6558 (make_window, replace_window): Initialize orig_top and
6559 orig_height.
6560 (enlarge_window): Renamed from change_window_height. Make it
6561 static.
6562 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6563 enlarge_window instead of change_window_height.
6564
6565 * window.h (struct window): New members orig_top, orig_height.
6566 (toplevel): Add prototypes for grow_mini_window and
6567 shrink_mini_window. Remove prototype for change_window_height.
6568
65691999-09-21 Eli Zaretskii <eliz@gnu.org>
6570
6571 * frame.c (frame_name_fnn_p): Fix previous change.
6572
65731999-09-20 Gerd Moellmann <gerd@gnu.org>
6574
6575 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6576
6577 * dispnew.c (direct_output_for_insert): Cast arguments to
6578 safe_bcopy to char *.
6579
6580 * lread.c (readchar): Remove unused variables.
6581 (read_filtered_event, read1, Fmapatoms): Ditto.
6582 (toplevel): Include intervals.h.
6583
6584 * eval.c (Fsignal): Remove unused variables.
6585 (Fcommandp, do_autoload): Ditto.
6586
6587 * lisp.h: Add prototype for safe_bcopy, fatal.
6588
6589 * editfns.c (init_editfns): Remove unused variables.
6590 (Fgoto_char, Fchar_after, Fformat): Ditto.
6591 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6592
6593 * data.c (find_symbol_value): Remove unused variables.
6594 (Faref, Fstring_to_number): Ditto.
6595 (toplevel): Include stdio.h.
6596 (Fnumber_to_string): Cast XINT to long for %ld.
6597
6598 * casefiddle.c (casify_object): Remove unused variables.
6599 (casify_region): Ditto.
6600
427ec082 6601 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6602 conditinally compiled section in #ifdef.
6603 (toplevel): Include stdio.h.
6604
6605 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6606 keys_of_keymap, syms_of_keymap): Remove unused variables.
6607
66081999-09-20 Gerd Moellmann <gerd@gnu.org>
6609
6610 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6611 whose corresponding window rows have been disabled in
6612 try_window_id.
6613
66141999-09-20 Gerd Moellmann <gerd@gnu.org>
6615
6616 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6617 that window start is out of range.
6618 (handle_display_prop, handle_single_display_prop): Replace
6619 marginal area specifications like `left-margin' with `(margin
6620 left-margin)'.
6621 (Qmargin): New.
6622 (syms_of_xdisp): Initialize Qmargin.
6623
66241999-09-19 Gerd Moellmann <gerd@gnu.org>
6625
6626 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6627 describe_syntax, skip_chars): Remove unused variables.
6628 (back_comment, forw_comment): Add braces to if-statement with
6629 if-else as dependent statement.
6630
6631 * process.c (list_processes_1): Remove unused variables.
6632 (Fopen_network_stream, create_process): Add parentheses to
6633 conditional expressions.
6634 (create_process): Put declaration of sigchld in #if 0.
6635 (Fopen_network_stream): Removed unused variables.
6636 (Fopen_network_stream, wait_reading_process_input,
6637 wait_reading_process_input, send_process, send_process): Ditto.
6638 (toplevel): Add prototypes for set_waiting_for_input and
6639 keyboard_bit_set.
6640
6641 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6642
6643 * textprop.c (Fset_text_properties): Remove unused variables.
6644 (text_property_list, verify_interval_modification,
6645 interval_has_all_properties): Ditto.
6646
6647 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6648 (Fcall_process): Remove unused variable.
6649
6650 * keyboard.c (Frecursive_edit): Remove unused variable.
6651 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6652 timer_check, make_lispy_event, menu_bar_items,
6653 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6654 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6655 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6656 read_key_sequence): Ditto. Fread_key_sequence,
6657 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6658 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6659 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6660 (Fexecute_extended_command): Cast XINT to long for %ld.
6661 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6662 (toplevel): Include sys/types.h.
6663
6664 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6665 (toplevel): Add prototypes for stuff_char, and
6666 code_convert_string_norecord.
6667
66681999-09-19 Gerd Moellmann <gerd@gnu.org>
6669
6670 * buffer.h: Add prototype for r_re_alloc.
6671
6672 * insdel.c (copy_text): Removed unused variables.
6673 (count_combining_after, count_combining_after, insert_1_both,
6674 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6675 (adjust_after_replace, replace_range): Add parentheses to logical
6676 expressions. Remove unused variables.
6677 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6678 expression.
6679
6680 * alloc.c (Fgarbage_collect): Remove unused variable.
6681 (compact_strings): Add parentheses around assignments in
6682 conditional context.
6683 (toplevel): Put declaration of unused function clear_marks
6684 in #if 0 like its definition.
6685
6686 * lisp.h: Add prototype for shrink_regexp_cache,
6687 sweep_weak_hash_tables.
6688
66891999-09-19 Dave Love <fx@gnu.org>
6690
6691 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6692
6693 * doc.c (read_bytecode_char): Declare arg.
6694
6695 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6696 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6697
66981999-09-18 Richard Stallman <rms@gnu.org>
6699
6700 * xdisp.c (echo_area_display): Turn off code that returned
6701 without doing anything when using a terminal frame.
6702
83c8f461 67031999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6704
6705 * unexelf.c (unexec): Don't get confused by a short section
6706 just before the bss section.
6707
26901792
DL
67081999-09-16 Gerd Moellmann <gerd@gnu.org>
6709
6710 * emacs.c (main): Remove unused variables.
6711 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6712
6713 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6714 init_fileio_once, syms_of_sound, init_xfns, init_fns
6715 init_sound, check_message_stack.
6716
6717 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6718
6719 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6720 ambiguous else warning.
6721 (split_interval_left): Remove unused variables.
6722 (previous_interval, adjust_intervals_for_deletion,
6723 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6724 (icount, idepth, zero_length): Move into #if 0 section below
6725 original position where these are used.
6726
6727 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6728
6729 * buffer.c (Fkill_buffer): Remove unused variables.
6730 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6731 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6732 init_buffer_once, (syms_of_buffer): Ditto.
6733
6734 * xrdb.c (get_fallback): Remove unused variable.
6735 (x_load_resources): Ditto. Put local variable used for Motif only
6736 in #ifdef USE_MOTIF.
6737
67381999-09-16 Gerd Moellmann <gerd@gnu.org>
6739
6740 * minibuf.c (read_minibuf): Remove unused variables.
6741 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6742 (do_completion): Move assignment out of conditional context.
6743 (Fdisplay_completion_list): Add parentheses to conditional expression.
6744
6745 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6746
6747 * lisp.h: Add prototype for no_switch_window.
6748
6749 * window.c (Fset_window_buffer): Remove unused variables.
6750 (Fset_window_margins): Ditto.
6751
6752 * xdisp.c (resize_mini_window): Temporarily set the selected
6753 window's or Vminibuf_scroll_window's height to "fixed" around
6754 the call the change_window_height.
6755
6756 * window.c (window_fixed_size_p): Check window's height_fixed_p
6757 flag.
6758
6759 * window.h (struct window): New member height_fixed_p.
6760
6761 * dispnew.c (direct_output_forward_char): Don't use this method
6762 if showing a message or a message was just cleared because we
6763 might need to resize the mini-window.
6764
67651999-09-16 Gerd Moellmann <gerd@gnu.org>
6766
6767 * frame.c (Fdelete_frame): Correct local variable pointing to
6768 selected frame after selecting new frame.
6769
67701999-09-15 Richard Stallman <rms@gnu.org>
6771
6772 * puresize.h (BASE_PURESIZE): Increase to 525000.
6773
6774 * filelock.c (Vtemporary_file_directory): New variable.
6775 (syms_of_filelock): Set up Lisp variable.
6776
67771999-09-15 Gerd Moellmann <gerd@gnu.org>
6778
6779 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6780 (encode_terminal_code): Remove unused variables.
6781 (turn_off_face): Ditto.
6782 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6783
6784 * dispnew.c (update_frame_line): If writing whole desired line,
6785 don't clear to end of line if already at the end.
6786
67871999-09-15 Gerd Moellmann <gerd@gnu.org>
6788
6789 * xdisp.c (resize_mini_window): Don't report changed window
6790 height if it actually hasn't changed.
6791
427ec082 6792 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6793 unused variables.
6794 (mark_shell_size_user_specified): Put in #if 0 because not used.
6795 (create_frame_gcs): Put in #if 0 because currently unused.
6796 (first_frame_p): Ditto.
6797
6798 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6799 single_submenu, update_frame_menubar, set_frame_menubar,
6800 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6801 variables.
6802
6803 * print.c (PRINTFULLP): Removed because it is no longer used and
6804 is misleading.
6805 (Ferror_message_string): Remove unused variables.
6806 (print_object): Cast argument of sprintf to long for `%ld'
6807 specifier. Remove unused variable.
6808
68091999-09-14 Gerd Moellmann <gerd@gnu.org>
6810
6811 * sound.c (Fplay_sound): Remove usused variables.
6812 (be2hs): Put in #if 0 because it's currently not used.
6813
68141999-09-14 Ken Raeburn <raeburn@gnu.org>
6815
6816 * print.c (Ferror_message_string, print_error_message,
6817 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6818 member access.
6819
68201999-09-14 Gerd Moellmann <gerd@gnu.org>
6821
6822 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6823
6824 * frame.c (Fnext_frame): Remove unused variable(s).
6825 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6826 (store_frame_param): Add parentheses to conditional expression.
6827 (Fmodify_frame_parameters): Remove unused variables.
6828 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6829 Ditto.
6830
6831 * xfns.c (x_set_background_color): Remove unused variable(s).
6832 (x_set_border_pixel): Ditto.
6833 (x_set_menu_bar_lines): Put local variable used only for
6834 non-toolkit case in #ifdef/#endif.
6835 (x_figure_window_size): Remove unused variable(s).
427ec082 6836 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6837 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6838 png_load, jpeg_load, gif_load, x_create_tip_frame,
6839 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6840
6841 * xterm.c (x_scroll_bar_handle_click): Compile only if
6842 not USE_TOOLKIT_SCROLL_BARS.
6843 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6844
6845 * dispextern.h: Add prototypes for gamma_correct and
6846 x_kill_gs_process.
6847
6848 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6849 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6850 x_set_toolkit_scroll_bar_thumb): Ditto.
6851 (x_scroll_bar_create): Move local variable to the
6852 conditionally compiled section of code where it is used.
6853 (x_scroll_bar_create): Remove unused variable(s).
6854 (x_scroll_bar_remove, XTread_socket): Ditto.
6855 (XTread_socket) <ConfigureNotify>: Move variables used for
6856 non-toolkit case into conditionally compiled section of code.
6857
6858 * window.h (freeze_window_starts): Fix typo in prototype.
6859
6860 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6861 variable(s).
6862
6863 * lisp.h: Add prototype for debug_print.
6864
6865 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6866 to use do-while.
6867
6868 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6869 (Fchar_table_range, Fset_char_table_default, mapcar1,
6870 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6871
6872 * lisp.h: Add prototype for getloadavg.
6873
68741999-09-14 Andreas Schwab <schwab@gnu.org>
6875
6876 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6877
6878 * lisp.h: Declare close_file_unwind.
6879
68801999-09-14 Richard Stallman <rms@gnu.org>
6881
6882 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6883
68841999-09-13 Gerd Moellmann <gerd@gnu.org>
6885
6886 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6887 is always set correctly.
6888
68891999-09-13 Dave Love <fx@gnu.org>
6890
6891 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6892 declaration.
6893
68941999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6895
6896 * xdisp.c (QCfile): Move here from xfns.c.
6897 (syms_of_xdisp): Initialize it.
6898 (message2_nolog): Change for Lisp_Object selected_frame.
6899 (message3_nolog, message_with_string, message,
6900 setup_echo_area_for_printing, truncate_echo_area,
6901 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6902
69031999-09-13 Dave Love <fx@gnu.org>
6904
6905 * xterm.c: Don't continue #define args for benefit of old cc.
6906 (xt_action_hook): Indent #error for benefit of K&R cc.
6907
69081999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6909
6910 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6911 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6912 (XRINGBELL): Removed.
6913
69141999-09-13 Dave Love <fx@gnu.org>
6915
6916 * xfns.c (x_put_x_image): Make type consistent with declaration.
6917
6918 * fns.c (Fmake_hash_table): Fix string continuation.
6919
69201999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6921
6922 * xfns.c (QCfile): Moved to xdisp.c.
6923 (syms_of_xfns): Don't initialize QCfile.
6924 (check_x_frame): Change for Lisp_Object selected_frame.
6925 (check_x_display_info, x_get_resource_string): Ditto.
6926
69271999-09-13 Gerd Moellmann <gerd@gnu.org>
6928
6929 * minibuf.c (choose_minibuf_frame): Don't try to set the
6930 mini-buffer window's buffer, if the buffer is invalid.
6931
6932 * xfns.c (QCfile): Moved to xdisp.c.
6933 (syms_of_xfns): Don't initialize QCfile.
6934
6935 * xdisp.c (QCfile): Move here from xfns.c.
6936 (syms_of_xdisp): Initialize it.
6937
6938 * lisp.h (selected_frame): Add external declaration.
6939
6940 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6941 (Fx_store_cut_buffer_internal): Ditto.
6942 (Fx_rotate_cut_buffers_internal): Ditto.
6943
6944 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6945 selected_frame.
6946 (Finternal_set_lisp_face_attribute): Ditto.
6947 (Finternal_get_lisp_face_attribute): Ditto.
6948 (Finternal_lisp_face_empty_p): Ditto.
6949 (Fdump_face): Ditto.
6950
6951 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6952 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6953 set_terminal_window, set_scroll_region, reassert_line_highlight,
6954 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6955 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6956 encode_terminal_code, write_glyphs, term_init): Ditto.
6957
6958 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6959 (kbd_input_ast, read_input_waiting): Ditto.
6960
6961 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6962 selected_frame.
6963 (read_minibuf): Ditto.
6964
6965 * keyboard.c (command_loop_1): Change for Lisp_Object
6966 selected_frame.
6967 (cmd_error_internal, command_loop_1, read_char,
6968 kbd_buffer_get_event, read_avail_input,
6969 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6970 interrupt_signal, quit_throw_to_read_char): Ditto.
6971
6972 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6973 (Ffontset_info): DItto.
6974
6975 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6976
6977 * dispnew.c (selected_frame): Make it a Lisp_Object.
6978 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6979 (direct_output_for_insert, direct_output_forward_char,
6980 init_display): Ditto.
6981
6982 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6983 selected_frame.
6984 (set_internal): Ditto.
6985
6986 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6987 (record_buffer): Ditto.
6988
6989 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6990 (do_switch_frame): Change for Lisp_Object selected_frame.
6991 (Fselected_frame): Ditto.
6992 (Fframe_first_window): Use SELECTED_FRAME.
6993 (Fframe_root_window): Change for Lisp_Object selected_frame.
6994 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6995 Fprevious_frame, other_visible_frames, Fdelete_frame,
6996 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6997 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6998 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6999 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
7000 Fset_frame_height, Fset_frame_width): Ditto.
7001
70021999-09-13 Gerd Moellmann <gerd@gnu.org>
7003
7004 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
7005 (message3_nolog, message_with_string, message,
7006 setup_echo_area_for_printing, truncate_echo_area,
7007 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
7008
7009 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
7010 (Fx_popup_dialog): Ditto.
7011
7012 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
7013 (check_x_display_info, x_get_resource_string): Ditto.
7014
7015 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
7016 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
7017 (XRINGBELL): Removed.
7018
7019 * window.c (Fminibuffer_window): Change for Lisp_Object
7020 selected_frame.
7021 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
7022 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
7023 Fcurrent_window_configuration, init_window_once): Ditto.
7024
7025 * frame.h (SELECTED_FRAME): New.
7026
70271999-09-12 Ken Raeburn <raeburn@gnu.org>
7028
7029 * category.c (word_boundary_p): Use XCAR and XCDR.
7030 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
7031 Fregister_code_conversion_map): Likewise.
7032 * coding.c (setup_coding_system, detect_coding_system,
7033 Ffind_operation_coding_system, Fset_coding_priority_internal):
7034 Likewise.
7035 * doc.c (get_doc_string, Fdocumentation,
7036 store_function_docstring): Likewise.
7037 * editfns.c (save_restriction_restore): Likewise.
7038 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
7039 skip_debugger, find_handler_clause, Fautoload, Fapply,
7040 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
7041 Likewise.
7042 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
7043 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
7044 Fread_file_name): Likewise.
7045 * filelock.c (unlock_all_files): Likewise.
7046 * insdel.c (Fcombine_after_change_execute): Likewise.
7047 * intervals.c (adjust_intervals_for_insertion): Likewise.
7048 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
7049 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
7050 store_in_keymap, Fcopy_keymap, define_as_prefix,
7051 current_minor_maps, Faccessible_keymaps,
7052 accessible_keymaps_char_table, Fkey_description,
7053 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
7054 describe_buffer_bindings, describe_map_tree, shadow_lookup,
7055 describe_map): Likewise.
7056 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
7057 read_list, init_lread): Likewise.
7058 * search.c (Fmatch_data): Likewise.
7059 * sunfns.c (Fsun_menu_internal): Likewise.
7060 * syntax.c (describe_syntax): Likewise.
7061 * undo.c (record_insert, record_delete, Fundo_boundary,
7062 truncate_undo_list): Likewise.
7063 * vmsproc.c (child_sig): Likewise.
7064
7065 * editfns.c (Fformat): Use XFLOAT_DATA.
7066
70671999-09-12 Gerd Moellmann <gerd@gnu.org>
7068
7069 * keyboard.c (command_loop_1): Resize mini-window to the
7070 exact size of a message displayed, if any.
7071
7072 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
7073 to exact size if exact_p is non-zero.
7074 (display_echo_area_1): Call resize_mini_window with
7075 new parameter.
7076 (redisplay_internal): Ditto.
7077 (resize_echo_area_axactly): New.
7078
7079 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
7080 new parameter.
7081
7082 * dispextern.h: Change prototype of resize_mini_window.
7083 Add prototype for resize_echo_area_axactly.
7084
7085 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
7086 (syms_of_xfaces): Defsubr accordingly.
7087
7088 * xdisp.c (hscroll_window_tree): Choose cursor row from
7089 desired or current matrix.
7090 (redisplay_internal): Hscroll before updating.
7091
70921999-09-12 Gerd Moellmann <gerd@gnu.org>
7093
7094 * syntax.c (Fforward_word): Use prompt_end_charpos instead
7095 of minibuffer_prompt_length.
7096
7097 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
7098 of minibuffer_prompt_length.
7099 (read_minibuf_unwind): Ditto.
7100 (Fminibuffer_complete_and_exit): Ditto.
7101 (Fminibuffer_complete_word): Ditto.
7102 (Fminibuffer_prompt_end): Ditto.
7103
7104 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
7105 of minibuffer_prompt_length.
7106 (Fline_beginning_position): Ditto.
7107
7108 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
7109 of minibuffer_prompt_length.
7110 (Fmake_indirect_buffer): Ditto.
7111 (Fkill_buffer): Ditto.
7112 (Ferase_buffer): Ditto.
7113
7114 * buffer.h (prompt_end_charpos): Replaces
7115 minibuffer_prompt_length.
7116
427ec082 7117 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
7118 without the prompt.
7119
7120 * editfns.c (make_buffer_string_both): Take out the code
7121 to handle mini-buffer prompts.
7122 (Fbuffer_string): Handle the prompt here, instead.
7123
7124 * xfaces.c (lface_from_face_name): Resolve face aliases.
7125 (Qmode_line): Replaces Qmodeline.
7126 (realize_basic_faces): Use Qmode_line.
7127 (syms_of_xfaces): Initialize Qmode_line.
7128
71291999-09-12 Gerd Moellmann <gerd@gnu.org>
7130
7131 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
7132 current column after inserting prompt.
7133 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
7134
7135 * xfaces.c (Qframe_update_face_colors): New.
7136 (syms_of_xfaces): Initialize call.
7137 (update_face_from_frame_parameter): Call that function when
7138 the frame's background changes.
7139
71401999-09-12 Richard Stallman <rms@gnu.org>
7141
7142 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7143
71441999-09-12 Ken Raeburn <raeburn@gnu.org>
7145
7146 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7147 mark_object, mark_buffer): Use XCAR and XCDR.
7148 * bytecode.c (Fbyte_code): Likewise.
7149 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7150 Likewise.
7151 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7152 getenv_internal): Likewise.
7153 * dired.c (file_name_completion): Likewise.
7154 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7155 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7156 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7157 * indent.c (Fcompute_motion): Likewise.
7158 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7159 list_processes_1, Fstart_process, Fopen_network_stream,
7160 wait_reading_process_input, read_process_output_call,
7161 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7162 status_notify, wait_reading_process_input): Likewise.
7163 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7164 extend_property_ranges): Likewise.
7165 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7166 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7167 x_report_frame_params, x_set_cursor_type, x_icon_type,
7168 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7169 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7170 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7171 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7172 x_display_info_for_name, Fx_display_list): Likewise.
7173 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7174 Fx_popup_menu, Fx_popup_dialog): Likewise.
7175 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7176 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7177 w32_term_init, x_delete_display): Likewise.
7178 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7179 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7180 x_top_window_to_frame, x_set_frame_parameters,
7181 x_report_frame_params, x_set_cursor_type, x_icon_type,
7182 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7183 Fx_display_list, x_create_tip_frame): Likewise.
7184 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7185 Fx_popup_menu, Fx_popup_dialog): Likewise.
7186 * xselect.c (x_own_selection, x_get_local_selection,
7187 x_handle_selection_request, x_handle_selection_clear,
7188 x_clear_frame_selections, wait_for_property_change_unwind,
7189 wait_for_property_change, x_handle_property_notify,
7190 copy_multiple_data, x_get_foreign_selection,
7191 lisp_data_to_selection_data, clean_local_selection_data,
7192 x_handle_selection_notify, Fx_get_selection_internal,
7193 x_disown_buffer_selections): Likewise.
7194 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7195 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7196 Likewise.
7197
7198 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7199 XFLOAT_DATA.
7200 * bytecode.c (Fbyte_code): Likewise.
7201 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7202 fmod_float): Likewise.
7203
72041999-09-11 Richard Stallman <rms@gnu.org>
7205
7206 * xdisp.c (run_window_scroll_functions): If hook functions switch
7207 buffers, switch back after.
7208
72091999-09-11 Ken Raeburn <raeburn@gnu.org>
7210
7211 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7212 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7213 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7214 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7215 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7216 XCDR.
7217 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7218 XCDR.
7219
72201999-09-10 Richard Stallman <rms@gnu.org>
7221
7222 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7223 not RevertToPointerRoot.
7224 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7225 Fix the code to clear around the scroll bar.
7226
72271999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7228
7229 * print.c: Support print-circle and related features.
7230 (Vprint_gensym_alist): Removed.
7231 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7232 Vprint_number_table): New variables.
7233 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7234 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7235 (print, print_preprocess, print_preprocess_string, print_object):
7236 New/modified functions with print-circle feature. Use
7237 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7238 (syms_of_print): Defined new Lisp variables `print-circle',
7239 `print-continuous-numbering', `print-number-table'.
7240
72411999-09-10 Gerd Moellmann <gerd@gnu.org>
7242
7243 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7244 as background color specification instead of an integer.
7245 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7246 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7247 (clear_image_cache, syms_of_xfns): Use it.
7248 (Qpostscript): Replaces Qghostscript.
7249 (gs_type): Use it.
7250 (gs_image_p): Ditto.
7251 (syms_of_xfns): Initialize Qpostscript.
7252
72531999-09-10 Richard Stallman <rms@gnu.org>
7254
7255 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7256
72571999-09-09 Richard Stallman <rms@gnu.org>
7258
7259 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7260
7261 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7262
72631999-09-09 Gerd Moellmann <gerd@gnu.org>
7264
7265 * fns.c (Fmakehash): Accept just one optional argument TEST.
7266
7267 * xfns.c (QCindex): New.
7268 (syms_of_xfns): Initialize QCindex.
7269 (gif_load): Use it instead of `:image'.
7270
72711999-09-09 Richard Stallman <rms@gnu.org>
7272
7273 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7274 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7275
72761999-09-08 Gerd Moellmann <gerd@gnu.org>
7277
7278 * xdisp.c (Qwhen): Replaces QCwhen.
7279 (syms_of_xdisp): Initialized it instead of QCwhen.
7280 (handle_single_display_prop): Use it instead of QCwhen.
7281
72821999-09-08 Ken'ichi Handa <handa@gnu.org>
7283
7284 * charset.c (translate_char): Reset MSBs of arguments of
7285 MAKE_CHAR.
7286 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7287
72881999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7289
7290 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7291
7292 * fns.c (Fbase64_decode_region): Don't place point outside of the
7293 current accessible portion.
7294
72951999-09-07 Richard Stallman <rms@gnu.org>
7296
7297 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7298 parent is an ancestor of SUBMAP; otherwise, add it as the
7299 ultimate ancestor.
7300
73011999-09-07 Gerd Moellmann <gerd@gnu.org>
7302
7303 * xdisp.c (handle_single_display_prop): Change conditional
7304 display property to `:when FORM . VALUE'.
7305
73061999-09-07 Richard Stallman <rms@gnu.org>
7307
7308 * fileio.c (Fwrite_region): Doc fix.
7309
73101999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7311
7312 * fileio.c (Qexcl): New variable.
7313 (report_file_error): Handle EEXIST specially.
7314 (Fwrite_region): Special handling for CONFIRM = `excl'.
7315 (syms_of_fileio): Initialize Qexcl.
7316
73171999-09-07 Gerd Moellmann <gerd@gnu.org>
7318
7319 * xfns.c (x_set_foreground_color): Call
7320 update_face_from_frame_parameter.
7321 (x_set_background_color): Ditto.
7322 (x_set_mouse_color): Ditto.
7323 (x_set_cursor_color): Ditto.
7324 (x_set_border_color): Ditto.
7325 (x_set_scroll_bar_foreground): Ditto.
7326 (x_set_scroll_bar_background): Ditto.
7327
7328 * xfaces.c (recompute_basic_faces): Clear face cache.
7329 (Finternal_set_lisp_face_attribute): Modify frame parameters
7330 if attributes of certain faces are changed.
7331 (update_face_from_frame_parameter): New.
7332
7333 * xfaces.c (realize_basic_faces): Realize new basic faces.
7334
7335 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7336 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7337
7338 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7339 (syms_of_xfaces): Intialize new symbols.
7340
7341 * fns.c (Fmakehash): Take one argument, test, make all the
7342 rest keyword arguments.
7343
7344 * window.c (Fset_window_margins): Make window the first argument.
7345 (set_window_buffer): Call Fset_window_margins with window as first
7346 argument.
7347
73481999-09-07 Gerd Moellmann <gerd@gnu.org>
7349
7350 * xfaces.c (Qfringe): Replaces Qmargin.
7351
73521999-09-07 Kenichi Handa <handa@etl.go.jp>
7353
7354 * charset.h: Lots of comments fixed.
7355 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7356 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7357
7358 * charset.c : Lots of comments fixed.
7359 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7360 (CHAR_COMPONENTS_VALID_P): Name changed from
7361 CHAR_COMPONENT_VALID_P. Caller changed.
7362
73631999-09-06 Richard Stallman <rms@gnu.org>
7364
7365 * insdel.c (syms_of_insdel): Define Lisp variable
7366 inhibit-modification-hooks.
7367
73681999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7369
7370 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7371 unexaix.c.
7372
7373 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7374
73751999-09-06 Dave Love <fx@gnu.org>
7376
7377 * unexaix.c: New version incorporating Michael Sperber's changes
7378 from XEmacs. Should solve problems on AIX 4.3.
7379
7380 * lread.c (Vbyte_boolean_vars): New variable.
7381 (defvar_bool, syms_of_lread): Use it.
7382
73831999-09-05 Richard Stallman <rms@gnu.org>
7384
7385 * minibuf.c (read_minibuf): Put all three properties on the
7386 same range, the whole prompt.
7387
73881999-09-05 Gerd Moellmann <gerd@gnu.org>
7389
7390 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7391 (Fplay_sound, syms_of_sound): Use it.
7392 (parse_sound): Allow float volume values in the range [0, 1].
7393 (Fplay_sound): Ditto.
7394
7395 * window.c (Fset_window_vscroll): Make window the first argument,
7396 amount to scroll the second. Take non-negative vscroll as
7397 argument.
7398 (Fwindow_vscroll): Return non-negative vscroll.
7399
7400 * xfns.c (Fx_show_tip): Improve documentation.
7401
74021999-09-05 Gerd Moellmann <gerd@gnu.org>
7403
7404 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7405 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7406 `top-line' and `top_line' to `header-line' and `header_line'.
7407 Likewise for similar spellings.
7408
74091999-09-05 Gerd Moellmann <gerd@gnu.org>
7410
7411 * xdisp.c (row_containing_pos): New.
7412 (try_window_id): Use it.
7413
7414 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7415 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7416 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7417 Likewise for upper-case etc.
7418
74191999-09-05 Gerd Moellmann <gerd@gnu.org>
7420
7421 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7422 Fix reference to renamed variable.
7423
74241999-09-04 Gerd Moellmann <gerd@gnu.org>
7425
7426 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7427 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7428 Qfixed_window_size.
7429 (syms_of_window): Ditto.
7430
7431 * fns.c (Fmakehash): Exchange optional test and size arguments.
7432
74331999-09-03 Gerd Moellmann <gerd@gnu.org>
7434
7435 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7436 under newly created scroll bar.
7437 (expose_window): If window is not yet fully initialized, do
7438 nothing. This can happen when toolkit scroll bars are used and a
7439 window is split. Reconfiguring the scroll bars will generate an
7440 expose for a newly created window.
7441
7442 * frame.h (struct frame): New member `gamma'.
7443
7444 * xfns.c: Include math.h. Add extern declaration for atof in case
7445 we don't see one.
7446 (Qscreen_gamma): New.
7447 (struct x_frame_parm_table): Add prototypes, add
7448 x_set_screen_gamma.
7449 (gamma_correct): New function.
7450 (defined_color): Call it.
7451 (x_set_screen_gamma): New.
7452 (x_set_title): Add parameter old_value.
7453 (RES_TYPE_FLOAT): New.
7454 (x_get_arg): Handle RES_TYPE_FLOAT.
7455 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7456 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7457 new prototype.
7458 (lookup_rgb_color): Ditto.
7459 (syms_of_xfns): Initialize Qscreen_gamma.
7460
7461 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7462 New. Allocate color for lwlib widgets.
7463 (x_alloc_nearest_color): Change parameter list include the
7464 frame on which to allocate colors. Gamma-correct colors.
7465 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7466 parameter list.
7467
7468 * xterm.h: Change protorype of x_alloc_nearest_color.
7469
74701999-09-03 Richard Stallman <rms@gnu.org>
7471
7472 * callproc.c: Delete the system-independent include of stdlib.h
7473 (leaving only the one in the WINDOWSNT conditional).
7474
74751999-09-03 Andrew Choi <choi@cs.hku.hk>
7476
7477 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7478 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7479
26901792
DL
7480 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7481 Window types and macros.
7482
7483 * frame.h: Do nothing if included a second time.
7484 (enum output_method): Add mac_output frame type.
7485 (union output_data): Add new alternative `mac'.
7486 (FRAME_MAC_P): New macro.
427ec082 7487
26901792
DL
7488 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7489 (syms_of_frame_1): Initialize Qmac.
7490 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7491 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7492 (Fmodify_frame_parameters) [macintosh]: Call
7493 mac_set_frame_parameter in macterm.c.
427ec082 7494
26901792
DL
7495 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7496 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7497
26901792
DL
7498 * make-docfiles.c: Correctly handle input files with Mac-style
7499 eol's.
427ec082 7500
26901792 7501 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7502
26901792
DL
7503 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7504 file of an X Window environment.
427ec082 7505
26901792
DL
7506 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7507 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7508
26901792
DL
7509 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7510 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7511 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7512 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7513 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7514 New functions, replacing POSIX features.
427ec082 7515
26901792
DL
7516 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7517 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7518 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7519
7520 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7521 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7522 (myPasswdDir, TempDirName, sys_siglist): New variables.
7523
7524 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7525 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7526 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7527 Define empty stubs so Emacs will link.
7528
75291999-09-03 Gerd Moellmann <gerd@gnu.org>
7530
7531 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7532
7533 * window.h: New member frozen_window_start_p.
7534
7535 * window.c (foreach_window, foreach_window_1): New.
7536 (freeze_window_start, freeze_window_starts): New.
7537 (make_window): Initialize frozen_window_start_p.
7538 (replace_window): Ditto.
7539 (Fset_window_point): Remove references to deleted variables.
7540 (Fset_window_start): Ditto.
7541
7542 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7543 resize_mini_initial_height): Removed.
7544 (syms_of_xdisp): Remove references to these variables.
7545 (resize_mini_window): Don't save window configuration, freeze
7546 window starts instead. Enlarge window until displaying an empty
7547 buffer, then shrink it. Make the function externally visible.
7548 (redisplay_window): Treat frozen window start like forced start,
7549 but accept point outside of the window.
7550
7551 * dispextern.h: Add function prototype for resize_mini_window.
7552
7553 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7554 reaching minibuf_level 0.
7555
7556 * lisp.h: Remove extern declarations for variables deleted from
7557 xdisp.c.
7558
7559 * dispnew.c (adjust_frame_glyphs): Remove reference to
7560 Vresize_mini_config.
7561
75621999-09-03 Gerd Moellmann <gerd@gnu.org>
7563
7564 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7565 to USE_TOOLKIT_SCROLL_BARS.
7566
7567 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7568 here.
7569 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7570 under newly created scroll bar. Put toolkit scroll bars in the
7571 middle of the area reserved for the scroll bar.
7572
75731999-09-03 Kenichi Handa <handa@etl.go.jp>
7574
7575 The following changes are for the new handling of mulitbyte
7576 sequence. Now, except for a composite character, no multibyte
7577 character in string/buffer has trailing garbage bytes. For
7578 instance, the length of string "\201\300\300" is now 2, the first
7579 character is Latin-1 A-grave, the second is raw \300.
7580
7581 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7582 are negative.
7583 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7584 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7585 (PARSE_COMPOSITE_SEQ): New macro.
7586 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7587 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7588 (CHAR_PRINTABLE_P): New macro.
7589 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7590 (STRING_CHAR_AND_LENGTH): Likewise.
7591 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7592 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7593 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7594
7595 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7596 (SPLIT_CHARACTER_SEQ): New macro.
7597 (SPLIT_MULTIBYTE_SEQ): New macro.
7598 (CHAR_COMPONENT_VALID_P): New macro.
7599 (non_ascii_char_to_string): Generate a multibyte sequence as far
7600 as possible.
7601 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7602 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7603 (split_non_ascii_string): Likewise.
7604 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7605 (char_printable_p): New function.
7606 (translate_char): Check character by NATNUMP instead of INTEGERP.
7607 (unibyte_char_to_multibyte): Call char_valid_p instead of
7608 VALID_MULTIBYTE_CHAR_P.
7609 (Fmake_char_internal): Check the arguments more rigidly.
7610 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7611 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7612 (Fmultibyte_char_to_unibyte): Check the validity of character by
7613 CHAR_VALID_P.
7614 (chars_in_text): Call multibyte_chars_in_text.
7615 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7616 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7617 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7618
7619 * data.c (Faset): Adjust the way to check byte-combining
7620 possibility for the new handling of multibyte sequence.
7621
7622 * editfns.c (Fsubst_char_in_region): Likewise.
7623
7624 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7625 (string_char_to_byte): Likewise.
7626 (string_byte_to_char): Likewise.
7627
7628 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7629 macro STRING_CHAR_AND_LENGTH. Caller changed.
7630
7631 * insdel.c (count_combining_composition): New function.
7632 (count_combining_before): Adjust the way to check byte-combining
7633 possibility for the new handling of multibyte sequence. Call
7634 count_combining_composition for a composite character.
7635 (count_combining_after): Likewise.
7636
7637 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7638 (print): Likewise.
7639
7640 * dispextern.h (struct it): Change the size of the member
7641 `ctl_chars'.
7642
7643 * xdisp.c (get_next_display_element): Display incomplete multibyte
7644 sequence (e.g. \222\300) by octal form.
7645
76461999-09-02 Gerd Moellmann <gerd@gnu.org>
7647
7648 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7649
7650 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7651 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7652
76531999-09-02 Gerd Moellmann <gerd@gnu.org>
7654
7655 * buffer.c (set_buffer_internal): Never set
7656 windows_or_buffers_changed.
7657
7658 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7659 if we have displayed to the bottom of the window.
7660
7661 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7662 in both directions. Extend documentation.
7663
76641999-09-01 Gerd Moellmann <gerd@gnu.org>
7665
7666 * minibuf.c (read_minibuf): Flush display after setting cursor to
7667 column 0.
7668
76691999-08-31 Gerd Moellmann <gerd@gnu.org>
7670
7671 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7672 already defined. This avoids a warning from buffer.c.
7673
76741999-08-30 Gerd Moellmann <gerd@gnu.org>
7675
7676 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7677 of both margins.
7678 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7679 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7680 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7681
7682 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7683 once instead of twice.
7684 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7685
7686 * xterm.c: Remove unused bitmaps.
7687 (continued_bits, continuation_bits, overlay_bits): Change images.
7688 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7689 instead of FRAME_X_FLAGS_AREA_WIDTH.
7690 (x_after_update_window_line): Ditto.
7691 (x_draw_bitmap): Likewise.
7692 (x_draw_row_bitmaps): Likewise.
7693 (x_draw_glyph_string_box): Likewise.
7694 (x_draw_glyphs): Likewise.
7695 (x_scroll_run): Likewise.
7696 (expose_window_tree): Likewise.
7697 (note_mode_line_highlight): Likewise.
7698 (XTset_vertical_scroll_bar): Likewise.
7699 (x_clip_to_row): Likewise.
7700 (x_set_window_size): Likewise.
7701
7702 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7703 of 2 * that value.
7704
7705 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7706 2 * that value.
7707 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7708 FRAME_FLAGS_AREA_WIDTH.
7709
7710 * window.c (coordinates_in_window): Use
7711 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7712 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7713 instead of twice.
7714
427ec082 7715 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7716 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7717 (EmacsFrameSetCharSize): Ditto.
7718
7719 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7720 instead of FRAME_FLAGS_AREA_WIDTH.
7721
7722 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7723 FRAME_FLAGS_AREA_COLS once.
7724 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7725 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7726
77271999-08-30 Gerd Moellmann <gerd@gnu.org>
7728
7729 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7730 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7731
77321999-08-30 Gerd Moellmann <gerd@gnu.org>
7733
7734 * fns.c (QCweakness): Replaces QCweak.
7735 (Fmake_hash_table): Ditto.
7736 (Fmakehash): Ditto.
7737 (syms_of_fns): Ditto.
7738
77391999-08-29 Richard Stallman <rms@gnu.org>
7740
7741 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7742
7743 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7744
7745 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7746 Add support for nested comments.
7747
d7d0dac0
SM
7748 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7749 Consolidate the forward comment code into the new `forw_comment'.
7750 (forw_comment): New subroutine. Added support for nested comments.
7751 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7752 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7753
77541999-08-28 Ken Raeburn <raeburn@gnu.org>
7755
7756 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7757 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7758 defined, to help detect code that uses knowledge of the Lisp
7759 internals that it shouldn't have.
7760 (XFLOAT_DATA): New macro.
7761
77621999-08-25 Gerd Moellmann <gerd@gnu.org>
7763
7764 * syntax.c (Fforward_word): If in a mini-buffer and moving
7765 backwards, stop in front of the prompt to prevent accidentially
7766 moving into the read-only prompt.
7767
7768 * window.c (Frecenter): Clear frame if called with nil or no arg.
7769
7770 * xdisp.c (resize_mini_window): Don't resize if
7771 Vmax_mini_window_height is nil. Otherwise, use a default if
7772 Vmax_mini_window_height is not ot a number.
7773 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7774
77751999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7776
7777 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7778 * m/iris4d.h: Use unexelf for IRIX 5.*.
7779 * m/iris5d.h: Use unexelf for IRIX 6.*.
7780 * unexsgi.c: Deleted.
7781
7782 * unexelf.c: Auto-detect .sbss section.
7783 (round_up): Make it static.
7784 (unexec): Declare alignment as Elf Word. Skip ``Program
7785 segment above .bss'' test on MIPS without .sbss.
7786 Copy sections .got and .sdata1 sections. Adjust offsets in
7787 sections .sdata, .lit4, .lit8, .got and .sdata1.
7788
77891999-08-25 Gerd Moellmann <gerd@gnu.org>
7790
7791 * xdisp.c (try_window_id): Remove typo.
7792
77931999-08-24 Gerd Moellmann <gerd@gnu.org>
7794
7795 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7796 unchanged text at the bottom when computing the cursor position.
7797 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7798 set.
7799
7800 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7801
78021999-08-24 Gerd Moellmann <gerd@gnu.org>
7803
7804 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7805 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7806 (syms_of_xfaces): Ditto.
7807
7808 * window.c (Fset_window_point): Reset Vresize_mini_config.
7809 (Fset_window_start): Ditto.
7810 (set_window_buffer): Ditto.
7811
7812 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7813
7814 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7815 before calling try_window.
7816 (echo_area_display): If height has changed, update other windows.
7817 (resize_mini_frame, resize_mini_initial_height): New.
7818 (resize_mini_window): Save/restore window configuration
7819 differently.
7820
427ec082 7821 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7822 resize_mini_initial_height): Add extern declarations.
7823
7824 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7825 CANON_X_UNIT.
7826
7827 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7828 being redefined in jconfig.h.
7829
78301999-08-23 Ken'ichi Handa <handa@gnu.org>
7831
7832 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7833
78341999-08-22 Gerd Moellmann <gerd@gnu.org>
7835
7836 * alloc.c (mark_glyph_matrix): Mark strings only.
7837
7838 * xdisp.c (redisplay_internal): Clear garbaged frames after
7839 resizing mini-window.
7840
78411999-08-22 Gerd Moellmann <gerd@gnu.org>
7842
7843 * xdisp.c (unwind_with_echo_area_buffer): Use
7844 set_buffer_internal_1 instead of set_buffer_internal.
7845 (with_echo_area_buffer): Ditto.
7846
7847 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7848 only if buffer is displayed somewhere.
7849
7850 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7851
7852 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7853 (gap_right): Ditto.
7854 (modify_region): Ditto.
7855
7856 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7857
7858 * xdisp.c (Vresize_mini_config): New.
7859 (resize_mini_window): Use it to save restore original window
7860 configuration
7861 (syms_of_xdisp): Initialize it.
7862
7863 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7864
7865 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7866
7867 * xdisp.c (reconsider_clip_changes): New.
7868 (redisplay_internal, redisplay_window): Call it.
7869 (mark_window_display_accurate, redisplay_internal): Set current
7870 matrix' buffer, begv, zv.
7871
7872 * window.c (Fset_window_hscroll): Set
7873 prevent_redisplay_optimizations_p instead of clip_changed.
7874 (Fset_window_hscroll): Ditto.
7875 (temp_output_buffer_show): Ditto.
7876 (Fset_window_vscroll): Ditto.
7877
7878 * buffer.c (reset_buffer): Set clip_changed to 0 and
7879 prevent_redisplay_optimizations_p to 1.
7880 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7881
7882 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7883 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7884 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7885 END_UNCHANGED): New.
7886 (struct buffer_text): Add beg_unchanged, end_unchanged,
7887 unchanged_modified, overlay_unchanged_modified.
7888
7889 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7890 overlay_unchanged_modified): Removed.
7891 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7892 (unwind_with_echo_area_buffer): Don't restore them.
7893 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7894 (text_outside_line_unchanged_p, redisplay_internal,
7895 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7896 (redisplay_window): Let try_window_id be called if more than one
7897 window is displayed. Use/set buffer-specific beg/end_unchanged.
7898 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7899 try_window_id):
7900 Use buffer-specific beg/end_unchanged.
7901
7902 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7903 overlay_unchanged_modified): Remove extern declarations.
7904
7905 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7906 buffer.
7907
7908 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7909 (gap_right): Ditto.
7910 (adjust_after_replace): Likewise.
7911 (replace_range, del_range_2, modify_region): Likewise.
7912
7913 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7914 and unchanged_modified per buffer.
7915
7916 * coding.c (code_convert_region): Compute beg/end_unchanged per
7917 buffer.
7918
7919 * buffer.c (modify_overlay): Compute beg/end_unchanged
7920 per buffer.
427ec082 7921 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7922 structure.
7923
79241999-08-22 Gerd Moellmann <gerd@gnu.org>
7925
7926 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7927
7928 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7929 (Qkey_value_weak): Removed.
7930 (make_hash_table): Use nil, `key', `value', t for weakness.
7931 (Fmake_hash_table): Ditto.
7932 (copy_hash_table): New.
7933 (Fcopy_hash_table): New.
7934
79351999-08-22 Gerd Moellmann <gerd@gnu.org>
7936
7937 * xfns.c: Call change_frame_size and do_pending_window_change with
d7d0dac0 7938 new parameter.
26901792
DL
7939
79401999-08-21 Gerd Moellmann <gerd@gnu.org>
7941
7942 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7943 well.
427ec082 7944 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7945 have changed.
7946 (display_echo_area): Reset displayed echo_area_buffer to nil
7947 at the end if we're displaying a nil message.
7948
79491999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7950
26901792
DL
7951 * fns.c (hash_lookup): Test with EQ before calling key comparion
7952 function.
7953 (hash_remove): Ditto.
7954 (cmpfn_eq): Removed.
7955 (cmpfn_eql): Don't test with EQ.
7956 (cmpfn_equal): Ditto.
7957 (make_hash_table): Set comparison function for `eq' to null.
7958
7959 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7960 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7961
7962 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7963
7964 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7965 xterm.c: Call change_frame_size and do_pending_window_change with
7966 new parameter.
7967
7968 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7969 (change_frame_size): Ditto.
7970 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7971 and not called from a safe place.
7972 (window_change_signal): Call change_frame_size with new parameter.
7973
7974 * dispextern.h: Change prototypes for do_pending_window_change
7975 and change_frame_size.
7976
7977 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7978 window's buffers equals current_buffer; this is not the
26901792
DL
7979 case during echo area display.
7980
79811999-08-21 Gerd Moellmann <gerd@gnu.org>
7982
7983 * xdisp.c, minibuf.c: Remove conditional compilation on
7984 NO_PROMPT_IN_BUFFER.
7985
7986 * minibuf.c (Fminibuffer_prompt_end): New.
7987 (syms_of_minibuf): Defsubr it. Remove
7988 minibuffer-prompt-in-buffer.
7989 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7990 Extend documentation.
7991
7992 * xdisp.c (get_next_display_element): Display \r as ^M.
7993
7994 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7995 under scroll bar widget.
7996
79971999-08-21 Gerd Moellmann <gerd@gnu.org>
7998
7999 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
8000 anywhere.
8001 (unwind_redisplay): Return nil.
8002 (clear_garbaged_frames): New.
8003 (redisplay_internal): Use it.
8004 (echo_area_display): Ditto.
8005 (resize_mini_window): Mew.
8006 (display_echo_area_1): Use it to resize echo area window.
8007 (redisplay_internal): Use it to resize active mini-window.
8008
8009 * dispextern.h, lisp.h: Add function prototypes.
8010
427ec082 8011 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
8012 cursor_in_echo_area case only for a mini-window showing
8013 a message. Don't let cursor end up after the end of a row.
8014
8015 * xdisp.c (echo_area_glyphs, echo_area_message,
8016 echo_area_glyphs_length, previous_echo_glyphs,
8017 previous_echo_area_message, previous_echo_area_glyphs_length):
8018 Removed.
8019 (Vmessage_stack, echo_area_buffer, echo_buffer,
8020 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
8021 (message2_nolog): Use set_message and clear_message.
8022 (message3): Rename parameter len to nbytes to make clear what
8023 it is.
8024 (message3_nolog): Ditto. Use set_message and clear_message.
8025 (update_echo_area): Rewritten.
8026 (with_echo_area_buffer): New.
8027 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
8028 (setup_echo_area_for_printing): New.
8029 (display_echo_area, display_echo_area_1): New.
8030
8031 (current_message, current_message_1): New.
427ec082 8032 (push_message, restore_message, pop_message,
26901792
DL
8033 check_message_stack): New.
8034 (truncate_echo_area): Rewritten.
8035 (truncate_message_1): New.
8036 (set_message, set_message_1, clear_message): New.
8037 (echo_area_display): Rewritten.
8038 (redisplay_internal): Check for needed echo area update
8039 differently.
8040 (redisplay_preserve_echo_area): Rewritten.
427ec082 8041 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
8042 message differently.
8043 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
8044 Remove initialzation of removed variables.
8045 (init_xdisp): Remove references to removed variables.
8046
8047 * dispnew.c (adjust_frame_message_buffer): Removed references
8048 to echo_area_glyphs and previous_echo_glyphs.
8049 (direct_output_for_insert): Check for mini-window displaying
8050 echo area message differently.
8051 (update_frame): Likewise.
8052 (set_window_cursor_after_update): Likewise. In echo area,
8053 don't try to set cursor on rows that aren't enabled.
8054
8055 * print.c: Remove conditional compilation on `standalone'.
8056 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 8057 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
8058 longer used in that way.
8059 (PRINTDECLARE): Add multibyte.
8060 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
8061 (printbufidx): Removed.
8062 (printchar, strout): Rewritten.
8063
8064 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
8065 a struct kboard.
8066 (echo_kboard): New.
8067 (echo_now): Set echo_kboard to the current kboard.
8068 (cancel_echoing): Set echo_kboard to null.
8069 (cmd_error_internal): Use clear_message, remove references
8070 to echo_area_glyphs and echo_area_message.
8071 (command_loop_1): Check for echo area messages differently.
8072 (read_char): Likewise.
8073 (record_menu_key): Use clear_message.
8074 (Fexecute_extended_command): Check for echo area messages
8075 differently. Use push_message, restore_message, pop_message.
8076
8077 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
8078 pop_message.
8079
8080 * emacs.c (shut_down_emacs): Call check_message_stack.
8081
8082 * lisp.h: Add function prototypes and extern declarations for
8083 new functions and variables.
8084
8085 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
8086 pop_message.
8087
427ec082 8088 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
8089 setting echo_area_glyphs.
8090 (Fminibuffer_completion_help): Ditto.
8091
8092 * editfns.c (Fcurrent_message): Rewritten.
8093
8094 * frame.c, window.h: Remove references to echo_area_glyphs
8095 and previous_echo_glyphs.
8096
80971999-08-21 Dave Love <fx@gnu.org>
8098
8099 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
8100 * aix4-1.h: Likewise.
8101
8102 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
8103
81041999-08-20 Gerd Moellmann <gerd@gnu.org>
8105
8106 * xfns.c: Remove tiff34 prefix from include.
8107
81081999-08-20 Dave Love <fx@gnu.org>
8109
8110 * cm.c: Revert previous change.
8111
81121999-08-19 Gerd Moellmann <gerd@gnu.org>
8113
8114 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
8115 under scroll bar with width FRAME_SCROLL_BAR_COLS.
8116
81171999-08-18 Dave Love <fx@gnu.org>
8118
8119 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
8120 stdlib.h.
8121
8122 * doprnt.c: Use stdlib.h, unistd.h.
8123
8124 * config.in: Add HAVE_TERMCAP_H.
8125
8126 * cm.c: Use termcap.h.
8127
81281999-08-18 Gerd Moellmann <gerd@gnu.org>
8129
8130 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
8131 FRAME_X_WINDOW (f) being null at the of the function. If widgets
8132 cannot be created we will already have crashed earlier. Call
8133 lw_set_main_areas with a null menu-bar widget, so that we have
8134 a reasonable default.
8135 (Fx_create_frame): Rearranged so that Lisp errors during frame
8136 initialization cause less damage. Initialize menu bar widget
8137 here.
8138
81391999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 8140
26901792
DL
8141 * dispnew.c (update_frame_line): Fix previous change. If writing
8142 whole line clear to end of frame.
8143
81441999-08-17 Gerd Moellmann <gerd@gnu.org>
8145
8146 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8147 and `right-bitmap-area' if position is in the bitmap areas. This
8148 avoids an error when clicking on the bitmap areas. Instead, they
8149 are currently treated like clicks inside the window.
8150 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8151 (Qleft_bitmap_area, Qright_bitmap_area): New.
8152 (syms_of_window): Initialize new symbols.
8153
8154 * dispnew.c (update_frame_line): If writing whole line,
8155 don't write trailing spaces unless we must.
8156
8157 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8158 (redisplay_internal): Register unwind_redisplay with
8159 register_unwind_protect.
8160 (try_window_reusing_current_matrix): If new start > old start,
8161 give up if start pos of first reusable row is not equal to new
8162 start.
8163
8164 * eval.c (Fsignal): Don't reset redisplaying_p here.
8165
8166 * xterm.c (expose_area): If row extends face to end of line,
8167 write the whole line.
8168
81691999-08-16 Gerd Moellmann <gerd@gnu.org>
8170
8171 * dispextern.h (struct it): Remove member
8172 show_trailing_whitespace_p.
8173
8174 * dispnew.c (direct_output_for_insert): Use
8175 Vshow_trailing_whitespace instead of former iterator member
8176 show_trailing_whitespace_p.
8177 (direct_output_forward_char): Don't do it if hightlighting
8178 trailing whitespace.
8179
8180 * xdisp.c (Qshow_trailing_whitespace): Removed.
8181 (Vshow_trailing_whitespace): Added.
8182 (init_iterator): Remove initialization code for
8183 show_trailing_whitespace_p.
8184 (redisplay_internal): Don't try cursor movement in this_line
8185 if showing trailing whitespace.
8186 (redisplay_window): Likewise for cursor movement in current
8187 matrix and try_window_id.
8188 (try_window_reusing_current_matrix): Likewise.
8189 (trailing_whitespace_p): Return 0 if trailing whitespace is
8190 in front of point.
8191 (display_line): Use Vshow_trailing_whitespace instead of
8192 former iterator member show_trailing_whitespace_p.
8193 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8194
81951999-08-16 Gerd Moellmann <gerd@gnu.org>
8196
8197 * window.c (Fpos_visible_in_window_p): Rewritten.
8198
8199 * xfaces.c (add_to_log): Renamed from display_message.
8200 Don't display messages in echo area.
8201
8202 * xterm.c (x_draw_glyph_string_box): Use the background width
8203 of the glyph string for the width of the box.
8204
82051999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8206
8207 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8208
82091999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8210
8211 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8212 background first, and then set other parameters that might
8213 depend upon their new values.
8214
82151999-08-15 Gerd Moellmann <gerd@gnu.org>
8216
8217 * xfaces.c (Vfont_list_limit): New.
8218 (syms_of_xfaces): Make it a user-variable.
8219 (DEFAULT_FONT_LIST_LIMIT): New.
8220 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8221 maximally that number of fonts, otherwise use
8222 DEFAULT_FONT_LIST_LIMIT.
427ec082 8223 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8224 until we have all fonts.
8225 (Fxfont_list): Additionally return the full names of fonts and
8226 their registry and encoding.
8227
427ec082 8228 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8229 Simplify clearing "under" scroll bar.
8230
8231 * window.c (Qfixed_window_size): New.
8232 (syms_of_window): Initialiaze it.
8233 (check_all_windows): Add return type void.
8234 (window_fixed_size_p): New. Return non-zero if window
8235 is fixed-size.
8236 (window_min_size_1): New.
8237 (window_min_size): Handle fixed-size windows.
8238 (size_window): New. Rewritten combination of set_window_height and
8239 set_window_width that handles fixed-size windows.
8240 (set_window_height): Call it.
8241 (set_window_width): Call it.
8242 (Fsplit_window): Give an error on attempt to split a fixed-size
8243 window.
8244 (change_window_height): Partly rewritten to handle fixed-size
8245 windows.
8246
82471999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8248
8249 * process.c (Fopen_network_stream): Fix previous change.
8250
82511999-08-13 Karl Heuer <kwzh@gnu.org>
8252
8253 * xdisp.c (line_number_display_limit_width): New var.
8254 (decode_mode_spec): Use it instead of hardcoded value.
8255 (syms_of_xdisp): Defvar it.
8256
82571999-08-13 Richard M. Stallman <rms@gnu.org>
8258
8259 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8260 (run_hook_with_args): Likewise.
8261
8262 * window.h (struct window): New field too_small_ok.
8263
427ec082 8264 * window.c (set_window_height, set_window_width):
26901792
DL
8265 If window starts out "too small", set its too_small_ok flag.
8266 If window's too_small_ok flag is set, don't delete it
8267 unless it is so small it would cause a crash.
8268
82691999-08-13 Gerd Moellmann <gerd@gnu.org>
8270
8271 * window.c (MINSIZE): Removed.
8272 (window_min_size): New.
8273 (set_window_height): Use window_min_size.
8274 (change_window_height): Ditto.
8275
82761999-08-12 Gerd Moellmann <gerd@gnu.org>
8277
8278 * indent.c (vmotion): Don't add in mini-buffer prompt width
8279 if prompts are inserted into mini-buffer.
8280
82811999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8282
8283 * config.in: Add HAVE_GETADDRINFO.
8284 * process.c (Fopen_network_stream): Use getaddrinfo.
8285
82861999-08-11 Gerd Moellmann <gerd@gnu.org>
8287
8288 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8289 glyphs to -1.
8290
8291 * xdisp.c (face_before_or_after_it_pos): If position after
8292 or before iterator's current position in the buffer is out
8293 of bounds, return the iterator's original face id.
8294
8295 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8296 just swap glyphs pointers between current and desired row.
8297 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8298 desired matrix method string to current matrix.
8299
83001999-08-11 Kenichi Handa <handa@etl.go.jp>
8301
8302 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8303
8304 * lread.c (read_escape): For Control modifier, pay attention to
8305 multibyte character.
8306 (read1): Likewise. Singal error or a multibyte character which
8307 has a modifer bit. Check validity of Shift modifer.
8308
8309 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8310 the same as Lisp reader.
8311
83121999-08-10 Richard M. Stallman <rms@gnu.org>
8313
8314 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8315
83161999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8317
8318 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8319
83201999-08-10 Eli Zaretskii <eliz@gnu.org>
8321
8322 * msdos.c (IT_set_face): Abort if the default face is not realized
8323 and cached.
8324 (IT_write_glyphs): Reset the screen face to the default face
8325 before writing glyphs.
8326
8327 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8328 colors from the frame here.
8329 (realize_tty_face) [MSDOS]: Do it here. Update the face
8330 attributes with the actual name of the color taken from the
8331 frame.
8332
8333 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8334 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8335
8336 * frame.c (Fframe_parameters): Swap foreground and background
8337 colors returned in frame parameters if the frame has reverse in
8338 its parameter alist.
8339 (Fmake_terminal_frame): Make a unique copy of face_alist for
8340 each frame.
8341
83421999-08-07 Richard Stallman <rms@gnu.org>
8343
8344 * buffer.c (Fprevious_overlay_change): Just return
8345 the answer obtained from overlays_at.
8346
8347 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8348 Use XpmCloseness and attrs.closeness instead.
8349
83501999-08-06 Richard Stallman <rms@gnu.org>
8351
8352 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8353
83541999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8355
427ec082 8356 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8357 Ffile_attributes_lessp): New functions.
8358 (Fdirectory_files): Use directory_files_internal.
8359 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8360 Ffile_attributes_lessp.
8361
8362 * w32.c (stat): Check for directory ending in separator when
8363 doing readdir fast path.
8364
8365 * w32fns.c (x_set_icon_type): Support setting frame icons.
8366 * w32term.c (x_bitmap_icon): New function.
8367 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8368
26901792
DL
83691999-08-06 Gerd Moellmann <gerd@gnu.org>
8370
8371 * xdisp.c (set_iterator_to_next): After delivering a character
8372 from a display vector, restore face and charset to what they were
8373 before the display vector was processed.
8374
83751999-08-06 Gerd Moellmann <gerd@gnu.org>
8376
8377 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8378 on_newline_p.
8379 (set_iterator_to_next): After delivering last char
427ec082 8380 from display vector, reseat on next visible line start if
26901792
DL
8381 dpvec_char_len < 0.
8382 (next_element_from_buffer): Set dpvec_char_len to -1 for
8383 selective display.
8384
83851999-08-06 Gerd Moellmann <gerd@gnu.org>
8386
8387 * xdisp.c (compute_line_metrics): If first line's physical ascent
8388 is larger than its logical ascent, use the physical ascent, and
8389 make the row taller. Set row's overlapping_p flag.
8390
8391 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8392 (direct_output_for_insert): Ditto.
8393
8394 * dispextern.h (struct glyph_row): Add overlapping_p.
8395
8396 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8397
8398 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8399 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8400
8401 * dispnew.c (direct_output_for_insert): Don't use this method if
8402 row is overlapped by others.
8403 (update_text_area): Write full line if current line is overlapped.
8404 (redraw_overlapped_rows): New.
8405 (update_window): Call it.
8406 (redraw_overlapping_rows): New.
8407 (update_window): Call it.
8408 (scrolling_window): Make sure overlapped_p flag in current rows is
8409 unchanged.
8410 (row_equal_p): Take rows overlapped_p flag into account.
8411
8412 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8413
8414 * xterm.c (x_fix_overlapping_area): New.
8415 (x_redisplay_interface): Add x_fix_overlapping_area.
8416
8417 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8418
84191999-08-06 Gerd Moellmann <gerd@gnu.org>
8420
8421 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8422 (struct glyph_string): Add member for_overlaps_p.
8423 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8424 of overlapping rows, clip to window bottom.
8425 (x_fill_glyph_string): Add parameter overlaps_p.
8426 (x_fill_composite_glyph_string): Ditto.
8427 (BUILD_GLYPH_STRINGS): Ditto.
8428 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8429 (x_draw_glyph_string): Don't draw anything but the foreground
8430 if glyph string draws row overlaps.
8431
8432 * dispnew.c (direct_output_for_insert): Don't use this
8433 optimization for rows that overlap others.
8434 (update_window_line): Return non-zero if display has changed.
8435 (update_text_area): Ditto.
8436 (update_window): Record if display has been changed.
8437
8438 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8439
8440 * dispextern.h (struct redisplay_interface): Add
8441 fix_overlapping_area.
8442
8443 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8444
8445 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8446
8447 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8448 ascent and descent.
8449 (x_produce_stretch_glyph): Ditto.
8450 (x_produce_glyphs): Ditto.
8451
8452 * xdisp.c (init_iterator): Reset physical line height info
8453 after producing special glyphs.
8454 (display_toolbar_line): Set physical line height info.
8455 (compute_line_metrics): Ditto.
8456 (display_line): Ditto.
8457 (display_string): Ditto.
8458
8459 * term.c (produce_glyphs): Set iterator's physical height
8460 information.
8461
8462 * dispnew.c (blank_row): Compute glyph row's physical height.
8463 (row_equal_p): Take physical row heights into account.
8464 (direct_output_for_insert): Ditto.
8465 (update_text_area): Ditto.
8466
8467 * dispextern.h (struct glyph_row): Add phys_ascent and
8468 phys_height.
8469 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8470 max_phys_descent.
8471
84721999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8473
8474 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8475 Fswitch_to_buffer.
8476 (no_switch_buffer): New function.
8477 (Fswitch_to_buffer): Call them. Don't get confused
8478 by "same-window" buffers in a dedicated frame.
8479
8480 * window.c (display-buffer): Don't get confused
8481 by "same-window" buffers in a dedicated frame.
8482
84831999-08-04 Andreas Schwab <schwab@gnu.org>
8484
8485 * insdel.c (insert_from_string_1): Check gap size against number
8486 of outgoing bytes, not incoming bytes.
8487
84881999-08-03 Tom Breton <tob@world.std.com>
8489
8490 * lread.c (read1): Added circular reading code to #N=.
8491 (SUBSTITUTE): New macro.
8492 (seen_list): New variable.
8493 (substitute_object_in_subtree): New function.
8494 (substitute_object_recurse): New function.
8495 (substitute_in_interval): New function.
8496
84971999-08-02 Eli Zaretskii <eliz@gnu.org>
8498
8499 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8500
8501 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8502 noninteractive, for termcap frames as well.
8503
8504 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8505 frames.
8506
85071999-08-01 Richard Stallman <rms@gnu.org>
8508
8509 * fns.c (internal_equal): Correct overlay comparison.
8510
83c8f461 85111999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8512
427ec082 8513 * xfns.c (x_set_internal_border_width):
26901792
DL
8514 Call do_pending_window_change. Don't block input, don't call XFlush.
8515 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8516 (x_set_scroll_bar_width, x_set_font): Likewise.
8517
8518 * frame.c (Fset_frame_height): Call do_pending_window_change.
8519 (Fset_frame_width, Fset_frame_size): Likewise.
8520
8521 * xterm.c (x_set_window_size): When calling change_frame_size,
8522 specify 1 for DELAY.
8523
8524 * widget.c (EmacsFrameSetCharSize): Don't call
8525 do_pending_window_change here.
8526
85271999-07-30 Dave Love <fx@gnu.org>
8528
8529 * config.in: Add HAVE_STDLIB_H.
8530
85311999-07-30 Richard M. Stallman <rms@gnu.org>
8532
8533 * process.c (create_process): Detect failure of `pipe'.
8534
85351999-07-30 Keisuke Nishida <kei@psn.net>
8536
8537 * alloc.c (allocate_vectorlike): Add missing increment.
8538
8539 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8540
8541 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8542 before calling indirect_function.
8543
85441999-07-30 Eli Zaretskii <eliz@gnu.org>
8545
8546 * dispextern.h (load_color, lookup_derived_face): Declare
8547 prototypes.
8548
8549 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8550 it will be done later.
8551
8552 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8553 init_frame_faces if non-interactive.
8554 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8555 array with a call to msdos_stdcolor_name. The font name is now
8556 "ms-dos", consistent with realize_tty_face.
8557
8558 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8559 MSDOS frame.
8560
8561 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8562 x_set_toolbar_lines.
8563
8564 * xfaces.c (load_color): Remove static from definition and remove
8565 prototype.
8566 [MSDOS]: Add a DOS-specific version of load_color.
8567 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8568 (lookup_derived_face): New function.
8569 (realize_default_face): Support MSDOS frames.
8570 [MSDOS]: If fore/background colors are unspecified, inherit them
8571 from the frame.
8572 (realize_face): Support MSDOS frames.
8573 (realize_tty_face): Support MSDOS frames.
8574 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8575 load_color to try to find a suitable approximation. If the face
8576 is inverse-video, swap the foreground and background colors.
8577
8578 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8579 functions.
8580
8581 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8582
8583 * msdos.h: Remove redundant declarations (most of them are now in
8584 dispextern.h).
8585
8586 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8587 Use default frame colors if the face doesn't specify them; invert
8588 the colors if highlight is ON.
8589 (IT_write_glyphs): Rewritten for the new redisplay engine.
8590 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8591 how the hook is called by term.c.
8592 (IT_copy_glyphs): New function, copies an area of the display in
8593 video RAM.
8594 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8595 redisplay now calls it even if char_ins_del_ok is zero.
8596 (IT_set_frame_parameters): Prototype changed. Calls the new
8597 load_color. Puts the new fore/background colors into the default
8598 face on current frame.
8599 (IT_menu_display): Rewritten to handle the new struct glyph
8600 instead of a char array.
8601 (XMenuActivate): Call lookup_derived_face to create and use
8602 special faces for the pop-up and drop-down menus.
8603
86041999-07-29 Gerd Moellmann <gerd@gnu.org>
8605
8606 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8607 XawScrollbarSetThumb if thumb parameters haven't changed because
8608 that function apparently isn't optimized for this case.
8609
86101999-07-29 Eli Zaretskii <eliz@gnu.org>
8611
8612 * msdos.c (getdefdir): Don't return failure indication when
8613 _fixpath sets errno to ENOSYS.
8614
86151999-07-28 Gerd Moellmann <gerd@gnu.org>
8616
8617 * xdisp.c (string_char_and_length): New. Use it everywhere
8618 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8619
86201999-07-28 Kenichi Handa <handa@etl.go.jp>
8621
8622 * fns.c (count_combining): New function.
8623 (struct textprop_rec): New structure.
8624 (concat): Copy text properties correctly when byte combining
8625 occurs.
8626
86271999-07-28 Gerd Moellmann <gerd@gnu.org>
8628
8629 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8630 if display is mono.
8631 (x_draw_row_bitmaps): If face has stipple, don't switch
8632 to foreground color for clearing areas, and set the fill style.
8633
8634 * xfaces.c (load_face_colors): Load background color if setting
8635 stipple, too.
427ec082 8636 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8637 FillStippled.
8638
86391999-07-26 Ken'ichi Handa <handa@gnu.org>
8640
8641 * xterm.c (x_find_ccl_program): Add casting.
8642
8643 * w32fns.c (w32_find_ccl_program): Add casting.
8644
86451999-07-27 Gerd Moellmann <gerd@gnu.org>
8646
8647 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8648
8649 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8650 because this will try to access a nonexisting widget.
8651
86521999-07-26 Markus Rost <rost@gnu.org>
8653
427ec082 8654 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8655 (Fputhash): Ditto.
8656 (Fremhash): Ditto.
8657
86581999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8659
26901792
DL
8660 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8661 value to frame width and height.
8662
8663 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8664 into account for full-width windows. Don't add scroll bar width
8665 to width of clip rect.
8666 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8667 (x_set_glyph_string_background_width): Add 1 to background width.
8668 (x_draw_glyphs): Take internal border into account for full-width
8669 lines.
8670
86711999-07-26 Richard M. Stallman <rms@gnu.org>
8672
8673 * xfns.c (x_set_mouse_color): Always unload the old color.
8674 Don't allow nil as color value.
427ec082 8675 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8676 Always unload the old color.
8677
8678 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8679
86801999-07-26 Karl Heuer <kwzh@gnu.org>
8681
8682 * fns.c (Fy_or_n_p): Doc fix.
8683
86841999-07-26 Kenichi Handa <handa@etl.go.jp>
8685
8686 * ccl.h (setup_ccl_program): The type is changed to `int'.
8687
8688 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8689 stored in the following CCL code. Adjusted for the change of
8690 Vccl_program_table.
8691 (resolve_symbol_ccl_program): Adjusted for the new style of
8692 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8693 is resolving failed.
8694 (ccl_get_compiled_code): New function.
8695 (setup_ccl_program): Function type changed from `void' to `int'.
8696 Resolve symbols in CCL_PROG.
8697 (Fccl_program_p): New function.
8698 (Fccl_execute): Get compiled CCL code by just calling
8699 setup_ccl_program.
8700 (Fccl_execute_on_string): Likewise.
8701 (Fregister_ccl_program): Adjusted for the change of
8702 Vccl_program_table.
8703
8704 * coding.c (setup_coding_system): Get compiled CCL code by just
8705 calling setup_ccl_program.
8706
8707 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8708 calling setup_ccl_program.
8709
8710 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8711 calling setup_ccl_program.
8712
87131999-07-23 Gerd Moellmann <gerd@gnu.org>
8714
8715 * xfaces.c (frame_update_line_height): Just use the height of the
8716 frame's fontset or font, instead of taking face fonts into
8717 account.
8718
8719 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8720
87211999-07-23 Richard M. Stallman <rms@gnu.org>
8722
8723 * window.c (Fsplit_window): For default size, round up for left window.
8724
87251999-07-21 Joe Ramey <ramey@ti.com>
8726
d7d0dac0 8727 * filelock.c (lock_if_free): Return -1 if check_lock_owner
26901792
DL
8728 has returned -1 (lockfile exists but is not a symlink?).
8729
87301999-07-20 Gerd Moellmann <gerd@gnu.org>
8731
8732 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8733 because of a change in cursor_gc made in 20.4.
8734
87351999-07-19 Gerd Moellmann <gerd@gnu.org>
8736
8737 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8738 for YNegative, if using X toolkit.
8739
427ec082 8740 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8741 from positions returned.
8742
87431999-07-17 Gerd Moellmann <gerd@gnu.org>
8744
8745 * xrdb.c (x_load_resources): Set double-click time defaults
8746 for Motif list boxes from double-click-time.
8747
8748 * fns.c (Vhash_table_tests): Remvoed.
8749 (Qhash_table_test): New.
8750 (syms_of_fns): Initialize Qhash_table_test.
8751 (Fmake_hash_table): Look up user-defined tests in symbol prop
8752 `hash-table-test'.
8753 (Fdefine_hash_table_test): Store test and hash function as
8754 symbol prop `hash-table-test'.
8755 (make_hash_table): Add parameters user_test and user_hash.
8756
8757 * window.c (set_window_buffer): Set window margins for tty
8758 frames, too.
8759 (Fset_window_margins): Ditto.
8760
8761 * term.c (append_glyph): Use glyph area of iterator instead of
8762 always TEXT_AREA.
8763
8764 * dispnew.c (update_frame_1): Add left margin width to cursor
8765 hpos.
8766 (direct_output_for_insert): Ditto.
8767 (direct_output_forward_char): Ditto.
8768
8769 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8770
8771 * dispextern.h (struct glyph_matrix): Add top_line_p.
8772
87731999-07-16 Gerd Moellmann <gerd@gnu.org>
8774
8775 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8776 instead.
8777
8778 * fns.c (cmpfn_eq): Add hash code parameters.
8779 (cmpfn_eql): Ditto.
8780 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8781 (cmpfn_user_defined): Likewise.
8782
87831999-07-15 Gerd Moellmann <gerd@gnu.org>
8784
8785 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8786
8787 * fns.c (maybe_resize_hash_table): Correct computation of
8788 index vector size.
8789 (make_hash_table): Ditto.
8790 (Fmakehash): New.
8791
8792 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8793
8794 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8795 (survives_gc_p): Make it externally visible.
8796 (mark_object): Ditto.
8797
8798 * fns.c (remove_hash_entry): Removed.
8799 (sweep_weak_hash_tables): New.
8800
8801 * print.c (print): Print more information about hash tables.
8802
8803 * xfns.c (image_spec_hash): Removed.
8804 (lookup_image): Use sxhash instead of image_spec_hash.
8805 (image_spec_equal_p): Removed.
8806 (lookup_image): Use Fequal instead of image_spec_equal_p.
8807
88081999-07-14 Gerd Moellmann <gerd@gnu.org>
8809
8810 * lisp.h (P_): Moved to top of file.
8811
8812 * fns.c (make_hash_table): Set new members.
8813
8814 * alloc.c (mark_object): Mark hash table's user_hash_function.
8815 Mark index vector for weak hash tables.
8816
8817 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8818 user_hash_function, cmpfn, and hashfn.
8819
8820 * fns.c (build_hash): Removed.
8821 (hash_test): Removed.
8822 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8823 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8824
88251999-07-13 Gerd Moellmann <gerd@gnu.org>
8826
8827 * alloc.c (survives_gc_p): New.
8828
8829 * print.c (print): Add hash table handling.
8830
8831 * alloc.c (mark_object): Add code to mark hash tables.
8832
8833 * lisp.h (GC_HASH_TABLE_P): New.
8834
8835 * emacs.c (main): Call init_fns.
8836
8837 * fns.c (init_fns): New.
8838
8839 * fns.c: Add hash table implementation.
8840
8841 * lisp.h (PVEC_HASH_TABLE): New.
8842 (struct Lisp_Hash_Table): New.
8843 (XHASH_TABLE): New.
8844 (XSET_HASH_TABLE): New.
8845 (HASH_TABLE_P): New.
8846 (CHECK_HASH_TABLE): New.
8847 (DEFAULT_HASH_SIZE): New.
8848 (DEFAULT_REHASH_THRESHOLD): New.
8849 (DEFAULT_REHASH_SIZE): New.
8850
8851 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8852 (x_write_glyphs): Compute overwritten cursor using real start
8853 and end positions of display.
8854 (x_insert_glyphs): Ditto.
8855
88561999-07-10 Gerd Moellmann <gerd@gnu.org>
8857
8858 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8859
8860 * dispnew.c (blank_row): Add y-position as parameter. Compute
8861 visible height.
8862
8863 * xdisp.c (next_element_from_string): Give padding spaces
8864 a position of -1.
8865
427ec082 8866 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8867 marginals areas on tty frames in a future version.
8868 (allocate_matrices_for_frame_redisplay): Ditto.
8869
8870 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8871 to zero if number of glyphs in the row is <= 1.
8872
88731999-07-09 Gerd Moellmann <gerd@gnu.org>
8874
8875 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8876 into account.
8877
8878 * xdisp.c (handle_display_prop): Don't reset area if handing
8879 a property from a string that came from a `display' property.
8880 (handle_single_display_prop): Don't handle recursive `display'
8881 properties.
8882 (handle_single_display_prop): Handle some display property
8883 forms for terminal frames.
8884 (Qimage): Moved here from xfns.c.
8885
8886 * dispextern.h (struct it): New field string_from_display_prop_p.
8887
8888 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8889 line.
8890
88911999-07-08 Gerd Moellmann <gerd@gnu.org>
8892
8893 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8894
8895 * window.c (set_window_buffer): Set window's vscroll to zero.
8896
8897 * xdisp.c (QCwhen): New.
8898 (display_prop_end): New.
8899 (handle_single_display_prop): Use it.
8900 (debug_method_add): Print buffer name if tracing.
8901 (try_window_reusing_current_matrix): Compute visible height
8902 of reused rows. Fix cursor position calculation in case of
8903 top-line.
8904
8905 * dispextern.h (struct redisplay_interface): Add parameter
8906 cursor_on_p to update_window_end_hook.
8907
8908 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8909
89101999-07-07 Gerd Moellmann <gerd@gnu.org>
8911
427ec082 8912 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8913 doesn't become negative when decrementing it.
8914
8915 * eval.c (Fsignal): Reset redisplaying_p to zero.
8916
8917 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8918 for window update.
8919 (try_window_id): Ditto.
8920
8921 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8922 (x_scroll_run): Ditto.
8923 (any_help_event_p): New.
8924 (x_initialize): Set it to zero.
8925 (XTread_socket): Clear help echo only if any_help_event_p.
8926
8927 * xdisp.c (init_iterator): Set top_line_p.
8928 (start_display): Use correct initial y if top-line is present.
8929 (make_cursor_line_fully_visible): Bug fixes for top-line.
8930 (try_scrolling): Ditto.
8931 (try_window_reusing_current_matrix): Ditto.
8932
8933 * dispextern.h (struct it): Add top_line_p.
8934
8935 * dispnew.c (shift_glyph_matrix): Move some computations out
8936 of the loop.
8937
427ec082 8938 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8939 XFLOATINT.
8940
89411999-07-06 Gerd Moellmann <gerd@gnu.org>
8942
8943 * dispnew.c (update_frame_1): When setting cursor in echo area,
8944 skip only over padding spaces at the end.
8945
8946 * xfaces.c (realize_tty_face): Set face's font_name field to
8947 "tty".
8948
8949 * term.c (update_end): Turn cursor on only if selected window's
8950 cursor_off_p flag is not set.
8951
89521999-07-05 Gerd Moellmann <gerd@gnu.org>
8953
8954 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8955 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8956 (TS_cursor_invisible): New.
8957 (term_init): Initialize TS_cursor_invisible.
8958 (tty_hide_cursor): New.
8959 (tty_show_cursor): New.
8960 (update_end): Show tty cursor.
8961 (update_begin): Hide tty cursor to prevent cursor flickering
8962 during redisplays triggered by timers (stealth fontification).
8963
8964 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8965
8966 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8967 in scroll bars.
8968 (x_handle_toolbar_click): Set modifier bits.
8969
89701999-07-04 Gerd Moellmann <gerd@gnu.org>
8971
8972 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8973 instead of a pointer to a volatile input_event.
427ec082 8974 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8975 declaration of local variable `sp'.
8976 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8977 to kbd_fetch_ptr.
8978
89791999-07-03 Gerd Moellmann <gerd@gnu.org>
8980
8981 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8982 only if buffer is modified. Return quickly if changes are
8983 above window start.
8984
89851999-07-02 Gerd Moellmann <gerd@gnu.org>
8986
8987 * dispextern.h (HSCROLL_WINDOWS): Removed.
8988
8989 * xdisp.c (mark_window_display_accurate): Don't set
8990 w->region_showing.
8991 (redisplay_internal): Don't call redraw_garbaged_frames.
8992
89931999-07-01 Gerd Moellmann <gerd@gnu.org>
8994
8995 * xdisp.c (echo_area_display): Don't display truncation marks
8996 for messages because 20.4 doesn't do it either.
8997 (redisplay_window): Case same window start. Instead of giving
8998 up when cursor is partially visible, make it fully visible.
8999 (mark_window_display_accurate): Some cleanup. Record window's
9000 last cursor information.
9001 (debug_method_add): Improved.
9002 (redisplay_internal): Record last cursor info only if not
9003 consider_all_windows_p.
9004
9005 * dispnew.c (update_window): Update top line after scrolling.
9006 (blank_row): Renamed from make_empty_enabled_row.
9007 (increment_glyph_row_buffer_positions): Increment positions
9008 in buffers, only.
9009
9010 * window.c (Fcoordinates_in_window_p): Add top-line to doc
9011 string.
9012
90131999-06-30 Gerd Moellmann <gerd@gnu.org>
9014
9015 * dispnew.c (update_window): Check that updated row is visible.
9016
9017 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
9018 top of window differently.
9019
9020 * xdisp.c (try_window_reusing_current_matrix): Don't do it
9021 if region is showing.
9022
9023 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
9024 avoiding matrix reallocation. Set window_vscroll in matrix.
9025
9026 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
9027
26901792
DL
9028 * xdisp.c (debug_method_add): New.
9029 (debug_redisplay_method): Removed.
9030 (try_window_reusing_current_matrix): Handle case where old
9031 window start is the same as new window start.
9032
9033 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
9034 an array instead of a pointer.
9035
26901792
DL
9036 * xfns.c (Fx_show_tip): Undo previous change.
9037
9038 * xterm.c (x_append_glyph): Clear glyph->u.val.
9039
9040 * dispextern.h (struct glyph): Increase size of face_id bit-field
9041 for CHAR_GLYPH to 12.
9042
90431999-06-29 Gerd Moellmann <gerd@gnu.org>
9044
9045 * xfaces.c (x_charset_registry): Make it externally visible.
9046
90471999-06-28 Gerd Moellmann <gerd@gnu.org>
9048
427ec082 9049 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
9050 instead of WINDOW_WANTS_MODELINE_P.
9051
9052 * xterm.c (clear_mouse_face): Make externally visible.
9053
9054 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
9055
9056 * xterm.c (expose_line): Handle exposure of top-lines.
9057
9058 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
9059 if mouse_face_mouse_frame is null.
9060
9061 * xdisp.c (redisplay_window): If window is echo_area_window,
9062 and update_mode_line is set, update menubar and toolbar.
9063
9064 * dispnew.c (space_glyph): Set its charpos to -1.
9065 (update_frame_1): Ignore trailing padding spaces.
9066
9067 * xdisp.c (next_element_from_c_string): Set position of padding
9068 glyphs to -1.
9069
90701999-06-27 Gerd Moellmann <gerd@gnu.org>
9071
9072 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
9073 XQueryColor.
9074
9075 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
9076 (set_cursor_from_row): Skip over glyphs having a null object at
9077 the start of rows.
9078 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
9079 glyphs.
9080 (handle_invisible_prop): Compute next change only when needed.
9081 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
9082 line.
9083
90841999-06-26 Gerd Moellmann <gerd@gnu.org>
9085
9086 * xrdb.c (x_load_resources): Don't set resource for double-click
9087 time.
9088
9089 * xdisp.c (try_window_id): Return quickly if all changes are
9090 below the window's current matrix end.
9091
9092 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
9093 parameter.
9094
9095 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
9096 in desired not in current matrix.
9097 (try_window_reusing_current_matrix): Rotate matrices starting
9098 at start_vpos instead of 0.
9099
9100 * xterm.c (expose_window): Use window_text_bottom_y.
9101 (fast_find_position): Ditto.
9102
9103 * xdisp.c (redisplay_window): Use window_text_bottom_y.
9104 (try_window_reusing_current_matrix): Ditto.
9105 (get_last_unchanged_at_beg_row): Ditto.
9106 (init_iterator): Ditto.
9107
9108 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
9109 more row.
9110 (check_matrix_invariants): Use window_text_bottom_y.
9111 (update_window): Ditto.
9112 (scrolling_window): Ditto.
9113
9114 * xdisp.c (window_text_bottom_y): New.
9115
91161999-06-25 Gerd Moellmann <gerd@gnu.org>
9117
9118 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
9119 clearing mouse face.
9120 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
9121 event.xcrossing.focus is not set, and focus is in the menu bar,
9122 set focus frame as if event.xcrossing.focus were set.
9123
91241999-06-24 Gerd Moellmann <gerd@gnu.org>
9125
9126 * keyboard.c (make_lispy_event): Handle mouse on top lines.
9127 * keyboard.c (make_lispy_movement): Ditto.
9128
9129 * window.c (coordinates_in_window): Return 4 if on top line.
9130 (Fcoordinates_in_window_p): Return `top-line' if on top line.
9131
9132 * xdisp.c (window_box_height): Subtract top line height.
9133 (window_box): Add top line height to top y position if top line
9134 exists.
9135 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
9136 the top line row of the window. Set initial y-position to
9137 window's top line height plus delta.
9138 (start_display): Choose start glyph row depending on whether
9139 window has a top line.
9140 (try_scrolling): Take top line height into account for aggressive
9141 scrolling.
9142 (compute_window_start_on_continuation_line): Take top line into
9143 account.
427ec082 9144 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
9145 trigger a new redisplay.
9146 (try_window_reusing_current_matrix): Take top line into account.
9147 (find_last_row_displaying_text): Ditto.
9148 (get_last_unchanged_at_beg_row): DItto.
9149 (try_window_id): Ditto.
9150 (compute_line_metrics): Ditto.
9151
9152 * dispnew.c (shift_glyph_matrix): Compute visible row height
9153 taking top line of window into account.
9154 (update_window): Update top line. If scrolling_window detects
9155 that all rows are equal, only set cursor.
9156 (update_window_line): Call after_update_window_line_hook if
9157 mode_line_p flag of rows has changed.
9158 (scrolling_window): Add parameter top_line_p. Return -1 if
9159 all rows are equal.
9160 (mode_line_string): Add parameter mode_line_p. Handle strings
9161 in top lines.
9162
9163 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9164 (MATRIX_FIRST_TEXT_ROW): New.
9165 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9166 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9167 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9168 (MATRIX_TOP_LINE_HEIGHT): New.
9169 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9170 (CURRENT_TOP_LINE_HEIGHT): New.
9171 (DESIRED_TOP_LINE_HEIGHT): New.
9172 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9173 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9174 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9175 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9176
9177 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9178 lines.
9179 (x_draw_row_bitmaps): Take top line into account when clearing
9180 bitmap area.
9181 (x_estimate_mode_line_height): Replacement for
9182 x_frame_mode_line_height.
9183 (x_get_glyph_string_clip_rect): Take top line into account.
9184 (x_clear_end_of_line): Ditto.
9185 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9186 top lines.
9187 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9188 (x_erase_phys_cursor): Take top line into account.
9189
9190 * xdisp.c (window_box_height): Subtract top line height if
9191 window wants a top line.
9192 (display_mode_lines): New.
9193 (redisplay_window): Call it.
9194 (display_mode_line): Add parameters face_id and format.
9195
9196 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9197 (MATRIX_TOP_LINE_HEIGHT): New.
9198
9199 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9200
9201 * term.c (estimate_mode_line_height): Renamed from
9202 frame_mode_line_height. Add parameter face_id.
9203 (estimate_mode_line_height_hook): Renamed from
9204 frame_mode_line_height_hook.
9205 (produce_special_glyphs_hook): Removed.
9206 (produce_glyphs_hook): Removed.
9207
92081999-06-23 Gerd Moellmann <gerd@gnu.org>
9209
9210 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9211 (struct glyph_row): Add mode_line_p.
9212
9213 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9214 (Qtop_line): New.
9215 (syms_of_xfaces): Initialize Qtop_line.
9216
9217 * dispextern.h (TOP_LINE_FACE_ID): New.
9218
9219 * buffer.c (init_buffer_once): Set default for
9220 top_line_format to nil.
9221 (init_buffer_once): Init top_line_format.
9222 (default-top-line-format): New.
9223 (top-line-format): New buffer-local variable.
9224
9225 * buffer.h: Add top_line_format.
9226
9227 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9228
92291999-06-17 Dave Love <fx@gnu.org>
9230
9231 * xfns.c: Move the PNG section before the JPEG one to avoid
9232 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9233
26901792
DL
92341999-06-17 Gerd Moellmann <gerd@gnu.org>
9235
9236 * xfns.c (x_kill_gs_process): Don't free colors.
9237
92381999-06-17 Dave Love <fx@gnu.org>
9239
9240 * s/gnu-linux.h: Zap spurious ~.
9241
92421999-06-16 Gerd Moellmann <gerd@gnu.org>
9243
9244 * xfns.c (gif_load): Improve multi-image support.
9245
92461999-06-15 Gerd Moellmann <gerd@gnu.org>
9247
9248 * xfns.c (gif_load): Support multi-image files.
9249
9250 * Makefile.in (LIBGIF): Use libungif.
9251
9252 * configure.in (HAVE_GIF): Use libungif instead of libgif
9253 because the former doesn't contain patented compression code.
9254
9255 * xdisp.c (compute_window_start_on_continuation_line): Don't
9256 do it if line start is too far away from window start.
9257
92581999-06-14 Gerd Moellmann <gerd@gnu.org>
9259
9260 * buffer.c (init_buffer_once): Set buffer_local_flags for
9261 scroll_*_aggressively.
9262 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9263 (init_buffer_once): Set defaults for these variables.
9264 (syms_of_buffer): Add default-scroll-*-aggressively.
9265
9266 * buffer.h (scroll_up_aggressively): New.
9267 (scroll_down_aggressively): New.
9268
9269 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9270 a static PNG library.
9271
9272 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9273 in case it's a static library.
9274
9275 * Makefile.in (ctagsfiles): Split so that files starting
9276 with an `x' are found before files starting with `w32'.
9277 (ctagsfiles1): New.
9278 (ctagsfiles2): New.
9279 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9280
9281 * xdisp.c (compute_window_start_on_continuation_line): New.
9282 (redisplay_window): Use it.
9283 (INFINITY): New.
9284 (reseat_to_string): Use it.
9285 (hscroll_window_tree): Ditto.
9286 (compute_window_start_on_continuation_line): Ditto.
9287 (redisplay_window): Don't force display with a new window start.
9288
92891999-06-06 Gerd Moellmann <gerd@gnu.org>
9290
9291 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9292 if widget not present.
9293
9294 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9295
92961999-06-04 Gerd Moellmann <gerd@gnu.org>
9297
9298 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9299 value of realize_basic_faces.
9300 (load_face_font_or_fontset): Store full font name in face.
9301 (realize_default_face): Use full font name.
9302
26901792
DL
9303 * xterm.c (x_produce_glyphs): Set member char_to_display.
9304 (x_append_glyph): Store char_to_display in glyphs.
9305
9306 * dispextern.h (struct it): Add char_to_display.
9307
9308 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9309 if faces haven't been initialized.
9310 (Fx_create_frame): Call face-set-after-frame-default after
9311 faces have been initialized, and widget has been created.
9312
9313 * puresize.h (BASE_PURESIZE): Increased.
9314
93151999-06-01 Gerd Moellmann <gerd@gnu.org>
9316
9317 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9318 (Finternal_set_lisp_face_attribute): If frame is t when
9319 :font attribute is set, use the selected frame.
9320 (clear_face_cache): Add parameter clear_fonts_p.
9321 (Fclear_face_cache): Add optional parameter thorougly.
9322
9323 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9324 in table.
9325 (Fclear_face_cache): New.
9326 (choose_face_fontset_font): If fontset doesn't contain font
9327 pattern for the given charset, use CHARSET_ASCII.
9328 (Finternal_set_lisp_face_attribute): Fix handling of nil
9329 stipple attribute.
9330 (Finternal_set_lisp_face_attribute): Fix handling of changing
9331 font-related face attributes of the default face.
9332 (set_lface_from_font_name): Set only attributes that aren't
9333 specified.
9334
93351999-05-31 Gerd Moellmann <gerd@gnu.org>
9336
9337 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9338 font support.
9339 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9340 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9341 scalable fonts depending on the setting of SCALABLE_FONTS.
9342 (first_font_matching): List more than one font to find the
9343 first non-scalable matching font.
9344 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9345 depending on SCALABLE_FONTS.
9346 (better_font_p): New parameter compare_pt_p. If zero, don't
9347 compare point sizes of fonts.
9348 (exact_face_match_p) [SCALABLE_FONTS]: New.
9349 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9350 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9351 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9352 (syms_of_xfaces): Add scalable-fonts-allowed.
9353
93541999-05-26 Gerd Moellmann <gerd@gnu.org>
9355
9356 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9357 mask only if image contains simple transparency information.
9358 Otherwise, combine image with frame background color.
9359
9360 * configure.in (--with-png, HAVE_PNG): New.
9361
9362 * config.in (HAVE_PNG): New.
9363
9364 * Makefile.in: Add PNG library.
9365
9366 * xfns.c: Add PNG support.
9367
93681999-05-25 Gerd Moellmann <gerd@gnu.org>
9369
9370 * xdisp.c (init_xdisp): Initialize echo_area_message and
9371 previous_echo_area_message to nil.
9372
9373 * keyboard.c (read_char): Rename local variable echo_area_message
9374 because it shadows the global one.
9375
93761999-05-05 Gerd Moellmann <gerd@gnu.org>
9377
9378 * xterm.c (note_mode_line_highlight): Restructured.
9379
9380 * window.c (coordinates_in_window): Handle windows that don't have
9381 a mode line because their buffer's mode-line-format is nil.
9382 Recognize the mode line under x positions that correspond to
9383 flags areas and left scroll bar.
9384
93851999-05-02 Dave Love <fx@gnu.org>
9386
9387 * xterm.c (note_mouse_highlight): Separate help-echo processing
9388 from check on mouse-face so that it works generally.
9389
93901999-04-21 Gerd Moellmann <gerd@gnu.org>
9391
9392 * sound.c (Fplay_sound): Run hook play-sound-hook.
9393 (Qplay_sound_hook): New.
9394
93951999-04-20 Gerd Moellmann <gerd@gnu.org>
9396
9397 * xdisp.c (update_echo_area): Handle echo_area_message.
9398
93991999-04-19 Gerd Moellmann <gerd@gnu.org>
9400
9401 * editfns.c (Fmessage): Use message3.
9402
9403 * print.c (printchar): Set echo_area_message to nil.
9404 (strout): Ditto.
9405
9406 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9407 (Fminibuffer_completion_help): Ditto.
9408
9409 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9410 (command_loop_1): Test echo_areA_message.
9411 (read_char): Ditto.
9412 (record_menu_key): Set echo_area_message to nil.
9413 (Fexecute_extended_command): Test echo_area_message.
9414 (Fexecute_extended_command): Handle echo_area_message.
9415
9416 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9417 is set.
9418
9419 * editfns.c (Fcurrent_message): If echo_area_message is set,
9420 return a substring of that string.
9421
9422 * dispnew.c (direct_output_for_insert): Test echo_area_message
9423 in addition to echo_area_glyphs.
9424 (set_window_cursor_after_update): Ditto.
9425 (update_frame_1): Ditto.
9426
9427 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9428 old Lisp message string.
9429
9430 * xdisp.c (echo_area_message): New.
9431 (previous_echo_area_message): New.
9432 (syms_of_xdisp): Initialize and staticpro new variables.
9433 (echo_area_display): Display echo_area_message if set.
9434 (message2_nolog): Set echo_area_message and
9435 previous_echo_area_message.
9436 (echo_area_display): Set previous_echo_area_message.
9437 (redisplay_internal): Display echo area if echo_area_message
9438 or previous_echo_area_message are set.
9439 (redisplay_preserve_echo_area): Test/set echo_area_message and
9440 previous_echo_area_message.
9441 (redisplay_window): Test echo_area_message.
9442 (message3_nolog): New.
9443 (message3): New.
9444
9445 * editfns.c (Fformat): Add text properties to the result string
9446 from properties of the format string and properties of string
9447 arguments.
9448
9449 * textprop.c (text_property_list): New.
9450 (add_text_properties_from_list): New.
9451 (extend_property_ranges): New.
9452
94531999-03-29 Gerd Moellmann <gerd@gnu.org>
9454
9455 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9456 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9457 Use these symbols for the box face attribute instead of the
9458 removed ones.
9459
94601999-03-12 Gerd Moellmann <gerd@gnu.org>
9461
9462 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9463 Correct wrong test for slant.
9464
94651999-03-10 Gerd Moellmann <gerd@gnu.org>
9466
9467 * xfaces.c: Use `unspecified' for unspecified face attributes,
9468 use t and nil for on/off.
9469
94701999-03-06 Gerd Moellmann <gerd@gnu.org>
9471
9472 * buffer.c (syms_of_buffer): Extend doc string of
9473 mode-line-format.
9474
9475 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9476 (first_font_matching): New.
9477 (set_lface_from_font_name): Use it if font name is a pattern.
9478 (font_field_wildcard_p): Removed.
9479
9480 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9481 Recompute visible height of rows.
9482
9483 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9484 Don't accept non-strings for help-echo from overlays.
9485
94861999-03-04 Dave Love <fx@gnu.org>
9487
9488 * xterm.c (note_mouse_highlight): Check overlays for help-text
9489 property.
9490 (XTread_socket): Fix compiler warning.
427ec082 9491
26901792
DL
94921999-03-05 Gerd Moellmann <gerd@gnu.org>
9493
427ec082 9494 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9495 overlay to 10. Call overlays_at so that it doesn't try to
9496 extend the vector.
9497
9498 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9499 height.
9500
9501 * dispnew.c (row_equal_p): Compare visible row height, only.
9502 (update_text_area): Draw whole line if visible heights of
9503 rows differ.
9504 (update_window_line): Call after_update_window_line_hook
9505 if visible row height has changed.
9506
9507 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9508 (struct glyph_row): New member visible_height.
9509
9510 * xfaces.c (font_field_wildcard_p): New.
9511 (set_lface_from_font_name): Remove parameter force_p. Accept
9512 font names containing wildcards.
9513
95141999-03-04 Gerd Moellmann <gerd@gnu.org>
9515
9516 * xterm.c (x_after_update_window_line): Clear internal border
9517 when windows_or_buffers_changed.
9518
9519 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9520 buffer has a nil mode_line_format.
9521
95221999-03-03 Gerd Moellmann <gerd@gnu.org>
9523
9524 * xterm.c (x_setup_relief_colors): Use either background color
9525 or specified color.
9526
9527 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9528
9529 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9530
9531 * xterm.c (x_draw_box_rect): New.
9532 (x_draw_glyph_string_box): Renamed from
9533 x_draw_glyph_string_relief. Call x_draw_box_rect.
9534
9535 * xfns.c (QCrelief): New.
9536 (syms_of_xfns): Initialize it.
9537
9538 * dispextern.h (struct glyph): Rename left_shadow_p to
9539 left_box_line_p, right_shadow_p to right_box_line_p.
9540 (MAX_RELIEF_THICKNESS): Removed.
9541 (struct it): Rename members having `relief' in their names
9542 to contain `box' instead.
9543
9544 * xfaces.c (realize_x_face): Handle new box attribute values.
9545 (QCrelief, Qbox): Removed.
9546 (QCshadow, QCcolor, Qraised, Qsunken): New.
9547 (syms_of_xfaces): Initialize new symbols.
9548
95491999-03-02 Gerd Moellmann <gerd@gnu.org>
9550
9551 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9552
9553 * xfaces.c (LFACE_RELIEF): Removed.
9554 (merge_face_vector_with_property): Remove handling of `:relief'.
9555 (Finternal_set_lisp_face_attribute): Ditto.
9556 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9557 (Finternal_get_lisp_face_attribute): Ditto.
9558 (realize_default_face): Ditto.
9559 (lface_hash): Don't compute hash from relief.
9560
9561 * dispextern.h (struct face): Replace member `relief' by
9562 `box_line_width'. Add member `box'.
9563 (face_box_type): New.
9564
9565 * xterm.c (x_produce_glyphs): If face has overline, add overline
9566 thickness + 1 to ascent.
9567
95681999-03-01 Gerd Moellmann <gerd@gnu.org>
9569
9570 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9571 strike-through, and boxes.
9572 (x_draw_glyph_string_underline): Removed.
9573
9574 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9575 (Qoverline, Qstrike_through, Qbox): New.
9576 (syms_of_xfaces): Define these symbols.
9577 (check_lface_attrs): Add checks for overline, strike-through,
9578 and box.
9579 (Finternal_set_lisp_face_attribute): Set new attributes.
9580 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9581 (load_color): Handle new attributes.
9582 (realize_x_face): Ditto.
9583 (merge_face_vector_with_property): Ditto.
9584 (free_face_colors): Ditto.
9585 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9586 (Finternal_get_lisp_face_attribute): Ditto.
9587 (Finternal_lisp_face_attribute_values): Ditto.
9588
9589 * dispextern.h (lface_attribute_index): Add enumerators for
9590 overstrike, strike-through, and box.
9591 (struct face): Add members for overline, strike-through, and
9592 box.
9593
95941999-02-17 Dave Love <fx@gnu.org>
9595
9596 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9597 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9598 files.
9599
96001999-02-16 Gerd Moellmann <gerd@gnu.org>
9601
9602 * keyboard.c (toolbar_items): Call access_keymap with third
9603 parameter 1, so that we don't get inherited toolbar item
9604 definitions.
9605
9606 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9607 the window end vpos when in empty first line of window.
9608
96091999-02-15 Gerd Moellmann <gerd@gnu.org>
9610
9611 * xfaces.c (set_font_frame_param): New.
9612 (Finternal_set_lisp_face_attribute): Call it.
9613
9614Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9615
9616 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9617 Accept specifications of color for underline.
9618
96191999-02-13 Gerd Moellmann <gerd@gnu.org>
9620
9621 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9622 `frame' is t, operate on face defaults for new frames. If it
9623 is nil, operate on the selected frame.
9624
96251999-02-12 Gerd Moellmann <gerd@gnu.org>
9626
9627 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9628 (update_window): Put the call to check_matrix_invariants in #if 0.
9629
9630Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9631
9632 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9633 Remove definition of UNDERLINE_COLOR.
9634
9635Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9636
9637 * xfaces.c (free_face_colors): Free the color for underline.
9638
9639 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9640 to the GC.
9641
9642Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9643
9644 * dispextern.h (UNDERLINE_COLOR): Defined.
9645 (struct face): Added two new members.
9646 underline_color, underline_defaulted_p.
9647
427ec082 9648 * xfaces.c (merge_face_vector_with_property):
26901792 9649 (check_lface_attrs): Accept the string value for underline.
427ec082 9650 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9651
9652 * xfaces.c (load_color): Change the last argument type to enum
9653 lface_attribute_index from int. And addec code for underling coloring.
9654 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9655
26901792
DL
96561999-02-12 Gerd Moellmann <gerd@gnu.org>
9657
9658 * xfns.c (Fx_image_header): Removed.
9659
96601999-02-07 Gerd Moellmann <gerd@gnu.org>
9661
9662 * xterm.c: Don't include <bitmaps/gray>.
9663 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9664
9665 * xfns.c (Fx_image_header): Add missing `\n\'.
9666 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9667
96681999-02-01 Gerd Moellmann <gerd@gnu.org>
9669
9670 * xterm.c (x_scroll_bar_create): Set background pixel from
9671 specified scroll bar color.
9672 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9673
9674 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9675 (x_set_scroll_bar_background): Ditto.
9676
9677 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9678
9679 * xfns.c (x_default_scroll_bar_color_parameter): New.
9680 (Fx_create_frame): Call it.
9681
96821999-01-31 Gerd Moellmann <gerd@gnu.org>
9683
9684 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9685 values in x_output structure.
26901792
DL
9686 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9687 (syms_of_xfns): Initialize these symbols.
9688
9689 * xterm.h (struct x_output): Add scroll bar pixel colors.
9690
9691 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9692 (x_set_scroll_bar_foreground): New.
9693 (x_set_scroll_bar_background): New.
9694
26901792
DL
96951999-01-12 Gerd Moellmann <gerd@gnu.org>
9696
9697 * xdisp.c (handle_single_display_prop): New.
9698 (handle_display_prop): Call it.
9699 (handle_raise_prop): Removed.
9700 (handle_height_prop): Removed.
9701 (handle_space_width_prop): Removed.
9702 (handle_face_prop): Remove handling of raised text.
9703 (handle_display_prop): Do it here.
9704
9705 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9706 (RAISE_PROP_IDX): Removed.
9707 (HEIGHT_PROP_IDX): Removed.
9708 (SPACE_WIDTH_PROP_IDX): Removed.
9709
9710 * xdisp.c (Qdisplay): Replaces Qglyph.
9711 (handle_display_prop): Formerly handle_glyph_prop.
9712
97131999-01-11 Gerd Moellmann <gerd@gnu.org>
9714
9715 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9716 (handle_stop): Set position in display vector to -1. Don't
9717 check overlay strings when set up to deliver characters from a
9718 display vector.
9719 (set_iterator_to_next): At the end of a run of characters from a
9720 display vector, check whether the display vector display replaces
9721 the display of a character.
9722
97231999-01-05 Gerd Moellmann <gerd@gnu.org>
9724
9725 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9726 X window hasn't been created yet.
9727
97281998-12-06 Gerd Moellmann <gerd@gnu.org>
9729
9730 * sound.c: New.
9731
97321998-12-04 Gerd Moellmann <gerd@gnu.org>
9733
9734 * config.in (HAVE_SOUND): New.
9735
9736 * emacs.c (main): Call syms_of_sound and init_sound.
9737
9738 * Makefile.in (obj): Add sound.o.
9739
9740 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9741
9742 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9743 (HAVE_SYS_SOUNDCARD_H): New.
9744
97451998-12-03 Gerd Moellmann <gerd@gnu.org>
9746
9747 * buffer.h (struct buffer): indicate_empty_lines renamed from
9748 indicate_zv_lines.
9749
9750 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9751 (default-indicate-zv-lines): Likewise.
9752
9753 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9754 to indicate_empty_line_p.
9755
9756 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9757 to next_element_from_buffer.
9758
9759 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9760
9761 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9762 and `N-'.
9763
9764 * xfns.c (xbm_scan): New.
9765 (xbm_read_hexint): Removed.
9766 (xbm_read_bitmap_file_data): Use xbm_scan.
9767
9768 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9769
97701998-12-02 Gerd Moellmann <gerd@gnu.org>
9771
9772 * xfns.c (xbm_read_hexint): New.
9773 (xbm_read_bitmap_file_data): New.
9774 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9775 instead of XReadBitmapFileData.
9776
9777 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9778
9779 * xfaces.c (face_with_height): New.
9780
9781 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9782 (eval_form): Renamed from eval_mode_element.
9783 (handle_face_prop): Use it.
9784 (Qheight): Replaces Qsmaller.
9785 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9786 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9787 integer, evaluate it to get the font height to use.
9788
9789 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9790 (struct it): Use `font_height' instead of `smaller'.
9791
97921998-12-01 Gerd Moellmann <gerd@gnu.org>
9793
9794 * xdisp.c (reseat_1): New.
9795 (reseat): Call it.
9796 (move_it_vertically_backward): Ditto.
9797 (redisplay_window): Don't abort when cursor not found in recenter.
9798
97991998-11-30 Gerd Moellmann <gerd@gnu.org>
9800
9801 * xdisp.c (reseat_at_next_visible_line_start): When not
9802 currently delivering display elements from the current buffer,
9803 restore buffer position first.
9804 (init_from_display_pos): Don't set IT's position from the
9805 position passed to this function.
9806
98071998-11-28 Gerd Moellmann <gerd@gnu.org>
9808
9809 * config.in (PROTO): Removed.
9810
9811 * xterm.h: Change PROTO to P_.
9812
98131998-11-26 Gerd Moellmann <gerd@gnu.org>
9814
9815 * xterm.c (take_vertical_position_into_account): New.
9816 (x_produce_image_glyph): Call it.
9817 (x_produce_stretch_glyph): Ditto.
9818 (x_produce_glyphs): Ditto.
9819 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9820 (x_fill_composite_glyph_string): Ditto.
9821 (x_fill_image_glyph_string): Ditto.
9822 (x_fill_stretch_glyph_string): Ditto.
9823
9824 * xdisp.c (display_line): Always compute row height from
9825 max_ascent and max_descent.
9826
9827 * dispextern.h (struct glyph): Add voffset.
9828 (struct it): Replace height by descent, max_height by max_descent.
9829
9830 * xterm.c (x_append_glyph): Set voffset
9831 (x_append_stretch_glyph): Ditto.
9832 (x_produce_image_glyph): Ditto.
9833 (x_produce_glyphs): Take voffset into account.
9834 (x_produce_image_glyph): Ditto.
9835 (x_produce_stretch_glyph): Ditto.
9836
9837 * dispextern.h (struct it): Add voffset.
9838 * xdisp.c (push_it): Save voffset.
9839 (pop_it): Restore it.
9840
9841 * xdisp.c (it_props): Add entry for `raise'.
9842 (handle_raise_prop): New.
9843
9844 * dispextern.h (RAISE_PROP_IDX): New.
9845
9846 * xdisp.c (Qraise): New.
9847 (syms_of_xdisp): Define Qraised.
9848
9849 * xterm.c (x_scroll_bar_move): Clear to the left and right
9850 of toolkit scroll bars differently.
9851 (x_scroll_bar_move): Removed.
9852 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9853
9854 * dispextern.h: Make it compilable --with-x=no.
9855 * alloc.c: Ditto.
9856 * emacs.c: Ditto.
9857 * dispnew.c: Ditto.
9858 * keyboard.c: Ditto.
9859 * term.c: Ditto.
9860 * xdisp.c: Ditto.
9861 * xfaces.c: Ditto.
9862 * xfns.c: Ditto.
9863 * xmenu.c: Ditto.
9864
98651998-11-25 Gerd Moellmann <gerd@gnu.org>
9866
9867 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9868
98691998-11-24 Gerd Moellmann <gerd@gnu.org>
9870
9871 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9872 update slider size, only.
9873 (xm_scroll_callback): Set dragging member of the scroll bar.
9874 (xt_action_hook): Reset last_scroll_bar_part.
9875 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9876
26901792
DL
9877 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9878 window on newly created frames that don't have one.
9879
98801998-11-23 Gerd Moellmann <gerd@gnu.org>
9881
9882 * xdisp.c (restore_overlay_strings): Removed.
9883 (restore_dpvec): Removed.
9884 (init_from_display_pos): Inline both functions above.
9885
9886 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9887 (parse_image_spec): Handle it.
9888 (xbm_format): Use it.
9889 (xpm_format): Ditto.
9890 (pbm_format): Ditto.
9891 (jpeg_format): Ditto.
9892 (tiff_format): Ditto.
9893 (gif_format): Ditto.
9894 (gs_format): Ditto.
9895
9896 * xdisp.c (set_window_cursor): Removed.
9897 (redisplay_internal): Case cursor motion in cursor line of
9898 selected window; use set_cursor_from_row.
9899
99001998-11-22 Gerd Moellmann <gerd@gnu.org>
9901
9902 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9903 into account.
9904
99051998-11-21 Gerd Moellmann <gerd@gnu.org>
9906
9907 * xterm.c (expose_frame): Redraw menu bar window.
9908
9909 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9910 in menu item.
9911
9912 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9913 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9914
9915 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9916 to determine vertical_scroll_bar_extra.
9917 (EmacsFrameSetCharSize): Ditto.
9918 * xfns.c (x_figure_window_size): Ditto.
9919
9920 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9921 (x_draw_bitmap): Ditto.
9922
9923 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9924 * xfaces.c (realize_basic_faces): Realize it.
9925
99261998-11-20 Gerd Moellmann <gerd@gnu.org>
9927
9928 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9929 under LessTif Use the widget of the frame as parent for the
26901792
DL
9930 menu, again.
9931
99321998-11-19 Gerd Moellmann <gerd@gnu.org>
9933
9934 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9935 When EnterNotify, don't generate a mouse movement event if
9936 notification is from a busy-cursor child window.
9937
9938 * xterm.h (struct x_output): Add busy_window, remove cursor.
9939
9940 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9941 Use a transparent window to display the busy-cursor.
9942 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9943
99441998-11-17 Gerd Moellmann <gerd@gnu.org>
9945
9946 * xdisp.c (check_window_end): New, for debugging.
9947 (CHECK_WINDOW_END): New.
9948 (try_window_id): Use it.
9949
9950 * xterm.c (process_expose_from_menu): Return int.
9951
9952 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9953 TOOLBAR_EVENT events in last_nonmenu_event.
9954
99551998-11-16 Gerd Moellmann <gerd@gnu.org>
9956
9957 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9958 window end isn't reliable, so set window_end_valid to nil.
9959 (redisplay_internal): If overlay arrow has changed, set
9960 windows_or_buffers_changed to redisplay thoroughly.
9961
9962 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9963 necessary.
9964
9965 * xfns.c (file_dialog_cb): New.
9966 (Fx_file_dialog): New.
9967 * fileio.c (Fread_file_name): Call it.
9968
427ec082 9969 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9970 selection dialog.
9971
99721998-11-14 Gerd Moellmann <gerd@gnu.org>
9973
9974 * xterm.c (note_mouse_highlight): Don't highlight when popup
9975 is active.
9976
26901792
DL
9977 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9978 timer-event-handler. This busy cursor tends to be anoying if
9979 fontifying stealthily.
9980
9981 * dispnew.c (direct_output_for_insert): Give up if current row
9982 contains trailing whitespace.
9983
99841998-11-13 Gerd Moellmann <gerd@gnu.org>
9985
9986 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9987
9988 * xdisp.c (handle_fontified_prop): New.
9989 (Vfontification_functions): New.
9990 (Qfontification_functions): New.
9991 (it_props): Add handle_fontified_prop.
9992
99931998-11-12 Gerd Moellmann <gerd@gnu.org>
9994
9995 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9996 Otherwise, under LessTif, after the popup has gone, all button
9997 press events come in for the frame's widget, and release events
9998 come in for the edit_widget.
9999 * xterm.c (XTread_socket): Remove workaround for that problem.
10000 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
10001 XmScrollBarSetValues.
10002 (SET_SAVED_MENU_EVENT): Give it statement form.
10003
26901792
DL
10004 * xfaces.c (display_message): If waiting_for_input, don't display
10005 the message.
10006
10007 * window.c (scroll_command): If not acting on current_buffer,
10008 make redisplay consider all windows.
10009
10010 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
10011
10012 * xdisp.c (handle_glyph_prop): Set it->object for images to
10013 the object having the glyph property.
10014
10015 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
10016 invisible.
10017
100181998-11-11 Gerd Moellmann <gerd@gnu.org>
10019
10020 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
10021 (x_term_init): Create the gray pixmap.
10022 (x_setup_relief_color): Use it.
10023 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
10024 internal border at the top of a frame.
10025 (x_init_glyph_string): Likewise.
427ec082 10026 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
10027 full-width lines.
10028 (XTflash): Don't flash the toolbar window.
10029
10030 * xterm.c (XTread_socket): Workaround for LessTif popup menus
10031 in case of ButtonPress events.
10032
100331998-11-10 Gerd Moellmann <gerd@gnu.org>
10034
10035 * xrdb.c (x_load_resources): Add grey background colors as
10036 defaults for menus, scroll bars, and dialogs.
10037
10038 * insdel.c (prepare_to_modify_buffer): Move setting
10039 windows_or_buffers_changed from modify_region here.
10040
10041 * xfns.c (Fx_show_tip): Inhibit redisplay.
10042 (Fx_hide_tip): Ditto.
10043 (Fx_image_header): New.
10044
100451998-11-09 Gerd Moellmann <gerd@gnu.org>
10046
10047 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
10048 when clearing current window matrices.
10049
100501998-11-08 Gerd Moellmann <gerd@gnu.org>
10051
10052 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
10053 position from a string position. Use the right end position
10054 if the property spans a whole overlay string.
10055
100561998-11-07 Gerd Moellmann <gerd@gnu.org>
10057
10058 * xmenu.c (menubar_selection_callback): Remove workaround for
10059 Lesstif not calling XmNpopdownCallback because it doesn't
10060 handle the case where users don't select any menu item.
10061
26901792
DL
10062 * insdel.c (modify_region): Set windows_or_buffers_changed.
10063
10064 * buffer.c (set_buffer_internal): Don't set
10065 windows_or_buffers_changed.
10066
26901792
DL
10067 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
10068
26901792
DL
10069 * xmenu.c (menubar_selection_callback): Add workaround for
10070 Lesstif not calling XmNpopdownCallback.
10071
10072 * xdisp.c (eval_mode_element): New.
10073 (eval_mode_handler): New.
10074 (display_mode_element): Use eval_mode_element.
10075
10076 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
10077 Remove code looking at text props of default value.
10078
10079 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
10080
26901792
DL
100811998-11-06 Gerd Moellmann <gerd@gnu.org>
10082
427ec082 10083 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
10084 BUTTON_TYPE_NONE.
10085 (single_submenu): Likewise for panes and menu items.
10086 (set_frame_menubar): Set button_type of menu bar to none.
10087 (xmenu_show): Likewise.
10088 (single_submenu): Set widget values selected slot.
10089 (xmenu_show): Likewise.
10090
26901792
DL
10091 * xmenu.c (push_menu_item): Add parameters `type' and
10092 `selected'. Store it in menu_items.
10093 (MENU_ITEMS_ITEM_TYPE): New.
10094 (MENU_ITEMS_ITEM_SELECTED): New.
10095 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
10096
10097 * xfns.c (clear_image_cache): Get the current time, before
10098 doing anything.
10099 (cache_image): Set prev pointer of next image.
10100 (clear_image_cache): Clear current matrices if any image was
10101 freed.
10102
10103 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
10104
10105 * xfns.c (x_set_cursor): New.
10106 (Fx_display_busy_cursor): New.
10107 (Fx_undisplay_busy_cursor): New.
10108
10109 * xterm.h (struct x_output): Add busy_cursor.
10110
10111 * xfns.c (Vx_busy_pointer_shape): New.
10112 (x_set_mouse_color): Create busy cursor.
10113
10114 * process.c (wait_reading_process_input): Show and hide busy
10115 cursor.
10116
10117 * keyboard.c (command_loop_1): Display busy cursor.
10118
10119 * eval.c (Fsignal): Hide busy cursor.
10120
10121 * buffer.c (set_buffer_internal): Don't set
10122 windows_or_buffers_changed.
10123
10124 * xterm.c (redo_mouse_highlight): New.
10125
101261998-11-04 Gerd Moellmann <gerd@gnu.org>
10127
26901792
DL
10128 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
10129 (x_build_heuritic_mask): New.
10130 (lookup_image): Call it.
10131
10132 * xterm.c (note_toolbar_highlight): Always set up help_echo.
10133 (previous_help_echo): New.
10134 (XTread_socket): Generate help event with nil message when
10135 leaving a region with help-echo.
10136 (note_mouse_highlight): Handle `help-echo' over text.
10137 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10138 CirculateRequest.
10139 (clear_mouse_face): Don't clear if tooltip is shown.
10140 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10141 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10142
10143 * keyboard.c (Vshow_help_function): New.
10144 (read_char): Use it.
10145
101461998-11-03 Gerd Moellmann <gerd@gnu.org>
10147
10148 * xfns.c (x_create_tip_frame): New.
10149 (Fx_show_tip): New.
10150 (Fx_hide_tip): New.
10151
427ec082 10152 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
10153 a widget.
10154
10155 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10156 to full_width_p. Add internal_border_p.
10157
101581998-11-02 Gerd Moellmann <gerd@gnu.org>
10159
10160 * xterm.c (note_mode_line_highlight): Check the charpos of
10161 the glyph under the mouse pointer before accessing text
10162 properties at that position.
10163
101641998-11-01 Gerd Moellmann <gerd@gnu.org>
10165
10166 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10167
10168 * xdisp.c (auto-raise-toolbar-buttons): New.
10169 (build_desired_toolbar_string): Handle the flag.
10170 (toolbar-button-margin): New.
10171 (toolbar-button-relief): New.
10172 (build_desired_toolbar_string): Use margin and relief.
10173
10174 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10175 for FreeBSD.
10176 (note_mode_line_highlight): New.
10177 (note_mouse_highlight): Call it.
10178
101791998-10-31 Gerd Moellmann <gerd@gnu.org>
10180
10181 * s/freebsd.h (NARROWPROTO): New.
10182
10183 * xdisp.c (display_string): New parameter face_string.
10184 (display_mode_element): When displaying a symbol with a string
10185 value, use text properties from the symbol's default value, maybe.
10186
10187 * xrdb.c (x_load_resources): Add font defaults for menus and
10188 dialogs.
10189
101901998-10-30 Gerd Moellmann <gerd@gnu.org>
10191
10192 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10193
101941998-10-29 Gerd Moellmann <gerd@gnu.org>
10195
10196 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10197 produced for characters with codes < 32 under certain
10198 circumstances.
10199
10200 * xdisp.c (redisplay_window): Handle values of PT in front
10201 of invisible, intangible text.
427ec082 10202 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
10203 displaying lines.
10204 (display_mode_element): Assign to glyphs written for a mode
10205 line spec `%x' as object the Lisp format string, as position
10206 the position of the `%' in that string.
10207 (display_string): If displaying a C string, optionally get
10208 the face to use from a Lisp string.
10209
10210 * xterm.c (expose_window_tree): Include mode line height.
10211
10212 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10213
102141998-10-27 Gerd Moellmann <gerd@gnu.org>
10215
10216 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10217 over mode line.
10218
102191998-10-26 Gerd Moellmann <gerd@gnu.org>
10220
10221 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10222
10223 * xdisp.c (redisplay_window): If mode line height has changed,
10224 arrange for a thorough immediate redisplay using the correct mode
10225 line height.
10226 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10227
10228 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10229 (CURRENT_MODE_LINE_HEIGHT): New.
10230 (DESIRED_MODE_LINE_HEIGHT): New.
10231
10232 * keyboard.c (make_lispy_event): Add string and string position
10233 info to mouse-click events.
10234 (read_key_sequence): Handle `local-map' property of mode line
10235 strings.
10236
10237 * keyboard.h (POSN_STRING): New.
10238
102391998-10-25 Gerd Moellmann <gerd@gnu.org>
10240
10241 * dispnew.c (mode_line_string): Mew.
10242
10243 * xterm.c (xt_action_hook): New.
10244 (x_create_toolkit_scroll_bar): Add action hook.
10245 (xm_scroll_callback): Implement dragging.
10246
10247 * keyboard.c (Qend_scroll): New.
10248 (scroll_bar_parts): Add it.
10249
10250 * termhooks.h (scroll_bar_end_scroll): New.
10251
10252 * xterm.c (XTread_socket): Bug fix.
10253
102541998-10-24 Gerd Moellmann <gerd@gnu.org>
10255
10256 * xdisp.c (redisplay_window): Finish scroll bars after
10257 redisplaying toolbar.
10258
10259 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10260 (syms_of_keyboard): Add Qbottom.
10261
10262 * termhooks.h (scroll_bar_to_top): New.
10263 (scroll_bar_to_bottom): New.
10264
10265 * xdisp.c (redisplay_window): Always resize toolbar window if
10266 auto_resize_toolbar_p is non-zero.
10267 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10268 (window_box): New.
10269 (window_box_height): New.
10270 (window_box_width): New.
10271 (window_box_left): New.
10272 (window_box_right): New.
10273 (window_box_edges): New.
10274
102751998-10-23 Gerd Moellmann <gerd@gnu.org>
10276
10277 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10278 XawScrollbarSetThumb in FreeBSD.
10279 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10280 to true.
10281
10282 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10283 is out of range.
10284
10285 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10286 (x_term_init): Initialize it.
10287
10288 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10289
10290 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10291 cursor.
10292
102931998-10-22 Gerd Moellmann <gerd@gnu.org>
10294
10295 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10296 differently when using toolkit scroll bars.
10297
10298 * xterm.c (x_send_scroll_bar_event): New.
10299 (x_scroll_bar_to_input_event): New.
10300 (xaw3d_scroll_callback): New.
10301 (xaw3d_jump_callback): New.
10302 (xm_scroll_callback): New.
10303 (x_toolkit_scroll_p): New.
10304 (XTread_socket): Handle scroll bar client message.
10305 (x_term_init): Initialize Xatom_Scrollbar.
10306 (x_scroll_bar_create): Set cursor.
10307 (xm_scroll_callback):
10308 (x_create_toolkit_scroll_bar): New.
10309 (x_set_toolkit_scroll_bar_thumb): New.
10310 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10311 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10312
10313 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10314
103151998-10-21 Gerd Moellmann <gerd@gnu.org>
10316
10317 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10318 (XTread_socket): Don't handle mouse button events for scroll bars
10319 if using toolkit scroll bars.
10320 (XTset_vertical_scroll_bar): Set thumb size and position for
10321 Athena scroll bar.
10322
10323 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10324
10325 * xterm.c (XTread_socket): Dispatch expose event to widget
10326 if using toolkit scroll bars.
10327 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10328 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10329 if using toolkit scroll bars.
10330 (x_scroll_bar_move): Handle tookit scroll bars.
10331
10332 * Makefile.in (LIBW): Use Xaw3d if present.
10333
10334 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10335 (HAVE_XAW3D): New.
427ec082 10336
26901792
DL
10337 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10338 (HAVE_XAW3D): New.
10339
427ec082 10340 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10341 right vertical scroll bar.
10342
103431998-10-20 Gerd Moellmann <gerd@gnu.org>
10344
10345 * xfns.c (xpm_load): Support reading XPM images from string
10346 buffers containing data in the same format as an XPM file.
10347 Support `:color-symbols'.
10348 (xpm_format): Add `:data'.
10349 (xpm_keyword_index): Add XPM_DATA.
10350 (syms_of_xfns): Add `:color-symbols'.
10351 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10352 (xpm_valid_color_symbols_p): New.
10353 (xpm_image_p): Call it.
10354
10355 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10356 attribute to the image if item is not enabled.
10357
10358 * xfns.c (x_laplace): New.
10359 (x_laplace_read_row): New.
10360 (x_laplace_write_row): New.
10361 (lookup_image): Handle common image attributes here. New
10362 attribute `:algorithm'.
10363
10364 * xfaces.c (clear_face_cache): Call clear_image_cache.
10365
10366 * xterm.c (x_inverted_image_mask): Removed.
10367 (x_draw_image_foreground_1): New.
10368 (x_draw_image_glyph_string): Draw images with mask to a temporary
10369 pixmap to reduce flickering.
10370
10371 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10372 (display_toolbar_line): Remove parameter `margin'.
10373
103741998-10-19 Gerd Moellmann <gerd@gnu.org>
10375
10376 * xdisp.c (toolbar_lines_needed): New.
10377 (auto-resize-toolbars): New.
10378
10379 * xfns.c (cache_image): Correct call to xrealloc.
10380
10381 * dispnew.c (Fset_toolbar_height): Removed.
10382
10383 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10384 FRAME_MENU_BAR_LINES.
10385
10386 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10387 instead of FRAME_MENU_BAR_LINES.
10388 (check_frame_size): Ditto.
10389
10390 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10391 instead of FRAME_MENU_BAR_LINES.
10392 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10393 (build_frame_matrix): Ditto.
10394 (change_frame_size_1): Ditto.
10395
10396 * frame.h (FRAME_TOOLBAR_LINES): New.
10397 (FRAME_TOP_MARGIN): New.
10398
10399 * window.c (struct save_window_data): Add frame_toolbar_lines.
10400 (Fset_window_configuration): Handle toolbar lines.
10401 (Fcurrent_window_configuration): Save toolbar lines.
10402
10403 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10404
10405 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10406
10407 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10408
10409 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10410 (x_set_toolbar_lines): New.
10411
10412 * keyboard.c (cmd_error_internal): Bug fix.
10413
10414 * xterm.c: Remove double include of syssignal.h.
10415
104161998-10-18 Gerd Moellmann <gerd@gnu.org>
10417
10418 * xterm.c (x_toolbar_item): New.
10419 (x_handle_toolbar_click): Use it.
10420 (note_toolbar_highlight): Use it.
10421
10422 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10423 and toolbar_items_vectors.
10424
10425 * xterm.c (help_echo): New.
10426 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10427 (x_set_glyph_string_gc): Handle them.
10428 (x_after_update_window_line): Don't do anything in pseudo-windows.
10429 (x_produce_image_glyph): Take image margin and face relief into
10430 account.
10431 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10432 (x_draw_glyph_string_background): Optimize case when face has
10433 relief.
10434 (x_setup_relief_color): Take frame instead of glyph string
10435 parameter.
10436 (x_draw_relief_rect): New.
10437 (x_draw_glyph_string_relief): Call it.
10438 (x_draw_image_glyph_string_foreground): Handle margin and image
10439 relief.
10440 (x_draw_image_glyph_string_background): Ditto.
10441 (expose_frame): Redraw toolbar window.
10442 (expose_window): Don't draw cursor for pseudo-windows.
10443 (x_y_to_hpos_vpos): Handle pseudo-windows.
10444 (frame_to_window_pixel_xy): New.
10445 (note_mouse_highlight): Call note_toolbar_highlight.
10446 (x_handle_toolbar_click): New.
10447 (note_toolbar_highlight): New.
10448 (show_mouse_face): Change int parameter `hl' to parameter of
10449 type enum draw_glyphs_face. Handle image highlighting.
10450 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10451 non-nil. Use x_handle_toolbar_click.
10452
10453 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10454
10455 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10456 IMAGE_BOOL_VALUE.
10457 (parse_image_spec): Handle them.
10458 (image_spec_value): Additional parameter found.
427ec082 10459 (free_image): Remove image from the vector `images' of the
26901792
DL
10460 image cache.
10461 (clear_image_cache): Additional parameter force_p.
10462 (Fclear_image_cache): New.
10463 (x_find_image_file): New.
10464 (xbm_load): Handle `:margin' and `:relief'. Use
10465 x_find_image_file.
10466 (xpm_load): Likewise.
10467 (pbm_load): Likewise.
10468 (jpeg_load): Likewise.
10469 (tiff_load): Likewise.
10470 (gif_load): Likewise.
10471
10472 * keyboard.c (Qhelp_echo): New symbol.
10473 (read_char): Handle `toolbar' and `help_echo' events.
10474 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10475 (make_lispy_event): Handle TOOLBAR_EVENT.
10476 (toolbar_items): New.
10477 (process_toolbar_item): New.
10478 (PROP): New.
10479 (init_toolbar_items): New.
10480 (append_toolbar_item): New.
10481 (read_char_x_menu_prompt): Handle `toolbar' event.
10482 (read_key_sequence): Ditto.
10483
10484 * xfaces.c (Qtoolbar): New.
10485 (realize_basic_faces): Realize `toolbar' face.
10486 (face_at_string_position): Remove parameter modeline_p, add
10487 base_face_id.
10488
10489 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10490 to read data.
10491
104921998-10-17 Gerd Moellmann <gerd@gnu.org>
10493
10494 * xdisp.c (init_iterator): Replace parameter modeline_p with
10495 base_face_id.
10496 (next_element_from_string): Call get_next_display_element
10497 recursively after handling text properties.
10498 (prepare_menu_bars): Call update_toolbar.
10499 (update_toolbar): New.
10500 (build_desired_toolbar_string): New.
10501 (display_toolbar_line): New.
10502 (redisplay_toolbar): New.
10503 (toolbar_item_info): New.
10504 (redisplay_window): Call redisplay_toolbar.
10505 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10506
10507 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10508 window.
10509 (clear_desired_matrices): Ditto.
10510 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10511 (free_glyphs): Free matrices of toolbar window.
10512 (update_frame): Update toolbar window.
10513 (change_frame_size_1): Take toolbar into account.
10514 (Fset_toolbar_height): New.
10515
10516 * dispextern.h (struct it): Remove member modeline_p, add
10517 base_face_id.
10518 (struct image): Add members relief and margin.
10519 (IMAGE_ASCENT): Include margin in height.
10520
105211998-10-14 Gerd Moellmann <gerd@gnu.org>
10522
10523 * xfns.c (Fclear_image_cache): New.
10524
10525 * xfaces.c (realize_basic_faces): Realize toolbar face.
10526 (face_at_string_position): Remove parameter modeline_p, add
10527 base_face_id.
10528
10529 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10530
105311998-10-13 Gerd Moellmann <gerd@gnu.org>
10532
10533 * keyboard.c (syms_of_keyboard): Intern `:help'.
10534
105351998-10-12 Gerd Moellmann <gerd@gnu.org>
10536
10537 * xterm.c (note_toolbar_highlight): New.
10538 (note_mouse_highlight): Call it.
10539
10540 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10541 (coordinates_in_window): Handle toolbar window.
10542
10543 * keyboard.c (toolbar_items): New.
10544 (process_toolbar_item): New.
10545 (parse_toolbar_item): New.
10546 (init_toolbar_items): New.
10547 (append_toolbar_item): New.
10548
10549 * dispextern.h (enum toolbar_item_idx): New.
10550 (enum toolbar_item_image): New.
10551
10552 * frame.h (struct frame): Add toolbar-related members.
10553
10554 * xfaces.c (face_at_string_position): Remove assertion that
10555 current_buffer == window's buffer. This is not the case when
10556 called for the toolbar window.
10557
10558 * frame.c (make_frame): Initialize toolbar members.
10559
10560 * alloc.c (mark_object): Mark toolbar data of frames.
10561
10562 * frame.h (struct frame): Add toolbar-related members
10563 toolbar_window, desired_toolbar_items, current_toolbar_items,
10564 desired_toolbar_string, current_toolbar_string,
10565 n_desired_toolbar_items, n_current_toolbar_items. Add
10566 window_height.
10567
10568 * xterm.c (x_after_update_window_line): Don't draw bitmap
10569 areas for pseudo-windows.
10570 (expose_frame): Handle toolbar window.
10571 (expose_window): Don't do cursor stuff for pseudo-windows.
10572
10573 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10574
105751998-10-11 Gerd Moellmann <gerd@gnu.org>
10576
10577 * frame.c (make_frame): Initialize toolbar_window.
10578
10579 * alloc.c (mark_object): Make the toolbar window.
10580
10581 * dispnew.c (update_frame): Update frame's toolbar_window.
10582 (clear_current_matrices): Likewise.
10583 (clear_desired_matrices): Likewise.
10584 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10585 (free_glyphs): Free the toolbar window and its matrices.
10586
10587 * frame.h (struct frame): Add toolbar_window.
10588
10589 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10590 with relief.
10591
105921998-10-10 Gerd Moellmann <gerd@gnu.org>
10593
427ec082 10594 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10595 window start is not in the range BEGV..ZV.
10596
105971998-10-09 Gerd Moellmann <gerd@gnu.org>
10598
10599 * xdisp.c (try_scrolling): Experimentally handle the case
10600 that scroll-preserve-screen-position is set to `always'.
10601
10602 * window.c (Vscroll_preserve_screen_position): Replacement for
10603 scroll_preserve_screen_position.
10604
106051998-10-08 Gerd Moellmann <gerd@gnu.org>
10606
10607 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10608 doesn't like it.
10609 * xdisp.c: Ditto.
10610
10611 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10612
106131998-10-06 Gerd Moellmann <gerd@gnu.org>
10614
427ec082 10615 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10616 i_byte when prompts are inserted into minibuffers.
10617
10618 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10619 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10620 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10621
106221998-10-04 Gerd Moellmann <gerd@gnu.org>
10623
10624 * xdisp.c (make_cursor_line_fully_visible): New.
10625 (try_scrolling): New.
10626 (redisplay_window): Move scrolling code to try_scrolling.
10627 (make_cursor_line_fully_visible): Handle case of window too small
10628 to show a single line.
10629 (redisplay_window): Case forced window start---use
10630 make_cursor_line_fully_visible.
10631 (redisplay_window): Case cursor movement via current matrix.
10632 If ending up on a partially visible line, make it fully visible
10633 instead of recentering.
10634 (try_scrolling): Additional parameter scroll_smoothly.
10635
10636 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10637
106381998-09-28 Gerd Moellmann <gerd@gnu.org>
10639
10640 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10641 instead of y-position for scroll-preserved-screen-position.
10642
106431998-09-07 Gerd Moellmann <gerd@gnu.org>
10644
10645 * dispnew.c (update_frame_line): If current row is not enabled,
10646 write the whole line.
10647
106481998-09-06 Gerd Moellmann <gerd@gnu.org>
10649
10650 * lisp.h (HAVE_FACES): Removed.
10651
10652 * dispextern.h (HAVE_FACES): Removed.
10653
10654 * config.in (HAVE_FACES): Removed.
10655
10656 * dispnew.c (HAVE_FACES): Removed.
10657
10658 * xdisp.c (HAVE_FACES): Removed.
10659
10660 * xfaces.c (HAVE_FACES): Removed.
10661
106621998-09-05 Gerd Moellmann <gerd@gnu.org>
10663
10664 * xdisp.c (init_iterator): If face_change_count is non-zero,
10665 free realized faces.
10666
10667 * xfaces.c (free_all_realized_faces): Make it externally visible.
10668 (Finternal_set_lisp_face_attribute): Increment
10669 windows_or_buffers_changed.
10670
10671 * dispnew.c (direct_output_for_insert): Give up if
10672 face_change_count is non-zero.
10673 (direct_output_forward_char): Ditto.
10674
10675 * xfaces.c (face_change_count): New.
10676
106771998-09-04 Gerd Moellmann <gerd@gnu.org>
10678
10679 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10680 of range.
10681
106821998-09-03 Gerd Moellmann <gerd@gnu.org>
10683
10684 * term.c (Ftty_display_color_p): New.
10685
106861998-09-02 Gerd Moellmann <gerd@gnu.org>
10687
10688 * xfaces.c (Ftty_defined_colors): New.
10689
10690 * xterm.c (x_produce_glyphs): Fix computation of
10691 contains_overlapping_glyphs_p for ASCII.
10692
10693 * dispnew.c (Fshow_cursor): Don't change cursor state while
10694 redisplaying.
10695 (direct_output_for_insert): If a glyph with lbearing or rbearing
10696 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10697
106981998-09-01 Gerd Moellmann <gerd@gnu.org>
10699
10700 * term.c (OUTPUT_IF): Make replacement text have statement form.
10701 (OUTPUT1_IF): Ditto.
10702 (TS_italic_mode, TS_end_italic_mode): Removed.
10703 (TS_bold_mode): Removed.
10704 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10705 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10706 (TS_enter_reverse_mode): New.
10707 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10708 (TN_magic_cookie_glitch_ul): New.
10709 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10710 (TS_exit_attribute_mode): New.
10711 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10712 (TS_set_foreground, TS_set_background): New.
10713 (reset_terminal_modes): Switch colors back to default.
10714 (write_glyphs): Turn face on before writing text, turn it off
10715 afterwards.
10716 (insert_glyphs): Ditto.
10717 (term_init): Initialize new terminal capability variables.
10718 (turn_on_face): Turn a face on.
10719 (turn_off_face): Turn a face off.
10720
10721 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10722 (GLYPH_CHAR): Ditto.
10723 (GLYPH_FACE): Ditto.
10724
10725 * xfaces.c (Vface_tty_color_alist): New.
10726 (face-register-tty-color): New.
10727 (face-clear-tty-colors): New.
10728
10729 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10730 (struct it): Remove member faces_p since we now always have faces.
10731
107321998-08-31 Gerd Moellmann <gerd@gnu.org>
10733
10734 * dispextern.h (struct face): Add tty appearance flags.
10735
10736 * xdisp.c (init_iterator): Always handle faces.
10737 (extend_face_to_end_of_line): Handle tty frames.
10738
10739 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10740 passed in.
10741
107421998-08-30 Gerd Moellmann <gerd@gnu.org>
10743
10744 * xfaces.c (realize_default_face): Use empty strings to indicate
10745 that the face should use the default foreground/background
427ec082 10746 color of the terminal. Fill font-related attributes with
26901792
DL
10747 appropriate values for tty frames.
10748
10749 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10750
10751 * xfaces.c (realize_default_face): If face `default' is not
10752 yet known, create it.
10753
10754 * frame.c (make_terminal_frame): Call init_frame_faces
10755 unconditionally.
10756
10757 * xfaces.c (init_frame_faces): Make it work for tty frames.
10758 (free_frame_faces): Ditto.
10759 (clear_face_cache): Ditto.
10760 (recompute_basic_faces): Ditto.
10761 (Fframe_face_alist): Ditto.
10762 (free_realized_face): Ditto.
10763 (prepare_face_for_display): Ditto.
10764 (clear_face_gcs): Ditto.
10765 (lookup_face): Ditto.
10766 (smaller_face): Ditto.
10767 (realize_default_face): Ditto.
10768 (realize_face): Ditto.
10769 (realize_face): Dispatch to functions depending on the frame type.
10770 (realize_x_face): X way of realizing faces.
10771 (realize_tty_face): TTY way of realizing faces.
10772
107731998-08-29 Gerd Moellmann <gerd@gnu.org>
10774
10775 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10776 compute it instead.
10777 (lookup_face): Remove local variable unibyte_registry.
10778
107791998-08-22 Gerd Moellmann <gerd@gnu.org>
10780
10781 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10782 1 pixel longer.
10783
427ec082 10784 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10785 of face in buffer.
10786
10787 * editfns.c (make_buffer_string_both): If prompt in buffer,
10788 prevent start > end.
10789
10790 * indent.c (Fvertical_motion): Set current_buffer to window's
10791 buffer if it isn't already.
10792
107931998-08-21 Gerd Moellmann <gerd@gnu.org>
10794
10795 * dispextern.h (GLYPH_DEBUG): Use default 0.
10796
10797 * xdisp.c (it_props): New member `smaller'.
10798 (init_iterator): Initialize it.
10799 (Qsmaller): New.
10800 (push_it): Save value of `smaller' value on the stack.
10801 (pop_it): Restore `smaller' from the stack.
10802 (handle_smaller_prop): New.
10803 (handle_face_prop): Use `smaller' text property to select a
10804 suitable face.
10805
10806 * dispextern.h (SMALLER_PROP_IDX): New.
10807 (struct it): Add member `smaller'.
10808
10809 * xfaces.c (smaller_face): New.
10810
10811 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10812
10813 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10814 total pixel width of window differently.
10815
10816 * xdisp.c (init_iterator): Compute width of mode line differently.
10817
10818 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10819 of bitmap areas.
10820
10821 * window.c (Fsplit_window): Include width of bitmap areas in
10822 window width.
10823 (window_internal_width): Subtract width of bitmap areas from
10824 total width.
10825
108261998-08-18 Gerd Moellmann <gerd@gnu.org>
10827
10828 * xdisp.c: Functions reordered for better readability.
10829
10830 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10831 lbearing.
10832 (update_window_tree): Parameter no_scrolling_p removed.
10833 (update_single_window): Ditto.
10834
10835 * xterm.c (x_get_char_font_and_encoding): Renamed to
10836 x_get_char_face_and_encoding.
10837
10838 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10839 if end of current row reached.
10840
10841 * xterm.c (x_get_glyph_face_and_encoding): New.
10842 (x_get_glyph_overhangs): Call it.
10843
10844 * xdisp.c (Qshow_trailing_whitespace): New.
10845 (Qtrailing_whitespace): New.
10846 (enum prop_handled): New.
10847 (struct props, it_props): New.
10848 (next_overlay_change): New. Works like Fnext_overlay_change
10849 but doesn't use xmalloc.
10850 (handle_stop): Restructured.
10851 (face_before_or_after_it_pos): Case iteration over a string: fix
10852 handling of face before current position.
10853
108541998-08-16 Gerd Moellmann <gerd@gnu.org>
10855
10856 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10857 reallocation matrix if fonts_changed_p.
10858 (update_text_area): Handle glyphs with lbearing.
10859
108601998-08-14 Gerd Moellmann <gerd@gnu.org>
10861
10862 * xdisp.c (struct props): New.
10863 (it_props): New.
10864 (compute_prop_info): New.
10865 (handle_stop): New.
10866
10867 * textprop.c (validate_interval_range): Make it externally
10868 visible.
10869
10870 * dispnew.c (direct_output_for_insert): Remove calls
10871 to compute_stop_pos.
10872
10873 * dispextern.h (struct it): Remove check_charpos,
10874 next_overlay_pos. Add what_changes.
10875
108761998-08-10 Gerd Moellmann <gerd@gnu.org>
10877
10878 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10879
10880 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10881 face_default_registry instead.
10882
10883 * syntax.c (scan_sexps_forward): Set up syntax table before
10884 jumping to initial state label.
10885
108861998-08-09 Gerd Moellmann <gerd@gnu.org>
10887
10888 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10889 >= ZV specially.
10890
108911998-08-08 Gerd Moellmann <gerd@gnu.org>
10892
10893 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10894 ends up in partially visible row, try to scroll. Case forced
10895 window start---handle windows not tall enough to show a single
10896 line.
10897
10898 * window.h (struct window): Member dy renamed vscroll.
10899
10900 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10901 fonts.
10902 (x_draw_stretch_glyph_string): Set clipping if using GC that
10903 hasn't set it yet.
10904
10905 * xdisp.c (redisplay_window): Case forced window start -
10906 don't let cursor end on partially visible row. Use desired
10907 matrix to find a suitable PT if it doesn't appear.
10908 (decode_mode_spec): Merged with 20.2.97.
10909 (try_window_reusing_current_matrix): Give up if old or
10910 new display is vscrolled.
10911 (redisplay_window): Reset vscrolling if forced window start,
10912 or if recentering.
10913
109141998-08-06 Gerd Moellmann <gerd@gnu.org>
10915
10916 * xfaces.c (realize_default_face): Use the fontset name instead of
10917 the alias for the family attribute of the default face because we
10918 can't easily determine a good alias from fontset-alias-alist.
10919 (face_fontset): Use Fquery_fontset to find the fontset.
10920 (font_list): Additional pattern parameter.
10921 (try_font_list): Ditto.
10922 (set_lface_from_font_name): Set face family from font foundry
10923 and family.
10924 (font_list): If family contains a hyphen, build pattern differently.
10925
109261998-08-05 Gerd Moellmann <gerd@gnu.org>
10927
10928 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10929 changed instead of setting the frame garbaged.
10930
10931 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10932 all attribute values. This is wrong if values are unspecified,
10933 i.e. nil.
10934
10935 * xdisp.c (try_window_id): Give up if window start changed.
10936
10937 * xfaces.c (make_realized_face): Store registry as Lisp object.
10938 (load_face_font_or_fontset): Compute registry of a face
10939 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10940 possible.
10941
10942 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10943 differently.
10944
10945 * alloc.c (mark_face_cache): Mark the registry member of faces.
10946
10947 * dispextern.h (struct face): Make registry a Lisp string.
10948
109491998-08-04 Gerd Moellmann <gerd@gnu.org>
10950
10951 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10952 multibyte_p. Handle unibyte text.
10953 (x_append_glyph): Set the multibyte_p flag of glyphs.
10954 (x_produce_image_glyph): Ditto.
10955 (x_append_stretch_glyph): Ditto.
10956 (x_produce_glyphs): Handle unibyte text like ASCII.
10957
10958 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10959 stack.
10960 (pop_it): Restore it.
10961 (face_before_or_after_it_pos): Handle the case that the string or
10962 buffer is unibyte.
10963 (get_overlay_strings): Set the multibyte flag of the iterator if
10964 the new overlay string is multibyte.
10965 (get_glyph_property): Likewise.
10966 (get_next_display_element): Don't check for charset changes in
10967 unibyte text.
10968 (append_space): Compute face differently for unibyte text.
10969 (extend_face_to_end_of_line): Don't return quickly if face has
10970 stipple.
10971
10972 * xfaces.c (load_face_font_or_fontset): Store registry and
10973 encoding of the font in the registry member of the face.
10974 (make_realized_face): Additional parameter `registry'.
10975 (free_realized_face): Free the registry of a realized face.
10976 (face_suitable_for_charset_p): Function form of the macro
10977 with the same name in uppercase.
10978 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10979 (choose_face_font): New parameter unibyte_registry.
10980 (choose_face_fontset_font): Ditto.
10981 (realize_default_face): Remember the registry and encoding of
10982 the specified frame font in Vx_unibyte_registry_and_encoding.
10983 (face_at_buffer_position): Handle unibyte.
10984 (face_at_string_position): Likewise.
427ec082 10985 (realize_face): New parameter unibyte_registry.
26901792
DL
10986 (compute_char_face): Handle the unibyte case.
10987
10988 * dispextern.h (struct glyph): Add bit multibyte_p.
10989 (struct face): New member registry holding the registry and
10990 encoding of the X font of the face.
10991 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10992 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10993 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10994 text.
10995 (struct iterator_stack_entry): Add multibyte_p.
10996
10997 * xdisp.c (string_pos): Use string_char_to_byte.
10998 (char_charset): Removed.
10999
110001998-08-03 Gerd Moellmann <gerd@gnu.org>
11001
11002 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
11003 rectangle for a block cursor over an image without a mask.
11004 (x_stretch_block_cursor): Added. Non-zero means don't draw
11005 a block cursor over a stretch as wide as that stretch.
11006 (x_draw_stretch_glyph_string): Use it.
11007 (x_draw_hollow_cursor): Ditto.
11008
11009 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
11010 (read_minibuf): Add front-sticky text property for prompt.
11011
11012 * xdisp.c (char_charset): Return charset of a character,
11013 depending on whether or not multi-byte characters are enabled.
11014
11015 * xfaces.c (Fset_face_charset_registry): Removed.
11016 (x_charset_registry): Determine registry from charset plist.
11017
110181998-08-02 Gerd Moellmann <gerd@gnu.org>
11019
11020 * xdisp.c (get_next_display_element): Don't check for charset
11021 changes if multi-byte characters are not enabled.
427ec082 11022
26901792 11023 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 11024 redisplay interface.
26901792
DL
11025 * keyboard.c (detect_input_pending_run_timers): Likewise.
11026
11027 * dispextern.h (produce_*glyphs_hook): Removed.
11028 * term.c (produce_*glyphs): Ditto.
11029 (cursor_to): Remove pixel position parameters.
11030
11031 * dispnew.c: Remove hooks for window-based redisplay, introduce
11032 a redisplay interface structure.
11033
11034 * xterm.c (x_per_char_metric): Return default char metrics if per
11035 char metric exists but contains a zero width. Adobe Courier seems
11036 to contain such characters.
11037
11038 * xdisp.c (compute_line_metrics): Compute the width of rows
11039 without stopping at glyphs with zero width.
11040
110411998-08-01 Gerd Moellmann <gerd@gnu.org>
11042
11043 * xdisp.c (display_mode_line): If nothing was displayed at all,
11044 display a space.
11045 (hscroll_window_tree): Don't subtract 1 from target point if equal
11046 to ZV and window is not the selected window.
11047
11048 * dispnew.c (check_matrix_invariants): Remove check for window
11049 start at BEGV or after newline. This happens in rare cases
11050 intentionally.
11051
110521998-07-31 Gerd Moellmann <gerd@gnu.org>
11053
11054 * xfaces.c (x_charset_registry): Use STRING_BYTES.
11055 (syms_of_xfaces): Add Vface_default_registry.
11056 (x_charset_registry): Use it.
11057
11058 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
11059 (redisplay_window): Use it.
11060
11061 * dispnew.c (update_text_area): Handle lbearing of deleted text
11062 by backing up one character.
11063
110641998-07-30 Gerd Moellmann <gerd@gnu.org>
11065
427ec082 11066 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
11067 decide to do nothing.
11068
11069 * xfaces.c (face_at_string_position): Additional parameter
11070 mode_line_p. If non-zero, merge with the mode line face
11071 instead of the default face.
11072 * dispextern.h (struct it): Add mode_line_p.
11073 * xdisp.c (init_iterator): Set it.
11074 (compute_face_in_string): Use it.
11075 (face_before_or_after_it_pos): Handle strings.
11076 (get_next_display_element): Don't look for relief end in C strings.
11077 (next_element_from_string): Deliver string position instead of
11078 buffer position.
11079
11080 * xterm.c (x_flush): Flush X output buffer.
11081 (XTflash): Use it.
11082
11083 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
11084 Allow strings as face names.
11085
11086 * xfns.c (forall_images_in_image_cache): Check that frame is
11087 alive.
11088
11089 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
11090 it's also called from x_destroy_window. Since this function is
11091 called from X, freeing stuff allocated with xmalloc is dangerous
11092 here, anyway.
11093
11094 * xfaces.c (free_realized_faces): Don't clear current matrices
11095 of a frame being destroyed.
11096
427ec082 11097 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
11098 Fset_window_buffer.
11099
11100 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
11101 with an additional argument specifying whether or not hooks may
11102 be called.
11103 (Fset_window_buffer): Call it.
11104
11105 * dispnew.c (clear_desired_matrices): Check that frame has
11106 a valid root window before clearing matrices in the window tree.
11107 (clear_current_matrices): Ditto.
11108 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
11109 vchild are valid windows if not nil.
11110
11111 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
11112 for :inverse-video.
11113 (Finternal_set_lisp_face_attribute): Ditto.
11114 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
11115 (Finternal_get_lisp_face_attribute): Ditto.
11116 (Finternal_lisp_face_attribute_values): Ditto.
11117 (syms_of_xfaces): Define the symbol `:reverse-video'.
11118
11119 * xdisp.c (get_glyph_property): Renamed from
11120 fill_iterator_from_glyph_property.
11121 (next_element_from_buffer): Handle case that no `glyph' property
11122 was found correctly.
11123 (display_line): Extend face to end of line only if we have faces.
11124
111251998-07-29 Gerd Moellmann <gerd@gnu.org>
11126
11127 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
11128 additional window argument.
11129
11130 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
11131 set_iterator_to_previous_visible_line_start.
11132 (reseat_at_next_visible_line_start): Likewise.
11133 (compute_stop_pos): Renamed from set_iterator_stop_pos.
11134 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
11135 (compute_face_in_buffer): Renamed from
11136 compute_face_at_iterator_position.
11137 (compute_face_in_string): Renamed from
11138 compute_face_at_iterator_string_position.
11139 (get_space_width): Renamed from get_iterator_space_width.
11140 (next_overlay_string): Renamed from
11141 set_iterator_to_next_overlay_string.
11142 (get_overlay_strings): Renamed from
11143 get_overlay_strings_at_iterator_position.
11144 (restore_overlay_strings): Renamed from
11145 setup_overlay_strings_from_glyph_pos.
11146 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11147 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11148 (init_to_row_start): Renamed from init_iterator_to_row_start.
11149 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11150
11151 * xterm.c: Merge with 20.2.97.
11152 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11153
11154 * dispextern.h (struct glyph): Replace text_pos position with
11155 simple charpos.
11156
11157 * xdisp.c (this_line_start_pos): Use struct text_pos.
11158 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11159 (enum move_it_result): Renamed from move_iterator_result.
11160 (string_pos_nchars_ahead): Compute text_pos in a string from a
11161 known text_pos plus a character delta.
11162 (string_pos): Compute text_pos in string from charpos.
11163 (c_string_pos): Likewise for a C string.
11164 (number_of_chars): Return number of characters in a possibly
11165 multi-byte C string.
11166 (check_it): Renamed from check_iterator. Check that charpos and
11167 bytepos are in sync.
11168 (push_it): Renamed from save_iterator_settings.
11169 (pop_it): Renamed from restore_iterator_settings.
11170 (move_it_.*): Renamed from move_iterator_.*.
11171 (charset_at_position): Take charpos/bytepos into account.
11172 (back_to_previous_line_start): Set iterator to previous line start.
11173 (forward_to_next_line_start): Set iterator to next line start.
427ec082 11174 (back_to_previous_visible_line_start): Renamed from
26901792
DL
11175 move_iterator_previous_visible_line_start.
11176 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11177 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11178 Handle charpos/bytepos.
11179 (compute_face_at_iterator_position): Handle charpos/bytepos.
11180 (compute_face_at_iterator_string_position): Likewise.
11181 (get_iterator_space_width): Likewise.
11182 (load_overlay_strings): Likewise.
11183 (get_overlay_strings_at_iterator_position): Likewise.
11184 (reseat_iterator): Take a text_pos position argument.
11185 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11186 bytepos.
11187 (init_iterator): Take additional bytepos parameter.
11188 (reseat_iterator_to_string): Handle charpos/bytepos.
11189 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11190 (next_element_from_string): Handle charpos/bytepos.
11191 (next_element_from_c_string): Likewise.
11192 (fill_iterator_from_glyph_property): Likewise.
11193 (next_element_from_buffer): Likewise.
11194 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11195 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11196 (move_it_to): Likewise.
11197 (move_it_vertically_backward): Likewise.
11198 (move_it_vertically): Likewise.
11199 (move_it_by_lines): Likewise.
11200 (hscroll_window_tree): Likewise.
11201 (redisplay_internal): Likewise.
11202 (set_cursor_from_row): Likewise.
11203 (redisplay_window): Likewise.
11204 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11205 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11206 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11207 (try_window_id): Handle charpos/bytepos.
11208 (Ftrace_redisplay_toggle): Return Qnil.
11209 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11210 (insert_left_trunc_glyphs): Likewise.
11211
11212 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11213 do a real merge).
11214 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11215 (increment_glyph_row_buffer_positions): Ditto.
11216 (copy_glyph_row_contents): Ditto.
11217 (check_matrix_invariants): Add additional checks for charpos/
11218 bytepos consistency.
11219 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11220 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11221 `direction-reversed' in #if 0.
11222
11223 * xterm.h: Merge with 20.2.97.
427ec082 11224
26901792
DL
11225 * frame.h: Merge with 20.2.97.
11226
11227 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11228
11229 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11230 start.
11231 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11232 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11233 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11234 (struct it): Various members renamed from .*pos to .*charpos.
11235 (IT_CHARPOS): Access current buffer character position of an
11236 iterator.
11237 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11238 (IT_STRING_CHARPOS): Access current string character position of
11239 an iterator.
11240 (IT_STRING_BYTEPOS): Access current string byte position of
11241 an iterator.
11242 (globally): Add function prototypes from 20.2.97.
11243
11244 * everywhere: Use P_ instead of PROTO for function prototypes
11245 because everyone else seems to use P_.
11246
11247 * dispextern.h (struct text_pos): Structure describing a charpos/
11248 bytepos position in text.
11249 (BYTEPOS): Access the byte position part of a text_pos.
11250 (CHARPOS): Likewise for the character position.
11251 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11252 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11253 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11254 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11255 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11256 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11257 for buffer and string positions.
11258 (struct glyph): Use text_pos.
11259 (struct it): Renamed from display_iterator. Use text_pos.
11260
112611998-07-23 Gerd Moellmann <gerd@gnu.org>
11262
11263 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11264 pixmap.
11265
112661998-07-21 Gerd Moellmann <gerd@gnu.org>
11267
11268 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11269 * xterm.c (x_draw_row_bitmaps): Use it.
11270 * dispnew.c (row_equal_p): Ditto.
11271 (update_window_line): Ditto.
11272
11273 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11274 flag of images.
11275
11276 * dispextern.h (struct image): Removed member loading_failed_p.
11277 It's probably better to have the chance to try to load an image
11278 again.
11279
112801998-07-20 Gerd Moellmann <gerd@gnu.org>
11281
11282 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11283 at ZV if `indicate-zv-lines' is non-nil.
11284 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11285
11286 * dispnew.c (row_equal_p): Compare displays_text_p and
11287 ends_at_zv_p flags of rows.
11288 (update_window_line): Ditto.
11289
11290 * buffer.h (struct buffer): New member indicate_zv_lines.
11291
11292 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11293 (init_buffer_once): New variable `default-indicate-zv-lines'.
11294 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11295
11296 * xdisp.c (redisplay_window): Don't try moving the cursor
11297 if current glyph row w->last_cursor.vpos isn't enabled.
11298
11299 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11300
11301 * window.c (Fset_window_vscroll): Allow only negative scroll
11302 values. Others don't seem to make sense, and this way it's easy
11303 to restore a vscroll of zero.
11304
11305 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11306 allocated.
11307 (x_draw_image_glyph_string_background): Don't clip if pixmap
11308 could not be created.
11309
11310 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11311 be created.
11312 (xbm_load): Ditto.
11313 (gs_load): Ditto.
11314
11315 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11316 glyphs into account.
11317
11318 * xfaces.c (realize_default_face): Don't set font family of
11319 the default face from the fontset alias name for `fontset-startup'.
11320
11321 * xfns.c (gs_load): Pass frame's pixel foreground and background
11322 color to the Lisp loader.
11323
113241998-07-19 Gerd Moellmann <gerd@gnu.org>
11325
11326 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11327 libtiff34.
11328
11329 * configure.in (--with-tiff, HAVE_TIFF): Added.
11330
11331 * config.in (HAVE_TIFF): Added.
11332
11333 * Makefile.in (LIBTIFF): Added.
11334
11335 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11336
11337 * Makefile.in (LIBJPEG): Added.
11338
11339 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11340 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11341 jpeglib.h.
11342
427ec082 11343 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11344 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11345 configure must be run with `--x-includes=/usr/X11R6/include:
11346 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11347
113481998-07-18 Gerd Moellmann <gerd@gnu.org>
11349
11350 * config.in (HAVE_JPEG): Added.
11351
11352 * xfns.c (ct_init): Initialize color table used to map RGB colors
11353 from images to X pixel colors.
11354 (ct_free): Free color table.
11355 (ct_lookup): Look an RGB color up.
11356 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11357 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11358 image specification.
11359 (pbm_scan_number): Scan a decimal ASCII number from a file.
11360 (pbm_load): Load a PPM image.
11361
11362 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11363 necessary. Take canonical character units as parameter.
11364 (Fwindow_vscroll): Return canonical character units.
11365
11366 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11367 w->dy to display height for which glyph rows must be allocated.
11368
113691998-07-17 Gerd Moellmann <gerd@gnu.org>
11370
11371 * xfaces.c (face_at_string_position): Merge in region face
11372 so that it won't overwrite the font in the region.
11373 (face_at_buffer_position): Ditto.
11374 (realize_basic_faces): Don't realize region face.
11375
11376 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11377
11378 * xterm.c (x_set_glyph_string_background_width): Don't let
11379 cursor face extend to end of line.
11380
11381 * xdisp.c (append_space): If adding space of default face,
11382 make sure glyph ist produced with right face.
11383
11384 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11385 background color of a glyph string.
11386 (x_draw_glyph_string_background): Call it.
11387 (x_draw_glyph_string_bg_rect): Ditto.
11388 (x_draw_stretch_glyph_string): Ditto.
11389
113901998-07-15 Gerd Moellmann <gerd@gnu.org>
11391
11392 * xdisp.c (init_iterator): Initialize it->current_y to the
11393 window's vscroll w->dy.
11394
11395 * window.c (Fwindow_vscroll): Return number of pixels window
11396 is vscrolled smoothly.
11397 (Fset_window_vscroll): Set the number.
11398
11399 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11400 to_pos in truncated part of a line.
11401
114021998-07-14 Gerd Moellmann <gerd@gnu.org>
11403
11404 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11405 doesn't fit on the line, truncate it, despite truncate_lines nil.
11406 (display_line): Ditto.
11407
11408 * xfns.c: Experimental support for Ghostscript images.
11409
11410 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11411 (XTread_socket): React on events from Ghostscript.
11412 (expose_frame): If width or height are zero, redraw entire frame.
11413 (XTread_socket): Call expose_frame after receiving event from
11414 Ghostscript.
11415
11416 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11417 for Ghostscript support.
11418
11419 * xdisp.c (redisplay_internal): Return quickly if called
11420 recursively.
11421
11422 * alloc.c (NSTATICS): Increased to 1024.
11423
114241998-07-08 Gerd Moellmann <gerd@gnu.org>
11425
11426 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11427 iterator's glyph row.
11428 (x_produce_stretch_glyph): Call it.
11429 (x_produce_glyphs): Handle `space-width' property; call
11430 x_append_stretch_glyph.
11431
11432 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11433 property.
11434 (get_iterator_space_width): Determine value of `space-width'
11435 property at iterator's position.
11436 (reseat_iterator): Call it.
11437 (next_element_from_string): Ditto.
11438 (next_element_from_buffer): Ditto.
11439 (init_iterator): Initialize space_width of iterator.
11440 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11441 moved, but cursor blinks.
11442 (redisplay_internal): Set w->last_cursor_off_p after update.
11443
11444 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11445 (struct display_iterator): Add new member space_width.
11446
11447 * window.h (struct window): Add last_cursor_off_p.
11448
114491998-07-07 Gerd Moellmann <gerd@gnu.org>
11450
11451 * Saved.
11452
11453 * window.c (Fpos_visible_in_window_p): Case window not up to
11454 date---return nil if iterator hasn't reached position.
11455
114561998-07-06 Gerd Moellmann <gerd@gnu.org>
11457
11458 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11459 overlays have changed.
11460 (redisplay_window): Case cursor movement. Don't try it if
11461 last_cursor.vpos is out of range.
11462
11463 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11464 way, the display optimization for the line containing the cursor
11465 is used more frequently, esp. when we have a blinking cursor.
11466 (display_line): Don't set this_line_.* variables.
11467
11468 * xterm.c (x_redraw_cursor): Removed.
11469 (x_display_and_set_cursor): Set cursor type depending on
11470 cursor_off_p flag of window.
11471
11472 * dispnew.c (redraw_cursor_hook): Removed.
11473 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11474 member of the selected window.
11475
11476 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11477
11478 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11479 Return glyph area under x/y.
11480 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11481
11482 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11483 after redisplaying.
11484
114851998-07-05 Gerd Moellmann <gerd@gnu.org>
11486
11487 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11488 are all outside of a line of text.
11489 (redisplay_internal): Use it.
11490
114911998-06-30 Gerd Moellmann <gerd@gnu.org>
11492
11493 * xdisp.c (next_element_from_buffer): After skipping over
11494 invisible text, look for the `glyph' property.
11495 (set_iterator_stop_pos): Ignore check positions in front
11496 of an iterator's current position.
11497
11498 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11499 anymore or which are marked as not having valid contents.
11500
11501 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11502 realized faces if new attribute value is equal to old value.
11503
115041998-06-29 Gerd Moellmann <gerd@gnu.org>
11505
11506 * xfaces.c (Finternal_make_lisp_face): Increment
11507 lface_id_to_name_size when lface_id_to_name is reallocated.
11508
115091998-06-27 Gerd Moellmann <gerd@gnu.org>
11510
11511 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11512 as minimum of endpos and overlay_pos.
11513 (load_overlay_strings): Set next_overlay_pos of iterator to
11514 -1 if we don't have to check for more overlay strings.
11515
115161998-05-09 Gerd Moellmann <gerd@gnu.org>
11517
11518 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11519 do anything if iterator is at ZV because scan_buffer doesn't
11520 work otherwise.
11521
11522 * xterm.c (x_encode_char): Inline it.
11523 (x_get_char_font_and_encoding): Simplified.
11524 (x_per_char_metric): Inline it.
11525
11526 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11527
11528 * xdisp.c (get_next_display_element): Check for end of relief
11529 face moved here from next_element_from_buffer.
11530
11531 * xterm.c (x_produce_image_glyph): Add relief thickness.
11532 (x_produce_stretch_glyph): Ditto.
11533
115341998-05-08 Gerd Moellmann <gerd@gnu.org>
11535
11536 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11537 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11538
11539 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11540 from a glyph property.
11541 (x_produce_glyphs): Use it.
11542
11543 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11544
427ec082 11545 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11546 in text area.
11547 (x_produce_glyphs): Ditto.
11548
427ec082 11549 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11550 marginal areas.
11551
427ec082 11552 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11553 background of an image glyph string.
427ec082 11554 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11555 the background of a glyph string.
11556 (x_draw_image_glyph_string_foreground): Draw the foreground of
11557 an image glyph string.
11558 (x_inverted_image_mask): Return the inverted mask of an image.
11559
11560 * xfns.c (x_draw_image): Removed.
11561
11562 * dispextern.h (struct image_type): Remove drawing function.
11563
11564 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11565
11566 * xdisp.c (get_next_display_element): In marginal areas, translate
11567 newlines, tabs, etc. like normal control characters.
11568
11569 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11570 and color.
11571 (free_realized_faces): Set frame garbaged.
11572
11573 * xfaces.c (syms_of_xfaces): Add defsubr for
11574 internal-lisp-face-attribute-values.
11575
115761998-05-07 Gerd Moellmann <gerd@gnu.org>
11577
11578 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11579 full.
11580 (x_produce_image_glyph): Set IT->nglyphs to 1.
11581 (x_draw_image_glyph_string): Use inverted mask to draw background.
11582
11583 * dispextern.h (struct image_type): Additional clipping rect
11584 parameters for drawing functions.
11585
427ec082 11586 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11587 a glyph string.
11588 (x_draw_image_glyph_string): Use it and pass the rect to the
11589 image drawing function.
11590
11591 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11592 first character with `glyph' property as image position. Set
11593 iterator back to that position as long as the image hasn't been
11594 consumed with set_iterator_to_next.
11595 (set_cursor_from_row): Accept when glyph with given position is
11596 not found in the row. Set cursor x to end of line in that case,
11597 so that we can hscroll.
11598 (redisplay_internal): Correct computation of delta by which
11599 positions have changed in redisplay optimization for cursor
11600 row of selected window.
11601
11602 * xdisp.c (display_line): Remove start_pos.
427ec082 11603 (display_line): Fix bug preventing display optimization for
26901792
DL
11604 cursor line of selected window.
11605 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11606 instead.
11607
11608 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11609 (update_text_area): Take glyph pixel width into account
11610 when trying to find a resync point.
11611 (row_equal_p): Compare glyphs in all areas.
11612
116131998-05-06 Gerd Moellmann <gerd@gnu.org>
11614
11615 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11616
11617 * dispextern.h (struct glyph_row): Use unsigned hash value.
11618
11619 * xdisp.c (display_line): Simplified and made faster by setting
11620 the cursor with set_cursor_from_row.
11621 (set_cursor_from_row): Handle rows of desired matrix.
11622
116231998-05-05 Gerd Moellmann <gerd@gnu.org>
11624
11625 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11626 with type != CHAR_GLYPH.
11627 (fill_iterator_from_glyph_property): Return void. Set
11628 method to next_element_from_image.
11629 (next_element_from_image): Dummy function for delivering a
11630 single image id.
11631 (set_iterator_to_next): Add method next_element_from_image.
11632 (redisplay_window): When recentering, and cursor vpos is -1
11633 after display, assume middle of window is in first line displayed
11634 in window, and display again.
427ec082 11635 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11636 the position of the first character having the glyph property.
11637
11638 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11639 * xfns.c (x_draw_image): Use it.
11640 * xterm.c (x_produce_image_glyph): Use it.
11641
11642 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11643
11644 * Makefile.in: Extraneous #define of LIBXPM removed.
11645
11646 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11647 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11648 stretch glyph.
11649 (x_compute_glyph_string_overhangs): Compute overhangs only
11650 for text glyph strings.
11651 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11652 (x_draw_glyph_string): Call it.
11653
11654 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11655 (struct glyph): Add sub-structure for stretchable glyphs.
11656 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11657
11658 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11659 #ifdef HAVE_FACES.
11660
11661 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11662
11663 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11664 setup_iterator_from_glyph_property. Don't do it for terminal
11665 frames.
11666
11667 * xterm.c (x_produce_image_glyph): Produce glyph for image
11668 that can't be loaded.
11669
11670 * xfns.c (lookup_image): If image can't be loaded, set its
11671 width and height so that we can draw a rectangle.
11672 (x_draw_image): Draw a rectangle for images that don't have
11673 a pixmap.
11674 (make_image): Set hash value.
11675 (image_spec_equal_p): Use image_spec_value.
11676
11677 * xterm.c (expose_frame): Don't try to redraw if basic faces
11678 haven't benn realized yet.
427ec082 11679 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11680 is not as tall as row.
11681
116821998-05-04 Gerd Moellmann <gerd@gnu.org>
11683
11684 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11685 (LIBX)[HAVE_X11]: Add LIBXPM.
11686
11687 * xfns.c (xpm_image_p): Implementation of image type functions
11688 for XPM.
11689 (xpm_load): Ditto.
11690
11691 * dispextern.h (struct image): Add mask pixmap for XPM.
11692
11693 * xfns.c (x_draw_image): Handle images with masks.
11694
11695 * configure.in: --with-xpm added. Code detecting -lXpm added.
11696
11697 * config.in: Add HAVE_XPM.
11698
11699 * xfns.c (xbm_draw): Removed.
11700 (x_draw_image): Default implementation for drawing images.
11701 (xbm_keyword_index): Remove XBM_DEPTH.
11702 (xbm_format): Remove `:depth'.
11703 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11704 (xbm_load_image_from_file): Added for the same reason.
26901792 11705
427ec082 11706 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11707 glyph string.
11708 (x_draw_image_glyph_string): Pass ybase to image draw function.
11709
11710 * xfns.c (make_image): Set default baseline.
11711
11712 * xterm.c (x_produce_image_glyph): Compute ascent of image
11713 from its height and baseline percentage.
11714
11715 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11716 (xbm_format): Add description for `:baseline'.
11717 (xbm_image_spec_from_file): Add keywords from original spec to
11718 result.
11719 (xbm_load): Set baseline of image.
11720 (xbm_image_p): Check range for baseline.
11721
11722 * dispextern.h (struct image): Add member baseline.
11723
11724 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11725
11726 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11727
11728 * xdisp.c (get_next_display_element): Do character translations
11729 only if delivering characters.
11730
117311998-05-03 Gerd Moellmann <gerd@gnu.org>
11732
427ec082 11733 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11734 DISP_CHARACTER.
11735
11736 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11737 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11738
117391998-05-02 Gerd Moellmann <gerd@gnu.org>
11740
11741 * xfns.c (prepare_image_for_display): Set image timestamp.
11742 (clear_image_cache): Clear images if image's timestamp +
11743 Vimage_eviction_seconds is > now.
11744 (syms_of_xfns): New variables image-eviction-seconds, and
11745 image-types.
11746 (add_image_format): Add to image-types.
11747 (xbm_load): Support new image spec format.
11748 (x_alloc_image_color): Allocate a color for an image.
11749
11750 * dispextern.h (struct image): Add timestamp.
11751
11752 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11753 vectors of bool-vectors.
11754 (xbm_lisp_object_from_file): Build new format image spec.
11755
117561998-05-01 Gerd Moellmann <gerd@gnu.org>
11757
11758 * xfaces.c (init_frame_faces): Initialize image cache.
11759 (free_frame_faces): Free it.
11760
11761 * xterm.c (x_delete_display): Don't free image cache.
11762
11763 * emacs.c (main): Call init_xfns.
11764
117651998-04-30 Gerd Moellmann <gerd@gnu.org>
11766
11767 * alloc.c (mark_object): Mark objects in image cache.
11768
427ec082 11769 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11770 widget_store_internal_border_width.
11771
11772 * widget.c (widget_store_internal_border): Return void.
11773
11774 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11775 void.
11776 (init_x_parm_symbols): Return void.
11777 (x_report_frame_params): Ditto.
11778 (x_set_border_pixel): Ditto.
11779 (syms_of_xfns): Ditto.
11780 (x_destroy_all_bitmaps): Use xfree instead of free.
11781
11782 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11783
11784 * xterm.c (x_term_init): Initialize image_cache of display info.
11785 (x_delete_display): Free image cache.
11786
11787 * xterm.h (struct x_display_info): Add image_cache.
11788
11789 * xfns.c (make_image_cache): Allocate a new image cache.
11790 (free_image_cache): Free an image cache.
11791 (make_image): Allocate an image.
11792 (free_image): Free an image.
11793
11794 * dispextern.h (struct image): Structure describing an image.
11795 (struct image_cache): Structure describing an image cache.
11796
117971998-04-29 Gerd Moellmann <gerd@gnu.org>
11798
11799 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11800 non-zero if iterator is filled with something to return.
11801 (next_element_from_buffer): Immediately return if
11802 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11803 (next_element_from_string): Likewise.
11804
11805 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11806
11807 * dispextern.h (struct glyph): Add pixmap_id.
11808 (display_element_type): Add DISP_PIXMAP.
11809
11810 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11811 malloc/free.
11812
11813 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11814 (clear_face_cache): Call it.
11815
11816 * xterm.c (x_query_font): Don't look at empty font table slots.
11817 (x_compute_min_glyph_bounds): Likewise.
11818 (x_term_init): Initialize font_table to null.
11819 (x_load_font): Change allocation of font_info structures so
11820 that it is possible to free fonts.
11821
427ec082 11822 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11823 Only free fonts from filled font table entries.
11824
11825 * xfaces.c (best_matching_font): Support use of scalable fonts.
11826 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11827
11828 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11829 and resy.
11830 * xterm.c (x_term_init): Compute resx and resy.
11831
11832 * xfaces.c (split_font_name): Don't reject scalable fonts.
11833
427ec082 11834 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11835 in #if 0.
11836
11837 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11838 point size cannot be determined.
11839
11840 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11841 width over all fonts on a frame.
11842 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11843 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11844 macros.
11845
11846 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11847 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11848 (x_load_font): Use x_compute_min_char_bounds.
11849
11850 * xterm.h (struct x_display_info): New members smallest_char_width
11851 and smallest_font_height.
11852
118531998-04-28 Gerd Moellmann <gerd@gnu.org>
11854
11855 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11856 the same name if GC of face is zero.
11857
11858 * dispextern.h (struct face): Member non_ascii_gc removed.
11859
11860 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11861 for characters < 0177 in default face. Prepare face for
26901792
DL
11862 display before returning it.
11863 (x_produce_glyphs): Use it->charset.
11864 (x_get_char_font_and_encoding): Simplified.
11865 (x_encode_char): Remove parameter `font'.
11866
11867 * xfaces.c (choose_face_font): If registry from charset symbol
11868 doesn't contain a `-', make it a pattern by appending "*-*".
11869
11870 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11871 glyph_check_pos computation to character boundary.
11872
118731998-04-27 Gerd Moellmann <gerd@gnu.org>
11874
11875 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11876
11877 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11878 ASCII face for a given Lisp face id.
11879
11880 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11881 account.
427ec082 11882 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11883 new position is < original position.
11884 (check_iterator_glyph_property): Handle glyph property in strings.
11885 (next_element_from_string): Call above function.
11886 (next_element_from_display_vector): Handle faces in glyphs.
11887 (get_next_display_element): Set face_id of glyphs for
11888 control chars to zero.
11889
11890 * Makefile.in (term.o): Add dependency on dispextern.h.
11891
11892 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11893 (display_line): Handle marginal areas.
11894 (move_iterator_in_display_line_to): Likewise.
11895
11896 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11897
11898 * xfaces.c (face_at_buffer_position): Don't merge with nil
11899 text property.
11900 (face_at_string_position): Ditto.
11901
11902 * dispextern.h (struct display_iterator): Use a stack of saved
11903 values instead of saving check positions etc. individually.
11904
11905 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11906 maybe pop the iterator's stack.
11907 (save_iterator_settings): Push a value on iterator's stack.
11908 (get_overlay_strings_at_iterator_position): Use it.
11909 (restore_iterator_settings): Pop the stack.
11910 (set_iterator_to_next_overlay_string): Use it.
11911
11912 * xfaces.c (try_font_list): Use alternative font families.
11913
119141998-04-26 Gerd Moellmann <gerd@gnu.org>
11915
11916 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11917 font selection matches fonts.
11918 (Fface_font_sort_order): Return the font sort order.
11919 (best_matching_font): Find best matching font based on sort order.
11920 (cmp_font_names): Sort by given sort order.
11921
11922 * dispextern.h (struct display_iterator): New member faces_p.
11923 * xdisp.c (init_iterator): Initialize it->faces_p.
11924 (compute_face_at_iterator_string_position): Use it.
11925 (compute_face_at_iterator_position): Use it.
11926 (init_iterator): Use it.
11927 (display_mode_line): Ditto.
11928
11929 * xdisp.c (get_next_display_element): Put code choosing a face
11930 when the charset changes in #ifdef HAVE_FACES.
11931
427ec082 11932 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11933 lookup_face_for_charset.
11934
11935 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11936 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11937
119381998-04-25 Gerd Moellmann <gerd@gnu.org>
11939
11940 * xfaces.c (best_matching_font): Return the name of the best
11941 matching font in an array of font_name structures.
11942 (choose_face_font): Use it.
11943 (choose_face_fontset_font): Use it.
11944 (find_best_weight_font): If final font found has same weight as
11945 the font we started with, return the original font because it is a
11946 better match for the resolution of the display.
11947 (find_best_slant_font): Likewise.
11948 (merge_face_vector_with_property): Check more invalid attribute
11949 values.
11950 (lface_suitable_for_charset_p): Replaced by a macro with the same
11951 name in upper-case.
11952
119531998-04-24 Gerd Moellmann <gerd@gnu.org>
11954
11955 * dispextern.h (struct face): Member
11956 fontset_chosen_for_realization_p removed.
11957
11958 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11959 end of the collision list, so that we find more specific faces
11960 first.
11961 (lookup_face_for_charset): Look up a new face if face->fontset >=
11962 0, and charset != CHARSET_COMPOSITION.
11963
11964 * xfaces.c (split_font_name): Return zero if point size of font
11965 couldn't be computed.
11966 (realize_default_face): Use ASCII font of a fontset to determine
11967 font-related attributes of the default face.
11968 (face_fontset): Return fontset id for face family.
11969 (font_list): Additional parameter font_pattern. If non-nil,
11970 return fonts matching that pattern.
11971
119721998-04-23 Gerd Moellmann <gerd@gnu.org>
11973
11974 * xfaces.c (choose_face_fontset): If new fontset cannot be
11975 constructed, or fontset name cannot be split, return the id of the
11976 standard fontset.
11977
11978 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11979 When Emacs starts, it may be called for the initial frame which
11980 isn't an X frame.
11981
11982 * dispextern.h (struct face): New members foreground_defaulted_p,
11983 background_defaulted_p.
11984 (struct face): Members `mask' and `cache' removed.
11985
11986 * xfaces.c (load_color): Set them.
11987 (free_face_colors): Check them.
427ec082 11988 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11989 font unknown.
11990
11991 * xfaces.c (free_font): Removed.
11992 (load_face_font_or_fontset): Renamed from load_font.
11993 (load_face_font_or_fontset): Use message2 instead of signalling.
11994 (load_color): Likewise.
11995 (load_pixmap): Likewise.
11996
11997 * xterm.h (struct x_display_info): Add screen_dpi.
11998 * xterm.c (x_term_init): Initialize it.
11999 * xfaces.c (xlfd_point_size): Use it.
12000 (split_font_name): Compute numeric XLFD_RESY.
427ec082 12001 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
12002 similar to that of the frame appear first in the result.
12003
12004 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
12005 is set for the face to cache, add it to the end of the collision
12006 list.
12007 (try_font_list): If fonts for given family and registry cannot
12008 be found, first try to keep the registry, and choose a different
12009 family.
12010 (choose_face_font): Allow nfonts == 0.
12011 (try_font_list): Give up if no font matches given registry.
12012
120131998-04-22 Gerd Moellmann <gerd@gnu.org>
12014
12015 * xterm.c (x_get_char_font_and_encoding): Get font_info from
12016 font info id of the face.
12017
12018 * xfaces.c (load_font): Set font_info_id.
12019 (realize_face): Ditto.
12020
12021 * dispextern.h (struct face): Change member font_info to
12022 font_info_id.
12023
12024 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
12025 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
12026
12027 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
12028 isn't ASCII, get the ASCII face before adding a space.
12029 (append_space): Likewise.
12030 (insert_left_trunc_glyphs): Initialize truncate_it's charset
12031 to -1 so that it will compute the right face for the truncation
12032 glyphs.
12033
12034 * xfaces.c (realize_face): Set
12035 face->fontset_chosen_for_realization_p.
12036 (lookup_face_for_charset): If fontset wasn't specified originally
12037 and new charset != CHARSET_COMPOSITION, get a new face for that
12038 charset.
12039
12040 * dispextern.h (struct face): New member
12041 fontset_chosen_for_realization_p_specified_p. Set to 1 when
12042 realize_face has chosen a fontset to display composite characters
12043 for a Lisp face not specifying a fontset.
12044
12045 * xdisp.c (extend_face_to_end_of_line): Move tests for default
12046 face and line already filled here. Don't do anything if current
12047 face hasn't a relief or has a background equal to the frame
12048 background.
12049
12050 * xfaces.c (split_font_name): Additional parameter numeric_p.
12051 Don't compute numeric values if it is non-zero.
12052 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 12053 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
12054 font whose name cannot be split into fields.
12055
120561998-04-21 Gerd Moellmann <gerd@gnu.org>
12057
427ec082 12058 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
12059 possibly using less restrictive patterns.
12060 (choose_face_font): Use it.
12061
12062 * xterm.c (x_get_char_font_and_encoding): For charset !=
12063 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
12064
12065 * dispextern.h (struct face): New member font_info.
12066
12067 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
12068 specifying a fontset as well as those not having a fontset.
12069 (free_font): Make it empty.
12070 (realize_face): Use changed load_font.
12071
12072 * xterm.c (x_get_char_font_and_encoding): If face doesn't
12073 fit for charset, get the right one.
12074
12075 * xfaces.c (load_font): Take frame and name parameter, return
12076 font.
12077 (free_font): Likewise.
12078 (split_font_name): Compute numeric values for height, swidth etc.
12079 (cmp_font_names): Use them.
12080 (find_best_width_font): Ditto.
12081 (find_best_height_font): Ditto.
12082 (find_best_weight_font): Ditto.
12083 (find_best_slant_font): Ditto.
12084 (lface_hash): Add weight, slant, swidth and relief to hash value.
12085 (lface_equal_p): Make it faster.
12086 (lface_from_symbol): Use assq_no_quit.
12087 (Fnote_default_face_changed): Removed.
12088 (cmp_font_names): Use strcmp instead of xstricmp.
12089 (face_charset_registries): Removed.
12090
120911998-04-20 Gerd Moellmann <gerd@gnu.org>
12092
12093 * frame.h (CHECK_FRAME): Give this macro a statement form.
12094 (CHECK_LIVE_FRAME): Ditto.
12095
12096 * xfaces.c (find_best_width_font): Find the best matching font
12097 for a given width.
12098 (find_best_height_font): Likewise for height.
12099 (find_best_weight_font): Likewise for weight.
12100 (find_best_slant_font): Likewise for slant.
12101 (choose_face_font): Use them.
12102 (get_lface_attributes): Always return frame-local face attrs.
427ec082 12103 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
12104 global face attributes.
12105
12106 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
12107 Lisp face attributes.
12108
121091998-04-19 Gerd Moellmann <gerd@gnu.org>
12110
12111 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
12112 and :italic for compatibility.
12113 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 12114 :bold and :italic. Handle boolean resource values for
26901792
DL
12115 :underline and :italic.
12116
12117 * xfns.c (display_x_get_resource): Make it externally visible.
12118
12119 * xfaces.c (lface_from_symbol): Take a frame as parameter.
12120 If that frame is non-null, return the frame-local face.
12121 (Finternal_make_lisp_face): Additional frame argument.
12122 (lface_attributes): Get face attributes from global and frame-local
12123 definitions.
12124 (Finternal_lisp_face_equal_p): Additional frame argument.
12125 (merge_lisp_face_vector_with_property): Ditto.
12126 (Frealize_basic_faces): Removed.
12127 (Finternal_get_lisp_face_attribute): Additional frame argument.
12128 (Finternal_lisp_face_p): Ditto.
12129 (load_color) [MSDOS]: Removed because it isn't clear how
12130 to do this for MS-DOS.
12131
12132 * xfaces.c (lface_from_symbol): Get global face definition
12133 from face-global-alist.
12134
12135 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
12136 as values for :underline and :inverse-video.
12137 (Finternal_set_lisp_face_attribute): Allow nil values.
12138
121391998-04-17 Gerd Moellmann <gerd@gnu.org>
12140
12141 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12142
12143 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12144 (Finternal_make_lisp_face): Add new face to Vall_faces.
12145
12146 * xdisp.c (echo_area_display): Remove code recomputing faces.
12147 (redisplay_internal): Ditto.
12148 (init_iterator): Do it here.
12149
12150 * xfaces.c (choose_face_font): Check that swidth doesn't change
12151 for subusequent attributes.
12152 (xlfd_point_size): Return int.
12153
12154 * xdisp.c (redisplay_internal, echo_area-display): If realized
12155 faces have been cleared, call recompute_basic_faces.
12156
12157 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12158 face_attributes_changed_p.
427ec082 12159 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
12160 all frames.
12161 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12162
12163 * xdisp.c (redisplay_internal): If face attributes have been
12164 changed since the last redisplay, recompute basic faces.
12165 (echo_area_display): Ditto.
12166
12167 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12168
12169 * xfaces.c (min_char_bounds): If face cache not yet present,
12170 don't try to get font dimensions from faces.
12171
12172 * xterm.c (x_frame_mode_line_height): If face cache not present
12173 set, return default height.
12174
12175 * alloc.c (mark_face_cache): Check for null faces. Correct
12176 index bug.
12177
12178 * dispextern.h (struct face): Renamed from struct rface. Member
12179 underline renamed underline_p. Make it a bit-field.
12180
12181 * xfaces.c (init_frame_faces): Allocate face cache.
12182 (free_frame_faces): Free face cache.
12183 (recompute_basic_faces): Realize basic faces only if face cache is
12184 allocated, i.e. after init_frame_faces has been called.
12185
12186 * frame.c (make_frame): Initialze face cache with null.
12187
12188 * xfaces.c (same_size_fonts): Removed.
12189
427ec082 12190 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
12191 s->gc != 0.
12192 (x_set_mouse_face_gc): Ditto.
12193 (x_set_mode_line_face_gc): Ditto.
12194
427ec082
SS
12195 * xfaces.c (realize_default_face): Return int. Value is
12196 zero if frame params don't contain enough information to
26901792
DL
12197 realize the default face.
12198 (realize_basic_faces): Ditto.
12199 (init_frame_faces): Realize basic faces.
12200
12201 * xfns.c (x_set_font): First store real font name in frame
12202 parameters, then call recompute_basic_faces.
12203
12204 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12205
122061998-04-16 Gerd Moellmann <gerd@gnu.org>
12207
12208 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12209
12210 * xfns.c (Fx_face_fixed_p): Removed.
12211 (Fx_list_fonts): Moved to xfaces.c.
12212
12213 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12214 face_at_buffer_position. Parameter charset removed; always
12215 compute face for CHARSET_ASCII.
12216 (face_at_string_position): Renamed from
12217 compute_face_at_string_pos. Parameter charset removed; always
12218 compute for CHARSET_ASCII.
427ec082 12219 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12220 face_cache.
12221 (lookup_face): Ditto.
12222 (compute_char_face): Renamed from compute_glyph_face.
12223
12224 * xdisp.c (init_iterator): Initialize charset member.
12225 (reseat_iterator_to_string): Ditto.
12226 (get_charset_at_buffer_position): Determine charset at
12227 buffer position in current_buffer.
12228 (reseat_iterator): Call above function.
12229 (compute_face_at_iterator_position): Call
12230 compute_face_at_buffer_pos.
12231 (compute_face_at_iterator_string_position): Call
12232 compute_face_at_string_pos.
12233 (get_face_from_id): Removed.
12234 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12235 Call get_charset_at_buffer_position.
12236 (reseat_iterator): Determine face if charset at pos differs
12237 from iterator's charset.
12238 (reseat_iterator_to_glyph_pos): Removed.
12239
12240 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12241 Determine charset from buffer position.
12242 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12243 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12244
12245 * dispextern.h (struct display_iterator): Add member charset.
12246
122471998-04-15 Gerd Moellmann <gerd@gnu.org>
12248
12249 * xfaces.c (compute_char_face): Removed.
12250
12251 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12252 with new parameter list.
12253
12254 * xfaces.c (region_face): Removed.
12255 (allocate_face): Removed.
12256 (copy_face): Ditto.
12257 (face_eql): Removed.
12258 (intern_face): Removed.
12259 (clear_face_cache): Removed.
12260 (load_font): Ditto.
12261 (unload_font): Ditto.
12262 (load_color): Ditto.
12263 (unload_color): Ditto.
12264 (new_computed_face): Ditto.
12265 (intern_computed_face): Ditto.
12266 (ensure_face_ready): Ditto.
12267 (merge_faces): Ditto.
12268 (compute_base_face): Ditto.
12269 (merge_face_list): Ditto.
12270 (Fmake_face_internal): Removed.
12271 (Fset_face_attribute_internal): Ditto.
12272 (face_name_id_number): Removed.
12273 (Fframe_face_alist): Ditto.
12274 (Fset_frame_face_alist): Ditto.
12275 (Finternal_next_face_id): Ditto.
12276
12277 * xterm.h (struct x_output): Remove computed_faces, and
12278 param_faces. Remove macros accessing them.
12279
12280 * xfaces.c: Entirely new face implementation added.
12281
122821998-04-11 Gerd Moellmann <gerd@gnu.org>
12283
12284 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12285 `charpos'.
12286
122871998-04-10 Gerd Moellmann <gerd@gnu.org>
12288
12289 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12290 scroll bar window to reduce flickering. Clear entire height.
12291
12292 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12293 current_x and hpos to zero after moving to previous line
12294 start.
12295
122961998-04-03 Gerd Moellmann <gerd@gnu.org>
12297
12298 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12299
12300 * xfaces.c (xlfd_point_size): Compute relative point size of
12301 fonts from font and frame resolution.
12302 (sort_fonts): New function to sort fonts, temporarily setting
12303 font_frame to the frame in effect.
12304 (xlfd_point_size): Take additional frame parameter to be able
12305 to get at the display's resolution.
12306
12307 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12308 BLACK_PIX_DEFAULT.
12309 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12310 screen of display.
12311
123121998-03-31 Gerd Moellmann <gerd@gnu.org>
12313
12314 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12315
12316 * fontset.h: Add external declarations for Vfontset_alias_alist
12317 and Vglobal_fontset_alist.
12318
12319 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12320 (realize_default_face): If frame parameters contain an artificial
12321 font name naming a fontset, set the family of the default face to
12322 the fontset name given by the registry.
12323
12324 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12325
123261998-03-22 Gerd Moellmann <gerd@gnu.org>
12327
12328 * alloc.c (mark_object): Add function prototype. Add cast to
12329 Lisp_Object pointer in call to mark_object for symbol names
12330 because this otherwise gives a warning from gcc 2.8.1.
12331 (mark_face_cache): Mark Lisp objects in realized faces.
12332
123331998-03-19 Gerd Moellmann <gerd@gnu.org>
12334
12335 * frame.h (struct frame): Add member face_cache.
12336
12337 * alloc.c (mark_object): Mark face cache.
12338 (mark_face_cache): Mark Lisp faces in face cache of frame.
12339
12340 * frame.c (make_frame): Initialize face_cache.
12341 (Fdelete_frame): Free it.
12342
123431998-03-18 Gerd Moellmann <gerd@gnu.org>
12344
12345 * xfaces.c: Very first skeleton of functions for face realization,
12346 face merging, face cache etc.
12347
12348 * dispextern.h (struct rface): Realized faces. Will replace
12349 struct face when tested.
12350 (struct face_cache): Realized face caches.
12351
12352 * xdisp.c (init_iterator): Initialize area member of display
12353 iterator.
12354
123551998-03-17 Gerd Moellmann <gerd@gnu.org>
12356
12357 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12358
12359 * dispextern.h (struct display_iterator): New member area.
12360
12361 * xterm.c (note_overwritten_text_cursor): Note when the text
12362 cursor of a window is overwritten.
12363
12364 * xdisp.c (set_cursor_from_row): If PT is not found in the
12365 row, display the cursor at the start of the row.
12366
12367 * dispnew.c (direct_output_forward_char): Call
12368 set_cursor_from_row.
12369
12370 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12371 position is not in an overlay string, set iterator's position and
12372 method explicitly so.
427ec082 12373 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12374 Make it externally visible.
12375 (redisplay_window): Call set_cursor_from_row so that there is only
12376 one place where the cursor position is calculated from a current
12377 row.
12378
12379 * dispextern.h (struct display_iterator): New member
12380 overlay_strings_at_end_processed_p.
12381
12382 * xdisp.c (check_iterator): Perform sanity checks on
12383 display_iterators.
12384 (next_element_from_buffer): Check for overlay strings at ZV.
12385
123861998-03-16 Gerd Moellmann <gerd@gnu.org>
12387
12388 * buffer.c (init_buffer_once): Add left_margin_width and
12389 right_margin_width to buffer_local_flags.
12390
12391 * dispnew.c (margin_glyphs_to_reserve): Function computing
12392 number of glyphs to reserve for a marginal area.
12393 (adjust_glyph_matrix): Call it.
12394 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12395 is not alive.
12396
12397 * window.c (Fset_window_margins): Allow floats.
12398
12399 * buffer.c (syms_of_buffer): Add buffer-local variables
12400 left-margin-width and right-margin-width. Add defaults
12401 default-left-margin-width and default-right-margin-width.
12402
12403 * buffer.h (struct buffer): New members left_margin_width
12404 and right_margin_width.
12405
12406 * window.c (Fset_window_margins): Make window the last and
12407 optional argument.
12408
12409 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12410 flag no_marginal_areas_p differently.
12411 (x_clear_end_of_line): Ditto.
12412 (x_draw_glyph_string_relief): Compute width of relief differently
12413 for rows with flag no_marginal_areas_p.
12414
12415 * dispnew.c (update_window_line): Update marginal areas only
12416 for rows that don't have no_marginal_areas_p set.
12417
12418 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12419 (display_menu_bar): Ditto.
12420
12421 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12422
12423 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12424 marginal areas in window-based redisplay.
12425
12426 * dispextern.h (struct glyph_matrix): New members
12427 left_margin_glyphs and right_margin_glyphs.
12428
124291998-03-15 Gerd Moellmann <gerd@gnu.org>
12430
12431 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12432
12433 * charset.c (non_ascii_char_to_string): Use char type parameters
12434 because the function is used that way from outside. Use unsigned
12435 char internally.
12436
12437 * window.c (change_window_height): Return void.
12438 (make_dummy_parent): Return void.
12439 (init_window_once): Return void.
12440 (syms_of_window): Ditto.
12441 (keys_of_window): Ditto.
12442 (delete_window): Correct return with and without value.
12443
12444 * buffer.c (record_buffer): Return void.
12445
12446 * marker.c (unchain_marker): Return void.
12447
12448 * window.c (unshow_buffer): Return void.
12449 (replace_window): Ditto.
12450 (delete_window): Ditto.
12451
12452 * term.c (delete_glyphs_hook): Void return type.
12453 (ring_bell_hook): Ditto.
12454 (set_terminal_window_hook): Ditto.
12455
12456 * sysdep.c (init_sigio): Return void.
12457
12458 * xterm.c (x_set_window_size): Return void.
12459 (x_calc_absolute_position): Ditto.
12460 (x_set_offset): Ditto.
12461 (x_focus_on_frame): Ditto.
12462 (x_unfocus_frame): Ditto.
12463 (x_make_frame_visible): Ditto.
12464 (x_make_frame_invisible): Ditto.
12465 (x_iconify_frame): Ditto.
12466 (x_destroy_window): Ditto.
12467 (x_wm_set_window_state): Ditto.
12468 (x_wm_set_icon_pixmap): Ditto.
12469 (x_wm_set_icon_position): Ditto.
12470 (x_initialize): Ditto.
12471 (x_error_quitter): Ditto.
12472 (x_destroy_window): Use xfree instead of free.
12473
12474 * keyboard.c (clear_waiting_for_input): Return void.
12475
12476 * xterm.c (x_wm_set_size_hint): Return void.
12477 (x_raise_frame): Ditto.
12478 (refreshicon): Ditto.
12479 (x_error_catcher): Ditto.
12480 (x_clear_errors): Ditto.
12481
12482 * keyboard.c (record_asynch_buffer_change): Return void.
12483
bb6677a8
GM
12484 The first line of the following paragraph was garbled for an
12485 unknown reason. It couldn't be fully reconstructed.
12486
12487 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12488 (x_lower_frame): Ditto.
12489 (x_scroll_bar_clear): Ditto.
12490 (XTflash): Add default case in switch for -Wall.
12491 (construct_mouse_click): Return Qnil.
12492 (cancel_mouse_face): Return void.
12493 (x_queue_event): Use xmalloc instead of malloc.
12494 (x_unqueue_events): Use xfree instead of free.
12495
12496 * ccl.c (ccl_driver): Return int.
12497
12498 * keyboard.c (stop_polling): Return void.
12499 (start_polling): Ditto.
12500
12501 * term.c (keys): Add braces in initializer list for -Wall.
12502
12503 * sysdep.c (tabs_safe_p): Return int.
12504 (init_baud_rate): Return void.
12505
12506 * xterm.c (x_draw_bitmap): Add default case.
12507 (x_setup_relief_colors): Use DefaultScreen instead of
12508 DefaultScreenOfDisplay.
12509 (x_delete_glyphs): Return void.
12510 (construct_menu_click): Put in #if 0 because it isn't called.
12511
12512 * xdisp.c (load_overlay_strings): Remove extraneous argument
12513 in call to qsort.
12514 (get_overlay_arrow_glyph_row): Add missing return value.
12515
12516 * window.c (set_window_height): Return void.
12517 (set_window_width): Ditto.
12518
12519 * sysdep.c (request_sigio): Return void.
12520 (unrequest_sigio): Ditto.
12521 (get_frame_size): Ditto.
12522
12523 * scroll.c (scroll_cost): Return int.
12524 (do_line_insertion_deletion_costs): Return void.
12525
12526 * frame.c (Fdelete_frame): Use xfree instead of free.
12527
12528 * fileio.c (report_file_error): Return void.
12529
12530 * dispnew.c: Make compilable with -Wall.
12531 * term.c: Ditto.
12532
12533 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12534
125351998-03-14 Gerd Moellmann <gerd@gnu.org>
12536
12537 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12538 increased.
12539 (x_setup_relief_color): Free color only for appropriate visual
12540 classes.
12541
12542 * xterm.c (expose_window): Fix calculation of intersection of mode
12543 line rectangle with exposed rectangle.
12544
12545 * xdisp.c (redisplay_window): Don't do cursor movement based
12546 on current matrix if w->last_point is not valid.
12547
125481998-03-09 Gerd Moellmann <gerd@gnu.org>
12549
12550 * xterm.c (expose_line): Redraw mode line and menu lines
12551 differently because they reach into the scroll bar area.
12552
12553 * xdisp.c (redisplay_window): If redisplaying with same window
12554 start, don't accept cursor on partially visible line.
12555
125561998-03-08 Gerd Moellmann <gerd@gnu.org>
12557
12558 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12559 for wider mode lines.
12560 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12561
12562 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12563 scroll bar width for mode lines.
12564
12565 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12566 vertical scroll bar width in width calculation so that we can
12567 display mode lines wider.
12568
12569 * xdisp.c (redisplay_window): Restore buffers before returning
12570 when fonts have changed.
12571
12572 * dispnew.c (update_window): Mark invisible rows in the current
12573 matrix invalid.
12574
12575 * xdisp.c (try_window_id): Force update of first row displayed
12576 at window end.
12577 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12578
125791998-03-05 Gerd Moellmann <gerd@gnu.org>
12580
12581 * dispextern.h (struct glyph_row): Member max_ascent renamed
12582 ascent. Member max_descent replaced by height.
12583 (struct display_iterator): Member max_descent replaced by height.
12584 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12585
12586 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12587 class makes it unnecessary or dangerous.
12588
12589 * xdisp.c (redisplay_window): Case only point has changed, and
12590 point has moved forward. Move forward over overlay strings.
12591 (display_line): Don't set cursor if first glyph from PT is part of
12592 a continuation line.
12593
125941998-02-21 Gerd Moellmann <gerd@gnu.org>
12595
12596 * xdisp.c (start_display): When computing continuation lines
12597 width, add current_x to the continuation lines width because
12598 move_iterator_to will stop in front of the buffer position moved
12599 to.
12600
126011998-02-20 Gerd Moellmann <gerd@gnu.org>
12602
12603 * xdisp.c (redisplay_window): Don't try try_window_id if
12604 windows_or_buffers_changed.
12605
12606 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12607 determine a color.
12608 (x_setup_relief_color): Allocate/ change one relief.
12609 (x_setup_relief_colors): Call above function.
12610
12611 * xterm.h (struct relief): New structure type holding relief info:
12612 GCs, colors, and whether colors are allocated.
12613
427ec082 12614 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12615 produces the same color, try adding a delta to RGB values.
12616 (x_setup_relief_colors): Free color cells.
12617
427ec082 12618 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12619 black_relief_pixel holding the foreground colors allocated for
12620 relief GCs. New members white_allocated_p, black_allocated_p.
12621
12622 * xterm.c (x_scroll_run): Don't set updated_window to null.
12623 This resets updated_window when called from scrolling_window.
12624
12625 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12626
26901792
DL
12627 * xterm.c (x_scroll_run): Additional window parameter. Set
12628 and reset updated_window.
12629
12630 * dispnew.c (line_dance_hook): Additional window parameter.
12631
12632 * xdisp.c (try_window_reusing_current_matrix): Don't call
12633 update_window_begin/end here. The end function would display the
12634 cursor on a wrong position and the additional functionality of
12635 update_window_begin is not needed anyway. Just set
12636 updated_window.
12637 (try_window_id): Ditto.
12638
12639 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12640 Don't redraw cursor during redisplay.
12641
12642 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12643
12644 * xdisp.c (redisplay_window): For window-based redisplay, alway
12645 try try_window_id.
12646
12647 * xterm.c (struct glyph_string): New member two_byte_p that is
12648 non-zero if 16-bit drawing functions must be used.
12649 (x_fill_composite_glyph_string): Set it.
12650 (x_fill_glyph_string): Set it.
12651 (x_draw_glyph_string_foreground): Use it.
12652 (x_draw_vertical_border): Make line 1 pixel less tall.
12653 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12654 side by 1 pixel if window is not right-most hasn't vertical scroll
12655 bars.
12656 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12657 out of bounds.
12658 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12659 hl == DRAW_CURSOR.
12660
12661 * xdisp.c (start_display): Check that window start is at line
12662 start if GLYPH_DEBUG != 0.
12663
12664 * window.c (window_scroll_pixel_based): Move assertion to
12665 start_display.
12666
126671998-02-19 Gerd Moellmann <gerd@gnu.org>
12668
427ec082 12669 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
12670 frame hasn't the focus.
12671
12672 * window.c (make_window): Initialize dy.
12673 (replace_window): Ditto.
12674
12675 * window.h (window): New member dy specifying the amount by which
12676 a window is scrolled "smoothly".
12677
12678 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 12679 y-position because it can be negative.
26901792
DL
12680 (x_draw_row_bitmaps): Don't clear with negative y-position like
12681 above.
12682 (x_clear_end_of_line): Same theme as above.
12683
12684 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
12685 exact match exists, the nearest existing color. Patterned after
12686 defined_color.
12687 (x_alloc_lighter_color): Allocate a color that is lighter or
12688 darker than a given color by a specified factor.
427ec082 12689 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
12690 the background color of a glyph string face.
12691 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
12692
12693 * xfns.c (x_make_gc): Don't allocate relief GCs.
12694 * widget.c (create_frame_gcs): Don't allocate relief GCs.
12695 (setup_frame_gcs): Don't change relief GCs.
12696
12697 * xterm.h (struct x_output): New member relief_background giving
12698 the background pixel color for which relief GCs can be used.
12699 Set by x_setup_relief_colors.
12700
12701 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
12702 for mode and menu lines.
12703
12704 * xdisp.c (set_next_iterator_stop_pos): No longer static.
12705
12706 * dispnew.c (direct_output_for_insert): Call
12707 set_next_iterator_stop_pos after having changed it2.endpos.
12708
127091998-02-17 Gerd Moellmann <gerd@gnu.org>
12710
12711 * dispnew.c (update_window): Work on selected_window, only.
12712
12713 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
12714 hpos is >= number of glyphs in the cursor row.
12715
12716 * xdisp.c (try_window_id): Bug fix; update_window_end was not
12717 called.
12718
127191998-02-16 Gerd Moellmann <gerd@gnu.org>
12720
12721 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
12722 and menu lines.
12723
12724 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
12725 enough glyphs to display a mode line or menu line which draws over
12726 flags areas.
12727
12728 * xterm.c (XTset_vertical_scroll_bar): Use
12729 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
12730 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 12731 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
12732 or menu.
12733 (x_set_glyph_string_clipping): Set clipping differently if drawing
12734 a mode line or menu line.
12735
12736 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
12737
12738 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
12739 menu lines.
12740 (x_scroll_bar_create): Don't clear flags areas.
12741 (x_draw_row_bitmaps): Clear visible row height, only.
12742
12743 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
12744
127451998-02-15 Gerd Moellmann <gerd@gnu.org>
12746
12747 * dispnew.c (direct_output_for_insert): When checking for tabs in
12748 the line, set it2.endpos to ZV.
427ec082 12749
26901792
DL
12750 * window.h (struct window): New member cursor_off_p.
12751 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
12752 for X.
12753 * dispnew.c (redraw_cursor_hook): If non-null, function that can
12754 be called to display or erase the cursor.
12755 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
12756 or selected_window.
12757
12758 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
12759
12760 * dispnew.c (update_window_line): Special handling of inverse
12761 lines in #if 0 removed.
12762
12763 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
12764 (x_insert_glyphs): Renamed from XTinsert_glyphs.
12765 (x_clear_frame): Renamed from XTclear_frame.
12766 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
12767 (x_ins_del_lines): Renamed from XTins_del_lines.
12768 (x_change_line_height): Renamed from XTchange_line_height.
12769 (x_delete_glyphs): Renamed from XTdelete_glyphs.
12770 (x_clear_cursor): Renamed from clear_cursor.
12771 (x_update_begin): Renamed from XTupdate_begin.
12772 (x_update_end): Renamed from XTupdate_end.
12773 (x_update_window_begin): Renamed from XTupdate_window_begin.
12774 (x_update_window_end): Renamed from XTupdate_window_end.
12775 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
12776 (x_produce_glyphs): Renamed from XTproduce_glyphs.
12777 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
12778 (x_produce_special_glyphs): Implementation in #if 0 removed.
12779
12780 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
12781 flag in the dump.
12782
12783 * dispnew.c (update_text_area): Handling of glyphs with pixel
12784 width zero removed. Decrement desired stop pos if desired row
12785 fills its line.
12786
12787 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
12788 width zero removed.
12789 (BUILD_GLYPH_STRINGS): Set glyph string flag
12790 extends_to_end_of_line_p based on row's flag fill_line_p and face
12791 background and stipple. Make sure it works for composite characters.
12792
12793 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
12794 fill_line_p. For window-based redisplay, add a space only if
12795 the row is empty so that we know the face to draw.
12796
12797 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
12798 means draw the face of the last glyph in the text area to the
12799 right end of the text area.
12800
12801 * xdisp.c (init_iterator): Show region in window mini-buffer
12802 window refers to.
12803
427ec082 12804 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
12805 region_showing_p removed. Test for region_beg > 0 instead.
12806
12807 * dispnew.c (update_text_area): Clear to end of line if cursor is
12808 beyond the end of the desired line. Necessary because we don't
12809 have a phys_cursor_glyph with which to erase the cursor. We don't
12810 have one because this method of drawing a cursor doesn't work with
12811 lbearing/rbearing.
12812
12813 * xterm.c (XTinsert_glyphs): Block input.
12814
128151998-02-14 Gerd Moellmann <gerd@gnu.org>
12816
12817 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
12818 glyph strings.
12819 (x_draw_glyph_string_background): Fill background with background
12820 pixel for the first glyph of a composite character.
12821
12822 * xdisp.c (try_window): Change return type to int. Value is zero
12823 if fonts were loaded during redisplay.
12824 (redisplay_window): Return if fonts have been loaded during
12825 redisplay.
12826 (append_space): New parameter default_face_p.
12827
128281998-02-13 Gerd Moellmann <gerd@gnu.org>
12829
12830 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
12831 don't let a partially visible line in a current matrix stay
12832 enabled.
12833
128341998-02-09 Gerd Moellmann <gerd@gnu.org>
12835
12836 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
12837 in #if PROMPT_IN_BUFFER.
12838
12839 * xdisp.c (display_line): If row ends in ZV, make the space
12840 that is added to place the cursor on it appear in default face.
12841
427ec082 12842 * xterm.c (expose_area): New function redrawing a single
26901792
DL
12843 glyph row area.
12844 (expose_line): Use it to redraw all areas of a row.
12845
12846 * dispextern.h (move_operation_enum): New enum
12847 move_operation_enum.
12848
12849 * window.c (window_scroll_pixel_based): Remove now unnecessary
12850 code that made sure that it->current_y doesn't become negative.
12851
12852 * xdisp.c (move_iterator_in_display_line_to): New parameter
12853 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
12854 (move_iterator_to): Ditto.
12855
12856 * dispextern.h (struct glyph_matrix): New member window_width.
12857
12858 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
12859 case of changing window height.
12860
12861 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 12862 border to the left.
26901792
DL
12863
12864 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
12865 says this aspect of Emacs is currently redesigned.
12866
12867 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
12868 have to draw a vertical border.
12869
12870 * window.c (window_scroll_pixel_based): When scrolling down by
12871 screen-fulls, make sure it.current_y doesn't get negative because
12872 this would confuse move_iterator_vertically.
12873
12874 * xdisp.c (move_iterator_vertically_backward): Bug fix for
12875 the case continuation lines are involved.
12876 (try_window_id): Don't set the cursor into scroll margins.
12877
128781998-02-08 Gerd Moellmann <gerd@gnu.org>
12879
12880 * xterm.c (x_append_glyph): Don't compute left_overhang and
12881 right_overhang.
12882 (XTproduce_glyphs): left_overhang and right_overhang removed.
12883 Set it->glyph_row->contains_overlapping_glyphs_p.
12884
12885 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
12886 and right_overhang removed.
12887
12888 * dispextern.h (struct glyph_row): New member
12889 contains_overlapping_glyphs_p used to optimize glyph drawing.
12890 (struct display_iterator): left_overhang and right_overhang
12891 removed.
12892 (struct glyph): Ditto.
12893
12894 * xterm.c (x_draw_relief): Removed.
12895 (x_draw_bitmap): Renamed from draw_bitmap.
12896 (x_draw_glyphs): Completely new implementation of draw_glyphs
12897 capable of handling arbitrary lbearing and rbearing values.
12898 Several sub-functions not mentioned here.
12899
129001998-01-30 Gerd Moellmann <gerd@gnu.org>
12901
12902 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 12903 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
12904 other cases.
12905 (draw_glyphs): Move start to the left and end to the right if they
427ec082 12906 overlap with previous or following characters.
26901792 12907 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 12908 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
12909 character under the cursor would be invisible.
12910 (x_draw_bar_cursor): Don't draw over previous character if it
12911 has right_overhang.
12912
12913 * window.c (get_phys_cursor_glyph): Return the glyph under a
12914 window's physical cursor.
427ec082 12915
26901792
DL
12916 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
12917 (x_draw_bar_cursor): Ditto.
12918 (x_erase_phys_cursor): Ditto.
12919 (x_phys_cursor_in_rect_p): Ditto.
12920 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
12921
12922 * window.c (make_window): Remove reference to phys_cursor_glyph.
12923 (replace_window): Ditto.
12924
12925 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 12926 now always a glyph present for placing the cursor on it in
26901792
DL
12927 each glyph row, even at the end of a line.
12928
12929 * xdisp.c (append_space): Function to add a space to an iterators
12930 glyph row.
12931 (display_line): Add spaces at the end of lines that are used to
12932 place the cursor on them.
12933 (compute_line_metrics): If row consists of a space only that was
427ec082 12934 added to place the cursor on it, use that space's height as the
26901792
DL
12935 line height.
12936
129371998-01-29 Gerd Moellmann <gerd@gnu.org>
12938
12939 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
12940 glyphs.
12941
129421998-01-28 Gerd Moellmann <gerd@gnu.org>
12943
12944 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
12945 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
12946
12947 * dispextern.h (struct glyph): Add left_overhang and
427ec082 12948 right_overhang.
26901792
DL
12949 (struct display_iterator): Ditto.
12950
12951 * dispnew.c (direct_output_for_insert): Give up if newly inserted
12952 glyphs have different ascent or descent than original row.
12953
12954 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
12955 row->max_descent only if unknown.
12956 (display_line): Compute row->max_ascent and row->max_descent.
12957 (display_string): Ditto.
12958
12959 * window.h (struct window): New members phys_cursor_ascent and
427ec082 12960 phys_cursor_descent.
26901792
DL
12961
12962 * xterm.c (x_phys_cursor_in_rect_p): Use them.
12963 (x_draw_hollow_cursor): Ditto.
12964 (x_erase_phys_cursor): Ditto.
12965 (x_display_and_set_cursor): Set them.
12966 (x_append_glyph): Don't set glyph members that were removed.
12967
12968 * dispextern.h (struct glyph): Members ascent, descent,
12969 contributes_to_line_height_p removed.
12970
129711998-01-25 Gerd Moellmann <gerd@gnu.org>
12972
12973 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
12974 names for face ids of frame default face and mode line face.
12975
12976 * xdisp.c (compute_face_at_iterator_string_position): If
12977 displaying a mode line use MODE_LINE_FACE_ID instead of
12978 DEFAULT_FACE_ID.
12979
12980 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
12981 (display_string): Ditto, additional parameter lisp_string.
12982 (display_line): Call display_string with Lisp mini-buffer prompt
12983 string.
12984 (display_menu_bar): Call display_string with Lisp string.
12985 (display_mode_element): Ditto.
12986 (next_element_from_string): Make it work for non-overlay Lisp
12987 strings with field width and precision.
12988
12989 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
12990 PROMPT_IN_BUFFER.
12991
12992 * xfaces.c (compute_string_char_face): Fix face computation
12993 for overlay strings.
12994
12995 * xdisp.c (struct overlay_entry): Add member after_string_p.
12996 (load_overlay_strings): Simplify.
12997
12998 * window.c (delete_window): Defer glyph matrix adjustment.
12999 (Fsplit_window): Ditto.
13000 (change_window_height): Ditto.
13001 (Fset_window_configuration): Ditto.
13002 (Fset_window_margins): Ditto.
13003 * frame.c (set_menu_bar_lines): Ditto.
13004 (Fmake_terminal_frame): Ditto.
13005 * dispnew.c (change_frame_size_1): Ditto.
13006
130071998-01-24 Gerd Moellmann <gerd@gnu.org>
13008
13009 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
13010
427ec082 13011 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
13012 position has overlay strings.
13013
13014 * xdisp.c (display_line): Don't set cursor if row ends in middle
13015 of overlay string.
13016 (Fdump_redisplay_state): Print complete row start and end
13017 position.
13018 (redisplay_window): Cursor movement when matrix hasn't changed---
13019 if PT < last_point, maybe move forward if row ends at PT and
13020 in middle of char.
13021
13022 * minibuf.c (read_minibuf): Save the value of
13023 minibuffer_prompt_length in minibuf_save_list.
13024 (read_minibuf_unwind): Restore minibuffer_prompt_length.
13025
13026 * xdisp.c (redisplay_window): Add assertion for cursor movement
13027 case, PT < last_point.
13028 (move_iterator_in_display_line_to): If to_pos specified, move
13029 over before-strings.
13030
13031 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
13032 start.string_index > 0.
13033
13034 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
13035 is set. Retry redisplay if fonts_changed_p is set before update.
13036
13037 * xterm.c (x_load_font): Set fonts_changed_p.
13038
13039 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
13040
13041 * dispnew.c (adjust_glyphs_for_font_change): Removed.
13042
13043 * xdisp.c (try_window): Check fonts_changed_p.
13044 (try_window_reusing_current_matrix): Ditto.
13045 (try_window_id): Ditto.
13046
13047 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
13048 (fonts_changed_p): Flag indicating a font change since the last
13049 glyph matrix adjustment.
13050
13051 * xterm.c (x_per_char_metric): Use font->max_bounds as
13052 char metric of the font's default char if the default char
13053 hasn't per char metric itself.
13054
13055 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
13056 for font change.
13057 (min_char_bounds): Check face->font != NULL.
427ec082 13058 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
13059 case of invalid min_bounds contents.
13060 (min_char_bounds): Call font_min_bounds.
13061
130621998-01-22 Gerd Moellmann <gerd@gnu.org>
13063
13064 * xdisp.c (start_display): Don't set it->prompt_width if
13065 PROMPT_IN_BUFFER.
13066 (move_iterator_in_display_line_to): Ditto.
13067 (display_line): Don't display prompt via display_string if
13068 PROMPT_IN_BUFFER.
13069
13070 * minibuf.c (Fminibuffer_prompt_width): Return value from
13071 current_buffer if PROMPT_IN_BUFFER.
427ec082 13072 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
13073 mini-buffer and make it read-only.
13074 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
13075 minibuffer_prompt_length instead of BEGV.
13076 (Fminibuffer_complete_word): Ditto.
13077 (Fminibuffer_complete_word): Ditto.
13078
13079 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
13080 is less than mini-buffer prompt width, use prompt width as start.
13081
13082 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
13083 position is less than mini-buffer prompt width, use the prompt
13084 width as start.
13085
13086 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
13087 end of prompt if applied to a mini-buffer and BEG reached.
13088
130891998-01-21 Gerd Moellmann <gerd@gnu.org>
13090
13091 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
13092 length to start position.
13093
13094 * buffer.c (Fget_buffer_create): Initialize
13095 minibuffer_prompt_length.
13096 (Fmake_indirect_buffer): Ditto.
13097 (Fkill_buffer): Ditto.
13098
13099 * buffer.h (struct buffer): Add member minibuffer_prompt_length
13100 if PROMPT_IN_BUFFER.
13101
131021998-01-19 Gerd Moellmann <gerd@gnu.org>
13103
13104 * xdisp.c (next_element_from_string): Make it work for arbitrary
13105 Lisp strings.
13106 (set_iterator_to_next): Advance to next overlay string only
13107 if it->string is an overlay string.
13108
13109 * dispextern.h (struct display_iterator):
13110 next_ovstr_face_check_pos renamed next_string_face_check_pos.
13111
427ec082 13112 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
13113 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
13114
13115 * xdisp.c (next_element_from_string): Renamed from
13116 next_element_from_overlay_string.
427ec082 13117 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
13118 compute_face_at_iterator_overlay_string_position.
13119
13120 * dispextern.h (struct display_iterator): Member overlay_string
13121 renamed string.
13122
13123 * xdisp.c (next_element_from_c_string): Renamed from
13124 next_element_from_string.
13125
13126 * dispextern.h (struct glyph_pos): Reversed meaning of
13127 overlay_string_index and string_index.
13128
13129 * xdisp.c (next_element_from_overlay_string): Fix bug that made
13130 this function always return the first character of an overlay
13131 string.
13132
131331998-01-18 Gerd Moellmann <gerd@gnu.org>
13134
13135 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
13136 forced or new pos > next_invisible_check_pos.
13137 (redisplay_window): Don't try same window start if PT < window
13138 start.
13139 (move_iterator_vertically): Bug fix satisfying post-condition
13140 when ZV is reached and no newline in front.
13141 (move_iterator_vertically_backward): New implementation.
13142 (move_iterator_vertically_backward): Bug fixes.
13143
13144 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13145 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13146 (adjust_glyphs_for_font_change): Always adjust.
13147
13148 * dispnew.c (struct dim): Use int.
13149
13150 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13151 (allocate_face): Initialize it.
13152 (load_font): Use XLoadQueryFont again instead of x_load_font.
13153 (unload_font): Use XFreeFont again.
13154 (min_char_bounds): Iterate over fonts of faces. Use frame's
13155 font sizes as default. Remove parameter except_last_font_p.
13156
13157 * dispextern.h (struct face): Add font_name.
13158
131591998-01-17 Gerd Moellmann <gerd@gnu.org>
13160
13161 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13162 to start of line if ending at ZV and no newline in front.
13163 (move_iterator_to): If to_y specified, always first move to x = 0,
13164 so that move stops at line start instead of line end. This is
13165 probably what callers would expect to happen.
13166
13167 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13168 can handle different line heights.
13169 (window_scroll_line_based): Formerly window_scroll.
13170 (window_scroll): Call both.
13171
13172 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13173 (move_iterator_in_display_line_to): Ditto.
13174 (display_line): Ditto.
13175
13176 * minibuf.c (read_minibuf): Conditionally insert prompt into
13177 buffer instead of handling prompts specially. Change other
13178 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13179
13180 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13181 upper window. Optimize calls to xrealloc if same width.
13182
13183 * xdisp.c (redisplay_window): Don't use
13184 try_window_reusing_current_matrix if window scroll functions
13185 exist.
13186
13187 * dispextern.h (struct display_iterator): Member
13188 redisplay_end_trigger_p removed.
13189
13190 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13191 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13192
131931998-01-16 Gerd Moellmann <gerd@gnu.org>
13194
13195 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13196 nil. Optimize truncate-lines t and moving backward.
13197 (move_iterator_to_previous_visible_line_start): Contains the heart
13198 of the previous set_iterator_to_previous_visible_line_end. Don't
13199 reseat the iterator. Used by move_iterator_by_lines.
13200 (set_iterator_to_previous_visible_line_start): Call function
13201 above.
13202 (move_iterator_in_display_line_to): Check TO_POS before doing
13203 anything else. Otherwise to_pos == PT would move to x of PT+1.
13204
13205 * indent.c (Fvertical_motion): Use display_iterator.
13206
13207 * xdisp.c (move_iterator_by_lines): New function moving by screen
13208 lines.
13209 (redisplay_window): Use it.
13210 (move_iterator_to): Correct branch of to_vpos specified.
13211 (move_iterator_vertically_backward): Increment nlines after having
13212 backed up over some lines because the last line was not backed up
13213 over.
13214 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13215 calculate it->vpos and it->current_y relative to this row.
427ec082 13216 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13217 have a big effect and it is complex.
13218 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13219
132201998-01-15 Gerd Moellmann <gerd@gnu.org>
13221
13222 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13223 join nicely. Lines with widths > 2 don't join nicely under X.
13224 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13225 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13226 width 1; remove references to relief_gc_line_width.
13227 * xfns.c (x_make_gc): Ditto.
13228
13229 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13230 if relief changes.
13231 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13232 to get a relief because they can be negative.
13233
13234 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13235 positions are for the middle of lines under X.
13236
13237 * xdisp.c (try_window_id): Always search for the cursor by setting
13238 w->cursor.vpos = -1. Search in unchanged rows at the top and
13239 bottom if cursor not found in displayed lines.
427ec082 13240 (display_mode_line): First extend face, then set right shadow
26901792
DL
13241 flag. Otherwise the wrong glyph gets the right shadow.
13242
13243 * dispnew.c (direct_output_for_insert): Give up if line contains
13244 a tab. The number of spaces inserted for a tab changes if we
13245 insert glyphs in front of it.
13246
13247 * xterm.c (x_list_fonts): Changes undone because the Lisp
13248 implementation for make-face-smaller, make-face-larger, and
13249 make-face-fixed can do without them.
13250
13251 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13252 inserted.
13253
13254 * xdisp.c (try_window_id): First compute beg_unchanged, then
13255 compare with window start pos.
13256
13257 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13258 fixed-width font.
13259 (syms_of_xfns): defsubr for x-face-fixed-p.
13260
13261 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13262 enabled, don't do anything because this row will be newly drawn
13263 anyway and because we can additionally no longer determine the row
13264 height.
13265
13266 * xdisp.c (display_line): Bug fix cursor positioning.
13267
13268 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13269 removed. x-list-fonts.c is now obsolete.
13270 (Qfixed, Qvariable): Moved here from xfaces.c.
13271
132721998-01-14 Gerd Moellmann <gerd@gnu.org>
13273
13274 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13275 FETCH_BYTE for truncated lines.
13276 (display_line): Set cursor differently.
13277 (display_line): Fixed bug setting last_pos_on_this_line wrong
13278 for truncated lines.
13279
13280 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13281 redisplay.
13282
13283 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13284
13285 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13286 assertion that character dimensions are not zero.
13287
13288 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13289 input is blocked.
13290
13291 * xdisp.c (decode_mode_spec): Faster implementation of line number
13292 display.
13293
13294 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13295 bitmaps if bitmaps don't fill the entire area.
13296 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13297
427ec082 13298 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13299 pixel height of flags bitmaps.
13300
13301 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13302 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13303
13304 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13305 in pixels of a flags area of a frame.
13306 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13307 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13308 occupied by a flags area.
13309
133101998-01-13 Gerd Moellmann <gerd@gnu.org>
13311
13312 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13313 window_end_valid.
13314
13315 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13316 GLYPH_DEBUG != 0.
13317
13318 * xdisp.c (display_line): Correct wrong calculation of row->x for
13319 the case of nglyphs == 1.
13320 (hscroll_window_tree): Renamed from hscroll_windows.
13321 (hscroll_windows): New function calling hscroll_window_tree that
13322 clears desired matrices on a frame when hscroll has been changed.
13323 (redisplay_p): Global flag set during redisplay.
13324 (redisplay_internal): Set and clear redisplay_p.
13325
13326 * xfaces.c (min_char_bounds): Add assertion that width and height
13327 are not zero at the end. Initialize *height and *width to -1,
13328 instead of using BITS_PER_SHORT. If font has min_bounds.width
13329 zero, use its max_bounds.width.
13330
13331 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13332 width and height.
13333
133341998-01-12 Gerd Moellmann <gerd@acm.org>
13335
13336 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13337 changed. Don't clear desired matrices.
13338
13339 * xdisp.c (hscroll_windows): Compute pt after setting
13340 current_buffer.
13341 (redisplay_window): Don't do cursor movement based on current
13342 matrix if just_this_one_p is zero.
13343
13344 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13345 specifying that fixed-width, variable-width fonts or both
26901792
DL
13346 should be returned.
13347
13348 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13349 (syms_of_xfaces): Initialize them.
13350
13351 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13352 cached information.
13353
133541998-01-11 Gerd Moellmann <gerd@acm.org>
13355
13356 * xdisp.c (display_mode_line): Extend face to end of line.
13357
13358 * xdisp.c (echo_area_display): Don't call display_string with
13359 echo_area_glyphs_length == 0 which would mean infinite precision.
13360 (redisplay_internal): Adjust window_end_vpos if necessary.
13361
133621998-01-07 Gerd Moellmann <gerd@acm.org>
13363
13364 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13365
133661998-01-05 Gerd Moellmann <gerd@acm.org>
13367
13368 * xdisp.c (get_row_start_continuation_line_width): Removed.
13369 (init_iterator_to_row_start): Set it.current_x from row.
13370 (try_window_id): Set it.continuation_lines_width directly from
13371 row.
13372
13373 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13374 selected_window.
13375 (hscroll_windows): Center cursor in window.
13376 (hscroll_windows): Call move_iterator_in_display_line_to.
13377
133781998-01-04 Gerd Moellmann <gerd@acm.org>
13379
13380 * xdisp.c (hscroll_windows): Check hscroll < 0.
13381 (redisplay_window): Allow quick cursor movement if overlay arrow
13382 but frame uses window-based redisplay.
13383 (display_line): Take special case for nglyphs == 1 out of #if 0.
13384 (display_line): Set row->ends_at_zv_p after the loop displaying
13385 glyphs because ZV can be in truncated text.
13386 (hscroll_windows): Use init_iterator_to_row_start.
13387
13388 * dispnew.c (scrolling_window): Calculation of overlapping
13389 runs fixed.
13390 (row_equal_p): Compare continued_p and continuation_line_p.
13391
133921998-01-02 Gerd Moellmann <gerd@acm.org>
13393
13394 * xterm.c (x_get_mode_line_face_gc): Renamed from
13395 x_get_modeline_face_gc.
13396
13397 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13398 buffer position to look for text properties.
13399 (get_face_from_cursor_pos): Use it.
13400 (compute_face_at_iterator_position): Use it.
13401 (next_element_from_buffer): Use it.
13402
13403 * dispnew.c (scrolling_window): Decrement run's y-position
13404 when extending it backwards.
13405
13406 * xterm.c (do_line_dance): Don't ever copy more than window height.
13407
134081998-01-01 Gerd Moellmann <gerd@acm.org>
13409
13410 * xdisp.c (redisplay_window): Cursor motion in unchanged
13411 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13412 (init_iterator_to_next_row_start): Special handling of lines
13413 ending in middle of char removed.
13414 (hscroll_windows): Hscroll windows only if window_end_valid is not
13415 nil.
13416 (try_window_reusing_current_matrix): Call hscroll_windows.
13417 (init_iterator_to_row_start): Initialize iterator for display
13418 starting at a position given by a glyph_row->start.
13419 (redisplay_window): Don't use vmotion because it gives wrong
13420 results if lines are continued and variable width fonts are used.
13421
427ec082 13422 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13423 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13424 the middle of a character.
427ec082 13425 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13426 the middle of a character.
13427
13428 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13429 it.
13430 (next_element_from_display_vector): Use it->dpvec_index.
13431 (reseat_iterator): Reset it.
13432 (init_iterator): Reset it.
13433 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13434 it->pos.dpvec_index from a glyph_pos structure.
13435 (init_iterator_from_glyph_pos): Call the function above.
13436 (reseat_iterator_to_glyph_pos): Ditto.
13437
13438 * dispnew.c (direct_output_forward_char): Don't use this method at
13439 overlay boundaries or near invisible text.
13440 (direct_output_forward_char): Step through glyph row to find
13441 cursor position.
13442
427ec082 13443 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13444 frame font if line height differs from font height.
13445
13446 * xdisp.c (set_iterator_to_next): Renamed from
13447 move_iterator_forward to avoid confusion with other move_.*
13448 functions.
13449
13450 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13451
134521997-12-31 Gerd Moellmann <gerd@acm.org>
13453
13454 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13455 same naming convention as for other GC functions.
13456 (draw_glyphs): Don't fill background when drawing a cursor and
13457 font height is less than line height.
13458
134591997-12-30 Gerd Moellmann <gerd@acm.org>
13460
13461 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13462 init_iterator_.*.
13463
13464 * xdisp.c (move_iterator_forward): Restore it->len from
13465 it->dpvec_char_len if dpend reached.
13466 (get_next_display_element): Don't consume translated char
13467 prematurely.
13468 (display_line): Don't set this_.* variables if row is continued.
13469 (start_display): Move to start of continuation line if ending
13470 up at end of continued line.
13471
13472 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13473
13474 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13475 checking TO_X and continuation lines.
13476 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13477 of a continued line, don't consider this line as unchanged because
13478 it may no longer be continued.
13479
134801997-12-29 Gerd Moellmann <gerd@acm.org>
13481
13482 * xdisp.c (try_window_id): Catch the case that moving over
13483 continuation lines moves first_unchanged_at_end_row to a row not
13484 displaying text.
13485
13486 * dispextern.h (struct glyph_row): New member
13487 continuation_lines_width. Member continuation_line_p removed.
427ec082 13488 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13489 continuation line.
13490 * xdisp.c (display_line): Set row->continuation_lines_width.
13491 (get_row_start_continuation_line_width): Set continuation lines
13492 width of iterator from continuation lines width of glyph row.
13493 (get_row_start_continuation_line_width): Make it inline.
13494 (set_window_cursor): Make it inline.
13495 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13496 (Fdump_redisplay_state): Ditto.
427ec082 13497
26901792
DL
13498 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13499 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13500
13501 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13502 after determining the continuation lines width for
13503 last_unchanged_at_beg_row.
13504
13505 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13506
13507 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13508 which support faces.
13509 (init_display_iterator): Ditto.
13510 (move_iterator_via_matrix): Skip over truncation glyph at the row
13511 start on terminal frames.
13512 (hscroll_windows): Choose hscroll margin differently for window
13513 system and terminal frames.
13514
135151997-12-28 Gerd Moellmann <gerd@acm.org>
13516
13517 * xdisp.c (hscroll_windows): Change hscroll of windows.
13518 (redisplay_internal): Call it.
13519
427ec082 13520 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13521 doesn't fit completely on the line.
13522 (direct_output_forward_char): Give up for non-ASCII chars.
13523 (direct_output_forward_char): Set redisplay_performed_directly_p.
13524
13525 * dispextern.h (struct display_iterator): Make first_visible_x
13526 and last_visible_x ints; this is for very long truncated lines.
13527
13528 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13529 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13530 positioning problems with the mouse.
13531 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13532 >= it->last_visible_x instead of >.
13533 (display_line): Ditto.
13534
13535 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13536 loaded.
13537 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13538 non-ASCII chars differently. Always produce 1 glyph for composite
13539 chars. If font not found, use CHARSET_WIDTH to calculate width of
13540 non-ASCII chars.
13541 (x_get_char_font_and_encoding): Return null if font could not be
13542 loaded. Reset font to null if fontset could not be loaded.
13543 (draw_glyphs): Fill background if font not found.
13544 (draw_glyphs): Unused parameter just_foreground_p removed. New
13545 parameter composite_glyph.
13546 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13547 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13548 draw_glyphs when calling it recursively for composite chars.
13549
135501997-12-27 Gerd Moellmann <gerd@acm.org>
13551
13552 * xterm.c: Patches from handa.etl.go.jp integrated.
13553 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13554 find a font_info.
13555
13556 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13557 for nglyphs == 1.
13558
13559 * xterm.c (x_draw_relief): Draw relief lines.
13560 (draw_glyphs): Call x_draw_relief.
13561
135621997-12-26 Gerd Moellmann <gerd@acm.org>
13563
13564 * xfns.c (x_make_gc): Create relief GC's.
13565
13566 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13567 (setup_frame_gcs): Initialize them.
13568 (EmacsFrameDestroy): Free them.
13569
427ec082 13570 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13571 last_unchanged_at_beg_row is continued or a continuation line.
13572 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13573 (redisplay_window): Case point has changed, and it has not
26901792
DL
13574 moved off the frame. Don't increment row if PT equals the row
13575 end if the row ends in ZV.
13576
13577 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13578 (expose_line): Call it.
13579 (x_after_update_window_line): Call it.
13580
13581 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13582 reached.
13583
13584 * xterm.c (x_after_update_window_line): Draw continuation line
13585 bitmap.
13586
13587 * dispnew.c (update_window_line): Call
13588 after_update_window_line_hook when row's continuation_line_p
13589 changes.
13590
13591 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13592
13593 * xdisp.c (display_line): Handle continued lines on window system
13594 frames differently since continuation glyphs are not displayed.
13595 (move_iterator_in_display_line_to): Ditto.
13596 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13597 into account.
13598 (move_iterator_vertically_backward): Handle dy == 0 specially.
13599 (redisplay_window): Catch the case of small windows when
13600 recentering where moving back window_height/2 moves us beyond the
13601 top of the display area of the window.
13602
136031997-12-18 Gerd Moellmann <gerd@acm.org>
13604
13605 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13606 dvpos removed.
13607
136081997-12-17 Gerd Moellmann <gerd@acm.org>
13609
13610 * dispnew.c (direct_output_forward_char): Correct new cursor
13611 x-position.
13612
136131997-12-16 Gerd Moellmann <gerd@acm.org>
13614
13615 * xterm.c (x_after_update_window_line): Remove unused parameters.
13616 (XTclear_end_of_line): Clear to display_height instead of
13617 display_height - 1.
13618
13619 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13620 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13621 rows have different y-positions, or different height.
13622
136231997-12-14 Gerd Moellmann <gerd@acm.org>
13624
13625 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13626
13627 * window.c (coordinates_in_window): Call frame_mode_line_height.
13628
13629 * xterm.c (x_draw_3d_border): Removed.
13630 (x_draw_row_borders): Removed.
13631
13632 * dispnew.c (update_window): References to
13633 FRAME_MODE_LINE_BORDER_WIDTH removed.
13634
13635 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13636 (FRAME_MODE_LINE_HEIGHT): Removed.
13637
13638 * xterm.c (draw_3d_borders_p): Removed.
13639 (draw_glyphs): Ditto.
13640 (XTwrite_glyphs): Ditto.
13641 (expose_line): Ditto.
13642 (x_initialize): Ditto.
13643
13644 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13645 frame_mode_line_height.
13646
13647 * term.c (frame_mode_line_height): Get the pixel height of a
13648 frame's mode line.
13649 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13650 versions.
13651
26901792
DL
13652 * xterm.c (x_initialize): Set the hook.
13653 (XTframe_mode_line_height): X version of frame_mode_line_height.
13654
13655 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13656 output buffer.
13657 (display_string): Don't add right truncation mark if line ends in
13658 padding space.
13659 (init_display_iterator): If called with modeline_p non-zero, set
13660 face_id to 1, which is the id of the mode line face.
13661
13662 * keyboard.c (cmd_error_internal): Write to stderr if selected
13663 frame is Vterminal_frame under X. This is the case when a font
13664 cannot be loaded when Emacs starts. Replace test for
13665 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
13666
13667 * xfaces.c (compute_overlay_string_char_face): Compute the
13668 face of a character in an overlay string.
13669 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 13670 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
13671 Use it.
13672
13673 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
13674 set_iterator_to_next_overlay.
13675 (struct overlay_entry): Structure used to sort overlay strings.
13676 (compare_overlay_entries): Compare overlay strings.
13677 (load_iterator_with_overlay_strings): Load a chunk of overlay
13678 strings.
13679 (get_overlay_strings_at_iterator_position): Call it.
13680 (next_element_from_overlay_string): Set it->object to the overlay
13681 string. Prepare for setting it->position to a string position.
13682 (get_overlay_strings_at_iterator_position): Renamed from
13683 get_overlays_at_iterator_position.
13684 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
13685 chunks of overlay strings.
13686 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
13687
13688 * dispextern.h (struct display_iterator): New vector
13689 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
13690 overlays and n_overlays.
13691 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
13692 renamed to string_index.
13693
136941997-12-13 Gerd Moellmann <gerd@acm.org>
13695
13696 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
13697 when allocating a vector.
13698 (release_iterator): Removed.
13699 (restore_iterator): Removed.
13700 (copy_iterator): Removed.
13701
137021997-12-08 Gerd Moellmann <gerd@acm.org>
13703
13704 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
13705 clearing a mini-buffer window that is not active.
13706 (redisplay_window): Do not scroll one line too early when last
13707 window line is completely visible.
13708 (init_display_iterator): Leave some room to display the cursor
13709 after the last glyph on a continued line.
13710
13711 * xterm.h (struct x_output): trunc_area_extra renamed
13712 flags_areas_extra.
13713 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
13714
13715 * dispnew.c (update_window_line): Call
13716 after_update_window_line_hook when current row is not enabled
13717 which is the case after a frame has been cleared.
13718
13719 * xdisp.c (display_mode_line): Reset row flags for truncation
13720 on right side for the mode line.
13721
13722 * xterm.c (bitmap_type): Type of bitmap to display in flags
13723 area of frame.
13724 (x_after_update_window_line): Use the enum.
13725 (draw_bitmap): Ditto.
13726
137271997-12-07 Gerd Moellmann <gerd@acm.org>
13728
13729 * xterm.c (x_clip_to_row): Include width of both flag areas.
13730 (do_line_dance): Ditto.
13731 (expose_window_tree): Ditto.
13732 * dispnew.c (update_window_line): Call
13733 after_update_window_line_hook for right truncation and continuation.
13734 * xdisp.c (init_display_iterator): Don't subtract width of
13735 continuation glyphs for window-based redisplay.
13736 * xterm.c (draw_bitmap): Draw continuation bitmap.
13737 * widget.c (set_frame_size): Double trunc_area_extra.
13738 (EmacsFrameSetCharSize): Ditto.
13739 * xfns.c (x_figure_window_size): Ditto.
13740 * xterm.c (x_set_window_size): Ditto.
13741 (x_after_update_window_line): Draw right truncation mark.
13742
13743 * xterm.c (draw_glyphs): Bug fix buffer overrun.
13744
13745 * window.h: Include blocker around dispextern.h removed.
13746
13747 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 13748
26901792
DL
13749 * dispextern.h (struct display_iterator): Former ovstr made a
13750 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
13751 next_ovstr_invisble_check_pos; check at these positions for
13752 face changes and changes in invisible text property.
13753 (struct glyph_pos): Former ovlen now overlay_string_index.
13754
13755 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
13756 overlay_string.
13757 (set_iterator_to_next_overlay_string): Set overlay_string and
13758 pos.overlay_string_index.
13759 (get_overlays_at_iterator_position): Use overlay_string and
13760 overlay_string_index.
13761 (next_element_from_overlay_string): Use overlay_string and
13762 overlay_string_index.
13763 (move_iterator_forward): Increment overlay_string_index.
13764 (try_window_id): Use overlay_string and overlay_string_index.
13765 (move_iterator_forward): At end of dpvec, maybe use method
13766 next_element_from_overlay_string for the case a character from an
13767 overlay string was translated via a display table.
13768 (reseat_iterator_to_string): Take a Lisp string.
13769 (display_string): Pass a Lisp string to reseat_iterator_to_string.
13770 (compute_face_at_iterator_overlay_string_position): Compute face
13771 based on text properties for an overlay string.
13772 (next_element_from_overlay_string): Check invisible and face text
13773 properties.
bb6677a8 13774
26901792
DL
13775 (set_iterator_to_next_overlay_string): Restore face id before
13776 overlay strings when no more overlay strings are found to return.
13777 Initialize next_ovstr_.*check_pos for each new overlay string
bb6677a8
GM
13778
13779 A line in the following paragraph was garbled for an unknown
13780 reason. It couldn't be fully reconstructed.
13781
13782 (compute_base_face): Made public.
26901792
DL
13783 (merge_face_list): Ditto.
13784 (intern_computed_face): Ditto.
13785
427ec082 13786 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
13787 window if PT > w->last_point. Goto try_to_scroll if bottom Y
13788 of row is > instead of >= last_y.
13789
13790 * buffer.h (overlays_at): Function prototype.
13791
13792 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
13793 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
13794
427ec082 13795 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
13796 memory of a display_iterator.
13797 (copy_iterator): Copy an iterator.
13798 (restore_iterator): Restore an iterator from a backup copy.
13799 (global): Use the functions above.
13800 * window.c (Fpos_visible_in_window_p): Call release_iterator.
13801 * dispnew.c (direct_output_for_insert): Call release_iterator.
13802
13803 * dispextern.h (struct display_iterator): Allocate overlays
13804 vector dynamically.
13805
138061997-12-06 Gerd Moellmann <gerd@acm.org>
13807
13808 * Makefile.in (window.o): Depends on dispextern.h.
13809
13810 * buffer.c (overlays_at): Make it work when extending vectors
13811 and an initial vector of zero size.
13812
13813 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
13814 from set_cursor_to_previous_visible_line_end.
13815 (set_iterator_to_next_visible_line_start): Renamed from
13816 set_cursor_to_next_visible_line_end.
13817 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
13818 (compute_face_at_iterator_position): Renamed from
13819 compute_cursor_face.
13820 (set_iterator_to_next_overlay_string): Renamed from
13821 cursor_to_next_overlay_string.
13822 (get_overlays_at_iterator_position): Renamed from
13823 get_overlays_for_cursor.
13824 (reseat_iterator): Renamed from reseat_cursor.
13825 (setup_iterator_overlays_from_glyph_pos): Renamed from
13826 setup_overlays_from_pos.
13827 (init_string_iterator): Renamed from init_string_cursor.
13828 (get_next_display_element): Renamed from next_display_element.
13829 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 13830 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
13831 dynamically.
13832
13833 * xdisp.c: display_cursor renamed display_iterator.
13834 * dispextern.h: Ditto.
13835 * dispnew.c: Ditto.
13836
138371997-12-01 Gerd Moellmann <gerd@acm.org>
13838
13839 * window.c (mark_window_cursors_off): Function comment added.
13840 (window_topmost_p, window_rightmost_p): Removed because not used.
13841
138421997-11-30 Gerd Moellmann <gerd@acm.org>
13843
13844 * emacs.c (main): Function prototypes removed in profiling code.
13845 Use safe_bcopy as start of text.
13846
13847 * dispnew.c (update_frame_line): update_line -> update_frame_line;
13848 mirrored_make_current -> make_current.
13849
13850 * xdisp.c: (store_frame_title_char): New function to store a
13851 single character for the frame title with re-allocation of
13852 frame_title_buf.
13853 (init_xdisp): Intialize frame_title_.* variables to null.
13854
13855 * dispnew.c (quit_error_check): Removed.
13856
13857 * eval.c (Fsignal): Call to quit_error_check removed.
13858 * keyboard.c (quit_throw_to_read_char): Ditto.
13859
138601997-11-23 Gerd Moellmann <gerd@acm.org>
13861
13862 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
13863 to mean a zero relief.
13864
26901792
DL
138651997-11-19 Gerd Moellmann <gerd@acm.org>
13866
13867 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
13868 unconditionally.
13869 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
13870 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
13871 (check_glyph_memory): Define function body unconditionally.
13872
138731997-11-17 Gerd Moellmann <gerd@acm.org>
13874
13875 * dispnew.c (scrolling_window): Alternative version of this
13876 function removed.
13877
138781997-11-16 Gerd Moellmann <gerd@acm.org>
13879
13880 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
13881 of height CANON_Y_UNIT.
13882 * dispextern.h: Prototype for that function.
427ec082 13883 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
13884 produce empty rows. Use make_empty_enabled_row instead.
13885
13886 * dispnew.c (scrolling_window): New version using diff-like
13887 algorithm activated.
427ec082 13888
26901792
DL
138891997-11-15 Gerd Moellmann <gerd@acm.org>
13890
13891 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
13892 (clear_desired_matrices): Ditto.
13893 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
13894 for menu_bar_window.
13895
13896 * alloc.c (mark_object): Mark menu_bar_window of frames.
13897
13898 * xterm.c (XTupdate_window_end): Don't display cursor if
13899 pseudo_window_p.
13900
13901 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
13902 set mini_p.
13903 (update_window): Don't set cursor if pseudo_window_p.
13904
13905 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
13906
13907 * window.h (struct window): New flag pseudo_window_p set to
13908 1 for windows that aren't really part of the window tree, like
13909 menu_bar_window's of frames.
13910 * window.c (make_window): Initialize it.
13911 (replace_window): Ditto.
13912 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13913
13914 * frame.c (make_frame): Initialize menu_bar_window to nil.
13915
13916 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
13917 FACE_RELIEF
13918
13919 * xfaces.c (copy_face): shadow_thickness -> relief.
13920 (face_eql): Ditto.
13921 (merge_faces): Ditto.
13922 (compute_base_face): Ditto.
13923 (Fset_face_attribute_internal): Ditto.
13924 * dispextern.h (struct face): Ditto.
13925
13926 * dispnew.c (update_frame): Update menu_bar_window of the frame if
13927 it is non-nil.
13928
13929 * xdisp.c (display_menu_bar): Display the menu bar in
13930 f->menu_bar_window if appropriate.
13931 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
13932
13933 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
13934 dummy window and window matrices for f->menu_bar_window.
13935 (free_glyphs): Free the dummy window and its glyph matrices.
13936
13937 * frame.h (struct frame): New member menu_bar_window.
13938
139391997-11-09 Gerd Moellmann <gerd@acm.org>
13940
13941 * dispnew.c (scrolling_window): New version with diff-like
13942 algorithm.
13943
13944 * xdisp.c (try_window_reusing_current_matrix): If new_start >
13945 old_start always start displaying at start of
13946 first_row_to_display. The previous scheme failed if the last row
13947 was fully visible.
13948
13949 * dispnew.c (update_window): Remove cost calculations. Remove
13950 redundant preempt_count calculations.
13951
13952 * xterm.c (x_clip_to_row): Set clipping for non-text rows
13953 differently.
13954
13955 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
13956
427ec082 13957 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
13958 WITH_MARGINAL_AREAS is defined.
13959
427ec082 13960 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
13961 removed.
13962
13963 * dispnew.c (scrolling): Call line_hash_code because hash values
13964 are not set in the frame matrix.
13965
13966 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
13967 (redisplay_window): Check line_ins_del_ok before calling
13968 try_window_id.
13969 (try_window_reusing_current_matrix): Give up for terminal frames
13970 if window is not full width or we cannot insert/delete lines.
13971 (try_window_reusing_current_matrix): Fixed scrolling for terminal
13972 frames.
13973
13974 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
13975 Lisp_Object to mark_object.
13976
13977 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
13978 window rows have the same glyph pointers.
13979 (try_window_id): Call it.
13980
13981 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
13982 a glyph matrix.
13983 (mark_object): Call it.
13984
13985 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
13986 truncations.
13987 (display_line): Ditto.
13988 (display_line): Ditto for DISP_CONTINUATION.
13989 (display_line): Truncation on right: test current_x >
13990 last_visible_x.
13991 (skip_in_display_line_to): Ditto.
13992 (skip_via_matrix): Stop skipping in glyph row at face extending
13993 glyphs or at padding spaces.
13994
13995 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
13996
13997 * xdisp.c (display_line): Use glyph->object == 0 for padding
13998 glyphs.
13999 (redisplay_window): Don't let cursor move over padding
14000 spaces.
14001
14002 * dispextern.h (struct glyph): Fix comment for object.
14003
140041997-11-08 Gerd Moellmann <gerd@acm.org>
14005
14006 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
14007 has a mode line.
14008 * xdisp.c (redisplay_window): Use it.
14009 (display_mode_line): Check that window wants mode line.
14010
140111997-11-03 Gerd Moellmann <gerd@acm.org>
14012
14013 * xdisp.c (display_menu_bar): Enable menu bar rows.
14014
14015 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
14016 (x_erase_phys_cursor): Ditto.
14017 (x_draw_bar_cursor): Ditto.
14018
140191997-11-02 Gerd Moellmann <gerd@acm.org>
14020
14021 * dispnew.c (update_marginal_area): Update a marginal area.
14022 (update_text_area): Update text area.
14023 (update_window_line): Call both.
14024
14025 * xterm.c (XTclear_end_of_line): Translate coordinates area
14026 dependent.
14027
14028 * dispnew.c (updated_area): Row area being updated in
14029 update_window_line.
14030 (update_window_line): Set it.
14031 (update_marginal_area): Clear to end of line if not in text area.
14032
14033 * window.c (Fset_window_margins): Increment
14034 windows_or_buffer_changed. Adjust glyphs.
14035
14036 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
14037 area X coordinates to frame coordinates.
427ec082 14038 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
14039 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
14040 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
14041
14042 * xterm.c (draw_glyphs): Use text area width as display width.
14043
14044 * xdisp.c (init_display_info): Subtract widths of marginal areas
14045 from last_visible_x.
14046
14047 * alloc.c (mark_object): Mark objects in glyphs only if they are
14048 overlays. Mark only if current_matrix != 0. Activate the code.
14049
14050 * window.c (Fset_window_margins): Set margins.
14051 (Fwindow_margins): Return margin area widths.
14052 (syms_of_window): Add defsubr's.
14053
14054 * window.h (struct window): left_margin_width, right_margin_width.
14055
14056 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
14057 and cols.
14058
14059 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
14060 truncation/overlay arrow area.
14061 (struct frame): trunc_area_pixel_width, and _cols.
14062
14063 * window.c (Fsplit_window): Use it.
14064
14065 * window.c (Fsplit_window): Set cursor vpos to -1 after
14066 splitting.
14067 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
14068 split windows.
14069
14070 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 14071 of bounds cursor positions.
26901792
DL
14072
14073 * xdisp.c (redisplay_internal): Check that after cursor motion
14074 within line, PT is on same line.
14075
14076 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
14077 FRAME_TRUNC_WIDTH.
14078
14079 * xterm.h (struct x_output): trunc_area_extra.
14080 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
14081 (PIXEL_TO_CHAR_WIDTH): Subtract it.
14082 * widget.c (set_frame_size): Set it.
14083 (EmacsFrameSetCharSize): Ditto.
14084 * xfns.c (x_figure_window_size): Ditto.
14085 * xterm.c (x_set_window_size): Ditto.
14086
14087 * dispnew.c (check_matrix_invariants): First try to check window
14088 ends (in #if 0).
14089
14090 * xdisp.c (try_window_reusing_current_matrix): Try window
14091 redisplay with different window start.
14092
140931997-11-01 Gerd Moellmann <gerd@acm.org>
14094
14095 * window.c (make_window): Set window_end_pos/vpos.
14096 (Fsplit_window): Zero last_cursor, window_end_valid.
14097 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
14098
14099 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
14100
141011997-10-31 Gerd Moellmann <gerd@acm.org>
14102
14103 * window.c (make_window): Initialize last_cursor.
14104 (replace_window): Ditto.
14105
141061997-10-29 Gerd Moellmann <gerd@acm.org>
14107
14108 * window.h: New member last_cursor.
14109 * dispnew.c (direct_output_for_insert): Set it.
14110 (direct_output_forward_char): Ditto.
14111 * xdisp.c (redisplay_internal): Ditto.
14112
141131997-10-28 Gerd Moellmann <gerd@acm.org>
14114
14115 * xdisp.c (redisplay_internal): Optimization 1 change partially
14116 reverted. Check this again later.
14117 (skip_via_matrix): Remove redundent test for
427ec082 14118 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
14119
141201997-10-27 Gerd Moellmann <gerd@acm.org>
14121
14122 * dispnew.c (update_window_line): Call
14123 after_update_window_line_hook only for interesting constellations.
14124 (free_glyph_matrix): Fix memory leak.
14125
14126 * window.h: Include blocker WINDOW_H_INCLUDED, include
14127 dispextern.h.
14128 (struct window): phys_cursor_glyph as struct glyph. * window.c
14129 (make_window): Initialize it.
427ec082 14130 (replace_window): Ditto.
26901792
DL
14131 * dispnew.c (free_window_matrices): Remove freeing of
14132 phys_cursor_glyph.
14133 (check_matrix_invariants): Renamed from check_current_matrix_...
14134 * xterm.c: All references to phys_cursor_glyph changed.
14135
14136 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
14137
14138 * xfaces.c: Comment update.
14139
14140 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14141 pointer. Remove phys_cursor_ascent, descent, etc.
14142 * dispnew.c (free_window_matrices): Free it.
14143 * window.c (make_window): Allocate it.
14144 (replace_window): Ditto.
14145 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14146 (x_display_and_set_cursor): Fill it.
14147 (x_phys_cursor_in_rect_p): Use it.
14148 (x_draw_hollow_cursor): Ditto.
14149 (x_draw_bar_cursor): Ditto.
14150 (x_erase_phys_cursor): Ditto.
14151
14152 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14153
14154 * xterm.c (XTget_display_info): Handle 3D facess.
14155 (draw_glyphs): Ditto.
14156
14157 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14158
14159 * xfaces.c (Fset_face_attribute_internal): New face attribute
14160 shadow-thickness.
14161 (copy_face): Handle shadow_thickness.
14162 (face_eql): Ditto.
14163 (merge_faces): Ditto.
14164 (compute_base_face): Ditto.
14165
14166 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14167 (struct display_info): Ditto.
14168 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14169 * xdisp.c (compute_cursor_face): Set it.
14170 (advance_display_cursor): Clear it.
14171
14172 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14173 (init_string_cursor): Init face_id to zero.
14174
14175 * dispextern.h (struct face): New member shadow_thickness.
14176
427ec082 14177 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
14178 search to 100.
14179
14180 * dispnew.c (update_window_line): Try to resynch with current line
14181 to prevent mode line flickering.
14182
141831997-10-26 Gerd Moellmann <gerd@acm.org>
14184
427ec082 14185 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
14186 on cursor_in_echo_area >= 0.
14187
14188 * xdisp.c (echo_area_display): Clear desired matrix before
14189 displaying into it.
14190 (display_menu_bar): Clear glyph row instead of hoping it is not
14191 enabled. This is safer.
14192
14193 * dispnew.c (check_current_matrix_invariants): Check only
14194 visible rows.
14195
14196 * xdisp.c (try_window_id): Handle window end setting in case of
14197 display to end of window, but only non-text lines displayed.
14198
14199 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14200 (check_current_matrix_invariants): Check used counts.
14201
14202 * Revisiob v114.
14203
14204 * dispnew.c (scrolling): Use hash codes from rows.
14205
14206 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14207
14208 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14209
142101997-10-25 Gerd Moellmann <gerd@acm.org>
14211
14212 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14213 * dispnew.c (update_window): Use it.
14214 (clear_glyph_matrix): Clear it.
14215 * xdisp.c (try_window_id): Set it.
14216
14217 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14218
14219 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14220
14221 * dispextern.h: More comments etc.
14222
142231997-10-24 Gerd Moellmann <gerd@acm.org>
14224
14225 * dispnew.c (set_window_cursor_after_update): Set cursor
14226 for cursor_in_echo_area == 0 to (0, 0).
14227
14228 * dispextern.h (struct glyph_row): New flags continuation_line_p
14229 and displays_text_p.
14230 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14231 * xdisp.c (display_line): Set them.
14232 (try_window_id): Move to start of continuation line to find out
14233 continuation_line_width.
14234 (first_unchanged_current_row): Don't retract row if continued,
14235 truncated etc.
14236
14237 * xterm.c: Map X coordinates.
14238
142391997-10-23 Gerd Moellmann <gerd@acm.org>
14240
14241 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14242 left text.
14243
14244 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14245
14246 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14247
f28eba7b 14248 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14249
14250 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14251
14252 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14253 Set this to functions to be called before/after window updates.
14254 (direct_output_for_insert): Call them.
14255 (update_window): Ditto.
14256 (update_frame): Call update_begin/ update_end for windows.
14257
14258 * xterm.c (XTupdate_window_begin): Called before window updates.
14259 (XTupdate_end): Called after window updates.
14260 (x_initialize): Set hooks to above.
14261
14262 * xdisp.c (init_display_info): Initialize c and len of
14263 display_info.
14264
14265 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14266 fonts more than once.
14267
142681997-10-22 Gerd Moellmann <gerd@acm.org>
14269
14270 * xdisp.c (display_line): Handle most common case of current_x <
14271 last_visible_x separately.
14272
14273 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14274
14275 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14276 so that face extending space doesn't compare equal to normal space
14277 with same face.
14278
14279 * xdisp.c (display_line): Make sure we have a position for
14280 a line end in an otherwise blank line if face is extended.
14281
14282 * dispnew.c (direct_output_for_insert): Increment row end position.
14283
427ec082 14284 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14285 window_end_pos.
14286
14287 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14288
14289 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14290
14291 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14292 start and end positions in rows.
14293 (increment_glyph_row_buffer_positions): Stop adjusting at
14294 glyphs with positions <= 0.
14295
14296 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14297 position including position in overlay.
26901792
DL
14298 (struct glyph_row): Use it for start and end positions.
14299 (struct display_cursor): Use it.
14300 * xdisp.c: Use it.
14301 (display_line): Set row start and end positions.
14302
14303 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14304 assignment.
14305
143061997-10-21 Gerd Moellmann <gerd@acm.org>
14307
14308 * dispnew.c (update_window): Add scrolling_window again. It's
14309 necessary for scroll_step != 0.
14310
14311 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14312 scrolling.
14313
14314 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14315
14316 * xterm.c (XTupdate_end): Flush only for messages.
14317
14318 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14319 first_unchanged_row.
14320
14321 * xterm.c (XTupdate_end): Flush if miniwindow.
14322
14323 * dispnew.c (matrix_row_last_pos): New function.
14324 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14325 Large comment moved to xdisp.c.
26901792
DL
14326
14327 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14328 (skip_via_matrix): Check window_end_valid instead of
14329 display_completed.
14330
14331 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14332 (update_window): scrolling_window commented out. It has negative
14333 effect most of the time.
14334
14335 * xdisp.c (try_window_id): Correct parameters to
14336 scroll_glyph_matrix_range.
14337
427ec082 14338 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14339
14340 * window.h: Comments for window_end_pos/vpos.
14341
f28eba7b 14342 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14343 of the window in which we are skipping.
14344
14345 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14346
14347 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14348 reached.
14349
143501997-10-20 Gerd Moellmann <gerd@acm.org>
14351
14352 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14353 a face extending glyph.
14354
427ec082 14355 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14356 (set_cursor_from_row): Set cursor position from a glyph row.
14357
14358 * dispnew.c (update_window_line): Write entire line if hash
14359 codes of lines differ.
14360
14361 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14362 if glyph row has an infinite width glyph at its end.
14363
14364 * xdisp.c (last_unchanged_current_row): Respect partially visible
14365 lines when looking for the last row displaying text.
14366 (try_window_id): Handle partially visible lines better.
14367
143681997-10-19 Gerd Moellmann <gerd@acm.org>
14369
14370 * dispnew.c (update_window): Remove unused variable.
14371 (update_window_line): Simplified.
14372
14373 * xterm.c (x_get_char_font_and_encoding): Handle most common
14374 case at the beginning.
14375
14376 * xdisp.c (advance_display_cursor): Dispatch on method and
14377 order if statements by expected call frequency. Fixed unclosed
14378 comment.
14379
14380 * xdisp.c (try_window_id): New implementation.
14381
14382 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14383 rows displaying a line end, only.
14384
143851997-10-18 Gerd Moellmann <gerd@acm.org>
14386
14387 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14388
143891997-10-14 Gerd Moellmann <gerd@acm.org>
14390
14391 * xdisp.c (display_line): Mark empty lines not corresponding to
14392 text with position -1.
14393
14394 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14395 not within window matrix bounds.
14396
14397 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14398 (struct display_info): NGLYPHS_TO_IGNORE removed.
14399 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14400 * term.c: Ditto.
14401 * xterm.c: Ditto.
14402
14403 * xdisp.c (init_display_cursor): Set it.
14404 (display_line): Use it to set W->REGION_SHOWING.
14405
14406 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14407
14408 * region-cache.h: functino prototypes with PROTO.
14409
14410 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14411
14412 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14413 a position.
14414
427ec082 14415 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14416 rectangle based on minimum character bounds.
14417
f28eba7b 14418 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14419 glyph position calculations.
14420 (make_lispy_movement): Use buffer_posn_from_coords and window
14421 relative coordinates.
14422
14423 * xterm.c (construct_mouse_click): Remove #if 0 case.
14424
14425 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14426 given row.
14427
427ec082
SS
14428 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14429 date.
26901792
DL
14430 (skip_to): Use it.
14431 (redisplay_window): Remove code skipping using current matrix.
14432
144331997-10-13 Gerd Moellmann <gerd@acm.org>
14434
14435 * xdisp.c (redisplay_window): Use available current matrix to
14436 skip faster when only point is moved withing the window.
14437
427ec082 14438 * intervals.c: Include stdio.h.
26901792
DL
14439 (find_interval): Trace to stderr to catch some nasty error
14440 that did not yet occur again with tracing.
14441 (set_point): Ditto.
14442
14443 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14444 cursor positioning on partially visible lines.
14445 (set_window_cursor_after_update): Ditto.
14446
f28eba7b 14447 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14448
14449 * window.h (struct window): start_y removed.
14450
14451 * window.c (make_window): start_y removed.
14452 (replace_window): Ditto.
14453
427ec082 14454 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14455 descent values of the last line processed by skip_to.
14456 (redisplay_window): Use them.
14457 (skip_to): Set them.
14458
14459 * dispextern.h (struct display_cursor): New member METHOD.
14460
14461 * xdisp.c: Use function member METHOD.
14462
14463 * xdisp.c (set_next_stop_pos): Determine next position at which to
14464 check for face properties, invisible text properties, and overlays.
14465 (compute_cursor_face): Use it.
14466 (get_overlays_for_cursor): Ditto.
14467 (reseat_cursor): Ditto.
14468 (next_display_element): Ditto.
14469
14470Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14471
14472 * termhooks.h: Some hooks with prototypes.
14473
14474 * term.c: Some hooks with function prototypes.
427ec082 14475
26901792
DL
14476 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14477 computing face if possible.
14478
14479 * xdisp.c (next_display_element): Use face from glyph from display
14480 table only if != 0.
14481
14482 * emacs.c: FreeBSD headers for profiling removed.
14483
427ec082
SS
14484 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14485 display cursor, use DEC_POS instread.
26901792
DL
14486
14487 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14488 all fonts are in the font table.
26901792
DL
14489 (unload_font): Don't XFreeFont.
14490
14491 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14492 row height.
14493
14494 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14495 (x_erase_phys_cursor): Clear only visible part of row.
14496 (x_draw_bar_cursor): Set clipping.
14497 (x_draw_hollow_cursor): Ditto.
14498 (x_display_and_set_cursor): Remove clipping.
14499 (expose_window_tree): Take trunc border into account.
14500 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14501 (expose_window): Use it.
14502
14503 * xdisp.c (display_string): Catch case that we are called with
d7d0dac0 14504 current_x already beyond max_x.
26901792
DL
14505 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14506 (init_display_info): Subtract vertical border glyph from
d7d0dac0 14507 last_visible_x.
26901792
DL
14508
14509 * scroll.c (scrolling_window_1): Removed.
14510
14511 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14512 based on redisplay method used.
14513 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14514 based redisplay.
14515 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14516 window based redisplay.
14517
14518 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14519 on data structures.
14520
14521 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14522 Handle own storage for purely window based redisplay.
14523 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14524 allocate_matrices.
26901792
DL
14525 (allocate_matrices_for_window_redisplay): Ditto.
14526
14527 * dispextern.h (struct glyph_matrix): window_top_y,
14528 window_height.
14529
14530 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14531 and optimize some common cases of window changes.
14532
14533 * emacs.c (main): Remove own profiling code because 0.95 now
14534 has it in.
14535
14536Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14537
d7d0dac0 14538 * xterm.c (XTupdate_end): Draw horizontal border at right position.
26901792
DL
14539 (expose_window): Draw vertical border.
14540 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14541 don't do anything.
14542
14543 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14544 for non full width windows only if not window redisplay.
14545
14546 * dispnew.c (update_window_tree): Or paused_p return of called
14547 functions.
14548
14549 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14550 of window.
14551
14552 * window.c (Fset_window_configuration): adjust_glyphs being
14553 called twice.
14554 (Fset_window_configuration): Set frame garbaged if not all
14555 leaf windows reused.
14556
145571997-08-21 Gerd Moellmann <gerd@acm.org>
14558
14559 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14560 that rows should really be cleared. Used for current matrices.
14561
d7d0dac0
SM
14562 * dispnew.c (scrolling_window): Bug fix.
14563 (line_dance_hook): Formerly line_dance_fn, take only one parameter.
26901792
DL
14564
14565 * dispextern.h (struct run): Remove current_vpos.
14566
14567 * xterm.c (do_line_dance): Only one parameter.
14568
f28eba7b 14569 * xdisp.c (display_line): Set continued_p.
26901792
DL
14570
14571 * dispextern.h (struct glyph_row): New flag continued_p.
14572 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14573 (struct glyph_row):
26901792
DL
14574
14575Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14576
14577 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14578 when calling skip_to for continued lines.
14579
14580 * dispnew.c (change_frame_size_1): Set frame garbaged.
14581
14582 * xterm.c (expose_window): Check enabled_p of rows.
14583
14584 * xdisp.c (redisplay_internal): Compare line heights before and
14585 now for redisplay optimization 2 (hit).
14586 (display_line): Set this_line_pixel_height.
14587
14588 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14589 value.
14590 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14591 (do_line_dance): Simplified and pixel corrected.
14592
14593 * dispnew.c (scrolling_window): Simplified.
14594
14595 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14596
14597 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14598 to mode line row->x.
14599
14600Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14601
14602 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14603 override font of face.
14604 (draw_glyphs): Correct return value.
14605 (XTclear_end_of_line): Compare differently with output cursor
14606 position.
14607 (x_draw_hollow_cursor): 2 parameters, window and row.
14608
14609 * dispnew.c (update_window_line): If rows have different height
14610 or y, write entire line.
14611
f28eba7b 14612 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14613 of info struct.
14614
427ec082 14615 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14616 frame_update_line_height.
14617 (merge_faces): Don't use default font if new font has different
14618 size.
14619
14620Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14621
14622 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
d7d0dac0 14623 unknown. Some fonts have min_width zero.
26901792 14624 (draw_glyphs): Don't draw underlines to the end of the display
d7d0dac0 14625 line if face is merely extended to that point.
26901792 14626 (draw_glyphs): Don't assume background is filled if
d7d0dac0 14627 just_foreground_p but extending to end of line.
26901792
DL
14628
14629 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14630 for partially visible last lines.
14631 (x_clip_to_row): Ditto.
14632 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14633 display_height since line_height is really a line distance.
14634 (x_display_and_set_cursor): If cursor on padding glyph, use
14635 min_bounds pixel width.
14636
14637Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14638
14639 * xterm.c (x_clip_to_row): Height value was 1 too large.
14640 (XTclear_end_of_line): Clip to display area.
14641
14642 * xfns.c (x_figure_window_sizes): Add trunc border width
14643 to frame pixel width.
14644
14645 * xdisp.c (next_display_element): Don't display overlay strings
14646 within invisible text.
427ec082 14647 (skip_vertically_backward): Skip display lines.
26901792
DL
14648
14649Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14650
14651 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14652
14653 * xdisp.c (next_display_element): Next invisible
14654 text check position computed differently.
14655
14656 * dispextern.h (struct display_cursor): last_invisible_text_pos
14657 and display_ellipsis_for_invisible_p removed.
14658
14659 * xdisp.c (next_display_element): Set last_invisible_text_pos
14660 to the last position at which invisible text was found. Don't
14661 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14662 dpvec for `...' due to invisible text directly.
26901792
DL
14663 (redisplay_internal): Don't assert that cursor is at PT after
14664 skip_to. It may be in invisible text.
14665
427ec082 14666 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
14667 x_y_to_hpos_vpos.
14668
427ec082 14669 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
14670 next_overlay_pos is reached. Use limit cursor.pos + 100 when
14671 checking for invisible text.
14672
14673 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
14674
14675 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
14676
d7d0dac0 14677 * xfns.c (x_contour_region): Use pixel coordinates from window
26901792
DL
14678 cursor instead of WINDOW_TO_FRAME_H/VPOS.
14679
14680 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
14681 Removed.
14682
14683 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
14684
14685 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
14686 pixel coordinates.
14687 (note_mouse_highlight): Use it.
14688
14689 * xdisp.c (echo_area_display): Ignore calls for terminal frames
14690 under a window system.
14691
427ec082 14692 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 14693 necessary.
427ec082 14694 (update_window_line): Add width of face padding glyph to
26901792
DL
14695 displayed widths of rows.
14696
14697 * xterm.c (x_display_and_set_cursor): Set clipping after
14698 erasing cursor.
427ec082
SS
14699
14700 * window.c (Fset_window_configuration): Free only those
26901792
DL
14701 window matrices not reused.
14702 (get_leaf_windows): Build vector of leaf windows.
14703 Corrupted archive restored from v77.
14704
f28eba7b 14705 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
14706 like display_line does.
14707
14708 * xdisp.c (display_mode_line): Don't hscroll mode line.
14709
14710 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
14711 windows.
14712 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
14713 garbage between mode lines when splitting windows horiz.
14714
14715 * dispnew.c (direct_output_for_insert): Bug fix.
14716
14717 * dispextern.h (struct display_cursor): New member string_length.
14718
14719 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 14720 (init_string_cursor): Take precision and field_width
26901792
DL
14721 (display_string): Use string cursor, skip over invisible text.
14722
14723Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
14724
14725 * xterm.c (x_clip_to_row): Clip to partially visible lines.
14726 (x_display_and_set_cursor): Call it.
14727 (draw_glyphs): Call it
14728 (draw_bitmap): Call it.
14729
427ec082 14730 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
14731 (allocate_leaf_matrix): Return flags.
14732 (row_equal_p): Compare enabled_p.
14733
14734 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
14735 for type == -1.
14736
14737 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 14738 (draw_glyphs): Clip height one pixel taller.
26901792 14739
427ec082 14740 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
14741 mini window.
14742
f28eba7b 14743 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 14744
427ec082
SS
14745 * xdisp.c (echo_area_display): Call update_single_window if
14746 possible.
26901792
DL
14747
14748 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 14749 (scrolling_window): Work on enabled desired lines only.
26901792
DL
14750 (update_single_window): Update a single window like update_frame
14751 does for all windows.
427ec082 14752 (update_window, update_window_tree): Additional argument
26901792
DL
14753 no_scrolling_p.
14754 (update_frame): Pass no_scrolling_p to update_window_tree.
14755 (update_window): Don't call scrolling_window if no_scrolling_p.
14756
14757 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
14758 Erase under hollow cursor.
14759 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
14760 not enabled. Draw bar cursor 1 pixel smaller.
14761
f28eba7b 14762 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
14763 since update will follow soon.
14764
14765 * xdisp.c (echo_area_display): Unitialized variable.
14766
f28eba7b 14767 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
14768 overlay arrow bitmap.
14769
f28eba7b 14770 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 14771 up to the final \n as part of the line for cursor positioning.
26901792 14772
f28eba7b
SM
14773 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
14774 (x_after_update_window_line): Clear trunc marks.
26901792
DL
14775
14776 * xterm.h (FRAME_X_TRUNC_WIDTH).
14777
f28eba7b 14778 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
14779 of a window reserved for truncation mark.
14780
427ec082 14781 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
14782
14783 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 14784 hook.
26901792
DL
14785
14786 * xdisp.c (display_line): Set overlay_arrow_p in row.
14787
14788 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
14789
14790 * xterm.c (x_after_update_window_line): Draw truncation marks.
14791
14792 * xdisp.c (display_line): Insert truncation for lines with
14793 current_x > 0.
14794
14795 * xterm.c (x_draw_row_borders): Convert y to frame coords.
14796 Correct y by 1.
14797 (x_display_cursor): Use default font width if width not
427ec082 14798 known.
26901792 14799
f28eba7b 14800 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
14801
14802 * dispnew.c (set_window_cursor_after_update): Don't assume
14803 all rows are enabled.
14804
14805 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
14806 of cursor.pos.
14807 (skip_in_display_line_to): Check cursor.position after call to
14808 next_display_element.
14809
427ec082 14810 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
14811 buffer position.
14812
14813 * xdisp.c (display_line): Set row->y here.
14814 (skip_in_display_line_to): Test for to_pos after all glyphs
14815 have been added to hpos so that hpos is at the end of all
14816 glyphs for to_pos.
14817 (start_display): Remove assertion.
14818
d7d0dac0 14819 * dispnew.c (direct_output_forward_char): Bug fix, = instead of ==.
26901792
DL
14820 (update_window): Don't set row->y here.
14821
14822 * xdisp.c (next_display_element): Don't translate control chars
14823 from display table entries.
14824
427ec082 14825 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
14826 update end to prevent cursor flickering. Revert changes to
14827 setting cursor.endpos.
14828
14829Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
14830
14831 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
14832 to PT because this prevents multi-byte characters from being
14833 recognized.
14834
427ec082
SS
14835 * xdisp.c (skip_to, display_line): Advance cursor at end of
14836 truncated line.
26901792
DL
14837
14838 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
14839 replaced by XRectangle.
14840
d7d0dac0 14841 * dispnew.c (scrolling_window): New method.
26901792
DL
14842
14843 * xterm.c (do_line_dance): New implementation, new method.
427ec082 14844
26901792
DL
14845 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
14846 visible part of line.
14847
14848 * dispnew.c (update_window_line): Fill inverse video lines
14849 with infinite width space.
14850 (update_window): Handle completely empty matrices.
14851 (set_window_cursor_after_update): Bug fix.
14852
427ec082 14853 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
14854
14855 * dispnew.c (update_window_line): Don't ignore spaces, don't
14856 fill with spaces.
14857
14858 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
14859 the first glyph having width 0.
14860
14861 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 14862 a glyph that extends to the end of the line.
26901792
DL
14863
14864 * xdisp.c (display_line): Insert one padding glyph
14865
14866 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
14867 amount from info.current_x.
14868 (display_line): Ditto.
14869
14870 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
14871 (change_frame_size_1): Correct cursor.x if frame gets too small.
14872 (update_window_line): Start at row->x.
14873
14874 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
14875 in xdisp.c).
14876
14877 * xterm.c (set_output_cursor): Use window relative X/Y.
14878 (global): Use window relative output cursor x/y.
14879 (draw_glyphs): Remove y param. Pass window relative x/y.
14880
14881 * dispnew.c (update_window): Start rows at start_y.
14882 (update_window): Don't try scrolling because it wouldn't work
14883 with variable height lines, anyway.
14884
14885 * dispextern.h (struct glyph_row): Remove shift_left_by,
14886 add x.
14887
14888 * window.h: (struct window): New member start_y.
14889
14890 * window.c (replace_window): Initialize start_y.
14891 (make_window): Ditto.
14892
14893Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
14894
14895 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 14896 the mode line.
26901792 14897
427ec082
SS
14898 * dispnew.c (update_window): Take mode line border into
14899 account.
26901792
DL
14900
14901 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 14902 of border around mode line.
26901792
DL
14903
14904 * xterm.c (x_draw_row_borders): Bug fix.
14905 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
14906 drawing functions.
14907
14908 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 14909 around modeline instead of inverting it.
26901792 14910
427ec082 14911 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
14912
14913 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
14914 window relative pixel coordinates as arguments.
14915
14916 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
14917 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
14918 COORDS mit new arguments.
14919
14920Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
14921
14922 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 14923 DISPLAY_LINE.
26901792
DL
14924
14925 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
14926 pixel coords.
14927 (make_lispy_movement): Same.
14928
14929 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
14930 with new parameter meaning.
14931
14932 * window.c (Fcoordinates_in_window_p): Convert Lisp params
14933 from canon units to pixels.
14934 (coordinates_in_window): Pixel based.
14935 (Fcoordinates_in_window_p): Convert result pixel values back
14936 to canonical units.
14937
14938 * window.h: phys_cursor_ascent + descent instead of height.
14939
14940 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
d7d0dac0 14941 chars with charset width 1.
26901792
DL
14942
14943 * dispnew.c (direct_output_for_insert): Set updated_row.
14944
14945Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
14946
14947 * dispextern.h (struct glyph): Padding flag removed.
14948
14949Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
14950
14951 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
14952
14953 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
14954
14955 * dispnew.c (update_window_line): Use pixels.
14956
14957 * xdisp.c (compute_line_metrics): Correct pixel_width by
14958 shift_left_by.
14959
14960 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 14961 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
14962 glyph_row -> right_to_left_p. Change references to it.
14963
14964Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
14965
14966 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
14967
14968 * xterm.c (XTinsert_glyphs): Implement it.
14969
14970 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
14971 of a call from DIRECT_OUTPUT_FOR_INSERT.
14972
14973 * window.h (struct cursor_pos): Keeps both matrix positions
14974 and pixel positions.
14975 (struct window): Use it.
14976
14977 * dispnew.c (direct_output_for_insert): New version.
14978
14979 * xdisp.c (redisplay_internal): Don't do anything if it has
14980 already be done directly.
14981
14982 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
14983 for any character.
14984
14985Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
14986
14987 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
14988
14989Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
14990
14991 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
14992 (struct glyph): ASCENT, DESCENT.
14993 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
14994 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
14995
14996 * xterm.c (XTget_display_info): Correct tab computation.
14997
14998 * term.c (get_display_info): Correct tab computation.
14999
15000 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
15001 Renamed from CHAR_CURSOR.
15002
15003Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
15004
15005 * xdisp.c (display_text_line): Mostly pixel oriented.
15006
15007 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
15008
15009 * term.c (append_intermediate_glyph): Generate padding glyphs.
15010
15011 * xdisp.c (display_text_line): More into final direction.
15012
15013 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
15014 (XTget_char_info): Use tabs as multiples of spaces.
15015
15016 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
15017 Use tabs as multiples of spaces.
15018
15019 * dispextern.h (struct char_info ): WHAT field.
15020
15021 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
d7d0dac0 15022 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
26901792
DL
15023
15024Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
15025
15026 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
15027 value.
15028 (init_char_info): Initialize with glyph row.
15029
15030 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
15031
15032 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
15033
15034 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
15035 glyphs.
15036
15037 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
15038 moved to xdisp.c.
15039
15040 * xdisp.c (display_text_line): Use CHAR_CURSOR.
15041
15042 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
15043 generation.
15044 (XTget_char_info): Ditto.
15045
15046 * term.c (get_char_info): Intermediate glyph generation.
15047 (append_intermediate_glyph): Ditto.
15048
15049Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
15050
427ec082 15051 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
15052 CHAR_CURSOR.
15053 (init_char_cursor): Initialize a CHAR_CURSOR.
15054 (get_char_and_advance): Get next character to display.
15055
15056 * dispextern.h (struct char_cursor): Cursor for iterating over
15057 display text of CURRENT_BUFFER.
15058
15059Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
15060
15061 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
15062
15063 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
15064 New member MAX_PIXEL_HEIGHT.
15065
15066 * xterm.c (x_per_char_metric): Get per character metrics.
15067 (XTget_char_info): More cases covered.
15068
15069 * term.c (get_char_and_info): Get next character and character
15070 display information.
15071 (get_char_info): Get character display information.
15072
15073 * dispextern.h: Character display information.
15074
427ec082 15075 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
15076 encode character.
15077 (XTget_char_info): Get display information about a character.
15078
15079Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
15080
15081 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
15082 zero if window is mini-window.
15083
15084 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
15085 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
15086
427ec082 15087 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
15088 (clear_glyph_row): Clear pixel height.
15089 (update_window): Use PIXEL_HEIGHT.
15090
15091 * xdisp.c (display_string): Set row pixel height temporarily.
15092 (display_text_line): Ditto.
15093
427ec082 15094 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
15095 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
15096
427ec082 15097 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
15098 line in default font.
15099 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
15100 in default font.
15101 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
15102
15103 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
15104 in pixels.
15105
15106 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
15107
15108 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
15109 (WINDOW_DISPLAY_PIXEL_HEIGHT):
15110 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
15111 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
15112 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
15113 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
15114 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
15115 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
15116 pixel values related to windows.
15117
15118Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
15119
15120 * xterm.c (XTflash): Flash last line of frame.
15121
15122 * dispextern.h (cursor_in_echo_area): Extern declaration.
15123
15124 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
d7d0dac0 15125 freezes stem from 16-bit functions.
26901792
DL
15126
15127 * xterm.c (x_display_and_set_cursor): Don't display hollow
15128 cursor in mini windows.
15129
15130 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
15131 (make_window): Ditto.
15132
15133 * xterm.c (x_erase_phys_cursor): Erase cursor image.
15134 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15135 and X_DISPLAY_BAR_CURSOR.
15136 (x_display_cursor): Use it.
15137 (x_update_window_cursor): Use it.
15138
15139 * xdisp.c (display_text_line): Set cursor for window even if not
d7d0dac0 15140 selected.
26901792
DL
15141
15142 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15143 of X and Y to denote matrix positions.
15144 (x_display_cursor): Ditto.
15145
15146 * dispnew.c (scrolling_window): Scrolling for windows.
15147
15148Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15149
15150 * dispnew.c (build_frame_matrix): Work on windows with update
15151 flag set.
15152 (build_frame_matrix_from_window_tree): Ditto.
15153 (build_frame_matrix_from_leaf_window): Ditto.
15154
15155 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15156 building frame matrix.
427ec082 15157 (redisplay_internal): Set window update flags instead of
26901792
DL
15158 building frame matrix.
15159
15160 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15161 building frame matrix.
15162
15163 * window.c (make_window): Initialize new members.
15164 (replace_window): Ditto.
15165
15166 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15167 I don't believe this is really necessary.
15168
15169 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 15170 border glyph once.
26901792
DL
15171
15172Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15173
427ec082 15174 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
15175 window tree off.
15176
427ec082 15177 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
15178 window matrix.
15179 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15180 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15181 (x_update_cursor): Work on windows.
15182 (x_display_bar_cursor): Ditto.
15183 (x_draw_single_glyph): Ditto.
15184
15185 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15186
15187 * xterm.c (XTcursor_to): Void return type. Test for
d7d0dac0 15188 UPDATED_WINDOW. Call x_display_cursor with window.
26901792 15189 (x_display_cursor): Void return type. Window instead of frame
d7d0dac0 15190 parameter.
26901792 15191
d7d0dac0 15192 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions below.
26901792
DL
15193
15194 * window.c (window_rightmost_p, window_topmost_p): Based on
15195 window tree.
15196
15197 * dispnew.c (adjust_frame_message_buffer): Allocate with
d7d0dac0 15198 FRAME_MESSAGE_BUF_SIZE.
26901792
DL
15199
15200 * window.h: PHYS_CURSOR_.* added.
15201
15202 * frame.h (struct frame): Cursor information removed.
15203
15204 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15205 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15206
15207 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15208
15209 * window.c (window_internal_width): Scroll bars no longer
15210 part of window.
15211
d7d0dac0 15212 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792 15213
d7d0dac0 15214 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
26901792
DL
15215
15216 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15217 (redisplay_internal): Ditto.
15218 (redisplay_window): Ditto.
15219 (redisplay_window): Ditto.
15220 (display_text_line): Ditto.
15221 (display_mode_line): Ditto.
15222
15223 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15224
15225 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15226 (direct_output_for_insert): Ditto.
15227 (direct_output_forward_char): Ditto.
15228 (update_frame_1): Ditto.
15229
15230Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15231
15232 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
d7d0dac0 15233 being updated.
26901792
DL
15234 (update_window): Set and clear it.
15235
15236 * dispnew.c (update_window_line, update_window, scrolling_window):
15237 First versions.
15238
15239 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15240 bar for window borders.
15241 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15242 with spaces.
15243 (fill_up_glyph_row_with_spaces): Call above function.
15244
15245 * xdisp.c (display_text_line): Don't add vertical bar for
15246 window borders.
15247 (display_string): Ditto.
15248
15249 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15250 (replace_window): Ditto.
15251
15252 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15253
15254 * xfns.c (Fx_contour_region): Use selected window cursor position.
15255 (Fx_uncontour_region): Ditto.
15256 (Fx_select_region): Ditto.
15257
15258 * frame.c (make_frame): Remove CURSOR_X/Y.
15259
15260 * xdisp.c (redisplay_internal): Use window cursor position.
15261
15262 * dispnew.c (update_frame_1): Use cursor position of selected
15263 window.
15264 (change_frame_size_1): Ditto.
15265
15266 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15267 (XTwrite_glyphs): Use cursor position of selected window.
15268
d7d0dac0 15269 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected window.
26901792
DL
15270
15271 * dispnew.c (set_cursor_to): Set window cursor position.
15272 (direct_output_for_insert): Use window cursor position.
15273 (init_display): Don't use frame cursor position.
15274
15275 * window.h: CURSOR_VPOS/HPOS added.
15276
15277 * frame.h (struct frame): CURSOR_X/Y removed.
15278 (FRAME_CURSOR_X): Removed.
15279 (FRAME_CURSOR_Y): Ditto.
15280
15281 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15282 (direct_output_forward_char): Ditto.
15283
d7d0dac0 15284 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y removed.
26901792
DL
15285
15286 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15287
15288 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15289
15290Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15291
15292 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15293 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15294
15295 * dispextern.h: Changed function names.
15296
15297 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15298 < 2.
15299 (clear_window_matrices): Formerly two functions for desired
15300 and current matrix.
15301 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15302 (update_frame): Return return value from UPDATE_FRAME_1.
15303
15304Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15305
15306 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15307 LAST_TEXT_VPOS.
15308
15309 * frame.c (set_menu_bar_lines): Adjust matrices.
15310
15311 * dispnew.c (set_cursor_to): Set cursor position.
15312
15313 * minibuf.c (read_minibuf): Build frame matrix.
15314
15315 * xdisp.c (this_line_start_hpos): Renamed to
d7d0dac0
SM
15316 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15317 relative.
26901792
DL
15318 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15319 reason.
15320
427ec082 15321 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15322 menu bar.
15323 (clear_window_records): Clear window rows.
15324 (clear_frame_records): Clear window and frame rows.
15325 (clear_glyph_matrix): Set all rows of a matrix to empty.
15326
d7d0dac0
SM
15327 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P.
15328 Update frame if set.
26901792
DL
15329 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15330 removed.
15331 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15332 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15333
15334 * dispnew.c (assign_row): Assign one glyph row to another.
15335 (mirrored_make_current): Use it.
15336 (mirror_make_current): Use it.
15337 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15338 used counters for the current glyph row.
427ec082 15339
26901792
DL
15340
15341Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15342
15343 * lisp.h: Prototype for SCAN_BUFFER.
15344
15345 * xdisp.c (redisplay_windows): Simplified.
15346
15347 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15348 with debug checks.
15349 (window_to_frame_hpos): Convert window to frame hpos with checks.
15350 (frame_to_window_vpos): Convert frame to window vpos with checks.
15351 (frame_to_window_hpos): Convert frame to window hpos with checks.
15352
15353 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15354
15355 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15356
15357 * xdisp.c (redisplay_internal): Another instance of
15358 DISPLAY_TEXT_LINE with window relative VPOS.
15359 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15360
15361 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15362 only.
15363
15364 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15365 (redisplay_internal): Ditto.
15366
15367 * dispnew.c (cancel_window_line): Use window matrix. Changed
15368 name to CANCEL_WINDOW_LINE.
15369
15370 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15371 relative VPOS.
15372
427ec082
SS
15373 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15374 to frame vpos.
26901792
DL
15375 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15376 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15377 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15378
15379 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15380 window relative VPOS.
15381 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15382 relative VPOS.
15383
15384 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15385 MATRIX_BUFFER_POSITIONS.
15386
15387 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15388
15389 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15390
427ec082 15391 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15392 matrix. Change name to scroll_full_width_window.
15393
15394 * xdisp.c (message2_nolog): Don't fwrite NULL message If
d7d0dac0 15395 NONINTERACTIVE.
26901792
DL
15396
15397Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15398
15399 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15400 and window matrices.
26901792
DL
15401 (adjust_window_charstarts): Use window matrix.
15402 (cancel_my_columns): Use window matrix.
15403 (direct_output_for_insert): Use window matrix, only.
15404
15405 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15406 (display_string): Call display_glyphs.
15407 (display_menu_bar_string): Display a string in a menu bar line.
15408 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15409 (display_text_line): Use window matrix.
15410 (try_window): Use window relative positions.
15411
15412Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15413
15414 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
d7d0dac0 15415 (0, 0).
26901792 15416 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
d7d0dac0 15417 top-most windows.
26901792
DL
15418
15419 * window.h (WINDOW_TOPMOST_P): Added.
15420
15421 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15422 (redisplay_window): Ditto.
15423 (display_text_line): Ditto.
15424 (display_menu_bar): Ditto.
15425 (display_mode_line): Ditto.
15426 (display_mode_line): Use window matrix.
15427 (display_string): Use window matrix.
15428 (display_mode_element): Ditto.
15429 (echo_area_display): Don't display if frame has no pools yet.
15430 (echo_area_display): Work with window matrix for mini window.
15431 (redisplay_window): Use window marix for mini window.
15432 (display_text_line): Assume HPOS and VPOS are window relative and
d7d0dac0 15433 use that for DISPLAY_STRING.
26901792
DL
15434
15435 * dispextern.h: Prototype for prepare_desired_row.
15436
d7d0dac0 15437 * dispnew.c (prepare_desired_row): Replacement for GET_DISPLAY_LINE.
26901792
DL
15438
15439 * dispnew.c (adjust_window_charstarts): Always allocate window
15440 matrices.
15441 (clear_glyph_row): Only reset used counters and flags.
15442
15443Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15444
15445 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15446 line is non-empty.
26901792
DL
15447 (realloc_glyph_pool): Don't add 1 to the pool size.
15448 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15449
15450 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15451 (line_draw_cost): Ditto.
15452 (update_line): Ditto.
15453 (update_line): Use SPACE_GLYPH.
15454 (count_blanks): Additional parameter LEN.
15455
15456 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15457 (display_text_line): Don't add null-glyph end marker.
15458 (display_string): Use SPACE_GLYPH.
15459 (display_string): Don't use null-glyph end marker.
15460
15461 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15462
15463 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15464 (fill_up_glyph_row_with_spaces): Ditto.
15465 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15466 rows, instead of null-glyphs.
15467 (direct_output_for_insert): Don't add null-glyph end marker.
15468
15469 * scroll.c (do_direct_scrolling): Change algorithm to construct
d7d0dac0 15470 vector of lines assigned. Call MIRRORED_LINE_DANCE:
26901792
DL
15471 (do_scrolling): Ditto.
15472
15473 * dispnew.c (mirror_line_dance): Mirror line assignments in a
d7d0dac0 15474 frame matrix in window matrices.
26901792 15475 (mirrored_line_dance): Do line assignments during scrolling.
d7d0dac0 15476 Maybe do corresponding assignments in window matrices.
26901792 15477 (check_window_matrix_pointers): Check that window rows and frame
d7d0dac0 15478 rows agree about glyph pointers.
26901792
DL
15479 (check_matrix_pointers): Ditto.
15480 (mirrored_make_current): Make a row of a desired matrix current;
d7d0dac0 15481 maybe mirror the operation in window matrices.
26901792 15482 (mirror_make_current): Make window desired matrix row current when
d7d0dac0 15483 frame matrix row was made current.
26901792
DL
15484
15485Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15486
15487 * dispnew.c (check_matrix_pointer_lossage): Check against
15488 pointer lossage in matrices.
15489 (get_glyph_matrix_row): Removed.
15490
15491 * scroll.c (do_scrolling): Simplified.
15492 (do_direct_scrolling): Simplified.
15493 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
d7d0dac0 15494 DO_.*SCROLLING.
427ec082 15495
26901792
DL
15496
15497 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15498 (rotate_vector): Removed.
15499 (rotate_pointers): Removed.
15500 (scroll_frame_lines): Simplified.
15501
15502Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15503
15504 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15505
15506 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15507 what the name says.
15508 (clear_glyph_row): Make a glyph row structure empty.
15509 (make_matrix_row_current): Make a glyph row current.
15510 (make_window_matrix_row_current): Perform analogous row swaps
15511 for window matrices.
15512 (update_line): Call make_matrix_row_current.
15513
15514Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15515
15516 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15517 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15518 INVERSE_P.
15519 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15520 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15521
15522 * all files: use above new names.
15523
15524 * dispnew.c (scroll_frame_lines): Simplified. Use
d7d0dac0 15525 SCROLL_GLYPH_MATRIX.
26901792 15526 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15527 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15528 buffer positions in a glyph row.
15529 (increment_glyph_matrix_buffer_positions): Increment buffer
15530 positions in a range of rows.
15531 (scroll_glyph_matrix): Scroll a glyph matrix.
15532 (swap_glyphs_in_rows): Swap glyphs between rows.
15533 (swap_glyph_pointers): Swap pointers between rows.
15534 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15535 (init_display): Initialize SPACE_GLYPH.
15536 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15537 spaces.
26901792
DL
15538
15539Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15540
15541 * xterm.c (dumprectangle): Use vectors in glyph rows.
15542
15543 * xdisp.c (display_text_line): Use vectors in glyph rows.
15544 (display_string): Ditto.
15545
15546 * scroll.c (do_scrolling): Use vectors in glyph rows.
15547 (do_direct_scrolling): Ditto.
15548
15549 * alloc.c (mark_object): Use vectors in glyph rows.
15550 Mark for all frame types.
15551
15552 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15553 glyph rows.
15554 (get_glyph_matrix_row): Ditto.
15555 (matrix_row): Ditto.
15556 (rotate_pointers): Ditto.
15557 (scroll_frame_lines): Ditto.
15558 (preserve_other_columns): Ditto.
15559 (cancel_my_columns): Ditto.
15560 (update_line): Ditto.
15561 (direct_output_for_insert): Ditto.
15562
15563 * dispextern.h (struct glyph_row): Use a vector of pointers
d7d0dac0 15564 instead of individual members. Use a vector of used counters.
26901792
DL
15565 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15566 (MATRIX_ROW_GLYPH_START): Ditto.
15567 (MATRIX_ROW_GLYPH_END): Ditto.
15568 (MATRIX_ROW_USED): Ditto.
15569 (MATRIX_ROW_SET_USED): Ditto.
15570
15571 * dispnew.c (line_hash_code): Simplified.
15572
15573Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15574
15575 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15576 CHANGE_FRAME_SIZE_1
15577 (preserve_other_columns): Void return.
15578 (cancel_my_columns): Void return type.
15579 (scrolling): Int return type.
15580 (do_pending_window_change): Void return type.
15581 (change_frame_size): Ditto.
15582 (bitch_at_user): Ditto.
15583 (init_display): Ditto.
15584 (syms_of_display): Ditto.
15585
15586 * dispextern.h: add prototypes for REDRAW_FRAME,
d7d0dac0
SM
15587 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15588 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15589 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15590 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15591 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15592 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
26901792 15593 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15594
26901792 15595 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
d7d0dac0 15596 void.
26901792
DL
15597 (cancel_line): Return void.
15598 (clear_frame_records): Return void.
427ec082 15599
26901792
DL
15600 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15601 (SET_CHAR_GLYPH): Fill a character glyph.
15602 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15603 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15604 glyph.
26901792
DL
15605 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15606 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15607 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15608 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15609 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15610 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15611 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15612 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15613 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15614
15615 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15616
15617 * window.h (struct window): Add comment that no Lisp data may
d7d0dac0 15618 come below CURRENT_MATRIX.
26901792
DL
15619
15620 * alloc.c (mark_object): Change window mark code to stop with
d7d0dac0 15621 member CURRENT_MATRIX.
26901792
DL
15622
15623Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15624
15625 * scroll.c (do_scrolling): Change algorithm to use pointers.
15626 (do_direct_scrolling): Ditto.
15627
15628 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15629 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15630 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15631 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
d7d0dac0 15632 Returns 1 if pool changed.
26901792
DL
15633 (matrix_row): Additional check for lost pointers to glyph rows.
15634 (compute_matrices): Additional parameter DIM_P set means that no
d7d0dac0
SM
15635 allocation should take place. Addtional parameter
15636 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
26901792 15637 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
d7d0dac0
SM
15638 when window matrix changes. Additional parameter DIM_ONLY_P set
15639 to 1 to indicate that no allocation should take place.
26901792 15640 (adjust_frame_glyphs): Construct new glyph pools and glyph
d7d0dac0 15641 matrices. Optimize frame redraws.
26901792
DL
15642 (free_glyphs): Free pools.
15643 (check_glyph_memory): Check pools not freed.
15644 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15645 (scroll_frame_lines): Change algorithm to use pointers.
15646 (update_line): Ditto.
15647
15648 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15649 (global): All macro names changed from prefix FRAME_MATRIX to
d7d0dac0 15650 MATRIX.
26901792
DL
15651
15652Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15653
15654 * dispextern.h (struct glyph_pool): Replacement for former
15655 FRAME_GLYPH_MATRIX.
15656 (struct glyph_matrix): No longer contains sizes of allocated
15657 areas.
15658
15659 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15660 no glyph pools.
15661
15662 * frame.c (make_frame): Initialize pools.
15663
15664Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
15665
427ec082 15666 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
15667 line moving algorithm has no intermediate steps.
15668 (do_scrolling): Ditto.
15669
15670 * Makefile.in (alloc.o): Add dependency dispextern.h.
15671
15672 * alloc.c: Include dispextern.h for glyph definitions.
15673
15674 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
15675 is legal, return 0 otherwise.
15676
15677 * window.h: Add comment that windows are marked specially.
15678
15679 * alloc.c (mark_object): Mark windows specially.
15680
15681
15682Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
15683
15684 * dispextern.h (struct glyph): Add member OBJECT
15685 referencing a Lisp object from which a glyph was drawn.
15686 Member TEXT_POSITION renamed POSITION.
15687 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
15688
15689 * alloc.c: Include dispextern.h
15690 (mark_object): Mark objects referenced from glyphs.
15691
f28eba7b 15692 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
15693
15694 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
15695 (do_scrolling): Ditto.
15696
427ec082 15697 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
15698 DECODE_MODE_SPEC_BUFFER added.
15699
15700 * window.h: TEMP_MATRIX removed.
15701
15702 * scroll.c: OPHYS_LINES removed.
15703
15704 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
15705 FRAME_PTR -> struct frame *.
15706
15707 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
15708 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15709
15710 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
15711 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15712
15713 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
15714 (do_verify_charstarts): Removed.
15715
15716 * frame.c (Fmake_terminal_frame): Adjust glyphs.
15717 (Fdelete_frame): Free glyphs.
15718 (make_frame): Initialize matrix fields in frame.
15719
f28eba7b 15720 * config.in (PROTO): Added.
26901792 15721
f28eba7b 15722 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
15723
15724 * window.c (Fdelete_window): Free window matrices.
15725 (Fset_window_configuration): Ditto.
15726 (Fdelete_window): Adjust glyphs.
15727 (Fsplit_window): Ditto.
15728 (change_window_height): Ditto.
15729 (Fset_window_configuration): Ditto.
15730 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
15731 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
15732
15733 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
15734
15735 * window.c: Include dispextern.h
15736
15737 * scroll.c (do_scrolling): Use new glyphs.
15738 (do_direct_scrolling): Ditto.
15739
15740 * xdisp.c: Some function prototypes.
15741 (redisplay_internal): Don't do anything if matrices not yet set.
15742 (redisplay_internal): Use new glyphs.
15743 (try_window_id): Ditto.
15744 (copy_part_of_rope): Ditto.
15745 (display_text_line): Ditto.
15746 (display_menu_bar): Ditto.
15747 (display_mode_line): Ditto.
15748 (display_string): Ditto.
15749
15750 * xterm.c: Prototypes for some local functions.
15751 (dumpglyphs): Use new glyphs.
15752 (XTwrite_glyphs): Ditto.
15753 (dumprectangle): Ditto.
15754 (note_mouse_highlight): Ditto.
15755 (fast_find_position): Ditto.
15756 (show_mouse_face): Ditto.
15757 (x_draw_single_glyph): Ditto.
15758 (x_display_bar_cursor): Ditto.
15759 (x_display_box_cursor): Ditto.
15760 (x_new_font): Adjust glyphs when font change.
15761
15762 * term.c (clear_end_of_line): Use new glyphs.
15763 (write_glyphs): Ditto.
15764 (insert_glyphs): Ditto.
15765
15766 * Makefile.in (term.o): term.c depends on dispextern.h
15767
15768 * term.c: Include dispextern.h
15769
15770 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 15771 removed, new inserted.
26901792
DL
15772 (line_hash_code): Use new glyphs.
15773 (line_draw_cost): Ditto
15774 (cancel_line): Ditto
15775 (clear_frame_records): Ditto.
15776 (init_desired_glyphs): Ditto.
15777 (get_display_line): Ditto
15778 (scroll_frame_lines): Ditto.
15779 (preserve_other_columns): Ditto.
15780 (adjust_window_charstarts): Ditto.
15781 (cancel_my_columns): Ditto.
15782 (direct_output_for_insert): Ditto.
15783 (update_frame): Ditto.
15784 (quit_error_check): Made empty.
15785 (scrolling): Use new glyphs.
15786 (count_blanks): Ditto.
15787 (count_match): Ditto.
15788 (update_line): Ditto.
15789 (init_display): Adjust glyphs initially.
15790 (change_frame_size_1): Adjust glyphs.
15791
15792 * dispextern.h: Old glyphs removed, new added.
15793
15794 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
15795
15796 * xterm.h: Prototype for min_char_bounds.
15797
15798 * window.h (struct window): Remove old glyphs, add new.
15799
15800 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 15801
26901792
DL
158021999-07-20 Dave Love <fx@gnu.org>
15803
15804 * buffer.c (syms_of_buffer): Make
15805 default-enable-multibyte-characters a user variable.
15806
158071999-07-14 Richard Stallman <rms@gnu.org>
15808
15809 * Version 20.4 released.
15810
158111999-07-14 Richard Stallman <rms@gnu.org>
15812
15813 * filelock.c (lock_file): Do nothing if purifying.
15814
158151999-07-10 Richard Stallman <rms@gnu.org>
15816
15817 * xterm.c (x_display_bar_cursor): Use the cursor-color
15818 to display the bar, not the cursor foreground pixel.
15819
158201999-07-09 Andrew Innes <andrewi@gnu.org>
15821
15822 * w32console.c (w32_use_full_screen_buffer): New variable.
15823 (syms_of_ntterm): Register it.
15824 (initialize_w32_display): Set initial frame size accordingly,
15825 respecting the LINES and COLUMNS environment variables if set.
15826
15827 * w32inevt.c (w32_console_read_socket): Use it.
15828
158291999-07-07 Kenichi Handa <handa@etl.go.jp>
15830
15831 * callproc.c (Fcall_process): Decide coding system for decoding
15832 after we set to the target buffer. If the output goes to a
15833 unibyte buffer, suppress character code conversion.
15834
15835 * fileio.c (Finsert_file_contents): If reading into a unibyte
15836 buffer, suppress character code conversion.
15837
15838 * process.c (create_process): If the output goes to a unibyte
15839 buffer, suppress character code conversion.p
15840
158411999-07-07 Andreas Schwab <schwab@gnu.org>
15842
15843 * xdisp.c (line-number-display-limit): Doc fix.
15844
158451999-07-05 Richard Stallman <rms@gnu.org>
15846
15847 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
15848 (Fcall_process_region): Likewise.
15849
158501999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
15851
15852 * callproc.c (init_callproc): Set exec_directory if
15853 installation_directory is non-nil, without a test of exec_path.
15854
158551999-07-01 Andrew Innes <andrewi@gnu.org>
15856
15857 * w32xfns.c (drain_message_queue): New function.
15858
15859 * w32term.h (drain_message_queue): Add extern.
15860
15861 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
15862 of WaitForMultipleObjects when user input is allowed, so we can
15863 handle incoming window messages. Call drain_message_queue when
15864 there are messages waiting; this ensures that windows created
15865 indirectly from the lisp thread get processed properly, and don't
15866 hang other applications by failing to respond to broadcasts.
15867
158681999-07-01 Andreas Schwab <schwab@gnu.org>
15869
15870 * callint.c (Fcall_interactively): Ignore first element of
15871 event-symbol-elements property.
15872
158731999-07-01 Richard Stallman <rms@gnu.org>
15874
15875 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
15876
158771999-07-01 Kenichi Handa <handa@etl.go.jp>
15878
15879 * minibuf.c (read_minibuf): Set the multibyteness of the
15880 minibuffer before inserting `initial' string.
15881
158821999-06-30 Richard Stallman <rms@gnu.org>
15883
15884 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
15885
158861999-06-29 Richard M. Stallman <rms@gnu.org>
15887
15888 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
15889 Move the handling of MALLOC_CHECK_ envvar here.
15890 (main): Moved from here.
15891
158921999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
15893
15894 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
15895 function, assigned to the global __malloc_initialize_hook pointer.
15896 (main): Move malloc_set_state call into malloc_initialize_hook
15897 so that it happens as early as possible.
15898
158991999-06-27 Richard M. Stallman <rms@gnu.org>
15900
15901 * keyboard.c (read_key_sequence): Properly reinitialize
15902 fkey_map after translating thru Vkey_translation_map.
15903 After translating thru Vfunction_key_map, don't reset
15904 keytrans-start to 0.
15905
159061999-06-24 Geoff Voelker <voelker@cs.washington.edu>
15907
15908 * w32.c (get_emacs_configuration): Use GetVersionEx to
15909 handle NT5.0 correctly. Include build number in configuration.
15910 w32heap.c (osinfo_cache): New variable.
15911 (cache_system_info): Initialize osinfo_cache.
15912 w32heap.h (osinfo_cache): Declare.
15913
159141999-06-24 Richard M. Stallman <rms@gnu.org>
15915
15916 * casefiddle.c (casify_object): Use make_multibyte_string
15917 if we casify a multibyte string.
15918
159191999-06-22 Ken'ichi Handa <handa@gnu.org>
15920
15921 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
15922 del_range_byte instead of del_range_1, set `inserted' to the
15923 number of characters actually inserted.
15924
159251999-06-17 Dave Love <fx@gnu.org>
15926
15927 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
15928
159291999-06-18 Paul Eggert <eggert@twinsun.com>
15930
15931 * filelock.c (BOOT_TIME_FILE): New macro.
15932 (get_boot_time): Use it instead of hardwiring the file name.
15933 Check BOOT_TIME_FILE only after inspecting the kernel directly.
15934
159351999-06-17 Dave Love <fx@gnu.org>
15936
15937 * xdisp.c (invalid_eol_type): Make it unsigned.
15938
159391999-06-17 Karl Heuer <kwzh@gnu.org>
15940
15941 * process.c (send_process): Delete unsafe/redundant assignment.
15942
159431999-06-17 Jason Rumney <jasonr@gnu.org>
15944
15945 * w32term.c (dumprectangle): Handle wide characters properly.
15946
159471999-06-16 Andrew Innes <andrewi@gnu.org>
15948
15949 * s/ms-w32.h (strerror): Override the default implementation of
15950 strerror, so we can map winsock error codes.
15951
15952 * w32.c (sys_strerror): New function.
15953
15954 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
15955
159561999-06-15 Ken'ichi Handa <handa@gnu.org>
15957
15958 * buffer.c (syms_of_buffer): Don't make
15959 enable-multibyte-characters customizable.
15960
159611999-06-15 Richard M. Stallman <rms@gnu.org>
15962
15963 * editfns.c (Fuser_full_name): Doc fix.
15964
159651999-06-14 Tak Ota <ota@atc.sel.sony.com>
15966
15967 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
15968 (get_bitmap_with_cache): Check if CreateBitmap failed.
15969 Adjust cache size dynamically so cache is never larger than the
15970 system limit of GDI resources.
15971 Do cache clearing inline. Move global variables to local scope.
15972
15973
159741999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
15975
15976 * unexsgi.c (unexec): Dump the .rodata section from memory
15977 under IRIX6.5 in order to be able to unexec with gcc.
15978
159791999-06-11 Greg Hudson <ghudson@MIT.EDU>
15980
15981 * indent.c (compute_motion): Fix boundary case.
15982
159831999-06-11 Jason Rumney <jasonr@altavista.net>
15984
15985 * w32term.c (cancel_mouse_face): New function. See equiv
15986 changes to xterm.c on 1996-10-31.
15987 (x_set_window_size): Use cancel_mouse_face.
d7d0dac0
SM
15988 (w32_read_socket): Use cancel_mouse_face.
15989 Update frame position when size is restored.
26901792
DL
15990
159911999-06-04 Richard M. Stallman <rms@gnu.org>
15992
15993 * lread.c (Vuser_init_file): New variable.
15994 (syms_of_lread): Set up Lisp variable.
15995 (Fload): Store the file name there, if var was t before.
15996
159971999-06-04 Paul Eggert <eggert@twinsun.com>
15998
15999 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
16000 doesn't work if the system date is changed, or if the system
16001 is suspended. Look at the last-modified time of
16002 /var/run/random-seed instead.
16003
160041999-06-03 Ken'ichi Handa <handa@gnu.org>
16005
16006 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16007 japanese-jisx0208-1978 correctly.
16008
160091999-06-03 Andrew Innes <andrewi@gnu.org>
16010
16011 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
16012 as possible to be dumped, for safety.
16013
160141999-06-02 Ken'ichi Handa <handa@gnu.org>
16015
16016 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
16017 latin-jisx0201 correctly.
16018
160191999-05-26 Ken'ichi Handa <handa@gnu.org>
16020
16021 * charset.h (Vcharset_table): Comment fixed.
16022
160231999-05-24 Richard Stallman <rms@gnu.org>
16024
16025 * coding.c (syms_of_coding): Doc fix.
16026
16027 * buffer.c (syms_of_buffer): Doc fix.
16028
16029 * filelock.c (lock_if_free): After deleting a stale lock,
16030 try again to lock the file.
16031
160321999-05-22 Andrew Innes <andrewi@gnu.org>
16033
16034 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
16035 console window size.
16036 (w32_console_read_socket): Call maybe_generate_resize_event
16037 whenever input events are received, since we don't get told when
16038 the window size changes (as opposed to the buffer size, which we
16039 don't care about).
16040
16041 * w32console.c (clear_frame): Remember that the window width might
16042 be smaller than the screen buffer width.
16043 (write_glyphs): Remove redundant variable attrs. Use
16044 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
16045
160461999-05-20 Andrew Innes <andrewi@gnu.org>
16047
16048 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
16049 loses focus.
16050
16051 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
16052 frame loses focus, and that mouse button state is reset. Ditto
16053 when the menu bar is activated.
16054
160551999-05-18 Richard Stallman <rms@gnu.org>
16056
16057 * abbrev.c (Fdefine_abbrev): Doc fix.
16058
160591999-05-13 Paul Eggert <eggert@twinsun.com>
16060
16061 * filelock.c: Fix performance bug on hosts with large
16062 /var/adm/wtmp files with no boot records.
16063
16064 (boot_time_initialized): New var.
16065 (init_filelock): Initialize it.
16066 (get_boot_time): Use it, instead of nonzero boot_time,
16067 to test whether boot_time is initialized.
16068 Don't invoke utmp routines when dumping.
16069
16070 (get_boot_time): First, try to get the boot time from the
16071 current utmp file, as this can be much faster. Don't try to
16072 get the boot time from utmp and/or wtmp more than once.
16073
16074 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
16075 New arg LATEST. All uses changed.
16076
160771999-05-15 Andrew Innes <andrewi@gnu.org>
16078
16079 * w32term.c (dumpglyphs): Use correct colours for drawing
16080 rectangles in place of missing fonts, and make them the right
16081 size.
16082
160831999-05-14 Dave Love <fx@gnu.org>
16084
16085 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
16086 non-nil.
16087
160881999-05-11 Andrew Innes <andrewi@gnu.org>
16089
16090 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
16091 definition.
16092 (w32_wnd_proc): Reinstall debugging output.
16093 (w32_wnd_proc): Reinstall SetForegroundWindow change.
16094 (syms_of_w32fns): Reinstall new initializer for
16095 Vw32_phantom_key_code.
16096
16097 * w32fns.c (x_to_w32_charset): Do partial matching of charset
16098 names for most non-European charsets, to cope with wildcards or
16099 missing spec dates.
16100 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
16101 to avoid deadlock when activating the menu bar.
16102
161031999-05-10 Ken'ichi Handa <handa@gnu.org>
16104
16105 * search.c (boyer_moore): Get charset base value of `untranslated'
16106 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
16107
161081999-05-10 Andreas Schwab <schwab@gnu.org>
16109
16110 * fileio.c (Fread_file_name): Correct handling of dollars in file
16111 names. Protect dollars in strings put on the file-name-history.
16112 Substitute homedir by `~' also in default_filename.
16113
16114 * xdisp.c (try_window_id): Fix computation of tab_offset when
16115 backing up over a character that is splitted across lines.
16116
161171999-05-08 Kenichi HANDA <handa@etl.go.jp>
16118
16119 * coding.c (code_convert_region): If eol format is inconsistent,
16120 change coding->symbol to the sibling coding system of Unix like
16121 eol format.
16122
161231999-05-09 Richard M. Stallman <rms@gnu.org>
16124
16125 * s/irix5-2.h (NO_WTMP_FILE): Define it.
16126
16127 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
16128
161291999-05-05 Andrew Innes <andrewi@gnu.org>
16130
16131 * w32fns.c (w32_strict_painting): New variable.
16132 (w32_wnd_proc): Use it to select repaint rules.
16133 (syms_of_w32fns): Defvar it.
16134
161351999-05-04 Andrew Innes <andrewi@gnu.org>
16136
16137 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16138 charsets to the standard Windows charset for Japanese.
16139
161401999-05-04 Ken'ichi Handa <handa@gnu.org>
16141
16142 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16143
16144 * ccl.h (struct ccl_program): New member stack_idx.
16145
16146 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16147 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16148 before returing.
16149 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16150
161511999-05-03 Jason Rumney <jasonr@altavista.net>
16152
16153 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16154
161551999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16156
16157 * dired.c (make_time): Make argument type be time_t.
16158
161591999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16160
16161 * msdos.c (unibyte_display_via_language_environment): Add extern.
16162
83c8f461 161631999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
16164
16165 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16166 if unibyte_display_via_language_environment is set.
16167 (unibyte_display_via_language_environment):
16168 Variable moved from xfns.c and elsewhere.
16169 (syms_of_xfns): Set up Lisp var.
16170
16171 * xfns.c (unibyte_display_via_language_environment):
16172 Variable moved to xdisp.c.
16173 (syms_of_xfns): Don't set up Lisp var here.
16174
16175 * msdos.c (unibyte_display_via_language_environment):
16176 Variable moved to xdisp.c.
16177 (syms_of_msdos): Don't set up Lisp var here.
16178
16179 * w32fns.c (unibyte_display_via_language_environment):
16180 Variable moved to xdisp.c.
16181 (syms_of_w32fns): Don't set up Lisp var here.
16182
161831999-05-02 Andrew Innes <andrewi@gnu.org>
16184
16185 * s/ms-w32.h (HAVE_FSYNC): New macro.
16186 (fsync): Map to _commit.
16187 (ftruncate): Map to _chsize.
16188
16189 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16190 for ASCII, if enabled, to avoid memory allocation overhead for
16191 implicit Unicode conversion. Also, recognize that ASCII and
16192 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16193 already contains the Unicode characters in that case.
16194 (construct_drag_n_drop): Remove old code that was
16195 trashing the drop location.
16196
16197 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16198 nlines to encoding_buffer_size (real bug was in a ccl program in
16199 lisp/international/coding.el).
16200
16201 * w32reg.c (w32_get_string_resource): Check for name in current
16202 user area, and if not found look in the local machine area.
16203
16204 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16205 (Fw32_shell_execute): New function; used to support browse-url.
16206 (syms_of_w32fns): Register it.
16207 (w32_load_system_font): Force max width to be average
16208 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16209 slowdown.
16210 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16211 already defined.
16212 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16213
16214 * unexw32.c (get_section_info): Dump back the entire EMDATA
16215 section if we can put Emacs' initialized data in a separate
16216 section, otherwise use the my_begdata/my_edata method.
16217
16218 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16219
16220 * coding.c (decode_eol): Set produced/consumed values to zero if
16221 src_bytes is <= 0 on entry.
16222
162231999-05-02 Jason Rumney <jasonr@altavista.net>
16224
16225 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16226 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16227 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16228 field in frame.
16229 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16230 (dumprectangle): Take into account the width of a left-side
16231 scroll bar.
16232
16233 * w32proc.c (sys_kill): Attach to current foreground thread
16234 when grabbing focus; necessary on NT 5.0.
16235
16236 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16237 GetUpdateRect rather than BeginPaint.
16238 (w32_wnd_proc): Attach to current foreground thread
16239 when grabbing focus; necessary on NT 5.0.
16240 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16241 debugging display messages.
16242 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16243 false matching.
16244
162451999-05-02 Kenichi HANDA <handa@etl.go.jp>
16246
16247 * coding.c (setup_raw_text_coding_system): Call
16248 setup_coding_system to initialize the fields of struct
16249 coding_system correctly.
427ec082 16250
26901792
DL
162511999-04-26 Kenichi HANDA <handa@etl.go.jp>
16252
16253 * xterm.c (x_list_fonts): Fix previous change.
16254
162551999-04-26 Richard Stallman <rms@gnu.org>
16256
16257 * config.in (HAVE_LIBXP): Add #undef.
16258 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16259
162601999-04-12 Ken'ichi Handa <handa@gnu.org>
16261
16262 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16263 by them.
16264
162651999-04-12 Karl Heuer <kwzh@gnu.org>
16266
16267 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16268
162691999-04-11 Ken'ichi Handa <handa@gnu.org>
16270
16271 * fontset.c (Fset_fontset_font): Fix previous change.
16272
162731999-04-09 Ken'ichi Handa <handa@gnu.org>
16274
16275 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16276 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16277
162781999-04-08 Richard Stallman <rms@gnu.org>
16279
16280 * process.c (Faccept_process_output): Check validity of PROCESS.
16281
162821999-04-08 Eli Zaretskii <eliz@gnu.org>
16283
16284 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16285
162861999-04-07 Richard Stallman <rms@gnu.org>
16287
16288 * xfns.c (x_set_font): Fix error message.
16289
16290 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16291 (Fnew_fontset, Fset_fontset_font): Check for them here.
16292 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16293 Fix error message syntax.
16294
16295 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16296 from the base buffer.
16297 (Fset_buffer_multibyte): Copy new multibyte status
16298 into the buffer's indirect buffers.
16299
163001999-04-07 Ken'ichi Handa <handa@gnu.org>
16301
16302 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16303 tail.
16304
163051999-04-06 Richard Stallman <rms@gnu.org>
16306
16307 * dired.c (Ffile_attributes): Doc fix.
16308
16309 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16310 Convert 0200 to meta only in a unibyte string.
16311 (Fkey_description): Likewise.
16312
16313 * eval.c (do_autoload): Preserve match data.
16314
163151999-04-06 Kenichi HANDA <handa@etl.go.jp>
16316
16317 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16318 encode_coding to avoid carryover.
16319
16320 * coding.c: Add comments for decode_coding and encode_coding.
16321
16322 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16323 a composite character by skipping its leading code.
16324 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16325 correctly.
16326
16327 * coding.c: Add comments for decode_coding and encode_coding.
16328
16329 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16330 a composite character by skipping its leading code.
16331 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16332 correctly.
16333
163341999-04-06 Eli Zaretskii <eliz@gnu.org>
16335
16336 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16337 table was used.
16338 (jp_kbd_translate_table): Support C-\.
16339 (it_kbd_translate_table): Map `>' correctly.
16340 (it_keyboard): Add `>'.
16341
163421999-04-06 Richard Stallman <rms@gnu.org>
16343
16344 * intervals.c (graft_intervals_into_buffer): Turn off
16345 inhibit_modification_hooks around calling Fset_text_properties.
16346
163471999-04-05 Kenichi HANDA <handa@etl.go.jp>
16348
16349 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16350 glyphs.
16351
163521999-04-05 Eli Zaretskii <eliz@gnu.org>
16353
16354 * msdos.c (jp_kbd_translate_table): Fix last change.
16355
163561999-04-04 Eli Zaretskii <eliz@gnu.org>
16357
16358 * msdos.c (struct kbd_translate): New struct, for key translation
16359 tables private to certain national keyboard layouts.
16360 (struct dos_keyboard_map): Add a pointer to a private translation
16361 table.
16362 (jp_kbd_translate_table): Private table for the Japanese
16363 keyboard.
16364 (jp_keyboard): Japanese keyboard layout.
16365 (it_kbd_translate_table): Private table for the Italian keyboard.
16366 (it_keyboard): Use it_kbd_translate_table.
16367 (keyboard_layout_list): Add the Japanese keyboard.
16368 (dos_rawgetc): Use the keyboard-private translation table, if
16369 available.
16370 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16371
163721999-04-02 Kenichi HANDA <handa@etl.go.jp>
16373
16374 * xdisp.c (redisplay_window): When we call compute_motion with
16375 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16376 (display_text_line): Stop the loop for processing overlay strings
16377 when we reach the right edge of the window.
16378
83c8f461 163791999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16380
16381 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16382 let the data control whether string is unibyte.
16383
163841999-03-30 Richard M. Stallman <rms@gnu.org>
16385
16386 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16387 (pop_kbd_macro): Restore the saved real_this_command.
16388 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16389
163901999-03-26 Richard M. Stallman <rms@gnu.org>
16391
16392 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16393 if buffer-file-name is nil.
16394
163951999-03-25 Jason Rumney <jasonr@altavista.net>
16396
16397 * w32select.c (Fw32_set_clipboard_data): Take into account line
16398 ends when calculating clipboard storage needed for non-ASCII text.
16399
164001999-03-25 Andrew Innes <andrewi@gnu.org>
16401
16402 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16403 (epaths.h): Renamed from paths.h.
427ec082
SS
16404 (clean):
16405 ($(BLD)\filelock.obj):
16406 ($(BLD)\lread.obj):
26901792
DL
16407 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16408
164091999-03-23 Ken'ichi Handa <handa@gnu.org>
16410
16411 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16412 ENCODE_ISO_CHARACTER for the previous change on this macro.
16413
164141999-03-23 Kenichi Handa <handa@etl.go.jp>
16415
16416 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16417 eoltype correctly for backward compatibility.
16418
164191999-03-20 Kenichi HANDA <handa@etl.go.jp>
16420
16421 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16422 invalid, produce the buffer internal byte sequence without encoding.
16423
164241999-03-19 Karl Heuer <kwzh@gnu.org>
16425
16426 * editfns.c (Fformat): Accept %i format.
16427
164281999-03-17 Karl Heuer <kwzh@gnu.org>
16429
16430 * filelock.c (get_boot_time): Test tempname, not filename.
16431
164321999-03-17 Jason Rumney <jasonr@altavista.net>
16433
e5619f6b
JR
16434 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16435 speed display.
16436
16437 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16438 speed display.
16439 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16440 New functions.
16441 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16442 Use bitmap cache.
26901792
DL
16443
16444 * w32fns.c (enum_font_cb2): Set the font height to be the
16445 character height, not the cell height.
16446 (Fw32_select_font): Initialize font dialog with current default font.
16447 (Vw32_system_coding_system): New variable.
16448 (w32_strict_filenames): Add comment.
16449 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16450 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16451 (syms_of_w32fns): Add w32-system-coding-system.
16452
164531999-03-15 Richard M. Stallman <rms@gnu.org>
16454
16455 * xterm.c (XTread_socket) <ConfigureNotify>:
16456 If cursor pos is outside the new frame size, mark cursor as off.
16457
164581999-03-14 Ken'ichi Handa <handa@gnu.org>
16459
16460 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16461
16462 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16463 by them.
16464
164651999-03-14 Richard M. Stallman <rms@gnu.org>
16466
16467 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16468 at beginning.
16469
164701999-03-14 Jason Rumney <jasonr@altavista.net>
16471
16472 * w32fns.c (w32_strict_fontnames): New variable.
16473 (Fx_create_frame): Formatting fix.
16474 (w32_load_system_font): Keep trying to load non-existant font
16475 if w32_strict_fontnames is nil. Formatting fix.
16476 (syms_of_w32fns): Add w32-strict-fontnames.
16477
16478 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16479 (dumpglyphs): Formatting fixes.
16480
164811999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16482
16483 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16484
164851999-03-10 Karl Heuer <kwzh@gnu.org>
16486
16487 * puresize.h (BASE_PURESIZE): Increase to 505000.
16488
164891999-03-09 Richard M. Stallman <rms@gnu.org>
16490
16491 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16492
16493 * filelock.c (init_filelock): New function.
16494
164951999-03-09 Dave Love <fx@gnu.org>
16496
16497 * fileio.c (Ffile_directory_p): Doc fix.
16498
83c8f461 164991999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16500
16501 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16502
165031999-03-08 Richard M. Stallman <rms@gnu.org>
16504
16505 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16506 to only the part that uses get_boot_time_1.
16507
165081999-03-07 Dave Love <fx@gnu.org>
16509
16510 * fileio.c (Finsert_file_contents): Use xfree.
16511
165121999-03-06 Kenichi Handa <handa@etl.go.jp>
16513
16514 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16515 term.o, xselect.o): Depend on ccl.h.
16516
165171999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16518
16519 * makefile.nt: Remove common multiple file compilation commands.
16520
165211999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16522
16523 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16524 newlines added when the arg NO-LINE-BREAK is nil.
16525
165261999-03-04 Karl Heuer <kwzh@gnu.org>
16527
16528 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16529
16530 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16531
165321999-03-04 Dave Love <fx@gnu.org>
16533
16534 * term.c (term_init): Use xmalloc, not malloc.
16535
16536 * callproc.c (Fcall_process): Use xmalloc, xfree.
16537
165381999-03-03 Andreas Schwab <schwab@gnu.org>
16539
16540 * eval.c (Fdefconst): Doc fix.
16541
165421999-03-01 Kenichi Handa <handa@etl.go.jp>
16543
16544 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16545
165461999-03-01 Eli Zaretskii <eliz@gnu.org>
16547
16548 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16549
165501999-02-28 Richard M. Stallman <rms@gnu.org>
16551
16552 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16553
16554 * cmds.c (internal_self_insert): Calculate column properly
16555 in overwrite-of-tab case.
16556
165571999-02-27 Andreas Schwab <schwab@gnu.org>
16558
16559 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16560 malloc in glibc 2.1.
16561
165621999-02-26 Richard Stallman <rms@gnu.org>
16563
16564 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16565
16566 * epaths.in: Renamed from paths.in.
16567 This avoids a conflict with a system header file paths.h on GNU/Linux.
16568
16569 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16570 Use epaths.h istead of paths.h.
16571
165721999-02-26 Andreas Schwab <schwab@gnu.org>
16573
16574 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16575 malloc.
16576
165771999-02-25 Dave Love <fx@gnu.org>
16578
16579 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16580
165811999-02-25 Richard Stallman <rms@gnu.org>
16582
16583 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16584 (WTMP_FILE): Default definition in case not defined.
16585 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16586
26901792
DL
165871999-02-25 Ken'ichi Handa <handa@gnu.org>
16588
16589 * keymap.c (push_key_description): If enable-multibyte-characters
16590 is nil and C is single byte, push C as is.
16591
165921999-02-24 Kenichi Handa <handa@etl.go.jp>
16593
16594 * keymap.c (push_key_description): If enable-multibyte-characters
16595 is non-nil, try to convert unibyte character to multibyte. For
16596 invalid multibyte character, show all bits by octal form.
16597 (Fsingle_key_description): Check the validity of charset for a
16598 generic character.
16599
166001999-02-23 Richard M. Stallman <rms@gnu.org>
16601
16602 * fileio.c (Ffile_regular_p): Undo previous change.
16603
16604 * eval.c (Fdefconst): Doc fix.
16605
16606 * filelock.c (get_boot_time): Don't use BUFSIZ.
16607
166081999-02-22 Andrew Innes <andrewi@gnu.org>
16609
16610 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16611 (EXTRA_LINK): Do version test with strings.
16612
166131999-02-22 Andreas Schwab <schwab@gnu.org>
16614
16615 * fns.c (Fbase64_encode_string): Fix last change.
16616
16617 * termhooks.h (event_kind): Add user_signal.
16618
16619 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16620 (syms_of_keyboard): Initialize them.
16621 (lispy_user_signals): New variable.
16622 (make_lispy_event): Handle user_signal event type.
16623
16624 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16625 (syms_of_emacs): Don't initialize them.
16626 (handle_USR1_signal, handle_USR2_signal): Set event type to
16627 user_signal instead of non_ascii_keystroke, and use plain integers
16628 as code instead of Lisp symbols.
16629
166301999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16631
16632 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16633
166341999-02-21 Richard Stallman <rms@gnu.org>
16635
16636 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16637
16638 * print.c (print_error_message): Don't crash if (cdr data)
16639 is not a list.
16640
166411999-02-21 Eli Zaretskii <eliz@gnu.org>
16642
16643 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16644
166451999-02-20 Andrew Innes <andrewi@gnu.org>
16646
16647 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16648 run, since size can vary from run to run.
16649
16650 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16651 data is included, to enable profiling.
16652 ($(EMACS)): Map file not needed for emacs.exe.
16653
16654 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16655 as malloc before calling uninterrupt_malloc, for consistency.
16656 This also enables profiling to work on WINDOWSNT.
16657
166581999-02-18 Richard Stallman <rms@gnu.org>
16659
16660 * Makefile.in (emacs.o): Depend on termhooks.h.
16661 (filelock.o): Depend on systime.h.
16662
166631999-02-18 Ken'ichi Handa <handa@gnu.org>
16664
16665 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
16666 (Fdecode_big5_char): Likewise.
16667
166681999-02-17 Richard Stallman <rms@gnu.org>
16669
16670 * insdel.c (adjust_markers_for_replace): When doing an insertion
16671 (replacing a region of zero length), handle markers at the
16672 insertion point properly.
16673
166741999-02-17 Andrew Innes <andrewi@gnu.org>
16675
16676 * w32fns.c (Vw32_quit_key): New variable.
16677 (post_character_message): Use it.
16678 (syms_of_w32fns): DEFVAR it.
16679
166801999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
16681
16682 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
16683
166841999-02-16 Richard Stallman <rms@gnu.org>
16685
16686 * filelock.c (within_one_second): New function.
16687 (current_lock_owner): Use that.
16688 (get_boot_time): Use /proc/uptime if available.
16689 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
16690 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 16691
26901792
DL
166921999-02-16 Richard Stallman <rms@gnu.org>
16693
16694 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16695 (syms_of_emacs): Init and staticpro them.
16696 (handle_USR1_signal): Don't run any code, just queue up an event.
16697 (handle_USR2_signal): Likewise.
16698
166991999-02-16 Eli Zaretskii <eliz@gnu.org>
16700
16701 * dired.c (Ffile_attributes): If the file's size doesn't fit in
16702 an integer, return it as a float. Doc string fixed.
16703
167041999-02-16 Richard Stallman <rms@gnu.org>
16705
16706 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16707 (syms_of_emacs): Init and staticpro them.
16708 (handle_USR1_signal): Don't run any code, just queue up an event.
16709 (handle_USR2_signal): Likewise.
16710
167111999-02-15 Kenichi Handa <handa@etl.go.jp>
16712
16713 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
16714 ASCII correctly. Signal error on invalid characters.
16715 (Fdecode_big5_char, Fencode_big5_char): Likewise.
16716
167171999-02-15 Eli Zaretskii <eliz@gnu.org>
16718
16719 * w16select.c (get_clipboard_data): Work around a bug in Windows95
16720 DOS box which doubles the reported size of text in the clipboard.
16721
167221999-02-15 Kenichi Handa <handa@etl.go.jp>
16723
16724 * coding.c (decode_coding_iso2022): Don't set
16725 coding->composed_chars to 0 here.
16726 (setup_coding_system): Set coding->composed_chars to 0 here.
16727
167281999-02-10 Richard Stallman <rms@gnu.org>
16729
16730 * fileio.c (Ffile_regular_p): Use lstat.
16731
167321999-02-09 Richard Stallman <rms@gnu.org>
16733
16734 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
16735 (unexec): Test this instead of specific systems.
16736
16737 * m/macppc.h: New file.
16738
167391999-02-08 Dave Love <fx@gnu.org>
16740
16741 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
16742
167431999-02-08 Ken'ichi Handa <handa@gnu.org>
16744
16745 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
16746 should be set to coding->produced.
16747
167481999-02-07 Paul Fisher <rao@gnu.org>
16749
16750 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
16751 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
16752
167531999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16754
16755 * editfns.c (Fformat): Doc fix.
16756
167571999-02-06 Richard Stallman <rms@gnu.org>
16758
16759 * process.c (syms_of_process): defsubr it.
16760 (Fprocess_running_child_p): New function.
16761
167621999-02-05 Andrew Innes <andrewi@gnu.org>
16763
16764 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
16765 recording drop position.
16766
167671999-02-05 Ken'ichi Handa <handa@gnu.org>
16768
16769 * coding.c (encode_coding_iso2022): Before writing out an invalid
16770 code, reset graphic planes and registers if necessary.
16771
16772 * term.c (encode_terminal_code): Fix previous change.
16773
167741999-02-04 Eli Zaretskii <eliz@gnu.org>
16775
16776 * w16select.c (last_clipboard_text, clipboard_storage_size): New
16777 static variables.
16778 (set_clipboard_data): Save a copy of the text we put into
16779 clipboard in last_clipboard_text.
16780 (get_clipboard_data): If the clipboard text is identical to what
16781 last_clipboard_text holds, pretend there's no data in the clipboard.
16782
167831999-02-03 Richard Stallman <rms@gnu.org>
16784
16785 * s/gnu.h (NLIST_STRUCT): Add #undef.
16786
167871999-02-03 Eli Zaretskii <eliz@gnu.org>
16788
16789 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
16790 encoded, set its pointer and size as returned by encode_coding.
16791
167921999-02-02 Ken'ichi Handa <handa@gnu.org>
16793
16794 * fns.c (Fset_char_table_default): To handle the case that CH is
16795 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
16796
167971999-02-02 Andrew Innes <andrewi@gnu.org>
16798
16799 * w32fns.c (syms_of_w32fns): Change default value of
16800 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
16801 some mice works properly.
16802
168031999-02-02 Eli Zaretskii <eliz@gnu.org>
16804
16805 * w16select.c (set_clipboard_data): Correctly null-terminate the
16806 string to be put into the Windows clipboard. Use xbuf_addr.
16807
168081999-02-01 Richard Stallman <rms@gnu.org>
16809
16810 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
16811
168121999-01-31 Richard Stallman <rms@gnu.org>
16813
16814 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
16815 then don't send the signal if the shell owns the terminal.
16816 (Finterrupt_process): Doc change.
427ec082 16817
26901792
DL
168181999-01-31 Andrew Innes <andrewi@gnu.org>
16819
16820 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
16821 (copy_executable_and_dump_data): Use it to ensure alignment slop
16822 is zeroed.
16823
168241999-01-30 Andrew Innes <andrewi@gnu.org>
16825
16826 * w32.c (init_environment): Change argv[0] to contain the full
16827 path to Emacs.
16828
16829 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
16830
168311999-01-29 Ken'ichi Handa <handa@gnu.org>
16832
16833 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
16834 returned by x_new_font (the resolved one) but use the font name
16835 set in the fontset specification.
16836 (x_load_font): For the height of font, if normarl ascent and
16837 descent value are larger than those in max_bounds field, use the
16838 former.
16839
168401999-01-28 Eli Zaretskii <eliz@gnu.org>
16841
16842 * xdisp.c (decode_mode_spec_coding): Fix previous change.
16843
168441999-01-27 Geoff Voelker <voelker@cs.washington.edu>
16845
16846 * makefile.nt: Use full path to temacs.exe when dumping.
16847
168481999-01-27 Jason Rumney <jasonr@altavista.net>
16849
16850 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
16851 list was reliable.
16852 (enum_fontex_cb1, enum_fontex_cb2): New functions.
16853 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
16854 (w32_list_synthesized_fonts): New function.
16855 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
16856 available instead of EnumFontFamilies. List synthesized fonts if
16857 Vw32_enable_italics is non-nil.
427ec082 16858
26901792
DL
168591999-01-27 Richard Stallman <rms@gnu.org>
16860
16861 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
16862 Don't complain if ttcompat does not exist.
16863
16864 * w32fns.c (x_set_frame_parameters): gcpro as needed.
16865
168661999-01-27 Andrew Innes <andrewi@gnu.org>
16867
16868 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
16869 the lwindow, rwindow and apps keys could not be used as function
16870 keys, because they were being passed to TranslateMessage which
16871 ignores them. Also, key was being changed to SPC.
16872
16873 * makefile.nt: Do make version comparison as strings.
16874
168751999-01-27 Eli Zaretskii <eliz@gnu.org>
16876
16877 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
16878 strings, not characters.
16879
16880 * coding.h: Likewise.
16881
16882 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
16883 string.
16884
168851999-01-26 Dave Love <fx@gnu.org>
16886
16887 * emacs.c (main): Up-date copyright.
16888
168891999-01-25 Dave Love <fx@gnu.org>
16890
16891 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16892
168931999-01-25 Andreas Schwab <schwab@gnu.org>
16894
16895 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
16896
168971999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
16898
16899 * xfns.c (x_set_frame_parameters): gcpro as needed.
16900
16901 * window.c (Fset_window_point): If WINDOW is selected but the
16902 current buffer is not its buffer, don't use Fgoto_char.
16903
169041999-01-22 Richard M. Stallman <rms@gnu.org>
16905
16906 * syntax.c (scan_sexps_forward): Delete duplicate code
16907 to set prev_from_syntax, above start of main loop.
16908 At startinstring, check syntax when checking for a match.
16909
169101999-01-22 Jason Rumney <jasonr@altavista.net>
16911
16912 * w32bdf.c: New file.
16913 * w32bdf.h: New file.
16914 * makefile.nt: Add w32bdf.c and w32bdf.h.
16915
16916 * w32gui.h: Include w32bdf.h.
16917 (W32FontStruct) Add bdf element.
16918
16919 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
16920 Support BDF fonts.
16921
16922 * w32term.c (W32_TEXTOUT): New macro.
16923 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
16924 Simplify baseline calculation. Detect SJIS by font, not glyph.
16925 Call SetTextAlign.
16926 (syms_of_w32term): Remove "jisx0212-sjis" from
16927 w32-charset-to-codepage-alist.
16928 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
16929 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 16930
26901792
DL
16931 * w32fns.c (Vw32_bdf_filename_alist): New variable.
16932 (x_destroy_bitmap): Returns void not int.
16933 (x_set_border_pixel): Returns void.
16934 (w32_load_bdf_font): New function.
16935 (w32_load_system_font): New function, was w32_load_font. List
16936 fonts before loading. Explicitly set encoding for SJIS fonts.
16937 Set default_ascent to 0 as comment indicates.
16938 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
16939 (w32_unload_font): Support BDF fonts.
16940 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
16941 Autodetect whether to use koi8-r instead of iso8859-5.
16942 Associate "ksc5601.1987" with HANGUEL_CHARSET.
16943 Associate "ksc5601.1992" with JOHAB_CHARSET.
16944 (x_to_w32_charset): Make consistent with w32_to_x_charset.
16945 (w32_to_x_font): Add resolution.
16946 (x_to_w32_font): Use font resolution to calculate height if supplied.
16947 (w32_font_match): Handle wildcards anywhere within field.
16948 (enumfont_t): Remove unused head pointer.
16949 (enum_font_cb2): Dereference elfLogFont.
16950 (w32_list_bdf_fonts): New function.
16951 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
16952 valid frame. Remove MessageBox. Support BDF fonts.
16953 (Fw32_find_bdf_fonts): New function.
16954 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
16955 Sw32_find_bdf_fonts.
16956
169571999-01-21 Andrew Innes <andrewi@gnu.org>
16958
16959 * makefile.nt (temacs): Use del to delete file, not rm.
16960
169611999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
16962
16963 * keyboard.c (read_key_sequence): Fix previous change.
16964
16965 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
16966 as the same. Treat "myname:0" as the same as those two.
16967
169681999-01-19 Jason Rumney <jasonr@altavista.net>
16969
16970 * w32fns.c (x_to_w32_charset): Add iso8859-9.
16971 (w32_to_x_charset): Fix charset mappings.
16972
16973 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
16974 (dumpglyphs): Move definitions out of block containing goto.
16975 Remove redundant code for BIG5.
16976 Use w32_codepage_for_font instead of
16977 w32_codepage_for_charset. Add cast to int where float
16978 operation is assigned to int.
16979 (Vw32_charset_to_codepage_alist): New variable.
16980 (w32_codepage_for_charset): Removed.
427ec082
SS
16981 (w32_codepage_for_font): New function, replacing
16982 w32_codepage_for_charset.
26901792
DL
16983 (syms_of_w32term): Add and initialize
16984 w32-charset-to-codepage-alist.
16985
169861999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
16987
16988 * xselect.c (x_handle_selection_clear): Don't clear the
16989 selection if Emacs still owns it through a different display.
16990
169911999-01-17 Andrew Innes <andrewi@gnu.org>
16992
16993 * w32proc.c: (w32_executable_type): Relax the check to identify
16994 cygwin-compiled applications, because the exact dll name varies
16995 with release. Now only require the name to start "cygwin".
16996
16997 * w32heap.h: (ROUND_UP):
16998 (ROUND_DOWN): New macros.
16999 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17000 (init_heap): New extern.
17001 (data_region_size):
17002 (recreate_heap):
17003 (read_in_bss):
17004 (map_in_heap):
17005 (round_to_next):
17006 (w32_fatal_reload_error):
17007 (get_section_size): Obsolete externs removed.
17008
17009 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
17010 current process.
17011 (round_to_next): Obsolete function removed.
17012 (preload_heap_section): New variable.
17013 (data_region_size): Obsolete variable removed.
17014 (allocate_heap): Modified to determine end of static heap section
17015 used during preload, and use that as initial base address for
17016 dynamic heap instead of hard-coded value.
17017 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
17018 calls to commit or decommit pages when allocating from static heap
17019 section during preload.
17020 (recreate_heap): Obsolete function removed.
17021 (init_heap): New function to initialize internal sbrk heap
17022 variables. Uses static heap section during preload, otherwise
17023 calls allocate_heap to reserve a heap region dynamically.
17024 (round_heap): Use ROUND_UP macro instead of round_to_next.
17025
17026 * unexw32.c: Major rewrite to support cleaner method of dumping; a
17027 static "bss" section is used for heap space during preload, and
17028 bss data is now written to the proper section area when dumping.
17029 (need_to_recreate_heap): Renamed to using_dynamic_heap.
17030 (heap_index_in_executable): Obsolete variable removed.
17031 (data_section): New variable.
17032 (data_start_va): Renamed to data_start.
17033 (data_start_file): Obsolete variable removed.
17034 (bss_section):
17035 (extra_bss_size):
17036 (bss_section_static):
17037 (bss_start_static):
17038 (bss_size_static):
17039 (extra_bss_size_static):
17040 (heap_section): New variables.
17041 (_start): Remove code based on old unexec method. Call init_heap
17042 to initialize sbrk heap.
17043 (close_file_data): Update size of file when closing, so that
17044 unexec doesn't have to work out exact size in advance.
17045 (get_bss_info_from_map_file):
17046 (get_section_size): Obsolete functions removed.
17047 (rva_to_section): Fix minor bug, and add a work-around for a bug
17048 in very old linkers.
17049 (offset_to_section):
17050 (relocate_offset): New functions.
17051 (OFFSET_TO_RVA):
17052 (RVA_TO_OFFSET):
17053 (RVA_TO_SECTION_OFFSET):
17054 (PTR_TO_RVA):
17055 (PTR_TO_OFFSET):
17056 (OFFSET_TO_PTR): New macros.
17057 (get_section_info): Modify to support new unexec method;
17058 determines address ranges in process that need dumping, and COFF
17059 sections where data will be dumped. Allows for static and global
17060 bss data to be in separate ranges. No longer relies on knowledge
17061 of section names.
17062 (copy_executable_and_dump_data_section): Renamed
17063 copy_executable_and_dump_data. Completely rewritten to copy
17064 executable section by section, so that raw data areas can be
17065 expanded to hold dumped data as necessary. Allows for bss data to
17066 be in same section as initialized data. Reduces size of static
17067 heap section to that used during preload.
17068 (dump_bss_and_heap):
17069 (w32_fatal_reload_error):
17070 (read_in_bss):
17071 (map_in_heap): Obsolete functions removed.
17072 (unexec): Rounds off preload heap to nearest page rather than
17073 virtual allocation unit. Modified to match other changes.
17074
17075 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
17076 data_region_size.
17077
17078 * makefile.nt: (TEMACS_TMP): New macro.
17079 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
17080 processor to add static heap section in support of new unexec.
17081
17082 * lastfile.c: Include config.h to pick up data layout pragmas.
17083 [WINDOWSNT]: Remove explicit pragma.
17084
170851999-01-12 Kenichi Handa <handa@etl.go.jp>
17086
17087 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
17088 correctly.
17089 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
17090
170911999-01-11 Dave Love <fx@gnu.org>
17092
17093 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17094
170951999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17096
17097 * keyboard.c (read_key_sequence): In key-translation-map and
17098 function-key-map, handle symbol with array as fn def.
17099 In function-key-map, handle symbol with keymap as fn def,
17100 and autoloaded definitions.
427ec082 17101
26901792
DL
17102 * puresize.h (BASE_PURESIZE): Increment to 500000.
17103
17104 * print.c (Qtemp_buffer_setup_hook): New variable.
17105 (syms_of_print): Init and staticpro that.
17106 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
17107
171081999-01-11 Kenichi Handa <handa@etl.go.jp>
17109
17110 * insdel.c (del_range_1): Call signal_after_change.
17111 (del_range_byte): Likewise.
17112 (del_range_both): Likewise.
17113 (del_range_2): Don't call signal_after_change.
17114
17115 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
17116 Lisp code here.
17117
171181999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
17119
17120 * eval.c (find_handler_clause): If SIG is nil (memory full error),
17121 never run the debugger, and don't bother checking the args
17122 to see whether the debugger should be run.
17123
171241999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
17125
17126 * keyboard.c (read_key_sequence):
17127 Tell get_keyelt to look handle autoloads.
17128 Handle symbols defined as keymaps, and autoloaded keymaps.
17129
171301999-01-06 Kenichi Handa <handa@etl.go.jp>
17131
17132 * search.c (search_buffer): Fix previous change.
17133
171341999-01-06 Eli Zaretskii <eliz@gnu.org>
17135
17136 * w16select.c (set_clipboard_data): Terminate the text with a null
17137 character. Don't allow to put binary data into the clipboard.
17138 Return zero in case of success, 1 or 2 otherwise.
17139 (get_clipboard_data): Only bail out if the null character is in
17140 the last 32-byte chunk of clipboard data
17141 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17142 they save binary data, print a message in the echo area saying the
17143 text was not put into the clipboard.
17144
17145 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17146
171471999-01-06 Andreas Schwab <schwab@gnu.org>
17148
17149 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17150 _BSD_SOURCE, the latter is always defined.
17151
171521999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17153
17154 * fns.c (Frequire): Don't fail to unbind bindings.
17155
171561999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17157
17158 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17159
17160 * charset.c (Ffind_charset_region): Fix doc typo.
17161
171621998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17163
17164 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17165 multibyte in unibyte buffers only.
17166
17167 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17168 and pass it to Fmake_sparse_keymap.
17169
171701998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17171
17172 * alloc.c (MMAP_MAX_AREAS): New macro.
17173 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17174 (init_alloc_once): Use that.
17175
17176 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17177
17178 * alloc.c (lisp_malloc, lisp_free): New functions.
17179 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17180 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17181 (n_interval_blocks, n_float_blocks): New variable.
17182 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17183 (n_marker_blocks, n_string_blocks): New variable.
17184 (init_intervals, make_interval): Set a count variable.
17185 Use lisp_malloc instead of setting allocating_for_lisp.
17186 (init_float, make_float, init_cons, Fcons): Likewise.
17187 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17188 (init_marker, allocate_misc, init_strings): Likewise.
17189 (make_uninit_multibyte_string): Likewise.
17190 (gc_sweep, compact_strings): Decrement the count variables.
17191
17192 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17193 into the old_..._hook variables.
17194
171951998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17196
17197 * keyboard.c: In each active map, for each menu bar item, use only
17198 the first submap.
17199 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17200 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17201 (syms_of_keyboard): Staticpro and init it.
17202
427ec082 17203 * xmenu.c (single_keymap_panes):
26901792
DL
17204
172051998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17206
17207 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17208 by complete_deferred_msg.
17209 (post_character_message): Cancel all deferred messages when
17210 quit_char is typed, in order to break out of potential deadlocks.
17211 (cancel_all_deferred_msgs): New function.
17212 (complete_deferred_msg): Don't abort if msg not found; may have
17213 been cancelled.
17214 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17215 (Fw32_send_sys_command): Wait for system command to
17216 complete before returning.
427ec082 17217
26901792
DL
17218 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17219 not set async_iconified flag though.
17220
17221 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17222 (create_child): Use it.
17223 (syms_of_ntproc): Defvar it. Also fix docstrings for
17224 w32-start-process-share-console and w32-start-process-show-window.
17225
17226 * unexw32.c (_start): Force system calls accessing unmounted
17227 devices to fail without prompting.
17228
172291998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17230
17231 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17232 even when starting the dumped Emacs.
17233
17234 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17235 (Fkey_description): Handle lists like vectors.
17236
172371998-12-21 Kenichi Handa <handa@etl.go.jp>
17238
17239 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17240 because of the change of the second argument of Fread_char.
17241
17242 * charset.c (Fcharset_after): Check range. If POS is out of
17243 range, return nil.
17244
17245 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17246
17247 * lread.c (Fread_char): Change the meaning of the second argument.
17248 (Fread_event): Likewise.
17249 (Fread_char_exclusive): Likewise.
17250
17251 * print.c (printchar): Fix previous change.
17252
17253 * process.c (read_process_output): Decide the multibyteness of
17254 string given to a process filter by a coding system used for
17255 decoding the process output.
17256
172571998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17258
17259 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17260 nonascii-translation-table.
17261 * msdos.c (IT_write_glyphs): Likewise.
17262 * fns.c (concat): Likewise.
17263 * charset.c (unibyte_char_to_multibyte): Likewise.
17264 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17265
172661998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17267
17268 * doc.c (Fdocumentation): Change the doc string for prefix
17269 commands to make it a complete sentence in one line.
17270
172711998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17272
17273 * s/irix6-5.h: New file.
17274 * s/irix6-0.h (IRIX6): Define this symbol.
17275 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17276 (bcopy, bcmp, bzero): Likewise.
17277 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17278 (C_SWITCH_MACHINE): New value for irix6.5.
17279
172801998-12-15 Richard Stallman <rms@gnu.org>
17281
17282 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17283 Do free malloc'd memory even in case of failure. Use xfree, not free.
17284 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17285 (base64_decode_1): Don't fail for short lines.
17286
17287 * print.c (printchar): Outputting multibyte characters
17288 to echo area always makes it multibyte.
17289
17290 * search.c (search_buffer): Don't use Boyer-Moore
17291 to search for an invalid multibyte code.
17292 In unibyte case, no need to check whether there are translations
17293 in more than one charset; just set charset_base to 0.
17294
172951998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17296
17297 * print.c (printchar): Cancel previous change.
17298
172991998-12-15 Kenichi Handa <handa@etl.go.jp>
17300
17301 * callproc.c: Include "ccl.h".
17302 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17303 bit in argument_coding.mode to tell encoding procedure to flush
17304 data. While encoding arguments, if argument_coding uses CCL
17305 program, initialize it again after encoding.
17306 (Fcall_process_region): Doc-string modified. Handle the case that
17307 NARGS is 3.
17308
17309 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17310 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17311 Set `ic' to the head of this command.
17312 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17313 code for an invalid code.
17314 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17315 based on VEC.
17316
17317 * charset.c (Qunknown): New variable.
17318 (init_charset_once): Intern and staticpro Qunknown. Initialize
17319 all elements of Vcharset_symbol_table to Qunknown.
17320 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17321 unibyte characters only. For an invalid composition sequence, set
17322 CHARSETS[1] to 1.
17323 (Ffind_charset_region): Call find_charset_in_str with an
17324 appropriate MULTIBYTE arg. If undefined charsets are found,
17325 include `unknown' is the return value.
17326 (Ffind_charset_string): Likewise.
17327 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17328 (str_cmpchar_id): Max composite character code should be less than
17329 GENERIC_COMPOSITION_CHAR.
17330
17331 * charset.h (find_charset_in_str): Update declaration.
17332
17333 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17334 final_char is invalid.
17335 (decode_coding): If coding->type is coding_type_ccl, call
17336 ccl_coding_driver even if SRC_BYTES is zero.
17337 (code_convert_region): Update `inserted' correctly after calling
17338 coding->post_read_conversion. Even after the code converter
17339 consumed all source text, call it once more if it is
17340 coding_type_ccl to flush out data.
17341
17342 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17343 CODING is handled by CCL program, call code_convert_region.
17344
17345 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17346 correctly.
17347 (string_byte_to_char): Likesize.
17348
17349 * print.c (printchar): When outputting a multibyte character to
17350 echo area, always set message_enable_multibyte to 1.
17351
17352 * process.c (read_process_output): If NBYTES is zero and
17353 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17354 and try decoding again.
17355 (Fprocess_send_eof): If the coding system of PROCESS
17356 requires flushing, call send_process with null-string at first.
17357
17358 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17359 with MULTIBYTE arg 0.
17360 * w32select.c (Fw32_set_clipboard_data): Likewise.
17361 * xselect.c (lisp_data_to_selection_data): Likewise.
17362
173631998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17364
17365 * search.c (Freplace_match): Set OPOINT clearly for the case
17366 where point is in the middle of the text to be replaced.
17367
17368 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17369 if compute_motion fails to advance at all, don't back it up.
17370
173711998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17372
17373 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17374
427ec082 17375 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17376
173771998-12-09 Richard Stallman <rms@gnu.org>
17378
17379 * insdel.c (insert_from_buffer_1): Properly count the size
17380 of output from conversion to multibyte even when input
17381 is split across the gap.
17382
173831998-12-09 Karl Heuer <kwzh@gnu.org>
17384
17385 * keyboard.c: Doc fixes.
17386
17387 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17388
173891998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17390
17391 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17392 characters, only convert CRLF to LF.
17393
173941998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17395
17396 * makefile.nt: Do string comparision of _NMAKE_VER.
17397
173981998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17399
17400 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17401 coding.h, and disptab.h
17402
17403 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17404 (syms_of_msdos): DEFVAR_LISP it.
17405 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17406 (internal_terminal_init): Set up insert_glyphs_hook and
17407 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17408 (unibyte_display_via_language_environment): New variable.
17409 (syms_of_msdos): Devfar it.
17410 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17411 Encode the character codes of the glyphs according to the
17412 terminal_coding in effect.
17413
174141998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17415
17416 * fns.c (Fstring_as_unibyte): Doc fix.
17417
174181998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17419
17420 * charset.h: Declare char_valid_p.
17421
174221998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17423
17424 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17425
17426 * msdos.c (init_environment): Record the time we started up.
17427 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17428 fast after startup (aka crash).
17429
174301998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17431
17432 * w32.c (check_windows_init_file): Use decode_env_path when
17433 using EMACSLOADPATH.
17434
174351998-12-02 Jason Rumney <jasonr@altavista.net>
17436
17437 * w32term.c (dumpglyphs): Use unsigned char arrays.
17438 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17439 for various languages.
17440 Compensate for fonts that have underhangs (e.g., Thai).
17441
17442 * w32term.h (FONT_MAX_WIDTH): New macro.
17443
174441998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17445
17446 * keyboard.c (Qlanguage_change): New variable.
17447 (syms_of_keyboard): Init it.
17448 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17449 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17450 keys; add name for Escape key; extend to 256 elements.
17451 (parse_modifiers): Make non-static.
17452
17453 * keyboard.h (parse_modifiers): Declare prototype.
17454
17455 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17456
17457 * w32fns.c (w32_last_error): Fix cut+paste error.
17458 (Vw32_phantom_key_code): New variable.
17459 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17460 (syms_of_w32fns): Init and register them.
17461 (reset_modifiers): Use a more precise test for whether Emacs has
17462 keyboard focus. Synchronize state of all keys that can be used as
17463 modifiers, to overcome problems arising from hot-keys.
17464 (w32_key_to_modifier): Be careful not to call intern() to avoid
17465 requiring thread synchronization.
17466 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17467 (w32_wnd_proc): Ensure lock key indicator lights are updated
17468 promptly on Windows 9x, by passing key events on to the system.
17469 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17470 responding to Windows key events when not wanted.
17471 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17472 Ctrl-NumLock into pause by the system.
17473 (w32_wnd_proc): Don't translate key combinations containing any
17474 modifiers other than shift (and capslock).
17475 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17476 can't determine the key states until we have keyboard focus).
17477 (Fw32_toggle_lock_key): New function.
17478 (syms_of_w32fns): Defsubr it.
17479
17480 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17481 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17482 (w32_console_toggle_lock_key): New function.
17483
17484 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17485
174861998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17487
17488 * search.c (Freplace_match): Set OPOINT clearly for the case
17489 where point is in the middle of the text to be replaced.
17490
17491 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17492 if compute_motion fails to advance at all, don't back it up.
17493
174941998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17495
17496 * xfns.c (Qouter_window_id): New variable.
17497 (syms_of_xfns): Initialize it.
17498 (x_report_frame_params): Set up outer-window-id parameter.
17499
17500 * keymap.c (Fsingle_key_description): Fix previous change.
17501
175021998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17503
17504 * lisp.h (Frequire): Update declaration.
17505
175061998-11-26 Kenichi Handa <handa@etl.go.jp>
17507
17508 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17509 if the charset is ascii.
17510 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17511
17512 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17513 make an appropriate one byte string.
17514 (char_bytes): Handle the case that C is a single byte char or has
17515 modifier bits.
17516
17517 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17518
17519 * cmds.c (internal_self_insert): If C has modifier bits, insert
17520 appropriate one byte char.
17521
175221998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17523
17524 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17525 Clear text properties in the new string.
17526
175271998-11-24 Felix Lee <flee@cygnus.com>
17528
17529 * process.c (read_process_output): Call signal_after_change.
17530
175311998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17532
17533 * buffer.c (syms_of_buffer): Doc fix.
17534
17535 * keyboard.c (syms_of_keyboard): Doc fix.
17536
175371998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17538
17539 * frame.c (Fset_mouse_position): Doc fix.
17540
175411998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17542
17543 * keymap.c (Fmake_keymap): Doc fix.
17544
175451998-11-17 Kenichi Handa <handa@etl.go.jp>
17546
17547 * category.c (word_boundary_p): If C1 or C2 are composite
17548 characters, test their first components.
17549
175501998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17551
17552 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17553 don't do save-excursion, just restore selected window.
17554
17555 * window.c (window_loop): For UNSHOW_BUFFER,
17556 always do consider minibuffer windows.
427ec082 17557
26901792
DL
175581998-11-16 Kenichi Handa <handa@etl.go.jp>
17559
17560 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17561
17562 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17563
17564 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17565
17566 * s/bsdos4.h: New file.
17567
175681998-11-16 Kenichi Handa <handa@etl.go.jp>
17569
17570 * Makefile.in (abbrev.o): Depend on charset.h
17571 (bytecode.o): Depend on charset.h.
17572
17573 * bytecode.c: Include charset.h.
17574
17575 * abbrev.c: Include charset.h.
17576
17577 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17578 the first component.
17579
175801998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17581
17582 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17583
175841998-11-11 Richard Stallman <rms@gnu.org>
17585
17586 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17587
17588 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17589
17590 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17591 (INTERRUPT_INPUT): #define commented out.
17592
17593 * m/aviion-intel.h: New file.
17594
175951998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17596
17597 * fns.c (MAX_ALLOCA): New macro.
17598 (Fbase64_encode_region, Fbase64_encode_string,
17599 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17600 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17601
176021998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17603
17604 * insdel.c (byte_combining_error): Error message improved.
17605
17606 * charset.c (char_valid_p): Handle a composite character correctly.
17607
176081998-11-11 Kenichi Handa <handa@etl.go.jp>
17609
17610 * charset.c (str_cmpchar_id): Check the byte sequence for
17611 composition more rigidly.
17612 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17613 contains an invalid multibyte sequence.
17614
17615 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17616
176171998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17618
17619 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17620 (WM_EMACS_SETKEYBOARDLAYOUT):
17621 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17622 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17623 (LEFT_WIN_PRESSED):
17624 (RIGHT_WIN_PRESSED):
26901792
DL
17625 (APPS_PRESSED): New console keyboard modifier flags.
17626
17627 * w32term.c (convert_to_key_event): Removed.
17628 (is_dead_key): Copied to w32fns.c.
17629 (w32_read_socket): Generate language_change_event. Modify to work
17630 with keyboard handling changes in w32_wnd_proc.
17631
17632 * w32proc.c (sys_kill): Set extended key flag when faking
17633 Ctrl-Break keystrokes.
17634 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17635 arbitrary locale property using a numerical index.
17636 (Vw32_valid_codepages): New variable.
427ec082
SS
17637 (enum_codepage_fn):
17638 (Fw32_get_valid_codepages):
17639 (Fw32_get_console_codepage):
17640 (Fw32_set_console_codepage):
17641 (Fw32_get_console_output_codepage):
17642 (Fw32_set_console_output_codepage):
17643 (Fw32_get_codepage_charset):
17644 (Fw32_get_valid_keyboard_layouts):
17645 (Fw32_get_keyboard_layout):
26901792
DL
17646 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17647 handling functions.
17648 (syms_of_ntproc): Register them.
17649
17650 * w32inevt.c: Include w32term.h and w32heap.h.
17651 (map_keypad_keys):
17652 (Vw32_enable_caps_lock):
17653 (Vw32_enable_num_lock):
17654 (Vw32_pass_lwindow_to_system):
17655 (Vw32_pass_rwindow_to_system):
17656 (Vw32_lwindow_modifier):
17657 (Vw32_rwindow_modifier):
17658 (Vw32_apps_modifier):
17659 (Vw32_scroll_lock_modifier):
17660 (w32_key_to_modifier): Add externs.
17661 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17662 Scroll Lock as potential modifiers; exclude numpad keys from
17663 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
17664 code.
17665 (is_dead_key): Copy from w32fns.c.
17666 (w32_kbd_patch_key): Comment attempt to improve handling of
17667 dead-keys, and system bug relating to same on Windows NT. Work
17668 around the bug by calling ToUnicode and then converting to the
17669 correct codepage.
17670 (map_virt_key): Removed obsolete variable.
17671 (lispy_function_keys): Add extern.
17672 (key_event): Major rework of keyboard input handling: optionally
17673 recognize Windows keys and Apps key as modifiers; optionally treat
17674 NumLock, CapsLock and ScrollLock as function keys; let system
17675 translate keystrokes to characters to avoid system bugs relating
17676 to dead-key handling; preserve shift distinction for control
17677 characters. Remove some obsolete code.
17678
17679 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
17680 and w32heap.h.
17681
17682 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
17683 (Vw32_pass_lwindow_to_system):
17684 (Vw32_pass_rwindow_to_system):
17685 (Vw32_lwindow_modifier):
17686 (Vw32_rwindow_modifier):
17687 (Vw32_apps_modifier):
17688 (Vw32_enable_num_lock):
17689 (Vw32_enable_caps_lock):
17690 (Vw32_scroll_lock_modifier): New variables.
17691 (modifier_set): Return toggle state for Scroll Lock.
17692 (w32_key_to_modifier): New function. Returns chosen modifier bit
17693 for given key.
17694 (w32_get_modifiers): Returns modifier flags for
17695 non-keyboard input events.
17696 (construct_console_modifiers): Renamed from construct_modifiers;
17697 recognize Windows and Apps keys as modifiers.
17698 (w32_get_key_modifiers): New function. Returns modifier flags for
17699 keyboard input events.
17700 (map_keypad_keys): Make non-static. Use second arg as extended
17701 flag.
17702 (w32_grabbed_keys): New variable.
17703 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
17704 (register_hot_keys):
17705 (unregister_hot_keys):
17706 (lookup_vk_code):
17707 (w32_parse_hot_key):
17708 (Fw32_register_hot_key):
17709 (Fw32_unregister_hot_key):
17710 (Fw32_registered_hot_keys):
17711 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
17712 (post_character_message): New function.
17713 (w32_msg_pump): Handle new messages for using hotkeys and changing
17714 keyboard layout/language.
17715 (w32_wnd_proc): Major rework of keyboard input handling:
17716 optionally recognize Windows keys and Apps key as modifiers;
17717 optionally treat NumLock, CapsLock and ScrollLock as function
17718 keys; let system translate keystrokes to characters to avoid
17719 system bugs relating to dead-key handling; preserve shift
17720 distinction for control characters; forward keyboard
17721 layout/language changes to lisp; detect and convert hot-key events
17722 to normal keystrokes.
17723 (syms_of_w32fns): Register new functions and variables.
17724 (w32_last_error): New function for use in debugging.
17725
177261998-11-10 Kenichi Handa <handa@etl.go.jp>
17727
17728 * category.h (CATEGORY_SET): Adjusted for the change of
17729 cmpchar_component.
17730 (CATEGORY_SET): Likewise.
17731
17732 * charset.c (cmpchar_component): New arg NOERROR. Check
17733 composition char ID more strictly.
17734 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
17735 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
17736 return 255.
17737 (Fcompose_string): Signal error if STR contains a rule-based
17738 composition character.
17739
17740 * charset.h (cmpchar_component): Proto-type adjusted.
17741
177421998-11-09 Kenichi Handa <handa@etl.go.jp>
17743
17744 * charset.c (string_to_non_ascii_char): Return correct length for
17745 a charset of dimension 2 and composition character.
17746
177471998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17748
17749 * keymap.c (Fsingle_key_description): Handle generic characters.
17750
17751 * process.c (Fprocess_status): Doc fix.
17752
177531998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
17754
17755 * charset.c (init_charset_once): Fix previous change.
17756
177571998-11-06 Kenichi Handa <handa@etl.go.jp>
17758
17759 * charset.c (string_to_non_ascii_char): Fix previous change.
17760 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
17761
17762 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
17763 character correctly.
17764 (STRING_CHAR): Handle an invalid charater correctly.
17765
177661998-11-05 Kenichi Handa <handa@etl.go.jp>
17767
17768 * charset.c (string_to_non_ascii_char): Fix previous change.
17769
17770 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
17771
17772 * editfns.c (Fstring_to_char): Don't return a multibyte character
17773 if STRING is a unibyte string.
17774
17775 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
17776 character.
17777
17778 * xdisp.c (display_text_line): Check validity of a multibyte character.
17779 (display_string): Likewise. Handle an invalid character correctly.
17780
177811998-11-05 Karl Heuer <kwzh@gnu.org>
17782
17783 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
17784 If nothing to do, return immediately.
17785 (syms_of_insdel): Initialize combine_after_change_buffer.
17786
177871998-11-05 Richard Stallman <rms@gnu.org>
17788
17789 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
17790
177911998-11-04 Geoff Voelker <voelker@cs.washington.edu>
17792
17793 * w32term.c (w32_enable_unicode_output): Rename from
17794 w32_no_unicode_output.
17795 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
17796 and new semantics.
17797
177981998-11-04 Jason Rumney <jasonr@altavista.net>
17799
17800 * w32fns.c (w32_list_fonts): Report an error if a frame has not
17801 been created yet.
17802
17803 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
17804
178051998-11-04 Kenichi Handa <handa@etl.go.jp>
17806
17807 * charset.c (string_to_non_ascii_char): Change the check for the
17808 varidity of multibyte form.
17809 (update_charset_table): Check validity of BYTES. Don't set
17810 bytes_by_char_head here.
17811 (init_charset_once): Set bytes_by_char_head completely.
17812
17813 * frame.c (do_switch_frame): Cancel previous change.
17814
17815 * print.c (print_string): Check validity of a character.
17816 (print): Likewise.
17817
17818 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
17819
17820 * m/ews4800.h, s/ux4800.h: New files.
17821
178221998-11-03 Theodore Jump <tjump@tertius.com>
17823
17824 * makefile.nt: Compile multiple source files when possible.
17825
17826 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 17827
26901792
DL
178281998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
17829
17830 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
17831 so don't rely on it succeeding.
17832
17833 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
17834 LOGFONT struct if x font doesn't specify the charset.
17835 (x_to_w32_charset): Change >= to == when testing results of
17836 stricmp.
17837
178381998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
17839
17840 * fns.c (Frequire): New arg NOERROR.
17841
178421998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
17843
17844 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
17845
178461998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
17847
17848 * xfaces.c (Qmouse_face): Replace definition with extern decl.
17849 (syms_of_xfaces): Initialization deleted.
17850
17851 * textprop.c (Qmouse_face): Variable definition moved here.
17852 (syms_of_textprop): Initialize it.
17853
17854 * data.c (set_internal): For built-in maybe-local vars,
17855 when BINDFLAG is set, do not mark them as local.
17856
178571998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
17858
17859 * insdel.c (replace_range): Fix previous change.
17860
178611998-10-31 Kenichi Handa <handa@etl.go.jp>
17862
17863 * editfns.c (Fsubst_char_in_region): Fix previous change.
17864 (Ftranslate_region): Fix previous change.
17865
17866 * fns.c (Fbase64_decode_region): Fix previous change.
17867
17868 * frame.c (do_switch_frame): Update minibuf_window if necessary.
17869
17870 * insdel.c (byte_combining_error): New function.
17871 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
17872 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
17873 CHECK_BYTE_COMBINING_FOR_INSERT.
17874 (insert_from_buffer_1): Likewise.
17875 (adjust_after_replace): Check the posibility of inhibitted byte
17876 combining correctly.
17877 (replace_range): Before signaling an error for inhibitted byte
17878 combining, recover the buffer in a safe state.
17879 (del_range_2): Check the posibility of inhibitted byte combining
17880 correctly.
17881
178821998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
17883
17884 * xselect.c (Vselection_coding_system): Doc fix.
17885
17886 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
17887 when we have both char and byte position. Fix type clashes.
17888
17889 * eval.c (Fsignal): Use a separate format string when passing
17890 error message string to fatal, in case it contains %'s.
17891
17892 * editfns.c (Fchar_after): Fix type clashes.
17893
17894 * charset.c (Fchar_bytes): Doc fix.
17895 (char_bytes): Fix returned value to match returned type.
17896 (syms_of_charset): Fix type clash in initialisation of
17897 Vauto_fill_chars.
17898
178991998-10-29 Geoff Voelker <voelker@cs.washington.edu>
17900
17901 * w32console.c (initialize_w32_display): Use buffer coords
17902 instead of buffer size (which may be larger than the window).
17903
17904 * fileio.c (init_fileio_once): New function.
17905
17906 * emacs.c (main): Invoke init_fileio_once.
17907
179081998-10-28 Paul Eggert <eggert@twinsun.com>
17909
17910 * xterm.c (XTread_socket): Check the returned value of
17911 XmbLookupString more carefully.
17912
179131998-10-28 Kenichi Handa <handa@etl.go.jp>
17914
17915 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
17916 (DECODE_CHARACTER_DIMENSION1): Likewise.
17917 (DECODE_CHARACTER_DIMENSION2): Likewise.
17918 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
17919
17920 * editfns.c (Fsubst_char_in_region): Fix previous change.
17921 (Ftranslate_region): Fix previous change.
17922
17923 * insdel.c (check_markers): Check if markers are at character boundry.
17924 (adjust_markers_for_insert): Fix previous change.
17925 (count_combining_before): Don't limit the check at BEGV.
17926 (count_combining_after): Don't limit the check at ZV.
17927 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
17928 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
17929 (insert_from_string_1): Likewise.
17930 (insert_from_buffer_1): Likewise.
17931 (adjust_after_replace): Inhibit bytes combined across region
17932 boundary. Update end_unchanged correctly.
17933 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
17934 end_unchanged correctly.
17935 (del_range_2): Inhibit bytes combined across region boundary.
17936 Update end_unchanged correctly.
17937
179381998-10-27 Geoff Voelker <voelker@cs.washington.edu>
17939
17940 * w32.c (check_windows_init_file): Also look in load path specified
17941 in environment.
17942
17943 * w32console.c (Fset_message_beep): Recognize 'silent.
17944 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 17945
26901792
DL
17946 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
17947
17948 * w32select.c (Vnext_selection_coding_system): New variable.
17949 (syms_of_w32select): DEFVAR_LISP it.
17950 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
17951 non-nil. Always convert multibyte strings.
17952 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
17953 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 17954
26901792
DL
179551998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
17956
17957 * fns.c (Fbase64_decode_string): Doc fix.
17958 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
17959 Likewise.
17960
179611998-10-27 Dave Love <fx@gnu.org>
17962
17963 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
17964 newline in doc string.
17965
179661998-10-27 Kenichi Handa <handa@etl.go.jp>
17967
17968 * editfns.c (Fsubst_char_in_region): Correctly handle the case
17969 that byte combining before happens.
17970 (Ftranslate_region): Likewise.
17971
17972 * insdel.c (adjust_after_replace): Correctly handle the case that
17973 both byte combining before and byte combining after happen.
17974 (replace_range): Likewise.
17975
179761998-10-26 Kenichi Handa <handa@etl.go.jp>
17977
17978 * category.c (syms_of_category): Doc-string modified.
17979
17980 * coding.c (code_convert_region): Kill the work buffer created by
17981 pre-write-conversion.
17982
179831998-10-25 Jason Rumney <jasonr@altavista.net>
17984
17985 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
17986
179871998-10-23 Kenichi Handa <handa@etl.go.jp>
17988
17989 * coding.c (code_convert_region): While preserving the orignal
17990 point, pay attention to the byte combining problem.
17991
17992 * fns.c (Fbase64_decode_region): Pay attention to the byte
17993 combining problem.
17994
17995 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
17996 combined_before_bytes and combined_after_bytes into account.
17997 (count_combining_after): Handle the case that LENGTH is zero.
17998 (adjust_after_replace): Record deletion at correct buffer
17999 position. Handle the case that LEN is zero.
18000 (replace_range): Record deletion at correct buffer position.
18001 (del_range_2): Call adjust_makers_for_replace to adjust makers for
18002 combined bytes.
18003
180041998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
18005
18006 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 18007
26901792
DL
180081998-10-21 Kenichi Handa <handa@etl.go.jp>
18009
18010 * coding.c (setup_coding_system): Fix setting up
18011 coding->spec.ccl.valid_codes for CCL based coding system.
18012 (code_convert_region): Set point to FROM before inserting the
18013 result of pre-write-funciton. Preserve original point.
18014 (code_convert_string): If coding->type is coding_type_ccl, do
18015 conversion even if the length of conversion region is zero.
18016
18017 * fontset.c: Include frame.h before fontset.h.
427ec082 18018 (list_fonts_func): Fix prototype.
26901792
DL
18019
18020 * frame.c: Include frame.h before fontset.h.
18021
18022 * xterm.c: Likewise.
18023
180241998-10-21 Jason Rumney <jasonr@altavista.net>
18025
18026 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
18027 general macros. Don't call x_list_font directory, instead call a
18028 function set in list_fonts_func.
18029
18030 * fontset.h (list_fonts_func): Fix prototype.
18031
180321998-10-20 Jason Rumney <jasonr@altavista.net>
18033
18034 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
18035
18036 * w32faces.c: Update comments referring to obsolete structs.
18037 (allocate_face, copy_face, face_eql, load_font,
18038 Fpixmap_spec_p, free_frame_faces, new_computed_face,
18039 frame_update_line_height, merge_faces, compute_base_face,
18040 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
18041
18042 * w32fns.c: (Vx_pixel_size_width): New global variable.
18043 (unibyte_display_via_language_environment): New global variable.
18044 (x_set_font): Add support for setting fontsets.
18045 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
18046 font names to match xlfd-tight-regexp.
18047 (w32_load_font): Rewrite based on x_load_font.
18048 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
18049 `iso8859-1' rather than `ansi'.
18050 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
18051 end. Move charset into `charset registry' field.
18052 (enum_font_cb2): Check charsets match. Include width in font list.
18053 (w32_list_fonts): Rewrite based on x_list_fonts.
18054 Moved from w32term.c to have access to enumfont_t struct.
18055 (Fx_list_fonts): w32 specific version eliminated. Include
18056 `x-list-fonts.c'.
18057 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
18058 functions for fontset support - adapted from x_ equivalents.
18059 (syms_of_w32fns): New lisp variables initialised. Function
18060 pointers for fontset.c set up.
18061
427ec082 18062 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
18063 Add ENCODE_BIG5 macro from coding.c.
18064 (w32_no_unicode_output): New variable.
18065 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
18066 functions.
18067 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
18068 (dumpglyphs): Rewrite based on xterm.c equivalent.
18069 (x_new_font): Use functionality provided in fontset.c.
18070 (x_new_fontset): New function based on the one in xterm.c.
18071 (syms_of_w32term): Add w32-no-unicode-output flag.
18072
427ec082 18073 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
18074 (Vx_pixel_size_width_font_regexp,
18075 unibyte_display_via_language_environment): Declare variables.
427ec082 18076 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
18077 Declare functions.
18078 (w32_output): New fields font_baseline and fontset.
18079 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
18080
18081 * w32xfns.c: Include charset.h and fontset.h.
18082
180831998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18084
18085 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
18086
180871998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
18088
18089 * msdos.c (mouse_init): Reset the button press/release info of the
18090 mouse driver.
18091 (mouse_preempted): New variable.
18092 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
18093 (XMenuActivate): Preempt the mouse during menu-handling loop.
18094 Release the current time slice while idling in the menu-handling
18095 loop. Leave the loop only if the user pressed, then released the
18096 same button. Discard all mouse events that are pending in the
18097 event queue before exiting.
18098
180991998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
18100
18101 * editfns.c (Fformat): Increase buffer size for floating format.
18102
181031998-10-17 Kenichi Handa <handa@etl.go.jp>
18104
18105 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
18106 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
18107 Declare auto-fill-chars as a Lisp variable and initialize it.
18108
18109 * charset.h (Vauto_fill_chars): Extern it.
18110
18111 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
18112
181131998-10-16 Kenichi Handa <handa@etl.go.jp>
18114
18115 * casefiddle.c (casify_object): Use make_string instead of
18116 make_specified_string to cope with byte-combining situation.
18117
18118 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
18119 1 when encountered with a code of the range 0x80..0x9F.
18120
181211998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
18122
18123 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
18124 trying $TMP and $TEMP, since the former is always set in msdos.c.
18125 (Fcall_process_region) [DOS_NT]: When looking for a place to put
18126 the temporary files, check $TMPDIR as well.
18127
181281998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18129
427ec082 18130 * process.c (exec_sentinel, read_process_output):
26901792
DL
18131 Restore waiting_for_user_input_p after running Lisp code.
18132
18133 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18134 (command_loop): Likewise.
18135
181361998-10-14 Kenichi HANDA <handa@etl.go.jp>
18137
18138 * data.c (Faset): Fix previous change.
18139
18140 * fns.c (Ffillarray): Fix previous change.
18141
18142 * insdel.c (adjust_markers_for_combining): This function deleted.
18143 (adjust_markers_for_replace): Correctly adjust marker positions.
18144 Don't record these adjustment because they were recorded already.
18145 (combine_bytes): Don't adjust markers here.
18146
181471998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18148
18149 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18150
181511998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18152
18153 * keyboard.c (Fclear_this_command_keys): New function.
18154 (syms_of_keyboard): defsubr it.
18155
18156 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18157
181581998-10-12 Kenichi Handa <handa@etl.go.jp>
18159
18160 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18161
18162 * charset.c (Fstring): Call make_string instead of
18163 make_string_from_bytes.
18164 (Ffind_charset_region): Include `composition' in the returned list
18165 if the region contains any composite characters.
18166 (Ffind_charset_string): Include `composition' in the returned list
18167 if the string contains any composite characters.
18168 (find_charset_in_str): Handle CMPCHARP arg correctly.
18169
18170 * coding.c (shrink_decoding_region): If a charset other than ascii
18171 is initially designated to G0, don't shrink the region.
18172 (shrink_encoding_region): Likewise.
18173
18174 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18175 byte-combining situation.
18176
18177 * fns.c (clear_string_char_byte_cache): New function.
18178 (Ffillarray): Handle multibyte string correctly.
18179
18180 * lisp.h (clear_string_char_byte_cache): Extern it.
18181
18182 * xselect.c (lisp_data_to_selection_data): Call
18183 find_charset_in_str with CMPCHARP arg 0.
18184 * w16select.c (Fw16_set_clipboard_data): Likewise.
18185 * w32select.c (Fw32_set_clipboard_data): Likewise.
18186
181871998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18188
18189 * keyboard.c (parse_menu_item): For top level of menu bar,
18190 accept ordinary commands, and treat them just like a keymap.
18191
181921998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18193
18194 * xdisp.c (redisplay_window): Clear w->window_end_valid
18195 before running the window-scroll-functions hook, if appropriate.
18196
181971998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18198
18199 * data.c (Fstring_to_number): Don't recognize floating point
18200 if base is not 10.
18201
18202 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18203 (check_all_windows): New function for debugging tests.
18204 (syms_of_window): Initialize it.
18205
18206 * window.c (Qwindow_configuration_p): New variable.
18207 (Fwindow_configuration_frame): New function.
18208 (syms_of_window): defsubr it.
18209 (Fset_window_configuration): Return t if frame is live.
18210 Use Qwindow_configuration_p.
18211
18212 * xfns.c (check_x_display_info): Don't use selected_frame
18213 if it is dead.
18214
182151998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18216
18217 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18218
182191998-10-08 Kenichi Handa <handa@etl.go.jp>
18220
18221 * buffer.h (inhibit_modification_hooks): Extern it.
18222
18223 * buffer.c (inhibit_modification_hooks): New variable.
18224 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18225
18226 * charset.c (invalid_character): Prepend `0' to octal
18227 representation. Give error sufficient args.
18228
18229 * coding.c (code_convert_region): Set inhibit_modification_hooks
18230 to 1 before calling Fset_text_properties.
18231
18232 * insdel.c (signal_before_change): If inhibit_modification_hooks
18233 is nonzero, do nothing.
18234 (signal_after_change): Likewise.
18235
182361998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18237
18238 * process.c: Doc fixes.
18239
182401998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18241
18242 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18243
182441998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18245
18246 * w32.c (init_ntproc): Check for Windows init file.
18247 (term_ntproc): Do not check for it here.
18248
182491998-09-28 Kenichi Handa <handa@etl.go.jp>
18250
18251 * coding.c (check_composing_code): Fix previous change. Now it
18252 alwasy returns 0 or -1.
18253 (decode_coding_iso2022): Adjusted for the above change.
18254 (encode_coding_iso2022): When encoding the last block, flush out
18255 tailing garbage bytes.
18256 (setup_coding_system): Delete unnecessary code.
18257 (shrink_decoding_region): Check translation table. If ASCII
18258 should be translated, give up shrinking.
18259 (shrink_encoding_region): Likewise.
18260 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18261 (SHRINK_CONVERSION_REGION): New macro.
18262 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18263 properties here.
18264 (code_convert_region): In the case of encoding, always calulate
18265 correct character number.
18266 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18267 (code_convert_region1): Don't delete text properties here.
18268
18269 * insdel.c (adjust_after_replace): Don't delete text properties here.
18270
18271 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18272
182731998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18274
18275 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18276
182771998-09-26 Kenichi Handa <handa@etl.go.jp>
18278
18279 * coding.h (struct coding_system): New member composed_chars.
18280
18281 * coding.c (check_composing_code): If the current composing
18282 sequence doesn't end properly, return -1.
18283 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18284 (DECODE_CHARACTER_DIMENSION1): Likewise.
18285 (decode_coding_iso2022): Check validity of a composing sequence.
18286 (code_convert_string): If the length of text to be converted is
18287 shrunk to zero, don't perform code conversion.
18288 (shrink_decoding_region): Fix previous change.
18289
18290 * editfns.c (Fformat): Check format control characters.
18291
182921998-09-25 Kenichi Handa <handa@etl.go.jp>
18293
18294 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18295 single CR code correctly.
18296 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18297 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18298
182991998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18300
18301 * w32fns.c (w32_color_map_lookup): New function.
18302 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18303
183041998-09-22 Kenichi Handa <handa@etl.go.jp>
18305
18306 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18307
18308 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18309 strings unibyte.
18310 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18311
183121998-09-22 Kenichi Handa <handa@etl.go.jp>
18313
18314 * callint.c (Fcall_interactively): Don't use input method when
18315 reading a character in the case of `c' code letter.
18316
183171998-09-21 Dave Love <fx@gnu.org>
18318
18319 * editfns.c (Fsave_restriction): Doc fix.
18320
183211998-09-21 Richard Stallman <rms@gnu.org>
18322
18323 * lread.c (build_load_history): Do add to Vload_history
18324 even when dumping Emacs.
18325
183261998-09-18 Kenichi Handa <handa@etl.go.jp>
18327
18328 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18329 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18330 cause error if the program is going to output some bytes. When
18331 outputing a string to notify an error, check the case that
18332 DST_BYTES is zero.
18333
427ec082 18334 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18335
18336 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18337 user or the CCL program executed an invalid command, return
18338 CODING_FINISH_INTERRUPT.
18339 (code_convert_region): Pay attention to the converters return
18340 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18341
183421998-09-16 Kenichi Handa <handa@etl.go.jp>
18343
18344 * coding.c (code_convert_region): Update beg_unchanged and
18345 end_unchanged after we delete the source text.
18346
18347 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18348 position if it is FROM.
18349 (adjust_markers_for_combining): New function.
18350 (combine_bytes): Call adjust_markers_for_combining instead of
18351 adjust_markers_for_replace.
18352 (adjust_after_replace): Record deletion of combining after bytes
18353 with the correct position.
18354 (replace_range): Likewise. Record the actual deletion after
18355 recoding deletions of combining bytes.
18356
18357 * xdisp.c (message_log_check_duplicate): Count byte length of the
18358 latest message correctly.
18359
183601998-09-12 Richard Stallman <rms@gnu.org>
18361
18362 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18363 instead of SET_PT_BOTH.
18364 (try_window_id, display_text_line): Likewise.
18365
183661998-09-12 Karl Heuer <kwzh@gnu.org>
18367
18368 * data.c (Fmake_local_variable): Doc fix.
18369
183701998-09-10 Dave Love <fx@gnu.org>
18371
18372 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18373
183741998-09-10 Richard Stallman <rms@gnu.org>
18375
18376 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18377 (bcopy, bcmp, bzero): Add #undef.
18378
18379 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18380 first exit if selected frame is dead (no live frames remain).
18381 (read_key_sequence): Likewise.
18382
183831998-09-10 Karl Heuer <kwzh@gnu.org>
18384
18385 * emacs.c (main): Mention --display and --eval in help.
18386
183871998-09-07 Paul Eggert <eggert@twinsun.com>
18388
18389 * editfns.c (emacs_memftime): New function.
18390 (Fformat_time_string): Use it to handle null bytes in formats
18391 correctly.
18392
183931998-09-08 Kenichi Handa <handa@etl.go.jp>
18394
18395 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18396 (Ffind_charset_string): For unibyte string, return (ascii).
18397
18398 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18399 arg MARKERS 1.
18400
18401 * insdel.c (adjust_after_replace): Don't add combining bytes to
18402 the args given to adjust_point. Handle correctly the case that
18403 there are both before and after combining bytes.
18404 (replace_range): Likewise.
18405
184061998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18407
18408 * fns.c (base64_decode_1, base64_encode_1): New functions.
18409 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18410 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18411
184121998-09-07 Karl Heuer <kwzh@gnu.org>
18413
18414 * eval.c (error): After enlarging buffer, write to it, not to buf.
18415
18416 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18417
184181998-09-07 Kenichi Handa <handa@etl.go.jp>
18419
18420 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18421 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18422 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18423
18424 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18425 chars in produced byte sequence.
18426 (Ffind_operation_coding_system): Doc-string fixed.
18427
18428 * insdel.c (count_combining_after): Check also preceding bytes at
18429 POS if all characters in STRING are not character head.
18430
184311998-09-06 Paul Eggert <eggert@twinsun.com>
18432
18433 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18434 Don't assume that localtime and gmtime return non-NULL.
18435
184361998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18437
18438 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18439 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18440 New functions.
18441
184421998-09-06 Richard Stallman <rms@gnu.org>
18443
18444 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18445
18446 * lread.c (Fload): Handle case where openp finds a magic file
18447 but it has no `load' handler or that handler calls `load'.
18448 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18449
184501998-09-04 Dave Love <fx@gnu.org>
18451
18452 * buffer.c (enable-multibyte-characters): Doc fix.
18453
184541998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18455
18456 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18457
184581998-09-01 Kenichi Handa <handa@etl.go.jp>
18459
18460 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18461 address in buffer from byte-position.
18462
184631998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18464
18465 * w16select.c (Vnext_selection_coding_system): New variable.
18466 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18467 Vselection_coding_system.
18468 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18469 Vnext_selection_coding_system if non-nil.
18470 (Fw16_get_clipboard_data): Always convert a string that includes
18471 non-ASCII characters. Use Vnext_selection_coding_system if
18472 non-nil.
18473
184741998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18475
18476 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18477 mouse capture.
18478
184791998-08-31 Kenichi Handa <handa@etl.go.jp>
18480
18481 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18482 x_list_font returns.
18483
184841998-08-31 Paul Eggert <eggert@twinsun.com>
18485
18486 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18487 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18488
184891998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18490
18491 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18492 cursor, save and restore previous cursor position in the
18493 minibuffer.
18494
184951998-08-31 Kenichi Handa <handa@etl.go.jp>
18496
18497 * charset.c (unibyte_char_to_multibyte):
18498 Vnonacii_translation_table will convert a 7-bit charcater.
18499 (multibyte_char_to_unibyte): Handle the case that
18500 Vnonacii_translation_table converts a multibyte charcater to a
18501 unibyte charcter of less than 128.
18502 (init_charset_once): Initialize nonascii_insert_offset and
18503 Vnonacii_translation_table.
18504
18505 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18506 processing if CODING requires flushing.
18507 (encode_coding): Likewise.
18508 (code_convert_region): Likewise.
18509 (code_convert_string): Likewise.
18510
18511 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18512 to convert a character less than 160 to multibyte.
18513 * insdel.c (copy_text): Likewise.
18514 (count_size_as_multibyte): Likewise.
18515 * xterm.c (dumpglyphs): Likewise.
18516
185171998-08-29 Paul Eggert <eggert@twinsun.com>
18518
18519 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18520 using negation, not subtraction; this makes a difference with
18521 IEEE floating point arithmetic (and also if integer arithmetic
18522 is ones' complement or signed-magnitude!).
18523
185241998-08-29 Karl Heuer <kwzh@gnu.org>
18525
18526 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18527
185281998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18529
18530 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18531
185321998-08-28 Paul Eggert <eggert@twinsun.com>
18533
18534 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18535 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18536 path only if we're not building with Motif.
18537
185381998-08-28 Kenichi Handa <handa@etl.go.jp>
18539
18540 * insdel.c (adjust_after_replace): Fix the code to record undo
18541 information for the case that `before combining' happens. Remove
18542 text properties which are added to the new text by
18543 offset_intervals.
18544
18545 * coding.c (code_convert_region1): Remove all text properties of
18546 the region.
18547
185481998-08-28 Kenichi Handa <handa@etl.go.jp>
18549
18550 * charset.h (CHAR_BYTES): New macro.
18551
18552 * charset.c (Fchar_bytes): Now always return 1.
18553 (char_bytes): New function.
18554
18555 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18556 range, return nil.
18557 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18558 nil.
18559
18560 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18561 * fns.c (concat): Likewise.
18562 * insdel.c (count_size_as_multibyte): Likewise.
18563 * xdisp.c (message_dolog): Likewise.
18564
185651998-08-27 Kenichi Handa <handa@etl.go.jp>
18566
18567 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18568 correctly. They are for SS2 and SS3 respectively.
18569 (ccl_coding_driver): Fix previous change.
18570
185711998-08-26 Paul Eggert <eggert@twinsun.com>
18572
18573 * xterm.c (fixup_locale): New function. For now, it resets
18574 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18575 resets LC_MESSAGES to "C".
18576 (x_term_init): Use it to fix up the locale after setlocale
18577 (LC_ALL, "").
18578
185791998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18580
18581 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18582 case it was prototyped the old way.
18583
185841998-08-25 Kenichi Handa <handa@etl.go.jp>
18585
18586 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18587 returns a null string. This happens when dxpc 3.7 is being used.
18588
185891998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18590
18591 * keyboard.c (input-method-previous-message): Doc fix.
18592
18593 * coding.c (file-coding-system-alist,
18594 select-safe-coding-system-function): Doc fix.
18595
185961998-08-23 Kenichi HANDA <handa@etl.go.jp>
18597
18598 * coding.c (detect_coding_iso2022): Don't check the byte length of
18599 succeeding codes (0xa0..0xFF) if the codes follows single shift
18600 code (SS2 or SS3).
18601
186021998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18603
18604 * coding.c (detect_coding_system): If detect_eol_type returns
18605 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18606 correctly.
18607
18608See ChangeLog.7 for earlier changes.