Doc fixes.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
0f1a9b23
GM
12000-07-13 Gerd Moellmann <gerd@gnu.org>
2
3 * xterm.c (x_handle_tool_bar_click): Store the frame in the
4 frame_or_window slot of TOOL_BAR_EVENT input events instead of
5 consing. For prefix events, store the frame in the `arg' slot of
6 the event, otherwise store the key there.
7 (XTread_socket): Instead of consing, use the frame_or_window slot
8 of HELP_EVENTs for the frame, and the `arg' slot for the help
9 string.
10
11 * xmenu.c (menu_highlight_callback): Store help string in the
12 `arg' member of the input event; don't cons.
13 (menubar_selection_callback): Use the `arg' slot of input events
14 to queue additional information, instead of consing.
15
16 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
17
18 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
19 TOOL_BAR_EVENTs.
20 (w32_read_socket): Adapt to changes in HELP_EVENTs.
21
22 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
23 input events to queue additional information, instead of consing.
24
25 * keyboard.c (kbd_buffer_gcpro): Renamed from
26 kbd_buffer_frame_or_window. Now used for all Lisp objects
27 referenced from the input queue.
28 (kbd_buffer_store_event): Always use structure assignment for
29 copying input events. Record all Lisp objects referenced from
30 events in kbd_buffer_gcpro.
31 (kbd_buffer_get_event): Construct Lisp `help-echo' events
32 differently from input events. Test for prefix menu_bar_events
33 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
34 event in kbd_buffer_gcpro to nil.
35 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
36 frame_or_window is equal to its arg member as prefix events.
37 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
38 used by an input event to nil.
39 (init_keyboard): Use two times the size of the input queue
40 for kbd_buffer_gcpro.
41 (syms_of_keyboard): Likewise.
42
43 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
44 USER_SIGNAL_EVENT.
45
46 * termhooks.h (struct input_event): Add member `arg'.
47 (MENU_BAR_EVENT): Renamed from menu_bar_event.
48 (USER_SIGNAL_EVENT): Renamed from user_signal.
49
50 * xfaces.c (ASET): Remove definition.
51
52 * lisp.h (AREF, ASET, ASIZE): New macros.
53
54 * fontset.c (AREF, ASIZE): Remove definitions.
55
56 * fns.c (AREF): Remove definition.
57
58 * composite.c (AREF): Remove definition.
59
712eaef2
GM
602000-07-12 Gerd Moellmann <gerd@gnu.org>
61
d8ee7803
GM
62 * dispnew.c (redraw_overlapped_rows): Add missing local.
63 (scrolling_window): Remove debug code.
64
712eaef2
GM
65 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
66 Before scrolling, turn off a mouse-highlight in the window
67 being scrolled.
68
69 * xterm.c (x_update_window_end): Add parameter
70 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
71 redisplay in XTframe_up_to_date.
72 (x_clear_mouse_face): New function.
73 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
74
75 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
76 current glyph row.
77 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
78 it when any row is written to that contains glyphs highlighted in
79 mouse-face.
80 (update_window): Call the window update end hook with new
81 parameter MOUSE_FACE_OVERWRITTEN_P.
82 (direct_output_for_insert): Give up if row contains mouse-face.
83
84 * dispextern.h (struct redisplay_interface): Add parameter
85 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
86 (clear_mouse_face): New function pointer member.
87
02010917
SM
882000-07-11 Stefan Monnier <monnier@cs.yale.edu>
89
90 * syntax.c (back_comment): Use one switch rather than a few `if's.
91 Obey open_paren_in_column_0_is_defun_start.
92 When reverting to the `slow' method, try to nicely handle the case
93 of nested comments by checking that the comment-starter we found
94 does indeed match the comment-ender.
95 (scan_sexps_forward, scan_sexps_forward):
96 Ignore excessive opening parenthesis rather than throwing an error.
97
d76c03ea
GM
982000-07-11 Gerd Moellmann <gerd@gnu.org>
99
100 * doc.c (Fsubstitute_command_keys): Handle case that a GC
101 in Fwhere_is_internal or get_keymap_1 relocates string contents.
102
103 * dispnew.c (direct_output_forward_char): Give up if currently
104 displaying a message instead of the minibuffer contents.
105
106 * xterm.c (x_update_window_begin): No need to turn off the mouse
107 highlight here.
108 (show_mouse_face): Set the mouse_face_p flag of glyph rows
109 depending on whether they contain glyphs highlighted in
110 mouse-face.
111
112 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
113 compare the mouse_face_p flags of both rows.
114
115 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
116
d55ead18
EZ
1172000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
118
119 * keyboard.c (show_help_echo): Accept additional parameter
120 ok_to_overwrite_keystroke_echo.
121 (read_char): Call show_help_echo with a zero
122 ok_to_overwrite_keystroke_echo argument.
123 * keyboard.h (show_help_echo): Update prototype of
124 show_help_echo.
125 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
126 ok_to_overwrite_keystroke_echo argument.
127 * w32menu.c (w32_menu_display_help): Call show_help_echo with
128 non-zero ok_to_overwrite_keystroke_echo argument.
129
df75b1a3
GM
1302000-07-10 Gerd Moellmann <gerd@gnu.org>
131
4b92c49a
GM
132 * xdisp.c (try_window_id): If changes are all below what is
133 displayed in the window, and point is in the window, we still
134 might have to find point on the display.
135
136 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
137 glyphs instead of a single one.
138 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
139 with new argument list.
140 (x_set_glyph_string_gc): Make sure the face's GC is valid.
141
df75b1a3
GM
142 * keymap.c (get_keymap_1): Add comment that this function can GC.
143 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
144 comment that functions can GC.
145 (Fset_keymap_parent): GCPRO arg KEYMAP.
146
4314cf3e
EZ
1472000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
148
149 * msdos.c (XMenuActivate): After exiting the menu, restore the
150 echo area message and erase it.
151
ab49ce15
KH
1522000-07-10 Kenichi Handa <handa@etl.go.jp>
153
154 * fontset.c (Ffontset_info): Make the return value more compatible
155 with that of Emacs 20.
156
090a072f
GM
1572000-07-07 Gerd Moellmann <gerd@gnu.org>
158
159 * eval.c (Fsignal): Handle case that backtrace_list is null.
160
f92de4a6
KH
1612000-07-07 Kenichi Handa <handa@etl.go.jp>
162
163 * ccl.c (Fccl_execute): Typo fixed.
164
dd8888a1
GM
1652000-07-06 Gerd Moellmann <gerd@gnu.org>
166
e5c81191
GM
167 * window.c (window_loop): Add missing gcpro1 local variable.
168
dd8888a1
GM
169 * window.c (Fwindow_list): Reverse list at the end.
170 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
171 means allow windows on OWINDOW's frame, only.
172 (window_loop): Simplified; use Fwindow_list.
173
174 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
175
485266d0
GM
1762000-07-05 Gerd Moellmann <gerd@gnu.org>
177
178 * xterm.c (XTread_socket): Increment handling_signal at the start,
179 decrement it at the end.
180
181 * eval.c (handling_signal): New variable.
182 (Fsignal): Abort if handling_signal is non-zero.
183
184 * lisp.h (handling_signal): External declaration.
185
186 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
187
80fcd514
KR
1882000-07-05 Ken Raeburn <raeburn@gnu.org>
189
190 Sound support for NetBSD through "Linux emulation" support:
191 * config.in (HAVE_SOUNDCARD_H): Undef.
192 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
193 * Makefile.in (LIBSOUND): New variable.
194 (LIBES): Include it.
195 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
196 <soundcard.h>.
197 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
198 elsewhere.
199 (vox_open): Use DEFAULT_SOUND_DEVICE.
200 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
201
d5c5cddd
GM
2022000-07-05 Gerd Moellmann <gerd@gnu.org>
203
204 * print.c (print_error_message): If Vsignaling_function is set,
205 show it in *Messages*.
206
207 * lisp.h (Vsignaling_function): External declaration.
208
209 * eval.c (Vsignaling_function): New variable.
210 (Fsignal): Compute it.
211 (syms_of_eval): Staticpro it.
212
65171e3a
DL
2132000-07-05 Dave Love <fx@gnu.org>
214
215 * syswait.h: Use the autoconf recommended approach. Old code
216 #if'd out in case we need to revert.
217
218 * config.in (HAVE_SYS_WAIT_H): Added.
219
e2c46326
AI
2202000-07-05 Andrew Innes <andrewi@gnu.org>
221
222 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
223 when non-NULL instead of __morecore, to take account of buffer
224 memory. This also solves a problem with spurious memory warnings
225 on Windows.
226
227 * ralloc.c: Make real_morecore non-static.
228
229 * eval.c (internal_condition_case): Comment out abort if
230 interrupt_input_blocked is not zero.
231
232 * makefile.nt: Add support for `bootstrap' and related targets.
233 Include minimal debug info in emacs.exe in release build.
234 Remove all dependencies on lisp.h, and fixup some others.
235
236 * w32.c (init_environment): Install code from 20.7 for providing
237 default values for environment variables, based on the
238 executable's own location.
239 (map_w32_filename): Handle filenames that are longer than
240 MAX_PATH.
241 (sys_socket): Install socket inheritance bug fix from 20.7.
242
243 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
244 here via blockinput.h).
245
a027a91b
SM
2462000-07-05 Stefan Monnier <monnier@cs.yale.edu>
247
e4b31601
SM
248 * w32menu.c (w32_menu_display_help):
249 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
250
251 * keyboard.h (show_help_echo): Declare.
252
253 * keyboard.c (show_help_echo): New function, extracted from read_char.
254 Feval its `msg' argument if it's a cons cell.
255 (read_char): Use it.
4cf8d9d5 256 (follow_key): Pass `autoload' to get_keyelt.
a027a91b
SM
257
258 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
259 (note_tool_bar_highlight, XTread_socket):
260 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
261 (dos_rawgetc):
262 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
263 (note_tool_bar_highlight, w32_read_socket):
264 Do not gratuitously ignore non-string `help-echo' properties.
265
88d75730
GM
2662000-07-05 Gerd Moellmann <gerd@gnu.org>
267
969f7e79
GM
268 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
269
71201b00
GM
270 * window.c (delete_all_subwindows): Reset Vwindow_list.
271
88d75730
GM
272 * xterm.c (x_append_glyph, x_append_composite_glyph)
273 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
274 changes in struct glyph starting 1999-12-27. Some bit-fields of
275 struct glyph were not set, which made glyphs unequal when compared
276 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
277 effects were the result. This also depended on the contents of
278 memory returned by xmalloc. If flickering happens again, activate
279 the code in clear_glyph_row that's in #if 0. If the flickering is
280 gone with that, chances are that it is caused by something
281 similar.
282
283 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
284
285 * dispextern.h: Add some comments.
286
287 * window.c (add_window_to_list): Add parameter LIST.
288 (window_list): Order list so that, for each frame, windows are
289 in canonical order, and so that frames appear in the list in
290 the order given by Vframe_list.
291 (next_window): Reverse the handling of NEXT_P.
292
53654733
GM
2932000-07-04 Gerd Moellmann <gerd@gnu.org>
294
87efd256
GM
295 * window.c (Vwindow_list): New variable.
296 (make_window, delete_window): Set Vwindow_list to nil.
297 (check_window_containing): New function.
298 (window_from_coordinates): Rewritten.
299 (add_window_to_list, window_list, candidate_window_p)
300 (decode_next_window_args, next_window): New functions.
301 (Fnext_window, Fprevious_window): Rewritten in terms of
302 next_window.
303 (Fwindow_list): New function.
304 (Fother_window): Cleaned up.
305 (foreach_window): Add a longer "variable argument list". Let
306 callback function return 0 to indicate that cycling over windows
307 should stop.
308 (foreach_window_1): Likewise.
309 (freeze_window_start): Return int.
310 (init_window): New function.
311 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
312
313 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
314 input_event with bzero.
315 (main): Call init_window.
316
53654733
GM
317 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
318 a menu filter.
319
4a8c194f
KH
3202000-07-04 Kenichi Handa <handa@etl.go.jp>
321
322 * composite.h (make_composition_value_copy): Extern it.
323
324 * composite.c (make_composition_value_copy): New function.
325
326 * editfns.c (Fformat): While copying text properties, make each
327 composition property value a copy.
328
329 * fns.c (concat): While copying text properties, make each
330 composition property value a copy.
331
831a6cb0
GM
3322000-07-03 Gerd Moellmann <gerd@gnu.org>
333
2f516940
GM
334 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
335
aee625fa
GM
336 * fns.c (sweep_weak_table): Mark only objects that are not
337 marked already.
338
831a6cb0
GM
339 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
340 include those frames as candidates which have their focus
341 redirected to the minibuffer frame.
342
d9c4f922
SM
3432000-07-03 Stefan Monnier <monnier@cs.yale.edu>
344
345 * fns.c (Fputhash): Return `value' rather than nil.
346
3780bc22
GM
3472000-06-30 Gerd Moellmann <gerd@gnu.org>
348
97d176db
GM
349 * frame.c (next_frame): Don't check focus redirection in case
350 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
351 unless their focus is redirected, which contradicts the
352 specification of next-frame, and leads to infinite loops in
353 certain situations when cycling through windows with next-window.
354
dca9961d
KH
3552000-06-30 Kenichi Handa <handa@etl.go.jp>
356
357 * coding.c (code_convert_region): Even if the length of text is
358 zero, try to convert it if coding->type is coding_type_ccl.
359 (decode_coding_string, encode_coding_string): Likewise.
360
d5483ab1
GM
3612000-06-28 Gerd Moellmann <gerd@gnu.org>
362
af5c25e1 363 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 364 the display if windows_or_buffers_changed.
af5c25e1
GM
365
366 * dispnew.c (struct row_entry): New structure.
367 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
368 (row_table_size, old_lines, new_lines, old_lines_size)
369 (new_lines_size, run_pool, runs_size, runs): New variables.
370 (add_row_entry): New function.
371 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 372 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
373 holding them in local variables. Use a larger hash table whose
374 size depends on glyph matrix sizes. Don't use bzero to clear the
375 hash table; instead, clear used slots only.
376
377 * fns.c (next_almost_prime): Make it externally visible.
378
379 * lisp.h (next_almost_prime): Add prototype.
380
d5483ab1
GM
381 * s/isc4-0.h (sigunblock): Define.
382
383 * s/sco5.h (sigunblock): Define.
384
93e40f40
DL
3852000-06-27 Dave Love <fx@gnu.org>
386
387 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
388 (moved to osf5-0.h).
389 [!NOT_C_CODE]: Protect string.h stuff.
390
391 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
392 (sys_siglist, NSIG): Definitions moved here from osf1.h.
393
3c4b7685
GM
3942000-06-27 Gerd Moellmann <gerd@gnu.org>
395
97d176db 396 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
397 below the last line from the needed window height.
398
32cad0aa
SM
3992000-06-26 Stefan Monnier <monnier@cs.yale.edu>
400
401 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
402 (Fwidget_get): Use it.
403 (syms_of_fns): Defsubr it.
404
2c69ced2
GM
4052000-06-26 Gerd Moellmann <gerd@gnu.org>
406
1d36487c
GM
407 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
408 display info for XIM.
409 (xim_open_dpy): Likewise.
410 (xim_close_dpy): Don't free the display info's XIM.
411
412 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
413
414 * config.in (USE_XIM): New define.
415
3fc720e4
GM
416 * keymap.c (get_keyelt): For menu-items containing a `:filter
417 FILTER', apply FILTER to the menu-item's definition to get the
418 real definition to use.
419
420 * lisp.h (QCfilter): External declaration.
421
2c69ced2
GM
422 * xfns.c (Fimage_size): New function.
423 (syms_of_xfns): Defsubr it.
424
f978b2a2
AS
4252000-06-26 Andreas Schwab <schwab@suse.de>
426
427 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
428 Fstring_as_unibyte.
429
94cc7892
DL
4302000-06-25 Dave Love <fx@gnu.org>
431
432 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
433 tgetnum.
434
435 * Makefile.in (blockinput.h): Depend on atimer.h.
436 (atimer.h): Depend on systime.h.
437
438 * blockinput.h: Protect against multiple inclusion. Include
439 atimer.h.
440
441 * atimer.h: Protect against multiple inclusion. Include
442 systime.h.
443
444 * lisp.h (swap_in_global_binding): Declare.
445
b8c24556
KR
4462000-06-24 Ken Raeburn <raeburn@gnu.org>
447
448 * process.c (Fopen_network_stream): Turn off atimers for duration
449 of call to connect. (Patch from Gerd.)
450
8cf8560b
DL
4512000-06-23 Dave Love <fx@gnu.org>
452
511c7541
DL
453 * ralloc.c: Maybe include unistd.h
454
8cf8560b
DL
455 * emacs.c (setgrp): Undefine before defining.
456 (malloc_warning, set_time_zone_rule, index): Prototype.
457
458 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
459 HAVE_STRUCT_TIMEZONE.
460
461 * s/osf1.h: Move string.h hack here from alpha.h and make it
462 conditional.
463 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
464 _XOPEN_SOURCE.
465 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
466 (SOCKLEN_TYPE): Don't define.
467
468 * m/alpha.h: Remove string.h hack.
469
470 * s/osf5-0.h: New file.
471
472 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
473 include time.h, done by systime.h.
474 [__FreeBSD__]: Remove redundant includes.
475
3fc720e4 476 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
477 (delete_temp_file): Return Qnil to avoid warning.
478
479 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
480
481 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
482 HAVE_X_WINDOWS.
483
484 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
485
486 * composite.h (compose_text): Declare.
487
488 * xterm.c: Don't include sys/types.h unconditionally. Don't
489 protect its inclusion with !USG (following xmenu.c).
490
ea055732
GM
4912000-06-23 Gerd Moellmann <gerd@gnu.org>
492
493 * xfns.c (x_create_tip_frame): Initialize frame's colors like
494 in x_create_frame.
495
74b01b80
EZ
4962000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
497
498 * coding.c (decode_eol_post_ccl): Special handling for undecided
499 and inconsistent EOL types.
500
64f3a166
GM
5012000-06-22 Gerd Moellmann <gerd@gnu.org>
502
16cf31f7
GM
503 * xrdb.c (x_load_resources): Add default resource for scroll bar's
504 trough color and main window's background color.
505
506 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
507 differently.
508
509 * xterm.h (Xt_app_con): External declaration.
510
511 * widget.c (EmacsFrameRealize): Fix typo.
512
486a103d
GM
513 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
514
64f3a166
GM
515 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
516 (handle_invisible_prop): Record the start of invisible text in
517 it->add_overlay_start.
518 (struct overlay_entry): Add member `overlay'.
519 (handle_overlay_change): Simplify.
520 (next_overlay_string): After having processed overlay strings at the
521 end of the buffer, record that fact in
522 it->overlay_strings_at_end_processed_p.
523 (compare_overlay_entries): If before- and after-strings come
524 from the same overlay, let before-strings come first.
525 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
526 (load_overlay_strings): Take it->add_overlay_start into account
527 when adding overlay strings.
528
529 * dispextern.h (struct it): Add member add_overlay_start.
530
bb746ea6
DL
5312000-06-22 Dave Love <fx@gnu.org>
532
533 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
534
535 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
536
a8f573f3
KH
5372000-06-22 Kenichi Handa <handa@etl.go.jp>
538
539 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
540 is greater than 0.
541
9f2bbc92
DL
5422000-06-21 Dave Love <fx@gnu.org>
543
544 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
545
3ee5041c
SM
5462000-06-21 Stefan Monnier <monnier@cs.yale.edu>
547
548 * syntax.c (back_comment): Simplify string-parity counting (with
549 the added benefit of handling multiple string-styles as long as
550 they are not intertwined).
551 Jump to the slow code as soon as a comment starter is found in
552 a "string_lossage" position. Fixes the case: " /* " /* " */.
553
4c343001
DL
5542000-06-21 Dave Love <fx@gnu.org>
555
556 * Makefile.in: Use GETLOADAVG_LIBS.
557
558 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
559 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
560
e6365855
SM
5612000-06-20 Stefan Monnier <monnier@cs.yale.edu>
562
563 * syntax.c (describe_syntax): Recognize the `n'estable bit.
564 (Fforward_comment, scan_lists):
565 Check the comstyle of single-char comment-starters.
566 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
567 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
568 Check the comstyle of single-char comment-starters.
569 Clarify control-flow around the Scomment case.
e6365855 570
5700d2cc
DL
5712000-06-20 Dave Love <fx@gnu.org>
572
d355bd8a
SM
573 * fns.c (make_hash_table, maybe_resize_hash_table):
574 Cast arg of next_almost_prime.
5700d2cc
DL
575
576 * tparam.c [emacs]: Include lisp.h.
577
578 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
579 and unistd.h.
580
4a27bdfb
GM
5812000-06-20 Gerd Moellmann <gerd@gnu.org>
582
a61d762c
GM
583 * keyboard.c (adjust_point_for_property): Check if display
584 property should be treated as intangible by looking at its
585 value.
586
587 * xdisp.c (single_display_prop_intangible_p)
588 (display_prop_intangible_p): New functions.
589
590 * dispextern.h (display_prop_intangible_p): Add prototype.
591
592 * xdisp.c (dump_glyph_row): Show type of glyph->object.
593
4a27bdfb
GM
594 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
595 argument to sigprocmask.
596
597 * s/sco5.h (sigblock): Redefined to pass a pointer as second
598 argument to sigprocmask.
599
600 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
601 sigprocmask_set, and pass a pointer to it to sigprocmask.
602
603 * sysdep.c (sigprocmask_set): New variable.
604
605 * fileio.c (make_temp_name): Don't use `%s' in string passed to
606 report_file_error.
607
427ec082
SS
6082000-06-20 Sam Steingold <sds@gnu.org>
609
610 * xrdb.c: Don't declare xmalloc, xrealloc.
611
8972fe79 6122000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
613
614 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
615 (re_comp): Cast gettext return value to avoid complaints when
616 !HAVE_LIBINTL.
617
074b6efe
DL
6182000-06-20 Dave Love <fx@gnu.org>
619
f85c008a
DL
620 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
621 HAVE_GETTIMEOFDAY.
622
5700d2cc 623 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 624
d355bd8a 625 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
626
627 * m/alpha.h: Don't declare xmalloc, xrealloc.
628
0af4f205
DL
629 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
630
631 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
632
633 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
634
635 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
636 HAVE_GETWD.
637
074b6efe
DL
638 * keyboard.h (poll_for_input_1): Declare.
639
640 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
641
642 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
643
644 * doprnt.c: Don't declare xmalloc, xrealloc.
645
646 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
647 (getenv, ctime, getwd): Removed.
648 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
649
650 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
651 x_set_tool_bar_lines.
652
653 * config.in: Add HAVE_GETWD. Move some definitions above
654 machine/system includes.
655
68a5e97b
KH
6562000-06-20 Kenichi Handa <handa@etl.go.jp>
657
95417e1e
KH
658 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
659
68a5e97b
KH
660 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
661 contain information about ENCODING.
662
663 * fontset.c (FONTSET_ASCII): Use the first element of char table
664 for an ASCII font, not defalt slot.
665 (fontset_ref_via_base): If FONTSET doesn't contain information for
666 C, try the default fontset.
667 (make_fontset): Don't copy the default fontset.
668 (fontset_font_pattern): Likewise.
669 (accumulate_font_info): If ELT is nil, use the corresponding
670 element in the default fontset.
671
3b4fa1b2
DL
6722000-06-19 Dave Love <fx@gnu.org>
673
943e731c
DL
674 * syntax.c (Fparse_partial_sexp): Doc fix.
675
676 * regex.h: Test PROTOTYPES as well as __STDC__.
677
3b4fa1b2
DL
678 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
679 errno, strerror. Put text after #endif in comment.
680
681 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
682 pcc).
683
684 * xterm.c (x_frame_of_widget): Likewise.
685
cdf0357b
GM
6862000-06-19 Gerd Moellmann <gerd@gnu.org>
687
688 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
689 to Vfundamental_mode_abbrev_table.
690
691 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
692 bogus objects are marked. This slows down GC by ~80 percent, but
693 it might be worth trying when debugging GC-related problems.
694 This feature requires conservative stack marking to be enabled.
695
696 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
697 returns XLookupChars, reset `modifiers' to zero.
698
998e9f8c
DL
6992000-06-19 Dave Love <fx@gnu.org>
700
701 * mktime.c: Unprotoized.
702
d1504184
GM
7032000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
704
705 * data.c (set_internal): If variable is frame-local,
706 store the new value immediately into the frame parameter alist.
707
140c4ac6
KR
7082000-06-19 Ken Raeburn <raeburn@gnu.org>
709
14358466
KR
710 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
711 in the custom handler pointer.
712
140c4ac6
KR
713 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
714 value, or checks for CHAR_META can fail when Lisp_Object is a
715 union type.
716 * keymap.c (get_keyelt): Likewise.
717
10d7bf84
KH
7182000-06-19 Kenichi Handa <handa@etl.go.jp>
719
720 * ccl.h (struct ccl_program): New member eol_type.
721 (struct ccl_spec): New member cr_carryover.
722
723 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
724 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
725
726 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
727 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
728 (decode_eol_post_ccl): New function.
729 (decode_coding): Don't detect EOL format here for CCL based coding
730 systems.
731 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
732 decode_eol_post_ccl after running the CCL program.
733 (code_convert_region): Don't detect EOL format here for CCL based
734 coding systems.
735 (decode_coding_string): Likewise.
736
52e386c2
KR
7372000-06-18 Ken Raeburn <raeburn@gnu.org>
738
739 * charset.c (update_charset_table): Use XINT on "iso_final_char"
740 when treating it as an integer.
741
742 * coding.h (encode_coding_string): Declare.
743
744 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
745 it as an integer.
746
747 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
748 "xkeymap" to avoid shadowing the "enum map_type" value that needs
749 to be passed to get_local_map.
750
751 * sound.c (Fplay_sound): Don't call make_number on
752 Frun_hook_with_args count argument.
753
754 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
755 for lisp objects in X event structure data field, when lisp
756 objects are represented with unions.
757 (x_scroll_bar_to_input_event): Ditto.
758
b357b9d4
KR
7592000-06-16 Ken Raeburn <raeburn@gnu.org>
760
761 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
762 termination of string. Fix sense of test whether
763 Vline_number_display_limit is an integer.
b357b9d4 764
a871441d
GM
7652000-06-16 Gerd Moellmann <gerd@gnu.org>
766
a9021acd
GM
767 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
768 only if HAVE_X_WINDOWS.
769
6344985d
GM
770 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
771 of titles.
772
427ec082 773 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
774 out of bounds.
775
228b083e
EZ
7762000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
777
778 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
779 of its headers.
780
c25b53a2
KH
7812000-06-15 Kenichi Handa <handa@etl.go.jp>
782
783 * coding.c (decode_coding_emacs_mule): Always set src_base at the
784 start of the while loop.
785
a6981b11
GM
7862000-06-15 Gerd Moellmann <gerd@gnu.org>
787
e9924e52
GM
788 * atimer.c (alarm_signal_handler): Add forward declaration.
789
a6981b11
GM
790 * data.c (set_internal): Remove debug code.
791
25fa6deb
GM
7922000-06-14 Gerd Moellmann <gerd@gnu.org>
793
dce6b995
GM
794 * Makefile.in (bootstrap-temacs): Add `-I../src'.
795
9f817ea4
GM
796 * unexec.c (toplevel) [COFF]: Include coff.h.
797
798 * s/lynxos.h: New file.
799
800 * keymap.c (Fsingle_key_description): Enclose function key and
801 event symbol names in angle brackets.
802
8a4e3c0c
GM
803 * xdisp.c (setup_echo_area_for_printing): Call
804 message_log_maybe_newline if message_buf_print is not set.
805
806 * print.c (printchar, strout): Don't check message_buf_print
427ec082 807 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
808 function does something useful even when message_buf_print is
809 already set.
810
25fa6deb
GM
811 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
812 variables.
813 (ensure_echo_area_buffers): Initialize echo buffer's
814 truncate lines setting to nil.
815 (with_echo_area_buffer): Don't set the echo buffer's truncate
816 lines setting here.
8a4e3c0c 817 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
818 of message_truncate_lines.
819 (resize_mini_window): Handle case that lines are truncated.
820 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
821 message-truncate-lines.
822
823 * keyboard.c (read_char): Bind message-truncate-lines to t
824 while displaying a help-echo.
825
826 * lisp.h (Qmessage_truncate_lines): External declaration.
827
163dcff3
GM
8282000-06-13 Gerd Moellmann <gerd@gnu.org>
829
1681ead6
GM
830 * xdisp.c (Vline_number_display_limit): Renamed from
831 line_number_display_limit.
832 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
833 Extend documentation string. Initialize
834 Vline_number_display_limit to nil meaning no limit.
835 (decode_mode_spec): Use Vline_number_display_limit with its new
836 meaning.
837
163dcff3
GM
838 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
839
8402000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
841
842 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 843
163dcff3
GM
844 * xfns.c (x_set_frame_parameters): Comment fix.
845
846 * frame.c (store_frame_param): Call swap_in_global_binding if the
847 variable's current binding was chosen based on this frame.
848
849 * data.c (swap_in_global_binding): New function.
850
a704139d
EZ
8512000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
852
853 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
854 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
855
9b6610db
EZ
8562000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
857
858 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
859
c68833d2
JR
8602000-06-12 Jason Rumney <jasonr@gnu.org>
861
862 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
863
864 * w32.h (EMACS_W32_H): Renamed from _NT_H_
865
866 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
867
868 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
869
ed1056b3
GM
8702000-06-12 Gerd Moellmann <gerd@gnu.org>
871
872 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
873 (syms_of_xfaces): Defsubr Sdump_colors.
874 (x_free_colors): Don't treat b&w specially on default visual.
875 (x_free_dpy_colors): New function.
876 (free_face_colors): Don't check visual class; it's done
877 in x_free_colors.
878
879 * xterm.c (x_frame_of_widget): New function.
880 (x_alloc_nearest_color_for_widget): Use it.
881 (x_copy_dpy_color): New function.
882 (x_destroy_window): Free various colors.
883
5050a2ef
KH
8842000-06-12 Kenichi Handa <handa@etl.go.jp>
885
886 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
887
888 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
889
890 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
891
892 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
893
894 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
895
fb1b041d
DL
8962000-06-11 Dave Love <fx@gnu.org>
897
898 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
899
ff96b5f4
EZ
9002000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
901
902 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
903
db8eeecd
GM
9042000-06-11 Gerd Moellmann <gerd@gnu.org>
905
ed1056b3 906 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
907 to `XEvent *'.
908
49b71c5f
KH
9092000-06-10 Kenichi Handa <handa@etl.go.jp>
910
c479bd55
KH
911 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
912 (regex_compile): Fix the code for handling the case of single byte
913 char and multibyte char being mixed in a range within [...].
914
ff6a65c2
KH
915 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
916 and dst_multibyte members of coding.
917
49b71c5f
KH
918 * charset.c (update_charset_table): Update the table
919 bytes_by_char_head.
920 (init_charset_once): Initialize elements of bytes_by_char_head to
921 1 except for leading codes for private charases.
922
923 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
924 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
925 sequence.
926
9e80b57d
KR
9272000-06-09 Ken Raeburn <raeburn@gnu.org>
928
929 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
930 access the data it doesn't point to.
931
f83fe4b4
GM
9322000-06-08 Gerd Moellmann <gerd@gnu.org>
933
934 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 935 will be translated to a switch-frame event when reading the
f83fe4b4
GM
936 event queue. This is necessary because Emacs otherwise won't
937 perform a switch-frame to a new frame until some other event, for
938 example a keystroke event, forces it to do so. This has various
939 effects, one visible being that the cursor of a frame created with
940 C-x 5 2 or switched to with a window manager key binding like
941 A-TAB stays hollow because selected_window isn't on the newly
942 focused frame until the switch-frame is performed.
943
944 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
945 generating a switch-frame event if necessary.
946
947 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
948
949 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
950 it's an integer.
951
0890801b
KH
9522000-06-08 Kenichi Handa <handa@etl.go.jp>
953
954 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
955 charset.
956
173cbca8
GM
9572000-06-07 Gerd Moellmann <gerd@gnu.org>
958
3091c2a6
GM
959 * window.c (displayed_window_lines): Take empty lines at
960 the bottom of a window into account.
427ec082 961
f38952fe
GM
962 * window.c (displayed_window_lines): New function.
963 (Fmove_to_window_line): Use displayed_window_lines to determine
964 the number of lines to move, instead of using the window's height.
965
966 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
967 to stop reading, even if the form read sets point to a different
968 value when evaluated.
969
427ec082 970 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
971 put the cursor.
972
6ba6c818
KH
9732000-06-07 Kenichi Handa <handa@etl.go.jp>
974
975 * fileio.c (e_write): Free composition data if stored in
976 coding->cmp_data.
977
5f1aea9a
GM
9782000-06-06 Gerd Moellmann <gerd@gnu.org>
979
666852af
GM
980 * xdisp.c (display_line): Set row's and iterator's
981 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
982 Set cursor even if row ends in the middle of a character.
983 (dump_glyph_row): Print values of new flags.
984 (redisplay_window) <cursor movement in unchanged window>: When
985 point has been moved forward, and PT is at the end of the cursor
986 row, don't place the cursor in the next row if the cursor row ends
987 in the middle of a character or at ZV.
988
989 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
990 (struct glyph_row): Add starts_in_middle_of_char_p and
991 ends_in_middle_of_char_p.
992 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
993 ends_in_middle_of_char_p flag.
994 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
995
d13f3e2e
GM
996 * term.c (append_glyph): Revert change of 2000-06-06.
997
998 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
999 padding glyph not fitting on line as whole character not
1000 fitting on line.
1001
5f1aea9a
GM
1002 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1003 this isn't true for images with `:ascent 100'.
1004
10cda9b0
KH
10052000-06-06 Kenichi Handa <handa@etl.go.jp>
1006
ed00559d
KH
1007 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1008 as modified if it is originally unmodified.
1009
10cda9b0
KH
1010 * term.c (encode_terminal_code): Change the way to check if
1011 terminal coding does any conversion.
1012 (append_glyph): Set glyph->pixel_width correctly.
1013
1014 * xdisp.c (display_line): While checking line continuation, pay
1015 attention to a padding glyph.
1016
1969fae2
GM
10172000-06-05 Gerd Moellmann <gerd@gnu.org>
1018
1019 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1020
162ccef4
DL
10212000-06-05 Dave Love <fx@gnu.org>
1022
f19f32dd
DL
1023 * xdisp.c: Include fontset.h.
1024
1025 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1026
1027 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1028
1029 * dispnew.c: Conditionally include term.h.
1030
1031 * coding.h: Declare code_convert_string_norecord.
1032
1033 * frame.h (struct frame): Use volatile unconditionally.
1034
1035 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1036
1037 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1038
1039 * systime.h: Protect against multiple inclusion.
1040 (timezone) [USG5_4]: Define as time_t.
1041
1042 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1043 (Foptimize_char_table, make_temp_name): Declare.
1044
1045 * Makefile.in (xdisp.o): Depend on fontset.h.
1046
1047 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1048
1049 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1050 (Foptimize_char_table, make_temp_name): Declare.
1051
427ec082 1052 * s/irix4-0.h:
162ccef4
DL
1053 * s/irix5-0.h:
1054 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1055
2082fe81
DL
10562000-06-02 Dave Love <fx@gnu.org>
1057
1058 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1059
dcf671d2
GM
10602000-06-02 Gerd Moellmann <gerd@gnu.org>
1061
1062 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1063 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1064 be freed.
1065
1066 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1067 glyph, use the ASCII NUL character to determine the face.
1068
d42122a3
DL
10692000-06-02 Dave Love <fx@gnu.org>
1070
1071 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1072 (VFORK_RETURN_TYPE): Remove.
427ec082 1073
d42122a3
DL
1074 * config.in: Add NO_MATHERR.
1075
dd432f16
DL
10762000-06-01 Dave Love <fx@gnu.org>
1077
90aa4ea8
DL
1078 * cmds.c (internal_self_insert): Don't check
1079 Vbefore_change_function, Vafter_change_function.
1080
1081 * insdel.c (signal_before_change, signal_after_change): Likewise.
1082
1083 * buffer.c (Vbefore_change_function, Vafter_change_function):
1084 Variables and their initializations deleted.
1085
2330c9d4
DL
1086 * callint.c (Fcall_interactively): Doc fix.
1087
dd432f16
DL
1088 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1089
bf9e8804
DL
10902000-05-31 Dave Love <fx@gnu.org>
1091
1092 * textprop.c: Revert last change -- duplicated.
1093
3694b4ab
GM
10942000-05-31 Gerd Moellmann <gerd@gnu.org>
1095
1096 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1097 in #if 0.
1098
1099 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1100
f14156cd
JR
11012000-05-31 Jason Rumney <jasonr@gnu.org>
1102
8119aab8
JR
1103 * search.c (Fre_search_forward, Fre_search_backward)
1104 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1105
f14156cd
JR
1106 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1107
4aab9be3
JR
11082000-05-30 Jason Rumney <jasonr@gnu.org>
1109
1110 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1111 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1112
1113 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1114 member.
1115
1116 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1117 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1118 expand a nil default_filename.
1119
1120 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1121 pointer to glyph_to_pixel_coords, not a frame.
1122
1123 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1124 coding.h to dependencies.
1125
1126 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1127
1128 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1129 window pointer to be consistent with w32term.c and xterm.c.
1130
1131 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1132 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1133 (Qline_spacing, Qcenter): New variables.
1134 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1135 (x_set_line_spacing): New function.
1136 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1137 macros.
1138 (x_specified_cursor_type): New function.
1139 (x_set_cursor_type): Use it.
1140 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1141 and icon strings.
1142 (validate_x_resource_name, x_get_resource_string): Measure lengths
1143 of external strings in bytes.
1144 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1145 GetTextExtentPoint32 with NULL title.
1146 (Fx_create_frame): Initialize Qline_spacing.
1147 (w32_load_system_font): Initialize font->double_byte_p.
1148 (x_to_w32_charset): Use Vw32_charset_info_alist.
1149 (Image, busy cursor, tooltip functions): Merged changes from
1150 xfns.c. Not yet functional on Windows.
1151
1152 * w32gui.h (W32FontStruct): Add double_byte_p member.
1153
1154 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1155 (emacs_button_translation): Use it.
1156 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1157 in `mask' to be set.
1158
1159 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1160 menu strings.
1161
1162 * w32term.c: Format and doc changes to bring closer to xterm.c.
1163 (w32_char_font_type): New enum.
1164 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1165 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1166 (w32_encode_char): New function.
1167 (x_encode_char): Removed.
1168 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1169 x_encode_char and w32_font_is_double_byte.
1170 (x_produce_image_glyph): Use image_ascent.
1171 (x_produce_glyphs): Use new version of w32_per_char_metric and
1172 handle NULL return value. Allow extra line spacing.
1173 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1174 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1175 w32_font_type member of glyph instead.
1176 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1177 (fast_find_position): Make sure not to consider rows not visible
1178 in the window.
1179 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1180 w32_menu_display_help with input blocked, as it can abort.
1181 (x_display_and_set_cursor): Choose cursor depending
1182 on buffer-local value of cursor_type.
1183 (x_draw_bar_cursor): Add parameter WIDTH.
1184
1185 * w32term.h (CP_DEFAULT): Define.
1186 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1187
10fc3187
GM
11882000-05-30 Gerd Moellmann <gerd@gnu.org>
1189
1190 * search.c (Fre_search_forward, Fre_search_backward)
1191 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1192
d0555360
KH
11932000-05-30 Kenichi Handa <handa@etl.go.jp>
1194
1195 * coding.c (detect_coding_iso2022): Fix code for checking
1196 CODING_CATEGORY_MASK_ISO_8_2.
1197
f1ad044f
SM
11982000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1199
1200 * regex.c (PREFETCH_NOLIMIT): New function.
1201 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1202
84ec3b4b
GM
12032000-05-29 Gerd Moellmann <gerd@gnu.org>
1204
66254a13
GM
1205 * syntax.c (find_defun_start): Move test for
1206 open_paren_in_column_0_is_defun_start outside of the loop.
1207
49e70dec
GM
1208 * xdisp.c (redisplay_window): Really switch buffers when
1209 displaying mode lines, and temporarily set selected_frame to the
1210 frame of the window that's redisplayed.
1211
84ec3b4b
GM
1212 * xfaces.c (free_realized_faces): Block/unblock input.
1213 (free_realized_multibyte_face): Ditto.
1214
869a3a14
DL
12152000-05-29 Dave Love <fx@gnu.org>
1216
1217 * textprop.c (Qkeymap): New variable.
1218 (syms_of_textprop): Intern it.
1219
1220 * keymap.c: Include intervals.h.
1221 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1222
1223 * Makefile.in (keymap.o): Depend on intervals.h.
1224
1225 * keyboard.c (menu_bar_items, tool_bar_items)
1226 (Fexecute_extended_command): Deal with `keymap' property.
1227 (read_key_sequence): Track map from `keymap' property as well as
1228 `local_map'.
1229
1230 * intervals.c (get_local_map): Extra arg to allow looking for
1231 `keymap' too.
1232
1233 * intervals.h (map_property): New enum.
1234 (get_local_map): Extra arg using it.
1235 (Qkeymap): Declare.
1236
84ec3b4b 1237 * lisp.h (get_local_map): Don't declare here.
869a3a14 1238
89d0c844
KH
12392000-05-29 Kenichi Handa <handa@etl.go.jp>
1240
1241 * Makefile.in (callproc.o): Depend on composite.h.
1242
1243 * callproc.c: Include composite.h.
1244 (Fcall_process): Handle composition correctly.
1245
1246 * coding.h (coding_allocate_composition_data): Extern it.
1247 (coding_restore_composition): Likewise.
1248
1249 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1250 yet allocated, finish decoding with result
1251 CODING_FINISH_INSUFFICIENT_CMP.
1252 (coding_allocate_composition_data): Make it non-static.
1253 (coding_restore_composition): Likewise.
1254
797a084a
EZ
12552000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1256
1257 * charset.c (syms_of_charset): Revert last change.
1258
cf872af5
EZ
12592000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1260
1261 * term.c (produce_glyphs): Treat characters from the eight-bit-*
1262 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1263 Handa.
1264
5b1ae051
EZ
12652000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1266
1267 * charset.c (syms_of_charset): Set width of character sets
1268 eight-bit-control and eight-bit-graphic to 1 column.
1269
34ec9ebe
GM
12702000-05-26 Gerd Moellmann <gerd@gnu.org>
1271
1272 * config.in (HAVE_SPEED_T): New define.
1273
1274 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1275 `extern speed_t'.
1276
dd854dc2
DL
12772000-05-26 Dave Love <fx@gnu.org>
1278
1279 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1280
1281 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1282 (Fsubr_arity): New function.
1283 (syms_of_data): Install them.
1284
ba9f8f95
KH
12852000-05-26 Kenichi Handa <handa@etl.go.jp>
1286
0f3e0672
KH
1287 * charset.c (init_charset_once): Set the table bytes_by_char_head
1288 correctly.
1289
cebefb44
KH
1290 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1291 the default fontset to what Emacs uses by default.
0f3e0672
KH
1292 (check_registry_encoding): This function deleted.
1293 (Fset_fontset_font): Remove the adhoc condition for the default
1294 fontset. Allow cons in FONTNAME.
cebefb44 1295
0f3e0672
KH
1296 * fns.c (map_char_table): Ignore char-table entries for
1297 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1298
7a18af49
KR
12992000-05-25 Ken Raeburn <raeburn@gnu.org>
1300
1301 * emacs.c (main): Initialize keyboard syms before initializing
1302 window code, so face names are available.
1303
d2af47df
SM
13042000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1305
1306 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1307 of an anchor at the beginning of a shy-group.
1308
fc6a6a4e
GM
13092000-05-25 Gerd Moellmann <gerd@gnu.org>
1310
1311 * xdisp.c (handle_invisible_prop): Don't try to skip over
1312 invisible text if end of text is already reached.
1313
005f0d35
DL
13142000-05-25 Dave Love <fx@gnu.org>
1315
02513cdd
DL
1316 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1317
005f0d35
DL
1318 * coding.c (encode_eol): Add null statement after label.
1319
89f6ca4e
EZ
13202000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1321
1322 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1323 2000-05-20.
1324
a4e1759e
KH
13252000-05-25 Kenichi Handa <handa@etl.go.jp>
1326
1327 * ccl.c (ccl_driver): Fix previous change.
1328
eacfd7fe
KH
13292000-05-25 Kenichi Handa <handa@etl.go.jp>
1330
46ab33a9
KH
1331 * coding.c (run_pre_post_conversion_on_str): Set point to the
1332 beginning of buffer before calling coding->post_read_conversion.
1333 (decode_coding_string): Give correct args to
1334 run_pre_post_conversion_on_str.
1335 (encode_coding_string): Likewise.
1336
eacfd7fe
KH
1337 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1338 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1339 eight-bit-graphic correctly.
1340
f8569325
DL
13412000-05-24 Kenichi HANDA <handa@etl.go.jp>
1342
1343 * fileio.c (Finsert_file_contents): Even if a file is not found,
1344 execute codes for setting up coding system. Call
1345 after-insert-file-functions unconditionally.
1346
04545643
GM
13472000-05-24 Gerd Moellmann <gerd@gnu.org>
1348
1349 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1350 BSD_PGRPS are not defined.
1351
747d90ea
KH
13522000-05-24 Kenichi Handa <handa@etl.go.jp>
1353
1354 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1355 DESCRIPTION.
1356 (syms_of_charset): Avoid building same strings.
1357
716e3b88
GM
13582000-05-23 Gerd Moellmann <gerd@gnu.org>
1359
1360 * lread.c (Fload): Add a comment about the meaning of
1361 Vuser_init_file being t.
1362
1363 * puresize.h (BASE_PURESIZE): Increase to 675000.
1364
1365 * s/gnu-linux.h (setpgrp): Don't define it here because this
1366 prevents compilation on GNU/Linux systems with glib 2.2.
1367
1368 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1369 as setpgid.
427ec082 1370
9aeb39fa
EZ
13712000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1372
1373 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1374 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1375 version.
1376 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1377
29ced61b
KH
13782000-05-23 Kenichi Handa <handa@etl.go.jp>
1379
0574a2ed
KH
1380 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1381 unconditionally.
1382
3d80f24d
KH
1383 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1384
1385 * term.c (encode_terminal_code): Set coding->src_multibyte
1386 properly.
1387
29ced61b
KH
1388 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1389
d7e00792
KH
13902000-05-22 Kenichi Handa <handa@etl.go.jp>
1391
c9d80d38
KH
1392 * keyboard.c (read_char): Allow character codes 128..255 to be
1393 handled by input-method-function.
1394
d7e00792
KH
1395 * insdel.c (adjust_markers_for_replace): Fix previous change.
1396 (adjust_after_replace): If PREV_TEXT is nil, call
1397 adjust_markers_for_insert, not adjust_markers_for_replace.
1398
087121cc 13992000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1400
087121cc
GM
1401 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1402 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1403 [HAVE_GRANDPT]: Define.
1404 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1405
1406 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1407 like SYSV_PTYS.
1408
1409 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1410
1411 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1412
c9671f81
KH
14132000-05-20 Kenichi Handa <handa@etl.go.jp>
1414
1415 The following changes are to handle 8-bit characters in a
1416 multibyte buffer/string without facing with byte combining
1417 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1418 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1419
1420 * Makefile.in (fns.o): Depend on charset.h.
1421
1422 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1423 convert it to unibyte.
1424 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1425
1426 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1427 apparent char boundary.
1428 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1429 0x80..0x9F to/from multibyte form.
1430
1431 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1432 to unibyte.
1433
1434 * callproc.c (Fcall_process): Always encode an argument string if
1435 it is multibyte. Setup src_multibyte and dst_multibyte members of
1436 process_coding properly.
ce75fd23 1437
c9671f81
KH
1438 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1439 SPLIT_NON_ASCII_CHAR.
1440
1441 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1442 as is.
1443 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1444
1445 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1446 variables.
1447 (SPLIT_CHARACTER_SEQ): This macro deleted.
1448 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1449 valid.
1450 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1451 and eight-bit-graphic.
1452 (char_to_string): Likewise. Signal an error for too large
1453 character code.
1454 (char_printable_p): Return 0 for 8-bit characters.
1455 (update_charset_table): Update iso_charset_table only when a final
1456 character is non-negative.
1457 (find_charset_in_text): Renamed from find_charset_in_str.
1458 Arguments and return value changed. Callers changed.
1459 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1460 be -1 if CHARSET is used only internally.
1461 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1462 eight-bit-graphic.
1463 (Fcharset_after): Simplified.
1464 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1465 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1466 (multibyte_chars_in_text): Simplified by assuming there's no
1467 invalid multibyte sequence.
1468 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1469 str_as_unibyte): New functions.
1470 (Fstring): Simpified by assuming that byte combining never
1471 happens.
1472 (init_charset_once): Initialization for
1473 LEADING_CODE_8_BIT_CONTROL.
1474 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1475 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1476 eight-bit-control and eight-bit-graphic.
1477
1478 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1479 CHARSET_8_BIT_GRAPHIC): New macros.
1480 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1481 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1482 (CHARSET_REVERSE_CHARSET): Likewise.
1483 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1484 eight-bit-graphic.
1485 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1486 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1487 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1488 encounter an invalid multibyte sequence.
1489 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1490 sequence is always valid.
1491 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1492 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1493 macros.
1494 (CHAR_STRING): For 8-bit characters, call char_to_string.
1495 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1496 multibyte sequence is always valid.
1497 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1498 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1499 str_as_unibyte): Extern them.
1500 (BCOPY_SHORT): Fix a bug.
1501 (CHAR_LEN): This macro deleted. Callers changed to use
1502 CHAR_BYTES.
1503 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1504 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1505 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1506
bd4bde7f 1507 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1508 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1509 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1510 EMIT_BYTES): New macros.
1511 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1512 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1513 macros deleted.
1514 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1515 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1516 check the validity of multibyte sequence.
1517 (decode_coding_emacs_mule): New function.
1518 (encode_coding_emacs_mule): New macro.
1519 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1520 the source.
1521 (DECODE_ISO_CHARACTER): Just return a character code.
1522 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1523 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1524 EMIT_CHAR to produced decoded characters. Exit the loop only by
1525 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1526 block here.
1527 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1528 only position codes for an invalid character.
1529 (encode_designation_at_bol): Return new destination pointer. 5th
1530 arg DSTP is changed to DST.
1531 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1532 from the source by ONE_MORE_CHAR. Don't handle the case of last
1533 block here.
1534 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1535 macros deleted.
1536 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1537 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1538 TWO_MORE_BYTES to fetch a byte from the source.
1539 (encode_eol): Pay attention to coding->src_multibyte.
1540 (detect_coding, detect_eol): Preserve members src_multibyte and
1541 dst_multibyte.
1542 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1543 (encoding_buffer_size): Set magnification to 3 for all coding
1544 systems that require encoding.
1545 (ccl_coding_driver): For decoding, be sure that the result is
1546 valid multibyte sequence.
1547 (decode_coding): Initialize coding->errors and coding->result.
1548 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1549 and raw-text, always call decode_eol. Handle the case of last
1550 block here. If not coding->dst_multibyte, convert the resulting
1551 sequence to unibyte.
1552 (encode_coding): Initialize coding->errors and coding->result.
1553 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1554 and raw-text, always call encode_eol. Handle the case of last
1555 block here.
1556 (shrink_decoding_region, shrink_encoding_region): Detect cases
1557 that we can't skip data more rigidly.
1558 (code_convert_region): Setup src_multibyte and dst_multibyte
1559 members of coding. For decoding, if the buffer is multibyte,
1560 convert the source sequence to unibyte in advance. For encoding,
1561 if the buffer is multibyte, convert the resulting sequence to
1562 multibyte afterward.
1563 (run_pre_post_conversion_on_str): New function.
1564 (code_convert_string): Deleted and divided into the following two.
1565 (decode_coding_string, encode_coding_string): New functions.
1566 (code_convert_string1, code_convert_string_norecord): Call one of
1567 above.
1568 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1569 MAKE_NON_ASCII_CHAR.
1570 (Fset_terminal_coding_system_internal,
1571 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1572 and dst_multibyte members.
1573 (init_coding_once): Initialize iso_code_class with new enum
1574 ISO_control_0 and ISO_control_1.
1575
1576 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1577 devided into ISO_control_0 and ISO_control_1.
1578 (struct coding_system): New members src_multibyte, dst_multibyte,
1579 errors, and result. Delete member fake_multibyte.
1580 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1581 nonzero.
1582 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1583 nonzero.
1584
1585 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1586 (Faset): Likewise.
1587
1588 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1589 multibyte form.
1590 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1591 combining occurs.
1592 (Ftranspose_region): Delete codes for handling byte combining.
1593
1594 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1595 dst_multibyte members of coding. On handling REPLACE on unibyte
1596 buffer, convert the result of decode_coding to unibyte. On
1597 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1598 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1599 multibyteness of the source (buffer or string).
1600
1601 * fns.c (concat): Handle 8-bit characters correctly.
1602 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1603 unibyte in the result.
1604 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1605 valid multibyte form in the result.
1606 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1607 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1608 return -1, signal an error.
1609 (base64_encode_1): New arg MULTIBYTE. Get each character by
1610 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1611 character is found, return -1.
1612 (Fbase64_decode_region): Delete codes for handling byte-combining.
1613 Treat each decoded byte as a unibyte character.
1614 (Fbase64_decode_string): Return unibyte string.
1615 (Fcompare_strings, concat, string_byte_to_char): Use
1616 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1617 FETCH_STRING_CHAR_ADVANCE.
1618 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1619 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1620
1621 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1622 SPLIT_NON_ASCII_CHAR.
1623 (fontset_ref_via_base, fontset_set): Likewise
1624
1625 * insdel.c (adjust_markers_for_record_delete): Deleted.
1626 (adjust_markers_for_insert): Argument changed. Caller changed.
1627 (adjust_markers_for_replace): Likewise.
1628 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1629 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1630 (copy_text): Delete unused local varialbe c_save. For converting
1631 to multibyte, be sure to make all 8-bit characters in valid
1632 multibyte form.
1633 (count_size_as_multibyte): Handle 8-bit characters correctly.
1634 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1635 adjust_after_replace, replace_range, del_range_2)
1636 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1637 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1638 adjust_after_replace, replace_range, del_range_2) Delete codes for
1639 handling byte combining.
1640 (adjust_before_replace): Deleted.
427ec082 1641
c9671f81
KH
1642 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1643 SPLIT_NON_ASCII_CHAR.
1644 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1645 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1646 unconditionally.
1647 (Fkey_description): Likewise.
1648
1649 * lread.c (read1): On reading multibyte string, be sure to make
1650 all 8-bit chararacters in valid multibyte form.
1651 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1652
1653 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1654 unconditionally.
1655
1656 * process.c (Fstart_process): GCPRO current_dir before calling
1657 Ffind_operation_coding_system. Encode arguments here.
1658 (create_process): Don't encode arguments here. Setup
1659 src_multibyte and dst_multibyte members of struct coding.
1660 (read_process_output): Setup src_multibyte and dst_multibyte
1661 members of struct coding. If the output is to multibyte buffer,
1662 always decode the output of the process. Adjust the
1663 representation of 8-bit characters to the multibyteness of the
1664 output.
1665 (send_process): Setup coding->src_multibyte according to the
1666 multibyteness of the source.
1667
1668 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1669 unconditionally.
1670 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1671 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1672
1673 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1674 CHAR_LEN.
1675
1676 * w16select.c (Fw16_set_clipboard_data): Setup members
1677 src_multibyte and dst_multibyte of coding. Adjusted for the
1678 change for find_charset_in_str.
1679 (Fw16_get_clipboard_data): Likewise.
1680
1681 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1682 dst_multibyte of coding.
1683 (x_to_w32_font): Likewise.
1684
1685 * w32select.c (Fw32_set_clipboard_data): Setup members
1686 src_multibyte and dst_multibyte of coding. Adjusted for the
1687 change for find_charset_in_str.
1688 (Fw32_get_clipboard_data): Likewise.
1689
1690 * xdisp.c (get_next_display_element): Handle 8-bit characters
1691 correctly.
1692 (next_element_from_display_vector): Use CHAR_BYTES instead of
1693 CHAR_LEN.
1694 (disp_char_vector): Use SPLIT_CHAR instead of
1695 SPLIT_NON_ASCII_CHAR.
1696
1697 * xselect.c (selection_data_to_lisp_data): Setup members
1698 src_multibyte and dst_multibyte of coding. Adjusted for the
1699 change for find_charset_in_str.
1700 (lisp_data_to_selection_data): Likewise.
1701
5f64c9e0
GM
17022000-05-19 Gerd Moellmann <gerd@gnu.org>
1703
2b63d473
GM
1704 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1705 buffer.
1706
5f64c9e0
GM
1707 * dispextern.h (Vimage_types): Add extern declaration.
1708
1709 * xdisp.c (Vimage_types): Moved here from xfns.c.
1710 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1711
1712 * xfns.c (Vimages_types): Moved to xdisp.c.
1713 (syms_of_xfns): Move `image-types' to xdisp.c.
1714
1715 * w32fns.c (Vimage_types): Removed.
1716 (syms_of_w32fns): Remove `image-types'.
1717
813086ea
KH
17182000-05-18 Kenichi Handa <handa@etl.go.jp>
1719
1720 * fns.c (map_char_table): Pay attention to character number of
1721 charset. Check the validity of charset at the first level. For
1722 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1723 the default value.
1724
1725 * fontset.c: Include "buffer.h".
1726 (fs_load_font): If the face has fontset, record the face ID in
1727 that fontset.
1728 (Finternal_char_font): New function.
1729 (accumulate_font_info): New function.
1730 (Ffontset_info): Rewritten for the new fontset implementation.
1731 (syms_of_fontset): Register Vdefault_fontset in the first element
1732 of Vfontset_table. Include Vdefault_fontset in
1733 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1734 function.
1735
bdaebbf0
DL
17362000-05-16 Dave Love <fx@gnu.org>
1737
1738 * m/iris5d.h: Deleted -- unused.
1739
cb613bb8
GM
17402000-05-16 Gerd Moellmann <gerd@gnu.org>
1741
b15f3b77
GM
1742 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1743 `invalid' instead of `illegal'.
1744
1745 * indent.c (Fmove_to_column): When ending within a tab, insert
1746 spaces first so that markers at the end of the tab get adjusted.
1747
835c1b36
GM
1748 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1749 buffer list that wasn't selected in that frame.
1750
cb613bb8
GM
1751 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1752 is needed on mescaline, use a 2 char prefix, and call
1753 make_temp_name with second arg non-zero.
1754
1755 * fileio.c (make_temp_name): New function, extracted from
1756 Fmake_temp_name.
1757 (Fmake_temp_name): Use it.
1758
f685bea9
EZ
17592000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1760
1761 * window.c (coordinates_in_window): Subtract 1 when computing
1762 right_x.
1763
a1b8d58b
GM
17642000-05-15 Gerd Moellmann <gerd@gnu.org>
1765
1766 * Makefile.in (lisp): Add env.elc.
1767
1768 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1769
a265079f
GM
17702000-05-12 Gerd Moellmann <gerd@gnu.org>
1771
1772 * search.c (Freplace_match): Handle case of `\N' in the
1773 replacement when there's no group N.
1774
da4496b6
GM
17752000-05-11 Gerd Moellmann <gerd@gnu.org>
1776
0ace421a
GM
1777 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1778 of the message to message_dolog.
1779
1172eb8d
GM
1780 * keyboard.c (read_char): Don't clear current message for help
1781 events; let the code handling help events handle this. Change
1782 code detecting help events that should be ignored.
1783
da4496b6
GM
1784 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1785 we're interating over a string.
1786
0623e40f
DL
17872000-05-09 Dave Love <fx@gnu.org>
1788
1789 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1790 that offset before writing. Move gcpro region past call of
1791 Ffile_regular_p.
1792
bae2503b
DL
17932000-05-04 Dave Love <fx@gnu.org>
1794
1795 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1796
ec82fb2f
GM
17972000-05-04 Gerd Moellmann <gerd@gnu.org>
1798
1799 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1800 of inserted characters when BUF equals the current buffer, and PT
1801 is in front of or equal to FROM.
1802
cbf18892
GM
18032000-05-03 Gerd Moellmann <gerd@gnu.org>
1804
4ff40dd0
GM
1805 * xdisp.c (handle_single_display_prop): If display property value
1806 is invalid, or something not supported on the frame, restore
1807 iterator's position to what it was initially. Make sure to return
1808 0 for invalid and unsupported property values.
1809
cbf18892
GM
1810 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1811 that x_per_char_metric returns null.
1812
1b0672c3
GM
18132000-05-02 Gerd Moellmann <gerd@gnu.org>
1814
576da55d
GM
1815 * xterm.h (struct face): Add forward declaration.
1816 (struct image): Ditto.
1817 (image_ascent): Add prototype.
1818
1819 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1820 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1821 image_ascent instead of using IMAGE_ASCENT.
1822
1823 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1824 (IMAGE_ASCENT): Removed.
1825
1826 * xfns.c (Qcenter): New variable.
1827 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1828 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1829 (image_ascent): New function.
1830 (lookup_image): Recognize `:ascent center'.
1831 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1832 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1833 (xbm_load): Don't set image's ascent here.
1834 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1835 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1836 check ascent values here.
1837 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1838 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1839 (syms_of_xfns): Initialize Qcenter.
1840
1b0672c3
GM
1841 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1842 to the limits, increase the limits.
1843
0d7811ed
KH
18442000-05-01 Kenichi Handa <handa@etl.go.jp>
1845
1846 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1847 Check Vfont_encoding_alist against the full name of the opened
1848 font.
1849
a943a5ca
GM
18502000-04-28 Gerd Moellmann <gerd@gnu.org>
1851
1852 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1853 taller than the window.
1854
5dba1e29
KH
18552000-04-28 Kenichi Handa <handa@etl.go.jp>
1856
1857 * xfaces.c (realize_x_face): Fix the argument of the second
1858 xassert. BASE_FACE may not be a face for ASCII.
1859
353964e3
GM
18602000-04-27 Gerd Moellmann <gerd@gnu.org>
1861
c76e04a8
GM
1862 * print.c (print_object): Treat print-length < 0 as nil.
1863
1864 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1865
1866 * s/freebsd.h (TERMCAP_OBJ): Removed.
1867 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1868
1869 * lread.c (read1): Don't treat period followed by certain
1870 characters as symbol start.
1871
1872 * xfns.c (slurp_file): New function.
1873 (xbm_image_p): Handle case of in-memory XBM files.
1874 (xbm_scan): Rewritten to work on memory buffers instead of files.
1875 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1876 Work on memory buffers instead of files. If DATA is null test
1877 if buffer looks like an in-memory XBM file.
1878 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1879 memory buffers instead of files.
1880 (xbm_file_p): New function.
1881 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1882
353964e3
GM
1883 * lread.c (end_of_file_error): New function.
1884 (read1): Call it instead of signaling `end-of-file' directly.
1885
427ec082 1886 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1887 with Fprinc instead of Fprin1.
1888
24d744ac
KR
18892000-04-26 Ken Raeburn <raeburn@gnu.org>
1890
1891 * window.c (freeze_window_start): Check that minibuffer scroll
1892 window isn't nil before extracting the window structure pointer
1893 from it.
1894
1895 * undo.c (record_delete): If we hit the end of the undo list, stop
1896 picking elements apart.
1897
7464346d
GM
18982000-04-26 Gerd Moellmann <gerd@gnu.org>
1899
1900 * xdisp.c (display_line): If lines are continued, restore
1901 iterator's ascent/descent information to the values before the
1902 first glyph not fitting on the line.
1903
612839b6
GM
19042000-04-25 Gerd Moellmann <gerd@gnu.org>
1905
1906 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1907 positions in glyph matrix. Don't compute new window end
1908 positions.
1909
1910 * dispnew.c (increment_matrix_positions): Renamed from
1911 increment_glyph_matrix_buffer_positions.
1912 (increment_row_positions): Renamed from
1913 increment_glyph_row_buffer_positions.
1914
1915 * dispextern.h: Change names of renamed functions from dispnew.c
1916 in prototypes.
1917
cc181e95
GM
19182000-04-24 Gerd Moellmann <gerd@gnu.org>
1919
abfcc168
GM
1920 * fileio.c (Fdo_auto_save): Create directories for auto-save
1921 list file if necessary.
1922
cc181e95
GM
1923 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1924 from buffer or frame.
1925 (automatic_hscrolling_p): New variable.
1926 (hscroll_windows): Scroll windows horizontally only if automatic
1927 hscrolling is allowed.
1928 (syms_of_xdisp): New variable `automatic-hscrolling'.
1929
1930 * frame.h (struct frame): Add member extra_line_spacing.
1931
1932 * xfns.c (x_set_line_spacing): New function.
1933 (Fx_create_frame): Set line spacing from resources.
1934 (Qline_spacing): New variable.
1935 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1936
cc181e95
GM
1937 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1938
1939 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1940 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1941 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1942 extra_line_spacing from default value.
1943 (init_buffer_once): Initialize default value of extra_line_spacing.
1944
1945 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1946 and extra3.
1947
1948 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1949 prompt_width. Add extra line spacing.
1950
1951 * term.c (produce_glyphs): Remove reference to struct it's
1952 prompt_width.
1953
1954 * dispextern.h (struct it): Remove member prompt_width, add
1955 extra_line_spacing.
1956
58827478
GM
19572000-04-22 Gerd Moellmann <gerd@gnu.org>
1958
1959 * dispnew.c (update_frame_line): When writing a whole line, make
1960 sure cursor is in the right row afterwards, otherwise a use of
1961 capability `ch' in cmgoto might leave the cursor in the row below.
1962
25a87f42
GM
19632000-04-21 Gerd Moellmann <gerd@gnu.org>
1964
1965 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1966
1967 * keyboard.c (timer_check): Fix typo in comment.
1968
54edf5c2
KH
19692000-04-21 Kenichi Handa <handa@etl.go.jp>
1970
1971 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1972 name change: ch -> character.
1973
3a64eef5
GM
19742000-04-20 Gerd Moellmann <gerd@gnu.org>
1975
1976 * keyboard.c (echo_message_buffer): New variable.
1977 (echo_now): Set echo_message_buffer to the echo area buffer used
1978 to display the echo.
1979 (cancel_echoing): Reset echo_message_buffer to nil.
1980 (read_char): Code rewritten that handles canceling an echo or
1981 echoing a dash, respectively.
1982
1983 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1984 directory doesn't exist.
1985
6142fdcb
DL
19862000-04-19 Dave Love <fx@gnu.org>
1987
1988 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1989 (concat): Don't allow numeric args.
1990 (Fconcat): Doc change.
6142fdcb 1991
ac6b5352
SM
19922000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1993
1994 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1995 instead define end_match(1|2) more carefully.
1996 Use GET_CHAR_BEFORE_2 for `begline'.
1997
cb9215e4
GM
19982000-04-19 Gerd Moellmann <gerd@gnu.org>
1999
5e3dac3f
GM
2000 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2001 on 64-bit systems where NULL is defined as `0'.
2002
2003 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2004 the `variable argument list' to make it work on Alpha.
2005
cb9215e4
GM
2006 * m/alpha.h (_LP64) [!_LP64]: Define.
2007 (ORDINARY_LINK): Define for NetBSD.
2008
2009 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 2010
f532dca0
DL
20112000-04-19 Dave Love <fx@gnu.org>
2012
c750667e
DL
2013 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2014 change.
2015
2016 * Makefile.in (LIBS): Don't use.
2017 (GETLOADAVG_OBJ): Define again.
2018 (otherobj): Add GETLOADAVG_OBJ.
2019
f532dca0
DL
2020 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2021
1c7e22fd
GM
20222000-04-18 Gerd Moellmann <gerd@gnu.org>
2023
f6d3257b
GM
2024 * lread.c (read_filtered_event): Cancel and start busy cursor.
2025
427ec082 2026 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
2027 that the per-character metrics may be null.
2028
e10f64e7
GM
20292000-04-17 Gerd Moellmann <gerd@gnu.org>
2030
0daee095
GM
2031 * buffer.c (clone_per_buffer_values): New function.
2032 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2033 clone_per_buffer_values if CLONE is not nil.
2034
e10f64e7
GM
2035 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2036
38687d43
DL
20372000-04-16 Dave Love <fx@gnu.org>
2038
2039 * Makefile.in: Remove obsolete localcpp stuff.
2040 (GETLOADAVG_OBJ): Don't define.
2041 (obj): Move LIBOBJS...
2042 (otherobj): ... to here.
2043 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2044 whitespace-only lines after the continuation (Irix).
2045
c21c7262
GM
20462000-04-14 Gerd Moellmann <gerd@gnu.org>
2047
2048 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2049
2050 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2051
314767c0
DL
20522000-04-14 Dave Love <fx@gnu.org>
2053
2054 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2055 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2056 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2057 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2058 NLIST_STRUCT.
2059
2060 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2061 autoconfiscated HAVE_GETLOADAVG.
2062
2063 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2064 BROKEN_MKTIME.
2065
a2522dca
GM
20662000-04-14 Gerd Moellmann <gerd@gnu.org>
2067
2068 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2069 (fill_in_lock_file_name): Avoid existing files that aren't
2070 links.
2071
33744b5d
DL
20722000-04-14 Dave Love <fx@gnu.org>
2073
c21c7262 2074 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2075 (INTERVAL_SRC): Convert to make variable.
2076 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2077 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2078 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2079 add LIBOBJS.
2080 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2081 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2082 (shortlisp): Add facemenu, float-sup, frame.
2083 (SOME_MACHINE_LISP): Remove them from here.
2084 (LIBES): Change unused LDLIBS to autoconf LIBS.
2085
2086 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2087
9d3d5916
KH
20882000-04-14 Kenichi Handa <handa@etl.go.jp>
2089
2090 * composite.c (update_compositions): If FROM and TO are not in a
2091 valid range, do nothing.
2092
198e3c7a
GM
20932000-04-13 Gerd Moellmann <gerd@gnu.org>
2094
2095 * tparam.c (tparam1): Abort when encountering an unknown
2096 `%'-specifier.
2097
2098 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2099 terminfo.o.
2100
2101 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2102 as TERMCAP_OBJ.
2103
055a28c9
EZ
21042000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2105
2106 * fileio.c (a_write): Remove redundant semi-colons.
2107 (e_write): Return -1 if failed to write all the data.
2108 This fixes the changes made at 1999-12-15.
2109
f5c75033
DL
21102000-04-12 Dave Love <fx@gnu.org>
2111
2112 * fns.c (mapcar1): Test for null vals to support mapc.
2113 (Fmapc): New function.
2114
0c3cfc51
EZ
21152000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2116
2117 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2118 (IT_frame_up_to_date): Support the buffer local value of
2119 cursor-type, if defined.
2120
33465a31
DL
21212000-04-10 Dave Love <fx@gnu.org>
2122
2123 * editfns.c (preceding-char, following-char): Doc fix.
2124
6ed56568
KR
21252000-04-10 Ken Raeburn <raeburn@gnu.org>
2126
2127 * Makefile.in (temacs): Revert 2000-03-12 change.
2128
7cf80d4e
JR
21292000-04-10 Jason Rumney <jasonr@gnu.org>
2130
2131 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2132
34f3f342
GM
21332000-04-10 Gerd Moellmann <gerd@gnu.org>
2134
1a1b1895
GM
2135 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2136 area buffer, if it's not set up yet.
2137
34f3f342
GM
2138 * indent.c (compute_motion): Set immediate_quit.
2139
be0dbdab
GM
21402000-04-09 Gerd Moellmann <gerd@gnu.org>
2141
c45be9ac
GM
2142 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2143 variable.
2144 (realize_tty_face): Suppress boldness if colors are the inverse of
2145 the default colors, and tty_suppress_bold_inverse_default_colors_p
2146 is set.
2147 (Ftty_suppress_bold_inverse_default_colors): New function.
2148 (syms_of_xfaces): Defsubr it.
2149
be0dbdab
GM
2150 * buffer.c (Frestore_buffer_modified_p): New function.
2151 (syms_of_buffer): Defsubr it.
2152
e8413c3b
KR
21532000-04-08 Ken Raeburn <raeburn@gnu.org>
2154
87f67317
KR
2155 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2156 charset id (int) argument, not a charset (Lisp_Object).
2157
e8413c3b
KR
2158 * coding.h (code_convert_string): Declare.
2159 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2160 object, as the fourth argument to code_convert_string.
2161
2162 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2163 value.
2164 (Fset_fontset_font): Use EQ to compare lisp objects.
2165
7c752c80
KR
21662000-04-05 Ken Raeburn <raeburn@gnu.org>
2167
c0333abc
KR
2168 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2169 a pointer that looks like a lisp object.
2170 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2171 zero, instead see whether it's an integer object, since they can't
2172 have intervals.
2173 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2174
7c752c80
KR
2175 * dispnew.c (allocate_matrices_for_frame_redisplay,
2176 direct_output_forward_char): Use X(U)INT and make_number as needed
2177 to convert between (unsigned) int values and lisp integers.
2178 * keyboard.c (read_key_sequence): Likewise.
2179 * lread.c (substitute_object_recurse): Likewise.
2180 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2181 * minibuf.c (do_completion, Fminibuffer_complete_word,
2182 Fminibuffer_completion_help): Likewise.
2183 * term.c (produce_special_glyphs): Likewise.
2184
2185 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2186 * print.c (print_preprocess, print_object): Likewise.
2187
2188 * search.c (compile_pattern): Use NILP when checking for nil.
2189
74e49b38
KR
2190 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2191 __OPTIMIZE__]: Provide a GNU C macro version that handles
2192 lisp-object unions.
2193 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2194 field, to better cope with ENABLE_CHECKING and calls that modify a
2195 Lisp_Object using its old value.
2196
685e5ed2
GM
21972000-04-04 Gerd Moellmann <gerd@gnu.org>
2198
c407c570
GM
2199 * window.c (compare_window_configurations): Signal an error
2200 if parameters C1 or C2 aren't window configurations.
2201
685e5ed2
GM
2202 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2203 AFTER_POTENTIAL_GC calls around calls to functions that can
2204 signal an error and thus invoke the debugger.
2205
587a49ab
GM
22062000-04-03 Gerd Moellmann <gerd@gnu.org>
2207
62f20204
GM
2208 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2209 an error if decoding fails.
2210
587a49ab
GM
2211 * keyboard.c (lispy_mouse_names): Variable removed.
2212 (Vlispy_mouse_stem): New variable.
2213 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2214 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2215 for any mouse button number. Increase size of mouse_syms and
2216 button_down_location as needed. Call modify_event_symbol with
2217 different arguments.
2218 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2219 Call modify_event_symbol with different arguments.
2220 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2221 for any button number. Call modify_event_symbol with different
2222 arguments.
2223 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2224 Accept a string for NAME_ALIST_OR_STEM.
2225
2226 * lisp.h (larger_vector): Add prototype.
2227
2228 * fns.c (larger_vector): Make externally visible.
2229
2230 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2231
2d1675e4
SM
22322000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2233
2234 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2235 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2236 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2237 we are between str1 and str2.
2238 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2239 (PATFETCH): Use `TRANSLATE'.
2240 (PATFETCH_RAW): Fetch multibyte char if applicable.
2241 (PATUNFETCH): Remove.
2242 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2243 When writing a char, write it directly into the pattern buffer rather
2244 than going needlessly through a temp char-array.
2245 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2246 multibyte magic and remove the useless `#ifdef emacs'.
2247 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2248 buffer.
2249
2250 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2251 conditional on `emacs'.
2252
2253 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2254
cc2d8c6b
KR
22552000-04-01 Ken Raeburn <raeburn@gnu.org>
2256
2257 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2258 non-union-type versions of XMARK and friends here, because XMARK
2259 and friends won't work on an integer field if NO_UNION_TYPE is not
2260 defined.
2261 (make_number): Define as a function if it's not defined as a
2262 macro.
2263
09654086
KR
2264 * composite.c (run_composite_function): Use NILP when checking for
2265 nil.
2266 (syms_of_composite): Delete local var NARGS, pass an int as first
2267 argument to Fmake_hash_table.
2268
2387b382
KR
2269 * editfns.c (text_property_stickiness): Use NILP to test
2270 Lisp_Object boolean value.
2271 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2272 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2273 problems reading from and changing the same lisp value in an
2274 XSETSTRING call.
2275
27660e89
GM
22762000-04-01 Gerd Moellmann <gerd@gnu.org>
2277
2278 * term.c (TN_no_color_video): New variable.
2279 (term_init): Intitialize TN_no_color_video.
2280 (enum no_color_bit): New enumeration.
2281 (MAY_USE_WITH_COLORS_P): New macro.
2282 (turn_on_face): Use it to determine if attributes may be used
2283 combined with colors.
2284
3578db3c
KR
22852000-04-01 Ken Raeburn <raeburn@gnu.org>
2286
2287 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2288 with int lvalues via casts; instead, just yield lisp object
2289 lvalues.
2290 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2291 proper accessor macros.
2292 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2293 (grow_mini_window): Fix typo getting int value of root->height.
2294
6fc556fd
KR
2295 * xdisp.c (compute_string_pos): Fix order of arguments to
2296 string_pos_nchars_ahead.
2297 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2298 count arg to variable-arg routines like Frun_hook_with_args and
2299 Fformat.
587a49ab
GM
2300 (back_to_previous_visible_line_start)
2301 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2302 fixed-arg routines like Fget_char_property and Fmake_string.
2303 (reconsider_clip_changes): Use XINT when comparing integer lisp
2304 objects, or passing them as int arguments.
587a49ab
GM
2305 (mark_window_display_accurate, insert_left_trunc_glyphs)
2306 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2307 storing or passing integer values as lisp objects.
2308 (set_cursor_from_row, highlight_trailing_whitespace): Use
2309 INTEGERP, not implicit test against zero, for glyph object.
2310 (try_window_id): Don't use make_number when we want an int value.
2311
2312 * xfaces.c (xlfd_symbolic_value): Make last argument a
2313 Lisp_Object, to be consistent with callers.
2314 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2315 (lface_hash): Apply XFASTINT to lisp values before folding in.
2316
2317 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2318 fill in window width and height. Pass an int, not a lisp object,
2319 as first arg to Finsert.
2320
6e7b2457
GM
23212000-04-01 Gerd Moellmann <gerd@gnu.org>
2322
610d841e
GM
2323 * xfaces.c (realize_basic_faces): Block input while realizing
2324 the faces.
2325
6e7b2457
GM
2326 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2327
2328 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2329
aa110c0c
GM
23302000-03-31 Gerd Moellmann <gerd@gnu.org>
2331
2332 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2333 or ASCII, handle case that per-char metric is null.
aa110c0c 2334
8801a864
KR
23352000-03-30 Ken Raeburn <raeburn@gnu.org>
2336
c6129d7e
KR
2337 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2338
8801a864
KR
2339 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2340 XSUBR, XBUFFER): Verify correct object type before returning
2341 pointer, using eassert.
2342 * frame.h (XFRAME): Likewise.
2343
2344 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2345 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2346 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2347 type.
2348 * data.c (set_internal): Likewise.
2349 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2350 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2351 * fileio.c (auto_save_1): Likewise.
2352 * insdel.c (check_markers): Likewise.
2353 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2354 * undo.c (record_insert): Likewise.
2355 * vmsproc.c (child_sig): Likewise.
2356 * window.c (unshow_buffer, window_loop): Likewise.
2357 * xterm.c (x_erase_phys_cursor): Likewise.
2358
8e7af858
GM
23592000-03-30 Gerd Moellmann <gerd@gnu.org>
2360
2361 * xfns.c (free_image_cache): Free the cache structure itself
2362 last, after all its members have been freed.
2363
2364 * lisp.h (xstrdup): Add prototype.
2365
2366 * alloc.c (xstrdup): Moved here from xfaces.c.
2367 (allocating_for_lisp): Variable removed.
2368 (lisp_malloc): Block input around the calls to malloc and
2369 mem_insert.
2370
2371 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2372 of Fsymbol_value.
2373 (xstrdup): Moved to alloc.c.
2374
e0b8c689
KR
23752000-03-29 Ken Raeburn <raeburn@gnu.org>
2376
b96f9fb7
KR
2377 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2378
2379 * emacs.c (main): Fix sense of no-loadup test.
2380
e0b8c689
KR
2381 * config.in (ENABLE_CHECKING): Undef.
2382
2383 * lisp.h (struct interval): Replace "parent" field with a union of
2384 interval pointer and Lisp_Object; add new bitfield to use as
2385 discriminant. Change other flag fields to bitfields.
2386 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2387 is defined and the supplied test fails, print a message and
2388 abort.
2389 (eassert): New macro. Use CHECK to provide an assert-like
2390 facility.
2391
2392 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2393 pointers; abort if the value looks like a lisp object.
2394 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2395 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2396 Modify for new interval parent definition.
2397
2398 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2399 UNMARK_BALANCE_INTERVALS): Update references that need an
2400 addressable lisp object in the interval structure.
2401 (die): New function.
2402 (suppress_checking): New variable.
2403
2404 * intervals.c (interval_start_pos): Just return 0 if there's no
2405 parent object.
2406
f83c5440
GM
24072000-03-29 Gerd Moellmann <gerd@gnu.org>
2408
2409 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2410 and earlier Emacs versions.
2411
2412 * keyboard.c (Ftop_level): Cancel busy-cursor.
2413
2414 * eval.c (call_debugger): Cancel busy-cursor.
2415
fdce64ff
KH
24162000-03-29 Kenichi Handa <handa@etl.go.jp>
2417
2418 * search.c (Freplace_match): Adjust multibyteness of the current
2419 buffer and NEWTEXT. Free allocated memory before signaling an
2420 error.
2421
f6a3f532
SM
24222000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2423
2424 * regex.c (analyse_first): New function obtained by ripping out most
2425 of re_compile_fastmap and generalizing it a little bit so that it
2426 can also just return whether a given (sub)pattern can match the empty
2427 string or not.
2428 (regex_compile): Use `analyse_first' to decide whether the loop-check
2429 needs to be done or not for *, +, *? and +? (the loop check is costly
2430 for non-greedy repetition).
2431 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2432
e9b309ac
DL
24332000-03-28 Dave Love <fx@gnu.org>
2434
bb15bd9a
DL
2435 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2436 alpha.
2437
e9b309ac
DL
2438 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2439
ed0767d8
SM
24402000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2441
2442 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2443 an expression.
2444 (enum re_opcode_t): Update description of succeed_n.
2445 (PATFETCH): Always define.
2446 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2447 operators, char classes, shy-groups and intervals).
2448 Optimize special cases of intervals so as to only use succeed_n and
2449 jump_n when really needed.
2450 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2451 that we don't have to handle the special cases any more.
2452 Simplify on_failure_jump handling as well.
2453
e11e7e46
JR
24542000-03-28 Jason Rumney <jasonr@gnu.org>
2455
2456 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2457
88faab89
GM
24582000-03-27 Gerd Moellmann <gerd@gnu.org>
2459
182ff242
GM
2460 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2461
2462 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2463
182ff242
GM
2464 * alloc.c (mark_maybe_object): New function.
2465 (mark_memory): Use it.
2466 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2467 (setjmp_tested_p, longjmp_done): New variables.
2468 (test_setjmp): New function.
2469 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2470 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2471
c1005d06
GM
2472 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2473 to DEC_TEXT_POS and INC_TEXT_POS.
2474
2475 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2476 with parameter MULTIBYTE_P.
2477
427ec082 2478 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2479 MULTIBYTE_P.
2480
7439e5b9 2481 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2482 buffers because it looks for multibyte character byte sequences
2483 which don't exist in unibyte text.
7439e5b9 2484
d9c545da
GM
2485 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2486
11fd416e 2487 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2488 [DEBUG_X_COLORS]: New functions.
2489 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2490
2491 * xfns.c (x_set_cursor_color): Get color reference counts right.
2492
2493 * xterm.c (x_copy_color): New function.
2494 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2495
2496 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2497 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2498 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2499 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2500 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2501 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2502 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2503 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2504 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2505 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2506
11fd416e
GM
2507 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2508 names for handling per-buffer variables.
d9c545da
GM
2509
2510 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2511 instead of MAX_BUFFER_LOCAL_VARS.
2512 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2513
2514 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2515
88faab89
GM
2516 * xfns.c (x_specified_cursor_type): New function.
2517 (x_set_cursor_type): Use it.
2518
2519 * buffer.h (struct buffer): Add cursor_type.
2520
d80f42b7
SM
25212000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2522
2523 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2524 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2525 opcode.
d80f42b7
SM
2526 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2527 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2528 executing it as well as when popping it off the stack to find infinite
2529 loops in non-greedy repetition operators.
2530
89e80928
GM
25312000-03-26 Gerd Moellmann <gerd@gnu.org>
2532
3d4ff2dd
GM
2533 * doc.c (Qfunction_documentation): New variable.
2534 (syms_of_doc): Initialize Qfunction_documentation.
2535 (Fdocumentation): If FUNCTION is a symbol with non-nil
2536 `function-documentation' property, return a documentation derived
2537 from that.
2538
bd96bd79
GM
2539 * buffer.c (syms_of_buffer): Add default-cursor-type.
2540 (init_buffer_once): Don't let cursor_type have a local value
2541 in every buffer.
2542
19d1bc27
GM
2543 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2544 on buffer-local value of cursor_type.
2545 (x_draw_bar_cursor): Add parameter WIDTH.
2546
2547 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2548 (init_buffer_once): Set default cursor_type value to t.
2549 Mark cursor_type as local everywhere.
2550 (syms_of_buffer): New per-buffer variable cursor-type.
2551
89e80928
GM
2552 * buffer.h (struct buffer): Remove member local_var_flags,
2553 add local_flags.
2554 (MAX_BUFFER_LOCAL_VARS): New macro.
2555 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2556 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2557 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2558 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2559
2560 * print.c (print_object): Use new macros for per-buffer
2561 variables.
2562
2563 * category.c (Fset_category_table): Use new macros for per-buffer
2564 variables.
2565
2566 * buffer.c (buffer_permanent_local_flags): Make a char array.
2567 (max_buffer_local_idx): New variable.
2568 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2569 for new handling of per-buffer variables.
2570 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2571 (init_buffer_once): Initialize per-buffer vars differently.
2572 Set max_buffer_local_idx.
2573
2574 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2575 variables.
2576
2577 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2578 variables.
2579
2580 * data.c (do_symval_forwarding, store_symval_forwarding)
2581 (find_symbol_value, set_internal, default_value, Fset_default)
2582 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2583 per-buffer variables.
2584
2585 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2586
9a0dd3dc
GM
25872000-03-24 Gerd Moellmann <gerd@gnu.org>
2588
b68c375f
GM
2589 * xterm.c (x_term_init): Unblock input around call1 of
2590 Qvendor_specific_keysyms.
2591
9a0dd3dc
GM
2592 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2593 (find_defun_start): Consider an open parenthesis in column 0
2594 a defun start only if open_paren_in_column_0_is_defun_start is set.
2595 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2596
7973e637
SM
25972000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2598
2599 * eval.c (Fautoload): Add entry in load-history (if after dump).
2600 * lread.c (load-history): Update docstring.
2601
39210e90
GM
26022000-03-24 Gerd Moellmann <gerd@gnu.org>
2603
2604 * indent.c (Fvertical_motion): Always use the current buffer.
2605 Temporarily change the window's buffer, if necessary.
2606
72db3ab5
GM
26072000-03-23 Gerd Moellmann <gerd@gnu.org>
2608
2609 * xterm.c (fast_find_position): Make sure not to consider rows
2610 not visible in the window.
2611
990b2375
SM
26122000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2613
2614 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2615 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2616
ff4df011
JR
26172000-03-22 Jason Rumney <jasonr@gnu.org>
2618
2619 * w32menu.c (single_submenu): Set help string to NULL if none.
2620 (w32_menu_show): Set help string correctly.
2621 (add-menu-item): Set help string in MIIM_DATA for menu item.
2622 Load SetMenuItemInfoA explicitly.
2623 (w32_menu_display_help): New function.
427ec082 2624
ff4df011
JR
2625 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2626 (QCdata): Moved to xdisp.c.
2627
2628 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2629 (Vw32_charset_to_codepage_alist): Removed.
2630 (Vw32_charset_info_alist): New variable.
2631 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2632 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2633 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2634 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2635 with TODO comment.
2636 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2637 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2638 Define Vw32_charset_info_alist and w32_charset symbols.
2639
26402000-03-22 Jason Rumney <jasonr@gnu.org>
2641
2642 * makefile.nt (w32bdf.obj): Update dependencies.
2643
2644 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2645
2646 * w32fns.c: Include fontset.h after dispextern.h.
2647 (Fx_create_frame): Do not create fontset.
2648 (w32_load_system_font): Doc fix.
2649 (Fx_close_connection): Free full_name if it is not shared.
2650
2651 * w32term.c: Include fontset.h after dispextern.h.
2652 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2653 updated.
2654 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2655 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2656 (w32_font_is_double_byte): New function, needs body.
2657 (x_append_glyph): Set glyph->glyph_not_available_p.
2658 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2659 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2660 character, convert it to a unibyte character.
2661 (struct glyph_string): Delete member `charset'.
2662 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2663 calculating it is found.
2664 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2665 the case that per char metric is not available correctly.
2666 (x_fill_glyph_string): Handle the case that the specific glyph is
2667 not available correctly.
2668 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2669 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2670 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2671 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2672 fontset. Don't call FS_LOAD_FONT.
2673
439d5cb4
KR
26742000-03-22 Ken Raeburn <raeburn@gnu.org>
2675
2676 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2677 (INT_LISPLIKE): New macro.
2678 (NULL_INTERVAL_P): Use it.
2679 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2680 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2681 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2682
2683 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2684 explicit references to "parent" field of struct interval and
2685 associated unclean type conversions.
2686 * intervals.c (create_root_interval, root_interval, rotate_right,
2687 rotate_left, balance_possible_root_interval, split_interval_right,
2688 split_interval_left, interval_start_pos, find_interval,
2689 next_interval, previous_interval, update_interval,
2690 adjust_intervals_for_insertion, delete_node, delete_interval,
2691 adjust_intervals_for_deletion, merge_interval_right,
2692 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2693 copy_intervals_to_string): Likewise.
2694 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2695 Likewise.
2696 * syntax.c (update_syntax_table): Likewise.
2697
2698 * intervals.c (reproduce_tree_obj): New function, like
2699 reproduce_tree but takes a Lisp_Object for the parent. Declare
2700 with prototype.
2701 (graft_intervals_into_buffer): Use it when appropriate.
2702 (reproduce_tree): Declare with prototype.
2703 (balance_possible_root_interval): Check that the parent is a lisp
2704 object before trying to examine its type.
2705
ee1c5b21
GM
27062000-03-22 Gerd Moellmann <gerd@gnu.org>
2707
2708 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2709 as strings only if both are known to be strings.
2710
2711 * s/openbsd.h (LIBS_TERMCAP): Undef.
2712
1fb352e0
SM
27132000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2714
2715 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2716 definitions for non-Emacs compilation.
2717 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2718 outside of `#ifdef emacs'.
2719 (print_partial_compiled_pattern): Update.
2720 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2721 (re_compile_fastmap): Merge handling of charset and charset_not (for
2722 emacs and non-emacs compilation as well).
2723 Similarly for (not)categoryspec and (not)syntaxspec.
2724 Don't use the fastmap when reaching `anychar' since the added
2725 complexity is not justified.
2726 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2727 and (not)syntaxspec. Merge (not)categoryspec.
2728
fdaa1f77
KH
27292000-03-22 Kenichi Handa <handa@etl.go.jp>
2730
ff1a0d8e
KH
2731 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2732 FACE_FOR_CHAR): Define them differently for the configuration of
2733 --without-x.
fdaa1f77 2734
d152fb46
DL
27352000-03-21 Dave Love <fx@gnu.org>
2736
2737 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2738 doc string.
2739
d2cafc8c
GM
27402000-03-21 Gerd Moellmann <gerd@gnu.org>
2741
2742 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2743 (lface_fully_specified_p): Don't check contents of
2744 LFACE_FONT_INDEX because that attribute is optional.
2745 (realize_x_face): Remove now unwarranted xassert.
2746
9111d4b5
KH
27472000-03-21 Kenichi HANDA <handa@etl.go.jp>
2748
2749 The following changes are to make font selection based on
2750 characters, not charset. In addition, they recover fontset
2751 facilities while utilizing the new font selection mechanism.
2752
6c4bfdc0
KH
2753 * Makefile.in (fontset.o): Depend on dispextern.h.
2754
2755 * alloc.c (mark_face_cache): Don't mark face->registry.
2756
9111d4b5
KH
2757 * dispextern.h (struct glyph): New member glyph_not_available_p.
2758 Use 22 bits for face_id.
2759 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2760 (struct face): Delete member registry, new member ascii_face.
2761 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2762 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2763 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2764 (struct it): Delete member charset, new member
2765 glyph_not_available_p.
2766
2767 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2768 (struct fontset_info, struct fontset_data): Structs removed.
2769 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2770 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2771 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2772 (fs_free_face_fontset, fontset_font_pattern,
2773 face_suitable_for_char_p, face_for_char,
2774 make_fontset_for_ascii_face): Extern them.
2775 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2776 (FS_LOAD_FACE_FONT): New macro.
2777
2778 * fontset.c: All codes rewritten or adjusted for the change of
2779 fontset implementation. Now fontset is represented by char table.
2780 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2781 removed.
2782 (my_strcasecmp): Function removed.
2783 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2784 variables.
2785 (AREF, ASIZE): New macros.
2786 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2787 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2788 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2789 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2790 fontset_id_valid_p, font_family_registry, fontset_name,
2791 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2792 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2793 New functions.
2794 (fs_load_font): New arg FACE. Caller changed.
2795 (fs_query_fontset): Argument changed. Caller changed.
2796 (Fquery_fontset): call fs_query_fontset.
2797 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2798 Functions removed.
2799 (clear_fontset_elements, check_registry_encoding,
2800 check_fontset_name): New functions.
2801 (syms_of_fontset): Set char-table-extra-slots property of fontset
2802 to 3. Staticpro and initialize Vfontset_table and
2803 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2804
2805 * frame.h (struct frame): Member `fontset_data' removed.
2806 (FRAME_FONTSET_DATA): Macro removed.
2807
2808 * frame.c (make_frame): Don't allocate f->fontset_data.
2809 (Fdelete_frame): Don't free f->fontset_data.
2810
6c4bfdc0
KH
2811 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2812
9111d4b5
KH
2813 * xdisp.c (charset_at_position): Function removed.
2814 (init_iterator): Don't set member charset of struct `it'.
2815 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2816 next_element_from_display_vector, insert_left_trunc_glyphs):
2817 Likewise.
2818 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2819 FACE_FOR_CHARSET.
2820 (get_next_display_element, append_space,
2821 extend_face_to_end_of_line): Likewise.
2822
2823 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2824 Variables removed.
2825 (clear_font_table, frame_update_line_height, load_face_font):
2826 Adjusted for the change of fontset implementation.
2827 (load_face_fontset_font): Function removed.
2828 (pixel_point_size): New function.
2829 (font_list): Argument type changed. Caller changed.
2830 (LFACE_FONT): New macro.
2831 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2832 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2833 Lisp_Object. Determine the font name by actually loading a font
2834 by the specified pattern. Set LFACE_FONT (lface) to the specified
2835 pattern. Even if a font is not found, don't try alternatives.
2836 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2837 (set_font_frame_param): If `font' is specified in lface, use it.
2838 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2839 (lface_same_font_attributes_p): Likewise.
2840 (make_realized_face): Arguent changed. Caller changed. Set
2841 face->ascii_face to face itself.
2842 (free_realized_face): Free face->fontset if face is for ASCII.
2843 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2844 deduce_unibyte_registry, x_charset_registry): Functions removed.
2845 (free_realized_multibyte_face): New function.
2846 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2847 changed. Caller changed.
2848 (try_font_list): Argument type changed.
2849 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2850 (choose_face_font): Argument changed. Handle fontset properly.
2851 (choose_face_fontset_font): Function removed.
2852 (realize_default_face, realize_named_face): Don't remove the
2853 former face here.
2854 (realize_face): Argument changed. Caller changed. Remove face
2855 with the arg former_face_id in advance. Load font for the new
2856 face.
2857 (realize_x_face): Argument changed. Caller changed. For a
2858 multibyte character, share fontset with base_face. For a single
2859 byte character, make a new realized fontset. Don't load a font
2860 here.
2861 (realize_tty_face): Argument changed. Caller changed.
2862 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2863 (face_at_buffer_position): Don't check multibyte_p for returning
2864 DEFAULT_FACE_ID.
2865 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2866 FACE_SUITABLE_FOR_CHARSET_P.
2867 (syms_of_xfaces): Remove code for Qx_charset_registry and
2868 Vface_default_registry.
2869
6c4bfdc0
KH
2870 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2871 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2872 (x_per_char_metric): Don't try FONT->default_char. Even if
2873 pcm->width is zero, glyph bits may exist.
2874 (x_encode_char): Always initialize char2b->byte1.
2875 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2876 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2877 changed.
2878 (x_append_glyph): Set glyph->glyph_not_available_p.
2879 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2880 it->charset. Handle the case that per char metric is not
2881 available. If it->multibyte_p is zero and it->c is a multibyte
2882 character, convert it to a unibyte character.
2883 (struct glyph_string): Delete member `charset'.
2884 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2885 the case that per char metric is not available correctly.
2886 (x_fill_glyph_string): Handle the case that the specific glyph is
2887 not available correctly.
2888 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2889 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2890 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2891 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2892 fontset. Don't call FS_LOAD_FONT.
2893
2894 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2895 (x_create_tip_frame): Likewise.
2896 (Fx_close_connection): Free full_name of font_info.
2897
2898 * fns.c (optimize_sub_char_table): New function.
2899 (Foptimize_char_table): New function.
2900 (syms_of_fns): Defsubr Soptimize_char_table.
2901
b33dd3b0
GM
29022000-03-20 Gerd Moellmann <gerd@gnu.org>
2903
2904 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2905 only if buffer is displayed in some window.
2906
2907 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2908 (try_window_reusing_current_matrix): Don't call scroll run
2909 function if run's current and desired position are the same;
2910 this prevents cursor flickering.
2911
4e8a9132
SM
29122000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2913
2914 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2915
2916 * regex.c (RE_STRING_CHAR): New macro.
2917 (GET_CHAR_AFER_2): Remove.
2918 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2919 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2920 (print_partial_compiled_pattern, re_compile_fastmap)
2921 (re_match_2_internal): Remove on_failure_jump_exclusive.
2922 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2923 optimization only need to work for * (ie. can use of_keep_string_jump).
2924 Remove the special case for .*\n since it is now covered by the general
2925 optimization.
2926 (re_search_2): Don't bother with `room'.
2927 (skip_one_char): New function.
2928 (skip_noops): Simplify since `memory' is not needed any more.
2929 (mutually_exclusive_p): Restructure slightly to use `switch' and
2930 add handling for "all" remaining cases.
2931 (re_match_2_internal): Change on_failure_jump_smart to use
2932 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2933 rather than on_failure_jump_exclusive.
2934
2136fdd4
GM
29352000-03-19 Gerd Moellmann <gerd@gnu.org>
2936
2937 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2938 number of bits per RGB because it's everywhere used as the depth
2939 of the visual.
2940
2941 * term.c (calculate_costs): Remove code dealing with X frames.
2942
e53ae11c
RS
29432000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2944
2945 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2946
d7b511c4
GM
29472000-03-18 Gerd Moellmann <gerd@gnu.org>
2948
2949 * lread.c (read_integer): Unread the last char not consumed.
2950
16b5d424
GM
29512000-03-17 Gerd Moellmann <gerd@gnu.org>
2952
2953 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2954 which are in the process of being deleted.
16b5d424 2955
1fa28578
GM
29562000-03-16 Gerd Moellmann <gerd@gnu.org>
2957
83488cce
GM
2958 * Makefile.in (mostlyclean): Add `*.core'.
2959 (clean): Add `bootstrap-emacs'.
2960
1fa28578
GM
2961 * lread.c (read_integer): New function.
2962 (read1): Support read syntax #o, #x, #b, #r.
2963
99633e97
SM
29642000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2965
1fa28578
GM
2966 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2967 make sure POINTER_TO_OFFSET gives the same value before and after
2968 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2969 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2970 (debug): Now only active if > 0 rather than if != 0.
2971 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2972 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2973 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2974 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2975 (store_op1, store_op2, insert_op1, insert_op2)
2976 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2977 (group_in_compile_stack): Move to after its arg's types are
2978 declared and add a prototype.
99633e97 2979 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2980 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2981 wrapper.
99633e97 2982 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2983 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2984 indentation of the greedy-op and shy-group code.
99633e97
SM
2985 (at_(beg|end)line_loc_p): Fix argument's types.
2986 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2987 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2988 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2989 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2990 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2991 QUIT unconditionally.
99633e97 2992
699238d9
GM
29932000-03-15 Gerd Moellmann <gerd@gnu.org>
2994
2995 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2996 a sole completion.
2997
2998 * process.c (send_process): Add a hint that the function
2999 can call Lisp code to its comment.
3000
3001 * lread.c (load_dangerous_libraries): New variable.
3002 (Vbytecomp_version_regexp): New variable.
3003 (safe_to_load_p): New function.
3004 (Fload): Handle files not compiled with Emacs specially.
3005 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3006
34e23e5a
GM
30072000-03-14 Gerd Moellmann <gerd@gnu.org>
3008
9c763cca
GM
3009 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3010
3011 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3012 support functions only if HAVE_X11R6_XIM is defined.
3013 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3014
3015 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3016
3017 * xfns.c (X_I18N_INHIBITED): Don't define.
3018 (create_frame_xic): Remove conditional compilation on
3019 X_I18N_INHIBITED.
3020 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3021
3022 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3023 (HAVE_X11R6_XIM): Define.
3024
3025 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3026
34e23e5a
GM
3027 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3028 If set, call XSynchronize.
3029
66f0296e
SM
30302000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3031
34e23e5a
GM
3032 * regex.c: Declare a new type `re_char' used throughout the code
3033 for the string char type. It's `const unsigned char' to match the
3034 rest of Emacs. Consistently make sure all pointers to strings use
3035 it and make sure all pointers into the pattern use `unsigned
3036 char'.
66f0296e 3037 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
3038 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3039 code duplication.
66f0296e
SM
3040
3041 * charset.h (GET_CHAR_AFTER_2): Remove.
3042 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3043
854a025c
KR
30442000-03-12 Ken Raeburn <raeburn@gnu.org>
3045
3046 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3047 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3048 of them try to use backquotes.
3049
b9d2c7e2
DL
30502000-03-12 Dave Love <fx@gnu.org>
3051
3052 * unexelf.c: Restore changes of 1999-10-19.
3053 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3054 fix its type and alignment; copy it from current process.
3055
5e5dff44
GM
30562000-03-12 Gerd Moellmann <gerd@gnu.org>
3057
9b2f3c38
GM
3058 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3059 has been found. Fix bug not computing timer's predecessor.
3060
427ec082 3061 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3062 file name.
3063
e1cff360
GM
3064 * window.c (Fsave_window_excursion): Doc fix.
3065
5e5dff44
GM
3066 * xfns.c (x_defined_color): Rewritten to use
3067 x_allocate_nearest_color.
3068
e411ce4b
EZ
30692000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3070
3071 * msdos.c (vga_installed): New function, code moved from
3072 dos_set_window_size.
3073 (Qbar, Qcursor_type, outside_cursor): New variables.
3074 (syms_of_msdos): Intern and staticpro them.
3075 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3076 shape used outside Emacs when called for the first time.
3077 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3078 cursor shape used outside Emacs.
3079 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3080 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3081 type has changed.
3082 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3083 parameters specify the cursor. Make qreverse a global
3084 variable (renamed to Qreverse).
3085
80460654
GM
30862000-03-09 Gerd Moellmann <gerd@gnu.org>
3087
3088 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3089
95cd4c40
SM
30902000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3091
3092 This is a big redesign of failure-stack and register handling, prompted
3093 by bugs revealed when trying to add shy-groups. Overall, what happened
3094 is that loops are now structured a little differently, groups can be
3095 shy and the code is a little simpler.
3096
3097 * regex.h: Update the copyright.
3098 (RE_SHY_GROUPS): New value.
3099 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3100 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3101
80460654
GM
3102 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3103 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3104 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3105 for (start|stop)_memory since they now only take one argument (the
3106 second has becomes unnecessary).
3107 (print_partial_compiled_pattern): Adjust for changes in
3108 re_opcode_t.
3109 (print_compiled_pattern): Use %ld to printf long ints and flush to
3110 make debugging a little easier.
95cd4c40
SM
3111 (union fail_stack_elt): Make the integer unsigned.
3112 (struct fail_stack_type): Add a `frame' element.
3113 (INIT_FAIL_STACK): Init `frame' as well.
3114 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3115 (DEBUG_PUSH, DEBUG_POP): Remove.
3116 (NUM_REG_ITEMS): Remove.
3117 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3118 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3119 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3120 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3121 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3122 macros.
3123 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3124 address pushed is not the destination of the jump but the source
3125 of it instead.
95cd4c40
SM
3126 (NUM_FAILURE_ITEMS): Remove.
3127 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3128 registers before the actual failure point). Don't hardcode any
3129 meaning for str==NULL anymore.
95cd4c40 3130 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3131 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3132 Remove.
95cd4c40
SM
3133 (REG_UNSET_VALUE): Use NULL (why not?).
3134 (compile_range): Remove declaration since it doesn't exist.
3135 (struct compile_stack_elt_t): Remove inner_group_offset.
3136 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3137 (regex_grow_registers): Remove dead code.
3138 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3139 (regex_compile): Add shy-groups Change loops to use
3140 on_failure_jump_smart&jump instead of
3141 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3142 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3143 variable to me). Use `jump' instead of `jump_past_alt' and don't
3144 bother with push_dummy_failure in alternatives since it is now
3145 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3146 emacs' for (re)allocating the stack.
3147 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3148 from loop when bufp->can_be_null rather than jumping to `done'.
3149 Avoid jumping backwards so as to ensure termination. Use
3150 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3151 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3152 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3153 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3154 improve mutually_exclusive_p to handle ".+\n".
3155 (lowest_active_reg, highest_active_reg,
3156 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3157 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3158 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3159 variables. Push register (in `start_memory') on the stack rather
3160 than storing it in old_reg(start|end). Remove the cycle detection
3161 from `stop_memory', replaced by the use of on_failure_jump_loop
3162 for greedy loops. Add code for the new on_failure_jump_<foo>.
3163 Remove ad-hoc code in `on_failure_jump' to push more registers in
3164 the case of a loop. Take out code from `maybe_pop_jump' into
3165 separate functions and adapt it to the semantics of
3166 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3167 and push_dummy_failure. Remove dummy_failure handling and
3168 handling of `failures to jump to on_failure_jump' (this last one
3169 was already dead code, it seems).
3170 (group_match_null_string_p, alt_match_null_string_p)
3171 (common_op_match_null_string_p): Remove.
95cd4c40 3172
7397acc4
DL
31732000-03-08 Dave Love <fx@gnu.org>
3174
3175 * config.in: Don't depend on __STDC__ for volatile.
3176 Add POINTER_TYPE, PTR, PROTOTYPES.
3177
3178 * hftctl.c, strftime.c: Use PROTOTYPES.
3179 * eval.c (find_handler_clause): Likewise.
3180
3181 * mem-limits.h: Use POINTER_TYPE.
3182
3183 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3184 (memory_warnings): Declare using POINTER_TYPE.
3185
5e91ff9e
GM
31862000-03-08 Gerd Moellmann <gerd@gnu.org>
3187
feab4fba
GM
3188 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3189
25edb08f
GM
3190 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3191 collection.
3192
5e91ff9e
GM
3193 * xfns.c: Remove obsolete code in #if 0.
3194 (Fx_focus_frame): New function.
3195
a735b7e1
KH
31962000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3197
3198 * coding.c (coding_category_name): Add coding-category-utf-8,
3199 coding-category-utf-16-be, coding-category-utf-16-le.
3200 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3201 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3202 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3203 (detect_coding_utf_8): New function.
3204 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3205 UTF_16_LOW_SURROGATE_P): New macros.
3206 (detect_coding_utf_16): New function
3207 (detect_coding_mask): When priorities are specified, skip any
3208 categories that have `nil' coding-system. Fix bug of returning
3209 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3210 returns a mask not set in PRIORITIES.
3211 (detect_eol_type_in_2_octet_form): New function.
3212 (detect_eol): selects detect_eol_type_XXX to call according to
3213 cooding->category_idx.
3214 (detect_coding_system): Remove `nil' coding-system in the result.
3215 (Fupdate_coding_systems_internal): Update all coding-categories.
3216
3217 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3218 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3219 macros.
3220 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3221 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3222 CODING_CATEGORY_IDX_UTF_16_LE.
3223 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3224 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3225 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3226 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3227
9994cc69
GM
32282000-03-07 Gerd Moellmann <gerd@gnu.org>
3229
e9b4e5ff
GM
3230 * doc.c (Fdocumentation_property): If value is not a string,
3231 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3232
f7daf1e1
GM
3233 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3234 close the display with XtCloseDisplay. This caused a bus error
3235 on OpenWindows.
3236
9994cc69
GM
3237 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3238 complete but not unique.
3239
4336c705
GM
32402000-03-06 Gerd Moellmann <gerd@gnu.org>
3241
18bb0684
GM
3242 * process.c (send_process): Remove local variable `procname' that
3243 might become invalid when a GC happens. Instead, access the
3244 process name slot directly.
3245
4336c705
GM
3246 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3247 orig_height if set.
3248
3249 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3250 orig_height if set.
3251
515d0d0e
EZ
32522000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3253
3254 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3255 glyph matrices have been freed.
3256
100b3cbb
GM
32572000-03-05 Gerd Moellmann <gerd@gnu.org>
3258
50df5e5a 3259 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3260 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3261
3262 * xfns.c (QCdata): Moved to xdisp.c.
3263
3264 * xdisp.c (QCdata): Moved here from xfns.c.
3265 (syms_of_xdisp): Initialize QCdata.
3266
3267 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3268
3269 * window.c (coordinates_in_window): Use
3270 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3271 FRAME_INTERNAL_BORDER_WIDTH.
3272
100b3cbb 3273 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3274 it is obviously invalid.
100b3cbb
GM
3275
3276 * xterm.c (x_term_init): Create a colormap if not using the
3277 default visual.
3278
3279 * xterm.h (select_visual): Change prototype.
3280
3281 * xfns.c (select_visual): Rewritten. Recognize user-specified
3282 visual classes.
3283 (visual_classes): New variable.
3284
64d739c4
GM
32852000-03-04 Gerd Moellmann <gerd@gnu.org>
3286
3287 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3288 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3289 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3290 (x_decode_color): Don't handle allocation of white and black
3291 specially.
3292 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3293 XtNcolormap resources.
3294 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3295 (Fx_create_frame): Initialize color members of x_output structure.
3296 (xpm_load): Pass colormap to XPM lib.
3297
3298 * xfaces.c (x_free_colors): Access colormap of frame using
3299 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3300 when default colormap is used.
3301
3302 * xterm.c (x_term_init): Set Colormap member of x_display_info
3303 structure. Copy colormap if resource `privateColormap' is
3304 specified (PseudoColor only).
3305 (x_setup_relief_color): Access colormap of frame using
3306 FRAME_X_COLORMAP.
3307
3308 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3309 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3310
c3cee013
JR
33112000-03-04 Jason Rumney <jasonr@gnu.org>
3312
3313 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3314 other non-platform-specific equivalents.
64d739c4 3315 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3316 specific functions and macros as their w32 equivalents where
3317 non-platform-specifics are not available.
3318 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3319 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3320 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3321 (frame_update_line_height): Use macros to access f->output_data.
3322 (defined_color): Remove FIXME comments; fixed.
3323 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3324 into #ifdef blocks. Add WINDOWSNT blocks.
3325 (Fx_list_fonts): Use macros for accessing font data.
3326 (set_lface_from_font_name): Different default fonts for X and
3327 WINDOWSNT.
3328 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3329 scalable for backward compatibility.
64d739c4 3330 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3331 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3332
64d739c4 3333 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3334 syms_of_w32faces.
3335
3336 * makefile.nt (w32faces.obj): Remove.
3337 (xfaces.obj): Add.
3338
807cc41c
JR
33392000-03-03 Jason Rumney <jasonr@gnu.org>
3340
3341 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3342 correct parameters.
3343
0007072a
KR
33442000-03-03 Ken Raeburn <raeburn@gnu.org>
3345
3346 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3347 standard ELF definitions here if the system header does not.
3348
71a6ba55
GM
33492000-03-03 Gerd Moellmann <gerd@gnu.org>
3350
3351 * xterm.c (PER_CHAR_METRIC): Removed.
3352 (x_per_char_metric_1, x_default_char): New functions.
3353 (x_per_char_metric): If font's default char is invalid, return
3354 metrics of a suitably chosen usable default char.
3355 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3356 char, replace occurrences of unprintable chars with a suitably
3357 chosen usable default char.
71a6ba55 3358
900fa1f1
GM
33592000-03-02 Gerd Moellmann <gerd@gnu.org>
3360
42f55fe0
GM
3361 * xterm.c (note_mouse_highlight): Return quickly if frame's
3362 glyph matrices have been freed.
3363
3364 * dispnew.c (free_glyphs): Block input while freeing matrices.
3365
900fa1f1
GM
3366 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3367
3368 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3369 x_free_colors.
3370
3371 * dispextern.h (x_free_colors): Add prototype.
3372
3373 * xfaces.c (x_free_colors): New function.
3374 (unload_color, free_face_colors): Use it.
3375
2f950292
EZ
33762000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3377
3378 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3379
3380 * window.c [MSDOS]: Include msdos.h.
3381
54d04320
DL
33822000-03-02 Dave Love <fx@gnu.org>
3383
3384 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3385
3386 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3387 set C_OPTIMIZE_SWITCH for gcc.
3388
0ba93ac4
KH
33892000-03-02 Kenichi Handa <handa@etl.go.jp>
3390
3391 * coding.c (coding_save_composition): Be sure to allocate
3392 composition data area in coding even if there's no composition in
3393 the current run.
3394
a2bc11d4
JR
33952000-03-01 Jason Rumney <jasonr@gnu.org>
3396
3397 * w32term.c: Equivalent changes to those made to xterm.c on
3398 2000-02-25 and 2000-02-24.
3399
3400 * w32fns.c: Equivalent changes to those made to xfns.c on
3401 2000-02-25 and 2000-02-21.
3402
3403 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3404 correct line-end convention is followed.
3405
3406 * w32menu.c [HAVE_BOXES]: Remove #undef.
3407 (single_keymap_panes): Remove code for simulating checkmarks.
3408 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3409 Remove code for drawing simulated checkmarks.
3410 (w32_menu_show): make unibyte help string correctly.
3411 (add_menu_item): draw standard Windows checkmarks. Draw radio
3412 buttons as radio buttons if possible.
3413
72d19d75
GM
34142000-03-01 Gerd Moellmann <gerd@gnu.org>
3415
2df636f4
GM
3416 * sysdep.c (start_of_text): Don't define this function for NetBSD
3417 with ELF.
3418
427ec082 3419 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3420 Don't define.
3421 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3422 (LINKER): Don't undef if __NetBSD__ is defined.
3423
3424 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3425
3426 * fileio.c [__NetBSD__]: Define `unix'.
3427
72d19d75
GM
3428 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3429
ed4d0512
GM
34302000-02-29 Gerd Moellmann <gerd@gnu.org>
3431
50b1039f
GM
3432 * atimer.c (start_atimer): Don't abort when timers are stopped.
3433 (append_atimer_lists): New function.
3434 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3435 arbitrary lists of stopped and running atimers.
3436
ed4d0512
GM
3437 * atimer.c (cancel_atimer): Handle canceling an atimer when
3438 some timers are stopped.
3439
3440 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3441 after canceling it.
3442
3443 * fns.c (maybe_resize_hash_table): Handle case of new size
3444 coming out as being the same as old size.
3445
387023ee
JR
34462000-02-27 Jason Rumney <jasonr@gnu.org>
3447
3448 * makefile.nt: Add atimer.h to dependencies.
3449 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3450 * w32console.c: Only disable window system features for dispextern.h
3451 (initialize_w32_display): Build a display info for the console.
3452 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3453 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3454 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3455 as 2 button mice.
3456 * w32gui.h (struct W32FontStruct): Revert last change after change
3457 to xdisp.c.
3458 * w32menu.c (single_submenu): Set up help string.
3459 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3460 (w32_dialog_show): Set up help string.
3461 * w32term.c (w32_display_info_for_display): Remove unused function.
3462 (w32_draw_bitmap): Use pre-built bitmaps.
3463 (w32_initialize_display_info): New function to initialize parts of
3464 display info that are common to both GUI and console frames.
3465 (w32_term_init): Use w32_initialize_display_info. Do not set
3466 Vw32_num_mouse_buttons here, as it is not called for console
3467 frames. Build bitmaps for indicating truncated lines etc.
3468 (x_delete_display): Destroy pre-built bitmaps.
3469 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3470 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3471
4516715a
DL
34722000-02-27 Dave Love <fx@gnu.org>
3473
3474 * lisp.h: Add a bunch of prototypes.
3475
171ca836
KH
34762000-02-26 Kenichi Handa <handa@etl.go.jp>
3477
3478 * keyboard.c (read_char): Set `usec' correctly.
3479
4013921d
KH
34802000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3481
3482 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3483 `lambda', set reg[RRR] to the map index.
3484 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3485 reg[RRR] to 0. Otherwise, set it to -1.
3486
9244a058
GM
34872000-02-25 Gerd Moellmann <gerd@gnu.org>
3488
2df636f4 3489 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3490
f43d79c1 34912000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3492
f43d79c1
GM
3493 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3494 and contains a `:', prepend `/:'.
3495
3496 * window.c (select_window_1): If selected_window is nil,
3497 don't "swap out" the buffer's point.
3498 (Fset_window_configuration): Set selected_window to nil
3499 before calling Fselect_window.
3500 (unshow_buffer): Don't set point in buffer from window's point
3501 if another more recently selected window also shows the buffer.
3502
bed0c171
GM
35032000-02-25 Gerd Moellmann <gerd@gnu.org>
3504
449c3c52
GM
3505 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3506
f5b58615
GM
3507 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3508 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3509 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3510 variables.
3511 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3512 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3513 (hide_busy_cursor): New functions.
3514 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3515
3516 * minibuf.c (read_minibuf): Cancel busy-cursor.
3517
3518 * keyboard.c (command_loop_1): Call start_busy_cursor before
3519 Fcommand_execute and cancel_busy_cursor after it.
3520 (timer_check): Remove busy-cursor code.
3521 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3522 cursor timer.
3523
3524 * process.c (wait_reading_process_input): Remove busy-cursor code.
3525
3526 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3527 Fx_hide_busy_cursor.
3528
3529 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3530 Remove prototyoes.
3531 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3532
3533 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3534
3535 * xterm.c (XTread_socket): Remove busy-cursor code.
3536
4eb8436f
GM
3537 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3538 (build_frame_matrix_from_leaf_window): Put code handling
3539 glyph row's not being a slice of a frame row in #if 0.
3540 (sync_window_with_frame_matrix_rows): New function.
3541 (frame_row_to_window): New function.
3542 (mirror_line_dance): Handle copies between windows.
3543
3cb65b0e
GM
3544 * lread.c (Fload): Use `xfree' instead of `free'.
3545 (init_obarray): Use `xmalloc' instead of `malloc'.
3546
bed0c171
GM
3547 * window.c (Fset_window_buffer): Set WINDOW to the window
3548 after decoding.
2add4349
GM
3549 (coordinates_in_window): Take frame's internal border width
3550 into account.
bed0c171 3551
42088c12
GM
35522000-02-24 Gerd Moellmann <gerd@gnu.org>
3553
3554 * xterm.c (x_display_and_set_cursor): Display cursor of
3555 non-selected windows depending on the setting of
3556 cursor_in_non_selected_windows.
3557
3558 * xdisp.c (cursor_in_non_selected_windows): New variable.
3559 (syms_of_xdisp): DEFVAR_BOOL it.
3560
d1e103b2
GM
35612000-02-23 Gerd Moellmann <gerd@gnu.org>
3562
723e779c
GM
3563 * data.c (Fstring_to_number): If number is greater than what
3564 fits into an integer, return a float.
3565
d1e103b2
GM
3566 * eval.c (specbind): Remove references to
3567 keyword_symbols_constant_flag.
3568
3569 * data.c (keyword_symbols_constant_flag): Removed.
3570 (Fmakunbound, set_internal, syms_of_data): Remove references to
3571 keyword_symbols_constant_flag.
3572
3573 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3574
214f877f
KH
35752000-02-23 Kenichi Handa <handa@etl.go.jp>
3576
3577 * syntax.c (multibyte_syntax_as_symbol): New variable.
3578 (syms_of_syntax): Declare it as a Lisp variable.
3579 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3580 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3581 nonzero, treat all multibyte characters as symbol.
42088c12 3582 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3583 characters.
3584
130adcb7
EZ
35852000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3586
3cb65b0e 3587 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3588 a deleted frame.
3589
17cbbf95
GM
35902000-02-21 Gerd Moellmann <gerd@gnu.org>
3591
3592 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3593
3594 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3595 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3596
beb0bc36
DL
35972000-02-21 Dave Love <fx@gnu.org>
3598
3599 * frame.c (Vmouse_position_function): New variable.
3600 (Fmouse_position): Use it.
3601 (syms_of_frame): Install it.
3602
3603 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3604
1d92afcd
GM
36052000-02-20 Gerd Moellmann <gerd@gnu.org>
3606
3607 * fileio.c (Finsert_file_contents): Unbind the binding of
3608 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3609
3610 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3611 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3612 (specbind, unbind_to): Handle most common case of non-constant
3613 symbol with trivial value specially.
3614
3615 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3616
2d06696f
RS
36172000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3618
3619 * data.c (Fmake_variable_buffer_local): Doc fix.
3620 Init found_for_buffer to 0.
3621 (Fmake_variable_frame_local): If the variable has already
3622 been buffer-local, set the check_frame field.
3623
1d4311c3
EZ
36242000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3625
3626 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3627 produced for CODING_MODE_LAST_BLOCK requires.
3628
2dc95ddd
DL
36292000-02-18 Dave Love <fx@gnu.org>
3630
3631 * keyboard.c (echo_keystrokes): Remove declaration.
3632 (Vecho_keystrokes) New variable.
3633 (read_char, record_menu_key, read_key_sequence): Use it to allow
3634 use of float value.
3635 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3636
3637 * lread.c: Undef feature selection macros before defining.
3638
f0930f35
GM
36392000-02-18 Gerd Moellmann <gerd@gnu.org>
3640
3641 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3642 for symbols other than the symbol in question.
3643
e3d4de90
DL
36442000-02-17 Dave Love <fx@gnu.org>
3645
3646 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3647
0b378936
GM
36482000-02-17 Gerd Moellmann <gerd@gnu.org>
3649
d621caf7
GM
3650 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3651
0b378936
GM
3652 * alloc.c (enum mem_type): Compile unconditionally.
3653
3b451f74
EZ
36542000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3655
3656 * xfaces.c (tty_defined_color): Don't return faulire indication
3657 for unspecified-fg and unspecified-bg pseudo-colors.
3658
10689a01
GM
36592000-02-17 Gerd Moellmann <gerd@gnu.org>
3660
1216f5e4
GM
3661 * alloc.c (mark_object): Don't mark symbol names in pure space.
3662 (gc_sweep): Don't unmark symbol names in pure space.
3663
3664 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3665 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3666 [GC_MARK_STACK]: New defines.
427ec082 3667 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3668 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3669
3670 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3671
3672 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3673 allocate_buffer instead of xmalloc.
3674
3675 * alloc.c (toplevel): Include setjmp.h.
3676 (PURE_POINTER_P): New define.
3677 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3678 (Vdead) [GC_MARK_STACK]: New variable.
3679 (lisp_malloc): Add parameter TYPE, call mem_insert if
3680 GC_MARK_STACK is defined.
3681 (allocate_buffer): New function.
427ec082 3682 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3683 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3684 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3685 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3686 (MEM_NIL) [GC_MARK_STACK]: New define.
3687 (struct mem_node) [GC_MARK_STACK]: New structure.
3688 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3689 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3690 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3691 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3692 (mark_stack) [GC_MARK_STACK]: New functions.
3693 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3694 (clear_marks): Removed.
3695 (gc_sweep): Set free conses' car, free floats' type, free
3696 symbols' function to Vdead. Use lisp_free to free buffers.
3697 (init_alloc_once): Initialize Vdead.
3698 (survives_gc_p): Return non-zero for pure objects.
3699
3700 * alloc.c: Add comments throughout the file.
3701
2503c8b1
GM
3702 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3703 that unblocks alarms.
3704
8389e1e2
GM
3705 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3706 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3707 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3708
10689a01 3709 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3710
bfc17d18
KH
37112000-02-17 Kenichi Handa <handa@etl.go.jp>
3712
4a09dee0
KH
3713 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3714 avoid infinite error signaling. Allocate sufficient memory for
3715 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3716
2b927d02
SM
37172000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3718
3719 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3720 depends on the previous behavior.
3721
b49cb764
GM
37222000-02-16 Gerd Moellmann <gerd@gnu.org>
3723
3724 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3725
99e95407
GM
37262000-02-15 Gerd Moellmann <gerd@gnu.org>
3727
3728 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3729
3730 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3731 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3732 write(2).
3733
6ffd3cf7
RS
37342000-02-15 Richard M. Stallman <rms@gnu.org>
3735
3736 * data.c (set_internal): Don't make variable buffer-local
3737 if within a let-binding for the same buffer.
3738 (let_shadows_buffer_binding_p): New function.
3739
3740 * eval.c (specbind): For buffer-local value,
3741 record the current buffer also.
3742 (unbind_to): Cope with that change.
3743
cad53475
GM
37442000-02-15 Gerd Moellmann <gerd@gnu.org>
3745
3746 * window.c (Fsave_window_excursion): Doc fix.
3747
1aa963c8
SM
37482000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3749
3750 * syntax.c (back_comment): Make sure we only consider comment-starters
3751 of the relevant style and return -1 in case of a failure to find the
3752 beginning of the comment.
3753 (Fforward_comment): If back_comment fails, go back to the position just
3754 after the comment-end.
3755 (scan_lists): Add comment describing a very minor bug.
3756
b9b84fd3
SM
37572000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3758
3759 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3760 `completion-regexp-list' in the docstring.
3761
3a28db80
DL
37622000-02-14 Dave Love <fx@gnu.org>
3763
3764 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3765
fb4a568d
SM
37662000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3767
3768 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3769 to Emacs' syntax. Also fix the comment about set/not-set meanings
3770 since Emacs syntax is not the value 0 any more.
3771 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3772 since it's now part of RE_SYNTAX_EMACS.
3773
1063ebb5
DL
37742000-02-12 Dave Love <fx@gnu.org>
3775
3776 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3777 Alpha.
3778
fb07a302
GM
37792000-02-12 Gerd Moellmann <gerd@gnu.org>
3780
3781 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3782
aaf2320c
DL
37832000-02-12 Dave Love <fx@gnu.org>
3784
3785 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3786
3787 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3788 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3789 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3790
3791 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3792
3793 * s/nextstep.h: Don't define HAVE_ALLOCA.
3794
3795 * config.in: Add vfork bits.
3796
eedf8bde
GM
37972000-02-12 Gerd Moellmann <gerd@gnu.org>
3798
3799 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3800 unwind function to undo the effect of stopping atimers.
3801
3802 * keyboard.c (bind_polling_period): Stop all timers except
3803 poll_timer.
3804
3805 * atimer.c (stopped_atimers): New variable.
3806 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3807 New functions.
3808
3809 * atimer.h (stop_other_atimers, run_all_atimers)
3810 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3811
eedf8bde
GM
3812 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3813
8476c2f8
KR
38142000-02-11 Ken Raeburn <raeburn@gnu.org>
3815
3816 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3817 library may depend on jpeg.
3818 (atimer.o): Depends on atimer.c.
3819
0e85e4a3
KH
38202000-02-11 Kenichi Handa <handa@etl.go.jp>
3821
3822 * insdel.c (del_range_1): Call update_compositions.
3823 (del_range_both): Call update_compositions just once..
3824
97fa0cc8
DL
38252000-02-10 Dave Love <fx@gnu.org>
3826
3827 * xfns.c (create_frame_xic): Fix initialization of automatic
3828 aggregates for pcc.
3829
25566a3c
KH
38302000-02-09 Kenichi Handa <handa@etl.go.jp>
3831
3832 * ccl.c (CCL_MAKE_CHAR): New macro.
3833 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3834 registers by CCL_MAKE_CHAR before calling translate_char.
3835 <CCL_TranslateCharacterConstTbl> Likewise.
3836
69da54ba
DL
38372000-02-08 Dave Love <fx@gnu.org>
3838
3839 * lread.c (__EXTENSIONS__): Define.
3840
f7136ee8
GM
38412000-02-08 Gerd Moellmann <gerd@gnu.org>
3842
3843 * puresize.h (BASE_PURESIZE): Increase to 650000.
3844
7768790b
EZ
38452000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3846
3847 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3848 the help message.
3849
38fd211b
EZ
38502000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3851
3852 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3853 md, mh, mb, mr, and me to the fake termcap entry.
3854
66e4690f
KR
38552000-02-06 Ken Raeburn <raeburn@gnu.org>
3856
3857 * sound.c (sound_cleanup): Don't call device close routine if the
3858 function pointer is null.
3859
a75dfea0
AI
38602000-02-06 Andrew Innes <andrewi@gnu.org>
3861
3862 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3863 around image definitions and prototypes.
3864 (gamma_correct) [WINDOWSNT]: New prototype.
3865
3866 * w32term.c (x_make_frame_visible): Replace call to
3867 input_poll_signal with poll_for_input.
3868
3869 * window.c [WINDOWSNT]: Include w32term.h.
3870
3871 * xdisp.c [WINDOWSNT]: Include w32term.h.
3872
3873 * makefile.nt: Add dependencies on w32gui.h.
3874 (OBJ1): Include atimer.obj.
3875 ($(BLD)\atimer.obj): New dependency rule.
3876
3877 * w32.c (sigmask): New function (does nothing).
3878 (sigunblock): Ditto.
3879
3880 * frame.c [WINDOWSNT]: Include w32term.h.
3881
3882 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3883
3884 * lread.c (syms_of_lread): Fix literal newlines.
3885
3886 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3887 the string constant limit (2048 bytes) in MSVC.
3888 (main): Ditto.
3889
59ddecde
GM
38902000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3891
3892 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3893 area.
3894 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3895 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3896 dispatch the event.
3897
07590973
DL
38982000-02-04 Dave Love <fx@gnu.org>
3899
3900 * fileio.c: Remove some unused vars.
3901 (_GNU_SOURCE): Define (for euidaccess).
3902
3903 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3904
3905 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3906 gcpro1, gcpro2.
3907 (read_minibuf): Deal with allow_props correctly.
3908
649351f9
EZ
39092000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3910
3911 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3912
66e4690f 39132000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3914
3915 * search.c (compile_pattern): If a cache entry has a nil regexp,
3916 fill in that entry instead of clobbering a previously cached
3917 string regexp.
3918
66e4690f 39192000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3920
3921 * puresize.h (BASE_PURESIZE): Increase to 610000.
3922
d240a249
GM
39232000-02-02 Gerd Moellmann <gerd@gnu.org>
3924
3925 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3926 can GC.
3927
ca91fb26
KH
39282000-02-02 Kenichi Handa <handa@etl.go.jp>
3929
25660570
KH
3930 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3931 instead of incrementing ic directly.
3932 <CCL_WriteExprConst> Likewise.
3933 <ccl_set_expr>: Set ic to jump_address.
3934
ca91fb26
KH
3935 * fileio.c (e_write): Fix the handling of
3936 CODING_FINISH_INSUFFICIENT_SRC.
3937
2ede9689
DL
39382000-02-01 Dave Love <fx@gnu.org>
3939
3940 * editfns.c (Fpropertize): Doc fix.
3941
3942 * process.c (Fstart_process): Doc fix.
3943
3944 * eval.c: Fix various doc strings not to duplicate information
3945 from help-manyarg-func-alist.
3946
3947 * window.c (Fset_window_margins): Don't make interactive. Doc
3948 fix.
3949
3950 * doc.c (Vhelp_manyarg_func_alist): New variable.
3951 (Fdocumentation): Use it.
3952 (syms_of_doc): Define it.
3953
b6680a0e
GM
39542000-01-31 Gerd Moellmann <gerd@gnu.org>
3955
2cb750ba
GM
3956 * xterm.c (xim_open_dpy): Remove unused local variable.
3957
74e9213b
GM
3958 * emacs.c (USAGE): Use term `display options' instead of `X
3959 options'.
3960
3961 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3962 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3963
b6680a0e
GM
3964 * fns.c (sweep_weak_table): New function.
3965 (sweep_weak_hash_tables): Use it. Keep on marking until there
3966 is no more change.
3967
994c5afe
GM
39682000-01-30 Gerd Moellmann <gerd@gnu.org>
3969
3970 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3971 that XTread_socket does not crash by trying to call XNoOp on a
3972 closed display.
427ec082 3973
f00276e3
JR
39742000-01-30 Jason Rumney <jasonr@gnu.org>
3975
3976 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3977 Change selected_frame to SELECTED_FRAME ().
3978 (w32_console_mouse_position): Remove #ifndef MULE from around
3979 `insist' parameter.
3980
3981 * makefile.nt: Remove dosfns.obj.
3982
3983 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3984
3985 * w32fns.c (w32_defined_color): Check for valid frame before
3986 applying gamma correction. Eliminate dependency on frame elsewhere.
3987 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3988 (w32_to_x_font): Use resx and resy not height_in and width_in.
3989 (x_to_w32_font): Doc fix.
3990 (xlfd_strip_height): New function to strip and return font height.
3991 (w32_font_match): Compare height separately from rest of xlfd
3992 spec, using xlfd_strip_height.
3993
3994 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3995 width_in. Use w32_defined_color in place of defined_color.
3996
3997 * w32faces.c: Merge more of DOS and X specifics in preparation for
3998 merge with xfaces.c.
3999 (defined_color): Remove FIXME comment.
4000 (tty_color_name): Provide w32-specific function.
4001 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4002
4003 * w32console.c (turn_on_face, turn_off_face): Removed.
4004 (w32_face_attributes): New function.
4005 (Global_variables): Reduce scope where possible.
4006 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4007 fill attribute.
4008 (hl_mode): Don't modify text attributes.
4009 (write_glyphs): Don't do anything if len <= 0. Use
4010 w32_face_attributes to get attributes for drawing. Write
4011 terminating codes using char_attr_normal.
4012 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4013 (update_begin, update_end): Likewise.
4014 (vga_stdcolor_name): New function.
4015 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4016 (Fset_screen_color): Remove char_attr_reverse.
4017
b08e8bb2
GM
40182000-01-29 Gerd Moellmann <gerd@gnu.org>
4019
4020 * xfns.c (xic_set_preeditarea): Take window parameter and
4021 window-relative pixel-positions.
4022
4023 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4024 is its frame's selected window.
4025 (xim_instantiate_callback): Likewise.
4026
4027 * xfns.c (x_create_im): Removed.
4028 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4029 (supported_xim_styles): Renamed from supported_styles.
4030 (best_xim_style): Renamed from best_style.
4031 (create_frame_xic): Renamed from xic_create_frame.
4032 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 4033
b08e8bb2
GM
40342000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4035
4036 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4037 our frames, call XFilterEvent with 2nd parameter `None'.
4038 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4039 returning XBufferOverflow.
4040 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4041 area.
4042 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4043 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4044 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4045 (xim_initialize, xim_close)
4046 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4047 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4048 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4049 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4050
4051 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4052 and `xim_styles'.
4053 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4054 `xic_style' and `xic_xfs'.
4055 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4056 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4057 (FRAME_XIM): Removed.
4058
4059 * xfns.c (supported_styles): New variable.
4060 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4061 (xic_create_xfontset, best_style, xic_create_frame)
4062 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4063 (xic_set_xfontset): New functions.
4064
142e109c
DL
40652000-01-28 Dave Love <fx@gnu.org>
4066
4067 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4068
4069 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4070
b02786f9
GM
40712000-01-28 Gerd Moellmann <gerd@gnu.org>
4072
d060bc9f
GM
4073 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4074 for *scratch* if it already existed.
4075
b02786f9
GM
4076 * emacs.c (USAGE): New macro.
4077 (main): Use it to display usage information.
4078
2c52d7e4
EZ
40792000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4080
4081 Support for the menu-help feature:
4082
4083 * msdos.h: Change prototypes of XMenuAddSelection and
4084 XMenuActivate.
4085
4086 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4087 part of the line to the termscript file.
4088 (IT_clear_to_end): Clear the entire line, not just its beginning.
4089 (menu_help_message, prev_menu_help_message): New variables.
4090 (IT_menu_make_room): Make room for the help_text member.
4091 (IT_menu_display): New argument disp_help; all callers changed.
4092 If disp_help is non-zero, store the help text of the active menu
4093 item in menu_help_message.
4094 (XMenuAddPane): Initialize the help_text member to NULL.
4095 (XMenuAddSelection): New argument help_text. Store it in the
4096 XMenu structure.
4097 (XMenuActivate): New argument help_callback. If the value of
4098 menu_help_message has changed since the last time, display the
4099 menu help message text while waiting for the mouse to move. Clear
4100 the echo area before exiting.
4101 (XMenuDestroy): Free the help_text member.
4102
ffe0bcd1
GM
41032000-01-27 Gerd Moellmann <gerd@gnu.org>
4104
4105 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4106 XMenuAddSelection. Pass help callback to XMenuActivate.
4107 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4108
50dbd23f
EZ
41092000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4110
4111 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4112 and EMACS_SET_USECS.
4113
f5941bf8
GM
41142000-01-26 Dave Love <fx@gnu.org>
4115
6c67ddee
DL
4116 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4117
f5941bf8
GM
4118 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4119 an error may be signalled.
4120
9e49c990
GM
41212000-01-26 Gerd Moellmann <gerd@gnu.org>
4122
fc3cb460
GM
4123 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4124 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4125
9e49c990
GM
4126 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4127
d0c037d8
GM
41282000-01-25 Gerd Moellmann <gerd@gnu.org>
4129
4130 * charset.c (Fstring): If there is a multibyte char among
4131 the args, always return a multibyte string.
4132
e12489f9
GM
41332000-01-25 Gerd Moellmann <gerd@gnu.org>
4134
4135 * sysdep.c (sys_select): Turn atimers off and on instead of
4136 recording and restoring old alarm handler
4137
4138 * process.c (toplevel): Include atimer.h.
4139 (create_process_1): Rewritten.
4140 (create_process): Use atimers instead of alarm.
4141 (wait_reading_process_input) [hpux]: Turn atimers off instead
4142 of turning off SIGALRM.
4143 (wait_reading_process_input): Turn off atimers instead off
4144 calling stop_polling.
4145
4146 * emacs.c (main): Call init_atimer.
4147
4148 * keyboard.c (toplevel): Include systime.h and atimer.h.
4149 (polling_for_input): Removed because unused.
4150 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4151 (poll_timer): New variable.
4152 (poll_for_input, poll_for_input_1): New functions.
4153 (start_polling, stop_polling): Rewritten.
4154
4155 * keyboard.h (polling_for_input): Removed.
427ec082 4156
e12489f9
GM
4157 * atimer.h, atimer.c: New files.
4158
4159 * Makefile.in (obj): Add atimer.o.
4160 (atimer.o): New target.
4161
4162 * blockinput.h (pending_atimers): Add extern declaration.
4163 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4164
4165 * lisp.h (popup_activated_flag): Add extern declaration.
4166
4167 * xmenu.c (popup_activated_flag): Make externally visible.
4168 (popup_activate_callback) [USE_MOTIF]: Increment
4169 popup_activated_flag.
4170 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4171
4172 * xterm.c (toplevel): Include atimer.h.
4173 (toolkit_scroll_bar_interaction): New variable.
4174 (Fxt_process_timeouts): Removed.
4175 (x_process_timeouts): New function.
4176 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4177 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4178 (x_make_frame_visible): Call poll_for_input_1 instead of
4179 input_poll_signal. Don't call alarm.
4180 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4181
1e5279b9
DL
41822000-01-24 Dave Love <fx@gnu.org>
4183
6c67ddee 4184 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4185 Don't use -cckr -- apparently not now necessary.
4186
edf6aeb8
EZ
41872000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4188
4189 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4190 screen boundary.
4191
9badad41
JR
41922000-01-23 Jason Rumney <jasonr@gnu.org>
4193
4194 * w32fns.c (w32_defined_color): Apply gamma correction before
4195 trying to map to the palette.
4196 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4197 to w32_clear_rect.
4198
4199 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4200 here. Callers changed to always pass real device context.
4201 (w32_draw_bitmap): Likewise.
4202 (w32_get_glyph_overhangs): Likewise.
4203 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4204 one.
4205 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4206 pfnSetScrollInfo and SetScrollRange.
4207 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4208 back into MULE characters after decoding them.
4209 (x_get_glyph_face_and_encoding): Likewise.
4210 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4211 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4212 (x_produce_glyphs): Calculate per char metrics for a character
4213 that we know exists in default font when font_not_found_p is true.
4214
63bd786b
JR
42152000-01-22 Jason Rumney <jasonr@gnu.org>
4216
4217 * makefile.nt (intervals.obj, composite.obj): New modules.
4218 (composite.h): Added as dependency where appropriate.
4219
4220 * w32gui.h (XGCValue): New struct for emulating X GCs.
4221
4222 * w32term.h (XCharStruct): New struct for emulating X.
4223
4224 * w32console.c (turn_on_face, turn_off_face): New functions.
4225 (change_line_highlight): New prototype for new redisplay.
4226 (write_glyphs): Support multibyte text. Support faces.
4227
4228 * w32faces.c: Complete rewrite for new redisplay based on new
4229 xfaces.c.
4230
4231 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4232 throughout. struct frame * in place of FRAME_PTR.
4233 Skeleton support for images, toolbars, tooltips from xfns.c.
4234 (Fx_create_frame): Use system default for default scroll bar
4235 width.
4236 (w32_get_arg): Renamed from x_get_arg.
4237 (Fx_file_dialog): New function.
4238 (w32_list_fonts): Check cache before asking system.
4239 (Vw32_enable_synthesized_fonts): New variable.
4240 (Vw32_enable_italics): Obsolete, removed.
4241
4242 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4243 Use SELECTED_FRAME macro.
4244
4245 * w32menu.c: Add skeleton support for help strings on menus.
4246 (add_menu_item): Native checkbox and radio support added, but not
4247 yet enabled due to bugs.
4248 (push_menu_item): Add parameters type, selection and help.
4249 Callers updated.
4250 Formatting changes to reduce unnecessary diffs with xmenu.c.
4251
4252 * w32select.c (Fw32_set_clipboard_data): Update call to
4253 find_charset_in_str.
4254
4255 * w32term.c: Complete rewrite for new redisplay based on new
4256 xterm.c with necessary sections merged back in from old w32term.c.
4257
6ffd3cf7 42582000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4259
4260 * data.c (set_internal): Further fix in same criterion.
4261
6ffd3cf7 42622000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4263
4264 * data.c (set_internal): Fix the criteria for whether
4265 to swap out the old cached binding.
4266
60af03f1
DL
42672000-01-19 Dave Love <fx@gnu.org>
4268
4269 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4270
f9be074f
KH
42712000-01-18 Kenichi Handa <handa@etl.go.jp>
4272
4273 * regex.c (re_compile_fastmap): While checking a range table for
4274 `charset', skip flag bits for a character class correctly.
4275
52b8dbf9
GM
42762000-01-17 Gerd Moellmann <gerd@gnu.org>
4277
d36100c9
GM
4278 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4279
52b8dbf9
GM
4280 * xfns.c (x_window): Call lw_create_widget with new parameter
4281 list.
4282
4283 * widget.c (EmacsFrameSetCharSize): Change size of children first
4284 because of problems with main window geometry management under
4285 Lesstif.
4286
4287 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4288 MENU_ITEMS_ITEM_.*.
4289 (MENU_ITEMS_ITEM_HELP): New enumerator.
4290 (push_menu_item): Add parameter HELP. Record help in menu_items.
4291 (single_menu_item, single_submenu, list_of_items): Call
4292 push_menu_item with new parameter.
4293 (single_submenu): Set help string in widget value.
4294 (menu_highlight_callback): New function.
4295 (set_frame_menubar): Call lw_create_widget with new
4296 parameter list.
4297 (xmenu_show, xdialog_show): Ditto.
4298
3139018f
GM
42992000-01-13 Gerd Moellmann <gerd@gnu.org>
4300
4301 * sound.c (Fplay_sound): Improve doc string.
4302
83c8f461
RS
43032000-01-11 Richard M. Stallman <rms@gnu.org>
4304
4305 * lisp.h (set_internal): Enter the new arg.
4306
4307 * eval.c (specbind): Record buffer-local variables specially,
4308 indicating which buffer's binding was saved.
4309 (unbind_to): Restore buffer-local variables specially
4310 in the proper buffer.
4311
4312 * data.c (set_internal): New arg BUF.
427ec082 4313
83c8f461
RS
4314 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4315 * data.c (Fset): Pass new arg to set_internal.
4316 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4317
1fab1775
GM
43182000-01-11 Gerd Moellmann <gerd@gnu.org>
4319
4320 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4321 xprintsym.
4322
83c8f461 43232000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4324
4325 * minibuf.c (Ftry_completion): Doc fix.
4326
7a85e4df
GM
43272000-01-11 Gerd Moellmann <gerd@gnu.org>
4328
4329 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4330 vector, too.
4331
a970dae4
AS
43322000-01-11 Andreas Schwab <schwab@suse.de>
4333
4334 * coding.c (code_convert_region): Initialize total_skip.
4335
c65d14ee
DL
43362000-01-08 Dave Love <fx@gnu.org>
4337
4338 * eval.c (Fuser_variable_p): Check customizability too.
4339
834938d2
GM
43402000-01-07 Gerd Moellmann <gerd@gnu.org>
4341
4342 * minibuf.c (Fcompleting_read): Doc fix.
4343
e0303cd6
GM
43442000-01-05 Gerd Moellmann <gerd@gnu.org>
4345
8a26744b
GM
4346 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4347 -L /usr/local/lib.
4348
e0303cd6
GM
4349 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4350 Check that input style is supported before trying to create an
4351 IC for it.
4352 (x_window): Call x_create_im.
427ec082 4353
2e471eb5
GM
43542000-01-04 Gerd Moellmann <gerd@gnu.org>
4355
560a7bd2
GM
4356 * xfns.c (current_gif_memory_src): New variable.
4357 (gif_load): Record the address of the current memory source
4358 in current_gif_memory_src.
4359 (gif_read_from_memory): Use current_gif_memory_src.
4360
f9ee84a3
GM
4361 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4362 macros statement form.
4363
d1299cde
GM
4364 * sound.c (struct sound): Renamed from struct sound_file.
4365 (struct sound): Add members `data' and `header_size'.
4366 (enum sound_attr): Add SOUND_DATA.
4367 (current_sound, current_sound_device): Variables renamed from
4368 sound_file and sound_device.
4369 (parse_sound): Parse :data.
4370 (parse_sound): Handle sound data in strings.
4371 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4372 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4373 needed header size.
4374 (wav_play, au_play): Play sounds from string data.
4375
2e471eb5
GM
4376 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4377
4378 * lisp.h: Add prototype for allocate_string_data.
4379
4380 * alloc.c (Fgarbage_collect): Return number of live and free
4381 strings.
4382
4383 * alloc.c (mark_buffer): Remove code in #if 0.
4384 (gc_sweep): Ditto.
4385 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4386 (strings_consed): New variable.
4387 (allocate_string): Set it.
4388 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4389 (Fmemory_use_counts): Return strings_consed. Use Flist.
4390
4391 * alloc.c: General cleanup in comments etc. Remove conditional
4392 compilation for `standalone'.
4393
4394 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4395
4396 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4397 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4398 (DONT_COPY_FLAG): Removed.
4399 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4400 (struct sdata, struct sblock): New
4401 (struct string_block): Rewritten.
4402 (STRINGS_IN_STRING_BLOCK): New macro.
4403 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4404 (large_sblocks, string_blocks, string_free_list): New variables.
4405 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4406 (init_strings): Rewritten.
4407 (allocate_string, allocate_string_data, compact_small_strings)
4408 (free_large_strings, sweep_strings): New functions.
4409 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4410 (struct string_block_head, current_string_block)
4411 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4412 (STRING_PAD): Removed.
4413 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4414 (Fgarbage_collect): Don't set mark bit in large strings.
4415 (mark_object): Mark strings differently. Mark symbol names
4416 differently.
4417 (survives_gc_p): Test marked strings differently.
427ec082 4418 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4419 symbol names.
4420 (compact_strings): Removed.
4421
42608ba8
EZ
44222000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4423
4424 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4425 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4426
e0a09e1a
KH
44272000-01-04 Kenichi Handa <handa@etl.go.jp>
4428
dd9f0750 4429 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4430 in a non-empty buffer.
dd9f0750 4431
3c0f3b15 4432 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4433
44cd3ae5
GM
44342000-01-03 Gerd Moellmann <gerd@gnu.org>
4435
4436 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4437 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4438
4439 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4440
c182a70f
EZ
44412000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4442
4443 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4444 need to test for MSDOS frames.
4445
24480d5b
EZ
44462000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4447
4448 * dosfns.c (unspecified_colors): Remove.
4449 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4450 unspecified_bg.
4451 (msdos_stdcolor_name): Return strings for unspecified fore- and
4452 back-ground colors.
4453
4454 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4455 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4456 (tty_color_name): Return Lisp strings for unspecified fore- and
4457 back-ground colors.
4458 (Finternal_set_lisp_face_attribute): Remove the special treatment
4459 for Qunspecified_{f,b}g.
4460 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4461 string.
4462
047f434a
GM
44632000-01-03 Gerd Moellmann <gerd@gnu.org>
4464
4465 * xdisp.c (reseat_at_next_visible_line_start): Position before
4466 newline only if ending up on a newline.
4467 (next_element_from_ellipsis): Return success. Handle case of
4468 displaying no ellipsis. Fix case of ellipsis defined in display
4469 table.
4470 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4471 returns 0.
4472
d684c676
EZ
44732000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4474
4475 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4476 (Fcolor_supported_p): Renamed from face-color-supported-p.
4477
5fe1d139
EZ
44782000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4479
4480 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4481 list of colors renamed to tty-defined-color-alist.
4482 (tty_color_name): Pass the frame to tty-color-by-index.
4483 (realize_tty_face): tty-color-alist is now a function which
4484 accepts the frame as argument.
4485
4486 * term.c (Ftty_display_color_p): Accept an optional argument
4487 FRAME.
4488
816be8b8
EZ
44892000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4490
4491 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4492 encode_terminal_code.
4493
b635321e
EZ
44942000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4495
4496 * dispnew.c (mode_line_string): Support termcap frames as well.
4497
9b784e96
GM
44982000-01-01 Gerd Moellmann <gerd@gnu.org>
4499
27189709
GM
4500 * syntax.c (Fforward_word): Undo previous change.
4501
4502 * editfns.c (Fconstrain_to_field): Don't constrain if
4503 inhibit-field-text-motion is non-nil.
4504 (Fline_beginning_position): Undo previous change.
4505 (Fline_end_position): Ditto.
4506
4507 * syntax.c (Fforward_word): Notice field boundaries only if
4508 inhibit-field-text-motion is nil.
4509
4510 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4511
4512 * editfns.c (Vinhibit_field_text_motion): New variable.
4513 (inhibit-field-text-motion): New DEFVAR_LISP.
4514 (Fline_beginning_position, Fline_end_position): Notice field
4515 boundaries only if inhibit-field-text-motion is nil.
4516
45158a91
GM
4517 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4518 All calls adjusted.
4519 (x_build_heuristic_mask): Likewise.
4520 (xbm_load_image_from_file): Change error output.
4521 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4522 (gif_load, gs_load, x_kill_gs_process): Ditto.
4523
9b784e96
GM
4524 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4525 color indices when accessing raster pixels.
63cec32f
GM
4526 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4527 one of :file or :data.
4528 (enum pbm_keyword_index): Add PBM_DATA.
4529 (pbm_format): Add :data.
4530 (pbm_image_p): Allow either :file or :data.
4531 (pbm_read_file): New function.
4532 (pbm_scan_number): Rewritten to read from string.
4533 (pbm_load): Support :data.
9b784e96 4534
5ad6a5fb
GM
45351999-12-31 Gerd Moellmann <gerd@gnu.org>
4536
4537 * xfns.c: New image functions adapted to Emacs conventions.
4538 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4539 variable `file'.
4540
63448a4d
WP
45411999-12-31 William M. Perry <wmperry@aventail.com>
4542
4543 * xfns.c (jpeg_format): Added the :data keyword
4544 (jpeg_image_p): JPEG is valid with :file _or_ :data
4545 (jpeg_memory_src): Defined new JPEG image source to read from a
4546 memory buffer.
4547 (jpeg_load): Pay attention to the :data keyword if specified.
4548 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4549 found.
4550 (png_format): Added the :data keyword
4551 (png_image_p): PNG is valid with :file _or_ :data
4552 (png_read_from_memory): New PNG read function to read from a
4553 memory buffer.
4554 (png_load): Pay attention to the :data keyword if specified. Uses
4555 png_set_read_fn() instead of png_init_io() if specified.
4556 (tiff_format): Added the :data keyword for TIFF images.
4557 (tiff_image_p): TIFF is valid with :file _or_ :data
4558 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4559 from a memory buffer.
4560 (tiff_load): Pay attention to the :data keyword if specified.
4561 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4562 (gif_format): Added the :data keyword
4563 (gif_image_p): GIF is valid with :file _or_ :data
4564 (gif_read_from_memory): New GIF input function to read from a
4565 memory buffer.
c65d14ee 4566 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4567 instead of DGifOpenFileName() if specified.
4568
c880678e
GM
45691999-12-31 Gerd Moellmann <gerd@gnu.org>
4570
4571 * xdisp.c (next_element_from_buffer): Change assertion at the end
4572 because it doesn't hold when there's an overlay string at the end
4573 from which we deliver an image.
4574
8ccb9a54
EZ
45751999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4576
4577 * msdos.c (IT_update_begin): Don't dereference members of struct
4578 window for deleted windows.
4579
12ce2351
GM
45801999-12-30 Gerd Moellmann <gerd@gnu.org>
4581
a915c648
GM
4582 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4583 a hook, and the hook has a non-nil `no-self-insert' property, let
4584 the return value of the hook specify whether an expansion took
4585 place. If it returns nil, no expansion has been performed.
4586
12ce2351
GM
4587 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4588 differently.
4589
04ee4f45
EZ
45901999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4591
4592 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4593
7f4bc0c3
EZ
45941999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4595
4596 * dispnew.c (mode_line_string): Support MS-DOS frames.
4597
dac204bc
GM
45981999-12-29 Gerd Moellmann <gerd@gnu.org>
4599
4600 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4601
7b712ad8
KH
46021999-12-29 Kenichi Handa <handa@etl.go.jp>
4603
4604 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4605 to signal_after_change.
4606
adb9900f
EZ
46071999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4608
41ad069b
EZ
4609 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4610 dimensions changed, invalidate the mouse highlight info.
4611 (disable_mouse_highlight, help_echo, previous_help_echo): New
4612 variables.
4613 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4614 (fast_find_position, IT_note_mode_line_highlight)
4615 (IT_note_mouse_highlight): New functions.
4616 (IT_update_begin): If the redisplay affects the window where the
4617 mouse highlight is, clear the highlight. If the frame where the
4618 highlight was displayed was killed, invalidate the highlight
4619 info.
4620 (IT_update_end): Reset the highlight flag. Reset the mouse
4621 highlight-defer flag.
4622 (IT_frame_up_to_date): New function, if mouse highlight was
4623 deferred due to GC, do it now.
4624 (internal_terminal_init): Initialize mouse-highlight related
4625 members of the_only_x_display. Assign IT_frame_up_to_date to
4626 frame_up_to_date_hook.
4627 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4628 help_echo changed value, generate a HELP_EVENT event.
4629 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4630
adb9900f
EZ
4631 * msdos.h (struct display_info): New.
4632 (struct x_output): Add the display_info member.
4633 (FRAME_X_DISPLAY_INFO): New macro.
4634
481b5054
GM
46351999-12-28 Gerd Moellmann <gerd@gnu.org>
4636
4637 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4638 if MODIFF > 1.
6448a6b3 4639 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4640
4641 * buffer.c (modify_overlay): Always compute unchanged info.
4642
a2882b0d
KH
46431999-12-27 Kenichi Handa <handa@etl.go.jp>
4644
4645 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4646
89ba5b5f
KH
46471999-12-27 Kenichi Handa <handa@etl.go.jp>
4648
4649 The following changes are to use more bits for face IDs.
4650
4651 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4652 lowest 8 bits are single byte character code, the bits above are
4653 face ID.
481b5054 4654 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4655 above.
481b5054
GM
4656 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4657 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4658
4659 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4660 of GLYPH_MASK_CHAR.
4661
4662 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4663 of GLYPH_MASK_CHAR.
4664
4665 * dispextern.h (struct glyph): Make face_id and padding_p the top
4666 level members. Change members in union `u'.
4667 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4668 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4669 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4670 (CHAR_GLYPH_PADDING_P): Likewise.
4671 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4672 characters.
4673
481b5054 4674 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4675 for the change of struct glyph.
4676 (line_draw_cost): Adjusted for the change of
4677 GLYPH_FROM_CHAR_GLYPH.
4678 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4679
4680 * term.c (encode_terminal_code): Adjusted for the change of struct
4681 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4682 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4683 change of struct glyph.
4684
4685 * xdisp.c: All codes adjusted for the change of struct glyph.
4686
4687 * xterm.c: All codes adjusted for the change of struct glyph.
4688
5bcd116c
KH
46891999-12-27 Kenichi Handa <handa@etl.go.jp>
4690
4691 * composite.h (struct composition): Change the order of declaring
4692 members to reduce the byte size of the structure.
4693
f21b06b7
GM
46941999-12-25 Gerd Moellmann <gerd@gnu.org>
4695
4696 * search.c (looking_at_1): Reset immediate_quit before modifying
4697 global data.
4698
e36557c9
KH
46991999-12-24 Kenichi Handa <handa@etl.go.jp>
4700
4701 * process.c (read_process_output): Fix the arg FROM to
4702 update_compositions.
4703
83c8f461 47041999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4705
4706 * search.c (Freplace_match): For nonliteral replacement in buffer,
4707 construct all the new text first, then insert all at once.
4708
0b863bd9
DL
47091999-12-22 Dave Love <fx@gnu.org>
4710
4711 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4712
6d8e8ef3
GM
47131999-12-22 Gerd Moellmann <gerd@gnu.org>
4714
28d7281d
GM
4715 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4716 lead to size changes to after the X window has been created.
4717
e22ef6eb 4718 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4719 variable in xassert.
4720
8affcced
KH
47211999-12-22 Kenichi Handa <handa@etl.go.jp>
4722
4723 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4724 only when the frame is not for a window system.
8affcced 4725
f2be1146
GM
47261999-12-22 Gerd Moellmann <gerd@gnu.org>
4727
deca1348
GM
4728 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4729 redisplay after changing the multibyteness of a buffer.
4730
f2be1146
GM
4731 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4732 frame's X window to XFilterEvent instead of None because that's
4733 the X window for which the IC was created. This makes dead
4734 accents work when the pointer is not in Emacs' frame.
4735 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4736
a744a2ec
DL
47371999-12-20 Dave Love <fx@gnu.org>
4738
4739 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4740
9e6985ed
GM
47411999-12-19 Gerd Moellmann <gerd@gnu.org>
4742
4743 * eval.c (debugger_may_continue): New variable.
4744 (syms_of_eval): Add a DEFVAR_BOOL for it.
4745 (call_debugger): Bind it.
4746
3b620731
EZ
47471999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4748
4749 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4750 fp->tty_reverse_p is set, unless the computed colors are identical
4751 to frame colors. Print both original and computed colors to
4752 termscript file.
4753 (IT_write_glyphs): Track the changes in handling of composite
4754 characters.
4755 (IT_set_frame_parameters): Don't set frame colors from
4756 unspecified-fg and unspecified-bg pseudo-colors.
4757
0f9a51c4
DL
47581999-12-17 Dave Love <fx@gnu.org>
4759
4760 * data.c (Fkeywordp): New function.
4761 (syms_of_data): Install it.
4762
363e4e42
EZ
47631999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4764
4765 * xfaces.c (tty_defined_color): Fix last change.
4766
cfad01b4
GM
47671999-12-15 Gerd Moellmann <gerd@gnu.org>
4768
4769 * xdisp.c (redisplay_window) <optional new window start>: Check
4770 that window start is in [BEGV..ZV].
4771
f9d2fdc4
EZ
47721999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4773
4774 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4775 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4776
4777 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4778 (syms_of_xfaces): Initialize and staticpro them.
4779 (tty_defined_color): If the color name is unspecified-fg or
4780 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4781 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4782 (tty_color_name): If the color pixel value is either
4783 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4784 Qunspecified_fg or Qunspecified_bg, respectively.
4785 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4786 and Qunspecified_bg for foreground and background colors.
4787 (realize_default_face): If the foreground and background colors
4788 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4789 (realize_tty_face): By default, set the face colors to
4790 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4791 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4792 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4793 Reverse the colors if the default colors were reversed.
4794
4795 * dispnew.c (init_display): Initialize the frame pixels of the
4796 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4797 FACE_TTY_DEFAULT_BG_COLOR.
4798
4799 * term.c (turn_on_face): If the default fore- and background
4800 colors are reversed, enter inverse video mode. Don't send color
4801 escape sequences for unspecified foreground and background colors.
4802 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4803
4804 * dosfns.c (unspecified_colors): New variable.
4805 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4806 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4807 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4808 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4809 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4810 Qunspecified_bg, respectively.
4811
4812 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4813 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4814
e19539f1
KH
48151999-12-15 Kenichi Handa <handa@etl.go.jp>
4816
4817 * coding.c (code_convert_region): Fix the secoding arg to
4818 update_compositions.
4819
5ec14d3c
KH
48201999-12-15 Kenichi Handa <handa@etl.go.jp>
4821
4822 The following changes are for the new composition mechanism. We
4823 have deleted `composition' charset and composite characters,
4824 instead introduced a special text property `composition'.
4825
4826 * Makefile.in (INTERVAL_SRC): Include composite.h.
4827 (INTERVAL_OBJ): Include composite.o.
4828 (SOME_MACHINE_OBJECTS): Include composite.o.
4829 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4830 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4831 Depend on composite.h.
4832 (doc.o): Depend on charset.h.
4833 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4834 (composite.o): New target.
427ec082 4835
5ec14d3c
KH
4836 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4837
4838 * callproc.c (Fcall_process): Call code_convert_string to encode
4839 arguments. Use CODING_REQUIRE_DECODING to check if the process
4840 output should be decoded.
4841
4842 * casefiddle.c: Include composite.h.
4843 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4844 multibyte character. Adjusted for the change of CHAR_STRING.
4845 (casify_region): Likewise. Call update_compositions.
4846
4847 * category.h (CATEGORY_SET): Delete codes for a composite
4848 character.
4849
4850 * category.c (word_boundary_p): Delete codes for a composite
4851 character.
4852 (Fmake_category_table): New function.
4853 (syms_of_category): Defsubr it.
4854
4855 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4856 (ccl_driver): Delete codes for a composite character.
4857
4858 * charset.h: In this entry, just `Modified' means that codes for a
4859 composite character is deleted.
4860 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4861 (charset_composition) (MIN_CHAR_COMPOSITION)
4862 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4863 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4864 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4865 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4866 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4867 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4868 Modified.
4869 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4870 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4871 non_ascii_char_to_string.
4872 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4873 (STRING_CHAR_AND_LENGTH): Likewise.
4874 (FETCH_CHAR_ADVANCE): New macro.
4875 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4876 (MAX_MULTIBYTE_LENGTH): New macro.
4877 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4878 (find_charset_in_str): Argument adjusted.
4879 (CHAR_LEN): Modified.
427ec082 4880
5ec14d3c
KH
4881 * charset.c: In this entry, just `Modified' means that codes for a
4882 composite character is deleted.
4883 (Qcomposition) (leading_code_composition)
4884 (charset_composition) (min_composite_char) (cmpchar_table)
4885 (cmpchar_table_size) (n_cmpchars): Deleted.
4886 (SPLIT_COMPOSITE_SEQ): Deleted.
4887 (SPLIT_MULTIBYTE_SEQ): Modified.
4888 (char_to_string): Renamed from non_ascii_char_to_string.
4889 Modified.
4890 (string_to_char): Renamed from string_to_non_ascii_char.
4891 (split_string): Renamed from split_non_ascii_string.
4892 (char_printable_p) (Fsplit_char)
4893 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4894 (char_bytes) (Fchar_width) (strwidth): Modified.
4895 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4896 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4897 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4898 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4899 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4900 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4901 (Fcmpchar_cmp_count): Deleted.
4902 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4903 (init_charset_once): Modified.
4904 (syms_of_charset): Modified.
4905
4906 * cmds.c (internal_self_insert): Adjusted for the change of
4907 CHAR_STRING.
4908
4909 * coding.h (emacs_code_class_type): Delete the member
4910 EMACS_leading_code_composition.
4911 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4912 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4913 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4914 (COMPOSING_WITH_RULE_P): Macros deleted.
4915 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4916 macros.
4917 (struct composition_data): New structure.
4918 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4919 (struct coding_system): New members composition_rule_follows,
4920 cmp_data, cmp_data_start, cmp_data_index.
4921 (coding_save_composition) (coding_free_composition_data)
4922 (coding_adjust_composition_offset): Extern them.
4923
4924 * coding.c: Include composite.h.
4925 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4926 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4927 of multibyte code here.
4928 (DECODE_CHARACTER_DIMENSION2): Likewise.
4929 (detect_coding_emacs_mule): Change the case label from
4930 EMACS_leading_code_composition to 0x80.
4931 (detect_coding_iso2022): Handle new composition sequence.
4932 (DECODE_ISO_CHARACTER): Likewise.
4933 (check_composing_code): Deleted.
4934 (coding_allocate_composition_data): New function.
4935 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4936 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4937 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4938 (decode_coding_iso2022): Handle new composition sequence.
4939 (ENCODE_ISO_CHARACTER): Don't check composition here.
4940 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4941 (ENCODE_COMPOSITION_NO_RULE_START)
4942 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4943 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4944 (ENCODE_COMPOSITION_FAKE_START): New macro.
4945 (encode_coding_iso2022): Handle new composition sequence.
4946 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4947 (encode_coding_sjis_big5): Ignore composition.
4948 (setup_coding_system): Initialize new members of struct
4949 coding_system. Enable composition only when the coding system has
4950 `composition' property t.
4951 (coding_free_composition_data) (coding_adjust_composition_offset)
4952 (coding_save_composition) (coding_restore_composition): New
4953 functions.
4954 (code_convert_region): Call coding_save_composition for encoding
4955 and coding_allocate_composition_data for decoding. Don't skip
4956 ASCII characters if we handle composition on encoding. Call
4957 signal_after_change with Check_BORDER.
4958 (code_convert_string): Call coding_save_composition for encoding
4959 and coding_allocate_composition_data for decoding. Don't skip
4960 ASCII characters if we handle composition on encoding.
4961 (code_convert_string1): Set Vlast_coding_system_used after calling
4962 code_convert_string.
4963 (code_convert_string_norecord): Disable composition.
4964 (Fset_terminal_coding_system_internal): Likewise.
4965 (Fset_safe_terminal_coding_system_internal): Likewise.
4966 (Fset_keyboard_coding_system_internal): Likewise.
4967 (init_coding_once): Set emacs_code_class[0x80] to
4968 EMACS_invalid_code.
4969
4970 * composite.h: New file.
4971
4972 * composite.c: New file.
4973
4974 * data.c (Faref): Delete codes for a composite character..
4975 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4976
4977 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4978 (struct glyph): Add new sub-structure cmp to the union `u'.
4979 (enum display_element_type): New member IT_COMPOSITION.
4980 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4981 (struct it): New members cmp_id, cmp_len.
4982
4983 * dispnew.c (direct_output_forward_char): Check point moving into
4984 or out of a composition. If so, give up direct method.
4985
4986 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4987
4988 * editfns.c (Fchar_to_string): Adjusted for the change of
4989 CHAR_STRING.
4990 (general_insert_function): Likewise.
4991 (Finsert_char): Likewise.
4992 (Fsubst_char_in_region): Likewise. Call update_compositions.
4993 (Ftranslate_region): Call update_compositions.
4994 (Ftranspose_regions): Call update_compositions.
4995
4996 * emacs.c (main): Call syms_of_composite.
4997
4998 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4999 CHAR_STRING.
5000 (Finsert_file_contents): Set Vlast_coding_system_used before
5001 calling signal_after_change. Call update_compositions if some
5002 texts are inserted..
5003 (Fwrite_region): Adjusted for the change of a_write and e_write.
5004 (a_write): Argument changed. Work based on character position,
5005 not byte position.
5006 (e_write): Argument changed. Handle new way of composition.
5007
5008 * fns.c (Flength): The length of char-table is MAX_CHAR.
5009 (concat): Adjusted for the change of CHAR_STRING.
5010 (Ffillarray): Adjusted for the change of CHAR_STRING.
5011 (Fset_char_table_default): Delete codes for a composite character.
5012 (hash_put): Return hash index.
5013
5014 * fontset.h (struct font_info): New member vertical_centering.
5015 (Vvertical_centering_font_regexp): Extern it.
5016
5017 * fontset.c (Vvertical_centering_font_regexp): New variable.
5018 (syms_of_fontset): Declare it as a Lisp variable and initialize.
5019 Set Vignore_relative_composition to nil.
5020 (fs_load_font): Initialize `vertical_centering' of struct
5021 font_info.
5022
5023 * indent.c (check_composition): New function.
5024 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
5025 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
5026 (current_column_1): Handle new way of composition.
5027 (Fmove_to_column): Likewise.
5028 (compute_motion): Likewise.
5029
5030 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
5031 (insert_char): Likewise.
5032 (insert): Call update_compositions.
5033 (insert_and_inherit): Likewise.
5034 (insert_before_markers): Likewise.
5035 (insert_before_markers_and_inherit): Likewise.
5036 (insert_from_string): Likewise.
5037 (insert_from_string_before_markers): Likewise.
5038 (insert_from_buffer): Likewise.
5039 (replace_range): Likewise.
5040 (count_combining_composition): Deleted.
5041 (count_combining_before): Delete codes for a composite character.
5042 (count_combining_after): Likewise.
5043 (del_range_1): Call update_compositions.
5044 (del_range_byte): Likewise.
5045 (del_range_both): Likewise.
5046 (Fcombine_after_change_execute): Likewise.
5047
5048 * intervals.h: Include composite.h.
5049 (get_property_and_range): Extern it.
5050 (Vtext_property_default_nonsticky): Extern it.
427ec082 5051
5ec14d3c
KH
5052 * intervals.c (adjust_intervals_for_insertion): To check stickines
5053 of properties, pay attention to text-property-default-nonsticky.
5054 (merge_properties_sticky): Likewise.
5055 (get_property_and_range): New function.
5056
5057 * keyboard.c (Vdisable_point_adjustment): New variable.
5058 (Vglobal_disable_point_adjustment): New variable.
5059 (syms_of_keyboard): Declare them as Lisp variables.
5060 (command_loop_1): Check them and call adjust_point_for_property if
5061 necessary.
5062 (adjust_point_for_property): New function.
5063
5064 * keymap.c (push_key_description): Adjusted for the change of
5065 CHAR_STRING.
5066 (Ftext_char_description): Likewise.
5067
5068 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5069 (hash_put): Adjusted for the change of the definition.
5070 (signal_after_change): Likewise.
5071 (check_point_in_composition): Extern it.
5072
5073 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5074 Delete a code that handles an invalid too-long multibyte sequence
5075 because we are now sure that we never encounter with such a
5076 sequence.
5077 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5078 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5079 (init_obarray): Likewise.
5080 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5081
5082 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5083
5084 * process.c: Include composite.h.
5085 (read_process_output): Call update_compositions.
5086
5087 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5088
5089 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5090
5091 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5092 character.
5093
5094 * term.c (encode_terminal_code): Delete codes for a composite
5095 character. Adjusted for the change of CHAR_STRING.
5096 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5097 Delete codes for a composite character.
5098
5099 * textprop.c (Vtext_property_default_nonsticky): New variable
5100 (syms_of_textprop): Declare it as a Lisp variable.
5101
5102 * window.c (Frecenter): Clear all caches of compositions.
5103
5104 * xdisp.c (it_props): Add an entry for composition.
5105 (face_before_or_after_it_pos): For composition, check face of a
5106 character after the composition.
5107 (handle_composition_prop): New function.
5108 (get_next_display_element): Adjusted for the change of
5109 CHAR_STRING.
5110 (set_iterator_to_next): Handle the case that it->method ==
5111 next_element_from_composition.
5112 (next_element_from_composition): New function.
5113 (message_dolog): Adjusted for the change of CHAR_STRING.
5114 (set_message_1): Likewise.
5115 (check_point_in_composition): New function.
5116 (reconsider_clip_changes): If point moved into or out of
5117 composition, set b->clip_changed to 1 to force updating of the
5118 screen.
5119 (disp_char_vector): Delete codes for a composite character.
5120 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5121
5122 * xfaces.c (choose_face_fontset_font): Delete codes for a
5123 composite character.
5124 (realize_x_face): Likewise. Change a place to set local variable
5125 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5126
5127 * xfns.c: Include intervals.h.
5128 (syms_of_xfns): Make `display' property nonsticky by default.
5129
5130 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5131 for find_charset_in_str.
5132
5133 * xterm.h (struct x_output): Change member font_baseline to
5134 baseline_offset.
5135
5136 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5137 for composition.
5138 (x_append_composite_glyph): New function.
5139 (VCENTER_BASELINE_OFFSET): New macro.
5140 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5141 of struct it for the composition. Cache pixel offsets in the
5142 struct composition. Delete codes for a composite character.
5143 Handle Vignore_relative_composition in composition code.
5144 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5145 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5146 (x_compute_glyph_string_overhangs): Likewise.
5147 (x_get_glyph_overhangs): Delete codes for a composite character.
5148 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5149 (x_draw_glyph_string_background): Likewise. Delete codes for
5150 checking s->gidx for a composition.
5151 (x_draw_glyph_string_foreground): Delete code for a composite
5152 character.
5153 (x_draw_composite_glyph_string_foreground): New function.
5154 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5155 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5156 (struct work): Deleted.
5157 (x_fill_composite_glyph_string): Argument changed. Mostly
5158 rewritten for that.
5159 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5160 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5161 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5162 (BUILD_GLYPH_STRINGS): For composition, call
5163 BUILD_COMPOSITE_GLYPH_STRING.
5164 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5165 f->output_data.x->font_baseline.
5166
c3c60f13
GM
51671999-12-14 Gerd Moellmann <gerd@gnu.org>
5168
5169 * xterm.c (show_mouse_face): Don't use updated_area, use
5170 TEXT_AREA.
5171
83c8f461 51721999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5173
5174 * minibuf.c (Fall_completions): Doc fix.
5175
83c8f461 51761999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5177
5178 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5179 has been changed by the Lisp code.
5180
d8eccf12
GM
51811999-12-12 Gerd Moellmann <gerd@gnu.org>
5182
5183 * xfns.c: Indentation fixes.
5184
ae56feae
SM
51851999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5186
5187 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5188
dfa1c6ae
GM
51891999-12-10 Gerd Moellmann <gerd@gnu.org>
5190
5191 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5192 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5193
5194 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5195 to frame.h.
5196
ec18280f
SM
51971999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5198
5199 * keyboard.c (Qratio): New symbol.
5200 (scroll_bar_parts): Add `Qratio' to it.
5201 (syms_of_keyboard): Init `Qratio'.
5202 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5203 * xterm.c (#includes): Allow compilation with only Xaw.
5204 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5205 (xt_action_hook): Replace XAW3D by XAW.
5206 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5207 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5208 Determine epsilon dynamically and don't try to be too clever.
5209 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5210 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5211 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5212 scrollbar (using `ratio').
5213 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5214 scrollbar we have so as to set it up more optimally and to fix
5215 xaw3d_arrow_scroll and xaw3d_pick_top.
5216 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5217 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5218 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5219 is not ignored, using a major gross hack.
5220 (x_initialize): Init default values for xaw3d_arrow_scroll and
5221 xaw3d_pick_top.
5222
83b6d970
DL
52231999-12-09 Dave Love <fx@gnu.org>
5224
5225 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5226
3648c842
GM
52271999-12-08 Gerd Moellmann <gerd@gnu.org>
5228
5229 * eval.c: Remove conditional compilation on `standalone'.
5230 (call_debugger): When entering the debugger while redisplaying,
5231 reset redisplaying_p, and go back to the top-level if the debugger
5232 returns.
5233
05e71564
GM
52341999-12-07 Gerd Moellmann <gerd@gnu.org>
5235
5236 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5237 basic faces are realized before trying to use face `menu'.
5238
5239 * window.c (delete_window): Block input for the time window
5240 matrices are being changed.
5241
b46cd536
DL
52421999-12-07 Dave Love <fx@gnu.org>
5243
5244 * lread.c (Fintern_soft): Fix newlines in doc string.
5245
96acb1f7
GM
52461999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5247
5248 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5249 duplicate definition of ElfW.
5250 (find_section): Copied from unexsgi.c.
5251 (unexec): Use find_section. Adjust whitespace. Initialize
5252 new_data2_offset based on old_data, not sbss (this fixes a bug on
5253 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5254 Adjust test for presence of .mdebug section to the new return
5255 value of find_section.
427ec082 5256
96acb1f7
GM
52571999-12-07 Gerd Moellmann <gerd@gnu.org>
5258
5259 * unexelf.c: Merge changes from 20.5.
5260 (unexec): Handle .lit4 and .lit8 unconditionally.
5261
5262 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5263 unexsgi.o again.
427ec082 5264
96acb1f7
GM
5265 * m/iris5d.h (UNEXEC): Likewise.
5266
7dae4502
SM
52671999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5268
5269 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5270 (syms_of_editfns): Register it.
5271 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5272 (del_range_1, del_range_2): Add a ret_string argument to
5273 request that the deleted text be returned.
5274 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5275 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5276 * casefiddle.c (casify_region): Update del_range_1 call.
5277 * coding.c (code_convert_region): Update del_range_2 call.
5278 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5279
397e4fae
GM
52801999-12-06 Gerd Moellmann <gerd@gnu.org>
5281
5282 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5283
3d973f71
GM
52841999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5285
5286 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5287
740e985f
EZ
52881999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5289
5290 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5291
5292 * insdel.c (adjust_markers_for_delete): Fix last change.
5293
2d764c78
EZ
52941999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5295
5296 Changes for automatic remapping of X colors on terminal frames:
5297
5298 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5299 frames.
5300 (Vface_tty_color_alist): Remove.
5301 (tty_defined_color): New function.
5302 (defined_color): Rewrite to support any type of frame.
5303 (tty_color_name): New function.
5304 (face_color_supported_p, Fface_color_gray_p,
5305 Fface_color_supported_p): Support non-X frames.
5306 (load_color): Enclose the color name in quotes, in the log
5307 messages. Remove DOS-specific version of load_color.
5308 (realize_tty_face): Take the supported colors from
5309 tty-color-alist. Support translation of X colors to the closest
5310 tty color, for both MSDOS and tty frames.
5311 [MSDOS]: Don't invert face colors if they were taken from the
5312 frame colors.
5313 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5314
5315 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5316 Define a mostly empty surrogate.
5317 (tty_display): Declare.
5318
5319 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5320 tty_display.
5321 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5322 frames when the frame's param_alist includes 'reverse.
5323 (tty_display): Define.
5324 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5325 output_data.x member.
5326 (Fframe_parameters): Return foreground and background color names
5327 on tty frames as well, in addition to MSDOS frames.
5328
5329 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5330 selected_frame.
5331 (struct x_output): Remove unused members; document who uses each
5332 member.
5333 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5334 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5335 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5336 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5337 unused macro definintions.
5338
5339 * msdos.c (IT_set_frame_parameters): Don't call
5340 recompute_basic_faces, the next redisplay will, anyway.
5341 (x_current_display): Remove unused variable.
5342 Many functions: changes for Lisp_object selected_frame.
5343 (IT_set_face): If the tty_reverse_p flag is set for the face,
5344 reverse the foreground and background colors.
5345 (Fmsdos_remember_default_colors): New function.
5346 (syms_of_msdos): Defsubr it.
5347 (IT_set_frame_parameters): Use initial_screen_colors[] when
5348 creating a new frame. If the frame parameters include 'reverse,
5349 swap the foreground and background colors.
5350 (internal_terminal_init): Initialize initial_screen_colors to -1.
5351 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5352 cus-start.el.
5353
5354 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5355
5356 * xfns.c (x_defined_color): Rename from defined_color. All
5357 callers changed.
5358 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5359 all callers changed.
5360 (Fxw_color_values): Renamed from Fx_color_values; all callers
5361 changed.
5362 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5363 callers changed.
5364 (x_window_to_frame, x_any_window_to_frame,
5365 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5366 x_top_window_to_frame): Use !FRAME_X_P instead of
5367 f->output_data.nothing.
5368 * xterm.h (x_defined_color): Rename from defined_color.
5369
5370 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5371 f->output_data.nothing.
5372 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5373 all callers changed.
5374 (Fxw_color_values): Renamed from Fx_color_values; all callers
5375 changed.
5376 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5377 callers changed.
5378
5379 * dispextern.h (tty_color_name): Add prototype.
5380
5381 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5382 f->output_data.nothing.
5383 * w32menu.c (menubar_id_to_frame): Likewise.
5384 * w32term.h (w32_output): Declare.
5385
5386 * dosfns.c (Qmsdos_color_translate): Remove.
5387 (msdos_stdcolor_name): Now returns a Lisp_Object.
5388 * dosfns.h (Qmsdos_color_translate): Remove.
5389
5390 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5391
b3e5232e
KH
53921999-12-06 Kenichi Handa <handa@etl.go.jp>
5393
5394 * fileio.c (decide_coding_unwind): Renamed from
5395 set_auto_coding_unwind.
5396 (Finsert_file_contents): Make single unwind protect to call both
5397 Vset_auto_coding_function and Ffind_operation_coding_system.
5398
5399 * insdel.c (adjust_markers_for_delete): Make it non-static.
5400
db0e466c
SM
54011999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5402
5403 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5404 operators and handle them properly.
5405 * regex.h (RE_ALL_GREEDY): New option.
5406 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5407 sorting would put it.
5408 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5409 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5410
22afa6e8
DL
54111999-12-04 Dave Love <d.love@dl.ac.uk>
5412
5413 * m/arm.h: New file.
5414
40afb967
DL
54151999-12-03 Dave Love <fx@gnu.org>
5416
5417 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5418
ddf8eff5
GM
54191999-12-02 Gerd Moellmann <gerd@gnu.org>
5420
5421 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5422 for building with Motif.
5423
5424 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5425 unexelf.o.
427ec082 5426
ddf8eff5
GM
5427 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5428
fa09a82d
DL
54291999-12-01 Dave Love <fx@gnu.org>
5430
5431 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5432
ddf8eff5
GM
54331999-11-28 Gerd Moellmann <gerd@gnu.org>
5434
5435 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5436 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5437 macros.
5438
5439 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5440
fa09a82d
DL
54411999-11-28 eliz <eliz@dlpx1>
5442
5443 * emacs.c (synchronize_locale): Avoid compiler warnings about
5444 pointer type mismatch.
5445
f9632fc8
GM
54461999-11-28 Gerd Moellmann <gerd@gnu.org>
5447
717d0121
GM
5448 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5449 out of range position.
5450
427ec082 5451 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5452 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5453
59c65f1e
EZ
54541999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5455
613a8346
EZ
5456 * charset.c (Fmake_char_internal): Print the charset ID when
5457 signalling an error.
5458
59c65f1e
EZ
5459 * emacs.c (synchronize_locale): Avoid compiler warnings about
5460 pointer type mismatch.
5461
83c8f461 54621999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5463
5464 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5465
18df9369
GM
54661999-11-26 Gerd Moellmann <gerd@gnu.org>
5467
65a3ccf7
GM
5468 * puresize.h (BASE_PURESIZE): Increase to 550000.
5469
b3b98592
GM
5470 * textprop.c (set_text_properties): New function. Like
5471 Fset_text_properties, but with additional parameter
5472 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5473 changes.
5474 (Fset_text_properties): Use it.
5475
5476 * insdel.c (insert_1_both): Call set_text_properties with last
5477 parameter nil so that no after changes will be signaled.
5478
5479 * lisp.h: Add prototype for set_text_properties.
5480
18df9369
GM
5481 * xfaces.c (set_lface_from_font_name): Fix previous change.
5482 (recompute_basic_faces): Change assert to abort.
5483
71a8e74b
DL
54841999-11-25 Dave Love <fx@gnu.org>
5485
5486 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5487 (Fmember, Fdelq, Fdelete): Inline car.
5488 (Fy_or_n_p): Doc fix.
5489
bc6a5782
GM
54901999-11-25 Gerd Moellmann <gerd@gnu.org>
5491
3221576b 5492 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5493 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5494 is not set, try to use a reasonable default.
5495
bc6a5782
GM
5496 * dispnew.c (direct_output_for_insert): Set glyph row's
5497 displays_text_p flag. Correct window's window_end_vpos if
5498 necessary.
5499
0c8559bb
PE
55001999-11-25 Paul Eggert <eggert@twinsun.com>
5501
5502 * emacs.c (fixup_locale): Don't bother to record initial locale.
5503 (synchronize_locale): If the desired locale is nil,
5504 treat it as if it were the empty string,
5505 so that we set the locale from the environment.
5506
35737351
KH
55071999-11-25 Kenichi Handa <handa@etl.go.jp>
5508
5509 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5510 of the current buffer via Fset.
5511
5562b47f
DL
55121999-11-24 Dave Love <fx@gnu.org>
5513
5562b47f
DL
5514 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5515
5516 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5517
00da0e4a
GM
55181999-11-24 Gerd Moellmann <gerd@gnu.org>
5519
5520 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5521
5522 * emacs.c (PVEC_FLAG): New variable.
5523
b1775dc1
GM
55241999-11-23 Gerd Moellmann <gerd@gnu.org>
5525
5526 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5527 that fails on IBM PowerPC, AIX 4.2.
427ec082 5528
08de6200
EZ
55291999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5530
5531 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5532 string of mode-line-format. Remove the obsolete %t.
5533
02fda8ff
GM
55341999-11-22 Gerd Moellmann <gerd@gnu.org>
5535
f2fa858f
GM
5536 * dispnew.c (direct_output_for_insert): Increment glyph positions
5537 for glyphs from buffer text only.
5538
02fda8ff
GM
5539 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5540 (gdb_data_seg_bits): New variables.
427ec082 5541
02fda8ff
GM
5542 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5543 work on systems not allowing enumerators > INT_MAX, and it
5544 won't work if EMACS_INT is long long.
5545
1b0d24e7
PE
55461999-11-22 Paul Eggert <eggert@twinsun.com>
5547
5548 Port to SunOS 4.1.x again. Help out with Alpha port.
5549 Rename messages-locale to system-messages-locale,
5550 and likewise for time-locale.
427ec082 5551
1b0d24e7
PE
5552 * callproc.c (strerror): Remove decl.
5553 * fileio.c (strerror): Likewise.
5554 * process.c (strerror): Likewise.
5555 * emacs.c (strerror): Likewise.
5556 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5557 All uses changed.
5558 (Vprevious_system_messages_locale): Likewise, from
5559 Vprevious_messages_locale.
5560 (Vsystem_time_locale): Likewise, from Vtime_locale.
5561 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5562 (ABORT_RETURN_TYPE): New macro.
5563 (abort): Return type is now ABORT_RETURN_TYPE.
5564 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5565 defined.
5566 (syms_of_emacs): messages-locale -> system-messages-locale,
5567 previous-messages-locale -> previous-system-messages-locale,
5568 time-locale -> system-time-locale,
5569 previous-time-locale -> previous-system-time-locale.
5570
5571 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5572 (const): Do not define; that's config.h's job.
5573 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5574 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5575 (<stddef.h>): Include if STDC_HEADERS is defined.
5576 (FREE_RETURN_TYPE): New macro.
5577 (free): Return type is now FREE_RETURN_TYPE.
5578
5579 * lisp.h (synchronize_system_time_locale): Renamed from
5580 synchronize_time_locale. All uses changed.
5581 (synchronize_system_messages_locale): Likewise, from
5582 synchronize_messages_locale.
5583
5584 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5585 stdlib.h now does this.
5586
5587 * process.c (sys_siglist): Remove.
5588
5589 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5590 New macros.
5591
5592 * syntax.c (scan_sexps_forward): Use abort, not assert.
5593
5594 * sysdep.c (my_sys_siglist): New var.
5595 (sys_siglist): New macro. Remove old initialized vars of same name.
5596 (init_signals): Initialize sys_siglist.
5597
5598 * xfns.c (abort): Remove decl; stdlib.h now does this.
5599
0dcd5b54
DL
56001999-11-18 Dave Love <fx@gnu.org>
5601
946173ad
DL
5602 * filelock.c: Add forward declaration for get_boot_time_1.
5603
0dcd5b54
DL
5604 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5605
71447e8f
GM
56061999-11-18 Gerd Moellmann <gerd@gnu.org>
5607
5608 * buffer.h (struct buffer_text): Add comment about moving
5609 buffer text if REL_ALLOC is defined.
5610
eeedff63
KH
56111999-11-18 Kenichi Handa <handa@etl.go.jp>
5612
5613 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5614
5615 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5616 memory for push_key_description.
5617
5618 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5619 allocate memory for push_key_description.
5620 (describe_buffer_bindings): Likewise.
5621
5d7e4a2c
GM
56221999-11-17 Gerd Moellmann <gerd@gnu.org>
5623
5624 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5625 (Fx_hide_busy_cursor): Ditto.
5626
56271999-11-17 Marco Walther <walther@siemens-pyramid.com>
5628
5629 * unexsni.c (unexec): Handle .rel.dyn section.
5630
b5b41e02
DL
56311999-11-16 Dave Love <fx@gnu.org>
5632
5633 * doc.c (Fdocumentation): Remove gcpro here too.
5634
e35b6123
GM
56351999-11-16 Gerd Moellmann <gerd@gnu.org>
5636
5637 * keyboard.c (command_loop_1): Remove no_redisplay.
5638
83c8f461 56391999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5640
5641 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5642 in noninteractive.
5643
b05d3bee
GM
56441999-11-14 Gerd Moellmann <gerd@gnu.org>
5645
5bcfeb49
GM
5646 * xdisp.c (ensure_echo_area_buffers): New.
5647 (with_echo_area_buffer): Use it.
5648 (setup_echo_area_for_printing): Ditto.
5649
b05d3bee
GM
5650 * buffer.c (indicate-empty-lines): Doc-fix.
5651
9b2e6e4c
GM
56521999-11-12 Gerd Moellmann <gerd@gnu.org>
5653
e7f90eab
GM
5654 * term.c (term_init): If "op" isn't available, don't support color
5655 because we can't switch back to the default foreground and
5656 background.
5657
9b2e6e4c
GM
5658 * doc.c (Fdocumentation_property): Remove GCPRO because
5659 Fsubstitute_command_keys gcpro's the string.
5660
1bf21027
KH
56611999-11-12 Kenichi Handa <handa@etl.go.jp>
5662
5663 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5664
3bc6df53
GM
56651999-11-11 Gerd Moellmann <gerd@gnu.org>
5666
5667 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5668 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5669 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5670
35a5514b
GM
56711999-11-10 Gerd Moellmann <gerd@gnu.org>
5672
5673 * xfns.c (QCuser_data): Removed.
5674 (syms_of_xfns): Initialization of QCuser_data removed.
5675 (parse_image_spec): Don't handle :user-data specially. Allow
5676 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5677 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5678 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5679 parse_image_spec accordingly.
5680
83c8f461 56811999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5682
5683 * cmds.c (Fbeginning_of_line): Doc fix.
5684 (Fend_of_line): Doc fix.
5685
5686 * editfns.c (Fline_beginning_position): If N is not 1,
5687 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5688
5689 * syntax.c (Fforward_word): Handle fields even if would have hit
5690 an edge of the buffer. Return nil if affected by fields.
5691
83c8f461 56921999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5693
5694 * editfns.c (preceding_pos): Function deleted.
5695 (text_property_stickiness): Decrement POS directly.
5696 Fix a confusion that used PT instead of POS.
5697
5698 * editfns.c (find_field): Properly handle the case
5699 of a field boundary where `field' inherits from neither side.
5700
5701 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5702 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5703
fa9aabf6
GM
57041999-11-08 Gerd Moellmann <gerd@gnu.org>
5705
5706 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5707 BEFORE_POTENTIAL_GC before DISCARD.
5708
4015b3c0
GM
57091999-11-07 Gerd Moellmann <gerd@gnu.org>
5710
033a5fa3
GM
5711 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5712
5713 * lisp.h: Add prototype for unmark_byte_stack.
5714
5715 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5716 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5717 XUNMARK.
5718
55b064bd
GM
5719 * xdisp.c (resize_mini_window): Fix computation of needed
5720 mini-window height.
5721
5722 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5723 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5724
4015b3c0 5725 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5726 locally there. Rearrange case statements so that those most
4015b3c0
GM
5727 frequently executed come first. Avoid goto's in frequently
5728 executed cases.
5729
fe512f27
GM
57301999-11-05 Gerd Moellmann <gerd@gnu.org>
5731
dd59e217
GM
5732 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5733 AFTER_POTENTIAL_GC around internal_catch.
5734
bcf28080
GM
5735 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5736 relocate_byte_pcs.
5737 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5738
5739 * eval.c (struct catchtag): Add member byte_stack.
5740 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5741 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5742 catchtag.
5743 (unwind_to_catch): Restore byte_stack_list from catchtag.
5744
5745 * lisp.h: Add prototypes for new functions in bytecode.c.
5746 Add extern declaration for byte_stack_list.
5747
5748 * bytecode.c (struct byte_stack): New.
5749 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5750 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5751 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5752 (HANDLE_RELOCATION): Removed.
5753 (Fbyte_code): Use byte_stack structures.
5754
4d59c34c
GM
5755 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5756
fe512f27
GM
5757 * buffer.c (syms_of_buffer): Extend documentation of
5758 mode-line-format.
5759
60b64cd6
GM
57601999-11-04 Gerd Moellmann <gerd@gnu.org>
5761
5762 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5763
5764 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5765 Ferase_field instead of Fdelete_field.
5766
b51b619b
GM
57671999-11-03 Gerd Moellmann <gerd@gnu.org>
5768
5769 * dispnew.c (Finternal_show_cursor): Change it to set the
5770 cursor on/off, not toggle its state.
5771 (Finternal_show_cursor_p): New.
5772 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5773
5865af0d
DL
57741999-11-03 Dave Love <fx@gnu.org>
5775
5776 * charset.c (split_non_ascii_string): Define return value.
5777
82a700f3
GM
57781999-11-03 Gerd Moellmann <gerd@gnu.org>
5779
edfef199
GM
5780 * minibuf.c (string_to_object): New.
5781 (read_minibuf_noninteractive): New.
5782 (read_minibuf): Call read_minibuf_noninteractive if
5783 noninteractive. Use string_to_object.
5784
82a700f3
GM
5785 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5786
b5540f0d
DL
57871999-11-02 Dave Love <fx@gnu.org>
5788
e69dcd60
DL
5789 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5790
827a1788
DL
5791 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5792 declared with glibc2.
b5540f0d 5793
a69a6e61
GM
57941999-11-02 Gerd Moellmann <gerd@gnu.org>
5795
5796 * lisp.h (QUIT): Give it statement form.
5797
87e21fbd
DL
57981999-11-02 Dave Love <fx@gnu.org>
5799
5800 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5801
1b335865
GM
58021999-11-02 Gerd Moellmann <gerd@gnu.org>
5803
9fb5e03d
GM
5804 * xfns.c (QCuser_data): New.
5805 (syms_of_xfns): Initialize QCuser_data.
5806 (parse_image_spec): Ignore :user-data DATA properties.
5807
1b335865
GM
5808 * xdisp.c (display_line): Set charpos of first glyph in blank
5809 lines not corresponding to any text to -1, even if no glyphs are
5810 filled in in that line.
5811
e76f1c44
GM
58121999-11-01 Gerd Moellmann <gerd@gnu.org>
5813
427ec082 5814 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5815 png_get_sRGB in #ifdef.
5816
111259b4
GM
5817 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5818 (syms_of_display): Use the new name.
5819
dd5c96e8
GM
5820 * textprop.c (verify_interval_modification): Signal text-read-only
5821 instead of calling error.
5822
db8878fb
GM
5823 * data.c (Qtext_read_only): New built-in error.
5824 (syms_of_data): Initialize it.
5825
5826 * lisp.h: Add extern declaration for Qtext_read_only.
5827
e76f1c44
GM
5828 * syntax.c: Remove whitespace after open or in front of closing
5829 parentheses.
5830
83c8f461 58311999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5832
5833 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5834
7843e09c
GM
58351999-10-31 Gerd Moellmann <gerd@gnu.org>
5836
575ed805
GM
5837 * xdisp.c (resize_mini_window): Compute needed height differently.
5838
7843e09c
GM
5839 * fns.c (Flength): Unroll loop over lists.
5840
5841 * xdisp.c (append_space): Return non-zero if space was appended.
5842 (display_line): Set charpos of first glyph to -1 only if that
5843 glyph is the space added by append_glyph.
5844
83c8f461 58451999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5846
5847 * print.c (strout): Consider `noninteractive' and use stdout
5848 only when PRINTCHARFUN is t.
5849
5850 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5851 (gcpro_level): Declare it extern.
5852 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5853 Alternate definitions that set `level' and increment `gcpro_level'.
5854 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5855
5856 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5857 (init_eval) [DEBUG_GCPRO]: Initialize it.
5858 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5859 from remaining gcprolist.
5860
3636f7a3
KH
58611999-10-29 Kenichi Handa <handa@etl.go.jp>
5862
5863 * coding.c (code_convert_region): Update `dst' correctly.
5864
a2ad7096
GM
58651999-10-28 Gerd Moellmann <gerd@gnu.org>
5866
5867 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5868 (Frassoc): Rewritten.
5869
1e3196e8
GM
58701999-10-27 Noah Friedman <friedman@splode.com>
5871
5872 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5873 Define PTY_NAME_SPRINTF.
5874 Redefine PTY_TTY_NAME_SPRINTF.
5875 * config.in: Add undef for HAVE_DEV_PTMX.
5876
83c8f461 58771999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5878
5879 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5880 as arg to DEBUG_POP and DEBUG_PRINT.
5881
83c8f461 58821999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5883
5884 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5885 (Ffset): Call Qad_activate_internal.
5886 (syms_of_data): Initialize Qad_activate_internal.
5887
26922151
GM
58881999-10-27 Gerd Moellmann <gerd@gnu.org>
5889
5890 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5891 Vterminal_frame is selected and Vwindow_system is non-nil.
5892
67a5596f
GM
58931999-10-26 Gerd Moellmann <gerd@gnu.org>
5894
2bea706b
GM
5895 * xdisp.c (echo_area_display): Put previous change in #if 0.
5896
67a5596f
GM
5897 * emacs.c (standard_args): Add `file' as synonym for `visit',
5898 `execute' as synonym for `eval'.
5899 (main): Add new options to usage message.
5900
81dc5de5
GM
59011999-10-25 Gerd Moellmann <gerd@gnu.org>
5902
5903 * data.c (Qhash_table): New.
5904 (Ftype_of): Return it for hash tables.
5905 (syms_of_data): Initialize Qhash_table.
5906
83c8f461 59071999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5908
5909 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5910
66e4690f 59111999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5912
7539e11f
KR
5913 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5914 lisp.h.
5915
5916 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5917 Fbuffer_local_variables, Fother_buffer, record_buffer,
5918 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5919 swap_out_buffer_local_variables, overlays_at, overlays_in,
5920 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5921 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5922 Foverlay_put, report_overlay_modification, evaporate_overlays):
5923 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5924 references.
5925 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5926 swap_in_symval_forwarding, set_internal, default_value,
5927 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5928 Fmake_variable_frame_local, Flocal_variable_p,
5929 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5930 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5931 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5932 * emacs.c (main): Likewise.
5933 * fontset.c (fs_load_font, fs_register_fontset,
5934 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5935 Fnew_fontset, Fset_fontset_font): Likewise.
5936 * frame.c (do_switch_frame, next_frame, prev_frame,
5937 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5938 Likewise.
5939 * keyboard.c (read_char, help_char_p, event_to_kboard,
5940 kbd_buffer_get_event, timer_start_idle, timer_check,
5941 make_lispy_event, apply_modifiers, reorder_modifiers,
5942 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5943 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5944 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5945 Fcommand_execute, Fexecute_extended_command): Likewise.
5946 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5947 Fall_completions): Likewise.
5948 * window.c (Fset_window_margins): Likewise.
5949
5950 * callint.c (quotify_args): Don't explicitly use struct
5951 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5952
3a7093d8
KR
5953 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5954 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5955 if __ELF__ is defined.
5956
2a3d7146
GM
59571999-10-24 Gerd Moellmann <gerd@gnu.org>
5958
5959 * window.c (Fnext_window): Add a QUIT in the loop.
5960
8ac52782
GM
59611999-10-23 Gerd Moellmann <gerd@gnu.org>
5962
427ec082 5963 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5964 New targets.
5965
05f0d15a
DL
59661999-10-22 Dave Love <fx@gnu.org>
5967
5968 * emacs.c (main): Enable profiling conditional on __linux also.
5969
882fb0e6
GM
59701999-10-20 Gerd Moellmann <gerd@gnu.org>
5971
5972 * xrdb.c (x_load_resources): Set default resources for resource
5973 classes instead of for the specific Emacs.
5974
b5f5bc31
GM
59751999-10-19 Gerd Moellmann <gerd@gnu.org>
5976
66f4dd69
GM
5977 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5978 defines it that way.
427ec082 5979
b5f5bc31
GM
5980 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5981 if selected_frame is equal to Vterminal_frame.
5982
68c45bf0 59831999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5984
68c45bf0 5985 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5986
68c45bf0
PE
5987 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5988 when dumping, so that the dumped Emacs doesn't have stray locale info.
5989 (dired.o): Depend on systime.h.
5990 (editfns.o): Depend on coding.h.
5991
5992 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5993 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5994 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5995 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5996 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5997 Include <config.h> before any system include files.
5998
5999 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
6000 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
6001 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
6002 xmenu.c, xterm.c:
6003 Do not include <stdlib.h>, as <config.h> does this now.
6004
6005 * callproc.c (Fcall_process):
6006 Synchronize messages locale before invoking strerror.
6007 Decode resulting string with locale-coding-system.
6008
6009 * coding.c (Vlocale_coding_system): New var.
6010 (syms_of_coding): Adjust to above change.
6011 (emacs_strerror): New function.
6012
6013 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 6014
68c45bf0
PE
6015 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
6016 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
6017 HAVE_STRSIGNAL): New macros.
6018 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
6019 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
6020
6021 * dired.c: Include "systime.h".
6022 (Ffile_attributes): Do not cast s.st_size to int; this loses
6023 information if int is 32 bits but st_size and EMACS_INT are larger.
6024 Treat large device numbers like large inode numbers.
6025
6026 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
6027
6028 * editfns.c: Include coding.h.
6029 (emacs_strftime): Remove decl.
6030 (emacs_strftimeu): New decl.
6031 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
6032 Use emacs_strftimeu instead of emacs_strftime.
6033 (Fformat_time_string): Convert format string using
6034 Vlocale_coding_system, and convert result back. Synchronize time
6035 locale before invoking lower level function. Invoke
6036 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 6037
68c45bf0
PE
6038 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
6039 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
6040 Vprevious_time_locale): New variables.
6041 (main): Invoke setlocale early, so that initial error messages are
6042 localized properly. But skip locale-setting if LC_ALL is "C".
6043 Fix up locale when it's safe to do so.
6044 (fixup_locale): Moved here from xterm.c.
6045 (synchronize_locale, synchronize_time_locale,
6046 synchronize_messages_locale): New functions.
6047 (syms_of_emacs): Accommodate above changes.
6048
6049 * fileio.c (report_file_error): Convert strerror output according
6050 to Vlocale_coding_system.
6051 (Finsert_file_contents): Check for arithmetic overflow in
6052 computations that depend on file size. Report IO errors
6053 with emacs_strerror, not strerror.
6054
6055 * fns.c (Fgethash): Declare dflt parameter.
6056
6057 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
6058 is defined; that's config.h's job.
6059
6060 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
6061 default these values to long, BITS_PER_LONG, and unsigned long.
6062 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6063 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6064 (code_convert_string_norecord, fixup_locale,
6065 synchronize_messages_locale, synchronize_time_locale,
6066 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6067 All Emacs callers of open, close, read, write changed to use
6068 emacs_open, emacs_close, emacs_read, emacs_write.
6069
6070 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6071 changed to file_tell.
6072 (saved_doc_string_position, prev_saved_doc_string_position): Now
6073 of type file_offset.
6074 (init_lread): Do not fix locale here; fixup_locale now does this.
6075
6076 * m/amdahl.h, s/usg5-4.h:
6077 (NSIG): Remove.
6078 (NSIG_MINIMUM): New macro.
6079
6080 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6081 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6082 s/umips.h, s/usg5-4.h:
6083 (SIGIO): Do not undef.
6084 (BROKEN_SIGIO): New macro.
6085
6086 * m/ustation.h:
6087 (SIGTSTP): Do not undef.
6088 (BROKEN_SIGTSTP): New macro.
6089
6090 * s/gnu-linux.h:
6091 (SIGPOLL, SIGURG): Do not undef.
6092 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6093
6094 * s/ptx4.h:
6095 (SIGINFO): Do not undef.
6096 (BROKEN_SIGINFO): New macros.
427ec082 6097
68c45bf0
PE
6098 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6099
6100 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6101 some Emacs-related changes merged.
6102
6103 * print.c (float_to_string): Prepend "-" to representation of a
6104 NaN if the NaN is negative.
6105
6106 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6107 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 6108
68c45bf0
PE
6109 * process.c (status_message, sigchld_handler): Synchronize locale,
6110 then use strsignal istead of sys_siglist.
6111 * w32proc.c (sys_wait): Likewise.
427ec082 6112
68c45bf0
PE
6113 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6114 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6115 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6116 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6117 (open, close, read, write, INTERRUPTIBLE_OPEN,
6118 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6119
6120 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6121
6122 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6123 sys_open, open): Remove.
6124 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6125 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6126 macros are no longer used.
6127 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6128 (emacs_close): Renamed from sys_close.
6129 (emacs_read): Renamed from sys_read.
6130 (emacs_write): Renamed from sys_write.
6131 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6132 (dup2): Do not print error on failure; the real dup2 doesn't.
6133 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6134
6135 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6136 is defined.
6137 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6138 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6139 (strsignal): Declare if !HAVE_STRSIGNAL.
6140
6141 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6142 (ElfW): Define in terms of ElfExpandBitsW.
6143
6144 * w32proc.c (sys_siglist): Remove decl.
6145
6146 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6147 with ANSI C.
6148 (display_string): Declare face_string_pos arg.
6149
6150 * xfns.c (Fx_show_tip): Declare timeout param.
6151
6152 * xterm.c: No need to include locale.h.
6153 (x_alloc_lighter_color, x_setup_relief_color):
6154 Pass arg as double, not float, for compatibility with ANSI C.
6155 (fixup_locale): Move to emacs.c.
6156 (x_term_init): Do not setlocale or fixup locale; the main program
6157 does this now.
6158
2f0b74ea
DL
61591999-10-18 Dave Love <fx@gnu.org>
6160
6161 * doc.c (Fdocumentation_property): Gcpro `tem'.
6162
471aa4a0
KH
61631999-10-18 Kenichi Handa <handa@etl.go.jp>
6164
6165 * lread.c (Fload): Calculate bytes of filename correctly.
6166 (openp): Likewise.
6167
aca2020b
KH
61681999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6169
6170 * print.c (print_preprocess): In case print-circle is nil,
6171 add OBJ to Vprint_number_table only when OBJ is a symbol.
6172
1f5fe392 61731999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6174
6175 * coding.c (code_convert_string): Add record_unwind_protect to
6176 assure setting inhibit_pre_post_conversion back to zero. Take
6177 care of the multibyteness of the working buffer.
6178
6179 * coding.c (inhibit_pre_post_conversion): New variable.
6180 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6181 ignore post-read-conversion and pre-write-conversion property of
6182 the coding system.
6183 (code_convert_region_unwind): New function.
6184 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6185 running pre-write-conversion and post-read-conversion.
6186 (code_convert_string): Likewise.
6187
cd876a91
GM
61881999-10-17 Miles Bader <miles@gnu.org>
6189
6190 * editfns.c: Doc fix.
6191
61921999-10-17 Miles Bader <miles@gnu.org>
6193
6194 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6195 argument preconditions of find_before_next_newline in the case
6196 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6197 was indeed at the edge.
6198
61991999-10-17 Miles Bader <miles@gnu.org>
6200
6201 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6202 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6203
6204 * editfns.c (text_property_eq, text_property_stickiness): Don't
6205 use initializers for auto variables of type Lisp_Object.
6206 (find_field): Likewise. Use braces around nested ifs.
6207 (Fline_end_position): Store the raw eol in a variable, so that the
6208 final expression doesn't look so ugly.
6209 (Fconstrain_to_field): Doc fix.
6210 (preceding_pos): Renamed from `preceeding_pos'.
6211 (text_property_stickiness, find_field): Call preceding_pos,
6212 not preceeding_pos.
6213
62141999-10-17 Miles Bader <miles@gnu.org>
6215
6216 * editfns.c (Ffield_string_no_properties): New function.
6217 (text_property_stickiness, preceeding_pos): New functions.
6218 (Ffield_string): Remove PROPS parameter.
6219 (find_field): Add MERGE_AT_BOUNDARY parameter.
6220 Rewrite to use stickiness of `field' property to resolve
6221 ambiguous cases.
6222 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6223 (Fconstrain_to_field): Likewise.
6224 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6225 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6226 Supply new MERGE_AT_BOUNDARY argument to find_field.
6227 (Fline_beginning_position, Fline_end_position): Supply new
6228 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6229 Pass a value of Qt for the ONLY_IN_LINE argument to
6230 Fconstrain_to_field (only matters if N != 1).
6231 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6232 to Fconstrain_to_field.
6233
6234 * minibuf.c (Fminibuffer_complete_word): Use
6235 Ffield_beginning to find the prompt end.
6236
62371999-10-17 Miles Bader <miles@gnu.org>
6238
6239 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6240 behavior when NEW_POS is nil.
6241 (find_field): Use XSETFASTINT instead of make_number.
6242 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6243 input string by seeing where the field begins, instead of
6244 looking at text-properties.
6245
62461999-10-17 Miles Bader <miles@gnu.org>
6247
6248 * editfns.c (Qfield): New variable.
6249 (find_field, Ferase_field, Ffield_string,
6250 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6251 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6252 (make_buffer_string_both): Remove minibuffer-prompt hack.
6253 (syms_of_editfns): Initialize Qfield, and subr entries for
6254 field functions above.
6255 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6256 minibuf_save_list.
6257 Don't initialize minibuffer prompt length.
6258 Wrap prompt text-properties around the entire prompt.
6259 Add 'prompt text-property to prompt.
6260 Get final value with Ffield_string instead of make_buffer_string.
6261 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6262 minibuf_save_list.
6263 (do_completion): Get minibuffer input with Ffield_string
6264 instead of Fbuffer_string.
6265 Erase minibuffer input with Ferase_field instead of erase_buffer.
6266 (Fminibuffer_complete_and_exit): Likewise.
6267 Test whether buffer is empty by looking for the 'prompt text
6268 property at the end.
6269 Set prompt length by looking for the end of the prompt text property,
6270 and save prompt length for later use (since there is no longer a
6271 buffer variable to get it from).
6272 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6273 (syms_of_minibuf): Remove initializations of
6274 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6275 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6276 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6277 Don't initialize prompt_end_charpos field.
6278 * syntax.c (Fforward_word): Likewise.
6279 Constrain to any field.
6280
3f6f7508
GM
62811999-10-16 Gerd Moellmann <gerd@gnu.org>
6282
6283 * window.c (enum save_restore_action): New.
6284 (save_restore_orig_size): Change parameter list. Add
6285 functionality to check for valid orig_top and orig_height members
6286 in a window tree.
6287 (grow_mini_window): Call save_restore_orig_size with new parameter
6288 list.
6289 (shrink_mini_window): Restore old window sizes only if old
6290 size information is valid in all windows in a window tree.
427ec082 6291
06482119
GM
62921999-10-15 Gerd Moellmann <gerd@gnu.org>
6293
2710454d
GM
6294 * xmenu.c (set_frame_menubar): Don't call
6295 x_set_menu_resources_from_menu_face here.
6296 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6297
06482119
GM
6298 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6299
17fa2837
DL
63001999-10-14 Dave Love <fx@gnu.org>
6301
6302 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6303
45f93416
GM
63041999-10-14 Gerd Moellmann <gerd@gnu.org>
6305
6306 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6307 fails and h_errno is TRY_AGAIN.
6308
c765b723
DL
63091999-10-13 Dave Love <fx@gnu.org>
6310
6311 * filelock.c (lock_file): Move gcpro of `fn'.
6312
dace7f4e
GM
63131999-10-10 Gerd Moellmann <gerd@gnu.org>
6314
6315 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6316
83c8f461 63171999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6318
6319 * print.c (print): When removing objects from Vprint_number_table,
6320 only scan the newly added objects.
6321 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6322 unconditionally force it to stay in the table.
6323
85177c86
GM
63241999-10-09 Gerd Moellmann <gerd@gnu.org>
6325
6326 * xfns.c (prepare_image_for_display): Don't try to load image if
6327 loading it failed before.
6328 (lookup_image, prepare_image_for_display): Remember if loading the
6329 image failed.
6330 (xpm_load): Add missing UNBLOCK_INPUT.
6331
6332 * dispextern.h (struct image): New member load_failed_p.
6333
11e4de5d
SM
63341999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6335
f28eba7b 6336 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6337 in the docstring.
6338
f1da8f06
GM
63391999-10-08 Gerd Moellmann <gerd@gnu.org>
6340
6341 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6342 Don't call XSetInputFocus because that can generate additional
6343 FocusIn events.
427ec082 6344
c37bbd4f
GM
63451999-10-07 Jeffrey C Honig <jch@bsdi.com>
6346
6347 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6348
83c8f461 63491999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6350
6351 * process.c (wait_reading_process_input): When trying to suck
6352 input from one process, for accept-process-output,
6353 exit that loop if we get EAGAIN or EWOULDBLOCK.
6354
577d9e2f
GM
63551999-10-07 Gerd Moellmann <gerd@gnu.org>
6356
6357 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6358 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6359 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6360 Fpixmap_spec_p and Qpixmap_spec_p.
6361 (load_face_colors, check_lface_attrs,
6362 merge_face_vector_with_property,
6363 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6364 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6365 Fbitmap_spec_p.
6366
f5737ad2
GM
63671999-10-07 Gerd Moellmann <gerd@gnu.org>
6368
6369 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6370 MODE_LINE_FACE_ID.
6371
6372 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6373 (struct x_resources) [USE_X_TOOLKIT]: New.
6374 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6375 [USE_MOTIF]: New.
6376 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6377 [USE_LUCID]: New.
6378 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6379 (Qmenu): New.
6380 (syms_of_xfaces): Initialize Qmenu.
6381 (realize_basic_faces): Realize face `menu'.
6382 (resolve_face_name): New.
6383 (lface_from_face_name): Use it.
6384 (Finternal_set_lisp_face_attribute): Ditto.
6385 (Fpixmap_spec_p): Rewritten. Extend doc string.
6386
6387 * xmenu.c (set_frame_menubar, xmenu_show): Call
6388 x_set_menu_resources_from_menu_face.
6389
6390 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6391 (toplevel): Include X11/Intrinsic.h.
6392
6a1aa823
DL
63931999-10-03 Ken'ichi Handa <handa@gnu.org>
6394
6395 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6396 correctly.
6397
26901792
DL
63981999-09-30 Kenichi Handa <handa@etl.go.jp>
6399
6400 * category.c (modify_lower_category_set): Set default value of
6401 TABLE correctly.
6402
6403 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6404 size correctly.
6405
64061999-09-29 Gerd Moellmann <gerd@gnu.org>
6407
6408 * editfns.c (Fpropertize): Renamed from Fproperties.
6409
64101999-09-29 Gerd Moellmann <gerd@gnu.org>
6411
6412 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6413 frame that hasn't been initialized yet.
6414
83c8f461 64151999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6416
6417 * keymap.c (Fsingle_key_description): Make tem big enough.
6418 (describe_buffer_bindings): Make buf big enough.
6419
83c8f461 64201999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6421
6422 * intervals.c (get_local_map): Use indirect_function,
6423 not Findirect_function.
6424
26901792
DL
64251999-09-27 Dave Love <fx@gnu.org>
6426
6427 * cm.h: Remove unneeded declaration of ospeed.
6428
64291999-09-26 Gerd Moellmann <gerd@gnu.org>
6430
6431 * lisp.h (toplevel): Add prototype for
6432 next_single_char_property_change.
6433
6434 * textprop.c (next_single_char_property_change): New.
6435
6436 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6437 next_single_char_property_change.
6438
64391999-09-25 Gerd Moellmann <gerd@gnu.org>
6440
6441 * editfns.c (Fproperties): New.
6442 (syms_of_editfns): Defsubr it.
6443
6444 * xfns.c (lookup_image): Set image's timestamp because it's
6445 used when we look it up.
6446
64471999-09-23 Gerd Moellmann <gerd@gnu.org>
6448
6449 * window.c (enlarge_window): Add window parameter instead of using
6450 selected_window.
6451 (Fdisplay_buffer): Call it with window parameter instead of
6452 setting selected_window.
6453 (Fenlarge_window, Fshrink_window): Ditto.
6454 (shrink_mini_window): If there is no recorded height and position
6455 info, resize mini-window to height 1.
6456
6457 * xfns.c (image_error): Use add_to_log.
6458
6459 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6460 (load_face_font_or_fontset, load_color,
6461 merge_face_vector_with_property): Ditto.
6462
6463 * dispextern.h: Add prototype for add_to_log.
6464
6465 * xfaces.c (add_to_log): Move to xdisp.c.
6466
6467 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6468 parameter.
6469
64701999-09-23 Gerd Moellmann <gerd@gnu.org>
6471
6472 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6473 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6474
6475 * xdisp.c (resize_mini_window): Use grow_mini_window and
6476 shrink_mini_window.
6477
6478 * window.c (window_min_size): Add parameter ignore_fixed_p.
6479 (change_window_height): Call window_min_size with new parameter.
6480 (shrink_window_lowest_first, save_restore_orig_size,
6481 grow_mini_window, shrink_mini_window): New.
6482 (make_window, replace_window): Initialize orig_top and
6483 orig_height.
6484 (enlarge_window): Renamed from change_window_height. Make it
6485 static.
6486 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6487 enlarge_window instead of change_window_height.
6488
6489 * window.h (struct window): New members orig_top, orig_height.
6490 (toplevel): Add prototypes for grow_mini_window and
6491 shrink_mini_window. Remove prototype for change_window_height.
6492
64931999-09-21 Eli Zaretskii <eliz@gnu.org>
6494
6495 * frame.c (frame_name_fnn_p): Fix previous change.
6496
64971999-09-20 Gerd Moellmann <gerd@gnu.org>
6498
6499 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6500
6501 * dispnew.c (direct_output_for_insert): Cast arguments to
6502 safe_bcopy to char *.
6503
6504 * lread.c (readchar): Remove unused variables.
6505 (read_filtered_event, read1, Fmapatoms): Ditto.
6506 (toplevel): Include intervals.h.
6507
6508 * eval.c (Fsignal): Remove unused variables.
6509 (Fcommandp, do_autoload): Ditto.
6510
6511 * lisp.h: Add prototype for safe_bcopy, fatal.
6512
6513 * editfns.c (init_editfns): Remove unused variables.
6514 (Fgoto_char, Fchar_after, Fformat): Ditto.
6515 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6516
6517 * data.c (find_symbol_value): Remove unused variables.
6518 (Faref, Fstring_to_number): Ditto.
6519 (toplevel): Include stdio.h.
6520 (Fnumber_to_string): Cast XINT to long for %ld.
6521
6522 * casefiddle.c (casify_object): Remove unused variables.
6523 (casify_region): Ditto.
6524
427ec082 6525 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6526 conditinally compiled section in #ifdef.
6527 (toplevel): Include stdio.h.
6528
6529 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6530 keys_of_keymap, syms_of_keymap): Remove unused variables.
6531
65321999-09-20 Gerd Moellmann <gerd@gnu.org>
6533
6534 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6535 whose corresponding window rows have been disabled in
6536 try_window_id.
6537
65381999-09-20 Gerd Moellmann <gerd@gnu.org>
6539
6540 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6541 that window start is out of range.
6542 (handle_display_prop, handle_single_display_prop): Replace
6543 marginal area specifications like `left-margin' with `(margin
6544 left-margin)'.
6545 (Qmargin): New.
6546 (syms_of_xdisp): Initialize Qmargin.
6547
65481999-09-19 Gerd Moellmann <gerd@gnu.org>
6549
6550 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6551 describe_syntax, skip_chars): Remove unused variables.
6552 (back_comment, forw_comment): Add braces to if-statement with
6553 if-else as dependent statement.
6554
6555 * process.c (list_processes_1): Remove unused variables.
6556 (Fopen_network_stream, create_process): Add parentheses to
6557 conditional expressions.
6558 (create_process): Put declaration of sigchld in #if 0.
6559 (Fopen_network_stream): Removed unused variables.
6560 (Fopen_network_stream, wait_reading_process_input,
6561 wait_reading_process_input, send_process, send_process): Ditto.
6562 (toplevel): Add prototypes for set_waiting_for_input and
6563 keyboard_bit_set.
6564
6565 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6566
6567 * textprop.c (Fset_text_properties): Remove unused variables.
6568 (text_property_list, verify_interval_modification,
6569 interval_has_all_properties): Ditto.
6570
6571 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6572 (Fcall_process): Remove unused variable.
6573
6574 * keyboard.c (Frecursive_edit): Remove unused variable.
6575 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6576 timer_check, make_lispy_event, menu_bar_items,
6577 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6578 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6579 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6580 read_key_sequence): Ditto. Fread_key_sequence,
6581 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6582 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6583 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6584 (Fexecute_extended_command): Cast XINT to long for %ld.
6585 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6586 (toplevel): Include sys/types.h.
6587
6588 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6589 (toplevel): Add prototypes for stuff_char, and
6590 code_convert_string_norecord.
6591
65921999-09-19 Gerd Moellmann <gerd@gnu.org>
6593
6594 * buffer.h: Add prototype for r_re_alloc.
6595
6596 * insdel.c (copy_text): Removed unused variables.
6597 (count_combining_after, count_combining_after, insert_1_both,
6598 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6599 (adjust_after_replace, replace_range): Add parentheses to logical
6600 expressions. Remove unused variables.
6601 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6602 expression.
6603
6604 * alloc.c (Fgarbage_collect): Remove unused variable.
6605 (compact_strings): Add parentheses around assignments in
6606 conditional context.
6607 (toplevel): Put declaration of unused function clear_marks
6608 in #if 0 like its definition.
6609
6610 * lisp.h: Add prototype for shrink_regexp_cache,
6611 sweep_weak_hash_tables.
6612
66131999-09-19 Dave Love <fx@gnu.org>
6614
6615 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6616
6617 * doc.c (read_bytecode_char): Declare arg.
6618
6619 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6620 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6621
66221999-09-18 Richard Stallman <rms@gnu.org>
6623
6624 * xdisp.c (echo_area_display): Turn off code that returned
6625 without doing anything when using a terminal frame.
6626
83c8f461 66271999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6628
6629 * unexelf.c (unexec): Don't get confused by a short section
6630 just before the bss section.
6631
26901792
DL
66321999-09-16 Gerd Moellmann <gerd@gnu.org>
6633
6634 * emacs.c (main): Remove unused variables.
6635 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6636
6637 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6638 init_fileio_once, syms_of_sound, init_xfns, init_fns
6639 init_sound, check_message_stack.
6640
6641 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6642
6643 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6644 ambiguous else warning.
6645 (split_interval_left): Remove unused variables.
6646 (previous_interval, adjust_intervals_for_deletion,
6647 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6648 (icount, idepth, zero_length): Move into #if 0 section below
6649 original position where these are used.
6650
6651 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6652
6653 * buffer.c (Fkill_buffer): Remove unused variables.
6654 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6655 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6656 init_buffer_once, (syms_of_buffer): Ditto.
6657
6658 * xrdb.c (get_fallback): Remove unused variable.
6659 (x_load_resources): Ditto. Put local variable used for Motif only
6660 in #ifdef USE_MOTIF.
6661
66621999-09-16 Gerd Moellmann <gerd@gnu.org>
6663
6664 * minibuf.c (read_minibuf): Remove unused variables.
6665 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6666 (do_completion): Move assignment out of conditional context.
6667 (Fdisplay_completion_list): Add parentheses to conditional expression.
6668
6669 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6670
6671 * lisp.h: Add prototype for no_switch_window.
6672
6673 * window.c (Fset_window_buffer): Remove unused variables.
6674 (Fset_window_margins): Ditto.
6675
6676 * xdisp.c (resize_mini_window): Temporarily set the selected
6677 window's or Vminibuf_scroll_window's height to "fixed" around
6678 the call the change_window_height.
6679
6680 * window.c (window_fixed_size_p): Check window's height_fixed_p
6681 flag.
6682
6683 * window.h (struct window): New member height_fixed_p.
6684
6685 * dispnew.c (direct_output_forward_char): Don't use this method
6686 if showing a message or a message was just cleared because we
6687 might need to resize the mini-window.
6688
66891999-09-16 Gerd Moellmann <gerd@gnu.org>
6690
6691 * frame.c (Fdelete_frame): Correct local variable pointing to
6692 selected frame after selecting new frame.
6693
66941999-09-15 Richard Stallman <rms@gnu.org>
6695
6696 * puresize.h (BASE_PURESIZE): Increase to 525000.
6697
6698 * filelock.c (Vtemporary_file_directory): New variable.
6699 (syms_of_filelock): Set up Lisp variable.
6700
67011999-09-15 Gerd Moellmann <gerd@gnu.org>
6702
6703 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6704 (encode_terminal_code): Remove unused variables.
6705 (turn_off_face): Ditto.
6706 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6707
6708 * dispnew.c (update_frame_line): If writing whole desired line,
6709 don't clear to end of line if already at the end.
6710
67111999-09-15 Gerd Moellmann <gerd@gnu.org>
6712
6713 * xdisp.c (resize_mini_window): Don't report changed window
6714 height if it actually hasn't changed.
6715
427ec082 6716 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6717 unused variables.
6718 (mark_shell_size_user_specified): Put in #if 0 because not used.
6719 (create_frame_gcs): Put in #if 0 because currently unused.
6720 (first_frame_p): Ditto.
6721
6722 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6723 single_submenu, update_frame_menubar, set_frame_menubar,
6724 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6725 variables.
6726
6727 * print.c (PRINTFULLP): Removed because it is no longer used and
6728 is misleading.
6729 (Ferror_message_string): Remove unused variables.
6730 (print_object): Cast argument of sprintf to long for `%ld'
6731 specifier. Remove unused variable.
6732
67331999-09-14 Gerd Moellmann <gerd@gnu.org>
6734
6735 * sound.c (Fplay_sound): Remove usused variables.
6736 (be2hs): Put in #if 0 because it's currently not used.
6737
67381999-09-14 Ken Raeburn <raeburn@gnu.org>
6739
6740 * print.c (Ferror_message_string, print_error_message,
6741 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6742 member access.
6743
67441999-09-14 Gerd Moellmann <gerd@gnu.org>
6745
6746 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6747
6748 * frame.c (Fnext_frame): Remove unused variable(s).
6749 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6750 (store_frame_param): Add parentheses to conditional expression.
6751 (Fmodify_frame_parameters): Remove unused variables.
6752 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6753 Ditto.
6754
6755 * xfns.c (x_set_background_color): Remove unused variable(s).
6756 (x_set_border_pixel): Ditto.
6757 (x_set_menu_bar_lines): Put local variable used only for
6758 non-toolkit case in #ifdef/#endif.
6759 (x_figure_window_size): Remove unused variable(s).
427ec082 6760 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6761 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6762 png_load, jpeg_load, gif_load, x_create_tip_frame,
6763 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6764
6765 * xterm.c (x_scroll_bar_handle_click): Compile only if
6766 not USE_TOOLKIT_SCROLL_BARS.
6767 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6768
6769 * dispextern.h: Add prototypes for gamma_correct and
6770 x_kill_gs_process.
6771
6772 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6773 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6774 x_set_toolkit_scroll_bar_thumb): Ditto.
6775 (x_scroll_bar_create): Move local variable to the
6776 conditionally compiled section of code where it is used.
6777 (x_scroll_bar_create): Remove unused variable(s).
6778 (x_scroll_bar_remove, XTread_socket): Ditto.
6779 (XTread_socket) <ConfigureNotify>: Move variables used for
6780 non-toolkit case into conditionally compiled section of code.
6781
6782 * window.h (freeze_window_starts): Fix typo in prototype.
6783
6784 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6785 variable(s).
6786
6787 * lisp.h: Add prototype for debug_print.
6788
6789 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6790 to use do-while.
6791
6792 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6793 (Fchar_table_range, Fset_char_table_default, mapcar1,
6794 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6795
6796 * lisp.h: Add prototype for getloadavg.
6797
67981999-09-14 Andreas Schwab <schwab@gnu.org>
6799
6800 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6801
6802 * lisp.h: Declare close_file_unwind.
6803
68041999-09-14 Richard Stallman <rms@gnu.org>
6805
6806 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6807
68081999-09-13 Gerd Moellmann <gerd@gnu.org>
6809
6810 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6811 is always set correctly.
6812
68131999-09-13 Dave Love <fx@gnu.org>
6814
6815 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6816 declaration.
6817
68181999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6819
6820 * xdisp.c (QCfile): Move here from xfns.c.
6821 (syms_of_xdisp): Initialize it.
6822 (message2_nolog): Change for Lisp_Object selected_frame.
6823 (message3_nolog, message_with_string, message,
6824 setup_echo_area_for_printing, truncate_echo_area,
6825 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6826
68271999-09-13 Dave Love <fx@gnu.org>
6828
6829 * xterm.c: Don't continue #define args for benefit of old cc.
6830 (xt_action_hook): Indent #error for benefit of K&R cc.
6831
68321999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6833
6834 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6835 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6836 (XRINGBELL): Removed.
6837
68381999-09-13 Dave Love <fx@gnu.org>
6839
6840 * xfns.c (x_put_x_image): Make type consistent with declaration.
6841
6842 * fns.c (Fmake_hash_table): Fix string continuation.
6843
68441999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6845
6846 * xfns.c (QCfile): Moved to xdisp.c.
6847 (syms_of_xfns): Don't initialize QCfile.
6848 (check_x_frame): Change for Lisp_Object selected_frame.
6849 (check_x_display_info, x_get_resource_string): Ditto.
6850
68511999-09-13 Gerd Moellmann <gerd@gnu.org>
6852
6853 * minibuf.c (choose_minibuf_frame): Don't try to set the
6854 mini-buffer window's buffer, if the buffer is invalid.
6855
6856 * xfns.c (QCfile): Moved to xdisp.c.
6857 (syms_of_xfns): Don't initialize QCfile.
6858
6859 * xdisp.c (QCfile): Move here from xfns.c.
6860 (syms_of_xdisp): Initialize it.
6861
6862 * lisp.h (selected_frame): Add external declaration.
6863
6864 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6865 (Fx_store_cut_buffer_internal): Ditto.
6866 (Fx_rotate_cut_buffers_internal): Ditto.
6867
6868 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6869 selected_frame.
6870 (Finternal_set_lisp_face_attribute): Ditto.
6871 (Finternal_get_lisp_face_attribute): Ditto.
6872 (Finternal_lisp_face_empty_p): Ditto.
6873 (Fdump_face): Ditto.
6874
6875 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6876 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6877 set_terminal_window, set_scroll_region, reassert_line_highlight,
6878 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6879 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6880 encode_terminal_code, write_glyphs, term_init): Ditto.
6881
6882 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6883 (kbd_input_ast, read_input_waiting): Ditto.
6884
6885 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6886 selected_frame.
6887 (read_minibuf): Ditto.
6888
6889 * keyboard.c (command_loop_1): Change for Lisp_Object
6890 selected_frame.
6891 (cmd_error_internal, command_loop_1, read_char,
6892 kbd_buffer_get_event, read_avail_input,
6893 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6894 interrupt_signal, quit_throw_to_read_char): Ditto.
6895
6896 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6897 (Ffontset_info): DItto.
6898
6899 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6900
6901 * dispnew.c (selected_frame): Make it a Lisp_Object.
6902 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6903 (direct_output_for_insert, direct_output_forward_char,
6904 init_display): Ditto.
6905
6906 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6907 selected_frame.
6908 (set_internal): Ditto.
6909
6910 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6911 (record_buffer): Ditto.
6912
6913 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6914 (do_switch_frame): Change for Lisp_Object selected_frame.
6915 (Fselected_frame): Ditto.
6916 (Fframe_first_window): Use SELECTED_FRAME.
6917 (Fframe_root_window): Change for Lisp_Object selected_frame.
6918 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6919 Fprevious_frame, other_visible_frames, Fdelete_frame,
6920 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6921 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6922 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6923 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6924 Fset_frame_height, Fset_frame_width): Ditto.
6925
69261999-09-13 Gerd Moellmann <gerd@gnu.org>
6927
6928 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6929 (message3_nolog, message_with_string, message,
6930 setup_echo_area_for_printing, truncate_echo_area,
6931 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6932
6933 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6934 (Fx_popup_dialog): Ditto.
6935
6936 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6937 (check_x_display_info, x_get_resource_string): Ditto.
6938
6939 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6940 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6941 (XRINGBELL): Removed.
6942
6943 * window.c (Fminibuffer_window): Change for Lisp_Object
6944 selected_frame.
6945 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6946 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6947 Fcurrent_window_configuration, init_window_once): Ditto.
6948
6949 * frame.h (SELECTED_FRAME): New.
6950
69511999-09-12 Ken Raeburn <raeburn@gnu.org>
6952
6953 * category.c (word_boundary_p): Use XCAR and XCDR.
6954 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6955 Fregister_code_conversion_map): Likewise.
6956 * coding.c (setup_coding_system, detect_coding_system,
6957 Ffind_operation_coding_system, Fset_coding_priority_internal):
6958 Likewise.
6959 * doc.c (get_doc_string, Fdocumentation,
6960 store_function_docstring): Likewise.
6961 * editfns.c (save_restriction_restore): Likewise.
6962 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6963 skip_debugger, find_handler_clause, Fautoload, Fapply,
6964 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6965 Likewise.
6966 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6967 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6968 Fread_file_name): Likewise.
6969 * filelock.c (unlock_all_files): Likewise.
6970 * insdel.c (Fcombine_after_change_execute): Likewise.
6971 * intervals.c (adjust_intervals_for_insertion): Likewise.
6972 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6973 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6974 store_in_keymap, Fcopy_keymap, define_as_prefix,
6975 current_minor_maps, Faccessible_keymaps,
6976 accessible_keymaps_char_table, Fkey_description,
6977 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6978 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6979 describe_map): Likewise.
6980 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6981 read_list, init_lread): Likewise.
6982 * search.c (Fmatch_data): Likewise.
6983 * sunfns.c (Fsun_menu_internal): Likewise.
6984 * syntax.c (describe_syntax): Likewise.
6985 * undo.c (record_insert, record_delete, Fundo_boundary,
6986 truncate_undo_list): Likewise.
6987 * vmsproc.c (child_sig): Likewise.
6988
6989 * editfns.c (Fformat): Use XFLOAT_DATA.
6990
69911999-09-12 Gerd Moellmann <gerd@gnu.org>
6992
6993 * keyboard.c (command_loop_1): Resize mini-window to the
6994 exact size of a message displayed, if any.
6995
6996 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6997 to exact size if exact_p is non-zero.
6998 (display_echo_area_1): Call resize_mini_window with
6999 new parameter.
7000 (redisplay_internal): Ditto.
7001 (resize_echo_area_axactly): New.
7002
7003 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
7004 new parameter.
7005
7006 * dispextern.h: Change prototype of resize_mini_window.
7007 Add prototype for resize_echo_area_axactly.
7008
7009 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
7010 (syms_of_xfaces): Defsubr accordingly.
7011
7012 * xdisp.c (hscroll_window_tree): Choose cursor row from
7013 desired or current matrix.
7014 (redisplay_internal): Hscroll before updating.
7015
70161999-09-12 Gerd Moellmann <gerd@gnu.org>
7017
7018 * syntax.c (Fforward_word): Use prompt_end_charpos instead
7019 of minibuffer_prompt_length.
7020
7021 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
7022 of minibuffer_prompt_length.
7023 (read_minibuf_unwind): Ditto.
7024 (Fminibuffer_complete_and_exit): Ditto.
7025 (Fminibuffer_complete_word): Ditto.
7026 (Fminibuffer_prompt_end): Ditto.
7027
7028 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
7029 of minibuffer_prompt_length.
7030 (Fline_beginning_position): Ditto.
7031
7032 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
7033 of minibuffer_prompt_length.
7034 (Fmake_indirect_buffer): Ditto.
7035 (Fkill_buffer): Ditto.
7036 (Ferase_buffer): Ditto.
7037
7038 * buffer.h (prompt_end_charpos): Replaces
7039 minibuffer_prompt_length.
7040
427ec082 7041 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
7042 without the prompt.
7043
7044 * editfns.c (make_buffer_string_both): Take out the code
7045 to handle mini-buffer prompts.
7046 (Fbuffer_string): Handle the prompt here, instead.
7047
7048 * xfaces.c (lface_from_face_name): Resolve face aliases.
7049 (Qmode_line): Replaces Qmodeline.
7050 (realize_basic_faces): Use Qmode_line.
7051 (syms_of_xfaces): Initialize Qmode_line.
7052
70531999-09-12 Gerd Moellmann <gerd@gnu.org>
7054
7055 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
7056 current column after inserting prompt.
7057 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
7058
7059 * xfaces.c (Qframe_update_face_colors): New.
7060 (syms_of_xfaces): Initialize call.
7061 (update_face_from_frame_parameter): Call that function when
7062 the frame's background changes.
7063
70641999-09-12 Richard Stallman <rms@gnu.org>
7065
7066 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7067
70681999-09-12 Ken Raeburn <raeburn@gnu.org>
7069
7070 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7071 mark_object, mark_buffer): Use XCAR and XCDR.
7072 * bytecode.c (Fbyte_code): Likewise.
7073 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7074 Likewise.
7075 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7076 getenv_internal): Likewise.
7077 * dired.c (file_name_completion): Likewise.
7078 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7079 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7080 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7081 * indent.c (Fcompute_motion): Likewise.
7082 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7083 list_processes_1, Fstart_process, Fopen_network_stream,
7084 wait_reading_process_input, read_process_output_call,
7085 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7086 status_notify, wait_reading_process_input): Likewise.
7087 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7088 extend_property_ranges): Likewise.
7089 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7090 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7091 x_report_frame_params, x_set_cursor_type, x_icon_type,
7092 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7093 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7094 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7095 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7096 x_display_info_for_name, Fx_display_list): Likewise.
7097 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7098 Fx_popup_menu, Fx_popup_dialog): Likewise.
7099 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7100 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7101 w32_term_init, x_delete_display): Likewise.
7102 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7103 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7104 x_top_window_to_frame, x_set_frame_parameters,
7105 x_report_frame_params, x_set_cursor_type, x_icon_type,
7106 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7107 Fx_display_list, x_create_tip_frame): Likewise.
7108 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7109 Fx_popup_menu, Fx_popup_dialog): Likewise.
7110 * xselect.c (x_own_selection, x_get_local_selection,
7111 x_handle_selection_request, x_handle_selection_clear,
7112 x_clear_frame_selections, wait_for_property_change_unwind,
7113 wait_for_property_change, x_handle_property_notify,
7114 copy_multiple_data, x_get_foreign_selection,
7115 lisp_data_to_selection_data, clean_local_selection_data,
7116 x_handle_selection_notify, Fx_get_selection_internal,
7117 x_disown_buffer_selections): Likewise.
7118 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7119 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7120 Likewise.
7121
7122 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7123 XFLOAT_DATA.
7124 * bytecode.c (Fbyte_code): Likewise.
7125 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7126 fmod_float): Likewise.
7127
71281999-09-11 Richard Stallman <rms@gnu.org>
7129
7130 * xdisp.c (run_window_scroll_functions): If hook functions switch
7131 buffers, switch back after.
7132
71331999-09-11 Ken Raeburn <raeburn@gnu.org>
7134
7135 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7136 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7137 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7138 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7139 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7140 XCDR.
7141 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7142 XCDR.
7143
71441999-09-10 Richard Stallman <rms@gnu.org>
7145
7146 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7147 not RevertToPointerRoot.
7148 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7149 Fix the code to clear around the scroll bar.
7150
71511999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7152
7153 * print.c: Support print-circle and related features.
7154 (Vprint_gensym_alist): Removed.
7155 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7156 Vprint_number_table): New variables.
7157 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7158 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7159 (print, print_preprocess, print_preprocess_string, print_object):
7160 New/modified functions with print-circle feature. Use
7161 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7162 (syms_of_print): Defined new Lisp variables `print-circle',
7163 `print-continuous-numbering', `print-number-table'.
7164
71651999-09-10 Gerd Moellmann <gerd@gnu.org>
7166
7167 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7168 as background color specification instead of an integer.
7169 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7170 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7171 (clear_image_cache, syms_of_xfns): Use it.
7172 (Qpostscript): Replaces Qghostscript.
7173 (gs_type): Use it.
7174 (gs_image_p): Ditto.
7175 (syms_of_xfns): Initialize Qpostscript.
7176
71771999-09-10 Richard Stallman <rms@gnu.org>
7178
7179 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7180
71811999-09-09 Richard Stallman <rms@gnu.org>
7182
7183 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7184
7185 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7186
71871999-09-09 Gerd Moellmann <gerd@gnu.org>
7188
7189 * fns.c (Fmakehash): Accept just one optional argument TEST.
7190
7191 * xfns.c (QCindex): New.
7192 (syms_of_xfns): Initialize QCindex.
7193 (gif_load): Use it instead of `:image'.
7194
71951999-09-09 Richard Stallman <rms@gnu.org>
7196
7197 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7198 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7199
72001999-09-08 Gerd Moellmann <gerd@gnu.org>
7201
7202 * xdisp.c (Qwhen): Replaces QCwhen.
7203 (syms_of_xdisp): Initialized it instead of QCwhen.
7204 (handle_single_display_prop): Use it instead of QCwhen.
7205
72061999-09-08 Ken'ichi Handa <handa@gnu.org>
7207
7208 * charset.c (translate_char): Reset MSBs of arguments of
7209 MAKE_CHAR.
7210 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7211
72121999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7213
7214 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7215
7216 * fns.c (Fbase64_decode_region): Don't place point outside of the
7217 current accessible portion.
7218
72191999-09-07 Richard Stallman <rms@gnu.org>
7220
7221 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7222 parent is an ancestor of SUBMAP; otherwise, add it as the
7223 ultimate ancestor.
7224
72251999-09-07 Gerd Moellmann <gerd@gnu.org>
7226
7227 * xdisp.c (handle_single_display_prop): Change conditional
7228 display property to `:when FORM . VALUE'.
7229
72301999-09-07 Richard Stallman <rms@gnu.org>
7231
7232 * fileio.c (Fwrite_region): Doc fix.
7233
72341999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7235
7236 * fileio.c (Qexcl): New variable.
7237 (report_file_error): Handle EEXIST specially.
7238 (Fwrite_region): Special handling for CONFIRM = `excl'.
7239 (syms_of_fileio): Initialize Qexcl.
7240
72411999-09-07 Gerd Moellmann <gerd@gnu.org>
7242
7243 * xfns.c (x_set_foreground_color): Call
7244 update_face_from_frame_parameter.
7245 (x_set_background_color): Ditto.
7246 (x_set_mouse_color): Ditto.
7247 (x_set_cursor_color): Ditto.
7248 (x_set_border_color): Ditto.
7249 (x_set_scroll_bar_foreground): Ditto.
7250 (x_set_scroll_bar_background): Ditto.
7251
7252 * xfaces.c (recompute_basic_faces): Clear face cache.
7253 (Finternal_set_lisp_face_attribute): Modify frame parameters
7254 if attributes of certain faces are changed.
7255 (update_face_from_frame_parameter): New.
7256
7257 * xfaces.c (realize_basic_faces): Realize new basic faces.
7258
7259 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7260 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7261
7262 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7263 (syms_of_xfaces): Intialize new symbols.
7264
7265 * fns.c (Fmakehash): Take one argument, test, make all the
7266 rest keyword arguments.
7267
7268 * window.c (Fset_window_margins): Make window the first argument.
7269 (set_window_buffer): Call Fset_window_margins with window as first
7270 argument.
7271
72721999-09-07 Gerd Moellmann <gerd@gnu.org>
7273
7274 * xfaces.c (Qfringe): Replaces Qmargin.
7275
72761999-09-07 Kenichi Handa <handa@etl.go.jp>
7277
7278 * charset.h: Lots of comments fixed.
7279 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7280 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7281
7282 * charset.c : Lots of comments fixed.
7283 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7284 (CHAR_COMPONENTS_VALID_P): Name changed from
7285 CHAR_COMPONENT_VALID_P. Caller changed.
7286
72871999-09-06 Richard Stallman <rms@gnu.org>
7288
7289 * insdel.c (syms_of_insdel): Define Lisp variable
7290 inhibit-modification-hooks.
7291
72921999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7293
7294 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7295 unexaix.c.
7296
7297 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7298
72991999-09-06 Dave Love <fx@gnu.org>
7300
7301 * unexaix.c: New version incorporating Michael Sperber's changes
7302 from XEmacs. Should solve problems on AIX 4.3.
7303
7304 * lread.c (Vbyte_boolean_vars): New variable.
7305 (defvar_bool, syms_of_lread): Use it.
7306
73071999-09-05 Richard Stallman <rms@gnu.org>
7308
7309 * minibuf.c (read_minibuf): Put all three properties on the
7310 same range, the whole prompt.
7311
73121999-09-05 Gerd Moellmann <gerd@gnu.org>
7313
7314 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7315 (Fplay_sound, syms_of_sound): Use it.
7316 (parse_sound): Allow float volume values in the range [0, 1].
7317 (Fplay_sound): Ditto.
7318
7319 * window.c (Fset_window_vscroll): Make window the first argument,
7320 amount to scroll the second. Take non-negative vscroll as
7321 argument.
7322 (Fwindow_vscroll): Return non-negative vscroll.
7323
7324 * xfns.c (Fx_show_tip): Improve documentation.
7325
73261999-09-05 Gerd Moellmann <gerd@gnu.org>
7327
7328 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7329 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7330 `top-line' and `top_line' to `header-line' and `header_line'.
7331 Likewise for similar spellings.
7332
73331999-09-05 Gerd Moellmann <gerd@gnu.org>
7334
7335 * xdisp.c (row_containing_pos): New.
7336 (try_window_id): Use it.
7337
7338 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7339 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7340 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7341 Likewise for upper-case etc.
7342
73431999-09-05 Gerd Moellmann <gerd@gnu.org>
7344
7345 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7346 Fix reference to renamed variable.
7347
73481999-09-04 Gerd Moellmann <gerd@gnu.org>
7349
7350 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7351 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7352 Qfixed_window_size.
7353 (syms_of_window): Ditto.
7354
7355 * fns.c (Fmakehash): Exchange optional test and size arguments.
7356
73571999-09-03 Gerd Moellmann <gerd@gnu.org>
7358
7359 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7360 under newly created scroll bar.
7361 (expose_window): If window is not yet fully initialized, do
7362 nothing. This can happen when toolkit scroll bars are used and a
7363 window is split. Reconfiguring the scroll bars will generate an
7364 expose for a newly created window.
7365
7366 * frame.h (struct frame): New member `gamma'.
7367
7368 * xfns.c: Include math.h. Add extern declaration for atof in case
7369 we don't see one.
7370 (Qscreen_gamma): New.
7371 (struct x_frame_parm_table): Add prototypes, add
7372 x_set_screen_gamma.
7373 (gamma_correct): New function.
7374 (defined_color): Call it.
7375 (x_set_screen_gamma): New.
7376 (x_set_title): Add parameter old_value.
7377 (RES_TYPE_FLOAT): New.
7378 (x_get_arg): Handle RES_TYPE_FLOAT.
7379 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7380 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7381 new prototype.
7382 (lookup_rgb_color): Ditto.
7383 (syms_of_xfns): Initialize Qscreen_gamma.
7384
7385 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7386 New. Allocate color for lwlib widgets.
7387 (x_alloc_nearest_color): Change parameter list include the
7388 frame on which to allocate colors. Gamma-correct colors.
7389 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7390 parameter list.
7391
7392 * xterm.h: Change protorype of x_alloc_nearest_color.
7393
73941999-09-03 Richard Stallman <rms@gnu.org>
7395
7396 * callproc.c: Delete the system-independent include of stdlib.h
7397 (leaving only the one in the WINDOWSNT conditional).
7398
73991999-09-03 Andrew Choi <choi@cs.hku.hk>
7400
7401 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7402 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7403
26901792
DL
7404 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7405 Window types and macros.
7406
7407 * frame.h: Do nothing if included a second time.
7408 (enum output_method): Add mac_output frame type.
7409 (union output_data): Add new alternative `mac'.
7410 (FRAME_MAC_P): New macro.
427ec082 7411
26901792
DL
7412 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7413 (syms_of_frame_1): Initialize Qmac.
7414 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7415 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7416 (Fmodify_frame_parameters) [macintosh]: Call
7417 mac_set_frame_parameter in macterm.c.
427ec082 7418
26901792
DL
7419 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7420 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7421
26901792
DL
7422 * make-docfiles.c: Correctly handle input files with Mac-style
7423 eol's.
427ec082 7424
26901792 7425 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7426
26901792
DL
7427 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7428 file of an X Window environment.
427ec082 7429
26901792
DL
7430 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7431 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7432
26901792
DL
7433 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7434 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7435 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7436 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7437 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7438 New functions, replacing POSIX features.
427ec082 7439
26901792
DL
7440 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7441 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7442 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7443
7444 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7445 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7446 (myPasswdDir, TempDirName, sys_siglist): New variables.
7447
7448 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7449 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7450 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7451 Define empty stubs so Emacs will link.
7452
74531999-09-03 Gerd Moellmann <gerd@gnu.org>
7454
7455 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7456
7457 * window.h: New member frozen_window_start_p.
7458
7459 * window.c (foreach_window, foreach_window_1): New.
7460 (freeze_window_start, freeze_window_starts): New.
7461 (make_window): Initialize frozen_window_start_p.
7462 (replace_window): Ditto.
7463 (Fset_window_point): Remove references to deleted variables.
7464 (Fset_window_start): Ditto.
7465
7466 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7467 resize_mini_initial_height): Removed.
7468 (syms_of_xdisp): Remove references to these variables.
7469 (resize_mini_window): Don't save window configuration, freeze
7470 window starts instead. Enlarge window until displaying an empty
7471 buffer, then shrink it. Make the function externally visible.
7472 (redisplay_window): Treat frozen window start like forced start,
7473 but accept point outside of the window.
7474
7475 * dispextern.h: Add function prototype for resize_mini_window.
7476
7477 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7478 reaching minibuf_level 0.
7479
7480 * lisp.h: Remove extern declarations for variables deleted from
7481 xdisp.c.
7482
7483 * dispnew.c (adjust_frame_glyphs): Remove reference to
7484 Vresize_mini_config.
7485
74861999-09-03 Gerd Moellmann <gerd@gnu.org>
7487
7488 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7489 to USE_TOOLKIT_SCROLL_BARS.
7490
7491 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7492 here.
7493 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7494 under newly created scroll bar. Put toolkit scroll bars in the
7495 middle of the area reserved for the scroll bar.
7496
74971999-09-03 Kenichi Handa <handa@etl.go.jp>
7498
7499 The following changes are for the new handling of mulitbyte
7500 sequence. Now, except for a composite character, no multibyte
7501 character in string/buffer has trailing garbage bytes. For
7502 instance, the length of string "\201\300\300" is now 2, the first
7503 character is Latin-1 A-grave, the second is raw \300.
7504
7505 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7506 are negative.
7507 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7508 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7509 (PARSE_COMPOSITE_SEQ): New macro.
7510 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7511 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7512 (CHAR_PRINTABLE_P): New macro.
7513 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7514 (STRING_CHAR_AND_LENGTH): Likewise.
7515 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7516 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7517 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7518
7519 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7520 (SPLIT_CHARACTER_SEQ): New macro.
7521 (SPLIT_MULTIBYTE_SEQ): New macro.
7522 (CHAR_COMPONENT_VALID_P): New macro.
7523 (non_ascii_char_to_string): Generate a multibyte sequence as far
7524 as possible.
7525 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7526 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7527 (split_non_ascii_string): Likewise.
7528 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7529 (char_printable_p): New function.
7530 (translate_char): Check character by NATNUMP instead of INTEGERP.
7531 (unibyte_char_to_multibyte): Call char_valid_p instead of
7532 VALID_MULTIBYTE_CHAR_P.
7533 (Fmake_char_internal): Check the arguments more rigidly.
7534 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7535 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7536 (Fmultibyte_char_to_unibyte): Check the validity of character by
7537 CHAR_VALID_P.
7538 (chars_in_text): Call multibyte_chars_in_text.
7539 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7540 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7541 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7542
7543 * data.c (Faset): Adjust the way to check byte-combining
7544 possibility for the new handling of multibyte sequence.
7545
7546 * editfns.c (Fsubst_char_in_region): Likewise.
7547
7548 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7549 (string_char_to_byte): Likewise.
7550 (string_byte_to_char): Likewise.
7551
7552 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7553 macro STRING_CHAR_AND_LENGTH. Caller changed.
7554
7555 * insdel.c (count_combining_composition): New function.
7556 (count_combining_before): Adjust the way to check byte-combining
7557 possibility for the new handling of multibyte sequence. Call
7558 count_combining_composition for a composite character.
7559 (count_combining_after): Likewise.
7560
7561 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7562 (print): Likewise.
7563
7564 * dispextern.h (struct it): Change the size of the member
7565 `ctl_chars'.
7566
7567 * xdisp.c (get_next_display_element): Display incomplete multibyte
7568 sequence (e.g. \222\300) by octal form.
7569
75701999-09-02 Gerd Moellmann <gerd@gnu.org>
7571
7572 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7573
7574 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7575 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7576
75771999-09-02 Gerd Moellmann <gerd@gnu.org>
7578
7579 * buffer.c (set_buffer_internal): Never set
7580 windows_or_buffers_changed.
7581
7582 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7583 if we have displayed to the bottom of the window.
7584
7585 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7586 in both directions. Extend documentation.
7587
75881999-09-01 Gerd Moellmann <gerd@gnu.org>
7589
7590 * minibuf.c (read_minibuf): Flush display after setting cursor to
7591 column 0.
7592
75931999-08-31 Gerd Moellmann <gerd@gnu.org>
7594
7595 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7596 already defined. This avoids a warning from buffer.c.
7597
75981999-08-30 Gerd Moellmann <gerd@gnu.org>
7599
7600 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7601 of both margins.
7602 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7603 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7604 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7605
7606 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7607 once instead of twice.
7608 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7609
7610 * xterm.c: Remove unused bitmaps.
7611 (continued_bits, continuation_bits, overlay_bits): Change images.
7612 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7613 instead of FRAME_X_FLAGS_AREA_WIDTH.
7614 (x_after_update_window_line): Ditto.
7615 (x_draw_bitmap): Likewise.
7616 (x_draw_row_bitmaps): Likewise.
7617 (x_draw_glyph_string_box): Likewise.
7618 (x_draw_glyphs): Likewise.
7619 (x_scroll_run): Likewise.
7620 (expose_window_tree): Likewise.
7621 (note_mode_line_highlight): Likewise.
7622 (XTset_vertical_scroll_bar): Likewise.
7623 (x_clip_to_row): Likewise.
7624 (x_set_window_size): Likewise.
7625
7626 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7627 of 2 * that value.
7628
7629 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7630 2 * that value.
7631 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7632 FRAME_FLAGS_AREA_WIDTH.
7633
7634 * window.c (coordinates_in_window): Use
7635 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7636 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7637 instead of twice.
7638
427ec082 7639 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7640 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7641 (EmacsFrameSetCharSize): Ditto.
7642
7643 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7644 instead of FRAME_FLAGS_AREA_WIDTH.
7645
7646 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7647 FRAME_FLAGS_AREA_COLS once.
7648 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7649 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7650
76511999-08-30 Gerd Moellmann <gerd@gnu.org>
7652
7653 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7654 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7655
76561999-08-30 Gerd Moellmann <gerd@gnu.org>
7657
7658 * fns.c (QCweakness): Replaces QCweak.
7659 (Fmake_hash_table): Ditto.
7660 (Fmakehash): Ditto.
7661 (syms_of_fns): Ditto.
7662
76631999-08-29 Richard Stallman <rms@gnu.org>
7664
7665 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7666
7667 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7668
7669 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7670 Add support for nested comments.
7671
863476d1
SM
7672 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7673 Consolidate the forward comment code into the new `forw_comment'.
7674 (forw_comment): New subroutine. Added support for nested comments.
7675 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7676 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7677
76781999-08-28 Ken Raeburn <raeburn@gnu.org>
7679
7680 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7681 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7682 defined, to help detect code that uses knowledge of the Lisp
7683 internals that it shouldn't have.
7684 (XFLOAT_DATA): New macro.
7685
76861999-08-25 Gerd Moellmann <gerd@gnu.org>
7687
7688 * syntax.c (Fforward_word): If in a mini-buffer and moving
7689 backwards, stop in front of the prompt to prevent accidentially
7690 moving into the read-only prompt.
7691
7692 * window.c (Frecenter): Clear frame if called with nil or no arg.
7693
7694 * xdisp.c (resize_mini_window): Don't resize if
7695 Vmax_mini_window_height is nil. Otherwise, use a default if
7696 Vmax_mini_window_height is not ot a number.
7697 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7698
76991999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7700
7701 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7702 * m/iris4d.h: Use unexelf for IRIX 5.*.
7703 * m/iris5d.h: Use unexelf for IRIX 6.*.
7704 * unexsgi.c: Deleted.
7705
7706 * unexelf.c: Auto-detect .sbss section.
7707 (round_up): Make it static.
7708 (unexec): Declare alignment as Elf Word. Skip ``Program
7709 segment above .bss'' test on MIPS without .sbss.
7710 Copy sections .got and .sdata1 sections. Adjust offsets in
7711 sections .sdata, .lit4, .lit8, .got and .sdata1.
7712
77131999-08-25 Gerd Moellmann <gerd@gnu.org>
7714
7715 * xdisp.c (try_window_id): Remove typo.
7716
77171999-08-24 Gerd Moellmann <gerd@gnu.org>
7718
7719 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7720 unchanged text at the bottom when computing the cursor position.
7721 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7722 set.
7723
7724 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7725
77261999-08-24 Gerd Moellmann <gerd@gnu.org>
7727
7728 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7729 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7730 (syms_of_xfaces): Ditto.
7731
7732 * window.c (Fset_window_point): Reset Vresize_mini_config.
7733 (Fset_window_start): Ditto.
7734 (set_window_buffer): Ditto.
7735
7736 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7737
7738 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7739 before calling try_window.
7740 (echo_area_display): If height has changed, update other windows.
7741 (resize_mini_frame, resize_mini_initial_height): New.
7742 (resize_mini_window): Save/restore window configuration
7743 differently.
7744
427ec082 7745 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7746 resize_mini_initial_height): Add extern declarations.
7747
7748 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7749 CANON_X_UNIT.
7750
7751 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7752 being redefined in jconfig.h.
7753
77541999-08-23 Ken'ichi Handa <handa@gnu.org>
7755
7756 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7757
77581999-08-22 Gerd Moellmann <gerd@gnu.org>
7759
7760 * alloc.c (mark_glyph_matrix): Mark strings only.
7761
7762 * xdisp.c (redisplay_internal): Clear garbaged frames after
7763 resizing mini-window.
7764
77651999-08-22 Gerd Moellmann <gerd@gnu.org>
7766
7767 * xdisp.c (unwind_with_echo_area_buffer): Use
7768 set_buffer_internal_1 instead of set_buffer_internal.
7769 (with_echo_area_buffer): Ditto.
7770
7771 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7772 only if buffer is displayed somewhere.
7773
7774 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7775
7776 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7777 (gap_right): Ditto.
7778 (modify_region): Ditto.
7779
7780 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7781
7782 * xdisp.c (Vresize_mini_config): New.
7783 (resize_mini_window): Use it to save restore original window
7784 configuration
7785 (syms_of_xdisp): Initialize it.
7786
7787 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7788
7789 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7790
7791 * xdisp.c (reconsider_clip_changes): New.
7792 (redisplay_internal, redisplay_window): Call it.
7793 (mark_window_display_accurate, redisplay_internal): Set current
7794 matrix' buffer, begv, zv.
7795
7796 * window.c (Fset_window_hscroll): Set
7797 prevent_redisplay_optimizations_p instead of clip_changed.
7798 (Fset_window_hscroll): Ditto.
7799 (temp_output_buffer_show): Ditto.
7800 (Fset_window_vscroll): Ditto.
7801
7802 * buffer.c (reset_buffer): Set clip_changed to 0 and
7803 prevent_redisplay_optimizations_p to 1.
7804 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7805
7806 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7807 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7808 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7809 END_UNCHANGED): New.
7810 (struct buffer_text): Add beg_unchanged, end_unchanged,
7811 unchanged_modified, overlay_unchanged_modified.
7812
7813 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7814 overlay_unchanged_modified): Removed.
7815 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7816 (unwind_with_echo_area_buffer): Don't restore them.
7817 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7818 (text_outside_line_unchanged_p, redisplay_internal,
7819 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7820 (redisplay_window): Let try_window_id be called if more than one
7821 window is displayed. Use/set buffer-specific beg/end_unchanged.
7822 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7823 try_window_id):
7824 Use buffer-specific beg/end_unchanged.
7825
7826 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7827 overlay_unchanged_modified): Remove extern declarations.
7828
7829 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7830 buffer.
7831
7832 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7833 (gap_right): Ditto.
7834 (adjust_after_replace): Likewise.
7835 (replace_range, del_range_2, modify_region): Likewise.
7836
7837 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7838 and unchanged_modified per buffer.
7839
7840 * coding.c (code_convert_region): Compute beg/end_unchanged per
7841 buffer.
7842
7843 * buffer.c (modify_overlay): Compute beg/end_unchanged
7844 per buffer.
427ec082 7845 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7846 structure.
7847
78481999-08-22 Gerd Moellmann <gerd@gnu.org>
7849
7850 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7851
7852 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7853 (Qkey_value_weak): Removed.
7854 (make_hash_table): Use nil, `key', `value', t for weakness.
7855 (Fmake_hash_table): Ditto.
7856 (copy_hash_table): New.
7857 (Fcopy_hash_table): New.
7858
78591999-08-22 Gerd Moellmann <gerd@gnu.org>
7860
7861 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7862 new parameter.
26901792
DL
7863
78641999-08-21 Gerd Moellmann <gerd@gnu.org>
7865
7866 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7867 well.
427ec082 7868 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7869 have changed.
7870 (display_echo_area): Reset displayed echo_area_buffer to nil
7871 at the end if we're displaying a nil message.
7872
78731999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7874
26901792
DL
7875 * fns.c (hash_lookup): Test with EQ before calling key comparion
7876 function.
7877 (hash_remove): Ditto.
7878 (cmpfn_eq): Removed.
7879 (cmpfn_eql): Don't test with EQ.
7880 (cmpfn_equal): Ditto.
7881 (make_hash_table): Set comparison function for `eq' to null.
7882
7883 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7884 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7885
7886 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7887
7888 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7889 xterm.c: Call change_frame_size and do_pending_window_change with
7890 new parameter.
7891
7892 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7893 (change_frame_size): Ditto.
7894 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7895 and not called from a safe place.
7896 (window_change_signal): Call change_frame_size with new parameter.
7897
7898 * dispextern.h: Change prototypes for do_pending_window_change
7899 and change_frame_size.
7900
7901 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7902 window's buffers equals current_buffer; this is not the
26901792
DL
7903 case during echo area display.
7904
79051999-08-21 Gerd Moellmann <gerd@gnu.org>
7906
7907 * xdisp.c, minibuf.c: Remove conditional compilation on
7908 NO_PROMPT_IN_BUFFER.
7909
7910 * minibuf.c (Fminibuffer_prompt_end): New.
7911 (syms_of_minibuf): Defsubr it. Remove
7912 minibuffer-prompt-in-buffer.
7913 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7914 Extend documentation.
7915
7916 * xdisp.c (get_next_display_element): Display \r as ^M.
7917
7918 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7919 under scroll bar widget.
7920
79211999-08-21 Gerd Moellmann <gerd@gnu.org>
7922
7923 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7924 anywhere.
7925 (unwind_redisplay): Return nil.
7926 (clear_garbaged_frames): New.
7927 (redisplay_internal): Use it.
7928 (echo_area_display): Ditto.
7929 (resize_mini_window): Mew.
7930 (display_echo_area_1): Use it to resize echo area window.
7931 (redisplay_internal): Use it to resize active mini-window.
7932
7933 * dispextern.h, lisp.h: Add function prototypes.
7934
427ec082 7935 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7936 cursor_in_echo_area case only for a mini-window showing
7937 a message. Don't let cursor end up after the end of a row.
7938
7939 * xdisp.c (echo_area_glyphs, echo_area_message,
7940 echo_area_glyphs_length, previous_echo_glyphs,
7941 previous_echo_area_message, previous_echo_area_glyphs_length):
7942 Removed.
7943 (Vmessage_stack, echo_area_buffer, echo_buffer,
7944 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7945 (message2_nolog): Use set_message and clear_message.
7946 (message3): Rename parameter len to nbytes to make clear what
7947 it is.
7948 (message3_nolog): Ditto. Use set_message and clear_message.
7949 (update_echo_area): Rewritten.
7950 (with_echo_area_buffer): New.
7951 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7952 (setup_echo_area_for_printing): New.
7953 (display_echo_area, display_echo_area_1): New.
7954
7955 (current_message, current_message_1): New.
427ec082 7956 (push_message, restore_message, pop_message,
26901792
DL
7957 check_message_stack): New.
7958 (truncate_echo_area): Rewritten.
7959 (truncate_message_1): New.
7960 (set_message, set_message_1, clear_message): New.
7961 (echo_area_display): Rewritten.
7962 (redisplay_internal): Check for needed echo area update
7963 differently.
7964 (redisplay_preserve_echo_area): Rewritten.
427ec082 7965 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7966 message differently.
7967 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7968 Remove initialzation of removed variables.
7969 (init_xdisp): Remove references to removed variables.
7970
7971 * dispnew.c (adjust_frame_message_buffer): Removed references
7972 to echo_area_glyphs and previous_echo_glyphs.
7973 (direct_output_for_insert): Check for mini-window displaying
7974 echo area message differently.
7975 (update_frame): Likewise.
7976 (set_window_cursor_after_update): Likewise. In echo area,
7977 don't try to set cursor on rows that aren't enabled.
7978
7979 * print.c: Remove conditional compilation on `standalone'.
7980 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7981 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7982 longer used in that way.
7983 (PRINTDECLARE): Add multibyte.
7984 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7985 (printbufidx): Removed.
7986 (printchar, strout): Rewritten.
7987
7988 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7989 a struct kboard.
7990 (echo_kboard): New.
7991 (echo_now): Set echo_kboard to the current kboard.
7992 (cancel_echoing): Set echo_kboard to null.
7993 (cmd_error_internal): Use clear_message, remove references
7994 to echo_area_glyphs and echo_area_message.
7995 (command_loop_1): Check for echo area messages differently.
7996 (read_char): Likewise.
7997 (record_menu_key): Use clear_message.
7998 (Fexecute_extended_command): Check for echo area messages
7999 differently. Use push_message, restore_message, pop_message.
8000
8001 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
8002 pop_message.
8003
8004 * emacs.c (shut_down_emacs): Call check_message_stack.
8005
8006 * lisp.h: Add function prototypes and extern declarations for
8007 new functions and variables.
8008
8009 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
8010 pop_message.
8011
427ec082 8012 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
8013 setting echo_area_glyphs.
8014 (Fminibuffer_completion_help): Ditto.
8015
8016 * editfns.c (Fcurrent_message): Rewritten.
8017
8018 * frame.c, window.h: Remove references to echo_area_glyphs
8019 and previous_echo_glyphs.
8020
80211999-08-21 Dave Love <fx@gnu.org>
8022
8023 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
8024 * aix4-1.h: Likewise.
8025
8026 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
8027
80281999-08-20 Gerd Moellmann <gerd@gnu.org>
8029
8030 * xfns.c: Remove tiff34 prefix from include.
8031
80321999-08-20 Dave Love <fx@gnu.org>
8033
8034 * cm.c: Revert previous change.
8035
80361999-08-19 Gerd Moellmann <gerd@gnu.org>
8037
8038 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
8039 under scroll bar with width FRAME_SCROLL_BAR_COLS.
8040
80411999-08-18 Dave Love <fx@gnu.org>
8042
8043 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
8044 stdlib.h.
8045
8046 * doprnt.c: Use stdlib.h, unistd.h.
8047
8048 * config.in: Add HAVE_TERMCAP_H.
8049
8050 * cm.c: Use termcap.h.
8051
80521999-08-18 Gerd Moellmann <gerd@gnu.org>
8053
8054 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
8055 FRAME_X_WINDOW (f) being null at the of the function. If widgets
8056 cannot be created we will already have crashed earlier. Call
8057 lw_set_main_areas with a null menu-bar widget, so that we have
8058 a reasonable default.
8059 (Fx_create_frame): Rearranged so that Lisp errors during frame
8060 initialization cause less damage. Initialize menu bar widget
8061 here.
8062
80631999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 8064
26901792
DL
8065 * dispnew.c (update_frame_line): Fix previous change. If writing
8066 whole line clear to end of frame.
8067
80681999-08-17 Gerd Moellmann <gerd@gnu.org>
8069
8070 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8071 and `right-bitmap-area' if position is in the bitmap areas. This
8072 avoids an error when clicking on the bitmap areas. Instead, they
8073 are currently treated like clicks inside the window.
8074 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8075 (Qleft_bitmap_area, Qright_bitmap_area): New.
8076 (syms_of_window): Initialize new symbols.
8077
8078 * dispnew.c (update_frame_line): If writing whole line,
8079 don't write trailing spaces unless we must.
8080
8081 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8082 (redisplay_internal): Register unwind_redisplay with
8083 register_unwind_protect.
8084 (try_window_reusing_current_matrix): If new start > old start,
8085 give up if start pos of first reusable row is not equal to new
8086 start.
8087
8088 * eval.c (Fsignal): Don't reset redisplaying_p here.
8089
8090 * xterm.c (expose_area): If row extends face to end of line,
8091 write the whole line.
8092
80931999-08-16 Gerd Moellmann <gerd@gnu.org>
8094
8095 * dispextern.h (struct it): Remove member
8096 show_trailing_whitespace_p.
8097
8098 * dispnew.c (direct_output_for_insert): Use
8099 Vshow_trailing_whitespace instead of former iterator member
8100 show_trailing_whitespace_p.
8101 (direct_output_forward_char): Don't do it if hightlighting
8102 trailing whitespace.
8103
8104 * xdisp.c (Qshow_trailing_whitespace): Removed.
8105 (Vshow_trailing_whitespace): Added.
8106 (init_iterator): Remove initialization code for
8107 show_trailing_whitespace_p.
8108 (redisplay_internal): Don't try cursor movement in this_line
8109 if showing trailing whitespace.
8110 (redisplay_window): Likewise for cursor movement in current
8111 matrix and try_window_id.
8112 (try_window_reusing_current_matrix): Likewise.
8113 (trailing_whitespace_p): Return 0 if trailing whitespace is
8114 in front of point.
8115 (display_line): Use Vshow_trailing_whitespace instead of
8116 former iterator member show_trailing_whitespace_p.
8117 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8118
81191999-08-16 Gerd Moellmann <gerd@gnu.org>
8120
8121 * window.c (Fpos_visible_in_window_p): Rewritten.
8122
8123 * xfaces.c (add_to_log): Renamed from display_message.
8124 Don't display messages in echo area.
8125
8126 * xterm.c (x_draw_glyph_string_box): Use the background width
8127 of the glyph string for the width of the box.
8128
81291999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8130
8131 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8132
81331999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8134
8135 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8136 background first, and then set other parameters that might
8137 depend upon their new values.
8138
81391999-08-15 Gerd Moellmann <gerd@gnu.org>
8140
8141 * xfaces.c (Vfont_list_limit): New.
8142 (syms_of_xfaces): Make it a user-variable.
8143 (DEFAULT_FONT_LIST_LIMIT): New.
8144 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8145 maximally that number of fonts, otherwise use
8146 DEFAULT_FONT_LIST_LIMIT.
427ec082 8147 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8148 until we have all fonts.
8149 (Fxfont_list): Additionally return the full names of fonts and
8150 their registry and encoding.
8151
427ec082 8152 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8153 Simplify clearing "under" scroll bar.
8154
8155 * window.c (Qfixed_window_size): New.
8156 (syms_of_window): Initialiaze it.
8157 (check_all_windows): Add return type void.
8158 (window_fixed_size_p): New. Return non-zero if window
8159 is fixed-size.
8160 (window_min_size_1): New.
8161 (window_min_size): Handle fixed-size windows.
8162 (size_window): New. Rewritten combination of set_window_height and
8163 set_window_width that handles fixed-size windows.
8164 (set_window_height): Call it.
8165 (set_window_width): Call it.
8166 (Fsplit_window): Give an error on attempt to split a fixed-size
8167 window.
8168 (change_window_height): Partly rewritten to handle fixed-size
8169 windows.
8170
81711999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8172
8173 * process.c (Fopen_network_stream): Fix previous change.
8174
81751999-08-13 Karl Heuer <kwzh@gnu.org>
8176
8177 * xdisp.c (line_number_display_limit_width): New var.
8178 (decode_mode_spec): Use it instead of hardcoded value.
8179 (syms_of_xdisp): Defvar it.
8180
81811999-08-13 Richard M. Stallman <rms@gnu.org>
8182
8183 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8184 (run_hook_with_args): Likewise.
8185
8186 * window.h (struct window): New field too_small_ok.
8187
427ec082 8188 * window.c (set_window_height, set_window_width):
26901792
DL
8189 If window starts out "too small", set its too_small_ok flag.
8190 If window's too_small_ok flag is set, don't delete it
8191 unless it is so small it would cause a crash.
8192
81931999-08-13 Gerd Moellmann <gerd@gnu.org>
8194
8195 * window.c (MINSIZE): Removed.
8196 (window_min_size): New.
8197 (set_window_height): Use window_min_size.
8198 (change_window_height): Ditto.
8199
82001999-08-12 Gerd Moellmann <gerd@gnu.org>
8201
8202 * indent.c (vmotion): Don't add in mini-buffer prompt width
8203 if prompts are inserted into mini-buffer.
8204
82051999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8206
8207 * config.in: Add HAVE_GETADDRINFO.
8208 * process.c (Fopen_network_stream): Use getaddrinfo.
8209
82101999-08-11 Gerd Moellmann <gerd@gnu.org>
8211
8212 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8213 glyphs to -1.
8214
8215 * xdisp.c (face_before_or_after_it_pos): If position after
8216 or before iterator's current position in the buffer is out
8217 of bounds, return the iterator's original face id.
8218
8219 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8220 just swap glyphs pointers between current and desired row.
8221 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8222 desired matrix method string to current matrix.
8223
82241999-08-11 Kenichi Handa <handa@etl.go.jp>
8225
8226 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8227
8228 * lread.c (read_escape): For Control modifier, pay attention to
8229 multibyte character.
8230 (read1): Likewise. Singal error or a multibyte character which
8231 has a modifer bit. Check validity of Shift modifer.
8232
8233 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8234 the same as Lisp reader.
8235
82361999-08-10 Richard M. Stallman <rms@gnu.org>
8237
8238 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8239
82401999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8241
8242 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8243
82441999-08-10 Eli Zaretskii <eliz@gnu.org>
8245
8246 * msdos.c (IT_set_face): Abort if the default face is not realized
8247 and cached.
8248 (IT_write_glyphs): Reset the screen face to the default face
8249 before writing glyphs.
8250
8251 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8252 colors from the frame here.
8253 (realize_tty_face) [MSDOS]: Do it here. Update the face
8254 attributes with the actual name of the color taken from the
8255 frame.
8256
8257 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8258 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8259
8260 * frame.c (Fframe_parameters): Swap foreground and background
8261 colors returned in frame parameters if the frame has reverse in
8262 its parameter alist.
8263 (Fmake_terminal_frame): Make a unique copy of face_alist for
8264 each frame.
8265
82661999-08-07 Richard Stallman <rms@gnu.org>
8267
8268 * buffer.c (Fprevious_overlay_change): Just return
8269 the answer obtained from overlays_at.
8270
8271 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8272 Use XpmCloseness and attrs.closeness instead.
8273
82741999-08-06 Richard Stallman <rms@gnu.org>
8275
8276 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8277
82781999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8279
427ec082 8280 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8281 Ffile_attributes_lessp): New functions.
8282 (Fdirectory_files): Use directory_files_internal.
8283 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8284 Ffile_attributes_lessp.
8285
8286 * w32.c (stat): Check for directory ending in separator when
8287 doing readdir fast path.
8288
8289 * w32fns.c (x_set_icon_type): Support setting frame icons.
8290 * w32term.c (x_bitmap_icon): New function.
8291 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8292
26901792
DL
82931999-08-06 Gerd Moellmann <gerd@gnu.org>
8294
8295 * xdisp.c (set_iterator_to_next): After delivering a character
8296 from a display vector, restore face and charset to what they were
8297 before the display vector was processed.
8298
82991999-08-06 Gerd Moellmann <gerd@gnu.org>
8300
8301 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8302 on_newline_p.
8303 (set_iterator_to_next): After delivering last char
427ec082 8304 from display vector, reseat on next visible line start if
26901792
DL
8305 dpvec_char_len < 0.
8306 (next_element_from_buffer): Set dpvec_char_len to -1 for
8307 selective display.
8308
83091999-08-06 Gerd Moellmann <gerd@gnu.org>
8310
8311 * xdisp.c (compute_line_metrics): If first line's physical ascent
8312 is larger than its logical ascent, use the physical ascent, and
8313 make the row taller. Set row's overlapping_p flag.
8314
8315 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8316 (direct_output_for_insert): Ditto.
8317
8318 * dispextern.h (struct glyph_row): Add overlapping_p.
8319
8320 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8321
8322 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8323 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8324
8325 * dispnew.c (direct_output_for_insert): Don't use this method if
8326 row is overlapped by others.
8327 (update_text_area): Write full line if current line is overlapped.
8328 (redraw_overlapped_rows): New.
8329 (update_window): Call it.
8330 (redraw_overlapping_rows): New.
8331 (update_window): Call it.
8332 (scrolling_window): Make sure overlapped_p flag in current rows is
8333 unchanged.
8334 (row_equal_p): Take rows overlapped_p flag into account.
8335
8336 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8337
8338 * xterm.c (x_fix_overlapping_area): New.
8339 (x_redisplay_interface): Add x_fix_overlapping_area.
8340
8341 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8342
83431999-08-06 Gerd Moellmann <gerd@gnu.org>
8344
8345 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8346 (struct glyph_string): Add member for_overlaps_p.
8347 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8348 of overlapping rows, clip to window bottom.
8349 (x_fill_glyph_string): Add parameter overlaps_p.
8350 (x_fill_composite_glyph_string): Ditto.
8351 (BUILD_GLYPH_STRINGS): Ditto.
8352 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8353 (x_draw_glyph_string): Don't draw anything but the foreground
8354 if glyph string draws row overlaps.
8355
8356 * dispnew.c (direct_output_for_insert): Don't use this
8357 optimization for rows that overlap others.
8358 (update_window_line): Return non-zero if display has changed.
8359 (update_text_area): Ditto.
8360 (update_window): Record if display has been changed.
8361
8362 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8363
8364 * dispextern.h (struct redisplay_interface): Add
8365 fix_overlapping_area.
8366
8367 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8368
8369 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8370
8371 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8372 ascent and descent.
8373 (x_produce_stretch_glyph): Ditto.
8374 (x_produce_glyphs): Ditto.
8375
8376 * xdisp.c (init_iterator): Reset physical line height info
8377 after producing special glyphs.
8378 (display_toolbar_line): Set physical line height info.
8379 (compute_line_metrics): Ditto.
8380 (display_line): Ditto.
8381 (display_string): Ditto.
8382
8383 * term.c (produce_glyphs): Set iterator's physical height
8384 information.
8385
8386 * dispnew.c (blank_row): Compute glyph row's physical height.
8387 (row_equal_p): Take physical row heights into account.
8388 (direct_output_for_insert): Ditto.
8389 (update_text_area): Ditto.
8390
8391 * dispextern.h (struct glyph_row): Add phys_ascent and
8392 phys_height.
8393 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8394 max_phys_descent.
8395
83961999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8397
8398 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8399 Fswitch_to_buffer.
8400 (no_switch_buffer): New function.
8401 (Fswitch_to_buffer): Call them. Don't get confused
8402 by "same-window" buffers in a dedicated frame.
8403
8404 * window.c (display-buffer): Don't get confused
8405 by "same-window" buffers in a dedicated frame.
8406
84071999-08-04 Andreas Schwab <schwab@gnu.org>
8408
8409 * insdel.c (insert_from_string_1): Check gap size against number
8410 of outgoing bytes, not incoming bytes.
8411
84121999-08-03 Tom Breton <tob@world.std.com>
8413
8414 * lread.c (read1): Added circular reading code to #N=.
8415 (SUBSTITUTE): New macro.
8416 (seen_list): New variable.
8417 (substitute_object_in_subtree): New function.
8418 (substitute_object_recurse): New function.
8419 (substitute_in_interval): New function.
8420
84211999-08-02 Eli Zaretskii <eliz@gnu.org>
8422
8423 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8424
8425 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8426 noninteractive, for termcap frames as well.
8427
8428 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8429 frames.
8430
84311999-08-01 Richard Stallman <rms@gnu.org>
8432
8433 * fns.c (internal_equal): Correct overlay comparison.
8434
83c8f461 84351999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8436
427ec082 8437 * xfns.c (x_set_internal_border_width):
26901792
DL
8438 Call do_pending_window_change. Don't block input, don't call XFlush.
8439 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8440 (x_set_scroll_bar_width, x_set_font): Likewise.
8441
8442 * frame.c (Fset_frame_height): Call do_pending_window_change.
8443 (Fset_frame_width, Fset_frame_size): Likewise.
8444
8445 * xterm.c (x_set_window_size): When calling change_frame_size,
8446 specify 1 for DELAY.
8447
8448 * widget.c (EmacsFrameSetCharSize): Don't call
8449 do_pending_window_change here.
8450
84511999-07-30 Dave Love <fx@gnu.org>
8452
8453 * config.in: Add HAVE_STDLIB_H.
8454
84551999-07-30 Richard M. Stallman <rms@gnu.org>
8456
8457 * process.c (create_process): Detect failure of `pipe'.
8458
84591999-07-30 Keisuke Nishida <kei@psn.net>
8460
8461 * alloc.c (allocate_vectorlike): Add missing increment.
8462
8463 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8464
8465 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8466 before calling indirect_function.
8467
84681999-07-30 Eli Zaretskii <eliz@gnu.org>
8469
8470 * dispextern.h (load_color, lookup_derived_face): Declare
8471 prototypes.
8472
8473 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8474 it will be done later.
8475
8476 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8477 init_frame_faces if non-interactive.
8478 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8479 array with a call to msdos_stdcolor_name. The font name is now
8480 "ms-dos", consistent with realize_tty_face.
8481
8482 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8483 MSDOS frame.
8484
8485 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8486 x_set_toolbar_lines.
8487
8488 * xfaces.c (load_color): Remove static from definition and remove
8489 prototype.
8490 [MSDOS]: Add a DOS-specific version of load_color.
8491 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8492 (lookup_derived_face): New function.
8493 (realize_default_face): Support MSDOS frames.
8494 [MSDOS]: If fore/background colors are unspecified, inherit them
8495 from the frame.
8496 (realize_face): Support MSDOS frames.
8497 (realize_tty_face): Support MSDOS frames.
8498 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8499 load_color to try to find a suitable approximation. If the face
8500 is inverse-video, swap the foreground and background colors.
8501
8502 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8503 functions.
8504
8505 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8506
8507 * msdos.h: Remove redundant declarations (most of them are now in
8508 dispextern.h).
8509
8510 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8511 Use default frame colors if the face doesn't specify them; invert
8512 the colors if highlight is ON.
8513 (IT_write_glyphs): Rewritten for the new redisplay engine.
8514 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8515 how the hook is called by term.c.
8516 (IT_copy_glyphs): New function, copies an area of the display in
8517 video RAM.
8518 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8519 redisplay now calls it even if char_ins_del_ok is zero.
8520 (IT_set_frame_parameters): Prototype changed. Calls the new
8521 load_color. Puts the new fore/background colors into the default
8522 face on current frame.
8523 (IT_menu_display): Rewritten to handle the new struct glyph
8524 instead of a char array.
8525 (XMenuActivate): Call lookup_derived_face to create and use
8526 special faces for the pop-up and drop-down menus.
8527
85281999-07-29 Gerd Moellmann <gerd@gnu.org>
8529
8530 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8531 XawScrollbarSetThumb if thumb parameters haven't changed because
8532 that function apparently isn't optimized for this case.
8533
85341999-07-29 Eli Zaretskii <eliz@gnu.org>
8535
8536 * msdos.c (getdefdir): Don't return failure indication when
8537 _fixpath sets errno to ENOSYS.
8538
85391999-07-28 Gerd Moellmann <gerd@gnu.org>
8540
8541 * xdisp.c (string_char_and_length): New. Use it everywhere
8542 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8543
85441999-07-28 Kenichi Handa <handa@etl.go.jp>
8545
8546 * fns.c (count_combining): New function.
8547 (struct textprop_rec): New structure.
8548 (concat): Copy text properties correctly when byte combining
8549 occurs.
8550
85511999-07-28 Gerd Moellmann <gerd@gnu.org>
8552
8553 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8554 if display is mono.
8555 (x_draw_row_bitmaps): If face has stipple, don't switch
8556 to foreground color for clearing areas, and set the fill style.
8557
8558 * xfaces.c (load_face_colors): Load background color if setting
8559 stipple, too.
427ec082 8560 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8561 FillStippled.
8562
85631999-07-26 Ken'ichi Handa <handa@gnu.org>
8564
8565 * xterm.c (x_find_ccl_program): Add casting.
8566
8567 * w32fns.c (w32_find_ccl_program): Add casting.
8568
85691999-07-27 Gerd Moellmann <gerd@gnu.org>
8570
8571 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8572
8573 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8574 because this will try to access a nonexisting widget.
8575
85761999-07-26 Markus Rost <rost@gnu.org>
8577
427ec082 8578 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8579 (Fputhash): Ditto.
8580 (Fremhash): Ditto.
8581
85821999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8583
26901792
DL
8584 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8585 value to frame width and height.
8586
8587 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8588 into account for full-width windows. Don't add scroll bar width
8589 to width of clip rect.
8590 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8591 (x_set_glyph_string_background_width): Add 1 to background width.
8592 (x_draw_glyphs): Take internal border into account for full-width
8593 lines.
8594
85951999-07-26 Richard M. Stallman <rms@gnu.org>
8596
8597 * xfns.c (x_set_mouse_color): Always unload the old color.
8598 Don't allow nil as color value.
427ec082 8599 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8600 Always unload the old color.
8601
8602 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8603
86041999-07-26 Karl Heuer <kwzh@gnu.org>
8605
8606 * fns.c (Fy_or_n_p): Doc fix.
8607
86081999-07-26 Kenichi Handa <handa@etl.go.jp>
8609
8610 * ccl.h (setup_ccl_program): The type is changed to `int'.
8611
8612 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8613 stored in the following CCL code. Adjusted for the change of
8614 Vccl_program_table.
8615 (resolve_symbol_ccl_program): Adjusted for the new style of
8616 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8617 is resolving failed.
8618 (ccl_get_compiled_code): New function.
8619 (setup_ccl_program): Function type changed from `void' to `int'.
8620 Resolve symbols in CCL_PROG.
8621 (Fccl_program_p): New function.
8622 (Fccl_execute): Get compiled CCL code by just calling
8623 setup_ccl_program.
8624 (Fccl_execute_on_string): Likewise.
8625 (Fregister_ccl_program): Adjusted for the change of
8626 Vccl_program_table.
8627
8628 * coding.c (setup_coding_system): Get compiled CCL code by just
8629 calling setup_ccl_program.
8630
8631 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8632 calling setup_ccl_program.
8633
8634 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8635 calling setup_ccl_program.
8636
86371999-07-23 Gerd Moellmann <gerd@gnu.org>
8638
8639 * xfaces.c (frame_update_line_height): Just use the height of the
8640 frame's fontset or font, instead of taking face fonts into
8641 account.
8642
8643 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8644
86451999-07-23 Richard M. Stallman <rms@gnu.org>
8646
8647 * window.c (Fsplit_window): For default size, round up for left window.
8648
86491999-07-21 Joe Ramey <ramey@ti.com>
8650
8651 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8652 has returned -1 (lockfile exists but is not a symlink?).
8653
86541999-07-20 Gerd Moellmann <gerd@gnu.org>
8655
8656 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8657 because of a change in cursor_gc made in 20.4.
8658
86591999-07-19 Gerd Moellmann <gerd@gnu.org>
8660
8661 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8662 for YNegative, if using X toolkit.
8663
427ec082 8664 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8665 from positions returned.
8666
86671999-07-17 Gerd Moellmann <gerd@gnu.org>
8668
8669 * xrdb.c (x_load_resources): Set double-click time defaults
8670 for Motif list boxes from double-click-time.
8671
8672 * fns.c (Vhash_table_tests): Remvoed.
8673 (Qhash_table_test): New.
8674 (syms_of_fns): Initialize Qhash_table_test.
8675 (Fmake_hash_table): Look up user-defined tests in symbol prop
8676 `hash-table-test'.
8677 (Fdefine_hash_table_test): Store test and hash function as
8678 symbol prop `hash-table-test'.
8679 (make_hash_table): Add parameters user_test and user_hash.
8680
8681 * window.c (set_window_buffer): Set window margins for tty
8682 frames, too.
8683 (Fset_window_margins): Ditto.
8684
8685 * term.c (append_glyph): Use glyph area of iterator instead of
8686 always TEXT_AREA.
8687
8688 * dispnew.c (update_frame_1): Add left margin width to cursor
8689 hpos.
8690 (direct_output_for_insert): Ditto.
8691 (direct_output_forward_char): Ditto.
8692
8693 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8694
8695 * dispextern.h (struct glyph_matrix): Add top_line_p.
8696
86971999-07-16 Gerd Moellmann <gerd@gnu.org>
8698
8699 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8700 instead.
8701
8702 * fns.c (cmpfn_eq): Add hash code parameters.
8703 (cmpfn_eql): Ditto.
8704 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8705 (cmpfn_user_defined): Likewise.
8706
87071999-07-15 Gerd Moellmann <gerd@gnu.org>
8708
8709 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8710
8711 * fns.c (maybe_resize_hash_table): Correct computation of
8712 index vector size.
8713 (make_hash_table): Ditto.
8714 (Fmakehash): New.
8715
8716 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8717
8718 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8719 (survives_gc_p): Make it externally visible.
8720 (mark_object): Ditto.
8721
8722 * fns.c (remove_hash_entry): Removed.
8723 (sweep_weak_hash_tables): New.
8724
8725 * print.c (print): Print more information about hash tables.
8726
8727 * xfns.c (image_spec_hash): Removed.
8728 (lookup_image): Use sxhash instead of image_spec_hash.
8729 (image_spec_equal_p): Removed.
8730 (lookup_image): Use Fequal instead of image_spec_equal_p.
8731
87321999-07-14 Gerd Moellmann <gerd@gnu.org>
8733
8734 * lisp.h (P_): Moved to top of file.
8735
8736 * fns.c (make_hash_table): Set new members.
8737
8738 * alloc.c (mark_object): Mark hash table's user_hash_function.
8739 Mark index vector for weak hash tables.
8740
8741 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8742 user_hash_function, cmpfn, and hashfn.
8743
8744 * fns.c (build_hash): Removed.
8745 (hash_test): Removed.
8746 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8747 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8748
87491999-07-13 Gerd Moellmann <gerd@gnu.org>
8750
8751 * alloc.c (survives_gc_p): New.
8752
8753 * print.c (print): Add hash table handling.
8754
8755 * alloc.c (mark_object): Add code to mark hash tables.
8756
8757 * lisp.h (GC_HASH_TABLE_P): New.
8758
8759 * emacs.c (main): Call init_fns.
8760
8761 * fns.c (init_fns): New.
8762
8763 * fns.c: Add hash table implementation.
8764
8765 * lisp.h (PVEC_HASH_TABLE): New.
8766 (struct Lisp_Hash_Table): New.
8767 (XHASH_TABLE): New.
8768 (XSET_HASH_TABLE): New.
8769 (HASH_TABLE_P): New.
8770 (CHECK_HASH_TABLE): New.
8771 (DEFAULT_HASH_SIZE): New.
8772 (DEFAULT_REHASH_THRESHOLD): New.
8773 (DEFAULT_REHASH_SIZE): New.
8774
8775 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8776 (x_write_glyphs): Compute overwritten cursor using real start
8777 and end positions of display.
8778 (x_insert_glyphs): Ditto.
8779
87801999-07-10 Gerd Moellmann <gerd@gnu.org>
8781
8782 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8783
8784 * dispnew.c (blank_row): Add y-position as parameter. Compute
8785 visible height.
8786
8787 * xdisp.c (next_element_from_string): Give padding spaces
8788 a position of -1.
8789
427ec082 8790 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8791 marginals areas on tty frames in a future version.
8792 (allocate_matrices_for_frame_redisplay): Ditto.
8793
8794 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8795 to zero if number of glyphs in the row is <= 1.
8796
87971999-07-09 Gerd Moellmann <gerd@gnu.org>
8798
8799 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8800 into account.
8801
8802 * xdisp.c (handle_display_prop): Don't reset area if handing
8803 a property from a string that came from a `display' property.
8804 (handle_single_display_prop): Don't handle recursive `display'
8805 properties.
8806 (handle_single_display_prop): Handle some display property
8807 forms for terminal frames.
8808 (Qimage): Moved here from xfns.c.
8809
8810 * dispextern.h (struct it): New field string_from_display_prop_p.
8811
8812 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8813 line.
8814
88151999-07-08 Gerd Moellmann <gerd@gnu.org>
8816
8817 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8818
8819 * window.c (set_window_buffer): Set window's vscroll to zero.
8820
8821 * xdisp.c (QCwhen): New.
8822 (display_prop_end): New.
8823 (handle_single_display_prop): Use it.
8824 (debug_method_add): Print buffer name if tracing.
8825 (try_window_reusing_current_matrix): Compute visible height
8826 of reused rows. Fix cursor position calculation in case of
8827 top-line.
8828
8829 * dispextern.h (struct redisplay_interface): Add parameter
8830 cursor_on_p to update_window_end_hook.
8831
8832 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8833
88341999-07-07 Gerd Moellmann <gerd@gnu.org>
8835
427ec082 8836 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8837 doesn't become negative when decrementing it.
8838
8839 * eval.c (Fsignal): Reset redisplaying_p to zero.
8840
8841 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8842 for window update.
8843 (try_window_id): Ditto.
8844
8845 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8846 (x_scroll_run): Ditto.
8847 (any_help_event_p): New.
8848 (x_initialize): Set it to zero.
8849 (XTread_socket): Clear help echo only if any_help_event_p.
8850
8851 * xdisp.c (init_iterator): Set top_line_p.
8852 (start_display): Use correct initial y if top-line is present.
8853 (make_cursor_line_fully_visible): Bug fixes for top-line.
8854 (try_scrolling): Ditto.
8855 (try_window_reusing_current_matrix): Ditto.
8856
8857 * dispextern.h (struct it): Add top_line_p.
8858
8859 * dispnew.c (shift_glyph_matrix): Move some computations out
8860 of the loop.
8861
427ec082 8862 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8863 XFLOATINT.
8864
88651999-07-06 Gerd Moellmann <gerd@gnu.org>
8866
8867 * dispnew.c (update_frame_1): When setting cursor in echo area,
8868 skip only over padding spaces at the end.
8869
8870 * xfaces.c (realize_tty_face): Set face's font_name field to
8871 "tty".
8872
8873 * term.c (update_end): Turn cursor on only if selected window's
8874 cursor_off_p flag is not set.
8875
88761999-07-05 Gerd Moellmann <gerd@gnu.org>
8877
8878 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8879 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8880 (TS_cursor_invisible): New.
8881 (term_init): Initialize TS_cursor_invisible.
8882 (tty_hide_cursor): New.
8883 (tty_show_cursor): New.
8884 (update_end): Show tty cursor.
8885 (update_begin): Hide tty cursor to prevent cursor flickering
8886 during redisplays triggered by timers (stealth fontification).
8887
8888 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8889
8890 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8891 in scroll bars.
8892 (x_handle_toolbar_click): Set modifier bits.
8893
88941999-07-04 Gerd Moellmann <gerd@gnu.org>
8895
8896 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8897 instead of a pointer to a volatile input_event.
427ec082 8898 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8899 declaration of local variable `sp'.
8900 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8901 to kbd_fetch_ptr.
8902
89031999-07-03 Gerd Moellmann <gerd@gnu.org>
8904
8905 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8906 only if buffer is modified. Return quickly if changes are
8907 above window start.
8908
89091999-07-02 Gerd Moellmann <gerd@gnu.org>
8910
8911 * dispextern.h (HSCROLL_WINDOWS): Removed.
8912
8913 * xdisp.c (mark_window_display_accurate): Don't set
8914 w->region_showing.
8915 (redisplay_internal): Don't call redraw_garbaged_frames.
8916
89171999-07-01 Gerd Moellmann <gerd@gnu.org>
8918
8919 * xdisp.c (echo_area_display): Don't display truncation marks
8920 for messages because 20.4 doesn't do it either.
8921 (redisplay_window): Case same window start. Instead of giving
8922 up when cursor is partially visible, make it fully visible.
8923 (mark_window_display_accurate): Some cleanup. Record window's
8924 last cursor information.
8925 (debug_method_add): Improved.
8926 (redisplay_internal): Record last cursor info only if not
8927 consider_all_windows_p.
8928
8929 * dispnew.c (update_window): Update top line after scrolling.
8930 (blank_row): Renamed from make_empty_enabled_row.
8931 (increment_glyph_row_buffer_positions): Increment positions
8932 in buffers, only.
8933
8934 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8935 string.
8936
89371999-06-30 Gerd Moellmann <gerd@gnu.org>
8938
8939 * dispnew.c (update_window): Check that updated row is visible.
8940
8941 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8942 top of window differently.
8943
8944 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8945 if region is showing.
8946
8947 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8948 avoiding matrix reallocation. Set window_vscroll in matrix.
8949
8950 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8951
26901792
DL
8952 * xdisp.c (debug_method_add): New.
8953 (debug_redisplay_method): Removed.
8954 (try_window_reusing_current_matrix): Handle case where old
8955 window start is the same as new window start.
8956
8957 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8958 an array instead of a pointer.
8959
26901792
DL
8960 * xfns.c (Fx_show_tip): Undo previous change.
8961
8962 * xterm.c (x_append_glyph): Clear glyph->u.val.
8963
8964 * dispextern.h (struct glyph): Increase size of face_id bit-field
8965 for CHAR_GLYPH to 12.
8966
89671999-06-29 Gerd Moellmann <gerd@gnu.org>
8968
8969 * xfaces.c (x_charset_registry): Make it externally visible.
8970
89711999-06-28 Gerd Moellmann <gerd@gnu.org>
8972
427ec082 8973 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8974 instead of WINDOW_WANTS_MODELINE_P.
8975
8976 * xterm.c (clear_mouse_face): Make externally visible.
8977
8978 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8979
8980 * xterm.c (expose_line): Handle exposure of top-lines.
8981
8982 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8983 if mouse_face_mouse_frame is null.
8984
8985 * xdisp.c (redisplay_window): If window is echo_area_window,
8986 and update_mode_line is set, update menubar and toolbar.
8987
8988 * dispnew.c (space_glyph): Set its charpos to -1.
8989 (update_frame_1): Ignore trailing padding spaces.
8990
8991 * xdisp.c (next_element_from_c_string): Set position of padding
8992 glyphs to -1.
8993
89941999-06-27 Gerd Moellmann <gerd@gnu.org>
8995
8996 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8997 XQueryColor.
8998
8999 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
9000 (set_cursor_from_row): Skip over glyphs having a null object at
9001 the start of rows.
9002 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
9003 glyphs.
9004 (handle_invisible_prop): Compute next change only when needed.
9005 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
9006 line.
9007
90081999-06-26 Gerd Moellmann <gerd@gnu.org>
9009
9010 * xrdb.c (x_load_resources): Don't set resource for double-click
9011 time.
9012
9013 * xdisp.c (try_window_id): Return quickly if all changes are
9014 below the window's current matrix end.
9015
9016 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
9017 parameter.
9018
9019 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
9020 in desired not in current matrix.
9021 (try_window_reusing_current_matrix): Rotate matrices starting
9022 at start_vpos instead of 0.
9023
9024 * xterm.c (expose_window): Use window_text_bottom_y.
9025 (fast_find_position): Ditto.
9026
9027 * xdisp.c (redisplay_window): Use window_text_bottom_y.
9028 (try_window_reusing_current_matrix): Ditto.
9029 (get_last_unchanged_at_beg_row): Ditto.
9030 (init_iterator): Ditto.
9031
9032 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
9033 more row.
9034 (check_matrix_invariants): Use window_text_bottom_y.
9035 (update_window): Ditto.
9036 (scrolling_window): Ditto.
9037
9038 * xdisp.c (window_text_bottom_y): New.
9039
90401999-06-25 Gerd Moellmann <gerd@gnu.org>
9041
9042 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
9043 clearing mouse face.
9044 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
9045 event.xcrossing.focus is not set, and focus is in the menu bar,
9046 set focus frame as if event.xcrossing.focus were set.
9047
90481999-06-24 Gerd Moellmann <gerd@gnu.org>
9049
9050 * keyboard.c (make_lispy_event): Handle mouse on top lines.
9051 * keyboard.c (make_lispy_movement): Ditto.
9052
9053 * window.c (coordinates_in_window): Return 4 if on top line.
9054 (Fcoordinates_in_window_p): Return `top-line' if on top line.
9055
9056 * xdisp.c (window_box_height): Subtract top line height.
9057 (window_box): Add top line height to top y position if top line
9058 exists.
9059 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
9060 the top line row of the window. Set initial y-position to
9061 window's top line height plus delta.
9062 (start_display): Choose start glyph row depending on whether
9063 window has a top line.
9064 (try_scrolling): Take top line height into account for aggressive
9065 scrolling.
9066 (compute_window_start_on_continuation_line): Take top line into
9067 account.
427ec082 9068 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
9069 trigger a new redisplay.
9070 (try_window_reusing_current_matrix): Take top line into account.
9071 (find_last_row_displaying_text): Ditto.
9072 (get_last_unchanged_at_beg_row): DItto.
9073 (try_window_id): Ditto.
9074 (compute_line_metrics): Ditto.
9075
9076 * dispnew.c (shift_glyph_matrix): Compute visible row height
9077 taking top line of window into account.
9078 (update_window): Update top line. If scrolling_window detects
9079 that all rows are equal, only set cursor.
9080 (update_window_line): Call after_update_window_line_hook if
9081 mode_line_p flag of rows has changed.
9082 (scrolling_window): Add parameter top_line_p. Return -1 if
9083 all rows are equal.
9084 (mode_line_string): Add parameter mode_line_p. Handle strings
9085 in top lines.
9086
9087 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9088 (MATRIX_FIRST_TEXT_ROW): New.
9089 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9090 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9091 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9092 (MATRIX_TOP_LINE_HEIGHT): New.
9093 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9094 (CURRENT_TOP_LINE_HEIGHT): New.
9095 (DESIRED_TOP_LINE_HEIGHT): New.
9096 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9097 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9098 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9099 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9100
9101 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9102 lines.
9103 (x_draw_row_bitmaps): Take top line into account when clearing
9104 bitmap area.
9105 (x_estimate_mode_line_height): Replacement for
9106 x_frame_mode_line_height.
9107 (x_get_glyph_string_clip_rect): Take top line into account.
9108 (x_clear_end_of_line): Ditto.
9109 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9110 top lines.
9111 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9112 (x_erase_phys_cursor): Take top line into account.
9113
9114 * xdisp.c (window_box_height): Subtract top line height if
9115 window wants a top line.
9116 (display_mode_lines): New.
9117 (redisplay_window): Call it.
9118 (display_mode_line): Add parameters face_id and format.
9119
9120 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9121 (MATRIX_TOP_LINE_HEIGHT): New.
9122
9123 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9124
9125 * term.c (estimate_mode_line_height): Renamed from
9126 frame_mode_line_height. Add parameter face_id.
9127 (estimate_mode_line_height_hook): Renamed from
9128 frame_mode_line_height_hook.
9129 (produce_special_glyphs_hook): Removed.
9130 (produce_glyphs_hook): Removed.
9131
91321999-06-23 Gerd Moellmann <gerd@gnu.org>
9133
9134 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9135 (struct glyph_row): Add mode_line_p.
9136
9137 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9138 (Qtop_line): New.
9139 (syms_of_xfaces): Initialize Qtop_line.
9140
9141 * dispextern.h (TOP_LINE_FACE_ID): New.
9142
9143 * buffer.c (init_buffer_once): Set default for
9144 top_line_format to nil.
9145 (init_buffer_once): Init top_line_format.
9146 (default-top-line-format): New.
9147 (top-line-format): New buffer-local variable.
9148
9149 * buffer.h: Add top_line_format.
9150
9151 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9152
91531999-06-17 Dave Love <fx@gnu.org>
9154
9155 * xfns.c: Move the PNG section before the JPEG one to avoid
9156 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9157
26901792
DL
91581999-06-17 Gerd Moellmann <gerd@gnu.org>
9159
9160 * xfns.c (x_kill_gs_process): Don't free colors.
9161
91621999-06-17 Dave Love <fx@gnu.org>
9163
9164 * s/gnu-linux.h: Zap spurious ~.
9165
91661999-06-16 Gerd Moellmann <gerd@gnu.org>
9167
9168 * xfns.c (gif_load): Improve multi-image support.
9169
91701999-06-15 Gerd Moellmann <gerd@gnu.org>
9171
9172 * xfns.c (gif_load): Support multi-image files.
9173
9174 * Makefile.in (LIBGIF): Use libungif.
9175
9176 * configure.in (HAVE_GIF): Use libungif instead of libgif
9177 because the former doesn't contain patented compression code.
9178
9179 * xdisp.c (compute_window_start_on_continuation_line): Don't
9180 do it if line start is too far away from window start.
9181
91821999-06-14 Gerd Moellmann <gerd@gnu.org>
9183
9184 * buffer.c (init_buffer_once): Set buffer_local_flags for
9185 scroll_*_aggressively.
9186 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9187 (init_buffer_once): Set defaults for these variables.
9188 (syms_of_buffer): Add default-scroll-*-aggressively.
9189
9190 * buffer.h (scroll_up_aggressively): New.
9191 (scroll_down_aggressively): New.
9192
9193 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9194 a static PNG library.
9195
9196 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9197 in case it's a static library.
9198
9199 * Makefile.in (ctagsfiles): Split so that files starting
9200 with an `x' are found before files starting with `w32'.
9201 (ctagsfiles1): New.
9202 (ctagsfiles2): New.
9203 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9204
9205 * xdisp.c (compute_window_start_on_continuation_line): New.
9206 (redisplay_window): Use it.
9207 (INFINITY): New.
9208 (reseat_to_string): Use it.
9209 (hscroll_window_tree): Ditto.
9210 (compute_window_start_on_continuation_line): Ditto.
9211 (redisplay_window): Don't force display with a new window start.
9212
92131999-06-06 Gerd Moellmann <gerd@gnu.org>
9214
9215 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9216 if widget not present.
9217
9218 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9219
92201999-06-04 Gerd Moellmann <gerd@gnu.org>
9221
9222 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9223 value of realize_basic_faces.
9224 (load_face_font_or_fontset): Store full font name in face.
9225 (realize_default_face): Use full font name.
9226
26901792
DL
9227 * xterm.c (x_produce_glyphs): Set member char_to_display.
9228 (x_append_glyph): Store char_to_display in glyphs.
9229
9230 * dispextern.h (struct it): Add char_to_display.
9231
9232 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9233 if faces haven't been initialized.
9234 (Fx_create_frame): Call face-set-after-frame-default after
9235 faces have been initialized, and widget has been created.
9236
9237 * puresize.h (BASE_PURESIZE): Increased.
9238
92391999-06-01 Gerd Moellmann <gerd@gnu.org>
9240
9241 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9242 (Finternal_set_lisp_face_attribute): If frame is t when
9243 :font attribute is set, use the selected frame.
9244 (clear_face_cache): Add parameter clear_fonts_p.
9245 (Fclear_face_cache): Add optional parameter thorougly.
9246
9247 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9248 in table.
9249 (Fclear_face_cache): New.
9250 (choose_face_fontset_font): If fontset doesn't contain font
9251 pattern for the given charset, use CHARSET_ASCII.
9252 (Finternal_set_lisp_face_attribute): Fix handling of nil
9253 stipple attribute.
9254 (Finternal_set_lisp_face_attribute): Fix handling of changing
9255 font-related face attributes of the default face.
9256 (set_lface_from_font_name): Set only attributes that aren't
9257 specified.
9258
92591999-05-31 Gerd Moellmann <gerd@gnu.org>
9260
9261 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9262 font support.
9263 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9264 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9265 scalable fonts depending on the setting of SCALABLE_FONTS.
9266 (first_font_matching): List more than one font to find the
9267 first non-scalable matching font.
9268 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9269 depending on SCALABLE_FONTS.
9270 (better_font_p): New parameter compare_pt_p. If zero, don't
9271 compare point sizes of fonts.
9272 (exact_face_match_p) [SCALABLE_FONTS]: New.
9273 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9274 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9275 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9276 (syms_of_xfaces): Add scalable-fonts-allowed.
9277
92781999-05-26 Gerd Moellmann <gerd@gnu.org>
9279
9280 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9281 mask only if image contains simple transparency information.
9282 Otherwise, combine image with frame background color.
9283
9284 * configure.in (--with-png, HAVE_PNG): New.
9285
9286 * config.in (HAVE_PNG): New.
9287
9288 * Makefile.in: Add PNG library.
9289
9290 * xfns.c: Add PNG support.
9291
92921999-05-25 Gerd Moellmann <gerd@gnu.org>
9293
9294 * xdisp.c (init_xdisp): Initialize echo_area_message and
9295 previous_echo_area_message to nil.
9296
9297 * keyboard.c (read_char): Rename local variable echo_area_message
9298 because it shadows the global one.
9299
93001999-05-05 Gerd Moellmann <gerd@gnu.org>
9301
9302 * xterm.c (note_mode_line_highlight): Restructured.
9303
9304 * window.c (coordinates_in_window): Handle windows that don't have
9305 a mode line because their buffer's mode-line-format is nil.
9306 Recognize the mode line under x positions that correspond to
9307 flags areas and left scroll bar.
9308
93091999-05-02 Dave Love <fx@gnu.org>
9310
9311 * xterm.c (note_mouse_highlight): Separate help-echo processing
9312 from check on mouse-face so that it works generally.
9313
93141999-04-21 Gerd Moellmann <gerd@gnu.org>
9315
9316 * sound.c (Fplay_sound): Run hook play-sound-hook.
9317 (Qplay_sound_hook): New.
9318
93191999-04-20 Gerd Moellmann <gerd@gnu.org>
9320
9321 * xdisp.c (update_echo_area): Handle echo_area_message.
9322
93231999-04-19 Gerd Moellmann <gerd@gnu.org>
9324
9325 * editfns.c (Fmessage): Use message3.
9326
9327 * print.c (printchar): Set echo_area_message to nil.
9328 (strout): Ditto.
9329
9330 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9331 (Fminibuffer_completion_help): Ditto.
9332
9333 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9334 (command_loop_1): Test echo_areA_message.
9335 (read_char): Ditto.
9336 (record_menu_key): Set echo_area_message to nil.
9337 (Fexecute_extended_command): Test echo_area_message.
9338 (Fexecute_extended_command): Handle echo_area_message.
9339
9340 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9341 is set.
9342
9343 * editfns.c (Fcurrent_message): If echo_area_message is set,
9344 return a substring of that string.
9345
9346 * dispnew.c (direct_output_for_insert): Test echo_area_message
9347 in addition to echo_area_glyphs.
9348 (set_window_cursor_after_update): Ditto.
9349 (update_frame_1): Ditto.
9350
9351 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9352 old Lisp message string.
9353
9354 * xdisp.c (echo_area_message): New.
9355 (previous_echo_area_message): New.
9356 (syms_of_xdisp): Initialize and staticpro new variables.
9357 (echo_area_display): Display echo_area_message if set.
9358 (message2_nolog): Set echo_area_message and
9359 previous_echo_area_message.
9360 (echo_area_display): Set previous_echo_area_message.
9361 (redisplay_internal): Display echo area if echo_area_message
9362 or previous_echo_area_message are set.
9363 (redisplay_preserve_echo_area): Test/set echo_area_message and
9364 previous_echo_area_message.
9365 (redisplay_window): Test echo_area_message.
9366 (message3_nolog): New.
9367 (message3): New.
9368
9369 * editfns.c (Fformat): Add text properties to the result string
9370 from properties of the format string and properties of string
9371 arguments.
9372
9373 * textprop.c (text_property_list): New.
9374 (add_text_properties_from_list): New.
9375 (extend_property_ranges): New.
9376
93771999-03-29 Gerd Moellmann <gerd@gnu.org>
9378
9379 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9380 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9381 Use these symbols for the box face attribute instead of the
9382 removed ones.
9383
93841999-03-12 Gerd Moellmann <gerd@gnu.org>
9385
9386 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9387 Correct wrong test for slant.
9388
93891999-03-10 Gerd Moellmann <gerd@gnu.org>
9390
9391 * xfaces.c: Use `unspecified' for unspecified face attributes,
9392 use t and nil for on/off.
9393
93941999-03-06 Gerd Moellmann <gerd@gnu.org>
9395
9396 * buffer.c (syms_of_buffer): Extend doc string of
9397 mode-line-format.
9398
9399 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9400 (first_font_matching): New.
9401 (set_lface_from_font_name): Use it if font name is a pattern.
9402 (font_field_wildcard_p): Removed.
9403
9404 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9405 Recompute visible height of rows.
9406
9407 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9408 Don't accept non-strings for help-echo from overlays.
9409
94101999-03-04 Dave Love <fx@gnu.org>
9411
9412 * xterm.c (note_mouse_highlight): Check overlays for help-text
9413 property.
9414 (XTread_socket): Fix compiler warning.
427ec082 9415
26901792
DL
94161999-03-05 Gerd Moellmann <gerd@gnu.org>
9417
427ec082 9418 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9419 overlay to 10. Call overlays_at so that it doesn't try to
9420 extend the vector.
9421
9422 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9423 height.
9424
9425 * dispnew.c (row_equal_p): Compare visible row height, only.
9426 (update_text_area): Draw whole line if visible heights of
9427 rows differ.
9428 (update_window_line): Call after_update_window_line_hook
9429 if visible row height has changed.
9430
9431 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9432 (struct glyph_row): New member visible_height.
9433
9434 * xfaces.c (font_field_wildcard_p): New.
9435 (set_lface_from_font_name): Remove parameter force_p. Accept
9436 font names containing wildcards.
9437
94381999-03-04 Gerd Moellmann <gerd@gnu.org>
9439
9440 * xterm.c (x_after_update_window_line): Clear internal border
9441 when windows_or_buffers_changed.
9442
9443 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9444 buffer has a nil mode_line_format.
9445
94461999-03-03 Gerd Moellmann <gerd@gnu.org>
9447
9448 * xterm.c (x_setup_relief_colors): Use either background color
9449 or specified color.
9450
9451 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9452
9453 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9454
9455 * xterm.c (x_draw_box_rect): New.
9456 (x_draw_glyph_string_box): Renamed from
9457 x_draw_glyph_string_relief. Call x_draw_box_rect.
9458
9459 * xfns.c (QCrelief): New.
9460 (syms_of_xfns): Initialize it.
9461
9462 * dispextern.h (struct glyph): Rename left_shadow_p to
9463 left_box_line_p, right_shadow_p to right_box_line_p.
9464 (MAX_RELIEF_THICKNESS): Removed.
9465 (struct it): Rename members having `relief' in their names
9466 to contain `box' instead.
9467
9468 * xfaces.c (realize_x_face): Handle new box attribute values.
9469 (QCrelief, Qbox): Removed.
9470 (QCshadow, QCcolor, Qraised, Qsunken): New.
9471 (syms_of_xfaces): Initialize new symbols.
9472
94731999-03-02 Gerd Moellmann <gerd@gnu.org>
9474
9475 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9476
9477 * xfaces.c (LFACE_RELIEF): Removed.
9478 (merge_face_vector_with_property): Remove handling of `:relief'.
9479 (Finternal_set_lisp_face_attribute): Ditto.
9480 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9481 (Finternal_get_lisp_face_attribute): Ditto.
9482 (realize_default_face): Ditto.
9483 (lface_hash): Don't compute hash from relief.
9484
9485 * dispextern.h (struct face): Replace member `relief' by
9486 `box_line_width'. Add member `box'.
9487 (face_box_type): New.
9488
9489 * xterm.c (x_produce_glyphs): If face has overline, add overline
9490 thickness + 1 to ascent.
9491
94921999-03-01 Gerd Moellmann <gerd@gnu.org>
9493
9494 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9495 strike-through, and boxes.
9496 (x_draw_glyph_string_underline): Removed.
9497
9498 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9499 (Qoverline, Qstrike_through, Qbox): New.
9500 (syms_of_xfaces): Define these symbols.
9501 (check_lface_attrs): Add checks for overline, strike-through,
9502 and box.
9503 (Finternal_set_lisp_face_attribute): Set new attributes.
9504 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9505 (load_color): Handle new attributes.
9506 (realize_x_face): Ditto.
9507 (merge_face_vector_with_property): Ditto.
9508 (free_face_colors): Ditto.
9509 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9510 (Finternal_get_lisp_face_attribute): Ditto.
9511 (Finternal_lisp_face_attribute_values): Ditto.
9512
9513 * dispextern.h (lface_attribute_index): Add enumerators for
9514 overstrike, strike-through, and box.
9515 (struct face): Add members for overline, strike-through, and
9516 box.
9517
95181999-02-17 Dave Love <fx@gnu.org>
9519
9520 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9521 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9522 files.
9523
95241999-02-16 Gerd Moellmann <gerd@gnu.org>
9525
9526 * keyboard.c (toolbar_items): Call access_keymap with third
9527 parameter 1, so that we don't get inherited toolbar item
9528 definitions.
9529
9530 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9531 the window end vpos when in empty first line of window.
9532
95331999-02-15 Gerd Moellmann <gerd@gnu.org>
9534
9535 * xfaces.c (set_font_frame_param): New.
9536 (Finternal_set_lisp_face_attribute): Call it.
9537
9538Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9539
9540 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9541 Accept specifications of color for underline.
9542
95431999-02-13 Gerd Moellmann <gerd@gnu.org>
9544
9545 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9546 `frame' is t, operate on face defaults for new frames. If it
9547 is nil, operate on the selected frame.
9548
95491999-02-12 Gerd Moellmann <gerd@gnu.org>
9550
9551 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9552 (update_window): Put the call to check_matrix_invariants in #if 0.
9553
9554Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9555
9556 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9557 Remove definition of UNDERLINE_COLOR.
9558
9559Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9560
9561 * xfaces.c (free_face_colors): Free the color for underline.
9562
9563 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9564 to the GC.
9565
9566Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9567
9568 * dispextern.h (UNDERLINE_COLOR): Defined.
9569 (struct face): Added two new members.
9570 underline_color, underline_defaulted_p.
9571
427ec082 9572 * xfaces.c (merge_face_vector_with_property):
26901792 9573 (check_lface_attrs): Accept the string value for underline.
427ec082 9574 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9575
9576 * xfaces.c (load_color): Change the last argument type to enum
9577 lface_attribute_index from int. And addec code for underling coloring.
9578 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9579
26901792
DL
95801999-02-12 Gerd Moellmann <gerd@gnu.org>
9581
9582 * xfns.c (Fx_image_header): Removed.
9583
95841999-02-07 Gerd Moellmann <gerd@gnu.org>
9585
9586 * xterm.c: Don't include <bitmaps/gray>.
9587 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9588
9589 * xfns.c (Fx_image_header): Add missing `\n\'.
9590 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9591
95921999-02-01 Gerd Moellmann <gerd@gnu.org>
9593
9594 * xterm.c (x_scroll_bar_create): Set background pixel from
9595 specified scroll bar color.
9596 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9597
9598 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9599 (x_set_scroll_bar_background): Ditto.
9600
9601 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9602
9603 * xfns.c (x_default_scroll_bar_color_parameter): New.
9604 (Fx_create_frame): Call it.
9605
96061999-01-31 Gerd Moellmann <gerd@gnu.org>
9607
9608 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9609 values in x_output structure.
26901792
DL
9610 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9611 (syms_of_xfns): Initialize these symbols.
9612
9613 * xterm.h (struct x_output): Add scroll bar pixel colors.
9614
9615 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9616 (x_set_scroll_bar_foreground): New.
9617 (x_set_scroll_bar_background): New.
9618
26901792
DL
96191999-01-12 Gerd Moellmann <gerd@gnu.org>
9620
9621 * xdisp.c (handle_single_display_prop): New.
9622 (handle_display_prop): Call it.
9623 (handle_raise_prop): Removed.
9624 (handle_height_prop): Removed.
9625 (handle_space_width_prop): Removed.
9626 (handle_face_prop): Remove handling of raised text.
9627 (handle_display_prop): Do it here.
9628
9629 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9630 (RAISE_PROP_IDX): Removed.
9631 (HEIGHT_PROP_IDX): Removed.
9632 (SPACE_WIDTH_PROP_IDX): Removed.
9633
9634 * xdisp.c (Qdisplay): Replaces Qglyph.
9635 (handle_display_prop): Formerly handle_glyph_prop.
9636
96371999-01-11 Gerd Moellmann <gerd@gnu.org>
9638
9639 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9640 (handle_stop): Set position in display vector to -1. Don't
9641 check overlay strings when set up to deliver characters from a
9642 display vector.
9643 (set_iterator_to_next): At the end of a run of characters from a
9644 display vector, check whether the display vector display replaces
9645 the display of a character.
9646
96471999-01-05 Gerd Moellmann <gerd@gnu.org>
9648
9649 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9650 X window hasn't been created yet.
9651
96521998-12-06 Gerd Moellmann <gerd@gnu.org>
9653
9654 * sound.c: New.
9655
96561998-12-04 Gerd Moellmann <gerd@gnu.org>
9657
9658 * config.in (HAVE_SOUND): New.
9659
9660 * emacs.c (main): Call syms_of_sound and init_sound.
9661
9662 * Makefile.in (obj): Add sound.o.
9663
9664 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9665
9666 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9667 (HAVE_SYS_SOUNDCARD_H): New.
9668
96691998-12-03 Gerd Moellmann <gerd@gnu.org>
9670
9671 * buffer.h (struct buffer): indicate_empty_lines renamed from
9672 indicate_zv_lines.
9673
9674 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9675 (default-indicate-zv-lines): Likewise.
9676
9677 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9678 to indicate_empty_line_p.
9679
9680 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9681 to next_element_from_buffer.
9682
9683 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9684
9685 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9686 and `N-'.
9687
9688 * xfns.c (xbm_scan): New.
9689 (xbm_read_hexint): Removed.
9690 (xbm_read_bitmap_file_data): Use xbm_scan.
9691
9692 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9693
96941998-12-02 Gerd Moellmann <gerd@gnu.org>
9695
9696 * xfns.c (xbm_read_hexint): New.
9697 (xbm_read_bitmap_file_data): New.
9698 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9699 instead of XReadBitmapFileData.
9700
9701 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9702
9703 * xfaces.c (face_with_height): New.
9704
9705 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9706 (eval_form): Renamed from eval_mode_element.
9707 (handle_face_prop): Use it.
9708 (Qheight): Replaces Qsmaller.
9709 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9710 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9711 integer, evaluate it to get the font height to use.
9712
9713 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9714 (struct it): Use `font_height' instead of `smaller'.
9715
97161998-12-01 Gerd Moellmann <gerd@gnu.org>
9717
9718 * xdisp.c (reseat_1): New.
9719 (reseat): Call it.
9720 (move_it_vertically_backward): Ditto.
9721 (redisplay_window): Don't abort when cursor not found in recenter.
9722
97231998-11-30 Gerd Moellmann <gerd@gnu.org>
9724
9725 * xdisp.c (reseat_at_next_visible_line_start): When not
9726 currently delivering display elements from the current buffer,
9727 restore buffer position first.
9728 (init_from_display_pos): Don't set IT's position from the
9729 position passed to this function.
9730
97311998-11-28 Gerd Moellmann <gerd@gnu.org>
9732
9733 * config.in (PROTO): Removed.
9734
9735 * xterm.h: Change PROTO to P_.
9736
97371998-11-26 Gerd Moellmann <gerd@gnu.org>
9738
9739 * xterm.c (take_vertical_position_into_account): New.
9740 (x_produce_image_glyph): Call it.
9741 (x_produce_stretch_glyph): Ditto.
9742 (x_produce_glyphs): Ditto.
9743 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9744 (x_fill_composite_glyph_string): Ditto.
9745 (x_fill_image_glyph_string): Ditto.
9746 (x_fill_stretch_glyph_string): Ditto.
9747
9748 * xdisp.c (display_line): Always compute row height from
9749 max_ascent and max_descent.
9750
9751 * dispextern.h (struct glyph): Add voffset.
9752 (struct it): Replace height by descent, max_height by max_descent.
9753
9754 * xterm.c (x_append_glyph): Set voffset
9755 (x_append_stretch_glyph): Ditto.
9756 (x_produce_image_glyph): Ditto.
9757 (x_produce_glyphs): Take voffset into account.
9758 (x_produce_image_glyph): Ditto.
9759 (x_produce_stretch_glyph): Ditto.
9760
9761 * dispextern.h (struct it): Add voffset.
9762 * xdisp.c (push_it): Save voffset.
9763 (pop_it): Restore it.
9764
9765 * xdisp.c (it_props): Add entry for `raise'.
9766 (handle_raise_prop): New.
9767
9768 * dispextern.h (RAISE_PROP_IDX): New.
9769
9770 * xdisp.c (Qraise): New.
9771 (syms_of_xdisp): Define Qraised.
9772
9773 * xterm.c (x_scroll_bar_move): Clear to the left and right
9774 of toolkit scroll bars differently.
9775 (x_scroll_bar_move): Removed.
9776 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9777
9778 * dispextern.h: Make it compilable --with-x=no.
9779 * alloc.c: Ditto.
9780 * emacs.c: Ditto.
9781 * dispnew.c: Ditto.
9782 * keyboard.c: Ditto.
9783 * term.c: Ditto.
9784 * xdisp.c: Ditto.
9785 * xfaces.c: Ditto.
9786 * xfns.c: Ditto.
9787 * xmenu.c: Ditto.
9788
97891998-11-25 Gerd Moellmann <gerd@gnu.org>
9790
9791 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9792
97931998-11-24 Gerd Moellmann <gerd@gnu.org>
9794
9795 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9796 update slider size, only.
9797 (xm_scroll_callback): Set dragging member of the scroll bar.
9798 (xt_action_hook): Reset last_scroll_bar_part.
9799 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9800
26901792
DL
9801 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9802 window on newly created frames that don't have one.
9803
98041998-11-23 Gerd Moellmann <gerd@gnu.org>
9805
9806 * xdisp.c (restore_overlay_strings): Removed.
9807 (restore_dpvec): Removed.
9808 (init_from_display_pos): Inline both functions above.
9809
9810 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9811 (parse_image_spec): Handle it.
9812 (xbm_format): Use it.
9813 (xpm_format): Ditto.
9814 (pbm_format): Ditto.
9815 (jpeg_format): Ditto.
9816 (tiff_format): Ditto.
9817 (gif_format): Ditto.
9818 (gs_format): Ditto.
9819
9820 * xdisp.c (set_window_cursor): Removed.
9821 (redisplay_internal): Case cursor motion in cursor line of
9822 selected window; use set_cursor_from_row.
9823
98241998-11-22 Gerd Moellmann <gerd@gnu.org>
9825
9826 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9827 into account.
9828
98291998-11-21 Gerd Moellmann <gerd@gnu.org>
9830
9831 * xterm.c (expose_frame): Redraw menu bar window.
9832
9833 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9834 in menu item.
9835
9836 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9837 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9838
9839 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9840 to determine vertical_scroll_bar_extra.
9841 (EmacsFrameSetCharSize): Ditto.
9842 * xfns.c (x_figure_window_size): Ditto.
9843
9844 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9845 (x_draw_bitmap): Ditto.
9846
9847 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9848 * xfaces.c (realize_basic_faces): Realize it.
9849
98501998-11-20 Gerd Moellmann <gerd@gnu.org>
9851
9852 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9853 under LessTif Use the widget of the frame as parent for the
26901792
DL
9854 menu, again.
9855
98561998-11-19 Gerd Moellmann <gerd@gnu.org>
9857
9858 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9859 When EnterNotify, don't generate a mouse movement event if
9860 notification is from a busy-cursor child window.
9861
9862 * xterm.h (struct x_output): Add busy_window, remove cursor.
9863
9864 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9865 Use a transparent window to display the busy-cursor.
9866 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9867
98681998-11-17 Gerd Moellmann <gerd@gnu.org>
9869
9870 * xdisp.c (check_window_end): New, for debugging.
9871 (CHECK_WINDOW_END): New.
9872 (try_window_id): Use it.
9873
9874 * xterm.c (process_expose_from_menu): Return int.
9875
9876 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9877 TOOLBAR_EVENT events in last_nonmenu_event.
9878
98791998-11-16 Gerd Moellmann <gerd@gnu.org>
9880
9881 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9882 window end isn't reliable, so set window_end_valid to nil.
9883 (redisplay_internal): If overlay arrow has changed, set
9884 windows_or_buffers_changed to redisplay thoroughly.
9885
9886 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9887 necessary.
9888
9889 * xfns.c (file_dialog_cb): New.
9890 (Fx_file_dialog): New.
9891 * fileio.c (Fread_file_name): Call it.
9892
427ec082 9893 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9894 selection dialog.
9895
98961998-11-14 Gerd Moellmann <gerd@gnu.org>
9897
9898 * xterm.c (note_mouse_highlight): Don't highlight when popup
9899 is active.
9900
26901792
DL
9901 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9902 timer-event-handler. This busy cursor tends to be anoying if
9903 fontifying stealthily.
9904
9905 * dispnew.c (direct_output_for_insert): Give up if current row
9906 contains trailing whitespace.
9907
99081998-11-13 Gerd Moellmann <gerd@gnu.org>
9909
9910 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9911
9912 * xdisp.c (handle_fontified_prop): New.
9913 (Vfontification_functions): New.
9914 (Qfontification_functions): New.
9915 (it_props): Add handle_fontified_prop.
9916
99171998-11-12 Gerd Moellmann <gerd@gnu.org>
9918
9919 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9920 Otherwise, under LessTif, after the popup has gone, all button
9921 press events come in for the frame's widget, and release events
9922 come in for the edit_widget.
9923 * xterm.c (XTread_socket): Remove workaround for that problem.
9924 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9925 XmScrollBarSetValues.
9926 (SET_SAVED_MENU_EVENT): Give it statement form.
9927
26901792
DL
9928 * xfaces.c (display_message): If waiting_for_input, don't display
9929 the message.
9930
9931 * window.c (scroll_command): If not acting on current_buffer,
9932 make redisplay consider all windows.
9933
9934 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9935
9936 * xdisp.c (handle_glyph_prop): Set it->object for images to
9937 the object having the glyph property.
9938
9939 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9940 invisible.
9941
99421998-11-11 Gerd Moellmann <gerd@gnu.org>
9943
9944 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9945 (x_term_init): Create the gray pixmap.
9946 (x_setup_relief_color): Use it.
9947 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9948 internal border at the top of a frame.
9949 (x_init_glyph_string): Likewise.
427ec082 9950 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9951 full-width lines.
9952 (XTflash): Don't flash the toolbar window.
9953
9954 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9955 in case of ButtonPress events.
9956
99571998-11-10 Gerd Moellmann <gerd@gnu.org>
9958
9959 * xrdb.c (x_load_resources): Add grey background colors as
9960 defaults for menus, scroll bars, and dialogs.
9961
9962 * insdel.c (prepare_to_modify_buffer): Move setting
9963 windows_or_buffers_changed from modify_region here.
9964
9965 * xfns.c (Fx_show_tip): Inhibit redisplay.
9966 (Fx_hide_tip): Ditto.
9967 (Fx_image_header): New.
9968
99691998-11-09 Gerd Moellmann <gerd@gnu.org>
9970
9971 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9972 when clearing current window matrices.
9973
99741998-11-08 Gerd Moellmann <gerd@gnu.org>
9975
9976 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9977 position from a string position. Use the right end position
9978 if the property spans a whole overlay string.
9979
99801998-11-07 Gerd Moellmann <gerd@gnu.org>
9981
9982 * xmenu.c (menubar_selection_callback): Remove workaround for
9983 Lesstif not calling XmNpopdownCallback because it doesn't
9984 handle the case where users don't select any menu item.
9985
26901792
DL
9986 * insdel.c (modify_region): Set windows_or_buffers_changed.
9987
9988 * buffer.c (set_buffer_internal): Don't set
9989 windows_or_buffers_changed.
9990
26901792
DL
9991 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9992
26901792
DL
9993 * xmenu.c (menubar_selection_callback): Add workaround for
9994 Lesstif not calling XmNpopdownCallback.
9995
9996 * xdisp.c (eval_mode_element): New.
9997 (eval_mode_handler): New.
9998 (display_mode_element): Use eval_mode_element.
9999
10000 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
10001 Remove code looking at text props of default value.
10002
10003 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
10004
26901792
DL
100051998-11-06 Gerd Moellmann <gerd@gnu.org>
10006
427ec082 10007 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
10008 BUTTON_TYPE_NONE.
10009 (single_submenu): Likewise for panes and menu items.
10010 (set_frame_menubar): Set button_type of menu bar to none.
10011 (xmenu_show): Likewise.
10012 (single_submenu): Set widget values selected slot.
10013 (xmenu_show): Likewise.
10014
26901792
DL
10015 * xmenu.c (push_menu_item): Add parameters `type' and
10016 `selected'. Store it in menu_items.
10017 (MENU_ITEMS_ITEM_TYPE): New.
10018 (MENU_ITEMS_ITEM_SELECTED): New.
10019 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
10020
10021 * xfns.c (clear_image_cache): Get the current time, before
10022 doing anything.
10023 (cache_image): Set prev pointer of next image.
10024 (clear_image_cache): Clear current matrices if any image was
10025 freed.
10026
10027 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
10028
10029 * xfns.c (x_set_cursor): New.
10030 (Fx_display_busy_cursor): New.
10031 (Fx_undisplay_busy_cursor): New.
10032
10033 * xterm.h (struct x_output): Add busy_cursor.
10034
10035 * xfns.c (Vx_busy_pointer_shape): New.
10036 (x_set_mouse_color): Create busy cursor.
10037
10038 * process.c (wait_reading_process_input): Show and hide busy
10039 cursor.
10040
10041 * keyboard.c (command_loop_1): Display busy cursor.
10042
10043 * eval.c (Fsignal): Hide busy cursor.
10044
10045 * buffer.c (set_buffer_internal): Don't set
10046 windows_or_buffers_changed.
10047
10048 * xterm.c (redo_mouse_highlight): New.
10049
100501998-11-04 Gerd Moellmann <gerd@gnu.org>
10051
26901792
DL
10052 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
10053 (x_build_heuritic_mask): New.
10054 (lookup_image): Call it.
10055
10056 * xterm.c (note_toolbar_highlight): Always set up help_echo.
10057 (previous_help_echo): New.
10058 (XTread_socket): Generate help event with nil message when
10059 leaving a region with help-echo.
10060 (note_mouse_highlight): Handle `help-echo' over text.
10061 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10062 CirculateRequest.
10063 (clear_mouse_face): Don't clear if tooltip is shown.
10064 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10065 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10066
10067 * keyboard.c (Vshow_help_function): New.
10068 (read_char): Use it.
10069
100701998-11-03 Gerd Moellmann <gerd@gnu.org>
10071
10072 * xfns.c (x_create_tip_frame): New.
10073 (Fx_show_tip): New.
10074 (Fx_hide_tip): New.
10075
427ec082 10076 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
10077 a widget.
10078
10079 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10080 to full_width_p. Add internal_border_p.
10081
100821998-11-02 Gerd Moellmann <gerd@gnu.org>
10083
10084 * xterm.c (note_mode_line_highlight): Check the charpos of
10085 the glyph under the mouse pointer before accessing text
10086 properties at that position.
10087
100881998-11-01 Gerd Moellmann <gerd@gnu.org>
10089
10090 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10091
10092 * xdisp.c (auto-raise-toolbar-buttons): New.
10093 (build_desired_toolbar_string): Handle the flag.
10094 (toolbar-button-margin): New.
10095 (toolbar-button-relief): New.
10096 (build_desired_toolbar_string): Use margin and relief.
10097
10098 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10099 for FreeBSD.
10100 (note_mode_line_highlight): New.
10101 (note_mouse_highlight): Call it.
10102
101031998-10-31 Gerd Moellmann <gerd@gnu.org>
10104
10105 * s/freebsd.h (NARROWPROTO): New.
10106
10107 * xdisp.c (display_string): New parameter face_string.
10108 (display_mode_element): When displaying a symbol with a string
10109 value, use text properties from the symbol's default value, maybe.
10110
10111 * xrdb.c (x_load_resources): Add font defaults for menus and
10112 dialogs.
10113
101141998-10-30 Gerd Moellmann <gerd@gnu.org>
10115
10116 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10117
101181998-10-29 Gerd Moellmann <gerd@gnu.org>
10119
10120 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10121 produced for characters with codes < 32 under certain
10122 circumstances.
10123
10124 * xdisp.c (redisplay_window): Handle values of PT in front
10125 of invisible, intangible text.
427ec082 10126 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
10127 displaying lines.
10128 (display_mode_element): Assign to glyphs written for a mode
10129 line spec `%x' as object the Lisp format string, as position
10130 the position of the `%' in that string.
10131 (display_string): If displaying a C string, optionally get
10132 the face to use from a Lisp string.
10133
10134 * xterm.c (expose_window_tree): Include mode line height.
10135
10136 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10137
101381998-10-27 Gerd Moellmann <gerd@gnu.org>
10139
10140 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10141 over mode line.
10142
101431998-10-26 Gerd Moellmann <gerd@gnu.org>
10144
10145 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10146
10147 * xdisp.c (redisplay_window): If mode line height has changed,
10148 arrange for a thorough immediate redisplay using the correct mode
10149 line height.
10150 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10151
10152 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10153 (CURRENT_MODE_LINE_HEIGHT): New.
10154 (DESIRED_MODE_LINE_HEIGHT): New.
10155
10156 * keyboard.c (make_lispy_event): Add string and string position
10157 info to mouse-click events.
10158 (read_key_sequence): Handle `local-map' property of mode line
10159 strings.
10160
10161 * keyboard.h (POSN_STRING): New.
10162
101631998-10-25 Gerd Moellmann <gerd@gnu.org>
10164
10165 * dispnew.c (mode_line_string): Mew.
10166
10167 * xterm.c (xt_action_hook): New.
10168 (x_create_toolkit_scroll_bar): Add action hook.
10169 (xm_scroll_callback): Implement dragging.
10170
10171 * keyboard.c (Qend_scroll): New.
10172 (scroll_bar_parts): Add it.
10173
10174 * termhooks.h (scroll_bar_end_scroll): New.
10175
10176 * xterm.c (XTread_socket): Bug fix.
10177
101781998-10-24 Gerd Moellmann <gerd@gnu.org>
10179
10180 * xdisp.c (redisplay_window): Finish scroll bars after
10181 redisplaying toolbar.
10182
10183 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10184 (syms_of_keyboard): Add Qbottom.
10185
10186 * termhooks.h (scroll_bar_to_top): New.
10187 (scroll_bar_to_bottom): New.
10188
10189 * xdisp.c (redisplay_window): Always resize toolbar window if
10190 auto_resize_toolbar_p is non-zero.
10191 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10192 (window_box): New.
10193 (window_box_height): New.
10194 (window_box_width): New.
10195 (window_box_left): New.
10196 (window_box_right): New.
10197 (window_box_edges): New.
10198
101991998-10-23 Gerd Moellmann <gerd@gnu.org>
10200
10201 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10202 XawScrollbarSetThumb in FreeBSD.
10203 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10204 to true.
10205
10206 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10207 is out of range.
10208
10209 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10210 (x_term_init): Initialize it.
10211
10212 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10213
10214 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10215 cursor.
10216
102171998-10-22 Gerd Moellmann <gerd@gnu.org>
10218
10219 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10220 differently when using toolkit scroll bars.
10221
10222 * xterm.c (x_send_scroll_bar_event): New.
10223 (x_scroll_bar_to_input_event): New.
10224 (xaw3d_scroll_callback): New.
10225 (xaw3d_jump_callback): New.
10226 (xm_scroll_callback): New.
10227 (x_toolkit_scroll_p): New.
10228 (XTread_socket): Handle scroll bar client message.
10229 (x_term_init): Initialize Xatom_Scrollbar.
10230 (x_scroll_bar_create): Set cursor.
10231 (xm_scroll_callback):
10232 (x_create_toolkit_scroll_bar): New.
10233 (x_set_toolkit_scroll_bar_thumb): New.
10234 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10235 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10236
10237 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10238
102391998-10-21 Gerd Moellmann <gerd@gnu.org>
10240
10241 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10242 (XTread_socket): Don't handle mouse button events for scroll bars
10243 if using toolkit scroll bars.
10244 (XTset_vertical_scroll_bar): Set thumb size and position for
10245 Athena scroll bar.
10246
10247 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10248
10249 * xterm.c (XTread_socket): Dispatch expose event to widget
10250 if using toolkit scroll bars.
10251 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10252 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10253 if using toolkit scroll bars.
10254 (x_scroll_bar_move): Handle tookit scroll bars.
10255
10256 * Makefile.in (LIBW): Use Xaw3d if present.
10257
10258 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10259 (HAVE_XAW3D): New.
427ec082 10260
26901792
DL
10261 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10262 (HAVE_XAW3D): New.
10263
427ec082 10264 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10265 right vertical scroll bar.
10266
102671998-10-20 Gerd Moellmann <gerd@gnu.org>
10268
10269 * xfns.c (xpm_load): Support reading XPM images from string
10270 buffers containing data in the same format as an XPM file.
10271 Support `:color-symbols'.
10272 (xpm_format): Add `:data'.
10273 (xpm_keyword_index): Add XPM_DATA.
10274 (syms_of_xfns): Add `:color-symbols'.
10275 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10276 (xpm_valid_color_symbols_p): New.
10277 (xpm_image_p): Call it.
10278
10279 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10280 attribute to the image if item is not enabled.
10281
10282 * xfns.c (x_laplace): New.
10283 (x_laplace_read_row): New.
10284 (x_laplace_write_row): New.
10285 (lookup_image): Handle common image attributes here. New
10286 attribute `:algorithm'.
10287
10288 * xfaces.c (clear_face_cache): Call clear_image_cache.
10289
10290 * xterm.c (x_inverted_image_mask): Removed.
10291 (x_draw_image_foreground_1): New.
10292 (x_draw_image_glyph_string): Draw images with mask to a temporary
10293 pixmap to reduce flickering.
10294
10295 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10296 (display_toolbar_line): Remove parameter `margin'.
10297
102981998-10-19 Gerd Moellmann <gerd@gnu.org>
10299
10300 * xdisp.c (toolbar_lines_needed): New.
10301 (auto-resize-toolbars): New.
10302
10303 * xfns.c (cache_image): Correct call to xrealloc.
10304
10305 * dispnew.c (Fset_toolbar_height): Removed.
10306
10307 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10308 FRAME_MENU_BAR_LINES.
10309
10310 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10311 instead of FRAME_MENU_BAR_LINES.
10312 (check_frame_size): Ditto.
10313
10314 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10315 instead of FRAME_MENU_BAR_LINES.
10316 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10317 (build_frame_matrix): Ditto.
10318 (change_frame_size_1): Ditto.
10319
10320 * frame.h (FRAME_TOOLBAR_LINES): New.
10321 (FRAME_TOP_MARGIN): New.
10322
10323 * window.c (struct save_window_data): Add frame_toolbar_lines.
10324 (Fset_window_configuration): Handle toolbar lines.
10325 (Fcurrent_window_configuration): Save toolbar lines.
10326
10327 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10328
10329 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10330
10331 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10332
10333 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10334 (x_set_toolbar_lines): New.
10335
10336 * keyboard.c (cmd_error_internal): Bug fix.
10337
10338 * xterm.c: Remove double include of syssignal.h.
10339
103401998-10-18 Gerd Moellmann <gerd@gnu.org>
10341
10342 * xterm.c (x_toolbar_item): New.
10343 (x_handle_toolbar_click): Use it.
10344 (note_toolbar_highlight): Use it.
10345
10346 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10347 and toolbar_items_vectors.
10348
10349 * xterm.c (help_echo): New.
10350 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10351 (x_set_glyph_string_gc): Handle them.
10352 (x_after_update_window_line): Don't do anything in pseudo-windows.
10353 (x_produce_image_glyph): Take image margin and face relief into
10354 account.
10355 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10356 (x_draw_glyph_string_background): Optimize case when face has
10357 relief.
10358 (x_setup_relief_color): Take frame instead of glyph string
10359 parameter.
10360 (x_draw_relief_rect): New.
10361 (x_draw_glyph_string_relief): Call it.
10362 (x_draw_image_glyph_string_foreground): Handle margin and image
10363 relief.
10364 (x_draw_image_glyph_string_background): Ditto.
10365 (expose_frame): Redraw toolbar window.
10366 (expose_window): Don't draw cursor for pseudo-windows.
10367 (x_y_to_hpos_vpos): Handle pseudo-windows.
10368 (frame_to_window_pixel_xy): New.
10369 (note_mouse_highlight): Call note_toolbar_highlight.
10370 (x_handle_toolbar_click): New.
10371 (note_toolbar_highlight): New.
10372 (show_mouse_face): Change int parameter `hl' to parameter of
10373 type enum draw_glyphs_face. Handle image highlighting.
10374 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10375 non-nil. Use x_handle_toolbar_click.
10376
10377 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10378
10379 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10380 IMAGE_BOOL_VALUE.
10381 (parse_image_spec): Handle them.
10382 (image_spec_value): Additional parameter found.
427ec082 10383 (free_image): Remove image from the vector `images' of the
26901792
DL
10384 image cache.
10385 (clear_image_cache): Additional parameter force_p.
10386 (Fclear_image_cache): New.
10387 (x_find_image_file): New.
10388 (xbm_load): Handle `:margin' and `:relief'. Use
10389 x_find_image_file.
10390 (xpm_load): Likewise.
10391 (pbm_load): Likewise.
10392 (jpeg_load): Likewise.
10393 (tiff_load): Likewise.
10394 (gif_load): Likewise.
10395
10396 * keyboard.c (Qhelp_echo): New symbol.
10397 (read_char): Handle `toolbar' and `help_echo' events.
10398 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10399 (make_lispy_event): Handle TOOLBAR_EVENT.
10400 (toolbar_items): New.
10401 (process_toolbar_item): New.
10402 (PROP): New.
10403 (init_toolbar_items): New.
10404 (append_toolbar_item): New.
10405 (read_char_x_menu_prompt): Handle `toolbar' event.
10406 (read_key_sequence): Ditto.
10407
10408 * xfaces.c (Qtoolbar): New.
10409 (realize_basic_faces): Realize `toolbar' face.
10410 (face_at_string_position): Remove parameter modeline_p, add
10411 base_face_id.
10412
10413 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10414 to read data.
10415
104161998-10-17 Gerd Moellmann <gerd@gnu.org>
10417
10418 * xdisp.c (init_iterator): Replace parameter modeline_p with
10419 base_face_id.
10420 (next_element_from_string): Call get_next_display_element
10421 recursively after handling text properties.
10422 (prepare_menu_bars): Call update_toolbar.
10423 (update_toolbar): New.
10424 (build_desired_toolbar_string): New.
10425 (display_toolbar_line): New.
10426 (redisplay_toolbar): New.
10427 (toolbar_item_info): New.
10428 (redisplay_window): Call redisplay_toolbar.
10429 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10430
10431 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10432 window.
10433 (clear_desired_matrices): Ditto.
10434 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10435 (free_glyphs): Free matrices of toolbar window.
10436 (update_frame): Update toolbar window.
10437 (change_frame_size_1): Take toolbar into account.
10438 (Fset_toolbar_height): New.
10439
10440 * dispextern.h (struct it): Remove member modeline_p, add
10441 base_face_id.
10442 (struct image): Add members relief and margin.
10443 (IMAGE_ASCENT): Include margin in height.
10444
104451998-10-14 Gerd Moellmann <gerd@gnu.org>
10446
10447 * xfns.c (Fclear_image_cache): New.
10448
10449 * xfaces.c (realize_basic_faces): Realize toolbar face.
10450 (face_at_string_position): Remove parameter modeline_p, add
10451 base_face_id.
10452
10453 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10454
104551998-10-13 Gerd Moellmann <gerd@gnu.org>
10456
10457 * keyboard.c (syms_of_keyboard): Intern `:help'.
10458
104591998-10-12 Gerd Moellmann <gerd@gnu.org>
10460
10461 * xterm.c (note_toolbar_highlight): New.
10462 (note_mouse_highlight): Call it.
10463
10464 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10465 (coordinates_in_window): Handle toolbar window.
10466
10467 * keyboard.c (toolbar_items): New.
10468 (process_toolbar_item): New.
10469 (parse_toolbar_item): New.
10470 (init_toolbar_items): New.
10471 (append_toolbar_item): New.
10472
10473 * dispextern.h (enum toolbar_item_idx): New.
10474 (enum toolbar_item_image): New.
10475
10476 * frame.h (struct frame): Add toolbar-related members.
10477
10478 * xfaces.c (face_at_string_position): Remove assertion that
10479 current_buffer == window's buffer. This is not the case when
10480 called for the toolbar window.
10481
10482 * frame.c (make_frame): Initialize toolbar members.
10483
10484 * alloc.c (mark_object): Mark toolbar data of frames.
10485
10486 * frame.h (struct frame): Add toolbar-related members
10487 toolbar_window, desired_toolbar_items, current_toolbar_items,
10488 desired_toolbar_string, current_toolbar_string,
10489 n_desired_toolbar_items, n_current_toolbar_items. Add
10490 window_height.
10491
10492 * xterm.c (x_after_update_window_line): Don't draw bitmap
10493 areas for pseudo-windows.
10494 (expose_frame): Handle toolbar window.
10495 (expose_window): Don't do cursor stuff for pseudo-windows.
10496
10497 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10498
104991998-10-11 Gerd Moellmann <gerd@gnu.org>
10500
10501 * frame.c (make_frame): Initialize toolbar_window.
10502
10503 * alloc.c (mark_object): Make the toolbar window.
10504
10505 * dispnew.c (update_frame): Update frame's toolbar_window.
10506 (clear_current_matrices): Likewise.
10507 (clear_desired_matrices): Likewise.
10508 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10509 (free_glyphs): Free the toolbar window and its matrices.
10510
10511 * frame.h (struct frame): Add toolbar_window.
10512
10513 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10514 with relief.
10515
105161998-10-10 Gerd Moellmann <gerd@gnu.org>
10517
427ec082 10518 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10519 window start is not in the range BEGV..ZV.
10520
105211998-10-09 Gerd Moellmann <gerd@gnu.org>
10522
10523 * xdisp.c (try_scrolling): Experimentally handle the case
10524 that scroll-preserve-screen-position is set to `always'.
10525
10526 * window.c (Vscroll_preserve_screen_position): Replacement for
10527 scroll_preserve_screen_position.
10528
105291998-10-08 Gerd Moellmann <gerd@gnu.org>
10530
10531 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10532 doesn't like it.
10533 * xdisp.c: Ditto.
10534
10535 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10536
105371998-10-06 Gerd Moellmann <gerd@gnu.org>
10538
427ec082 10539 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10540 i_byte when prompts are inserted into minibuffers.
10541
10542 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10543 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10544 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10545
105461998-10-04 Gerd Moellmann <gerd@gnu.org>
10547
10548 * xdisp.c (make_cursor_line_fully_visible): New.
10549 (try_scrolling): New.
10550 (redisplay_window): Move scrolling code to try_scrolling.
10551 (make_cursor_line_fully_visible): Handle case of window too small
10552 to show a single line.
10553 (redisplay_window): Case forced window start---use
10554 make_cursor_line_fully_visible.
10555 (redisplay_window): Case cursor movement via current matrix.
10556 If ending up on a partially visible line, make it fully visible
10557 instead of recentering.
10558 (try_scrolling): Additional parameter scroll_smoothly.
10559
10560 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10561
105621998-09-28 Gerd Moellmann <gerd@gnu.org>
10563
10564 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10565 instead of y-position for scroll-preserved-screen-position.
10566
105671998-09-07 Gerd Moellmann <gerd@gnu.org>
10568
10569 * dispnew.c (update_frame_line): If current row is not enabled,
10570 write the whole line.
10571
105721998-09-06 Gerd Moellmann <gerd@gnu.org>
10573
10574 * lisp.h (HAVE_FACES): Removed.
10575
10576 * dispextern.h (HAVE_FACES): Removed.
10577
10578 * config.in (HAVE_FACES): Removed.
10579
10580 * dispnew.c (HAVE_FACES): Removed.
10581
10582 * xdisp.c (HAVE_FACES): Removed.
10583
10584 * xfaces.c (HAVE_FACES): Removed.
10585
105861998-09-05 Gerd Moellmann <gerd@gnu.org>
10587
10588 * xdisp.c (init_iterator): If face_change_count is non-zero,
10589 free realized faces.
10590
10591 * xfaces.c (free_all_realized_faces): Make it externally visible.
10592 (Finternal_set_lisp_face_attribute): Increment
10593 windows_or_buffers_changed.
10594
10595 * dispnew.c (direct_output_for_insert): Give up if
10596 face_change_count is non-zero.
10597 (direct_output_forward_char): Ditto.
10598
10599 * xfaces.c (face_change_count): New.
10600
106011998-09-04 Gerd Moellmann <gerd@gnu.org>
10602
10603 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10604 of range.
10605
106061998-09-03 Gerd Moellmann <gerd@gnu.org>
10607
10608 * term.c (Ftty_display_color_p): New.
10609
106101998-09-02 Gerd Moellmann <gerd@gnu.org>
10611
10612 * xfaces.c (Ftty_defined_colors): New.
10613
10614 * xterm.c (x_produce_glyphs): Fix computation of
10615 contains_overlapping_glyphs_p for ASCII.
10616
10617 * dispnew.c (Fshow_cursor): Don't change cursor state while
10618 redisplaying.
10619 (direct_output_for_insert): If a glyph with lbearing or rbearing
10620 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10621
106221998-09-01 Gerd Moellmann <gerd@gnu.org>
10623
10624 * term.c (OUTPUT_IF): Make replacement text have statement form.
10625 (OUTPUT1_IF): Ditto.
10626 (TS_italic_mode, TS_end_italic_mode): Removed.
10627 (TS_bold_mode): Removed.
10628 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10629 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10630 (TS_enter_reverse_mode): New.
10631 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10632 (TN_magic_cookie_glitch_ul): New.
10633 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10634 (TS_exit_attribute_mode): New.
10635 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10636 (TS_set_foreground, TS_set_background): New.
10637 (reset_terminal_modes): Switch colors back to default.
10638 (write_glyphs): Turn face on before writing text, turn it off
10639 afterwards.
10640 (insert_glyphs): Ditto.
10641 (term_init): Initialize new terminal capability variables.
10642 (turn_on_face): Turn a face on.
10643 (turn_off_face): Turn a face off.
10644
10645 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10646 (GLYPH_CHAR): Ditto.
10647 (GLYPH_FACE): Ditto.
10648
10649 * xfaces.c (Vface_tty_color_alist): New.
10650 (face-register-tty-color): New.
10651 (face-clear-tty-colors): New.
10652
10653 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10654 (struct it): Remove member faces_p since we now always have faces.
10655
106561998-08-31 Gerd Moellmann <gerd@gnu.org>
10657
10658 * dispextern.h (struct face): Add tty appearance flags.
10659
10660 * xdisp.c (init_iterator): Always handle faces.
10661 (extend_face_to_end_of_line): Handle tty frames.
10662
10663 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10664 passed in.
10665
106661998-08-30 Gerd Moellmann <gerd@gnu.org>
10667
10668 * xfaces.c (realize_default_face): Use empty strings to indicate
10669 that the face should use the default foreground/background
427ec082 10670 color of the terminal. Fill font-related attributes with
26901792
DL
10671 appropriate values for tty frames.
10672
10673 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10674
10675 * xfaces.c (realize_default_face): If face `default' is not
10676 yet known, create it.
10677
10678 * frame.c (make_terminal_frame): Call init_frame_faces
10679 unconditionally.
10680
10681 * xfaces.c (init_frame_faces): Make it work for tty frames.
10682 (free_frame_faces): Ditto.
10683 (clear_face_cache): Ditto.
10684 (recompute_basic_faces): Ditto.
10685 (Fframe_face_alist): Ditto.
10686 (free_realized_face): Ditto.
10687 (prepare_face_for_display): Ditto.
10688 (clear_face_gcs): Ditto.
10689 (lookup_face): Ditto.
10690 (smaller_face): Ditto.
10691 (realize_default_face): Ditto.
10692 (realize_face): Ditto.
10693 (realize_face): Dispatch to functions depending on the frame type.
10694 (realize_x_face): X way of realizing faces.
10695 (realize_tty_face): TTY way of realizing faces.
10696
106971998-08-29 Gerd Moellmann <gerd@gnu.org>
10698
10699 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10700 compute it instead.
10701 (lookup_face): Remove local variable unibyte_registry.
10702
107031998-08-22 Gerd Moellmann <gerd@gnu.org>
10704
10705 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10706 1 pixel longer.
10707
427ec082 10708 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10709 of face in buffer.
10710
10711 * editfns.c (make_buffer_string_both): If prompt in buffer,
10712 prevent start > end.
10713
10714 * indent.c (Fvertical_motion): Set current_buffer to window's
10715 buffer if it isn't already.
10716
107171998-08-21 Gerd Moellmann <gerd@gnu.org>
10718
10719 * dispextern.h (GLYPH_DEBUG): Use default 0.
10720
10721 * xdisp.c (it_props): New member `smaller'.
10722 (init_iterator): Initialize it.
10723 (Qsmaller): New.
10724 (push_it): Save value of `smaller' value on the stack.
10725 (pop_it): Restore `smaller' from the stack.
10726 (handle_smaller_prop): New.
10727 (handle_face_prop): Use `smaller' text property to select a
10728 suitable face.
10729
10730 * dispextern.h (SMALLER_PROP_IDX): New.
10731 (struct it): Add member `smaller'.
10732
10733 * xfaces.c (smaller_face): New.
10734
10735 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10736
10737 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10738 total pixel width of window differently.
10739
10740 * xdisp.c (init_iterator): Compute width of mode line differently.
10741
10742 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10743 of bitmap areas.
10744
10745 * window.c (Fsplit_window): Include width of bitmap areas in
10746 window width.
10747 (window_internal_width): Subtract width of bitmap areas from
10748 total width.
10749
107501998-08-18 Gerd Moellmann <gerd@gnu.org>
10751
10752 * xdisp.c: Functions reordered for better readability.
10753
10754 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10755 lbearing.
10756 (update_window_tree): Parameter no_scrolling_p removed.
10757 (update_single_window): Ditto.
10758
10759 * xterm.c (x_get_char_font_and_encoding): Renamed to
10760 x_get_char_face_and_encoding.
10761
10762 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10763 if end of current row reached.
10764
10765 * xterm.c (x_get_glyph_face_and_encoding): New.
10766 (x_get_glyph_overhangs): Call it.
10767
10768 * xdisp.c (Qshow_trailing_whitespace): New.
10769 (Qtrailing_whitespace): New.
10770 (enum prop_handled): New.
10771 (struct props, it_props): New.
10772 (next_overlay_change): New. Works like Fnext_overlay_change
10773 but doesn't use xmalloc.
10774 (handle_stop): Restructured.
10775 (face_before_or_after_it_pos): Case iteration over a string: fix
10776 handling of face before current position.
10777
107781998-08-16 Gerd Moellmann <gerd@gnu.org>
10779
10780 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10781 reallocation matrix if fonts_changed_p.
10782 (update_text_area): Handle glyphs with lbearing.
10783
107841998-08-14 Gerd Moellmann <gerd@gnu.org>
10785
10786 * xdisp.c (struct props): New.
10787 (it_props): New.
10788 (compute_prop_info): New.
10789 (handle_stop): New.
10790
10791 * textprop.c (validate_interval_range): Make it externally
10792 visible.
10793
10794 * dispnew.c (direct_output_for_insert): Remove calls
10795 to compute_stop_pos.
10796
10797 * dispextern.h (struct it): Remove check_charpos,
10798 next_overlay_pos. Add what_changes.
10799
108001998-08-10 Gerd Moellmann <gerd@gnu.org>
10801
10802 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10803
10804 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10805 face_default_registry instead.
10806
10807 * syntax.c (scan_sexps_forward): Set up syntax table before
10808 jumping to initial state label.
10809
108101998-08-09 Gerd Moellmann <gerd@gnu.org>
10811
10812 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10813 >= ZV specially.
10814
108151998-08-08 Gerd Moellmann <gerd@gnu.org>
10816
10817 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10818 ends up in partially visible row, try to scroll. Case forced
10819 window start---handle windows not tall enough to show a single
10820 line.
10821
10822 * window.h (struct window): Member dy renamed vscroll.
10823
10824 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10825 fonts.
10826 (x_draw_stretch_glyph_string): Set clipping if using GC that
10827 hasn't set it yet.
10828
10829 * xdisp.c (redisplay_window): Case forced window start -
10830 don't let cursor end on partially visible row. Use desired
10831 matrix to find a suitable PT if it doesn't appear.
10832 (decode_mode_spec): Merged with 20.2.97.
10833 (try_window_reusing_current_matrix): Give up if old or
10834 new display is vscrolled.
10835 (redisplay_window): Reset vscrolling if forced window start,
10836 or if recentering.
10837
108381998-08-06 Gerd Moellmann <gerd@gnu.org>
10839
10840 * xfaces.c (realize_default_face): Use the fontset name instead of
10841 the alias for the family attribute of the default face because we
10842 can't easily determine a good alias from fontset-alias-alist.
10843 (face_fontset): Use Fquery_fontset to find the fontset.
10844 (font_list): Additional pattern parameter.
10845 (try_font_list): Ditto.
10846 (set_lface_from_font_name): Set face family from font foundry
10847 and family.
10848 (font_list): If family contains a hyphen, build pattern differently.
10849
108501998-08-05 Gerd Moellmann <gerd@gnu.org>
10851
10852 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10853 changed instead of setting the frame garbaged.
10854
10855 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10856 all attribute values. This is wrong if values are unspecified,
10857 i.e. nil.
10858
10859 * xdisp.c (try_window_id): Give up if window start changed.
10860
10861 * xfaces.c (make_realized_face): Store registry as Lisp object.
10862 (load_face_font_or_fontset): Compute registry of a face
10863 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10864 possible.
10865
10866 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10867 differently.
10868
10869 * alloc.c (mark_face_cache): Mark the registry member of faces.
10870
10871 * dispextern.h (struct face): Make registry a Lisp string.
10872
108731998-08-04 Gerd Moellmann <gerd@gnu.org>
10874
10875 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10876 multibyte_p. Handle unibyte text.
10877 (x_append_glyph): Set the multibyte_p flag of glyphs.
10878 (x_produce_image_glyph): Ditto.
10879 (x_append_stretch_glyph): Ditto.
10880 (x_produce_glyphs): Handle unibyte text like ASCII.
10881
10882 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10883 stack.
10884 (pop_it): Restore it.
10885 (face_before_or_after_it_pos): Handle the case that the string or
10886 buffer is unibyte.
10887 (get_overlay_strings): Set the multibyte flag of the iterator if
10888 the new overlay string is multibyte.
10889 (get_glyph_property): Likewise.
10890 (get_next_display_element): Don't check for charset changes in
10891 unibyte text.
10892 (append_space): Compute face differently for unibyte text.
10893 (extend_face_to_end_of_line): Don't return quickly if face has
10894 stipple.
10895
10896 * xfaces.c (load_face_font_or_fontset): Store registry and
10897 encoding of the font in the registry member of the face.
10898 (make_realized_face): Additional parameter `registry'.
10899 (free_realized_face): Free the registry of a realized face.
10900 (face_suitable_for_charset_p): Function form of the macro
10901 with the same name in uppercase.
10902 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10903 (choose_face_font): New parameter unibyte_registry.
10904 (choose_face_fontset_font): Ditto.
10905 (realize_default_face): Remember the registry and encoding of
10906 the specified frame font in Vx_unibyte_registry_and_encoding.
10907 (face_at_buffer_position): Handle unibyte.
10908 (face_at_string_position): Likewise.
427ec082 10909 (realize_face): New parameter unibyte_registry.
26901792
DL
10910 (compute_char_face): Handle the unibyte case.
10911
10912 * dispextern.h (struct glyph): Add bit multibyte_p.
10913 (struct face): New member registry holding the registry and
10914 encoding of the X font of the face.
10915 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10916 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10917 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10918 text.
10919 (struct iterator_stack_entry): Add multibyte_p.
10920
10921 * xdisp.c (string_pos): Use string_char_to_byte.
10922 (char_charset): Removed.
10923
109241998-08-03 Gerd Moellmann <gerd@gnu.org>
10925
10926 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10927 rectangle for a block cursor over an image without a mask.
10928 (x_stretch_block_cursor): Added. Non-zero means don't draw
10929 a block cursor over a stretch as wide as that stretch.
10930 (x_draw_stretch_glyph_string): Use it.
10931 (x_draw_hollow_cursor): Ditto.
10932
10933 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10934 (read_minibuf): Add front-sticky text property for prompt.
10935
10936 * xdisp.c (char_charset): Return charset of a character,
10937 depending on whether or not multi-byte characters are enabled.
10938
10939 * xfaces.c (Fset_face_charset_registry): Removed.
10940 (x_charset_registry): Determine registry from charset plist.
10941
109421998-08-02 Gerd Moellmann <gerd@gnu.org>
10943
10944 * xdisp.c (get_next_display_element): Don't check for charset
10945 changes if multi-byte characters are not enabled.
427ec082 10946
26901792 10947 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10948 redisplay interface.
26901792
DL
10949 * keyboard.c (detect_input_pending_run_timers): Likewise.
10950
10951 * dispextern.h (produce_*glyphs_hook): Removed.
10952 * term.c (produce_*glyphs): Ditto.
10953 (cursor_to): Remove pixel position parameters.
10954
10955 * dispnew.c: Remove hooks for window-based redisplay, introduce
10956 a redisplay interface structure.
10957
10958 * xterm.c (x_per_char_metric): Return default char metrics if per
10959 char metric exists but contains a zero width. Adobe Courier seems
10960 to contain such characters.
10961
10962 * xdisp.c (compute_line_metrics): Compute the width of rows
10963 without stopping at glyphs with zero width.
10964
109651998-08-01 Gerd Moellmann <gerd@gnu.org>
10966
10967 * xdisp.c (display_mode_line): If nothing was displayed at all,
10968 display a space.
10969 (hscroll_window_tree): Don't subtract 1 from target point if equal
10970 to ZV and window is not the selected window.
10971
10972 * dispnew.c (check_matrix_invariants): Remove check for window
10973 start at BEGV or after newline. This happens in rare cases
10974 intentionally.
10975
109761998-07-31 Gerd Moellmann <gerd@gnu.org>
10977
10978 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10979 (syms_of_xfaces): Add Vface_default_registry.
10980 (x_charset_registry): Use it.
10981
10982 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10983 (redisplay_window): Use it.
10984
10985 * dispnew.c (update_text_area): Handle lbearing of deleted text
10986 by backing up one character.
10987
109881998-07-30 Gerd Moellmann <gerd@gnu.org>
10989
427ec082 10990 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10991 decide to do nothing.
10992
10993 * xfaces.c (face_at_string_position): Additional parameter
10994 mode_line_p. If non-zero, merge with the mode line face
10995 instead of the default face.
10996 * dispextern.h (struct it): Add mode_line_p.
10997 * xdisp.c (init_iterator): Set it.
10998 (compute_face_in_string): Use it.
10999 (face_before_or_after_it_pos): Handle strings.
11000 (get_next_display_element): Don't look for relief end in C strings.
11001 (next_element_from_string): Deliver string position instead of
11002 buffer position.
11003
11004 * xterm.c (x_flush): Flush X output buffer.
11005 (XTflash): Use it.
11006
11007 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
11008 Allow strings as face names.
11009
11010 * xfns.c (forall_images_in_image_cache): Check that frame is
11011 alive.
11012
11013 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
11014 it's also called from x_destroy_window. Since this function is
11015 called from X, freeing stuff allocated with xmalloc is dangerous
11016 here, anyway.
11017
11018 * xfaces.c (free_realized_faces): Don't clear current matrices
11019 of a frame being destroyed.
11020
427ec082 11021 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
11022 Fset_window_buffer.
11023
11024 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
11025 with an additional argument specifying whether or not hooks may
11026 be called.
11027 (Fset_window_buffer): Call it.
11028
11029 * dispnew.c (clear_desired_matrices): Check that frame has
11030 a valid root window before clearing matrices in the window tree.
11031 (clear_current_matrices): Ditto.
11032 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
11033 vchild are valid windows if not nil.
11034
11035 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
11036 for :inverse-video.
11037 (Finternal_set_lisp_face_attribute): Ditto.
11038 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
11039 (Finternal_get_lisp_face_attribute): Ditto.
11040 (Finternal_lisp_face_attribute_values): Ditto.
11041 (syms_of_xfaces): Define the symbol `:reverse-video'.
11042
11043 * xdisp.c (get_glyph_property): Renamed from
11044 fill_iterator_from_glyph_property.
11045 (next_element_from_buffer): Handle case that no `glyph' property
11046 was found correctly.
11047 (display_line): Extend face to end of line only if we have faces.
11048
110491998-07-29 Gerd Moellmann <gerd@gnu.org>
11050
11051 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
11052 additional window argument.
11053
11054 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
11055 set_iterator_to_previous_visible_line_start.
11056 (reseat_at_next_visible_line_start): Likewise.
11057 (compute_stop_pos): Renamed from set_iterator_stop_pos.
11058 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
11059 (compute_face_in_buffer): Renamed from
11060 compute_face_at_iterator_position.
11061 (compute_face_in_string): Renamed from
11062 compute_face_at_iterator_string_position.
11063 (get_space_width): Renamed from get_iterator_space_width.
11064 (next_overlay_string): Renamed from
11065 set_iterator_to_next_overlay_string.
11066 (get_overlay_strings): Renamed from
11067 get_overlay_strings_at_iterator_position.
11068 (restore_overlay_strings): Renamed from
11069 setup_overlay_strings_from_glyph_pos.
11070 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11071 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11072 (init_to_row_start): Renamed from init_iterator_to_row_start.
11073 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11074
11075 * xterm.c: Merge with 20.2.97.
11076 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11077
11078 * dispextern.h (struct glyph): Replace text_pos position with
11079 simple charpos.
11080
11081 * xdisp.c (this_line_start_pos): Use struct text_pos.
11082 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11083 (enum move_it_result): Renamed from move_iterator_result.
11084 (string_pos_nchars_ahead): Compute text_pos in a string from a
11085 known text_pos plus a character delta.
11086 (string_pos): Compute text_pos in string from charpos.
11087 (c_string_pos): Likewise for a C string.
11088 (number_of_chars): Return number of characters in a possibly
11089 multi-byte C string.
11090 (check_it): Renamed from check_iterator. Check that charpos and
11091 bytepos are in sync.
11092 (push_it): Renamed from save_iterator_settings.
11093 (pop_it): Renamed from restore_iterator_settings.
11094 (move_it_.*): Renamed from move_iterator_.*.
11095 (charset_at_position): Take charpos/bytepos into account.
11096 (back_to_previous_line_start): Set iterator to previous line start.
11097 (forward_to_next_line_start): Set iterator to next line start.
427ec082 11098 (back_to_previous_visible_line_start): Renamed from
26901792
DL
11099 move_iterator_previous_visible_line_start.
11100 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11101 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11102 Handle charpos/bytepos.
11103 (compute_face_at_iterator_position): Handle charpos/bytepos.
11104 (compute_face_at_iterator_string_position): Likewise.
11105 (get_iterator_space_width): Likewise.
11106 (load_overlay_strings): Likewise.
11107 (get_overlay_strings_at_iterator_position): Likewise.
11108 (reseat_iterator): Take a text_pos position argument.
11109 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11110 bytepos.
11111 (init_iterator): Take additional bytepos parameter.
11112 (reseat_iterator_to_string): Handle charpos/bytepos.
11113 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11114 (next_element_from_string): Handle charpos/bytepos.
11115 (next_element_from_c_string): Likewise.
11116 (fill_iterator_from_glyph_property): Likewise.
11117 (next_element_from_buffer): Likewise.
11118 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11119 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11120 (move_it_to): Likewise.
11121 (move_it_vertically_backward): Likewise.
11122 (move_it_vertically): Likewise.
11123 (move_it_by_lines): Likewise.
11124 (hscroll_window_tree): Likewise.
11125 (redisplay_internal): Likewise.
11126 (set_cursor_from_row): Likewise.
11127 (redisplay_window): Likewise.
11128 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11129 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11130 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11131 (try_window_id): Handle charpos/bytepos.
11132 (Ftrace_redisplay_toggle): Return Qnil.
11133 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11134 (insert_left_trunc_glyphs): Likewise.
11135
11136 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11137 do a real merge).
11138 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11139 (increment_glyph_row_buffer_positions): Ditto.
11140 (copy_glyph_row_contents): Ditto.
11141 (check_matrix_invariants): Add additional checks for charpos/
11142 bytepos consistency.
11143 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11144 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11145 `direction-reversed' in #if 0.
11146
11147 * xterm.h: Merge with 20.2.97.
427ec082 11148
26901792
DL
11149 * frame.h: Merge with 20.2.97.
11150
11151 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11152
11153 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11154 start.
11155 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11156 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11157 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11158 (struct it): Various members renamed from .*pos to .*charpos.
11159 (IT_CHARPOS): Access current buffer character position of an
11160 iterator.
11161 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11162 (IT_STRING_CHARPOS): Access current string character position of
11163 an iterator.
11164 (IT_STRING_BYTEPOS): Access current string byte position of
11165 an iterator.
11166 (globally): Add function prototypes from 20.2.97.
11167
11168 * everywhere: Use P_ instead of PROTO for function prototypes
11169 because everyone else seems to use P_.
11170
11171 * dispextern.h (struct text_pos): Structure describing a charpos/
11172 bytepos position in text.
11173 (BYTEPOS): Access the byte position part of a text_pos.
11174 (CHARPOS): Likewise for the character position.
11175 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11176 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11177 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11178 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11179 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11180 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11181 for buffer and string positions.
11182 (struct glyph): Use text_pos.
11183 (struct it): Renamed from display_iterator. Use text_pos.
11184
111851998-07-23 Gerd Moellmann <gerd@gnu.org>
11186
11187 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11188 pixmap.
11189
111901998-07-21 Gerd Moellmann <gerd@gnu.org>
11191
11192 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11193 * xterm.c (x_draw_row_bitmaps): Use it.
11194 * dispnew.c (row_equal_p): Ditto.
11195 (update_window_line): Ditto.
11196
11197 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11198 flag of images.
11199
11200 * dispextern.h (struct image): Removed member loading_failed_p.
11201 It's probably better to have the chance to try to load an image
11202 again.
11203
112041998-07-20 Gerd Moellmann <gerd@gnu.org>
11205
11206 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11207 at ZV if `indicate-zv-lines' is non-nil.
11208 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11209
11210 * dispnew.c (row_equal_p): Compare displays_text_p and
11211 ends_at_zv_p flags of rows.
11212 (update_window_line): Ditto.
11213
11214 * buffer.h (struct buffer): New member indicate_zv_lines.
11215
11216 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11217 (init_buffer_once): New variable `default-indicate-zv-lines'.
11218 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11219
11220 * xdisp.c (redisplay_window): Don't try moving the cursor
11221 if current glyph row w->last_cursor.vpos isn't enabled.
11222
11223 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11224
11225 * window.c (Fset_window_vscroll): Allow only negative scroll
11226 values. Others don't seem to make sense, and this way it's easy
11227 to restore a vscroll of zero.
11228
11229 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11230 allocated.
11231 (x_draw_image_glyph_string_background): Don't clip if pixmap
11232 could not be created.
11233
11234 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11235 be created.
11236 (xbm_load): Ditto.
11237 (gs_load): Ditto.
11238
11239 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11240 glyphs into account.
11241
11242 * xfaces.c (realize_default_face): Don't set font family of
11243 the default face from the fontset alias name for `fontset-startup'.
11244
11245 * xfns.c (gs_load): Pass frame's pixel foreground and background
11246 color to the Lisp loader.
11247
112481998-07-19 Gerd Moellmann <gerd@gnu.org>
11249
11250 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11251 libtiff34.
11252
11253 * configure.in (--with-tiff, HAVE_TIFF): Added.
11254
11255 * config.in (HAVE_TIFF): Added.
11256
11257 * Makefile.in (LIBTIFF): Added.
11258
11259 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11260
11261 * Makefile.in (LIBJPEG): Added.
11262
11263 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11264 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11265 jpeglib.h.
11266
427ec082 11267 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11268 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11269 configure must be run with `--x-includes=/usr/X11R6/include:
11270 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11271
112721998-07-18 Gerd Moellmann <gerd@gnu.org>
11273
11274 * config.in (HAVE_JPEG): Added.
11275
11276 * xfns.c (ct_init): Initialize color table used to map RGB colors
11277 from images to X pixel colors.
11278 (ct_free): Free color table.
11279 (ct_lookup): Look an RGB color up.
11280 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11281 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11282 image specification.
11283 (pbm_scan_number): Scan a decimal ASCII number from a file.
11284 (pbm_load): Load a PPM image.
11285
11286 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11287 necessary. Take canonical character units as parameter.
11288 (Fwindow_vscroll): Return canonical character units.
11289
11290 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11291 w->dy to display height for which glyph rows must be allocated.
11292
112931998-07-17 Gerd Moellmann <gerd@gnu.org>
11294
11295 * xfaces.c (face_at_string_position): Merge in region face
11296 so that it won't overwrite the font in the region.
11297 (face_at_buffer_position): Ditto.
11298 (realize_basic_faces): Don't realize region face.
11299
11300 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11301
11302 * xterm.c (x_set_glyph_string_background_width): Don't let
11303 cursor face extend to end of line.
11304
11305 * xdisp.c (append_space): If adding space of default face,
11306 make sure glyph ist produced with right face.
11307
11308 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11309 background color of a glyph string.
11310 (x_draw_glyph_string_background): Call it.
11311 (x_draw_glyph_string_bg_rect): Ditto.
11312 (x_draw_stretch_glyph_string): Ditto.
11313
113141998-07-15 Gerd Moellmann <gerd@gnu.org>
11315
11316 * xdisp.c (init_iterator): Initialize it->current_y to the
11317 window's vscroll w->dy.
11318
11319 * window.c (Fwindow_vscroll): Return number of pixels window
11320 is vscrolled smoothly.
11321 (Fset_window_vscroll): Set the number.
11322
11323 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11324 to_pos in truncated part of a line.
11325
113261998-07-14 Gerd Moellmann <gerd@gnu.org>
11327
11328 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11329 doesn't fit on the line, truncate it, despite truncate_lines nil.
11330 (display_line): Ditto.
11331
11332 * xfns.c: Experimental support for Ghostscript images.
11333
11334 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11335 (XTread_socket): React on events from Ghostscript.
11336 (expose_frame): If width or height are zero, redraw entire frame.
11337 (XTread_socket): Call expose_frame after receiving event from
11338 Ghostscript.
11339
11340 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11341 for Ghostscript support.
11342
11343 * xdisp.c (redisplay_internal): Return quickly if called
11344 recursively.
11345
11346 * alloc.c (NSTATICS): Increased to 1024.
11347
113481998-07-08 Gerd Moellmann <gerd@gnu.org>
11349
11350 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11351 iterator's glyph row.
11352 (x_produce_stretch_glyph): Call it.
11353 (x_produce_glyphs): Handle `space-width' property; call
11354 x_append_stretch_glyph.
11355
11356 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11357 property.
11358 (get_iterator_space_width): Determine value of `space-width'
11359 property at iterator's position.
11360 (reseat_iterator): Call it.
11361 (next_element_from_string): Ditto.
11362 (next_element_from_buffer): Ditto.
11363 (init_iterator): Initialize space_width of iterator.
11364 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11365 moved, but cursor blinks.
11366 (redisplay_internal): Set w->last_cursor_off_p after update.
11367
11368 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11369 (struct display_iterator): Add new member space_width.
11370
11371 * window.h (struct window): Add last_cursor_off_p.
11372
113731998-07-07 Gerd Moellmann <gerd@gnu.org>
11374
11375 * Saved.
11376
11377 * window.c (Fpos_visible_in_window_p): Case window not up to
11378 date---return nil if iterator hasn't reached position.
11379
113801998-07-06 Gerd Moellmann <gerd@gnu.org>
11381
11382 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11383 overlays have changed.
11384 (redisplay_window): Case cursor movement. Don't try it if
11385 last_cursor.vpos is out of range.
11386
11387 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11388 way, the display optimization for the line containing the cursor
11389 is used more frequently, esp. when we have a blinking cursor.
11390 (display_line): Don't set this_line_.* variables.
11391
11392 * xterm.c (x_redraw_cursor): Removed.
11393 (x_display_and_set_cursor): Set cursor type depending on
11394 cursor_off_p flag of window.
11395
11396 * dispnew.c (redraw_cursor_hook): Removed.
11397 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11398 member of the selected window.
11399
11400 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11401
11402 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11403 Return glyph area under x/y.
11404 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11405
11406 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11407 after redisplaying.
11408
114091998-07-05 Gerd Moellmann <gerd@gnu.org>
11410
11411 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11412 are all outside of a line of text.
11413 (redisplay_internal): Use it.
11414
114151998-06-30 Gerd Moellmann <gerd@gnu.org>
11416
11417 * xdisp.c (next_element_from_buffer): After skipping over
11418 invisible text, look for the `glyph' property.
11419 (set_iterator_stop_pos): Ignore check positions in front
11420 of an iterator's current position.
11421
11422 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11423 anymore or which are marked as not having valid contents.
11424
11425 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11426 realized faces if new attribute value is equal to old value.
11427
114281998-06-29 Gerd Moellmann <gerd@gnu.org>
11429
11430 * xfaces.c (Finternal_make_lisp_face): Increment
11431 lface_id_to_name_size when lface_id_to_name is reallocated.
11432
114331998-06-27 Gerd Moellmann <gerd@gnu.org>
11434
11435 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11436 as minimum of endpos and overlay_pos.
11437 (load_overlay_strings): Set next_overlay_pos of iterator to
11438 -1 if we don't have to check for more overlay strings.
11439
114401998-05-09 Gerd Moellmann <gerd@gnu.org>
11441
11442 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11443 do anything if iterator is at ZV because scan_buffer doesn't
11444 work otherwise.
11445
11446 * xterm.c (x_encode_char): Inline it.
11447 (x_get_char_font_and_encoding): Simplified.
11448 (x_per_char_metric): Inline it.
11449
11450 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11451
11452 * xdisp.c (get_next_display_element): Check for end of relief
11453 face moved here from next_element_from_buffer.
11454
11455 * xterm.c (x_produce_image_glyph): Add relief thickness.
11456 (x_produce_stretch_glyph): Ditto.
11457
114581998-05-08 Gerd Moellmann <gerd@gnu.org>
11459
11460 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11461 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11462
11463 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11464 from a glyph property.
11465 (x_produce_glyphs): Use it.
11466
11467 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11468
427ec082 11469 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11470 in text area.
11471 (x_produce_glyphs): Ditto.
11472
427ec082 11473 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11474 marginal areas.
11475
427ec082 11476 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11477 background of an image glyph string.
427ec082 11478 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11479 the background of a glyph string.
11480 (x_draw_image_glyph_string_foreground): Draw the foreground of
11481 an image glyph string.
11482 (x_inverted_image_mask): Return the inverted mask of an image.
11483
11484 * xfns.c (x_draw_image): Removed.
11485
11486 * dispextern.h (struct image_type): Remove drawing function.
11487
11488 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11489
11490 * xdisp.c (get_next_display_element): In marginal areas, translate
11491 newlines, tabs, etc. like normal control characters.
11492
11493 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11494 and color.
11495 (free_realized_faces): Set frame garbaged.
11496
11497 * xfaces.c (syms_of_xfaces): Add defsubr for
11498 internal-lisp-face-attribute-values.
11499
115001998-05-07 Gerd Moellmann <gerd@gnu.org>
11501
11502 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11503 full.
11504 (x_produce_image_glyph): Set IT->nglyphs to 1.
11505 (x_draw_image_glyph_string): Use inverted mask to draw background.
11506
11507 * dispextern.h (struct image_type): Additional clipping rect
11508 parameters for drawing functions.
11509
427ec082 11510 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11511 a glyph string.
11512 (x_draw_image_glyph_string): Use it and pass the rect to the
11513 image drawing function.
11514
11515 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11516 first character with `glyph' property as image position. Set
11517 iterator back to that position as long as the image hasn't been
11518 consumed with set_iterator_to_next.
11519 (set_cursor_from_row): Accept when glyph with given position is
11520 not found in the row. Set cursor x to end of line in that case,
11521 so that we can hscroll.
11522 (redisplay_internal): Correct computation of delta by which
11523 positions have changed in redisplay optimization for cursor
11524 row of selected window.
11525
11526 * xdisp.c (display_line): Remove start_pos.
427ec082 11527 (display_line): Fix bug preventing display optimization for
26901792
DL
11528 cursor line of selected window.
11529 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11530 instead.
11531
11532 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11533 (update_text_area): Take glyph pixel width into account
11534 when trying to find a resync point.
11535 (row_equal_p): Compare glyphs in all areas.
11536
115371998-05-06 Gerd Moellmann <gerd@gnu.org>
11538
11539 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11540
11541 * dispextern.h (struct glyph_row): Use unsigned hash value.
11542
11543 * xdisp.c (display_line): Simplified and made faster by setting
11544 the cursor with set_cursor_from_row.
11545 (set_cursor_from_row): Handle rows of desired matrix.
11546
115471998-05-05 Gerd Moellmann <gerd@gnu.org>
11548
11549 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11550 with type != CHAR_GLYPH.
11551 (fill_iterator_from_glyph_property): Return void. Set
11552 method to next_element_from_image.
11553 (next_element_from_image): Dummy function for delivering a
11554 single image id.
11555 (set_iterator_to_next): Add method next_element_from_image.
11556 (redisplay_window): When recentering, and cursor vpos is -1
11557 after display, assume middle of window is in first line displayed
11558 in window, and display again.
427ec082 11559 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11560 the position of the first character having the glyph property.
11561
11562 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11563 * xfns.c (x_draw_image): Use it.
11564 * xterm.c (x_produce_image_glyph): Use it.
11565
11566 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11567
11568 * Makefile.in: Extraneous #define of LIBXPM removed.
11569
11570 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11571 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11572 stretch glyph.
11573 (x_compute_glyph_string_overhangs): Compute overhangs only
11574 for text glyph strings.
11575 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11576 (x_draw_glyph_string): Call it.
11577
11578 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11579 (struct glyph): Add sub-structure for stretchable glyphs.
11580 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11581
11582 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11583 #ifdef HAVE_FACES.
11584
11585 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11586
11587 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11588 setup_iterator_from_glyph_property. Don't do it for terminal
11589 frames.
11590
11591 * xterm.c (x_produce_image_glyph): Produce glyph for image
11592 that can't be loaded.
11593
11594 * xfns.c (lookup_image): If image can't be loaded, set its
11595 width and height so that we can draw a rectangle.
11596 (x_draw_image): Draw a rectangle for images that don't have
11597 a pixmap.
11598 (make_image): Set hash value.
11599 (image_spec_equal_p): Use image_spec_value.
11600
11601 * xterm.c (expose_frame): Don't try to redraw if basic faces
11602 haven't benn realized yet.
427ec082 11603 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11604 is not as tall as row.
11605
116061998-05-04 Gerd Moellmann <gerd@gnu.org>
11607
11608 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11609 (LIBX)[HAVE_X11]: Add LIBXPM.
11610
11611 * xfns.c (xpm_image_p): Implementation of image type functions
11612 for XPM.
11613 (xpm_load): Ditto.
11614
11615 * dispextern.h (struct image): Add mask pixmap for XPM.
11616
11617 * xfns.c (x_draw_image): Handle images with masks.
11618
11619 * configure.in: --with-xpm added. Code detecting -lXpm added.
11620
11621 * config.in: Add HAVE_XPM.
11622
11623 * xfns.c (xbm_draw): Removed.
11624 (x_draw_image): Default implementation for drawing images.
11625 (xbm_keyword_index): Remove XBM_DEPTH.
11626 (xbm_format): Remove `:depth'.
11627 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11628 (xbm_load_image_from_file): Added for the same reason.
26901792 11629
427ec082 11630 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11631 glyph string.
11632 (x_draw_image_glyph_string): Pass ybase to image draw function.
11633
11634 * xfns.c (make_image): Set default baseline.
11635
11636 * xterm.c (x_produce_image_glyph): Compute ascent of image
11637 from its height and baseline percentage.
11638
11639 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11640 (xbm_format): Add description for `:baseline'.
11641 (xbm_image_spec_from_file): Add keywords from original spec to
11642 result.
11643 (xbm_load): Set baseline of image.
11644 (xbm_image_p): Check range for baseline.
11645
11646 * dispextern.h (struct image): Add member baseline.
11647
11648 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11649
11650 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11651
11652 * xdisp.c (get_next_display_element): Do character translations
11653 only if delivering characters.
11654
116551998-05-03 Gerd Moellmann <gerd@gnu.org>
11656
427ec082 11657 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11658 DISP_CHARACTER.
11659
11660 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11661 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11662
116631998-05-02 Gerd Moellmann <gerd@gnu.org>
11664
11665 * xfns.c (prepare_image_for_display): Set image timestamp.
11666 (clear_image_cache): Clear images if image's timestamp +
11667 Vimage_eviction_seconds is > now.
11668 (syms_of_xfns): New variables image-eviction-seconds, and
11669 image-types.
11670 (add_image_format): Add to image-types.
11671 (xbm_load): Support new image spec format.
11672 (x_alloc_image_color): Allocate a color for an image.
11673
11674 * dispextern.h (struct image): Add timestamp.
11675
11676 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11677 vectors of bool-vectors.
11678 (xbm_lisp_object_from_file): Build new format image spec.
11679
116801998-05-01 Gerd Moellmann <gerd@gnu.org>
11681
11682 * xfaces.c (init_frame_faces): Initialize image cache.
11683 (free_frame_faces): Free it.
11684
11685 * xterm.c (x_delete_display): Don't free image cache.
11686
11687 * emacs.c (main): Call init_xfns.
11688
116891998-04-30 Gerd Moellmann <gerd@gnu.org>
11690
11691 * alloc.c (mark_object): Mark objects in image cache.
11692
427ec082 11693 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11694 widget_store_internal_border_width.
11695
11696 * widget.c (widget_store_internal_border): Return void.
11697
11698 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11699 void.
11700 (init_x_parm_symbols): Return void.
11701 (x_report_frame_params): Ditto.
11702 (x_set_border_pixel): Ditto.
11703 (syms_of_xfns): Ditto.
11704 (x_destroy_all_bitmaps): Use xfree instead of free.
11705
11706 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11707
11708 * xterm.c (x_term_init): Initialize image_cache of display info.
11709 (x_delete_display): Free image cache.
11710
11711 * xterm.h (struct x_display_info): Add image_cache.
11712
11713 * xfns.c (make_image_cache): Allocate a new image cache.
11714 (free_image_cache): Free an image cache.
11715 (make_image): Allocate an image.
11716 (free_image): Free an image.
11717
11718 * dispextern.h (struct image): Structure describing an image.
11719 (struct image_cache): Structure describing an image cache.
11720
117211998-04-29 Gerd Moellmann <gerd@gnu.org>
11722
11723 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11724 non-zero if iterator is filled with something to return.
11725 (next_element_from_buffer): Immediately return if
11726 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11727 (next_element_from_string): Likewise.
11728
11729 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11730
11731 * dispextern.h (struct glyph): Add pixmap_id.
11732 (display_element_type): Add DISP_PIXMAP.
11733
11734 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11735 malloc/free.
11736
11737 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11738 (clear_face_cache): Call it.
11739
11740 * xterm.c (x_query_font): Don't look at empty font table slots.
11741 (x_compute_min_glyph_bounds): Likewise.
11742 (x_term_init): Initialize font_table to null.
11743 (x_load_font): Change allocation of font_info structures so
11744 that it is possible to free fonts.
11745
427ec082 11746 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11747 Only free fonts from filled font table entries.
11748
11749 * xfaces.c (best_matching_font): Support use of scalable fonts.
11750 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11751
11752 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11753 and resy.
11754 * xterm.c (x_term_init): Compute resx and resy.
11755
11756 * xfaces.c (split_font_name): Don't reject scalable fonts.
11757
427ec082 11758 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11759 in #if 0.
11760
11761 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11762 point size cannot be determined.
11763
11764 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11765 width over all fonts on a frame.
11766 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11767 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11768 macros.
11769
11770 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11771 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11772 (x_load_font): Use x_compute_min_char_bounds.
11773
11774 * xterm.h (struct x_display_info): New members smallest_char_width
11775 and smallest_font_height.
11776
117771998-04-28 Gerd Moellmann <gerd@gnu.org>
11778
11779 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11780 the same name if GC of face is zero.
11781
11782 * dispextern.h (struct face): Member non_ascii_gc removed.
11783
11784 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11785 for characters < 0177 in default face. Prepare face for
26901792
DL
11786 display before returning it.
11787 (x_produce_glyphs): Use it->charset.
11788 (x_get_char_font_and_encoding): Simplified.
11789 (x_encode_char): Remove parameter `font'.
11790
11791 * xfaces.c (choose_face_font): If registry from charset symbol
11792 doesn't contain a `-', make it a pattern by appending "*-*".
11793
11794 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11795 glyph_check_pos computation to character boundary.
11796
117971998-04-27 Gerd Moellmann <gerd@gnu.org>
11798
11799 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11800
11801 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11802 ASCII face for a given Lisp face id.
11803
11804 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11805 account.
427ec082 11806 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11807 new position is < original position.
11808 (check_iterator_glyph_property): Handle glyph property in strings.
11809 (next_element_from_string): Call above function.
11810 (next_element_from_display_vector): Handle faces in glyphs.
11811 (get_next_display_element): Set face_id of glyphs for
11812 control chars to zero.
11813
11814 * Makefile.in (term.o): Add dependency on dispextern.h.
11815
11816 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11817 (display_line): Handle marginal areas.
11818 (move_iterator_in_display_line_to): Likewise.
11819
11820 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11821
11822 * xfaces.c (face_at_buffer_position): Don't merge with nil
11823 text property.
11824 (face_at_string_position): Ditto.
11825
11826 * dispextern.h (struct display_iterator): Use a stack of saved
11827 values instead of saving check positions etc. individually.
11828
11829 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11830 maybe pop the iterator's stack.
11831 (save_iterator_settings): Push a value on iterator's stack.
11832 (get_overlay_strings_at_iterator_position): Use it.
11833 (restore_iterator_settings): Pop the stack.
11834 (set_iterator_to_next_overlay_string): Use it.
11835
11836 * xfaces.c (try_font_list): Use alternative font families.
11837
118381998-04-26 Gerd Moellmann <gerd@gnu.org>
11839
11840 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11841 font selection matches fonts.
11842 (Fface_font_sort_order): Return the font sort order.
11843 (best_matching_font): Find best matching font based on sort order.
11844 (cmp_font_names): Sort by given sort order.
11845
11846 * dispextern.h (struct display_iterator): New member faces_p.
11847 * xdisp.c (init_iterator): Initialize it->faces_p.
11848 (compute_face_at_iterator_string_position): Use it.
11849 (compute_face_at_iterator_position): Use it.
11850 (init_iterator): Use it.
11851 (display_mode_line): Ditto.
11852
11853 * xdisp.c (get_next_display_element): Put code choosing a face
11854 when the charset changes in #ifdef HAVE_FACES.
11855
427ec082 11856 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11857 lookup_face_for_charset.
11858
11859 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11860 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11861
118621998-04-25 Gerd Moellmann <gerd@gnu.org>
11863
11864 * xfaces.c (best_matching_font): Return the name of the best
11865 matching font in an array of font_name structures.
11866 (choose_face_font): Use it.
11867 (choose_face_fontset_font): Use it.
11868 (find_best_weight_font): If final font found has same weight as
11869 the font we started with, return the original font because it is a
11870 better match for the resolution of the display.
11871 (find_best_slant_font): Likewise.
11872 (merge_face_vector_with_property): Check more invalid attribute
11873 values.
11874 (lface_suitable_for_charset_p): Replaced by a macro with the same
11875 name in upper-case.
11876
118771998-04-24 Gerd Moellmann <gerd@gnu.org>
11878
11879 * dispextern.h (struct face): Member
11880 fontset_chosen_for_realization_p removed.
11881
11882 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11883 end of the collision list, so that we find more specific faces
11884 first.
11885 (lookup_face_for_charset): Look up a new face if face->fontset >=
11886 0, and charset != CHARSET_COMPOSITION.
11887
11888 * xfaces.c (split_font_name): Return zero if point size of font
11889 couldn't be computed.
11890 (realize_default_face): Use ASCII font of a fontset to determine
11891 font-related attributes of the default face.
11892 (face_fontset): Return fontset id for face family.
11893 (font_list): Additional parameter font_pattern. If non-nil,
11894 return fonts matching that pattern.
11895
118961998-04-23 Gerd Moellmann <gerd@gnu.org>
11897
11898 * xfaces.c (choose_face_fontset): If new fontset cannot be
11899 constructed, or fontset name cannot be split, return the id of the
11900 standard fontset.
11901
11902 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11903 When Emacs starts, it may be called for the initial frame which
11904 isn't an X frame.
11905
11906 * dispextern.h (struct face): New members foreground_defaulted_p,
11907 background_defaulted_p.
11908 (struct face): Members `mask' and `cache' removed.
11909
11910 * xfaces.c (load_color): Set them.
11911 (free_face_colors): Check them.
427ec082 11912 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11913 font unknown.
11914
11915 * xfaces.c (free_font): Removed.
11916 (load_face_font_or_fontset): Renamed from load_font.
11917 (load_face_font_or_fontset): Use message2 instead of signalling.
11918 (load_color): Likewise.
11919 (load_pixmap): Likewise.
11920
11921 * xterm.h (struct x_display_info): Add screen_dpi.
11922 * xterm.c (x_term_init): Initialize it.
11923 * xfaces.c (xlfd_point_size): Use it.
11924 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11925 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11926 similar to that of the frame appear first in the result.
11927
11928 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11929 is set for the face to cache, add it to the end of the collision
11930 list.
11931 (try_font_list): If fonts for given family and registry cannot
11932 be found, first try to keep the registry, and choose a different
11933 family.
11934 (choose_face_font): Allow nfonts == 0.
11935 (try_font_list): Give up if no font matches given registry.
11936
119371998-04-22 Gerd Moellmann <gerd@gnu.org>
11938
11939 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11940 font info id of the face.
11941
11942 * xfaces.c (load_font): Set font_info_id.
11943 (realize_face): Ditto.
11944
11945 * dispextern.h (struct face): Change member font_info to
11946 font_info_id.
11947
11948 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11949 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11950
11951 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11952 isn't ASCII, get the ASCII face before adding a space.
11953 (append_space): Likewise.
11954 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11955 to -1 so that it will compute the right face for the truncation
11956 glyphs.
11957
11958 * xfaces.c (realize_face): Set
11959 face->fontset_chosen_for_realization_p.
11960 (lookup_face_for_charset): If fontset wasn't specified originally
11961 and new charset != CHARSET_COMPOSITION, get a new face for that
11962 charset.
11963
11964 * dispextern.h (struct face): New member
11965 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11966 realize_face has chosen a fontset to display composite characters
11967 for a Lisp face not specifying a fontset.
11968
11969 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11970 face and line already filled here. Don't do anything if current
11971 face hasn't a relief or has a background equal to the frame
11972 background.
11973
11974 * xfaces.c (split_font_name): Additional parameter numeric_p.
11975 Don't compute numeric values if it is non-zero.
11976 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11977 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11978 font whose name cannot be split into fields.
11979
119801998-04-21 Gerd Moellmann <gerd@gnu.org>
11981
427ec082 11982 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11983 possibly using less restrictive patterns.
11984 (choose_face_font): Use it.
11985
11986 * xterm.c (x_get_char_font_and_encoding): For charset !=
11987 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11988
11989 * dispextern.h (struct face): New member font_info.
11990
11991 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11992 specifying a fontset as well as those not having a fontset.
11993 (free_font): Make it empty.
11994 (realize_face): Use changed load_font.
11995
11996 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11997 fit for charset, get the right one.
11998
11999 * xfaces.c (load_font): Take frame and name parameter, return
12000 font.
12001 (free_font): Likewise.
12002 (split_font_name): Compute numeric values for height, swidth etc.
12003 (cmp_font_names): Use them.
12004 (find_best_width_font): Ditto.
12005 (find_best_height_font): Ditto.
12006 (find_best_weight_font): Ditto.
12007 (find_best_slant_font): Ditto.
12008 (lface_hash): Add weight, slant, swidth and relief to hash value.
12009 (lface_equal_p): Make it faster.
12010 (lface_from_symbol): Use assq_no_quit.
12011 (Fnote_default_face_changed): Removed.
12012 (cmp_font_names): Use strcmp instead of xstricmp.
12013 (face_charset_registries): Removed.
12014
120151998-04-20 Gerd Moellmann <gerd@gnu.org>
12016
12017 * frame.h (CHECK_FRAME): Give this macro a statement form.
12018 (CHECK_LIVE_FRAME): Ditto.
12019
12020 * xfaces.c (find_best_width_font): Find the best matching font
12021 for a given width.
12022 (find_best_height_font): Likewise for height.
12023 (find_best_weight_font): Likewise for weight.
12024 (find_best_slant_font): Likewise for slant.
12025 (choose_face_font): Use them.
12026 (get_lface_attributes): Always return frame-local face attrs.
427ec082 12027 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
12028 global face attributes.
12029
12030 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
12031 Lisp face attributes.
12032
120331998-04-19 Gerd Moellmann <gerd@gnu.org>
12034
12035 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
12036 and :italic for compatibility.
12037 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 12038 :bold and :italic. Handle boolean resource values for
26901792
DL
12039 :underline and :italic.
12040
12041 * xfns.c (display_x_get_resource): Make it externally visible.
12042
12043 * xfaces.c (lface_from_symbol): Take a frame as parameter.
12044 If that frame is non-null, return the frame-local face.
12045 (Finternal_make_lisp_face): Additional frame argument.
12046 (lface_attributes): Get face attributes from global and frame-local
12047 definitions.
12048 (Finternal_lisp_face_equal_p): Additional frame argument.
12049 (merge_lisp_face_vector_with_property): Ditto.
12050 (Frealize_basic_faces): Removed.
12051 (Finternal_get_lisp_face_attribute): Additional frame argument.
12052 (Finternal_lisp_face_p): Ditto.
12053 (load_color) [MSDOS]: Removed because it isn't clear how
12054 to do this for MS-DOS.
12055
12056 * xfaces.c (lface_from_symbol): Get global face definition
12057 from face-global-alist.
12058
12059 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
12060 as values for :underline and :inverse-video.
12061 (Finternal_set_lisp_face_attribute): Allow nil values.
12062
120631998-04-17 Gerd Moellmann <gerd@gnu.org>
12064
12065 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12066
12067 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12068 (Finternal_make_lisp_face): Add new face to Vall_faces.
12069
12070 * xdisp.c (echo_area_display): Remove code recomputing faces.
12071 (redisplay_internal): Ditto.
12072 (init_iterator): Do it here.
12073
12074 * xfaces.c (choose_face_font): Check that swidth doesn't change
12075 for subusequent attributes.
12076 (xlfd_point_size): Return int.
12077
12078 * xdisp.c (redisplay_internal, echo_area-display): If realized
12079 faces have been cleared, call recompute_basic_faces.
12080
12081 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12082 face_attributes_changed_p.
427ec082 12083 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
12084 all frames.
12085 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12086
12087 * xdisp.c (redisplay_internal): If face attributes have been
12088 changed since the last redisplay, recompute basic faces.
12089 (echo_area_display): Ditto.
12090
12091 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12092
12093 * xfaces.c (min_char_bounds): If face cache not yet present,
12094 don't try to get font dimensions from faces.
12095
12096 * xterm.c (x_frame_mode_line_height): If face cache not present
12097 set, return default height.
12098
12099 * alloc.c (mark_face_cache): Check for null faces. Correct
12100 index bug.
12101
12102 * dispextern.h (struct face): Renamed from struct rface. Member
12103 underline renamed underline_p. Make it a bit-field.
12104
12105 * xfaces.c (init_frame_faces): Allocate face cache.
12106 (free_frame_faces): Free face cache.
12107 (recompute_basic_faces): Realize basic faces only if face cache is
12108 allocated, i.e. after init_frame_faces has been called.
12109
12110 * frame.c (make_frame): Initialze face cache with null.
12111
12112 * xfaces.c (same_size_fonts): Removed.
12113
427ec082 12114 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
12115 s->gc != 0.
12116 (x_set_mouse_face_gc): Ditto.
12117 (x_set_mode_line_face_gc): Ditto.
12118
427ec082
SS
12119 * xfaces.c (realize_default_face): Return int. Value is
12120 zero if frame params don't contain enough information to
26901792
DL
12121 realize the default face.
12122 (realize_basic_faces): Ditto.
12123 (init_frame_faces): Realize basic faces.
12124
12125 * xfns.c (x_set_font): First store real font name in frame
12126 parameters, then call recompute_basic_faces.
12127
12128 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12129
121301998-04-16 Gerd Moellmann <gerd@gnu.org>
12131
12132 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12133
12134 * xfns.c (Fx_face_fixed_p): Removed.
12135 (Fx_list_fonts): Moved to xfaces.c.
12136
12137 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12138 face_at_buffer_position. Parameter charset removed; always
12139 compute face for CHARSET_ASCII.
12140 (face_at_string_position): Renamed from
12141 compute_face_at_string_pos. Parameter charset removed; always
12142 compute for CHARSET_ASCII.
427ec082 12143 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12144 face_cache.
12145 (lookup_face): Ditto.
12146 (compute_char_face): Renamed from compute_glyph_face.
12147
12148 * xdisp.c (init_iterator): Initialize charset member.
12149 (reseat_iterator_to_string): Ditto.
12150 (get_charset_at_buffer_position): Determine charset at
12151 buffer position in current_buffer.
12152 (reseat_iterator): Call above function.
12153 (compute_face_at_iterator_position): Call
12154 compute_face_at_buffer_pos.
12155 (compute_face_at_iterator_string_position): Call
12156 compute_face_at_string_pos.
12157 (get_face_from_id): Removed.
12158 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12159 Call get_charset_at_buffer_position.
12160 (reseat_iterator): Determine face if charset at pos differs
12161 from iterator's charset.
12162 (reseat_iterator_to_glyph_pos): Removed.
12163
12164 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12165 Determine charset from buffer position.
12166 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12167 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12168
12169 * dispextern.h (struct display_iterator): Add member charset.
12170
121711998-04-15 Gerd Moellmann <gerd@gnu.org>
12172
12173 * xfaces.c (compute_char_face): Removed.
12174
12175 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12176 with new parameter list.
12177
12178 * xfaces.c (region_face): Removed.
12179 (allocate_face): Removed.
12180 (copy_face): Ditto.
12181 (face_eql): Removed.
12182 (intern_face): Removed.
12183 (clear_face_cache): Removed.
12184 (load_font): Ditto.
12185 (unload_font): Ditto.
12186 (load_color): Ditto.
12187 (unload_color): Ditto.
12188 (new_computed_face): Ditto.
12189 (intern_computed_face): Ditto.
12190 (ensure_face_ready): Ditto.
12191 (merge_faces): Ditto.
12192 (compute_base_face): Ditto.
12193 (merge_face_list): Ditto.
12194 (Fmake_face_internal): Removed.
12195 (Fset_face_attribute_internal): Ditto.
12196 (face_name_id_number): Removed.
12197 (Fframe_face_alist): Ditto.
12198 (Fset_frame_face_alist): Ditto.
12199 (Finternal_next_face_id): Ditto.
12200
12201 * xterm.h (struct x_output): Remove computed_faces, and
12202 param_faces. Remove macros accessing them.
12203
12204 * xfaces.c: Entirely new face implementation added.
12205
122061998-04-11 Gerd Moellmann <gerd@gnu.org>
12207
12208 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12209 `charpos'.
12210
122111998-04-10 Gerd Moellmann <gerd@gnu.org>
12212
12213 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12214 scroll bar window to reduce flickering. Clear entire height.
12215
12216 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12217 current_x and hpos to zero after moving to previous line
12218 start.
12219
122201998-04-03 Gerd Moellmann <gerd@gnu.org>
12221
12222 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12223
12224 * xfaces.c (xlfd_point_size): Compute relative point size of
12225 fonts from font and frame resolution.
12226 (sort_fonts): New function to sort fonts, temporarily setting
12227 font_frame to the frame in effect.
12228 (xlfd_point_size): Take additional frame parameter to be able
12229 to get at the display's resolution.
12230
12231 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12232 BLACK_PIX_DEFAULT.
12233 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12234 screen of display.
12235
122361998-03-31 Gerd Moellmann <gerd@gnu.org>
12237
12238 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12239
12240 * fontset.h: Add external declarations for Vfontset_alias_alist
12241 and Vglobal_fontset_alist.
12242
12243 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12244 (realize_default_face): If frame parameters contain an artificial
12245 font name naming a fontset, set the family of the default face to
12246 the fontset name given by the registry.
12247
12248 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12249
122501998-03-22 Gerd Moellmann <gerd@gnu.org>
12251
12252 * alloc.c (mark_object): Add function prototype. Add cast to
12253 Lisp_Object pointer in call to mark_object for symbol names
12254 because this otherwise gives a warning from gcc 2.8.1.
12255 (mark_face_cache): Mark Lisp objects in realized faces.
12256
122571998-03-19 Gerd Moellmann <gerd@gnu.org>
12258
12259 * frame.h (struct frame): Add member face_cache.
12260
12261 * alloc.c (mark_object): Mark face cache.
12262 (mark_face_cache): Mark Lisp faces in face cache of frame.
12263
12264 * frame.c (make_frame): Initialize face_cache.
12265 (Fdelete_frame): Free it.
12266
122671998-03-18 Gerd Moellmann <gerd@gnu.org>
12268
12269 * xfaces.c: Very first skeleton of functions for face realization,
12270 face merging, face cache etc.
12271
12272 * dispextern.h (struct rface): Realized faces. Will replace
12273 struct face when tested.
12274 (struct face_cache): Realized face caches.
12275
12276 * xdisp.c (init_iterator): Initialize area member of display
12277 iterator.
12278
122791998-03-17 Gerd Moellmann <gerd@gnu.org>
12280
12281 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12282
12283 * dispextern.h (struct display_iterator): New member area.
12284
12285 * xterm.c (note_overwritten_text_cursor): Note when the text
12286 cursor of a window is overwritten.
12287
12288 * xdisp.c (set_cursor_from_row): If PT is not found in the
12289 row, display the cursor at the start of the row.
12290
12291 * dispnew.c (direct_output_forward_char): Call
12292 set_cursor_from_row.
12293
12294 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12295 position is not in an overlay string, set iterator's position and
12296 method explicitly so.
427ec082 12297 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12298 Make it externally visible.
12299 (redisplay_window): Call set_cursor_from_row so that there is only
12300 one place where the cursor position is calculated from a current
12301 row.
12302
12303 * dispextern.h (struct display_iterator): New member
12304 overlay_strings_at_end_processed_p.
12305
12306 * xdisp.c (check_iterator): Perform sanity checks on
12307 display_iterators.
12308 (next_element_from_buffer): Check for overlay strings at ZV.
12309
123101998-03-16 Gerd Moellmann <gerd@gnu.org>
12311
12312 * buffer.c (init_buffer_once): Add left_margin_width and
12313 right_margin_width to buffer_local_flags.
12314
12315 * dispnew.c (margin_glyphs_to_reserve): Function computing
12316 number of glyphs to reserve for a marginal area.
12317 (adjust_glyph_matrix): Call it.
12318 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12319 is not alive.
12320
12321 * window.c (Fset_window_margins): Allow floats.
12322
12323 * buffer.c (syms_of_buffer): Add buffer-local variables
12324 left-margin-width and right-margin-width. Add defaults
12325 default-left-margin-width and default-right-margin-width.
12326
12327 * buffer.h (struct buffer): New members left_margin_width
12328 and right_margin_width.
12329
12330 * window.c (Fset_window_margins): Make window the last and
12331 optional argument.
12332
12333 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12334 flag no_marginal_areas_p differently.
12335 (x_clear_end_of_line): Ditto.
12336 (x_draw_glyph_string_relief): Compute width of relief differently
12337 for rows with flag no_marginal_areas_p.
12338
12339 * dispnew.c (update_window_line): Update marginal areas only
12340 for rows that don't have no_marginal_areas_p set.
12341
12342 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12343 (display_menu_bar): Ditto.
12344
12345 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12346
12347 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12348 marginal areas in window-based redisplay.
12349
12350 * dispextern.h (struct glyph_matrix): New members
12351 left_margin_glyphs and right_margin_glyphs.
12352
123531998-03-15 Gerd Moellmann <gerd@gnu.org>
12354
12355 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12356
12357 * charset.c (non_ascii_char_to_string): Use char type parameters
12358 because the function is used that way from outside. Use unsigned
12359 char internally.
12360
12361 * window.c (change_window_height): Return void.
12362 (make_dummy_parent): Return void.
12363 (init_window_once): Return void.
12364 (syms_of_window): Ditto.
12365 (keys_of_window): Ditto.
12366 (delete_window): Correct return with and without value.
12367
12368 * buffer.c (record_buffer): Return void.
12369
12370 * marker.c (unchain_marker): Return void.
12371
12372 * window.c (unshow_buffer): Return void.
12373 (replace_window): Ditto.
12374 (delete_window): Ditto.
12375
12376 * term.c (delete_glyphs_hook): Void return type.
12377 (ring_bell_hook): Ditto.
12378 (set_terminal_window_hook): Ditto.
12379
12380 * sysdep.c (init_sigio): Return void.
12381
12382 * xterm.c (x_set_window_size): Return void.
12383 (x_calc_absolute_position): Ditto.
12384 (x_set_offset): Ditto.
12385 (x_focus_on_frame): Ditto.
12386 (x_unfocus_frame): Ditto.
12387 (x_make_frame_visible): Ditto.
12388 (x_make_frame_invisible): Ditto.
12389 (x_iconify_frame): Ditto.
12390 (x_destroy_window): Ditto.
12391 (x_wm_set_window_state): Ditto.
12392 (x_wm_set_icon_pixmap): Ditto.
12393 (x_wm_set_icon_position): Ditto.
12394 (x_initialize): Ditto.
12395 (x_error_quitter): Ditto.
12396 (x_destroy_window): Use xfree instead of free.
12397
12398 * keyboard.c (clear_waiting_for_input): Return void.
12399
12400 * xterm.c (x_wm_set_size_hint): Return void.
12401 (x_raise_frame): Ditto.
12402 (refreshicon): Ditto.
12403 (x_error_catcher): Ditto.
12404 (x_clear_errors): Ditto.
12405
12406 * keyboard.c (record_asynch_buffer_change): Return void.
12407
bb6677a8
GM
12408 The first line of the following paragraph was garbled for an
12409 unknown reason. It couldn't be fully reconstructed.
12410
12411 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12412 (x_lower_frame): Ditto.
12413 (x_scroll_bar_clear): Ditto.
12414 (XTflash): Add default case in switch for -Wall.
12415 (construct_mouse_click): Return Qnil.
12416 (cancel_mouse_face): Return void.
12417 (x_queue_event): Use xmalloc instead of malloc.
12418 (x_unqueue_events): Use xfree instead of free.
12419
12420 * ccl.c (ccl_driver): Return int.
12421
12422 * keyboard.c (stop_polling): Return void.
12423 (start_polling): Ditto.
12424
12425 * term.c (keys): Add braces in initializer list for -Wall.
12426
12427 * sysdep.c (tabs_safe_p): Return int.
12428 (init_baud_rate): Return void.
12429
12430 * xterm.c (x_draw_bitmap): Add default case.
12431 (x_setup_relief_colors): Use DefaultScreen instead of
12432 DefaultScreenOfDisplay.
12433 (x_delete_glyphs): Return void.
12434 (construct_menu_click): Put in #if 0 because it isn't called.
12435
12436 * xdisp.c (load_overlay_strings): Remove extraneous argument
12437 in call to qsort.
12438 (get_overlay_arrow_glyph_row): Add missing return value.
12439
12440 * window.c (set_window_height): Return void.
12441 (set_window_width): Ditto.
12442
12443 * sysdep.c (request_sigio): Return void.
12444 (unrequest_sigio): Ditto.
12445 (get_frame_size): Ditto.
12446
12447 * scroll.c (scroll_cost): Return int.
12448 (do_line_insertion_deletion_costs): Return void.
12449
12450 * frame.c (Fdelete_frame): Use xfree instead of free.
12451
12452 * fileio.c (report_file_error): Return void.
12453
12454 * dispnew.c: Make compilable with -Wall.
12455 * term.c: Ditto.
12456
12457 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12458
124591998-03-14 Gerd Moellmann <gerd@gnu.org>
12460
12461 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12462 increased.
12463 (x_setup_relief_color): Free color only for appropriate visual
12464 classes.
12465
12466 * xterm.c (expose_window): Fix calculation of intersection of mode
12467 line rectangle with exposed rectangle.
12468
12469 * xdisp.c (redisplay_window): Don't do cursor movement based
12470 on current matrix if w->last_point is not valid.
12471
124721998-03-09 Gerd Moellmann <gerd@gnu.org>
12473
12474 * xterm.c (expose_line): Redraw mode line and menu lines
12475 differently because they reach into the scroll bar area.
12476
12477 * xdisp.c (redisplay_window): If redisplaying with same window
12478 start, don't accept cursor on partially visible line.
12479
124801998-03-08 Gerd Moellmann <gerd@gnu.org>
12481
12482 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12483 for wider mode lines.
12484 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12485
12486 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12487 scroll bar width for mode lines.
12488
12489 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12490 vertical scroll bar width in width calculation so that we can
12491 display mode lines wider.
12492
12493 * xdisp.c (redisplay_window): Restore buffers before returning
12494 when fonts have changed.
12495
12496 * dispnew.c (update_window): Mark invisible rows in the current
12497 matrix invalid.
12498
12499 * xdisp.c (try_window_id): Force update of first row displayed
12500 at window end.
12501 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12502
125031998-03-05 Gerd Moellmann <gerd@gnu.org>
12504
12505 * dispextern.h (struct glyph_row): Member max_ascent renamed
12506 ascent. Member max_descent replaced by height.
12507 (struct display_iterator): Member max_descent replaced by height.
12508 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12509
12510 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12511 class makes it unnecessary or dangerous.
12512
12513 * xdisp.c (redisplay_window): Case only point has changed, and
12514 point has moved forward. Move forward over overlay strings.
12515 (display_line): Don't set cursor if first glyph from PT is part of
12516 a continuation line.
12517
125181998-02-21 Gerd Moellmann <gerd@gnu.org>
12519
12520 * xdisp.c (start_display): When computing continuation lines
12521 width, add current_x to the continuation lines width because
12522 move_iterator_to will stop in front of the buffer position moved
12523 to.
12524
125251998-02-20 Gerd Moellmann <gerd@gnu.org>
12526
12527 * xdisp.c (redisplay_window): Don't try try_window_id if
12528 windows_or_buffers_changed.
12529
12530 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12531 determine a color.
12532 (x_setup_relief_color): Allocate/ change one relief.
12533 (x_setup_relief_colors): Call above function.
12534
12535 * xterm.h (struct relief): New structure type holding relief info:
12536 GCs, colors, and whether colors are allocated.
12537
427ec082 12538 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12539 produces the same color, try adding a delta to RGB values.
12540 (x_setup_relief_colors): Free color cells.
12541
427ec082 12542 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12543 black_relief_pixel holding the foreground colors allocated for
12544 relief GCs. New members white_allocated_p, black_allocated_p.
12545
12546 * xterm.c (x_scroll_run): Don't set updated_window to null.
12547 This resets updated_window when called from scrolling_window.
12548
12549 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12550
26901792
DL
12551 * xterm.c (x_scroll_run): Additional window parameter. Set
12552 and reset updated_window.
12553
12554 * dispnew.c (line_dance_hook): Additional window parameter.
12555
12556 * xdisp.c (try_window_reusing_current_matrix): Don't call
12557 update_window_begin/end here. The end function would display the
12558 cursor on a wrong position and the additional functionality of
12559 update_window_begin is not needed anyway. Just set
12560 updated_window.
12561 (try_window_id): Ditto.
12562
12563 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12564 Don't redraw cursor during redisplay.
12565
12566 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12567
12568 * xdisp.c (redisplay_window): For window-based redisplay, alway
12569 try try_window_id.
12570
12571 * xterm.c (struct glyph_string): New member two_byte_p that is
12572 non-zero if 16-bit drawing functions must be used.
12573 (x_fill_composite_glyph_string): Set it.
12574 (x_fill_glyph_string): Set it.
12575 (x_draw_glyph_string_foreground): Use it.
12576 (x_draw_vertical_border): Make line 1 pixel less tall.
12577 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12578 side by 1 pixel if window is not right-most hasn't vertical scroll
12579 bars.
12580 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12581 out of bounds.
12582 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12583 hl == DRAW_CURSOR.
12584
12585 * xdisp.c (start_display): Check that window start is at line
12586 start if GLYPH_DEBUG != 0.
12587
12588 * window.c (window_scroll_pixel_based): Move assertion to
12589 start_display.
12590
125911998-02-19 Gerd Moellmann <gerd@gnu.org>
12592
427ec082 12593 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
12594 frame hasn't the focus.
12595
12596 * window.c (make_window): Initialize dy.
12597 (replace_window): Ditto.
12598
12599 * window.h (window): New member dy specifying the amount by which
12600 a window is scrolled "smoothly".
12601
12602 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 12603 y-position because it can be negative.
26901792
DL
12604 (x_draw_row_bitmaps): Don't clear with negative y-position like
12605 above.
12606 (x_clear_end_of_line): Same theme as above.
12607
12608 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
12609 exact match exists, the nearest existing color. Patterned after
12610 defined_color.
12611 (x_alloc_lighter_color): Allocate a color that is lighter or
12612 darker than a given color by a specified factor.
427ec082 12613 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
12614 the background color of a glyph string face.
12615 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
12616
12617 * xfns.c (x_make_gc): Don't allocate relief GCs.
12618 * widget.c (create_frame_gcs): Don't allocate relief GCs.
12619 (setup_frame_gcs): Don't change relief GCs.
12620
12621 * xterm.h (struct x_output): New member relief_background giving
12622 the background pixel color for which relief GCs can be used.
12623 Set by x_setup_relief_colors.
12624
12625 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
12626 for mode and menu lines.
12627
12628 * xdisp.c (set_next_iterator_stop_pos): No longer static.
12629
12630 * dispnew.c (direct_output_for_insert): Call
12631 set_next_iterator_stop_pos after having changed it2.endpos.
12632
126331998-02-17 Gerd Moellmann <gerd@gnu.org>
12634
12635 * dispnew.c (update_window): Work on selected_window, only.
12636
12637 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
12638 hpos is >= number of glyphs in the cursor row.
12639
12640 * xdisp.c (try_window_id): Bug fix; update_window_end was not
12641 called.
12642
126431998-02-16 Gerd Moellmann <gerd@gnu.org>
12644
12645 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
12646 and menu lines.
12647
12648 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
12649 enough glyphs to display a mode line or menu line which draws over
12650 flags areas.
12651
12652 * xterm.c (XTset_vertical_scroll_bar): Use
12653 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
12654 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 12655 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
12656 or menu.
12657 (x_set_glyph_string_clipping): Set clipping differently if drawing
12658 a mode line or menu line.
12659
12660 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
12661
12662 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
12663 menu lines.
12664 (x_scroll_bar_create): Don't clear flags areas.
12665 (x_draw_row_bitmaps): Clear visible row height, only.
12666
12667 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
12668
126691998-02-15 Gerd Moellmann <gerd@gnu.org>
12670
12671 * dispnew.c (direct_output_for_insert): When checking for tabs in
12672 the line, set it2.endpos to ZV.
427ec082 12673
26901792
DL
12674 * window.h (struct window): New member cursor_off_p.
12675 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
12676 for X.
12677 * dispnew.c (redraw_cursor_hook): If non-null, function that can
12678 be called to display or erase the cursor.
12679 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
12680 or selected_window.
12681
12682 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
12683
12684 * dispnew.c (update_window_line): Special handling of inverse
12685 lines in #if 0 removed.
12686
12687 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
12688 (x_insert_glyphs): Renamed from XTinsert_glyphs.
12689 (x_clear_frame): Renamed from XTclear_frame.
12690 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
12691 (x_ins_del_lines): Renamed from XTins_del_lines.
12692 (x_change_line_height): Renamed from XTchange_line_height.
12693 (x_delete_glyphs): Renamed from XTdelete_glyphs.
12694 (x_clear_cursor): Renamed from clear_cursor.
12695 (x_update_begin): Renamed from XTupdate_begin.
12696 (x_update_end): Renamed from XTupdate_end.
12697 (x_update_window_begin): Renamed from XTupdate_window_begin.
12698 (x_update_window_end): Renamed from XTupdate_window_end.
12699 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
12700 (x_produce_glyphs): Renamed from XTproduce_glyphs.
12701 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
12702 (x_produce_special_glyphs): Implementation in #if 0 removed.
12703
12704 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
12705 flag in the dump.
12706
12707 * dispnew.c (update_text_area): Handling of glyphs with pixel
12708 width zero removed. Decrement desired stop pos if desired row
12709 fills its line.
12710
12711 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
12712 width zero removed.
12713 (BUILD_GLYPH_STRINGS): Set glyph string flag
12714 extends_to_end_of_line_p based on row's flag fill_line_p and face
12715 background and stipple. Make sure it works for composite characters.
12716
12717 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
12718 fill_line_p. For window-based redisplay, add a space only if
12719 the row is empty so that we know the face to draw.
12720
12721 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
12722 means draw the face of the last glyph in the text area to the
12723 right end of the text area.
12724
12725 * xdisp.c (init_iterator): Show region in window mini-buffer
12726 window refers to.
12727
427ec082 12728 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
12729 region_showing_p removed. Test for region_beg > 0 instead.
12730
12731 * dispnew.c (update_text_area): Clear to end of line if cursor is
12732 beyond the end of the desired line. Necessary because we don't
12733 have a phys_cursor_glyph with which to erase the cursor. We don't
12734 have one because this method of drawing a cursor doesn't work with
12735 lbearing/rbearing.
12736
12737 * xterm.c (XTinsert_glyphs): Block input.
12738
127391998-02-14 Gerd Moellmann <gerd@gnu.org>
12740
12741 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
12742 glyph strings.
12743 (x_draw_glyph_string_background): Fill background with background
12744 pixel for the first glyph of a composite character.
12745
12746 * xdisp.c (try_window): Change return type to int. Value is zero
12747 if fonts were loaded during redisplay.
12748 (redisplay_window): Return if fonts have been loaded during
12749 redisplay.
12750 (append_space): New parameter default_face_p.
12751
127521998-02-13 Gerd Moellmann <gerd@gnu.org>
12753
12754 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
12755 don't let a partially visible line in a current matrix stay
12756 enabled.
12757
127581998-02-09 Gerd Moellmann <gerd@gnu.org>
12759
12760 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
12761 in #if PROMPT_IN_BUFFER.
12762
12763 * xdisp.c (display_line): If row ends in ZV, make the space
12764 that is added to place the cursor on it appear in default face.
12765
427ec082 12766 * xterm.c (expose_area): New function redrawing a single
26901792
DL
12767 glyph row area.
12768 (expose_line): Use it to redraw all areas of a row.
12769
12770 * dispextern.h (move_operation_enum): New enum
12771 move_operation_enum.
12772
12773 * window.c (window_scroll_pixel_based): Remove now unnecessary
12774 code that made sure that it->current_y doesn't become negative.
12775
12776 * xdisp.c (move_iterator_in_display_line_to): New parameter
12777 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
12778 (move_iterator_to): Ditto.
12779
12780 * dispextern.h (struct glyph_matrix): New member window_width.
12781
12782 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
12783 case of changing window height.
12784
12785 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 12786 border to the left.
26901792
DL
12787
12788 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
12789 says this aspect of Emacs is currently redesigned.
12790
12791 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
12792 have to draw a vertical border.
12793
12794 * window.c (window_scroll_pixel_based): When scrolling down by
12795 screen-fulls, make sure it.current_y doesn't get negative because
12796 this would confuse move_iterator_vertically.
12797
12798 * xdisp.c (move_iterator_vertically_backward): Bug fix for
12799 the case continuation lines are involved.
12800 (try_window_id): Don't set the cursor into scroll margins.
12801
128021998-02-08 Gerd Moellmann <gerd@gnu.org>
12803
12804 * xterm.c (x_append_glyph): Don't compute left_overhang and
12805 right_overhang.
12806 (XTproduce_glyphs): left_overhang and right_overhang removed.
12807 Set it->glyph_row->contains_overlapping_glyphs_p.
12808
12809 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
12810 and right_overhang removed.
12811
12812 * dispextern.h (struct glyph_row): New member
12813 contains_overlapping_glyphs_p used to optimize glyph drawing.
12814 (struct display_iterator): left_overhang and right_overhang
12815 removed.
12816 (struct glyph): Ditto.
12817
12818 * xterm.c (x_draw_relief): Removed.
12819 (x_draw_bitmap): Renamed from draw_bitmap.
12820 (x_draw_glyphs): Completely new implementation of draw_glyphs
12821 capable of handling arbitrary lbearing and rbearing values.
12822 Several sub-functions not mentioned here.
12823
128241998-01-30 Gerd Moellmann <gerd@gnu.org>
12825
12826 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 12827 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
12828 other cases.
12829 (draw_glyphs): Move start to the left and end to the right if they
427ec082 12830 overlap with previous or following characters.
26901792 12831 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 12832 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
12833 character under the cursor would be invisible.
12834 (x_draw_bar_cursor): Don't draw over previous character if it
12835 has right_overhang.
12836
12837 * window.c (get_phys_cursor_glyph): Return the glyph under a
12838 window's physical cursor.
427ec082 12839
26901792
DL
12840 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
12841 (x_draw_bar_cursor): Ditto.
12842 (x_erase_phys_cursor): Ditto.
12843 (x_phys_cursor_in_rect_p): Ditto.
12844 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
12845
12846 * window.c (make_window): Remove reference to phys_cursor_glyph.
12847 (replace_window): Ditto.
12848
12849 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 12850 now always a glyph present for placing the cursor on it in
26901792
DL
12851 each glyph row, even at the end of a line.
12852
12853 * xdisp.c (append_space): Function to add a space to an iterators
12854 glyph row.
12855 (display_line): Add spaces at the end of lines that are used to
12856 place the cursor on them.
12857 (compute_line_metrics): If row consists of a space only that was
427ec082 12858 added to place the cursor on it, use that space's height as the
26901792
DL
12859 line height.
12860
128611998-01-29 Gerd Moellmann <gerd@gnu.org>
12862
12863 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
12864 glyphs.
12865
128661998-01-28 Gerd Moellmann <gerd@gnu.org>
12867
12868 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
12869 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
12870
12871 * dispextern.h (struct glyph): Add left_overhang and
427ec082 12872 right_overhang.
26901792
DL
12873 (struct display_iterator): Ditto.
12874
12875 * dispnew.c (direct_output_for_insert): Give up if newly inserted
12876 glyphs have different ascent or descent than original row.
12877
12878 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
12879 row->max_descent only if unknown.
12880 (display_line): Compute row->max_ascent and row->max_descent.
12881 (display_string): Ditto.
12882
12883 * window.h (struct window): New members phys_cursor_ascent and
427ec082 12884 phys_cursor_descent.
26901792
DL
12885
12886 * xterm.c (x_phys_cursor_in_rect_p): Use them.
12887 (x_draw_hollow_cursor): Ditto.
12888 (x_erase_phys_cursor): Ditto.
12889 (x_display_and_set_cursor): Set them.
12890 (x_append_glyph): Don't set glyph members that were removed.
12891
12892 * dispextern.h (struct glyph): Members ascent, descent,
12893 contributes_to_line_height_p removed.
12894
128951998-01-25 Gerd Moellmann <gerd@gnu.org>
12896
12897 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
12898 names for face ids of frame default face and mode line face.
12899
12900 * xdisp.c (compute_face_at_iterator_string_position): If
12901 displaying a mode line use MODE_LINE_FACE_ID instead of
12902 DEFAULT_FACE_ID.
12903
12904 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
12905 (display_string): Ditto, additional parameter lisp_string.
12906 (display_line): Call display_string with Lisp mini-buffer prompt
12907 string.
12908 (display_menu_bar): Call display_string with Lisp string.
12909 (display_mode_element): Ditto.
12910 (next_element_from_string): Make it work for non-overlay Lisp
12911 strings with field width and precision.
12912
12913 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
12914 PROMPT_IN_BUFFER.
12915
12916 * xfaces.c (compute_string_char_face): Fix face computation
12917 for overlay strings.
12918
12919 * xdisp.c (struct overlay_entry): Add member after_string_p.
12920 (load_overlay_strings): Simplify.
12921
12922 * window.c (delete_window): Defer glyph matrix adjustment.
12923 (Fsplit_window): Ditto.
12924 (change_window_height): Ditto.
12925 (Fset_window_configuration): Ditto.
12926 (Fset_window_margins): Ditto.
12927 * frame.c (set_menu_bar_lines): Ditto.
12928 (Fmake_terminal_frame): Ditto.
12929 * dispnew.c (change_frame_size_1): Ditto.
12930
129311998-01-24 Gerd Moellmann <gerd@gnu.org>
12932
12933 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
12934
427ec082 12935 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
12936 position has overlay strings.
12937
12938 * xdisp.c (display_line): Don't set cursor if row ends in middle
12939 of overlay string.
12940 (Fdump_redisplay_state): Print complete row start and end
12941 position.
12942 (redisplay_window): Cursor movement when matrix hasn't changed---
12943 if PT < last_point, maybe move forward if row ends at PT and
12944 in middle of char.
12945
12946 * minibuf.c (read_minibuf): Save the value of
12947 minibuffer_prompt_length in minibuf_save_list.
12948 (read_minibuf_unwind): Restore minibuffer_prompt_length.
12949
12950 * xdisp.c (redisplay_window): Add assertion for cursor movement
12951 case, PT < last_point.
12952 (move_iterator_in_display_line_to): If to_pos specified, move
12953 over before-strings.
12954
12955 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
12956 start.string_index > 0.
12957
12958 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
12959 is set. Retry redisplay if fonts_changed_p is set before update.
12960
12961 * xterm.c (x_load_font): Set fonts_changed_p.
12962
12963 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
12964
12965 * dispnew.c (adjust_glyphs_for_font_change): Removed.
12966
12967 * xdisp.c (try_window): Check fonts_changed_p.
12968 (try_window_reusing_current_matrix): Ditto.
12969 (try_window_id): Ditto.
12970
12971 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
12972 (fonts_changed_p): Flag indicating a font change since the last
12973 glyph matrix adjustment.
12974
12975 * xterm.c (x_per_char_metric): Use font->max_bounds as
12976 char metric of the font's default char if the default char
12977 hasn't per char metric itself.
12978
12979 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
12980 for font change.
12981 (min_char_bounds): Check face->font != NULL.
427ec082 12982 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
12983 case of invalid min_bounds contents.
12984 (min_char_bounds): Call font_min_bounds.
12985
129861998-01-22 Gerd Moellmann <gerd@gnu.org>
12987
12988 * xdisp.c (start_display): Don't set it->prompt_width if
12989 PROMPT_IN_BUFFER.
12990 (move_iterator_in_display_line_to): Ditto.
12991 (display_line): Don't display prompt via display_string if
12992 PROMPT_IN_BUFFER.
12993
12994 * minibuf.c (Fminibuffer_prompt_width): Return value from
12995 current_buffer if PROMPT_IN_BUFFER.
427ec082 12996 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
12997 mini-buffer and make it read-only.
12998 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
12999 minibuffer_prompt_length instead of BEGV.
13000 (Fminibuffer_complete_word): Ditto.
13001 (Fminibuffer_complete_word): Ditto.
13002
13003 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
13004 is less than mini-buffer prompt width, use prompt width as start.
13005
13006 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
13007 position is less than mini-buffer prompt width, use the prompt
13008 width as start.
13009
13010 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
13011 end of prompt if applied to a mini-buffer and BEG reached.
13012
130131998-01-21 Gerd Moellmann <gerd@gnu.org>
13014
13015 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
13016 length to start position.
13017
13018 * buffer.c (Fget_buffer_create): Initialize
13019 minibuffer_prompt_length.
13020 (Fmake_indirect_buffer): Ditto.
13021 (Fkill_buffer): Ditto.
13022
13023 * buffer.h (struct buffer): Add member minibuffer_prompt_length
13024 if PROMPT_IN_BUFFER.
13025
130261998-01-19 Gerd Moellmann <gerd@gnu.org>
13027
13028 * xdisp.c (next_element_from_string): Make it work for arbitrary
13029 Lisp strings.
13030 (set_iterator_to_next): Advance to next overlay string only
13031 if it->string is an overlay string.
13032
13033 * dispextern.h (struct display_iterator):
13034 next_ovstr_face_check_pos renamed next_string_face_check_pos.
13035
427ec082 13036 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
13037 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
13038
13039 * xdisp.c (next_element_from_string): Renamed from
13040 next_element_from_overlay_string.
427ec082 13041 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
13042 compute_face_at_iterator_overlay_string_position.
13043
13044 * dispextern.h (struct display_iterator): Member overlay_string
13045 renamed string.
13046
13047 * xdisp.c (next_element_from_c_string): Renamed from
13048 next_element_from_string.
13049
13050 * dispextern.h (struct glyph_pos): Reversed meaning of
13051 overlay_string_index and string_index.
13052
13053 * xdisp.c (next_element_from_overlay_string): Fix bug that made
13054 this function always return the first character of an overlay
13055 string.
13056
130571998-01-18 Gerd Moellmann <gerd@gnu.org>
13058
13059 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
13060 forced or new pos > next_invisible_check_pos.
13061 (redisplay_window): Don't try same window start if PT < window
13062 start.
13063 (move_iterator_vertically): Bug fix satisfying post-condition
13064 when ZV is reached and no newline in front.
13065 (move_iterator_vertically_backward): New implementation.
13066 (move_iterator_vertically_backward): Bug fixes.
13067
13068 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13069 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13070 (adjust_glyphs_for_font_change): Always adjust.
13071
13072 * dispnew.c (struct dim): Use int.
13073
13074 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13075 (allocate_face): Initialize it.
13076 (load_font): Use XLoadQueryFont again instead of x_load_font.
13077 (unload_font): Use XFreeFont again.
13078 (min_char_bounds): Iterate over fonts of faces. Use frame's
13079 font sizes as default. Remove parameter except_last_font_p.
13080
13081 * dispextern.h (struct face): Add font_name.
13082
130831998-01-17 Gerd Moellmann <gerd@gnu.org>
13084
13085 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13086 to start of line if ending at ZV and no newline in front.
13087 (move_iterator_to): If to_y specified, always first move to x = 0,
13088 so that move stops at line start instead of line end. This is
13089 probably what callers would expect to happen.
13090
13091 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13092 can handle different line heights.
13093 (window_scroll_line_based): Formerly window_scroll.
13094 (window_scroll): Call both.
13095
13096 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13097 (move_iterator_in_display_line_to): Ditto.
13098 (display_line): Ditto.
13099
13100 * minibuf.c (read_minibuf): Conditionally insert prompt into
13101 buffer instead of handling prompts specially. Change other
13102 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13103
13104 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13105 upper window. Optimize calls to xrealloc if same width.
13106
13107 * xdisp.c (redisplay_window): Don't use
13108 try_window_reusing_current_matrix if window scroll functions
13109 exist.
13110
13111 * dispextern.h (struct display_iterator): Member
13112 redisplay_end_trigger_p removed.
13113
13114 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13115 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13116
131171998-01-16 Gerd Moellmann <gerd@gnu.org>
13118
13119 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13120 nil. Optimize truncate-lines t and moving backward.
13121 (move_iterator_to_previous_visible_line_start): Contains the heart
13122 of the previous set_iterator_to_previous_visible_line_end. Don't
13123 reseat the iterator. Used by move_iterator_by_lines.
13124 (set_iterator_to_previous_visible_line_start): Call function
13125 above.
13126 (move_iterator_in_display_line_to): Check TO_POS before doing
13127 anything else. Otherwise to_pos == PT would move to x of PT+1.
13128
13129 * indent.c (Fvertical_motion): Use display_iterator.
13130
13131 * xdisp.c (move_iterator_by_lines): New function moving by screen
13132 lines.
13133 (redisplay_window): Use it.
13134 (move_iterator_to): Correct branch of to_vpos specified.
13135 (move_iterator_vertically_backward): Increment nlines after having
13136 backed up over some lines because the last line was not backed up
13137 over.
13138 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13139 calculate it->vpos and it->current_y relative to this row.
427ec082 13140 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13141 have a big effect and it is complex.
13142 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13143
131441998-01-15 Gerd Moellmann <gerd@gnu.org>
13145
13146 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13147 join nicely. Lines with widths > 2 don't join nicely under X.
13148 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13149 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13150 width 1; remove references to relief_gc_line_width.
13151 * xfns.c (x_make_gc): Ditto.
13152
13153 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13154 if relief changes.
13155 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13156 to get a relief because they can be negative.
13157
13158 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13159 positions are for the middle of lines under X.
13160
13161 * xdisp.c (try_window_id): Always search for the cursor by setting
13162 w->cursor.vpos = -1. Search in unchanged rows at the top and
13163 bottom if cursor not found in displayed lines.
427ec082 13164 (display_mode_line): First extend face, then set right shadow
26901792
DL
13165 flag. Otherwise the wrong glyph gets the right shadow.
13166
13167 * dispnew.c (direct_output_for_insert): Give up if line contains
13168 a tab. The number of spaces inserted for a tab changes if we
13169 insert glyphs in front of it.
13170
13171 * xterm.c (x_list_fonts): Changes undone because the Lisp
13172 implementation for make-face-smaller, make-face-larger, and
13173 make-face-fixed can do without them.
13174
13175 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13176 inserted.
13177
13178 * xdisp.c (try_window_id): First compute beg_unchanged, then
13179 compare with window start pos.
13180
13181 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13182 fixed-width font.
13183 (syms_of_xfns): defsubr for x-face-fixed-p.
13184
13185 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13186 enabled, don't do anything because this row will be newly drawn
13187 anyway and because we can additionally no longer determine the row
13188 height.
13189
13190 * xdisp.c (display_line): Bug fix cursor positioning.
13191
13192 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13193 removed. x-list-fonts.c is now obsolete.
13194 (Qfixed, Qvariable): Moved here from xfaces.c.
13195
131961998-01-14 Gerd Moellmann <gerd@gnu.org>
13197
13198 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13199 FETCH_BYTE for truncated lines.
13200 (display_line): Set cursor differently.
13201 (display_line): Fixed bug setting last_pos_on_this_line wrong
13202 for truncated lines.
13203
13204 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13205 redisplay.
13206
13207 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13208
13209 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13210 assertion that character dimensions are not zero.
13211
13212 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13213 input is blocked.
13214
13215 * xdisp.c (decode_mode_spec): Faster implementation of line number
13216 display.
13217
13218 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13219 bitmaps if bitmaps don't fill the entire area.
13220 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13221
427ec082 13222 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13223 pixel height of flags bitmaps.
13224
13225 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13226 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13227
13228 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13229 in pixels of a flags area of a frame.
13230 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13231 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13232 occupied by a flags area.
13233
132341998-01-13 Gerd Moellmann <gerd@gnu.org>
13235
13236 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13237 window_end_valid.
13238
13239 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13240 GLYPH_DEBUG != 0.
13241
13242 * xdisp.c (display_line): Correct wrong calculation of row->x for
13243 the case of nglyphs == 1.
13244 (hscroll_window_tree): Renamed from hscroll_windows.
13245 (hscroll_windows): New function calling hscroll_window_tree that
13246 clears desired matrices on a frame when hscroll has been changed.
13247 (redisplay_p): Global flag set during redisplay.
13248 (redisplay_internal): Set and clear redisplay_p.
13249
13250 * xfaces.c (min_char_bounds): Add assertion that width and height
13251 are not zero at the end. Initialize *height and *width to -1,
13252 instead of using BITS_PER_SHORT. If font has min_bounds.width
13253 zero, use its max_bounds.width.
13254
13255 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13256 width and height.
13257
132581998-01-12 Gerd Moellmann <gerd@acm.org>
13259
13260 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13261 changed. Don't clear desired matrices.
13262
13263 * xdisp.c (hscroll_windows): Compute pt after setting
13264 current_buffer.
13265 (redisplay_window): Don't do cursor movement based on current
13266 matrix if just_this_one_p is zero.
13267
13268 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13269 specifying that fixed-width, variable-width fonts or both
26901792
DL
13270 should be returned.
13271
13272 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13273 (syms_of_xfaces): Initialize them.
13274
13275 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13276 cached information.
13277
132781998-01-11 Gerd Moellmann <gerd@acm.org>
13279
13280 * xdisp.c (display_mode_line): Extend face to end of line.
13281
13282 * xdisp.c (echo_area_display): Don't call display_string with
13283 echo_area_glyphs_length == 0 which would mean infinite precision.
13284 (redisplay_internal): Adjust window_end_vpos if necessary.
13285
132861998-01-07 Gerd Moellmann <gerd@acm.org>
13287
13288 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13289
132901998-01-05 Gerd Moellmann <gerd@acm.org>
13291
13292 * xdisp.c (get_row_start_continuation_line_width): Removed.
13293 (init_iterator_to_row_start): Set it.current_x from row.
13294 (try_window_id): Set it.continuation_lines_width directly from
13295 row.
13296
13297 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13298 selected_window.
13299 (hscroll_windows): Center cursor in window.
13300 (hscroll_windows): Call move_iterator_in_display_line_to.
13301
133021998-01-04 Gerd Moellmann <gerd@acm.org>
13303
13304 * xdisp.c (hscroll_windows): Check hscroll < 0.
13305 (redisplay_window): Allow quick cursor movement if overlay arrow
13306 but frame uses window-based redisplay.
13307 (display_line): Take special case for nglyphs == 1 out of #if 0.
13308 (display_line): Set row->ends_at_zv_p after the loop displaying
13309 glyphs because ZV can be in truncated text.
13310 (hscroll_windows): Use init_iterator_to_row_start.
13311
13312 * dispnew.c (scrolling_window): Calculation of overlapping
13313 runs fixed.
13314 (row_equal_p): Compare continued_p and continuation_line_p.
13315
133161998-01-02 Gerd Moellmann <gerd@acm.org>
13317
13318 * xterm.c (x_get_mode_line_face_gc): Renamed from
13319 x_get_modeline_face_gc.
13320
13321 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13322 buffer position to look for text properties.
13323 (get_face_from_cursor_pos): Use it.
13324 (compute_face_at_iterator_position): Use it.
13325 (next_element_from_buffer): Use it.
13326
13327 * dispnew.c (scrolling_window): Decrement run's y-position
13328 when extending it backwards.
13329
13330 * xterm.c (do_line_dance): Don't ever copy more than window height.
13331
133321998-01-01 Gerd Moellmann <gerd@acm.org>
13333
13334 * xdisp.c (redisplay_window): Cursor motion in unchanged
13335 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13336 (init_iterator_to_next_row_start): Special handling of lines
13337 ending in middle of char removed.
13338 (hscroll_windows): Hscroll windows only if window_end_valid is not
13339 nil.
13340 (try_window_reusing_current_matrix): Call hscroll_windows.
13341 (init_iterator_to_row_start): Initialize iterator for display
13342 starting at a position given by a glyph_row->start.
13343 (redisplay_window): Don't use vmotion because it gives wrong
13344 results if lines are continued and variable width fonts are used.
13345
427ec082 13346 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13347 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13348 the middle of a character.
427ec082 13349 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13350 the middle of a character.
13351
13352 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13353 it.
13354 (next_element_from_display_vector): Use it->dpvec_index.
13355 (reseat_iterator): Reset it.
13356 (init_iterator): Reset it.
13357 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13358 it->pos.dpvec_index from a glyph_pos structure.
13359 (init_iterator_from_glyph_pos): Call the function above.
13360 (reseat_iterator_to_glyph_pos): Ditto.
13361
13362 * dispnew.c (direct_output_forward_char): Don't use this method at
13363 overlay boundaries or near invisible text.
13364 (direct_output_forward_char): Step through glyph row to find
13365 cursor position.
13366
427ec082 13367 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13368 frame font if line height differs from font height.
13369
13370 * xdisp.c (set_iterator_to_next): Renamed from
13371 move_iterator_forward to avoid confusion with other move_.*
13372 functions.
13373
13374 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13375
133761997-12-31 Gerd Moellmann <gerd@acm.org>
13377
13378 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13379 same naming convention as for other GC functions.
13380 (draw_glyphs): Don't fill background when drawing a cursor and
13381 font height is less than line height.
13382
133831997-12-30 Gerd Moellmann <gerd@acm.org>
13384
13385 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13386 init_iterator_.*.
13387
13388 * xdisp.c (move_iterator_forward): Restore it->len from
13389 it->dpvec_char_len if dpend reached.
13390 (get_next_display_element): Don't consume translated char
13391 prematurely.
13392 (display_line): Don't set this_.* variables if row is continued.
13393 (start_display): Move to start of continuation line if ending
13394 up at end of continued line.
13395
13396 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13397
13398 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13399 checking TO_X and continuation lines.
13400 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13401 of a continued line, don't consider this line as unchanged because
13402 it may no longer be continued.
13403
134041997-12-29 Gerd Moellmann <gerd@acm.org>
13405
13406 * xdisp.c (try_window_id): Catch the case that moving over
13407 continuation lines moves first_unchanged_at_end_row to a row not
13408 displaying text.
13409
13410 * dispextern.h (struct glyph_row): New member
13411 continuation_lines_width. Member continuation_line_p removed.
427ec082 13412 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13413 continuation line.
13414 * xdisp.c (display_line): Set row->continuation_lines_width.
13415 (get_row_start_continuation_line_width): Set continuation lines
13416 width of iterator from continuation lines width of glyph row.
13417 (get_row_start_continuation_line_width): Make it inline.
13418 (set_window_cursor): Make it inline.
13419 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13420 (Fdump_redisplay_state): Ditto.
427ec082 13421
26901792
DL
13422 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13423 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13424
13425 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13426 after determining the continuation lines width for
13427 last_unchanged_at_beg_row.
13428
13429 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13430
13431 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13432 which support faces.
13433 (init_display_iterator): Ditto.
13434 (move_iterator_via_matrix): Skip over truncation glyph at the row
13435 start on terminal frames.
13436 (hscroll_windows): Choose hscroll margin differently for window
13437 system and terminal frames.
13438
134391997-12-28 Gerd Moellmann <gerd@acm.org>
13440
13441 * xdisp.c (hscroll_windows): Change hscroll of windows.
13442 (redisplay_internal): Call it.
13443
427ec082 13444 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13445 doesn't fit completely on the line.
13446 (direct_output_forward_char): Give up for non-ASCII chars.
13447 (direct_output_forward_char): Set redisplay_performed_directly_p.
13448
13449 * dispextern.h (struct display_iterator): Make first_visible_x
13450 and last_visible_x ints; this is for very long truncated lines.
13451
13452 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13453 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13454 positioning problems with the mouse.
13455 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13456 >= it->last_visible_x instead of >.
13457 (display_line): Ditto.
13458
13459 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13460 loaded.
13461 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13462 non-ASCII chars differently. Always produce 1 glyph for composite
13463 chars. If font not found, use CHARSET_WIDTH to calculate width of
13464 non-ASCII chars.
13465 (x_get_char_font_and_encoding): Return null if font could not be
13466 loaded. Reset font to null if fontset could not be loaded.
13467 (draw_glyphs): Fill background if font not found.
13468 (draw_glyphs): Unused parameter just_foreground_p removed. New
13469 parameter composite_glyph.
13470 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13471 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13472 draw_glyphs when calling it recursively for composite chars.
13473
134741997-12-27 Gerd Moellmann <gerd@acm.org>
13475
13476 * xterm.c: Patches from handa.etl.go.jp integrated.
13477 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13478 find a font_info.
13479
13480 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13481 for nglyphs == 1.
13482
13483 * xterm.c (x_draw_relief): Draw relief lines.
13484 (draw_glyphs): Call x_draw_relief.
13485
134861997-12-26 Gerd Moellmann <gerd@acm.org>
13487
13488 * xfns.c (x_make_gc): Create relief GC's.
13489
13490 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13491 (setup_frame_gcs): Initialize them.
13492 (EmacsFrameDestroy): Free them.
13493
427ec082 13494 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13495 last_unchanged_at_beg_row is continued or a continuation line.
13496 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13497 (redisplay_window): Case point has changed, and it has not
26901792
DL
13498 moved off the frame. Don't increment row if PT equals the row
13499 end if the row ends in ZV.
13500
13501 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13502 (expose_line): Call it.
13503 (x_after_update_window_line): Call it.
13504
13505 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13506 reached.
13507
13508 * xterm.c (x_after_update_window_line): Draw continuation line
13509 bitmap.
13510
13511 * dispnew.c (update_window_line): Call
13512 after_update_window_line_hook when row's continuation_line_p
13513 changes.
13514
13515 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13516
13517 * xdisp.c (display_line): Handle continued lines on window system
13518 frames differently since continuation glyphs are not displayed.
13519 (move_iterator_in_display_line_to): Ditto.
13520 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13521 into account.
13522 (move_iterator_vertically_backward): Handle dy == 0 specially.
13523 (redisplay_window): Catch the case of small windows when
13524 recentering where moving back window_height/2 moves us beyond the
13525 top of the display area of the window.
13526
135271997-12-18 Gerd Moellmann <gerd@acm.org>
13528
13529 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13530 dvpos removed.
13531
135321997-12-17 Gerd Moellmann <gerd@acm.org>
13533
13534 * dispnew.c (direct_output_forward_char): Correct new cursor
13535 x-position.
13536
135371997-12-16 Gerd Moellmann <gerd@acm.org>
13538
13539 * xterm.c (x_after_update_window_line): Remove unused parameters.
13540 (XTclear_end_of_line): Clear to display_height instead of
13541 display_height - 1.
13542
13543 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13544 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13545 rows have different y-positions, or different height.
13546
135471997-12-14 Gerd Moellmann <gerd@acm.org>
13548
13549 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13550
13551 * window.c (coordinates_in_window): Call frame_mode_line_height.
13552
13553 * xterm.c (x_draw_3d_border): Removed.
13554 (x_draw_row_borders): Removed.
13555
13556 * dispnew.c (update_window): References to
13557 FRAME_MODE_LINE_BORDER_WIDTH removed.
13558
13559 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13560 (FRAME_MODE_LINE_HEIGHT): Removed.
13561
13562 * xterm.c (draw_3d_borders_p): Removed.
13563 (draw_glyphs): Ditto.
13564 (XTwrite_glyphs): Ditto.
13565 (expose_line): Ditto.
13566 (x_initialize): Ditto.
13567
13568 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13569 frame_mode_line_height.
13570
13571 * term.c (frame_mode_line_height): Get the pixel height of a
13572 frame's mode line.
13573 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13574 versions.
13575
26901792
DL
13576 * xterm.c (x_initialize): Set the hook.
13577 (XTframe_mode_line_height): X version of frame_mode_line_height.
13578
13579 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13580 output buffer.
13581 (display_string): Don't add right truncation mark if line ends in
13582 padding space.
13583 (init_display_iterator): If called with modeline_p non-zero, set
13584 face_id to 1, which is the id of the mode line face.
13585
13586 * keyboard.c (cmd_error_internal): Write to stderr if selected
13587 frame is Vterminal_frame under X. This is the case when a font
13588 cannot be loaded when Emacs starts. Replace test for
13589 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
13590
13591 * xfaces.c (compute_overlay_string_char_face): Compute the
13592 face of a character in an overlay string.
13593 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 13594 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
13595 Use it.
13596
13597 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
13598 set_iterator_to_next_overlay.
13599 (struct overlay_entry): Structure used to sort overlay strings.
13600 (compare_overlay_entries): Compare overlay strings.
13601 (load_iterator_with_overlay_strings): Load a chunk of overlay
13602 strings.
13603 (get_overlay_strings_at_iterator_position): Call it.
13604 (next_element_from_overlay_string): Set it->object to the overlay
13605 string. Prepare for setting it->position to a string position.
13606 (get_overlay_strings_at_iterator_position): Renamed from
13607 get_overlays_at_iterator_position.
13608 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
13609 chunks of overlay strings.
13610 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
13611
13612 * dispextern.h (struct display_iterator): New vector
13613 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
13614 overlays and n_overlays.
13615 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
13616 renamed to string_index.
13617
136181997-12-13 Gerd Moellmann <gerd@acm.org>
13619
13620 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
13621 when allocating a vector.
13622 (release_iterator): Removed.
13623 (restore_iterator): Removed.
13624 (copy_iterator): Removed.
13625
136261997-12-08 Gerd Moellmann <gerd@acm.org>
13627
13628 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
13629 clearing a mini-buffer window that is not active.
13630 (redisplay_window): Do not scroll one line too early when last
13631 window line is completely visible.
13632 (init_display_iterator): Leave some room to display the cursor
13633 after the last glyph on a continued line.
13634
13635 * xterm.h (struct x_output): trunc_area_extra renamed
13636 flags_areas_extra.
13637 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
13638
13639 * dispnew.c (update_window_line): Call
13640 after_update_window_line_hook when current row is not enabled
13641 which is the case after a frame has been cleared.
13642
13643 * xdisp.c (display_mode_line): Reset row flags for truncation
13644 on right side for the mode line.
13645
13646 * xterm.c (bitmap_type): Type of bitmap to display in flags
13647 area of frame.
13648 (x_after_update_window_line): Use the enum.
13649 (draw_bitmap): Ditto.
13650
136511997-12-07 Gerd Moellmann <gerd@acm.org>
13652
13653 * xterm.c (x_clip_to_row): Include width of both flag areas.
13654 (do_line_dance): Ditto.
13655 (expose_window_tree): Ditto.
13656 * dispnew.c (update_window_line): Call
13657 after_update_window_line_hook for right truncation and continuation.
13658 * xdisp.c (init_display_iterator): Don't subtract width of
13659 continuation glyphs for window-based redisplay.
13660 * xterm.c (draw_bitmap): Draw continuation bitmap.
13661 * widget.c (set_frame_size): Double trunc_area_extra.
13662 (EmacsFrameSetCharSize): Ditto.
13663 * xfns.c (x_figure_window_size): Ditto.
13664 * xterm.c (x_set_window_size): Ditto.
13665 (x_after_update_window_line): Draw right truncation mark.
13666
13667 * xterm.c (draw_glyphs): Bug fix buffer overrun.
13668
13669 * window.h: Include blocker around dispextern.h removed.
13670
13671 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 13672
26901792
DL
13673 * dispextern.h (struct display_iterator): Former ovstr made a
13674 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
13675 next_ovstr_invisble_check_pos; check at these positions for
13676 face changes and changes in invisible text property.
13677 (struct glyph_pos): Former ovlen now overlay_string_index.
13678
13679 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
13680 overlay_string.
13681 (set_iterator_to_next_overlay_string): Set overlay_string and
13682 pos.overlay_string_index.
13683 (get_overlays_at_iterator_position): Use overlay_string and
13684 overlay_string_index.
13685 (next_element_from_overlay_string): Use overlay_string and
13686 overlay_string_index.
13687 (move_iterator_forward): Increment overlay_string_index.
13688 (try_window_id): Use overlay_string and overlay_string_index.
13689 (move_iterator_forward): At end of dpvec, maybe use method
13690 next_element_from_overlay_string for the case a character from an
13691 overlay string was translated via a display table.
13692 (reseat_iterator_to_string): Take a Lisp string.
13693 (display_string): Pass a Lisp string to reseat_iterator_to_string.
13694 (compute_face_at_iterator_overlay_string_position): Compute face
13695 based on text properties for an overlay string.
13696 (next_element_from_overlay_string): Check invisible and face text
13697 properties.
bb6677a8 13698
26901792
DL
13699 (set_iterator_to_next_overlay_string): Restore face id before
13700 overlay strings when no more overlay strings are found to return.
13701 Initialize next_ovstr_.*check_pos for each new overlay string
bb6677a8
GM
13702
13703 A line in the following paragraph was garbled for an unknown
13704 reason. It couldn't be fully reconstructed.
13705
13706 (compute_base_face): Made public.
26901792
DL
13707 (merge_face_list): Ditto.
13708 (intern_computed_face): Ditto.
13709
427ec082 13710 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
13711 window if PT > w->last_point. Goto try_to_scroll if bottom Y
13712 of row is > instead of >= last_y.
13713
13714 * buffer.h (overlays_at): Function prototype.
13715
13716 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
13717 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
13718
427ec082 13719 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
13720 memory of a display_iterator.
13721 (copy_iterator): Copy an iterator.
13722 (restore_iterator): Restore an iterator from a backup copy.
13723 (global): Use the functions above.
13724 * window.c (Fpos_visible_in_window_p): Call release_iterator.
13725 * dispnew.c (direct_output_for_insert): Call release_iterator.
13726
13727 * dispextern.h (struct display_iterator): Allocate overlays
13728 vector dynamically.
13729
137301997-12-06 Gerd Moellmann <gerd@acm.org>
13731
13732 * Makefile.in (window.o): Depends on dispextern.h.
13733
13734 * buffer.c (overlays_at): Make it work when extending vectors
13735 and an initial vector of zero size.
13736
13737 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
13738 from set_cursor_to_previous_visible_line_end.
13739 (set_iterator_to_next_visible_line_start): Renamed from
13740 set_cursor_to_next_visible_line_end.
13741 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
13742 (compute_face_at_iterator_position): Renamed from
13743 compute_cursor_face.
13744 (set_iterator_to_next_overlay_string): Renamed from
13745 cursor_to_next_overlay_string.
13746 (get_overlays_at_iterator_position): Renamed from
13747 get_overlays_for_cursor.
13748 (reseat_iterator): Renamed from reseat_cursor.
13749 (setup_iterator_overlays_from_glyph_pos): Renamed from
13750 setup_overlays_from_pos.
13751 (init_string_iterator): Renamed from init_string_cursor.
13752 (get_next_display_element): Renamed from next_display_element.
13753 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 13754 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
13755 dynamically.
13756
13757 * xdisp.c: display_cursor renamed display_iterator.
13758 * dispextern.h: Ditto.
13759 * dispnew.c: Ditto.
13760
137611997-12-01 Gerd Moellmann <gerd@acm.org>
13762
13763 * window.c (mark_window_cursors_off): Function comment added.
13764 (window_topmost_p, window_rightmost_p): Removed because not used.
13765
137661997-11-30 Gerd Moellmann <gerd@acm.org>
13767
13768 * emacs.c (main): Function prototypes removed in profiling code.
13769 Use safe_bcopy as start of text.
13770
13771 * dispnew.c (update_frame_line): update_line -> update_frame_line;
13772 mirrored_make_current -> make_current.
13773
13774 * xdisp.c: (store_frame_title_char): New function to store a
13775 single character for the frame title with re-allocation of
13776 frame_title_buf.
13777 (init_xdisp): Intialize frame_title_.* variables to null.
13778
13779 * dispnew.c (quit_error_check): Removed.
13780
13781 * eval.c (Fsignal): Call to quit_error_check removed.
13782 * keyboard.c (quit_throw_to_read_char): Ditto.
13783
137841997-11-23 Gerd Moellmann <gerd@acm.org>
13785
13786 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
13787 to mean a zero relief.
13788
26901792
DL
137891997-11-19 Gerd Moellmann <gerd@acm.org>
13790
13791 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
13792 unconditionally.
13793 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
13794 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
13795 (check_glyph_memory): Define function body unconditionally.
13796
137971997-11-17 Gerd Moellmann <gerd@acm.org>
13798
13799 * dispnew.c (scrolling_window): Alternative version of this
13800 function removed.
13801
138021997-11-16 Gerd Moellmann <gerd@acm.org>
13803
13804 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
13805 of height CANON_Y_UNIT.
13806 * dispextern.h: Prototype for that function.
427ec082 13807 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
13808 produce empty rows. Use make_empty_enabled_row instead.
13809
13810 * dispnew.c (scrolling_window): New version using diff-like
13811 algorithm activated.
427ec082 13812
26901792
DL
138131997-11-15 Gerd Moellmann <gerd@acm.org>
13814
13815 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
13816 (clear_desired_matrices): Ditto.
13817 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
13818 for menu_bar_window.
13819
13820 * alloc.c (mark_object): Mark menu_bar_window of frames.
13821
13822 * xterm.c (XTupdate_window_end): Don't display cursor if
13823 pseudo_window_p.
13824
13825 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
13826 set mini_p.
13827 (update_window): Don't set cursor if pseudo_window_p.
13828
13829 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
13830
13831 * window.h (struct window): New flag pseudo_window_p set to
13832 1 for windows that aren't really part of the window tree, like
13833 menu_bar_window's of frames.
13834 * window.c (make_window): Initialize it.
13835 (replace_window): Ditto.
13836 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13837
13838 * frame.c (make_frame): Initialize menu_bar_window to nil.
13839
13840 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
13841 FACE_RELIEF
13842
13843 * xfaces.c (copy_face): shadow_thickness -> relief.
13844 (face_eql): Ditto.
13845 (merge_faces): Ditto.
13846 (compute_base_face): Ditto.
13847 (Fset_face_attribute_internal): Ditto.
13848 * dispextern.h (struct face): Ditto.
13849
13850 * dispnew.c (update_frame): Update menu_bar_window of the frame if
13851 it is non-nil.
13852
13853 * xdisp.c (display_menu_bar): Display the menu bar in
13854 f->menu_bar_window if appropriate.
13855 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
13856
13857 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
13858 dummy window and window matrices for f->menu_bar_window.
13859 (free_glyphs): Free the dummy window and its glyph matrices.
13860
13861 * frame.h (struct frame): New member menu_bar_window.
13862
138631997-11-09 Gerd Moellmann <gerd@acm.org>
13864
13865 * dispnew.c (scrolling_window): New version with diff-like
13866 algorithm.
13867
13868 * xdisp.c (try_window_reusing_current_matrix): If new_start >
13869 old_start always start displaying at start of
13870 first_row_to_display. The previous scheme failed if the last row
13871 was fully visible.
13872
13873 * dispnew.c (update_window): Remove cost calculations. Remove
13874 redundant preempt_count calculations.
13875
13876 * xterm.c (x_clip_to_row): Set clipping for non-text rows
13877 differently.
13878
13879 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
13880
427ec082 13881 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
13882 WITH_MARGINAL_AREAS is defined.
13883
427ec082 13884 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
13885 removed.
13886
13887 * dispnew.c (scrolling): Call line_hash_code because hash values
13888 are not set in the frame matrix.
13889
13890 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
13891 (redisplay_window): Check line_ins_del_ok before calling
13892 try_window_id.
13893 (try_window_reusing_current_matrix): Give up for terminal frames
13894 if window is not full width or we cannot insert/delete lines.
13895 (try_window_reusing_current_matrix): Fixed scrolling for terminal
13896 frames.
13897
13898 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
13899 Lisp_Object to mark_object.
13900
13901 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
13902 window rows have the same glyph pointers.
13903 (try_window_id): Call it.
13904
13905 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
13906 a glyph matrix.
13907 (mark_object): Call it.
13908
13909 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
13910 truncations.
13911 (display_line): Ditto.
13912 (display_line): Ditto for DISP_CONTINUATION.
13913 (display_line): Truncation on right: test current_x >
13914 last_visible_x.
13915 (skip_in_display_line_to): Ditto.
13916 (skip_via_matrix): Stop skipping in glyph row at face extending
13917 glyphs or at padding spaces.
13918
13919 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
13920
13921 * xdisp.c (display_line): Use glyph->object == 0 for padding
13922 glyphs.
13923 (redisplay_window): Don't let cursor move over padding
13924 spaces.
13925
13926 * dispextern.h (struct glyph): Fix comment for object.
13927
139281997-11-08 Gerd Moellmann <gerd@acm.org>
13929
13930 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
13931 has a mode line.
13932 * xdisp.c (redisplay_window): Use it.
13933 (display_mode_line): Check that window wants mode line.
13934
139351997-11-03 Gerd Moellmann <gerd@acm.org>
13936
13937 * xdisp.c (display_menu_bar): Enable menu bar rows.
13938
13939 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
13940 (x_erase_phys_cursor): Ditto.
13941 (x_draw_bar_cursor): Ditto.
13942
139431997-11-02 Gerd Moellmann <gerd@acm.org>
13944
13945 * dispnew.c (update_marginal_area): Update a marginal area.
13946 (update_text_area): Update text area.
13947 (update_window_line): Call both.
13948
13949 * xterm.c (XTclear_end_of_line): Translate coordinates area
13950 dependent.
13951
13952 * dispnew.c (updated_area): Row area being updated in
13953 update_window_line.
13954 (update_window_line): Set it.
13955 (update_marginal_area): Clear to end of line if not in text area.
13956
13957 * window.c (Fset_window_margins): Increment
13958 windows_or_buffer_changed. Adjust glyphs.
13959
13960 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
13961 area X coordinates to frame coordinates.
427ec082 13962 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
13963 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
13964 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
13965
13966 * xterm.c (draw_glyphs): Use text area width as display width.
13967
13968 * xdisp.c (init_display_info): Subtract widths of marginal areas
13969 from last_visible_x.
13970
13971 * alloc.c (mark_object): Mark objects in glyphs only if they are
13972 overlays. Mark only if current_matrix != 0. Activate the code.
13973
13974 * window.c (Fset_window_margins): Set margins.
13975 (Fwindow_margins): Return margin area widths.
13976 (syms_of_window): Add defsubr's.
13977
13978 * window.h (struct window): left_margin_width, right_margin_width.
13979
13980 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
13981 and cols.
13982
13983 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
13984 truncation/overlay arrow area.
13985 (struct frame): trunc_area_pixel_width, and _cols.
13986
13987 * window.c (Fsplit_window): Use it.
13988
13989 * window.c (Fsplit_window): Set cursor vpos to -1 after
13990 splitting.
13991 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
13992 split windows.
13993
13994 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 13995 of bounds cursor positions.
26901792
DL
13996
13997 * xdisp.c (redisplay_internal): Check that after cursor motion
13998 within line, PT is on same line.
13999
14000 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
14001 FRAME_TRUNC_WIDTH.
14002
14003 * xterm.h (struct x_output): trunc_area_extra.
14004 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
14005 (PIXEL_TO_CHAR_WIDTH): Subtract it.
14006 * widget.c (set_frame_size): Set it.
14007 (EmacsFrameSetCharSize): Ditto.
14008 * xfns.c (x_figure_window_size): Ditto.
14009 * xterm.c (x_set_window_size): Ditto.
14010
14011 * dispnew.c (check_matrix_invariants): First try to check window
14012 ends (in #if 0).
14013
14014 * xdisp.c (try_window_reusing_current_matrix): Try window
14015 redisplay with different window start.
14016
140171997-11-01 Gerd Moellmann <gerd@acm.org>
14018
14019 * window.c (make_window): Set window_end_pos/vpos.
14020 (Fsplit_window): Zero last_cursor, window_end_valid.
14021 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
14022
14023 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
14024
140251997-10-31 Gerd Moellmann <gerd@acm.org>
14026
14027 * window.c (make_window): Initialize last_cursor.
14028 (replace_window): Ditto.
14029
140301997-10-29 Gerd Moellmann <gerd@acm.org>
14031
14032 * window.h: New member last_cursor.
14033 * dispnew.c (direct_output_for_insert): Set it.
14034 (direct_output_forward_char): Ditto.
14035 * xdisp.c (redisplay_internal): Ditto.
14036
140371997-10-28 Gerd Moellmann <gerd@acm.org>
14038
14039 * xdisp.c (redisplay_internal): Optimization 1 change partially
14040 reverted. Check this again later.
14041 (skip_via_matrix): Remove redundent test for
427ec082 14042 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
14043
140441997-10-27 Gerd Moellmann <gerd@acm.org>
14045
14046 * dispnew.c (update_window_line): Call
14047 after_update_window_line_hook only for interesting constellations.
14048 (free_glyph_matrix): Fix memory leak.
14049
14050 * window.h: Include blocker WINDOW_H_INCLUDED, include
14051 dispextern.h.
14052 (struct window): phys_cursor_glyph as struct glyph. * window.c
14053 (make_window): Initialize it.
427ec082 14054 (replace_window): Ditto.
26901792
DL
14055 * dispnew.c (free_window_matrices): Remove freeing of
14056 phys_cursor_glyph.
14057 (check_matrix_invariants): Renamed from check_current_matrix_...
14058 * xterm.c: All references to phys_cursor_glyph changed.
14059
14060 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
14061
14062 * xfaces.c: Comment update.
14063
14064 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14065 pointer. Remove phys_cursor_ascent, descent, etc.
14066 * dispnew.c (free_window_matrices): Free it.
14067 * window.c (make_window): Allocate it.
14068 (replace_window): Ditto.
14069 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14070 (x_display_and_set_cursor): Fill it.
14071 (x_phys_cursor_in_rect_p): Use it.
14072 (x_draw_hollow_cursor): Ditto.
14073 (x_draw_bar_cursor): Ditto.
14074 (x_erase_phys_cursor): Ditto.
14075
14076 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14077
14078 * xterm.c (XTget_display_info): Handle 3D facess.
14079 (draw_glyphs): Ditto.
14080
14081 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14082
14083 * xfaces.c (Fset_face_attribute_internal): New face attribute
14084 shadow-thickness.
14085 (copy_face): Handle shadow_thickness.
14086 (face_eql): Ditto.
14087 (merge_faces): Ditto.
14088 (compute_base_face): Ditto.
14089
14090 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14091 (struct display_info): Ditto.
14092 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14093 * xdisp.c (compute_cursor_face): Set it.
14094 (advance_display_cursor): Clear it.
14095
14096 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14097 (init_string_cursor): Init face_id to zero.
14098
14099 * dispextern.h (struct face): New member shadow_thickness.
14100
427ec082 14101 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
14102 search to 100.
14103
14104 * dispnew.c (update_window_line): Try to resynch with current line
14105 to prevent mode line flickering.
14106
141071997-10-26 Gerd Moellmann <gerd@acm.org>
14108
427ec082 14109 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
14110 on cursor_in_echo_area >= 0.
14111
14112 * xdisp.c (echo_area_display): Clear desired matrix before
14113 displaying into it.
14114 (display_menu_bar): Clear glyph row instead of hoping it is not
14115 enabled. This is safer.
14116
14117 * dispnew.c (check_current_matrix_invariants): Check only
14118 visible rows.
14119
14120 * xdisp.c (try_window_id): Handle window end setting in case of
14121 display to end of window, but only non-text lines displayed.
14122
14123 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14124 (check_current_matrix_invariants): Check used counts.
14125
14126 * Revisiob v114.
14127
14128 * dispnew.c (scrolling): Use hash codes from rows.
14129
14130 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14131
14132 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14133
141341997-10-25 Gerd Moellmann <gerd@acm.org>
14135
14136 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14137 * dispnew.c (update_window): Use it.
14138 (clear_glyph_matrix): Clear it.
14139 * xdisp.c (try_window_id): Set it.
14140
14141 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14142
14143 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14144
14145 * dispextern.h: More comments etc.
14146
141471997-10-24 Gerd Moellmann <gerd@acm.org>
14148
14149 * dispnew.c (set_window_cursor_after_update): Set cursor
14150 for cursor_in_echo_area == 0 to (0, 0).
14151
14152 * dispextern.h (struct glyph_row): New flags continuation_line_p
14153 and displays_text_p.
14154 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14155 * xdisp.c (display_line): Set them.
14156 (try_window_id): Move to start of continuation line to find out
14157 continuation_line_width.
14158 (first_unchanged_current_row): Don't retract row if continued,
14159 truncated etc.
14160
14161 * xterm.c: Map X coordinates.
14162
141631997-10-23 Gerd Moellmann <gerd@acm.org>
14164
14165 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14166 left text.
14167
14168 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14169
14170 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14171
f28eba7b 14172 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14173
14174 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14175
14176 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14177 Set this to functions to be called before/after window updates.
14178 (direct_output_for_insert): Call them.
14179 (update_window): Ditto.
14180 (update_frame): Call update_begin/ update_end for windows.
14181
14182 * xterm.c (XTupdate_window_begin): Called before window updates.
14183 (XTupdate_end): Called after window updates.
14184 (x_initialize): Set hooks to above.
14185
14186 * xdisp.c (init_display_info): Initialize c and len of
14187 display_info.
14188
14189 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14190 fonts more than once.
14191
141921997-10-22 Gerd Moellmann <gerd@acm.org>
14193
14194 * xdisp.c (display_line): Handle most common case of current_x <
14195 last_visible_x separately.
14196
14197 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14198
14199 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14200 so that face extending space doesn't compare equal to normal space
14201 with same face.
14202
14203 * xdisp.c (display_line): Make sure we have a position for
14204 a line end in an otherwise blank line if face is extended.
14205
14206 * dispnew.c (direct_output_for_insert): Increment row end position.
14207
427ec082 14208 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14209 window_end_pos.
14210
14211 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14212
14213 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14214
14215 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14216 start and end positions in rows.
14217 (increment_glyph_row_buffer_positions): Stop adjusting at
14218 glyphs with positions <= 0.
14219
14220 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14221 position including position in overlay.
26901792
DL
14222 (struct glyph_row): Use it for start and end positions.
14223 (struct display_cursor): Use it.
14224 * xdisp.c: Use it.
14225 (display_line): Set row start and end positions.
14226
14227 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14228 assignment.
14229
142301997-10-21 Gerd Moellmann <gerd@acm.org>
14231
14232 * dispnew.c (update_window): Add scrolling_window again. It's
14233 necessary for scroll_step != 0.
14234
14235 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14236 scrolling.
14237
14238 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14239
14240 * xterm.c (XTupdate_end): Flush only for messages.
14241
14242 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14243 first_unchanged_row.
14244
14245 * xterm.c (XTupdate_end): Flush if miniwindow.
14246
14247 * dispnew.c (matrix_row_last_pos): New function.
14248 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14249 Large comment moved to xdisp.c.
26901792
DL
14250
14251 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14252 (skip_via_matrix): Check window_end_valid instead of
14253 display_completed.
14254
14255 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14256 (update_window): scrolling_window commented out. It has negative
14257 effect most of the time.
14258
14259 * xdisp.c (try_window_id): Correct parameters to
14260 scroll_glyph_matrix_range.
14261
427ec082 14262 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14263
14264 * window.h: Comments for window_end_pos/vpos.
14265
f28eba7b 14266 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14267 of the window in which we are skipping.
14268
14269 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14270
14271 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14272 reached.
14273
142741997-10-20 Gerd Moellmann <gerd@acm.org>
14275
14276 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14277 a face extending glyph.
14278
427ec082 14279 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14280 (set_cursor_from_row): Set cursor position from a glyph row.
14281
14282 * dispnew.c (update_window_line): Write entire line if hash
14283 codes of lines differ.
14284
14285 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14286 if glyph row has an infinite width glyph at its end.
14287
14288 * xdisp.c (last_unchanged_current_row): Respect partially visible
14289 lines when looking for the last row displaying text.
14290 (try_window_id): Handle partially visible lines better.
14291
142921997-10-19 Gerd Moellmann <gerd@acm.org>
14293
14294 * dispnew.c (update_window): Remove unused variable.
14295 (update_window_line): Simplified.
14296
14297 * xterm.c (x_get_char_font_and_encoding): Handle most common
14298 case at the beginning.
14299
14300 * xdisp.c (advance_display_cursor): Dispatch on method and
14301 order if statements by expected call frequency. Fixed unclosed
14302 comment.
14303
14304 * xdisp.c (try_window_id): New implementation.
14305
14306 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14307 rows displaying a line end, only.
14308
143091997-10-18 Gerd Moellmann <gerd@acm.org>
14310
14311 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14312
143131997-10-14 Gerd Moellmann <gerd@acm.org>
14314
14315 * xdisp.c (display_line): Mark empty lines not corresponding to
14316 text with position -1.
14317
14318 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14319 not within window matrix bounds.
14320
14321 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14322 (struct display_info): NGLYPHS_TO_IGNORE removed.
14323 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14324 * term.c: Ditto.
14325 * xterm.c: Ditto.
14326
14327 * xdisp.c (init_display_cursor): Set it.
14328 (display_line): Use it to set W->REGION_SHOWING.
14329
14330 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14331
14332 * region-cache.h: functino prototypes with PROTO.
14333
14334 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14335
14336 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14337 a position.
14338
427ec082 14339 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14340 rectangle based on minimum character bounds.
14341
f28eba7b 14342 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14343 glyph position calculations.
14344 (make_lispy_movement): Use buffer_posn_from_coords and window
14345 relative coordinates.
14346
14347 * xterm.c (construct_mouse_click): Remove #if 0 case.
14348
14349 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14350 given row.
14351
427ec082
SS
14352 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14353 date.
26901792
DL
14354 (skip_to): Use it.
14355 (redisplay_window): Remove code skipping using current matrix.
14356
143571997-10-13 Gerd Moellmann <gerd@acm.org>
14358
14359 * xdisp.c (redisplay_window): Use available current matrix to
14360 skip faster when only point is moved withing the window.
14361
427ec082 14362 * intervals.c: Include stdio.h.
26901792
DL
14363 (find_interval): Trace to stderr to catch some nasty error
14364 that did not yet occur again with tracing.
14365 (set_point): Ditto.
14366
14367 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14368 cursor positioning on partially visible lines.
14369 (set_window_cursor_after_update): Ditto.
14370
f28eba7b 14371 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14372
14373 * window.h (struct window): start_y removed.
14374
14375 * window.c (make_window): start_y removed.
14376 (replace_window): Ditto.
14377
427ec082 14378 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14379 descent values of the last line processed by skip_to.
14380 (redisplay_window): Use them.
14381 (skip_to): Set them.
14382
14383 * dispextern.h (struct display_cursor): New member METHOD.
14384
14385 * xdisp.c: Use function member METHOD.
14386
14387 * xdisp.c (set_next_stop_pos): Determine next position at which to
14388 check for face properties, invisible text properties, and overlays.
14389 (compute_cursor_face): Use it.
14390 (get_overlays_for_cursor): Ditto.
14391 (reseat_cursor): Ditto.
14392 (next_display_element): Ditto.
14393
14394Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14395
14396 * termhooks.h: Some hooks with prototypes.
14397
14398 * term.c: Some hooks with function prototypes.
427ec082 14399
26901792
DL
14400 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14401 computing face if possible.
14402
14403 * xdisp.c (next_display_element): Use face from glyph from display
14404 table only if != 0.
14405
14406 * emacs.c: FreeBSD headers for profiling removed.
14407
427ec082
SS
14408 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14409 display cursor, use DEC_POS instread.
26901792
DL
14410
14411 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14412 all fonts are in the font table.
26901792
DL
14413 (unload_font): Don't XFreeFont.
14414
14415 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14416 row height.
14417
14418 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14419 (x_erase_phys_cursor): Clear only visible part of row.
14420 (x_draw_bar_cursor): Set clipping.
14421 (x_draw_hollow_cursor): Ditto.
14422 (x_display_and_set_cursor): Remove clipping.
14423 (expose_window_tree): Take trunc border into account.
14424 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14425 (expose_window): Use it.
14426
14427 * xdisp.c (display_string): Catch case that we are called with
14428 current_x already beyond max_x.
14429 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14430 (init_display_info): Subtract vertical border glyph from
14431 last_visible_x.
14432
14433 * scroll.c (scrolling_window_1): Removed.
14434
14435 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14436 based on redisplay method used.
14437 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14438 based redisplay.
14439 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14440 window based redisplay.
14441
14442 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14443 on data structures.
14444
14445 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14446 Handle own storage for purely window based redisplay.
14447 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14448 allocate_matrices.
26901792
DL
14449 (allocate_matrices_for_window_redisplay): Ditto.
14450
14451 * dispextern.h (struct glyph_matrix): window_top_y,
14452 window_height.
14453
14454 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14455 and optimize some common cases of window changes.
14456
14457 * emacs.c (main): Remove own profiling code because 0.95 now
14458 has it in.
14459
14460Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14461
14462 * xterm.c (XTupdate_end): Draw horizontal border at right
14463 position.
14464 (expose_window): Draw vertical border.
14465 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14466 don't do anything.
14467
14468 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14469 for non full width windows only if not window redisplay.
14470
14471 * dispnew.c (update_window_tree): Or paused_p return of called
14472 functions.
14473
14474 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14475 of window.
14476
14477 * window.c (Fset_window_configuration): adjust_glyphs being
14478 called twice.
14479 (Fset_window_configuration): Set frame garbaged if not all
14480 leaf windows reused.
14481
144821997-08-21 Gerd Moellmann <gerd@acm.org>
14483
14484 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14485 that rows should really be cleared. Used for current matrices.
14486
14487 * dispnew.c (scrolling_window): Bug fix.
427ec082 14488 (line_dance_hook): Formerly line_dance_fn, take only one
26901792
DL
14489 parameter.
14490
14491 * dispextern.h (struct run): Remove current_vpos.
14492
14493 * xterm.c (do_line_dance): Only one parameter.
14494
f28eba7b 14495 * xdisp.c (display_line): Set continued_p.
26901792
DL
14496
14497 * dispextern.h (struct glyph_row): New flag continued_p.
14498 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14499 (struct glyph_row):
26901792
DL
14500
14501Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14502
14503 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14504 when calling skip_to for continued lines.
14505
14506 * dispnew.c (change_frame_size_1): Set frame garbaged.
14507
14508 * xterm.c (expose_window): Check enabled_p of rows.
14509
14510 * xdisp.c (redisplay_internal): Compare line heights before and
14511 now for redisplay optimization 2 (hit).
14512 (display_line): Set this_line_pixel_height.
14513
14514 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14515 value.
14516 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14517 (do_line_dance): Simplified and pixel corrected.
14518
14519 * dispnew.c (scrolling_window): Simplified.
14520
14521 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14522
14523 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14524 to mode line row->x.
14525
14526Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14527
14528 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14529 override font of face.
14530 (draw_glyphs): Correct return value.
14531 (XTclear_end_of_line): Compare differently with output cursor
14532 position.
14533 (x_draw_hollow_cursor): 2 parameters, window and row.
14534
14535 * dispnew.c (update_window_line): If rows have different height
14536 or y, write entire line.
14537
f28eba7b 14538 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14539 of info struct.
14540
427ec082 14541 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14542 frame_update_line_height.
14543 (merge_faces): Don't use default font if new font has different
14544 size.
14545
14546Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14547
14548 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
14549 unknown. Some fonts have min_width zero.
14550 (draw_glyphs): Don't draw underlines to the end of the display
14551 line if face is merely extended to that point.
14552 (draw_glyphs): Don't assume background is filled if
14553 just_foreground_p but extending to end of line.
14554
14555 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14556 for partially visible last lines.
14557 (x_clip_to_row): Ditto.
14558 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14559 display_height since line_height is really a line distance.
14560 (x_display_and_set_cursor): If cursor on padding glyph, use
14561 min_bounds pixel width.
14562
14563Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14564
14565 * xterm.c (x_clip_to_row): Height value was 1 too large.
14566 (XTclear_end_of_line): Clip to display area.
14567
14568 * xfns.c (x_figure_window_sizes): Add trunc border width
14569 to frame pixel width.
14570
14571 * xdisp.c (next_display_element): Don't display overlay strings
14572 within invisible text.
427ec082 14573 (skip_vertically_backward): Skip display lines.
26901792
DL
14574
14575Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14576
14577 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14578
14579 * xdisp.c (next_display_element): Next invisible
14580 text check position computed differently.
14581
14582 * dispextern.h (struct display_cursor): last_invisible_text_pos
14583 and display_ellipsis_for_invisible_p removed.
14584
14585 * xdisp.c (next_display_element): Set last_invisible_text_pos
14586 to the last position at which invisible text was found. Don't
14587 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14588 dpvec for `...' due to invisible text directly.
26901792
DL
14589 (redisplay_internal): Don't assert that cursor is at PT after
14590 skip_to. It may be in invisible text.
14591
427ec082 14592 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
14593 x_y_to_hpos_vpos.
14594
427ec082 14595 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
14596 next_overlay_pos is reached. Use limit cursor.pos + 100 when
14597 checking for invisible text.
14598
14599 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
14600
14601 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
14602
14603 * xfns.c (x_contour_region): Use pixel coordinates from window
14604 cursor instead of WINDOW_TO_FRAME_H/VPOS.
14605
14606 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
14607 Removed.
14608
14609 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
14610
14611 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
14612 pixel coordinates.
14613 (note_mouse_highlight): Use it.
14614
14615 * xdisp.c (echo_area_display): Ignore calls for terminal frames
14616 under a window system.
14617
427ec082 14618 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 14619 necessary.
427ec082 14620 (update_window_line): Add width of face padding glyph to
26901792
DL
14621 displayed widths of rows.
14622
14623 * xterm.c (x_display_and_set_cursor): Set clipping after
14624 erasing cursor.
427ec082
SS
14625
14626 * window.c (Fset_window_configuration): Free only those
26901792
DL
14627 window matrices not reused.
14628 (get_leaf_windows): Build vector of leaf windows.
14629 Corrupted archive restored from v77.
14630
f28eba7b 14631 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
14632 like display_line does.
14633
14634 * xdisp.c (display_mode_line): Don't hscroll mode line.
14635
14636 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
14637 windows.
14638 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
14639 garbage between mode lines when splitting windows horiz.
14640
14641 * dispnew.c (direct_output_for_insert): Bug fix.
14642
14643 * dispextern.h (struct display_cursor): New member string_length.
14644
14645 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 14646 (init_string_cursor): Take precision and field_width
26901792
DL
14647 (display_string): Use string cursor, skip over invisible text.
14648
14649Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
14650
14651 * xterm.c (x_clip_to_row): Clip to partially visible lines.
14652 (x_display_and_set_cursor): Call it.
14653 (draw_glyphs): Call it
14654 (draw_bitmap): Call it.
14655
427ec082 14656 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
14657 (allocate_leaf_matrix): Return flags.
14658 (row_equal_p): Compare enabled_p.
14659
14660 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
14661 for type == -1.
14662
14663 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 14664 (draw_glyphs): Clip height one pixel taller.
26901792 14665
427ec082 14666 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
14667 mini window.
14668
f28eba7b 14669 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 14670
427ec082
SS
14671 * xdisp.c (echo_area_display): Call update_single_window if
14672 possible.
26901792
DL
14673
14674 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 14675 (scrolling_window): Work on enabled desired lines only.
26901792
DL
14676 (update_single_window): Update a single window like update_frame
14677 does for all windows.
427ec082 14678 (update_window, update_window_tree): Additional argument
26901792
DL
14679 no_scrolling_p.
14680 (update_frame): Pass no_scrolling_p to update_window_tree.
14681 (update_window): Don't call scrolling_window if no_scrolling_p.
14682
14683 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
14684 Erase under hollow cursor.
14685 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
14686 not enabled. Draw bar cursor 1 pixel smaller.
14687
f28eba7b 14688 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
14689 since update will follow soon.
14690
14691 * xdisp.c (echo_area_display): Unitialized variable.
14692
f28eba7b 14693 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
14694 overlay arrow bitmap.
14695
f28eba7b 14696 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 14697 up to the final \n as part of the line for cursor positioning.
26901792 14698
f28eba7b
SM
14699 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
14700 (x_after_update_window_line): Clear trunc marks.
26901792
DL
14701
14702 * xterm.h (FRAME_X_TRUNC_WIDTH).
14703
f28eba7b 14704 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
14705 of a window reserved for truncation mark.
14706
427ec082 14707 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
14708
14709 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 14710 hook.
26901792
DL
14711
14712 * xdisp.c (display_line): Set overlay_arrow_p in row.
14713
14714 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
14715
14716 * xterm.c (x_after_update_window_line): Draw truncation marks.
14717
14718 * xdisp.c (display_line): Insert truncation for lines with
14719 current_x > 0.
14720
14721 * xterm.c (x_draw_row_borders): Convert y to frame coords.
14722 Correct y by 1.
14723 (x_display_cursor): Use default font width if width not
427ec082 14724 known.
26901792 14725
f28eba7b 14726 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
14727
14728 * dispnew.c (set_window_cursor_after_update): Don't assume
14729 all rows are enabled.
14730
14731 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
14732 of cursor.pos.
14733 (skip_in_display_line_to): Check cursor.position after call to
14734 next_display_element.
14735
427ec082 14736 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
14737 buffer position.
14738
14739 * xdisp.c (display_line): Set row->y here.
14740 (skip_in_display_line_to): Test for to_pos after all glyphs
14741 have been added to hpos so that hpos is at the end of all
14742 glyphs for to_pos.
14743 (start_display): Remove assertion.
14744
14745 * dispnew.c (direct_output_forward_char): Bug fix, = instead of
14746 ==.
14747 (update_window): Don't set row->y here.
14748
14749 * xdisp.c (next_display_element): Don't translate control chars
14750 from display table entries.
14751
427ec082 14752 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
14753 update end to prevent cursor flickering. Revert changes to
14754 setting cursor.endpos.
14755
14756Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
14757
14758 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
14759 to PT because this prevents multi-byte characters from being
14760 recognized.
14761
427ec082
SS
14762 * xdisp.c (skip_to, display_line): Advance cursor at end of
14763 truncated line.
26901792
DL
14764
14765 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
14766 replaced by XRectangle.
14767
14768 * dispnew.c (scrolling_window): New method.
14769
14770 * xterm.c (do_line_dance): New implementation, new method.
427ec082 14771
26901792
DL
14772 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
14773 visible part of line.
14774
14775 * dispnew.c (update_window_line): Fill inverse video lines
14776 with infinite width space.
14777 (update_window): Handle completely empty matrices.
14778 (set_window_cursor_after_update): Bug fix.
14779
427ec082 14780 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
14781
14782 * dispnew.c (update_window_line): Don't ignore spaces, don't
14783 fill with spaces.
14784
14785 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
14786 the first glyph having width 0.
14787
14788 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 14789 a glyph that extends to the end of the line.
26901792
DL
14790
14791 * xdisp.c (display_line): Insert one padding glyph
14792
14793 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
14794 amount from info.current_x.
14795 (display_line): Ditto.
14796
14797 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
14798 (change_frame_size_1): Correct cursor.x if frame gets too small.
14799 (update_window_line): Start at row->x.
14800
14801 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
14802 in xdisp.c).
14803
14804 * xterm.c (set_output_cursor): Use window relative X/Y.
14805 (global): Use window relative output cursor x/y.
14806 (draw_glyphs): Remove y param. Pass window relative x/y.
14807
14808 * dispnew.c (update_window): Start rows at start_y.
14809 (update_window): Don't try scrolling because it wouldn't work
14810 with variable height lines, anyway.
14811
14812 * dispextern.h (struct glyph_row): Remove shift_left_by,
14813 add x.
14814
14815 * window.h: (struct window): New member start_y.
14816
14817 * window.c (replace_window): Initialize start_y.
14818 (make_window): Ditto.
14819
14820Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
14821
14822 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 14823 the mode line.
26901792 14824
427ec082
SS
14825 * dispnew.c (update_window): Take mode line border into
14826 account.
26901792
DL
14827
14828 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 14829 of border around mode line.
26901792
DL
14830
14831 * xterm.c (x_draw_row_borders): Bug fix.
14832 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
14833 drawing functions.
14834
14835 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 14836 around modeline instead of inverting it.
26901792 14837
427ec082 14838 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
14839
14840 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
14841 window relative pixel coordinates as arguments.
14842
14843 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
14844 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
14845 COORDS mit new arguments.
14846
14847Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
14848
14849 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 14850 DISPLAY_LINE.
26901792
DL
14851
14852 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
14853 pixel coords.
14854 (make_lispy_movement): Same.
14855
14856 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
14857 with new parameter meaning.
14858
14859 * window.c (Fcoordinates_in_window_p): Convert Lisp params
14860 from canon units to pixels.
14861 (coordinates_in_window): Pixel based.
14862 (Fcoordinates_in_window_p): Convert result pixel values back
14863 to canonical units.
14864
14865 * window.h: phys_cursor_ascent + descent instead of height.
14866
14867 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
14868 chars with charset width 1.
14869
14870 * dispnew.c (direct_output_for_insert): Set updated_row.
14871
14872Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
14873
14874 * dispextern.h (struct glyph): Padding flag removed.
14875
14876Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
14877
14878 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
14879
14880 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
14881
14882 * dispnew.c (update_window_line): Use pixels.
14883
14884 * xdisp.c (compute_line_metrics): Correct pixel_width by
14885 shift_left_by.
14886
14887 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 14888 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
14889 glyph_row -> right_to_left_p. Change references to it.
14890
14891Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
14892
14893 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
14894
14895 * xterm.c (XTinsert_glyphs): Implement it.
14896
14897 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
14898 of a call from DIRECT_OUTPUT_FOR_INSERT.
14899
14900 * window.h (struct cursor_pos): Keeps both matrix positions
14901 and pixel positions.
14902 (struct window): Use it.
14903
14904 * dispnew.c (direct_output_for_insert): New version.
14905
14906 * xdisp.c (redisplay_internal): Don't do anything if it has
14907 already be done directly.
14908
14909 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
14910 for any character.
14911
14912Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
14913
14914 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
14915
14916Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
14917
14918 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
14919 (struct glyph): ASCENT, DESCENT.
14920 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
14921 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
14922
14923 * xterm.c (XTget_display_info): Correct tab computation.
14924
14925 * term.c (get_display_info): Correct tab computation.
14926
14927 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
14928 Renamed from CHAR_CURSOR.
14929
14930Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
14931
14932 * xdisp.c (display_text_line): Mostly pixel oriented.
14933
14934 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
14935
14936 * term.c (append_intermediate_glyph): Generate padding glyphs.
14937
14938 * xdisp.c (display_text_line): More into final direction.
14939
14940 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
14941 (XTget_char_info): Use tabs as multiples of spaces.
14942
14943 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
14944 Use tabs as multiples of spaces.
14945
14946 * dispextern.h (struct char_info ): WHAT field.
14947
14948 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
14949 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
14950
14951Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
14952
14953 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
14954 value.
14955 (init_char_info): Initialize with glyph row.
14956
14957 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
14958
14959 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
14960
14961 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
14962 glyphs.
14963
14964 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
14965 moved to xdisp.c.
14966
14967 * xdisp.c (display_text_line): Use CHAR_CURSOR.
14968
14969 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
14970 generation.
14971 (XTget_char_info): Ditto.
14972
14973 * term.c (get_char_info): Intermediate glyph generation.
14974 (append_intermediate_glyph): Ditto.
14975
14976Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
14977
427ec082 14978 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
14979 CHAR_CURSOR.
14980 (init_char_cursor): Initialize a CHAR_CURSOR.
14981 (get_char_and_advance): Get next character to display.
14982
14983 * dispextern.h (struct char_cursor): Cursor for iterating over
14984 display text of CURRENT_BUFFER.
14985
14986Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
14987
14988 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
14989
14990 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
14991 New member MAX_PIXEL_HEIGHT.
14992
14993 * xterm.c (x_per_char_metric): Get per character metrics.
14994 (XTget_char_info): More cases covered.
14995
14996 * term.c (get_char_and_info): Get next character and character
14997 display information.
14998 (get_char_info): Get character display information.
14999
15000 * dispextern.h: Character display information.
15001
427ec082 15002 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
15003 encode character.
15004 (XTget_char_info): Get display information about a character.
15005
15006Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
15007
15008 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
15009 zero if window is mini-window.
15010
15011 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
15012 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
15013
427ec082 15014 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
15015 (clear_glyph_row): Clear pixel height.
15016 (update_window): Use PIXEL_HEIGHT.
15017
15018 * xdisp.c (display_string): Set row pixel height temporarily.
15019 (display_text_line): Ditto.
15020
427ec082 15021 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
15022 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
15023
427ec082 15024 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
15025 line in default font.
15026 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
15027 in default font.
15028 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
15029
15030 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
15031 in pixels.
15032
15033 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
15034
15035 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
15036 (WINDOW_DISPLAY_PIXEL_HEIGHT):
15037 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
15038 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
15039 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
15040 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
15041 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
15042 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
15043 pixel values related to windows.
15044
15045Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
15046
15047 * xterm.c (XTflash): Flash last line of frame.
15048
15049 * dispextern.h (cursor_in_echo_area): Extern declaration.
15050
15051 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
15052 freezes stem from 16-bit functions.
15053
15054 * xterm.c (x_display_and_set_cursor): Don't display hollow
15055 cursor in mini windows.
15056
15057 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
15058 (make_window): Ditto.
15059
15060 * xterm.c (x_erase_phys_cursor): Erase cursor image.
15061 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15062 and X_DISPLAY_BAR_CURSOR.
15063 (x_display_cursor): Use it.
15064 (x_update_window_cursor): Use it.
15065
15066 * xdisp.c (display_text_line): Set cursor for window even if not
15067 selected.
15068
15069 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15070 of X and Y to denote matrix positions.
15071 (x_display_cursor): Ditto.
15072
15073 * dispnew.c (scrolling_window): Scrolling for windows.
15074
15075Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15076
15077 * dispnew.c (build_frame_matrix): Work on windows with update
15078 flag set.
15079 (build_frame_matrix_from_window_tree): Ditto.
15080 (build_frame_matrix_from_leaf_window): Ditto.
15081
15082 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15083 building frame matrix.
427ec082 15084 (redisplay_internal): Set window update flags instead of
26901792
DL
15085 building frame matrix.
15086
15087 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15088 building frame matrix.
15089
15090 * window.c (make_window): Initialize new members.
15091 (replace_window): Ditto.
15092
15093 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15094 I don't believe this is really necessary.
15095
15096 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 15097 border glyph once.
26901792
DL
15098
15099Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15100
427ec082 15101 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
15102 window tree off.
15103
427ec082 15104 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
15105 window matrix.
15106 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15107 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15108 (x_update_cursor): Work on windows.
15109 (x_display_bar_cursor): Ditto.
15110 (x_draw_single_glyph): Ditto.
15111
15112 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15113
15114 * xterm.c (XTcursor_to): Void return type. Test for
15115 UPDATED_WINDOW. Call x_display_cursor with window.
15116 (x_display_cursor): Void return type. Window instead of frame
15117 parameter.
15118
15119 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions
15120 below.
15121
15122 * window.c (window_rightmost_p, window_topmost_p): Based on
15123 window tree.
15124
15125 * dispnew.c (adjust_frame_message_buffer): Allocate with
15126 FRAME_MESSAGE_BUF_SIZE.
15127
15128 * window.h: PHYS_CURSOR_.* added.
15129
15130 * frame.h (struct frame): Cursor information removed.
15131
15132 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15133 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15134
15135 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15136
15137 * window.c (window_internal_width): Scroll bars no longer
15138 part of window.
15139
15140 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH
15141 removed.
15142
15143 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH
15144 removed.
15145
15146 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15147 (redisplay_internal): Ditto.
15148 (redisplay_window): Ditto.
15149 (redisplay_window): Ditto.
15150 (display_text_line): Ditto.
15151 (display_mode_line): Ditto.
15152
15153 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15154
15155 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15156 (direct_output_for_insert): Ditto.
15157 (direct_output_forward_char): Ditto.
15158 (update_frame_1): Ditto.
15159
15160Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15161
15162 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
15163 being updated.
15164 (update_window): Set and clear it.
15165
15166 * dispnew.c (update_window_line, update_window, scrolling_window):
15167 First versions.
15168
15169 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15170 bar for window borders.
15171 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15172 with spaces.
15173 (fill_up_glyph_row_with_spaces): Call above function.
15174
15175 * xdisp.c (display_text_line): Don't add vertical bar for
15176 window borders.
15177 (display_string): Ditto.
15178
15179 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15180 (replace_window): Ditto.
15181
15182 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15183
15184 * xfns.c (Fx_contour_region): Use selected window cursor position.
15185 (Fx_uncontour_region): Ditto.
15186 (Fx_select_region): Ditto.
15187
15188 * frame.c (make_frame): Remove CURSOR_X/Y.
15189
15190 * xdisp.c (redisplay_internal): Use window cursor position.
15191
15192 * dispnew.c (update_frame_1): Use cursor position of selected
15193 window.
15194 (change_frame_size_1): Ditto.
15195
15196 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15197 (XTwrite_glyphs): Use cursor position of selected window.
15198
15199 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected
15200 window.
15201
15202 * dispnew.c (set_cursor_to): Set window cursor position.
15203 (direct_output_for_insert): Use window cursor position.
15204 (init_display): Don't use frame cursor position.
15205
15206 * window.h: CURSOR_VPOS/HPOS added.
15207
15208 * frame.h (struct frame): CURSOR_X/Y removed.
15209 (FRAME_CURSOR_X): Removed.
15210 (FRAME_CURSOR_Y): Ditto.
15211
15212 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15213 (direct_output_forward_char): Ditto.
15214
15215 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y
15216 removed.
15217
15218 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15219
15220 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15221
15222Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15223
15224 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15225 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15226
15227 * dispextern.h: Changed function names.
15228
15229 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15230 < 2.
15231 (clear_window_matrices): Formerly two functions for desired
15232 and current matrix.
15233 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15234 (update_frame): Return return value from UPDATE_FRAME_1.
15235
15236Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15237
15238 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15239 LAST_TEXT_VPOS.
15240
15241 * frame.c (set_menu_bar_lines): Adjust matrices.
15242
15243 * dispnew.c (set_cursor_to): Set cursor position.
15244
15245 * minibuf.c (read_minibuf): Build frame matrix.
15246
15247 * xdisp.c (this_line_start_hpos): Renamed to
15248 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15249 relative.
15250 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15251 reason.
15252
427ec082 15253 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15254 menu bar.
15255 (clear_window_records): Clear window rows.
15256 (clear_frame_records): Clear window and frame rows.
15257 (clear_glyph_matrix): Set all rows of a matrix to empty.
15258
15259 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P. Update
15260 frame if set.
15261 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15262 removed.
15263 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15264 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15265
15266 * dispnew.c (assign_row): Assign one glyph row to another.
15267 (mirrored_make_current): Use it.
15268 (mirror_make_current): Use it.
15269 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15270 used counters for the current glyph row.
427ec082 15271
26901792
DL
15272
15273Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15274
15275 * lisp.h: Prototype for SCAN_BUFFER.
15276
15277 * xdisp.c (redisplay_windows): Simplified.
15278
15279 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15280 with debug checks.
15281 (window_to_frame_hpos): Convert window to frame hpos with checks.
15282 (frame_to_window_vpos): Convert frame to window vpos with checks.
15283 (frame_to_window_hpos): Convert frame to window hpos with checks.
15284
15285 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15286
15287 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15288
15289 * xdisp.c (redisplay_internal): Another instance of
15290 DISPLAY_TEXT_LINE with window relative VPOS.
15291 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15292
15293 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15294 only.
15295
15296 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15297 (redisplay_internal): Ditto.
15298
15299 * dispnew.c (cancel_window_line): Use window matrix. Changed
15300 name to CANCEL_WINDOW_LINE.
15301
15302 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15303 relative VPOS.
15304
427ec082
SS
15305 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15306 to frame vpos.
26901792
DL
15307 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15308 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15309 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15310
15311 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15312 window relative VPOS.
15313 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15314 relative VPOS.
15315
15316 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15317 MATRIX_BUFFER_POSITIONS.
15318
15319 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15320
15321 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15322
427ec082 15323 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15324 matrix. Change name to scroll_full_width_window.
15325
15326 * xdisp.c (message2_nolog): Don't fwrite NULL message If
15327 NONINTERACTIVE.
15328
15329Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15330
15331 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15332 and window matrices.
26901792
DL
15333 (adjust_window_charstarts): Use window matrix.
15334 (cancel_my_columns): Use window matrix.
15335 (direct_output_for_insert): Use window matrix, only.
15336
15337 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15338 (display_string): Call display_glyphs.
15339 (display_menu_bar_string): Display a string in a menu bar line.
15340 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15341 (display_text_line): Use window matrix.
15342 (try_window): Use window relative positions.
15343
15344Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15345
15346 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
15347 (0, 0).
15348 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
15349 top-most windows.
15350
15351 * window.h (WINDOW_TOPMOST_P): Added.
15352
15353 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15354 (redisplay_window): Ditto.
15355 (display_text_line): Ditto.
15356 (display_menu_bar): Ditto.
15357 (display_mode_line): Ditto.
15358 (display_mode_line): Use window matrix.
15359 (display_string): Use window matrix.
15360 (display_mode_element): Ditto.
15361 (echo_area_display): Don't display if frame has no pools yet.
15362 (echo_area_display): Work with window matrix for mini window.
15363 (redisplay_window): Use window marix for mini window.
15364 (display_text_line): Assume HPOS and VPOS are window relative and
15365 use that for DISPLAY_STRING.
15366
15367 * dispextern.h: Prototype for prepare_desired_row.
15368
15369 * dispnew.c (prepare_desired_row): Replacement for
15370 GET_DISPLAY_LINE.
15371
15372 * dispnew.c (adjust_window_charstarts): Always allocate window
15373 matrices.
15374 (clear_glyph_row): Only reset used counters and flags.
15375
15376Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15377
15378 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15379 line is non-empty.
26901792
DL
15380 (realloc_glyph_pool): Don't add 1 to the pool size.
15381 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15382
15383 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15384 (line_draw_cost): Ditto.
15385 (update_line): Ditto.
15386 (update_line): Use SPACE_GLYPH.
15387 (count_blanks): Additional parameter LEN.
15388
15389 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15390 (display_text_line): Don't add null-glyph end marker.
15391 (display_string): Use SPACE_GLYPH.
15392 (display_string): Don't use null-glyph end marker.
15393
15394 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15395
15396 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15397 (fill_up_glyph_row_with_spaces): Ditto.
15398 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15399 rows, instead of null-glyphs.
15400 (direct_output_for_insert): Don't add null-glyph end marker.
15401
15402 * scroll.c (do_direct_scrolling): Change algorithm to construct
15403 vector of lines assigned. Call MIRRORED_LINE_DANCE:
15404 (do_scrolling): Ditto.
15405
15406 * dispnew.c (mirror_line_dance): Mirror line assignments in a
15407 frame matrix in window matrices.
15408 (mirrored_line_dance): Do line assignments during scrolling.
15409 Maybe do corresponding assignments in window matrices.
15410 (check_window_matrix_pointers): Check that window rows and frame
15411 rows agree about glyph pointers.
15412 (check_matrix_pointers): Ditto.
15413 (mirrored_make_current): Make a row of a desired matrix current;
15414 maybe mirror the operation in window matrices.
15415 (mirror_make_current): Make window desired matrix row current when
15416 frame matrix row was made current.
15417
15418Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15419
15420 * dispnew.c (check_matrix_pointer_lossage): Check against
15421 pointer lossage in matrices.
15422 (get_glyph_matrix_row): Removed.
15423
15424 * scroll.c (do_scrolling): Simplified.
15425 (do_direct_scrolling): Simplified.
15426 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
15427 DO_.*SCROLLING.
427ec082 15428
26901792
DL
15429
15430 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15431 (rotate_vector): Removed.
15432 (rotate_pointers): Removed.
15433 (scroll_frame_lines): Simplified.
15434
15435Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15436
15437 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15438
15439 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15440 what the name says.
15441 (clear_glyph_row): Make a glyph row structure empty.
15442 (make_matrix_row_current): Make a glyph row current.
15443 (make_window_matrix_row_current): Perform analogous row swaps
15444 for window matrices.
15445 (update_line): Call make_matrix_row_current.
15446
15447Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15448
15449 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15450 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15451 INVERSE_P.
15452 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15453 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15454
15455 * all files: use above new names.
15456
15457 * dispnew.c (scroll_frame_lines): Simplified. Use
15458 SCROLL_GLYPH_MATRIX.
15459 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15460 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15461 buffer positions in a glyph row.
15462 (increment_glyph_matrix_buffer_positions): Increment buffer
15463 positions in a range of rows.
15464 (scroll_glyph_matrix): Scroll a glyph matrix.
15465 (swap_glyphs_in_rows): Swap glyphs between rows.
15466 (swap_glyph_pointers): Swap pointers between rows.
15467 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15468 (init_display): Initialize SPACE_GLYPH.
15469 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15470 spaces.
26901792
DL
15471
15472Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15473
15474 * xterm.c (dumprectangle): Use vectors in glyph rows.
15475
15476 * xdisp.c (display_text_line): Use vectors in glyph rows.
15477 (display_string): Ditto.
15478
15479 * scroll.c (do_scrolling): Use vectors in glyph rows.
15480 (do_direct_scrolling): Ditto.
15481
15482 * alloc.c (mark_object): Use vectors in glyph rows.
15483 Mark for all frame types.
15484
15485 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15486 glyph rows.
15487 (get_glyph_matrix_row): Ditto.
15488 (matrix_row): Ditto.
15489 (rotate_pointers): Ditto.
15490 (scroll_frame_lines): Ditto.
15491 (preserve_other_columns): Ditto.
15492 (cancel_my_columns): Ditto.
15493 (update_line): Ditto.
15494 (direct_output_for_insert): Ditto.
15495
15496 * dispextern.h (struct glyph_row): Use a vector of pointers
15497 instead of individual members. Use a vector of used counters.
15498 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15499 (MATRIX_ROW_GLYPH_START): Ditto.
15500 (MATRIX_ROW_GLYPH_END): Ditto.
15501 (MATRIX_ROW_USED): Ditto.
15502 (MATRIX_ROW_SET_USED): Ditto.
15503
15504 * dispnew.c (line_hash_code): Simplified.
15505
15506Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15507
15508 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15509 CHANGE_FRAME_SIZE_1
15510 (preserve_other_columns): Void return.
15511 (cancel_my_columns): Void return type.
15512 (scrolling): Int return type.
15513 (do_pending_window_change): Void return type.
15514 (change_frame_size): Ditto.
15515 (bitch_at_user): Ditto.
15516 (init_display): Ditto.
15517 (syms_of_display): Ditto.
15518
15519 * dispextern.h: add prototypes for REDRAW_FRAME,
15520 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15521 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15522 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15523 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15524 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15525 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
15526 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15527
26901792
DL
15528 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
15529 void.
15530 (cancel_line): Return void.
15531 (clear_frame_records): Return void.
427ec082 15532
26901792
DL
15533 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15534 (SET_CHAR_GLYPH): Fill a character glyph.
15535 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15536 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15537 glyph.
26901792
DL
15538 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15539 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15540 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15541 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15542 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15543 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15544 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15545 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15546 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15547
15548 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15549
15550 * window.h (struct window): Add comment that no Lisp data may
15551 come below CURRENT_MATRIX.
15552
15553 * alloc.c (mark_object): Change window mark code to stop with
15554 member CURRENT_MATRIX.
15555
15556Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15557
15558 * scroll.c (do_scrolling): Change algorithm to use pointers.
15559 (do_direct_scrolling): Ditto.
15560
15561 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15562 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15563 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15564 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
15565 Returns 1 if pool changed.
15566 (matrix_row): Additional check for lost pointers to glyph rows.
15567 (compute_matrices): Additional parameter DIM_P set means that no
15568 allocation should take place. Addtional parameter
15569 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
15570 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
15571 when window matrix changes. Additional parameter DIM_ONLY_P set
15572 to 1 to indicate that no allocation should take place.
15573 (adjust_frame_glyphs): Construct new glyph pools and glyph
15574 matrices. Optimize frame redraws.
15575 (free_glyphs): Free pools.
15576 (check_glyph_memory): Check pools not freed.
15577 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15578 (scroll_frame_lines): Change algorithm to use pointers.
15579 (update_line): Ditto.
15580
15581 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15582 (global): All macro names changed from prefix FRAME_MATRIX to
15583 MATRIX.
15584
15585Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15586
15587 * dispextern.h (struct glyph_pool): Replacement for former
15588 FRAME_GLYPH_MATRIX.
15589 (struct glyph_matrix): No longer contains sizes of allocated
15590 areas.
15591
15592 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15593 no glyph pools.
15594
15595 * frame.c (make_frame): Initialize pools.
15596
15597Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
15598
427ec082 15599 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
15600 line moving algorithm has no intermediate steps.
15601 (do_scrolling): Ditto.
15602
15603 * Makefile.in (alloc.o): Add dependency dispextern.h.
15604
15605 * alloc.c: Include dispextern.h for glyph definitions.
15606
15607 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
15608 is legal, return 0 otherwise.
15609
15610 * window.h: Add comment that windows are marked specially.
15611
15612 * alloc.c (mark_object): Mark windows specially.
15613
15614
15615Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
15616
15617 * dispextern.h (struct glyph): Add member OBJECT
15618 referencing a Lisp object from which a glyph was drawn.
15619 Member TEXT_POSITION renamed POSITION.
15620 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
15621
15622 * alloc.c: Include dispextern.h
15623 (mark_object): Mark objects referenced from glyphs.
15624
f28eba7b 15625 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
15626
15627 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
15628 (do_scrolling): Ditto.
15629
427ec082 15630 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
15631 DECODE_MODE_SPEC_BUFFER added.
15632
15633 * window.h: TEMP_MATRIX removed.
15634
15635 * scroll.c: OPHYS_LINES removed.
15636
15637 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
15638 FRAME_PTR -> struct frame *.
15639
15640 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
15641 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15642
15643 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
15644 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15645
15646 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
15647 (do_verify_charstarts): Removed.
15648
15649 * frame.c (Fmake_terminal_frame): Adjust glyphs.
15650 (Fdelete_frame): Free glyphs.
15651 (make_frame): Initialize matrix fields in frame.
15652
f28eba7b 15653 * config.in (PROTO): Added.
26901792 15654
f28eba7b 15655 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
15656
15657 * window.c (Fdelete_window): Free window matrices.
15658 (Fset_window_configuration): Ditto.
15659 (Fdelete_window): Adjust glyphs.
15660 (Fsplit_window): Ditto.
15661 (change_window_height): Ditto.
15662 (Fset_window_configuration): Ditto.
15663 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
15664 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
15665
15666 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
15667
15668 * window.c: Include dispextern.h
15669
15670 * scroll.c (do_scrolling): Use new glyphs.
15671 (do_direct_scrolling): Ditto.
15672
15673 * xdisp.c: Some function prototypes.
15674 (redisplay_internal): Don't do anything if matrices not yet set.
15675 (redisplay_internal): Use new glyphs.
15676 (try_window_id): Ditto.
15677 (copy_part_of_rope): Ditto.
15678 (display_text_line): Ditto.
15679 (display_menu_bar): Ditto.
15680 (display_mode_line): Ditto.
15681 (display_string): Ditto.
15682
15683 * xterm.c: Prototypes for some local functions.
15684 (dumpglyphs): Use new glyphs.
15685 (XTwrite_glyphs): Ditto.
15686 (dumprectangle): Ditto.
15687 (note_mouse_highlight): Ditto.
15688 (fast_find_position): Ditto.
15689 (show_mouse_face): Ditto.
15690 (x_draw_single_glyph): Ditto.
15691 (x_display_bar_cursor): Ditto.
15692 (x_display_box_cursor): Ditto.
15693 (x_new_font): Adjust glyphs when font change.
15694
15695 * term.c (clear_end_of_line): Use new glyphs.
15696 (write_glyphs): Ditto.
15697 (insert_glyphs): Ditto.
15698
15699 * Makefile.in (term.o): term.c depends on dispextern.h
15700
15701 * term.c: Include dispextern.h
15702
15703 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 15704 removed, new inserted.
26901792
DL
15705 (line_hash_code): Use new glyphs.
15706 (line_draw_cost): Ditto
15707 (cancel_line): Ditto
15708 (clear_frame_records): Ditto.
15709 (init_desired_glyphs): Ditto.
15710 (get_display_line): Ditto
15711 (scroll_frame_lines): Ditto.
15712 (preserve_other_columns): Ditto.
15713 (adjust_window_charstarts): Ditto.
15714 (cancel_my_columns): Ditto.
15715 (direct_output_for_insert): Ditto.
15716 (update_frame): Ditto.
15717 (quit_error_check): Made empty.
15718 (scrolling): Use new glyphs.
15719 (count_blanks): Ditto.
15720 (count_match): Ditto.
15721 (update_line): Ditto.
15722 (init_display): Adjust glyphs initially.
15723 (change_frame_size_1): Adjust glyphs.
15724
15725 * dispextern.h: Old glyphs removed, new added.
15726
15727 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
15728
15729 * xterm.h: Prototype for min_char_bounds.
15730
15731 * window.h (struct window): Remove old glyphs, add new.
15732
15733 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 15734
26901792
DL
157351999-07-20 Dave Love <fx@gnu.org>
15736
15737 * buffer.c (syms_of_buffer): Make
15738 default-enable-multibyte-characters a user variable.
15739
157401999-07-14 Richard Stallman <rms@gnu.org>
15741
15742 * Version 20.4 released.
15743
157441999-07-14 Richard Stallman <rms@gnu.org>
15745
15746 * filelock.c (lock_file): Do nothing if purifying.
15747
157481999-07-10 Richard Stallman <rms@gnu.org>
15749
15750 * xterm.c (x_display_bar_cursor): Use the cursor-color
15751 to display the bar, not the cursor foreground pixel.
15752
157531999-07-09 Andrew Innes <andrewi@gnu.org>
15754
15755 * w32console.c (w32_use_full_screen_buffer): New variable.
15756 (syms_of_ntterm): Register it.
15757 (initialize_w32_display): Set initial frame size accordingly,
15758 respecting the LINES and COLUMNS environment variables if set.
15759
15760 * w32inevt.c (w32_console_read_socket): Use it.
15761
157621999-07-07 Kenichi Handa <handa@etl.go.jp>
15763
15764 * callproc.c (Fcall_process): Decide coding system for decoding
15765 after we set to the target buffer. If the output goes to a
15766 unibyte buffer, suppress character code conversion.
15767
15768 * fileio.c (Finsert_file_contents): If reading into a unibyte
15769 buffer, suppress character code conversion.
15770
15771 * process.c (create_process): If the output goes to a unibyte
15772 buffer, suppress character code conversion.p
15773
157741999-07-07 Andreas Schwab <schwab@gnu.org>
15775
15776 * xdisp.c (line-number-display-limit): Doc fix.
15777
157781999-07-05 Richard Stallman <rms@gnu.org>
15779
15780 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
15781 (Fcall_process_region): Likewise.
15782
157831999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
15784
15785 * callproc.c (init_callproc): Set exec_directory if
15786 installation_directory is non-nil, without a test of exec_path.
15787
157881999-07-01 Andrew Innes <andrewi@gnu.org>
15789
15790 * w32xfns.c (drain_message_queue): New function.
15791
15792 * w32term.h (drain_message_queue): Add extern.
15793
15794 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
15795 of WaitForMultipleObjects when user input is allowed, so we can
15796 handle incoming window messages. Call drain_message_queue when
15797 there are messages waiting; this ensures that windows created
15798 indirectly from the lisp thread get processed properly, and don't
15799 hang other applications by failing to respond to broadcasts.
15800
158011999-07-01 Andreas Schwab <schwab@gnu.org>
15802
15803 * callint.c (Fcall_interactively): Ignore first element of
15804 event-symbol-elements property.
15805
158061999-07-01 Richard Stallman <rms@gnu.org>
15807
15808 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
15809
158101999-07-01 Kenichi Handa <handa@etl.go.jp>
15811
15812 * minibuf.c (read_minibuf): Set the multibyteness of the
15813 minibuffer before inserting `initial' string.
15814
158151999-06-30 Richard Stallman <rms@gnu.org>
15816
15817 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
15818
158191999-06-29 Richard M. Stallman <rms@gnu.org>
15820
15821 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
15822 Move the handling of MALLOC_CHECK_ envvar here.
15823 (main): Moved from here.
15824
158251999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
15826
15827 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
15828 function, assigned to the global __malloc_initialize_hook pointer.
15829 (main): Move malloc_set_state call into malloc_initialize_hook
15830 so that it happens as early as possible.
15831
158321999-06-27 Richard M. Stallman <rms@gnu.org>
15833
15834 * keyboard.c (read_key_sequence): Properly reinitialize
15835 fkey_map after translating thru Vkey_translation_map.
15836 After translating thru Vfunction_key_map, don't reset
15837 keytrans-start to 0.
15838
158391999-06-24 Geoff Voelker <voelker@cs.washington.edu>
15840
15841 * w32.c (get_emacs_configuration): Use GetVersionEx to
15842 handle NT5.0 correctly. Include build number in configuration.
15843 w32heap.c (osinfo_cache): New variable.
15844 (cache_system_info): Initialize osinfo_cache.
15845 w32heap.h (osinfo_cache): Declare.
15846
158471999-06-24 Richard M. Stallman <rms@gnu.org>
15848
15849 * casefiddle.c (casify_object): Use make_multibyte_string
15850 if we casify a multibyte string.
15851
158521999-06-22 Ken'ichi Handa <handa@gnu.org>
15853
15854 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
15855 del_range_byte instead of del_range_1, set `inserted' to the
15856 number of characters actually inserted.
15857
158581999-06-17 Dave Love <fx@gnu.org>
15859
15860 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
15861
158621999-06-18 Paul Eggert <eggert@twinsun.com>
15863
15864 * filelock.c (BOOT_TIME_FILE): New macro.
15865 (get_boot_time): Use it instead of hardwiring the file name.
15866 Check BOOT_TIME_FILE only after inspecting the kernel directly.
15867
158681999-06-17 Dave Love <fx@gnu.org>
15869
15870 * xdisp.c (invalid_eol_type): Make it unsigned.
15871
158721999-06-17 Karl Heuer <kwzh@gnu.org>
15873
15874 * process.c (send_process): Delete unsafe/redundant assignment.
15875
158761999-06-17 Jason Rumney <jasonr@gnu.org>
15877
15878 * w32term.c (dumprectangle): Handle wide characters properly.
15879
158801999-06-16 Andrew Innes <andrewi@gnu.org>
15881
15882 * s/ms-w32.h (strerror): Override the default implementation of
15883 strerror, so we can map winsock error codes.
15884
15885 * w32.c (sys_strerror): New function.
15886
15887 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
15888
158891999-06-15 Ken'ichi Handa <handa@gnu.org>
15890
15891 * buffer.c (syms_of_buffer): Don't make
15892 enable-multibyte-characters customizable.
15893
158941999-06-15 Richard M. Stallman <rms@gnu.org>
15895
15896 * editfns.c (Fuser_full_name): Doc fix.
15897
158981999-06-14 Tak Ota <ota@atc.sel.sony.com>
15899
15900 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
15901 (get_bitmap_with_cache): Check if CreateBitmap failed.
15902 Adjust cache size dynamically so cache is never larger than the
15903 system limit of GDI resources.
15904 Do cache clearing inline. Move global variables to local scope.
15905
15906
159071999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
15908
15909 * unexsgi.c (unexec): Dump the .rodata section from memory
15910 under IRIX6.5 in order to be able to unexec with gcc.
15911
159121999-06-11 Greg Hudson <ghudson@MIT.EDU>
15913
15914 * indent.c (compute_motion): Fix boundary case.
15915
159161999-06-11 Jason Rumney <jasonr@altavista.net>
15917
15918 * w32term.c (cancel_mouse_face): New function. See equiv
15919 changes to xterm.c on 1996-10-31.
15920 (x_set_window_size): Use cancel_mouse_face.
15921 (w32_read_socket): Use cancel_mouse_face.
15922 Update frame position when size is restored.
15923
159241999-06-04 Richard M. Stallman <rms@gnu.org>
15925
15926 * lread.c (Vuser_init_file): New variable.
15927 (syms_of_lread): Set up Lisp variable.
15928 (Fload): Store the file name there, if var was t before.
15929
159301999-06-04 Paul Eggert <eggert@twinsun.com>
15931
15932 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
15933 doesn't work if the system date is changed, or if the system
15934 is suspended. Look at the last-modified time of
15935 /var/run/random-seed instead.
15936
159371999-06-03 Ken'ichi Handa <handa@gnu.org>
15938
15939 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15940 japanese-jisx0208-1978 correctly.
15941
159421999-06-03 Andrew Innes <andrewi@gnu.org>
15943
15944 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
15945 as possible to be dumped, for safety.
15946
159471999-06-02 Ken'ichi Handa <handa@gnu.org>
15948
15949 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15950 latin-jisx0201 correctly.
15951
159521999-05-26 Ken'ichi Handa <handa@gnu.org>
15953
15954 * charset.h (Vcharset_table): Comment fixed.
15955
159561999-05-24 Richard Stallman <rms@gnu.org>
15957
15958 * coding.c (syms_of_coding): Doc fix.
15959
15960 * buffer.c (syms_of_buffer): Doc fix.
15961
15962 * filelock.c (lock_if_free): After deleting a stale lock,
15963 try again to lock the file.
15964
159651999-05-22 Andrew Innes <andrewi@gnu.org>
15966
15967 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
15968 console window size.
15969 (w32_console_read_socket): Call maybe_generate_resize_event
15970 whenever input events are received, since we don't get told when
15971 the window size changes (as opposed to the buffer size, which we
15972 don't care about).
15973
15974 * w32console.c (clear_frame): Remember that the window width might
15975 be smaller than the screen buffer width.
15976 (write_glyphs): Remove redundant variable attrs. Use
15977 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
15978
159791999-05-20 Andrew Innes <andrewi@gnu.org>
15980
15981 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
15982 loses focus.
15983
15984 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
15985 frame loses focus, and that mouse button state is reset. Ditto
15986 when the menu bar is activated.
15987
159881999-05-18 Richard Stallman <rms@gnu.org>
15989
15990 * abbrev.c (Fdefine_abbrev): Doc fix.
15991
159921999-05-13 Paul Eggert <eggert@twinsun.com>
15993
15994 * filelock.c: Fix performance bug on hosts with large
15995 /var/adm/wtmp files with no boot records.
15996
15997 (boot_time_initialized): New var.
15998 (init_filelock): Initialize it.
15999 (get_boot_time): Use it, instead of nonzero boot_time,
16000 to test whether boot_time is initialized.
16001 Don't invoke utmp routines when dumping.
16002
16003 (get_boot_time): First, try to get the boot time from the
16004 current utmp file, as this can be much faster. Don't try to
16005 get the boot time from utmp and/or wtmp more than once.
16006
16007 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
16008 New arg LATEST. All uses changed.
16009
160101999-05-15 Andrew Innes <andrewi@gnu.org>
16011
16012 * w32term.c (dumpglyphs): Use correct colours for drawing
16013 rectangles in place of missing fonts, and make them the right
16014 size.
16015
160161999-05-14 Dave Love <fx@gnu.org>
16017
16018 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
16019 non-nil.
16020
160211999-05-11 Andrew Innes <andrewi@gnu.org>
16022
16023 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
16024 definition.
16025 (w32_wnd_proc): Reinstall debugging output.
16026 (w32_wnd_proc): Reinstall SetForegroundWindow change.
16027 (syms_of_w32fns): Reinstall new initializer for
16028 Vw32_phantom_key_code.
16029
16030 * w32fns.c (x_to_w32_charset): Do partial matching of charset
16031 names for most non-European charsets, to cope with wildcards or
16032 missing spec dates.
16033 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
16034 to avoid deadlock when activating the menu bar.
16035
160361999-05-10 Ken'ichi Handa <handa@gnu.org>
16037
16038 * search.c (boyer_moore): Get charset base value of `untranslated'
16039 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
16040
160411999-05-10 Andreas Schwab <schwab@gnu.org>
16042
16043 * fileio.c (Fread_file_name): Correct handling of dollars in file
16044 names. Protect dollars in strings put on the file-name-history.
16045 Substitute homedir by `~' also in default_filename.
16046
16047 * xdisp.c (try_window_id): Fix computation of tab_offset when
16048 backing up over a character that is splitted across lines.
16049
160501999-05-08 Kenichi HANDA <handa@etl.go.jp>
16051
16052 * coding.c (code_convert_region): If eol format is inconsistent,
16053 change coding->symbol to the sibling coding system of Unix like
16054 eol format.
16055
160561999-05-09 Richard M. Stallman <rms@gnu.org>
16057
16058 * s/irix5-2.h (NO_WTMP_FILE): Define it.
16059
16060 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
16061
160621999-05-05 Andrew Innes <andrewi@gnu.org>
16063
16064 * w32fns.c (w32_strict_painting): New variable.
16065 (w32_wnd_proc): Use it to select repaint rules.
16066 (syms_of_w32fns): Defvar it.
16067
160681999-05-04 Andrew Innes <andrewi@gnu.org>
16069
16070 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16071 charsets to the standard Windows charset for Japanese.
16072
160731999-05-04 Ken'ichi Handa <handa@gnu.org>
16074
16075 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16076
16077 * ccl.h (struct ccl_program): New member stack_idx.
16078
16079 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16080 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16081 before returing.
16082 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16083
160841999-05-03 Jason Rumney <jasonr@altavista.net>
16085
16086 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16087
160881999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16089
16090 * dired.c (make_time): Make argument type be time_t.
16091
160921999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16093
16094 * msdos.c (unibyte_display_via_language_environment): Add extern.
16095
83c8f461 160961999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
16097
16098 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16099 if unibyte_display_via_language_environment is set.
16100 (unibyte_display_via_language_environment):
16101 Variable moved from xfns.c and elsewhere.
16102 (syms_of_xfns): Set up Lisp var.
16103
16104 * xfns.c (unibyte_display_via_language_environment):
16105 Variable moved to xdisp.c.
16106 (syms_of_xfns): Don't set up Lisp var here.
16107
16108 * msdos.c (unibyte_display_via_language_environment):
16109 Variable moved to xdisp.c.
16110 (syms_of_msdos): Don't set up Lisp var here.
16111
16112 * w32fns.c (unibyte_display_via_language_environment):
16113 Variable moved to xdisp.c.
16114 (syms_of_w32fns): Don't set up Lisp var here.
16115
161161999-05-02 Andrew Innes <andrewi@gnu.org>
16117
16118 * s/ms-w32.h (HAVE_FSYNC): New macro.
16119 (fsync): Map to _commit.
16120 (ftruncate): Map to _chsize.
16121
16122 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16123 for ASCII, if enabled, to avoid memory allocation overhead for
16124 implicit Unicode conversion. Also, recognize that ASCII and
16125 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16126 already contains the Unicode characters in that case.
16127 (construct_drag_n_drop): Remove old code that was
16128 trashing the drop location.
16129
16130 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16131 nlines to encoding_buffer_size (real bug was in a ccl program in
16132 lisp/international/coding.el).
16133
16134 * w32reg.c (w32_get_string_resource): Check for name in current
16135 user area, and if not found look in the local machine area.
16136
16137 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16138 (Fw32_shell_execute): New function; used to support browse-url.
16139 (syms_of_w32fns): Register it.
16140 (w32_load_system_font): Force max width to be average
16141 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16142 slowdown.
16143 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16144 already defined.
16145 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16146
16147 * unexw32.c (get_section_info): Dump back the entire EMDATA
16148 section if we can put Emacs' initialized data in a separate
16149 section, otherwise use the my_begdata/my_edata method.
16150
16151 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16152
16153 * coding.c (decode_eol): Set produced/consumed values to zero if
16154 src_bytes is <= 0 on entry.
16155
161561999-05-02 Jason Rumney <jasonr@altavista.net>
16157
16158 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16159 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16160 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16161 field in frame.
16162 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16163 (dumprectangle): Take into account the width of a left-side
16164 scroll bar.
16165
16166 * w32proc.c (sys_kill): Attach to current foreground thread
16167 when grabbing focus; necessary on NT 5.0.
16168
16169 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16170 GetUpdateRect rather than BeginPaint.
16171 (w32_wnd_proc): Attach to current foreground thread
16172 when grabbing focus; necessary on NT 5.0.
16173 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16174 debugging display messages.
16175 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16176 false matching.
16177
161781999-05-02 Kenichi HANDA <handa@etl.go.jp>
16179
16180 * coding.c (setup_raw_text_coding_system): Call
16181 setup_coding_system to initialize the fields of struct
16182 coding_system correctly.
427ec082 16183
26901792
DL
161841999-04-26 Kenichi HANDA <handa@etl.go.jp>
16185
16186 * xterm.c (x_list_fonts): Fix previous change.
16187
161881999-04-26 Richard Stallman <rms@gnu.org>
16189
16190 * config.in (HAVE_LIBXP): Add #undef.
16191 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16192
161931999-04-12 Ken'ichi Handa <handa@gnu.org>
16194
16195 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16196 by them.
16197
161981999-04-12 Karl Heuer <kwzh@gnu.org>
16199
16200 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16201
162021999-04-11 Ken'ichi Handa <handa@gnu.org>
16203
16204 * fontset.c (Fset_fontset_font): Fix previous change.
16205
162061999-04-09 Ken'ichi Handa <handa@gnu.org>
16207
16208 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16209 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16210
162111999-04-08 Richard Stallman <rms@gnu.org>
16212
16213 * process.c (Faccept_process_output): Check validity of PROCESS.
16214
162151999-04-08 Eli Zaretskii <eliz@gnu.org>
16216
16217 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16218
162191999-04-07 Richard Stallman <rms@gnu.org>
16220
16221 * xfns.c (x_set_font): Fix error message.
16222
16223 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16224 (Fnew_fontset, Fset_fontset_font): Check for them here.
16225 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16226 Fix error message syntax.
16227
16228 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16229 from the base buffer.
16230 (Fset_buffer_multibyte): Copy new multibyte status
16231 into the buffer's indirect buffers.
16232
162331999-04-07 Ken'ichi Handa <handa@gnu.org>
16234
16235 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16236 tail.
16237
162381999-04-06 Richard Stallman <rms@gnu.org>
16239
16240 * dired.c (Ffile_attributes): Doc fix.
16241
16242 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16243 Convert 0200 to meta only in a unibyte string.
16244 (Fkey_description): Likewise.
16245
16246 * eval.c (do_autoload): Preserve match data.
16247
162481999-04-06 Kenichi HANDA <handa@etl.go.jp>
16249
16250 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16251 encode_coding to avoid carryover.
16252
16253 * coding.c: Add comments for decode_coding and encode_coding.
16254
16255 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16256 a composite character by skipping its leading code.
16257 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16258 correctly.
16259
16260 * coding.c: Add comments for decode_coding and encode_coding.
16261
16262 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16263 a composite character by skipping its leading code.
16264 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16265 correctly.
16266
162671999-04-06 Eli Zaretskii <eliz@gnu.org>
16268
16269 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16270 table was used.
16271 (jp_kbd_translate_table): Support C-\.
16272 (it_kbd_translate_table): Map `>' correctly.
16273 (it_keyboard): Add `>'.
16274
162751999-04-06 Richard Stallman <rms@gnu.org>
16276
16277 * intervals.c (graft_intervals_into_buffer): Turn off
16278 inhibit_modification_hooks around calling Fset_text_properties.
16279
162801999-04-05 Kenichi HANDA <handa@etl.go.jp>
16281
16282 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16283 glyphs.
16284
162851999-04-05 Eli Zaretskii <eliz@gnu.org>
16286
16287 * msdos.c (jp_kbd_translate_table): Fix last change.
16288
162891999-04-04 Eli Zaretskii <eliz@gnu.org>
16290
16291 * msdos.c (struct kbd_translate): New struct, for key translation
16292 tables private to certain national keyboard layouts.
16293 (struct dos_keyboard_map): Add a pointer to a private translation
16294 table.
16295 (jp_kbd_translate_table): Private table for the Japanese
16296 keyboard.
16297 (jp_keyboard): Japanese keyboard layout.
16298 (it_kbd_translate_table): Private table for the Italian keyboard.
16299 (it_keyboard): Use it_kbd_translate_table.
16300 (keyboard_layout_list): Add the Japanese keyboard.
16301 (dos_rawgetc): Use the keyboard-private translation table, if
16302 available.
16303 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16304
163051999-04-02 Kenichi HANDA <handa@etl.go.jp>
16306
16307 * xdisp.c (redisplay_window): When we call compute_motion with
16308 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16309 (display_text_line): Stop the loop for processing overlay strings
16310 when we reach the right edge of the window.
16311
83c8f461 163121999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16313
16314 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16315 let the data control whether string is unibyte.
16316
163171999-03-30 Richard M. Stallman <rms@gnu.org>
16318
16319 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16320 (pop_kbd_macro): Restore the saved real_this_command.
16321 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16322
163231999-03-26 Richard M. Stallman <rms@gnu.org>
16324
16325 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16326 if buffer-file-name is nil.
16327
163281999-03-25 Jason Rumney <jasonr@altavista.net>
16329
16330 * w32select.c (Fw32_set_clipboard_data): Take into account line
16331 ends when calculating clipboard storage needed for non-ASCII text.
16332
163331999-03-25 Andrew Innes <andrewi@gnu.org>
16334
16335 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16336 (epaths.h): Renamed from paths.h.
427ec082
SS
16337 (clean):
16338 ($(BLD)\filelock.obj):
16339 ($(BLD)\lread.obj):
26901792
DL
16340 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16341
163421999-03-23 Ken'ichi Handa <handa@gnu.org>
16343
16344 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16345 ENCODE_ISO_CHARACTER for the previous change on this macro.
16346
163471999-03-23 Kenichi Handa <handa@etl.go.jp>
16348
16349 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16350 eoltype correctly for backward compatibility.
16351
163521999-03-20 Kenichi HANDA <handa@etl.go.jp>
16353
16354 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16355 invalid, produce the buffer internal byte sequence without encoding.
16356
163571999-03-19 Karl Heuer <kwzh@gnu.org>
16358
16359 * editfns.c (Fformat): Accept %i format.
16360
163611999-03-17 Karl Heuer <kwzh@gnu.org>
16362
16363 * filelock.c (get_boot_time): Test tempname, not filename.
16364
163651999-03-17 Jason Rumney <jasonr@altavista.net>
16366
e5619f6b
JR
16367 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16368 speed display.
16369
16370 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16371 speed display.
16372 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16373 New functions.
16374 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16375 Use bitmap cache.
26901792
DL
16376
16377 * w32fns.c (enum_font_cb2): Set the font height to be the
16378 character height, not the cell height.
16379 (Fw32_select_font): Initialize font dialog with current default font.
16380 (Vw32_system_coding_system): New variable.
16381 (w32_strict_filenames): Add comment.
16382 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16383 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16384 (syms_of_w32fns): Add w32-system-coding-system.
16385
163861999-03-15 Richard M. Stallman <rms@gnu.org>
16387
16388 * xterm.c (XTread_socket) <ConfigureNotify>:
16389 If cursor pos is outside the new frame size, mark cursor as off.
16390
163911999-03-14 Ken'ichi Handa <handa@gnu.org>
16392
16393 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16394
16395 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16396 by them.
16397
163981999-03-14 Richard M. Stallman <rms@gnu.org>
16399
16400 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16401 at beginning.
16402
164031999-03-14 Jason Rumney <jasonr@altavista.net>
16404
16405 * w32fns.c (w32_strict_fontnames): New variable.
16406 (Fx_create_frame): Formatting fix.
16407 (w32_load_system_font): Keep trying to load non-existant font
16408 if w32_strict_fontnames is nil. Formatting fix.
16409 (syms_of_w32fns): Add w32-strict-fontnames.
16410
16411 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16412 (dumpglyphs): Formatting fixes.
16413
164141999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16415
16416 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16417
164181999-03-10 Karl Heuer <kwzh@gnu.org>
16419
16420 * puresize.h (BASE_PURESIZE): Increase to 505000.
16421
164221999-03-09 Richard M. Stallman <rms@gnu.org>
16423
16424 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16425
16426 * filelock.c (init_filelock): New function.
16427
164281999-03-09 Dave Love <fx@gnu.org>
16429
16430 * fileio.c (Ffile_directory_p): Doc fix.
16431
83c8f461 164321999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16433
16434 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16435
164361999-03-08 Richard M. Stallman <rms@gnu.org>
16437
16438 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16439 to only the part that uses get_boot_time_1.
16440
164411999-03-07 Dave Love <fx@gnu.org>
16442
16443 * fileio.c (Finsert_file_contents): Use xfree.
16444
164451999-03-06 Kenichi Handa <handa@etl.go.jp>
16446
16447 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16448 term.o, xselect.o): Depend on ccl.h.
16449
164501999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16451
16452 * makefile.nt: Remove common multiple file compilation commands.
16453
164541999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16455
16456 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16457 newlines added when the arg NO-LINE-BREAK is nil.
16458
164591999-03-04 Karl Heuer <kwzh@gnu.org>
16460
16461 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16462
16463 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16464
164651999-03-04 Dave Love <fx@gnu.org>
16466
16467 * term.c (term_init): Use xmalloc, not malloc.
16468
16469 * callproc.c (Fcall_process): Use xmalloc, xfree.
16470
164711999-03-03 Andreas Schwab <schwab@gnu.org>
16472
16473 * eval.c (Fdefconst): Doc fix.
16474
164751999-03-01 Kenichi Handa <handa@etl.go.jp>
16476
16477 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16478
164791999-03-01 Eli Zaretskii <eliz@gnu.org>
16480
16481 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16482
164831999-02-28 Richard M. Stallman <rms@gnu.org>
16484
16485 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16486
16487 * cmds.c (internal_self_insert): Calculate column properly
16488 in overwrite-of-tab case.
16489
164901999-02-27 Andreas Schwab <schwab@gnu.org>
16491
16492 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16493 malloc in glibc 2.1.
16494
164951999-02-26 Richard Stallman <rms@gnu.org>
16496
16497 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16498
16499 * epaths.in: Renamed from paths.in.
16500 This avoids a conflict with a system header file paths.h on GNU/Linux.
16501
16502 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16503 Use epaths.h istead of paths.h.
16504
165051999-02-26 Andreas Schwab <schwab@gnu.org>
16506
16507 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16508 malloc.
16509
165101999-02-25 Dave Love <fx@gnu.org>
16511
16512 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16513
165141999-02-25 Richard Stallman <rms@gnu.org>
16515
16516 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16517 (WTMP_FILE): Default definition in case not defined.
16518 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16519
26901792
DL
165201999-02-25 Ken'ichi Handa <handa@gnu.org>
16521
16522 * keymap.c (push_key_description): If enable-multibyte-characters
16523 is nil and C is single byte, push C as is.
16524
165251999-02-24 Kenichi Handa <handa@etl.go.jp>
16526
16527 * keymap.c (push_key_description): If enable-multibyte-characters
16528 is non-nil, try to convert unibyte character to multibyte. For
16529 invalid multibyte character, show all bits by octal form.
16530 (Fsingle_key_description): Check the validity of charset for a
16531 generic character.
16532
165331999-02-23 Richard M. Stallman <rms@gnu.org>
16534
16535 * fileio.c (Ffile_regular_p): Undo previous change.
16536
16537 * eval.c (Fdefconst): Doc fix.
16538
16539 * filelock.c (get_boot_time): Don't use BUFSIZ.
16540
165411999-02-22 Andrew Innes <andrewi@gnu.org>
16542
16543 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16544 (EXTRA_LINK): Do version test with strings.
16545
165461999-02-22 Andreas Schwab <schwab@gnu.org>
16547
16548 * fns.c (Fbase64_encode_string): Fix last change.
16549
16550 * termhooks.h (event_kind): Add user_signal.
16551
16552 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16553 (syms_of_keyboard): Initialize them.
16554 (lispy_user_signals): New variable.
16555 (make_lispy_event): Handle user_signal event type.
16556
16557 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16558 (syms_of_emacs): Don't initialize them.
16559 (handle_USR1_signal, handle_USR2_signal): Set event type to
16560 user_signal instead of non_ascii_keystroke, and use plain integers
16561 as code instead of Lisp symbols.
16562
165631999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16564
16565 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16566
165671999-02-21 Richard Stallman <rms@gnu.org>
16568
16569 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16570
16571 * print.c (print_error_message): Don't crash if (cdr data)
16572 is not a list.
16573
165741999-02-21 Eli Zaretskii <eliz@gnu.org>
16575
16576 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16577
165781999-02-20 Andrew Innes <andrewi@gnu.org>
16579
16580 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16581 run, since size can vary from run to run.
16582
16583 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16584 data is included, to enable profiling.
16585 ($(EMACS)): Map file not needed for emacs.exe.
16586
16587 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16588 as malloc before calling uninterrupt_malloc, for consistency.
16589 This also enables profiling to work on WINDOWSNT.
16590
165911999-02-18 Richard Stallman <rms@gnu.org>
16592
16593 * Makefile.in (emacs.o): Depend on termhooks.h.
16594 (filelock.o): Depend on systime.h.
16595
165961999-02-18 Ken'ichi Handa <handa@gnu.org>
16597
16598 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
16599 (Fdecode_big5_char): Likewise.
16600
166011999-02-17 Richard Stallman <rms@gnu.org>
16602
16603 * insdel.c (adjust_markers_for_replace): When doing an insertion
16604 (replacing a region of zero length), handle markers at the
16605 insertion point properly.
16606
166071999-02-17 Andrew Innes <andrewi@gnu.org>
16608
16609 * w32fns.c (Vw32_quit_key): New variable.
16610 (post_character_message): Use it.
16611 (syms_of_w32fns): DEFVAR it.
16612
166131999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
16614
16615 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
16616
166171999-02-16 Richard Stallman <rms@gnu.org>
16618
16619 * filelock.c (within_one_second): New function.
16620 (current_lock_owner): Use that.
16621 (get_boot_time): Use /proc/uptime if available.
16622 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
16623 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 16624
26901792
DL
166251999-02-16 Richard Stallman <rms@gnu.org>
16626
16627 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16628 (syms_of_emacs): Init and staticpro them.
16629 (handle_USR1_signal): Don't run any code, just queue up an event.
16630 (handle_USR2_signal): Likewise.
16631
166321999-02-16 Eli Zaretskii <eliz@gnu.org>
16633
16634 * dired.c (Ffile_attributes): If the file's size doesn't fit in
16635 an integer, return it as a float. Doc string fixed.
16636
166371999-02-16 Richard Stallman <rms@gnu.org>
16638
16639 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16640 (syms_of_emacs): Init and staticpro them.
16641 (handle_USR1_signal): Don't run any code, just queue up an event.
16642 (handle_USR2_signal): Likewise.
16643
166441999-02-15 Kenichi Handa <handa@etl.go.jp>
16645
16646 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
16647 ASCII correctly. Signal error on invalid characters.
16648 (Fdecode_big5_char, Fencode_big5_char): Likewise.
16649
166501999-02-15 Eli Zaretskii <eliz@gnu.org>
16651
16652 * w16select.c (get_clipboard_data): Work around a bug in Windows95
16653 DOS box which doubles the reported size of text in the clipboard.
16654
166551999-02-15 Kenichi Handa <handa@etl.go.jp>
16656
16657 * coding.c (decode_coding_iso2022): Don't set
16658 coding->composed_chars to 0 here.
16659 (setup_coding_system): Set coding->composed_chars to 0 here.
16660
166611999-02-10 Richard Stallman <rms@gnu.org>
16662
16663 * fileio.c (Ffile_regular_p): Use lstat.
16664
166651999-02-09 Richard Stallman <rms@gnu.org>
16666
16667 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
16668 (unexec): Test this instead of specific systems.
16669
16670 * m/macppc.h: New file.
16671
166721999-02-08 Dave Love <fx@gnu.org>
16673
16674 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
16675
166761999-02-08 Ken'ichi Handa <handa@gnu.org>
16677
16678 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
16679 should be set to coding->produced.
16680
166811999-02-07 Paul Fisher <rao@gnu.org>
16682
16683 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
16684 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
16685
166861999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16687
16688 * editfns.c (Fformat): Doc fix.
16689
166901999-02-06 Richard Stallman <rms@gnu.org>
16691
16692 * process.c (syms_of_process): defsubr it.
16693 (Fprocess_running_child_p): New function.
16694
166951999-02-05 Andrew Innes <andrewi@gnu.org>
16696
16697 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
16698 recording drop position.
16699
167001999-02-05 Ken'ichi Handa <handa@gnu.org>
16701
16702 * coding.c (encode_coding_iso2022): Before writing out an invalid
16703 code, reset graphic planes and registers if necessary.
16704
16705 * term.c (encode_terminal_code): Fix previous change.
16706
167071999-02-04 Eli Zaretskii <eliz@gnu.org>
16708
16709 * w16select.c (last_clipboard_text, clipboard_storage_size): New
16710 static variables.
16711 (set_clipboard_data): Save a copy of the text we put into
16712 clipboard in last_clipboard_text.
16713 (get_clipboard_data): If the clipboard text is identical to what
16714 last_clipboard_text holds, pretend there's no data in the clipboard.
16715
167161999-02-03 Richard Stallman <rms@gnu.org>
16717
16718 * s/gnu.h (NLIST_STRUCT): Add #undef.
16719
167201999-02-03 Eli Zaretskii <eliz@gnu.org>
16721
16722 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
16723 encoded, set its pointer and size as returned by encode_coding.
16724
167251999-02-02 Ken'ichi Handa <handa@gnu.org>
16726
16727 * fns.c (Fset_char_table_default): To handle the case that CH is
16728 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
16729
167301999-02-02 Andrew Innes <andrewi@gnu.org>
16731
16732 * w32fns.c (syms_of_w32fns): Change default value of
16733 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
16734 some mice works properly.
16735
167361999-02-02 Eli Zaretskii <eliz@gnu.org>
16737
16738 * w16select.c (set_clipboard_data): Correctly null-terminate the
16739 string to be put into the Windows clipboard. Use xbuf_addr.
16740
167411999-02-01 Richard Stallman <rms@gnu.org>
16742
16743 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
16744
167451999-01-31 Richard Stallman <rms@gnu.org>
16746
16747 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
16748 then don't send the signal if the shell owns the terminal.
16749 (Finterrupt_process): Doc change.
427ec082 16750
26901792
DL
167511999-01-31 Andrew Innes <andrewi@gnu.org>
16752
16753 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
16754 (copy_executable_and_dump_data): Use it to ensure alignment slop
16755 is zeroed.
16756
167571999-01-30 Andrew Innes <andrewi@gnu.org>
16758
16759 * w32.c (init_environment): Change argv[0] to contain the full
16760 path to Emacs.
16761
16762 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
16763
167641999-01-29 Ken'ichi Handa <handa@gnu.org>
16765
16766 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
16767 returned by x_new_font (the resolved one) but use the font name
16768 set in the fontset specification.
16769 (x_load_font): For the height of font, if normarl ascent and
16770 descent value are larger than those in max_bounds field, use the
16771 former.
16772
167731999-01-28 Eli Zaretskii <eliz@gnu.org>
16774
16775 * xdisp.c (decode_mode_spec_coding): Fix previous change.
16776
167771999-01-27 Geoff Voelker <voelker@cs.washington.edu>
16778
16779 * makefile.nt: Use full path to temacs.exe when dumping.
16780
167811999-01-27 Jason Rumney <jasonr@altavista.net>
16782
16783 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
16784 list was reliable.
16785 (enum_fontex_cb1, enum_fontex_cb2): New functions.
16786 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
16787 (w32_list_synthesized_fonts): New function.
16788 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
16789 available instead of EnumFontFamilies. List synthesized fonts if
16790 Vw32_enable_italics is non-nil.
427ec082 16791
26901792
DL
167921999-01-27 Richard Stallman <rms@gnu.org>
16793
16794 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
16795 Don't complain if ttcompat does not exist.
16796
16797 * w32fns.c (x_set_frame_parameters): gcpro as needed.
16798
167991999-01-27 Andrew Innes <andrewi@gnu.org>
16800
16801 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
16802 the lwindow, rwindow and apps keys could not be used as function
16803 keys, because they were being passed to TranslateMessage which
16804 ignores them. Also, key was being changed to SPC.
16805
16806 * makefile.nt: Do make version comparison as strings.
16807
168081999-01-27 Eli Zaretskii <eliz@gnu.org>
16809
16810 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
16811 strings, not characters.
16812
16813 * coding.h: Likewise.
16814
16815 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
16816 string.
16817
168181999-01-26 Dave Love <fx@gnu.org>
16819
16820 * emacs.c (main): Up-date copyright.
16821
168221999-01-25 Dave Love <fx@gnu.org>
16823
16824 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16825
168261999-01-25 Andreas Schwab <schwab@gnu.org>
16827
16828 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
16829
168301999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
16831
16832 * xfns.c (x_set_frame_parameters): gcpro as needed.
16833
16834 * window.c (Fset_window_point): If WINDOW is selected but the
16835 current buffer is not its buffer, don't use Fgoto_char.
16836
168371999-01-22 Richard M. Stallman <rms@gnu.org>
16838
16839 * syntax.c (scan_sexps_forward): Delete duplicate code
16840 to set prev_from_syntax, above start of main loop.
16841 At startinstring, check syntax when checking for a match.
16842
168431999-01-22 Jason Rumney <jasonr@altavista.net>
16844
16845 * w32bdf.c: New file.
16846 * w32bdf.h: New file.
16847 * makefile.nt: Add w32bdf.c and w32bdf.h.
16848
16849 * w32gui.h: Include w32bdf.h.
16850 (W32FontStruct) Add bdf element.
16851
16852 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
16853 Support BDF fonts.
16854
16855 * w32term.c (W32_TEXTOUT): New macro.
16856 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
16857 Simplify baseline calculation. Detect SJIS by font, not glyph.
16858 Call SetTextAlign.
16859 (syms_of_w32term): Remove "jisx0212-sjis" from
16860 w32-charset-to-codepage-alist.
16861 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
16862 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 16863
26901792
DL
16864 * w32fns.c (Vw32_bdf_filename_alist): New variable.
16865 (x_destroy_bitmap): Returns void not int.
16866 (x_set_border_pixel): Returns void.
16867 (w32_load_bdf_font): New function.
16868 (w32_load_system_font): New function, was w32_load_font. List
16869 fonts before loading. Explicitly set encoding for SJIS fonts.
16870 Set default_ascent to 0 as comment indicates.
16871 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
16872 (w32_unload_font): Support BDF fonts.
16873 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
16874 Autodetect whether to use koi8-r instead of iso8859-5.
16875 Associate "ksc5601.1987" with HANGUEL_CHARSET.
16876 Associate "ksc5601.1992" with JOHAB_CHARSET.
16877 (x_to_w32_charset): Make consistent with w32_to_x_charset.
16878 (w32_to_x_font): Add resolution.
16879 (x_to_w32_font): Use font resolution to calculate height if supplied.
16880 (w32_font_match): Handle wildcards anywhere within field.
16881 (enumfont_t): Remove unused head pointer.
16882 (enum_font_cb2): Dereference elfLogFont.
16883 (w32_list_bdf_fonts): New function.
16884 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
16885 valid frame. Remove MessageBox. Support BDF fonts.
16886 (Fw32_find_bdf_fonts): New function.
16887 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
16888 Sw32_find_bdf_fonts.
16889
168901999-01-21 Andrew Innes <andrewi@gnu.org>
16891
16892 * makefile.nt (temacs): Use del to delete file, not rm.
16893
168941999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
16895
16896 * keyboard.c (read_key_sequence): Fix previous change.
16897
16898 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
16899 as the same. Treat "myname:0" as the same as those two.
16900
169011999-01-19 Jason Rumney <jasonr@altavista.net>
16902
16903 * w32fns.c (x_to_w32_charset): Add iso8859-9.
16904 (w32_to_x_charset): Fix charset mappings.
16905
16906 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
16907 (dumpglyphs): Move definitions out of block containing goto.
16908 Remove redundant code for BIG5.
16909 Use w32_codepage_for_font instead of
16910 w32_codepage_for_charset. Add cast to int where float
16911 operation is assigned to int.
16912 (Vw32_charset_to_codepage_alist): New variable.
16913 (w32_codepage_for_charset): Removed.
427ec082
SS
16914 (w32_codepage_for_font): New function, replacing
16915 w32_codepage_for_charset.
26901792
DL
16916 (syms_of_w32term): Add and initialize
16917 w32-charset-to-codepage-alist.
16918
169191999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
16920
16921 * xselect.c (x_handle_selection_clear): Don't clear the
16922 selection if Emacs still owns it through a different display.
16923
169241999-01-17 Andrew Innes <andrewi@gnu.org>
16925
16926 * w32proc.c: (w32_executable_type): Relax the check to identify
16927 cygwin-compiled applications, because the exact dll name varies
16928 with release. Now only require the name to start "cygwin".
16929
16930 * w32heap.h: (ROUND_UP):
16931 (ROUND_DOWN): New macros.
16932 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16933 (init_heap): New extern.
16934 (data_region_size):
16935 (recreate_heap):
16936 (read_in_bss):
16937 (map_in_heap):
16938 (round_to_next):
16939 (w32_fatal_reload_error):
16940 (get_section_size): Obsolete externs removed.
16941
16942 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
16943 current process.
16944 (round_to_next): Obsolete function removed.
16945 (preload_heap_section): New variable.
16946 (data_region_size): Obsolete variable removed.
16947 (allocate_heap): Modified to determine end of static heap section
16948 used during preload, and use that as initial base address for
16949 dynamic heap instead of hard-coded value.
16950 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
16951 calls to commit or decommit pages when allocating from static heap
16952 section during preload.
16953 (recreate_heap): Obsolete function removed.
16954 (init_heap): New function to initialize internal sbrk heap
16955 variables. Uses static heap section during preload, otherwise
16956 calls allocate_heap to reserve a heap region dynamically.
16957 (round_heap): Use ROUND_UP macro instead of round_to_next.
16958
16959 * unexw32.c: Major rewrite to support cleaner method of dumping; a
16960 static "bss" section is used for heap space during preload, and
16961 bss data is now written to the proper section area when dumping.
16962 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16963 (heap_index_in_executable): Obsolete variable removed.
16964 (data_section): New variable.
16965 (data_start_va): Renamed to data_start.
16966 (data_start_file): Obsolete variable removed.
16967 (bss_section):
16968 (extra_bss_size):
16969 (bss_section_static):
16970 (bss_start_static):
16971 (bss_size_static):
16972 (extra_bss_size_static):
16973 (heap_section): New variables.
16974 (_start): Remove code based on old unexec method. Call init_heap
16975 to initialize sbrk heap.
16976 (close_file_data): Update size of file when closing, so that
16977 unexec doesn't have to work out exact size in advance.
16978 (get_bss_info_from_map_file):
16979 (get_section_size): Obsolete functions removed.
16980 (rva_to_section): Fix minor bug, and add a work-around for a bug
16981 in very old linkers.
16982 (offset_to_section):
16983 (relocate_offset): New functions.
16984 (OFFSET_TO_RVA):
16985 (RVA_TO_OFFSET):
16986 (RVA_TO_SECTION_OFFSET):
16987 (PTR_TO_RVA):
16988 (PTR_TO_OFFSET):
16989 (OFFSET_TO_PTR): New macros.
16990 (get_section_info): Modify to support new unexec method;
16991 determines address ranges in process that need dumping, and COFF
16992 sections where data will be dumped. Allows for static and global
16993 bss data to be in separate ranges. No longer relies on knowledge
16994 of section names.
16995 (copy_executable_and_dump_data_section): Renamed
16996 copy_executable_and_dump_data. Completely rewritten to copy
16997 executable section by section, so that raw data areas can be
16998 expanded to hold dumped data as necessary. Allows for bss data to
16999 be in same section as initialized data. Reduces size of static
17000 heap section to that used during preload.
17001 (dump_bss_and_heap):
17002 (w32_fatal_reload_error):
17003 (read_in_bss):
17004 (map_in_heap): Obsolete functions removed.
17005 (unexec): Rounds off preload heap to nearest page rather than
17006 virtual allocation unit. Modified to match other changes.
17007
17008 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
17009 data_region_size.
17010
17011 * makefile.nt: (TEMACS_TMP): New macro.
17012 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
17013 processor to add static heap section in support of new unexec.
17014
17015 * lastfile.c: Include config.h to pick up data layout pragmas.
17016 [WINDOWSNT]: Remove explicit pragma.
17017
170181999-01-12 Kenichi Handa <handa@etl.go.jp>
17019
17020 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
17021 correctly.
17022 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
17023
170241999-01-11 Dave Love <fx@gnu.org>
17025
17026 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
17027
170281999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17029
17030 * keyboard.c (read_key_sequence): In key-translation-map and
17031 function-key-map, handle symbol with array as fn def.
17032 In function-key-map, handle symbol with keymap as fn def,
17033 and autoloaded definitions.
427ec082 17034
26901792
DL
17035 * puresize.h (BASE_PURESIZE): Increment to 500000.
17036
17037 * print.c (Qtemp_buffer_setup_hook): New variable.
17038 (syms_of_print): Init and staticpro that.
17039 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
17040
170411999-01-11 Kenichi Handa <handa@etl.go.jp>
17042
17043 * insdel.c (del_range_1): Call signal_after_change.
17044 (del_range_byte): Likewise.
17045 (del_range_both): Likewise.
17046 (del_range_2): Don't call signal_after_change.
17047
17048 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
17049 Lisp code here.
17050
170511999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
17052
17053 * eval.c (find_handler_clause): If SIG is nil (memory full error),
17054 never run the debugger, and don't bother checking the args
17055 to see whether the debugger should be run.
17056
170571999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
17058
17059 * keyboard.c (read_key_sequence):
17060 Tell get_keyelt to look handle autoloads.
17061 Handle symbols defined as keymaps, and autoloaded keymaps.
17062
170631999-01-06 Kenichi Handa <handa@etl.go.jp>
17064
17065 * search.c (search_buffer): Fix previous change.
17066
170671999-01-06 Eli Zaretskii <eliz@gnu.org>
17068
17069 * w16select.c (set_clipboard_data): Terminate the text with a null
17070 character. Don't allow to put binary data into the clipboard.
17071 Return zero in case of success, 1 or 2 otherwise.
17072 (get_clipboard_data): Only bail out if the null character is in
17073 the last 32-byte chunk of clipboard data
17074 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17075 they save binary data, print a message in the echo area saying the
17076 text was not put into the clipboard.
17077
17078 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17079
170801999-01-06 Andreas Schwab <schwab@gnu.org>
17081
17082 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17083 _BSD_SOURCE, the latter is always defined.
17084
170851999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17086
17087 * fns.c (Frequire): Don't fail to unbind bindings.
17088
170891999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17090
17091 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17092
17093 * charset.c (Ffind_charset_region): Fix doc typo.
17094
170951998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17096
17097 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17098 multibyte in unibyte buffers only.
17099
17100 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17101 and pass it to Fmake_sparse_keymap.
17102
171031998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17104
17105 * alloc.c (MMAP_MAX_AREAS): New macro.
17106 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17107 (init_alloc_once): Use that.
17108
17109 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17110
17111 * alloc.c (lisp_malloc, lisp_free): New functions.
17112 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17113 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17114 (n_interval_blocks, n_float_blocks): New variable.
17115 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17116 (n_marker_blocks, n_string_blocks): New variable.
17117 (init_intervals, make_interval): Set a count variable.
17118 Use lisp_malloc instead of setting allocating_for_lisp.
17119 (init_float, make_float, init_cons, Fcons): Likewise.
17120 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17121 (init_marker, allocate_misc, init_strings): Likewise.
17122 (make_uninit_multibyte_string): Likewise.
17123 (gc_sweep, compact_strings): Decrement the count variables.
17124
17125 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17126 into the old_..._hook variables.
17127
171281998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17129
17130 * keyboard.c: In each active map, for each menu bar item, use only
17131 the first submap.
17132 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17133 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17134 (syms_of_keyboard): Staticpro and init it.
17135
427ec082 17136 * xmenu.c (single_keymap_panes):
26901792
DL
17137
171381998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17139
17140 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17141 by complete_deferred_msg.
17142 (post_character_message): Cancel all deferred messages when
17143 quit_char is typed, in order to break out of potential deadlocks.
17144 (cancel_all_deferred_msgs): New function.
17145 (complete_deferred_msg): Don't abort if msg not found; may have
17146 been cancelled.
17147 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17148 (Fw32_send_sys_command): Wait for system command to
17149 complete before returning.
427ec082 17150
26901792
DL
17151 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17152 not set async_iconified flag though.
17153
17154 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17155 (create_child): Use it.
17156 (syms_of_ntproc): Defvar it. Also fix docstrings for
17157 w32-start-process-share-console and w32-start-process-show-window.
17158
17159 * unexw32.c (_start): Force system calls accessing unmounted
17160 devices to fail without prompting.
17161
171621998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17163
17164 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17165 even when starting the dumped Emacs.
17166
17167 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17168 (Fkey_description): Handle lists like vectors.
17169
171701998-12-21 Kenichi Handa <handa@etl.go.jp>
17171
17172 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17173 because of the change of the second argument of Fread_char.
17174
17175 * charset.c (Fcharset_after): Check range. If POS is out of
17176 range, return nil.
17177
17178 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17179
17180 * lread.c (Fread_char): Change the meaning of the second argument.
17181 (Fread_event): Likewise.
17182 (Fread_char_exclusive): Likewise.
17183
17184 * print.c (printchar): Fix previous change.
17185
17186 * process.c (read_process_output): Decide the multibyteness of
17187 string given to a process filter by a coding system used for
17188 decoding the process output.
17189
171901998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17191
17192 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17193 nonascii-translation-table.
17194 * msdos.c (IT_write_glyphs): Likewise.
17195 * fns.c (concat): Likewise.
17196 * charset.c (unibyte_char_to_multibyte): Likewise.
17197 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17198
171991998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17200
17201 * doc.c (Fdocumentation): Change the doc string for prefix
17202 commands to make it a complete sentence in one line.
17203
172041998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17205
17206 * s/irix6-5.h: New file.
17207 * s/irix6-0.h (IRIX6): Define this symbol.
17208 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17209 (bcopy, bcmp, bzero): Likewise.
17210 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17211 (C_SWITCH_MACHINE): New value for irix6.5.
17212
172131998-12-15 Richard Stallman <rms@gnu.org>
17214
17215 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17216 Do free malloc'd memory even in case of failure. Use xfree, not free.
17217 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17218 (base64_decode_1): Don't fail for short lines.
17219
17220 * print.c (printchar): Outputting multibyte characters
17221 to echo area always makes it multibyte.
17222
17223 * search.c (search_buffer): Don't use Boyer-Moore
17224 to search for an invalid multibyte code.
17225 In unibyte case, no need to check whether there are translations
17226 in more than one charset; just set charset_base to 0.
17227
172281998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17229
17230 * print.c (printchar): Cancel previous change.
17231
172321998-12-15 Kenichi Handa <handa@etl.go.jp>
17233
17234 * callproc.c: Include "ccl.h".
17235 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17236 bit in argument_coding.mode to tell encoding procedure to flush
17237 data. While encoding arguments, if argument_coding uses CCL
17238 program, initialize it again after encoding.
17239 (Fcall_process_region): Doc-string modified. Handle the case that
17240 NARGS is 3.
17241
17242 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17243 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17244 Set `ic' to the head of this command.
17245 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17246 code for an invalid code.
17247 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17248 based on VEC.
17249
17250 * charset.c (Qunknown): New variable.
17251 (init_charset_once): Intern and staticpro Qunknown. Initialize
17252 all elements of Vcharset_symbol_table to Qunknown.
17253 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17254 unibyte characters only. For an invalid composition sequence, set
17255 CHARSETS[1] to 1.
17256 (Ffind_charset_region): Call find_charset_in_str with an
17257 appropriate MULTIBYTE arg. If undefined charsets are found,
17258 include `unknown' is the return value.
17259 (Ffind_charset_string): Likewise.
17260 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17261 (str_cmpchar_id): Max composite character code should be less than
17262 GENERIC_COMPOSITION_CHAR.
17263
17264 * charset.h (find_charset_in_str): Update declaration.
17265
17266 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17267 final_char is invalid.
17268 (decode_coding): If coding->type is coding_type_ccl, call
17269 ccl_coding_driver even if SRC_BYTES is zero.
17270 (code_convert_region): Update `inserted' correctly after calling
17271 coding->post_read_conversion. Even after the code converter
17272 consumed all source text, call it once more if it is
17273 coding_type_ccl to flush out data.
17274
17275 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17276 CODING is handled by CCL program, call code_convert_region.
17277
17278 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17279 correctly.
17280 (string_byte_to_char): Likesize.
17281
17282 * print.c (printchar): When outputting a multibyte character to
17283 echo area, always set message_enable_multibyte to 1.
17284
17285 * process.c (read_process_output): If NBYTES is zero and
17286 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17287 and try decoding again.
17288 (Fprocess_send_eof): If the coding system of PROCESS
17289 requires flushing, call send_process with null-string at first.
17290
17291 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17292 with MULTIBYTE arg 0.
17293 * w32select.c (Fw32_set_clipboard_data): Likewise.
17294 * xselect.c (lisp_data_to_selection_data): Likewise.
17295
172961998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17297
17298 * search.c (Freplace_match): Set OPOINT clearly for the case
17299 where point is in the middle of the text to be replaced.
17300
17301 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17302 if compute_motion fails to advance at all, don't back it up.
17303
173041998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17305
17306 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17307
427ec082 17308 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17309
173101998-12-09 Richard Stallman <rms@gnu.org>
17311
17312 * insdel.c (insert_from_buffer_1): Properly count the size
17313 of output from conversion to multibyte even when input
17314 is split across the gap.
17315
173161998-12-09 Karl Heuer <kwzh@gnu.org>
17317
17318 * keyboard.c: Doc fixes.
17319
17320 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17321
173221998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17323
17324 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17325 characters, only convert CRLF to LF.
17326
173271998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17328
17329 * makefile.nt: Do string comparision of _NMAKE_VER.
17330
173311998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17332
17333 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17334 coding.h, and disptab.h
17335
17336 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17337 (syms_of_msdos): DEFVAR_LISP it.
17338 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17339 (internal_terminal_init): Set up insert_glyphs_hook and
17340 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17341 (unibyte_display_via_language_environment): New variable.
17342 (syms_of_msdos): Devfar it.
17343 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17344 Encode the character codes of the glyphs according to the
17345 terminal_coding in effect.
17346
173471998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17348
17349 * fns.c (Fstring_as_unibyte): Doc fix.
17350
173511998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17352
17353 * charset.h: Declare char_valid_p.
17354
173551998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17356
17357 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17358
17359 * msdos.c (init_environment): Record the time we started up.
17360 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17361 fast after startup (aka crash).
17362
173631998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17364
17365 * w32.c (check_windows_init_file): Use decode_env_path when
17366 using EMACSLOADPATH.
17367
173681998-12-02 Jason Rumney <jasonr@altavista.net>
17369
17370 * w32term.c (dumpglyphs): Use unsigned char arrays.
17371 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17372 for various languages.
17373 Compensate for fonts that have underhangs (e.g., Thai).
17374
17375 * w32term.h (FONT_MAX_WIDTH): New macro.
17376
173771998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17378
17379 * keyboard.c (Qlanguage_change): New variable.
17380 (syms_of_keyboard): Init it.
17381 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17382 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17383 keys; add name for Escape key; extend to 256 elements.
17384 (parse_modifiers): Make non-static.
17385
17386 * keyboard.h (parse_modifiers): Declare prototype.
17387
17388 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17389
17390 * w32fns.c (w32_last_error): Fix cut+paste error.
17391 (Vw32_phantom_key_code): New variable.
17392 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17393 (syms_of_w32fns): Init and register them.
17394 (reset_modifiers): Use a more precise test for whether Emacs has
17395 keyboard focus. Synchronize state of all keys that can be used as
17396 modifiers, to overcome problems arising from hot-keys.
17397 (w32_key_to_modifier): Be careful not to call intern() to avoid
17398 requiring thread synchronization.
17399 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17400 (w32_wnd_proc): Ensure lock key indicator lights are updated
17401 promptly on Windows 9x, by passing key events on to the system.
17402 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17403 responding to Windows key events when not wanted.
17404 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17405 Ctrl-NumLock into pause by the system.
17406 (w32_wnd_proc): Don't translate key combinations containing any
17407 modifiers other than shift (and capslock).
17408 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17409 can't determine the key states until we have keyboard focus).
17410 (Fw32_toggle_lock_key): New function.
17411 (syms_of_w32fns): Defsubr it.
17412
17413 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17414 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17415 (w32_console_toggle_lock_key): New function.
17416
17417 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17418
174191998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17420
17421 * search.c (Freplace_match): Set OPOINT clearly for the case
17422 where point is in the middle of the text to be replaced.
17423
17424 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17425 if compute_motion fails to advance at all, don't back it up.
17426
174271998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17428
17429 * xfns.c (Qouter_window_id): New variable.
17430 (syms_of_xfns): Initialize it.
17431 (x_report_frame_params): Set up outer-window-id parameter.
17432
17433 * keymap.c (Fsingle_key_description): Fix previous change.
17434
174351998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17436
17437 * lisp.h (Frequire): Update declaration.
17438
174391998-11-26 Kenichi Handa <handa@etl.go.jp>
17440
17441 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17442 if the charset is ascii.
17443 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17444
17445 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17446 make an appropriate one byte string.
17447 (char_bytes): Handle the case that C is a single byte char or has
17448 modifier bits.
17449
17450 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17451
17452 * cmds.c (internal_self_insert): If C has modifier bits, insert
17453 appropriate one byte char.
17454
174551998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17456
17457 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17458 Clear text properties in the new string.
17459
174601998-11-24 Felix Lee <flee@cygnus.com>
17461
17462 * process.c (read_process_output): Call signal_after_change.
17463
174641998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17465
17466 * buffer.c (syms_of_buffer): Doc fix.
17467
17468 * keyboard.c (syms_of_keyboard): Doc fix.
17469
174701998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17471
17472 * frame.c (Fset_mouse_position): Doc fix.
17473
174741998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17475
17476 * keymap.c (Fmake_keymap): Doc fix.
17477
174781998-11-17 Kenichi Handa <handa@etl.go.jp>
17479
17480 * category.c (word_boundary_p): If C1 or C2 are composite
17481 characters, test their first components.
17482
174831998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17484
17485 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17486 don't do save-excursion, just restore selected window.
17487
17488 * window.c (window_loop): For UNSHOW_BUFFER,
17489 always do consider minibuffer windows.
427ec082 17490
26901792
DL
174911998-11-16 Kenichi Handa <handa@etl.go.jp>
17492
17493 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17494
17495 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17496
17497 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17498
17499 * s/bsdos4.h: New file.
17500
175011998-11-16 Kenichi Handa <handa@etl.go.jp>
17502
17503 * Makefile.in (abbrev.o): Depend on charset.h
17504 (bytecode.o): Depend on charset.h.
17505
17506 * bytecode.c: Include charset.h.
17507
17508 * abbrev.c: Include charset.h.
17509
17510 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17511 the first component.
17512
175131998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17514
17515 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17516
175171998-11-11 Richard Stallman <rms@gnu.org>
17518
17519 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17520
17521 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17522
17523 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17524 (INTERRUPT_INPUT): #define commented out.
17525
17526 * m/aviion-intel.h: New file.
17527
175281998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17529
17530 * fns.c (MAX_ALLOCA): New macro.
17531 (Fbase64_encode_region, Fbase64_encode_string,
17532 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17533 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17534
175351998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17536
17537 * insdel.c (byte_combining_error): Error message improved.
17538
17539 * charset.c (char_valid_p): Handle a composite character correctly.
17540
175411998-11-11 Kenichi Handa <handa@etl.go.jp>
17542
17543 * charset.c (str_cmpchar_id): Check the byte sequence for
17544 composition more rigidly.
17545 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17546 contains an invalid multibyte sequence.
17547
17548 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17549
175501998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17551
17552 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17553 (WM_EMACS_SETKEYBOARDLAYOUT):
17554 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17555 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17556 (LEFT_WIN_PRESSED):
17557 (RIGHT_WIN_PRESSED):
26901792
DL
17558 (APPS_PRESSED): New console keyboard modifier flags.
17559
17560 * w32term.c (convert_to_key_event): Removed.
17561 (is_dead_key): Copied to w32fns.c.
17562 (w32_read_socket): Generate language_change_event. Modify to work
17563 with keyboard handling changes in w32_wnd_proc.
17564
17565 * w32proc.c (sys_kill): Set extended key flag when faking
17566 Ctrl-Break keystrokes.
17567 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17568 arbitrary locale property using a numerical index.
17569 (Vw32_valid_codepages): New variable.
427ec082
SS
17570 (enum_codepage_fn):
17571 (Fw32_get_valid_codepages):
17572 (Fw32_get_console_codepage):
17573 (Fw32_set_console_codepage):
17574 (Fw32_get_console_output_codepage):
17575 (Fw32_set_console_output_codepage):
17576 (Fw32_get_codepage_charset):
17577 (Fw32_get_valid_keyboard_layouts):
17578 (Fw32_get_keyboard_layout):
26901792
DL
17579 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17580 handling functions.
17581 (syms_of_ntproc): Register them.
17582
17583 * w32inevt.c: Include w32term.h and w32heap.h.
17584 (map_keypad_keys):
17585 (Vw32_enable_caps_lock):
17586 (Vw32_enable_num_lock):
17587 (Vw32_pass_lwindow_to_system):
17588 (Vw32_pass_rwindow_to_system):
17589 (Vw32_lwindow_modifier):
17590 (Vw32_rwindow_modifier):
17591 (Vw32_apps_modifier):
17592 (Vw32_scroll_lock_modifier):
17593 (w32_key_to_modifier): Add externs.
17594 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17595 Scroll Lock as potential modifiers; exclude numpad keys from
17596 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
17597 code.
17598 (is_dead_key): Copy from w32fns.c.
17599 (w32_kbd_patch_key): Comment attempt to improve handling of
17600 dead-keys, and system bug relating to same on Windows NT. Work
17601 around the bug by calling ToUnicode and then converting to the
17602 correct codepage.
17603 (map_virt_key): Removed obsolete variable.
17604 (lispy_function_keys): Add extern.
17605 (key_event): Major rework of keyboard input handling: optionally
17606 recognize Windows keys and Apps key as modifiers; optionally treat
17607 NumLock, CapsLock and ScrollLock as function keys; let system
17608 translate keystrokes to characters to avoid system bugs relating
17609 to dead-key handling; preserve shift distinction for control
17610 characters. Remove some obsolete code.
17611
17612 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
17613 and w32heap.h.
17614
17615 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
17616 (Vw32_pass_lwindow_to_system):
17617 (Vw32_pass_rwindow_to_system):
17618 (Vw32_lwindow_modifier):
17619 (Vw32_rwindow_modifier):
17620 (Vw32_apps_modifier):
17621 (Vw32_enable_num_lock):
17622 (Vw32_enable_caps_lock):
17623 (Vw32_scroll_lock_modifier): New variables.
17624 (modifier_set): Return toggle state for Scroll Lock.
17625 (w32_key_to_modifier): New function. Returns chosen modifier bit
17626 for given key.
17627 (w32_get_modifiers): Returns modifier flags for
17628 non-keyboard input events.
17629 (construct_console_modifiers): Renamed from construct_modifiers;
17630 recognize Windows and Apps keys as modifiers.
17631 (w32_get_key_modifiers): New function. Returns modifier flags for
17632 keyboard input events.
17633 (map_keypad_keys): Make non-static. Use second arg as extended
17634 flag.
17635 (w32_grabbed_keys): New variable.
17636 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
17637 (register_hot_keys):
17638 (unregister_hot_keys):
17639 (lookup_vk_code):
17640 (w32_parse_hot_key):
17641 (Fw32_register_hot_key):
17642 (Fw32_unregister_hot_key):
17643 (Fw32_registered_hot_keys):
17644 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
17645 (post_character_message): New function.
17646 (w32_msg_pump): Handle new messages for using hotkeys and changing
17647 keyboard layout/language.
17648 (w32_wnd_proc): Major rework of keyboard input handling:
17649 optionally recognize Windows keys and Apps key as modifiers;
17650 optionally treat NumLock, CapsLock and ScrollLock as function
17651 keys; let system translate keystrokes to characters to avoid
17652 system bugs relating to dead-key handling; preserve shift
17653 distinction for control characters; forward keyboard
17654 layout/language changes to lisp; detect and convert hot-key events
17655 to normal keystrokes.
17656 (syms_of_w32fns): Register new functions and variables.
17657 (w32_last_error): New function for use in debugging.
17658
176591998-11-10 Kenichi Handa <handa@etl.go.jp>
17660
17661 * category.h (CATEGORY_SET): Adjusted for the change of
17662 cmpchar_component.
17663 (CATEGORY_SET): Likewise.
17664
17665 * charset.c (cmpchar_component): New arg NOERROR. Check
17666 composition char ID more strictly.
17667 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
17668 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
17669 return 255.
17670 (Fcompose_string): Signal error if STR contains a rule-based
17671 composition character.
17672
17673 * charset.h (cmpchar_component): Proto-type adjusted.
17674
176751998-11-09 Kenichi Handa <handa@etl.go.jp>
17676
17677 * charset.c (string_to_non_ascii_char): Return correct length for
17678 a charset of dimension 2 and composition character.
17679
176801998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17681
17682 * keymap.c (Fsingle_key_description): Handle generic characters.
17683
17684 * process.c (Fprocess_status): Doc fix.
17685
176861998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
17687
17688 * charset.c (init_charset_once): Fix previous change.
17689
176901998-11-06 Kenichi Handa <handa@etl.go.jp>
17691
17692 * charset.c (string_to_non_ascii_char): Fix previous change.
17693 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
17694
17695 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
17696 character correctly.
17697 (STRING_CHAR): Handle an invalid charater correctly.
17698
176991998-11-05 Kenichi Handa <handa@etl.go.jp>
17700
17701 * charset.c (string_to_non_ascii_char): Fix previous change.
17702
17703 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
17704
17705 * editfns.c (Fstring_to_char): Don't return a multibyte character
17706 if STRING is a unibyte string.
17707
17708 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
17709 character.
17710
17711 * xdisp.c (display_text_line): Check validity of a multibyte character.
17712 (display_string): Likewise. Handle an invalid character correctly.
17713
177141998-11-05 Karl Heuer <kwzh@gnu.org>
17715
17716 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
17717 If nothing to do, return immediately.
17718 (syms_of_insdel): Initialize combine_after_change_buffer.
17719
177201998-11-05 Richard Stallman <rms@gnu.org>
17721
17722 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
17723
177241998-11-04 Geoff Voelker <voelker@cs.washington.edu>
17725
17726 * w32term.c (w32_enable_unicode_output): Rename from
17727 w32_no_unicode_output.
17728 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
17729 and new semantics.
17730
177311998-11-04 Jason Rumney <jasonr@altavista.net>
17732
17733 * w32fns.c (w32_list_fonts): Report an error if a frame has not
17734 been created yet.
17735
17736 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
17737
177381998-11-04 Kenichi Handa <handa@etl.go.jp>
17739
17740 * charset.c (string_to_non_ascii_char): Change the check for the
17741 varidity of multibyte form.
17742 (update_charset_table): Check validity of BYTES. Don't set
17743 bytes_by_char_head here.
17744 (init_charset_once): Set bytes_by_char_head completely.
17745
17746 * frame.c (do_switch_frame): Cancel previous change.
17747
17748 * print.c (print_string): Check validity of a character.
17749 (print): Likewise.
17750
17751 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
17752
17753 * m/ews4800.h, s/ux4800.h: New files.
17754
177551998-11-03 Theodore Jump <tjump@tertius.com>
17756
17757 * makefile.nt: Compile multiple source files when possible.
17758
17759 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 17760
26901792
DL
177611998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
17762
17763 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
17764 so don't rely on it succeeding.
17765
17766 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
17767 LOGFONT struct if x font doesn't specify the charset.
17768 (x_to_w32_charset): Change >= to == when testing results of
17769 stricmp.
17770
177711998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
17772
17773 * fns.c (Frequire): New arg NOERROR.
17774
177751998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
17776
17777 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
17778
177791998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
17780
17781 * xfaces.c (Qmouse_face): Replace definition with extern decl.
17782 (syms_of_xfaces): Initialization deleted.
17783
17784 * textprop.c (Qmouse_face): Variable definition moved here.
17785 (syms_of_textprop): Initialize it.
17786
17787 * data.c (set_internal): For built-in maybe-local vars,
17788 when BINDFLAG is set, do not mark them as local.
17789
177901998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
17791
17792 * insdel.c (replace_range): Fix previous change.
17793
177941998-10-31 Kenichi Handa <handa@etl.go.jp>
17795
17796 * editfns.c (Fsubst_char_in_region): Fix previous change.
17797 (Ftranslate_region): Fix previous change.
17798
17799 * fns.c (Fbase64_decode_region): Fix previous change.
17800
17801 * frame.c (do_switch_frame): Update minibuf_window if necessary.
17802
17803 * insdel.c (byte_combining_error): New function.
17804 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
17805 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
17806 CHECK_BYTE_COMBINING_FOR_INSERT.
17807 (insert_from_buffer_1): Likewise.
17808 (adjust_after_replace): Check the posibility of inhibitted byte
17809 combining correctly.
17810 (replace_range): Before signaling an error for inhibitted byte
17811 combining, recover the buffer in a safe state.
17812 (del_range_2): Check the posibility of inhibitted byte combining
17813 correctly.
17814
178151998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
17816
17817 * xselect.c (Vselection_coding_system): Doc fix.
17818
17819 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
17820 when we have both char and byte position. Fix type clashes.
17821
17822 * eval.c (Fsignal): Use a separate format string when passing
17823 error message string to fatal, in case it contains %'s.
17824
17825 * editfns.c (Fchar_after): Fix type clashes.
17826
17827 * charset.c (Fchar_bytes): Doc fix.
17828 (char_bytes): Fix returned value to match returned type.
17829 (syms_of_charset): Fix type clash in initialisation of
17830 Vauto_fill_chars.
17831
178321998-10-29 Geoff Voelker <voelker@cs.washington.edu>
17833
17834 * w32console.c (initialize_w32_display): Use buffer coords
17835 instead of buffer size (which may be larger than the window).
17836
17837 * fileio.c (init_fileio_once): New function.
17838
17839 * emacs.c (main): Invoke init_fileio_once.
17840
178411998-10-28 Paul Eggert <eggert@twinsun.com>
17842
17843 * xterm.c (XTread_socket): Check the returned value of
17844 XmbLookupString more carefully.
17845
178461998-10-28 Kenichi Handa <handa@etl.go.jp>
17847
17848 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
17849 (DECODE_CHARACTER_DIMENSION1): Likewise.
17850 (DECODE_CHARACTER_DIMENSION2): Likewise.
17851 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
17852
17853 * editfns.c (Fsubst_char_in_region): Fix previous change.
17854 (Ftranslate_region): Fix previous change.
17855
17856 * insdel.c (check_markers): Check if markers are at character boundry.
17857 (adjust_markers_for_insert): Fix previous change.
17858 (count_combining_before): Don't limit the check at BEGV.
17859 (count_combining_after): Don't limit the check at ZV.
17860 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
17861 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
17862 (insert_from_string_1): Likewise.
17863 (insert_from_buffer_1): Likewise.
17864 (adjust_after_replace): Inhibit bytes combined across region
17865 boundary. Update end_unchanged correctly.
17866 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
17867 end_unchanged correctly.
17868 (del_range_2): Inhibit bytes combined across region boundary.
17869 Update end_unchanged correctly.
17870
178711998-10-27 Geoff Voelker <voelker@cs.washington.edu>
17872
17873 * w32.c (check_windows_init_file): Also look in load path specified
17874 in environment.
17875
17876 * w32console.c (Fset_message_beep): Recognize 'silent.
17877 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 17878
26901792
DL
17879 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
17880
17881 * w32select.c (Vnext_selection_coding_system): New variable.
17882 (syms_of_w32select): DEFVAR_LISP it.
17883 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
17884 non-nil. Always convert multibyte strings.
17885 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
17886 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 17887
26901792
DL
178881998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
17889
17890 * fns.c (Fbase64_decode_string): Doc fix.
17891 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
17892 Likewise.
17893
178941998-10-27 Dave Love <fx@gnu.org>
17895
17896 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
17897 newline in doc string.
17898
178991998-10-27 Kenichi Handa <handa@etl.go.jp>
17900
17901 * editfns.c (Fsubst_char_in_region): Correctly handle the case
17902 that byte combining before happens.
17903 (Ftranslate_region): Likewise.
17904
17905 * insdel.c (adjust_after_replace): Correctly handle the case that
17906 both byte combining before and byte combining after happen.
17907 (replace_range): Likewise.
17908
179091998-10-26 Kenichi Handa <handa@etl.go.jp>
17910
17911 * category.c (syms_of_category): Doc-string modified.
17912
17913 * coding.c (code_convert_region): Kill the work buffer created by
17914 pre-write-conversion.
17915
179161998-10-25 Jason Rumney <jasonr@altavista.net>
17917
17918 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
17919
179201998-10-23 Kenichi Handa <handa@etl.go.jp>
17921
17922 * coding.c (code_convert_region): While preserving the orignal
17923 point, pay attention to the byte combining problem.
17924
17925 * fns.c (Fbase64_decode_region): Pay attention to the byte
17926 combining problem.
17927
17928 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
17929 combined_before_bytes and combined_after_bytes into account.
17930 (count_combining_after): Handle the case that LENGTH is zero.
17931 (adjust_after_replace): Record deletion at correct buffer
17932 position. Handle the case that LEN is zero.
17933 (replace_range): Record deletion at correct buffer position.
17934 (del_range_2): Call adjust_makers_for_replace to adjust makers for
17935 combined bytes.
17936
179371998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
17938
17939 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 17940
26901792
DL
179411998-10-21 Kenichi Handa <handa@etl.go.jp>
17942
17943 * coding.c (setup_coding_system): Fix setting up
17944 coding->spec.ccl.valid_codes for CCL based coding system.
17945 (code_convert_region): Set point to FROM before inserting the
17946 result of pre-write-funciton. Preserve original point.
17947 (code_convert_string): If coding->type is coding_type_ccl, do
17948 conversion even if the length of conversion region is zero.
17949
17950 * fontset.c: Include frame.h before fontset.h.
427ec082 17951 (list_fonts_func): Fix prototype.
26901792
DL
17952
17953 * frame.c: Include frame.h before fontset.h.
17954
17955 * xterm.c: Likewise.
17956
179571998-10-21 Jason Rumney <jasonr@altavista.net>
17958
17959 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
17960 general macros. Don't call x_list_font directory, instead call a
17961 function set in list_fonts_func.
17962
17963 * fontset.h (list_fonts_func): Fix prototype.
17964
179651998-10-20 Jason Rumney <jasonr@altavista.net>
17966
17967 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
17968
17969 * w32faces.c: Update comments referring to obsolete structs.
17970 (allocate_face, copy_face, face_eql, load_font,
17971 Fpixmap_spec_p, free_frame_faces, new_computed_face,
17972 frame_update_line_height, merge_faces, compute_base_face,
17973 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
17974
17975 * w32fns.c: (Vx_pixel_size_width): New global variable.
17976 (unibyte_display_via_language_environment): New global variable.
17977 (x_set_font): Add support for setting fontsets.
17978 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
17979 font names to match xlfd-tight-regexp.
17980 (w32_load_font): Rewrite based on x_load_font.
17981 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
17982 `iso8859-1' rather than `ansi'.
17983 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
17984 end. Move charset into `charset registry' field.
17985 (enum_font_cb2): Check charsets match. Include width in font list.
17986 (w32_list_fonts): Rewrite based on x_list_fonts.
17987 Moved from w32term.c to have access to enumfont_t struct.
17988 (Fx_list_fonts): w32 specific version eliminated. Include
17989 `x-list-fonts.c'.
17990 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
17991 functions for fontset support - adapted from x_ equivalents.
17992 (syms_of_w32fns): New lisp variables initialised. Function
17993 pointers for fontset.c set up.
17994
427ec082 17995 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
17996 Add ENCODE_BIG5 macro from coding.c.
17997 (w32_no_unicode_output): New variable.
17998 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
17999 functions.
18000 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
18001 (dumpglyphs): Rewrite based on xterm.c equivalent.
18002 (x_new_font): Use functionality provided in fontset.c.
18003 (x_new_fontset): New function based on the one in xterm.c.
18004 (syms_of_w32term): Add w32-no-unicode-output flag.
18005
427ec082 18006 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
18007 (Vx_pixel_size_width_font_regexp,
18008 unibyte_display_via_language_environment): Declare variables.
427ec082 18009 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
18010 Declare functions.
18011 (w32_output): New fields font_baseline and fontset.
18012 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
18013
18014 * w32xfns.c: Include charset.h and fontset.h.
18015
180161998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
18017
18018 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
18019
180201998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
18021
18022 * msdos.c (mouse_init): Reset the button press/release info of the
18023 mouse driver.
18024 (mouse_preempted): New variable.
18025 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
18026 (XMenuActivate): Preempt the mouse during menu-handling loop.
18027 Release the current time slice while idling in the menu-handling
18028 loop. Leave the loop only if the user pressed, then released the
18029 same button. Discard all mouse events that are pending in the
18030 event queue before exiting.
18031
180321998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
18033
18034 * editfns.c (Fformat): Increase buffer size for floating format.
18035
180361998-10-17 Kenichi Handa <handa@etl.go.jp>
18037
18038 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
18039 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
18040 Declare auto-fill-chars as a Lisp variable and initialize it.
18041
18042 * charset.h (Vauto_fill_chars): Extern it.
18043
18044 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
18045
180461998-10-16 Kenichi Handa <handa@etl.go.jp>
18047
18048 * casefiddle.c (casify_object): Use make_string instead of
18049 make_specified_string to cope with byte-combining situation.
18050
18051 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
18052 1 when encountered with a code of the range 0x80..0x9F.
18053
180541998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
18055
18056 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
18057 trying $TMP and $TEMP, since the former is always set in msdos.c.
18058 (Fcall_process_region) [DOS_NT]: When looking for a place to put
18059 the temporary files, check $TMPDIR as well.
18060
180611998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18062
427ec082 18063 * process.c (exec_sentinel, read_process_output):
26901792
DL
18064 Restore waiting_for_user_input_p after running Lisp code.
18065
18066 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18067 (command_loop): Likewise.
18068
180691998-10-14 Kenichi HANDA <handa@etl.go.jp>
18070
18071 * data.c (Faset): Fix previous change.
18072
18073 * fns.c (Ffillarray): Fix previous change.
18074
18075 * insdel.c (adjust_markers_for_combining): This function deleted.
18076 (adjust_markers_for_replace): Correctly adjust marker positions.
18077 Don't record these adjustment because they were recorded already.
18078 (combine_bytes): Don't adjust markers here.
18079
180801998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18081
18082 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18083
180841998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18085
18086 * keyboard.c (Fclear_this_command_keys): New function.
18087 (syms_of_keyboard): defsubr it.
18088
18089 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18090
180911998-10-12 Kenichi Handa <handa@etl.go.jp>
18092
18093 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18094
18095 * charset.c (Fstring): Call make_string instead of
18096 make_string_from_bytes.
18097 (Ffind_charset_region): Include `composition' in the returned list
18098 if the region contains any composite characters.
18099 (Ffind_charset_string): Include `composition' in the returned list
18100 if the string contains any composite characters.
18101 (find_charset_in_str): Handle CMPCHARP arg correctly.
18102
18103 * coding.c (shrink_decoding_region): If a charset other than ascii
18104 is initially designated to G0, don't shrink the region.
18105 (shrink_encoding_region): Likewise.
18106
18107 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18108 byte-combining situation.
18109
18110 * fns.c (clear_string_char_byte_cache): New function.
18111 (Ffillarray): Handle multibyte string correctly.
18112
18113 * lisp.h (clear_string_char_byte_cache): Extern it.
18114
18115 * xselect.c (lisp_data_to_selection_data): Call
18116 find_charset_in_str with CMPCHARP arg 0.
18117 * w16select.c (Fw16_set_clipboard_data): Likewise.
18118 * w32select.c (Fw32_set_clipboard_data): Likewise.
18119
181201998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18121
18122 * keyboard.c (parse_menu_item): For top level of menu bar,
18123 accept ordinary commands, and treat them just like a keymap.
18124
181251998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18126
18127 * xdisp.c (redisplay_window): Clear w->window_end_valid
18128 before running the window-scroll-functions hook, if appropriate.
18129
181301998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18131
18132 * data.c (Fstring_to_number): Don't recognize floating point
18133 if base is not 10.
18134
18135 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18136 (check_all_windows): New function for debugging tests.
18137 (syms_of_window): Initialize it.
18138
18139 * window.c (Qwindow_configuration_p): New variable.
18140 (Fwindow_configuration_frame): New function.
18141 (syms_of_window): defsubr it.
18142 (Fset_window_configuration): Return t if frame is live.
18143 Use Qwindow_configuration_p.
18144
18145 * xfns.c (check_x_display_info): Don't use selected_frame
18146 if it is dead.
18147
181481998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18149
18150 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18151
181521998-10-08 Kenichi Handa <handa@etl.go.jp>
18153
18154 * buffer.h (inhibit_modification_hooks): Extern it.
18155
18156 * buffer.c (inhibit_modification_hooks): New variable.
18157 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18158
18159 * charset.c (invalid_character): Prepend `0' to octal
18160 representation. Give error sufficient args.
18161
18162 * coding.c (code_convert_region): Set inhibit_modification_hooks
18163 to 1 before calling Fset_text_properties.
18164
18165 * insdel.c (signal_before_change): If inhibit_modification_hooks
18166 is nonzero, do nothing.
18167 (signal_after_change): Likewise.
18168
181691998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18170
18171 * process.c: Doc fixes.
18172
181731998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18174
18175 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18176
181771998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18178
18179 * w32.c (init_ntproc): Check for Windows init file.
18180 (term_ntproc): Do not check for it here.
18181
181821998-09-28 Kenichi Handa <handa@etl.go.jp>
18183
18184 * coding.c (check_composing_code): Fix previous change. Now it
18185 alwasy returns 0 or -1.
18186 (decode_coding_iso2022): Adjusted for the above change.
18187 (encode_coding_iso2022): When encoding the last block, flush out
18188 tailing garbage bytes.
18189 (setup_coding_system): Delete unnecessary code.
18190 (shrink_decoding_region): Check translation table. If ASCII
18191 should be translated, give up shrinking.
18192 (shrink_encoding_region): Likewise.
18193 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18194 (SHRINK_CONVERSION_REGION): New macro.
18195 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18196 properties here.
18197 (code_convert_region): In the case of encoding, always calulate
18198 correct character number.
18199 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18200 (code_convert_region1): Don't delete text properties here.
18201
18202 * insdel.c (adjust_after_replace): Don't delete text properties here.
18203
18204 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18205
182061998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18207
18208 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18209
182101998-09-26 Kenichi Handa <handa@etl.go.jp>
18211
18212 * coding.h (struct coding_system): New member composed_chars.
18213
18214 * coding.c (check_composing_code): If the current composing
18215 sequence doesn't end properly, return -1.
18216 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18217 (DECODE_CHARACTER_DIMENSION1): Likewise.
18218 (decode_coding_iso2022): Check validity of a composing sequence.
18219 (code_convert_string): If the length of text to be converted is
18220 shrunk to zero, don't perform code conversion.
18221 (shrink_decoding_region): Fix previous change.
18222
18223 * editfns.c (Fformat): Check format control characters.
18224
182251998-09-25 Kenichi Handa <handa@etl.go.jp>
18226
18227 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18228 single CR code correctly.
18229 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18230 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18231
182321998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18233
18234 * w32fns.c (w32_color_map_lookup): New function.
18235 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18236
182371998-09-22 Kenichi Handa <handa@etl.go.jp>
18238
18239 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18240
18241 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18242 strings unibyte.
18243 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18244
182451998-09-22 Kenichi Handa <handa@etl.go.jp>
18246
18247 * callint.c (Fcall_interactively): Don't use input method when
18248 reading a character in the case of `c' code letter.
18249
182501998-09-21 Dave Love <fx@gnu.org>
18251
18252 * editfns.c (Fsave_restriction): Doc fix.
18253
182541998-09-21 Richard Stallman <rms@gnu.org>
18255
18256 * lread.c (build_load_history): Do add to Vload_history
18257 even when dumping Emacs.
18258
182591998-09-18 Kenichi Handa <handa@etl.go.jp>
18260
18261 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18262 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18263 cause error if the program is going to output some bytes. When
18264 outputing a string to notify an error, check the case that
18265 DST_BYTES is zero.
18266
427ec082 18267 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18268
18269 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18270 user or the CCL program executed an invalid command, return
18271 CODING_FINISH_INTERRUPT.
18272 (code_convert_region): Pay attention to the converters return
18273 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18274
182751998-09-16 Kenichi Handa <handa@etl.go.jp>
18276
18277 * coding.c (code_convert_region): Update beg_unchanged and
18278 end_unchanged after we delete the source text.
18279
18280 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18281 position if it is FROM.
18282 (adjust_markers_for_combining): New function.
18283 (combine_bytes): Call adjust_markers_for_combining instead of
18284 adjust_markers_for_replace.
18285 (adjust_after_replace): Record deletion of combining after bytes
18286 with the correct position.
18287 (replace_range): Likewise. Record the actual deletion after
18288 recoding deletions of combining bytes.
18289
18290 * xdisp.c (message_log_check_duplicate): Count byte length of the
18291 latest message correctly.
18292
182931998-09-12 Richard Stallman <rms@gnu.org>
18294
18295 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18296 instead of SET_PT_BOTH.
18297 (try_window_id, display_text_line): Likewise.
18298
182991998-09-12 Karl Heuer <kwzh@gnu.org>
18300
18301 * data.c (Fmake_local_variable): Doc fix.
18302
183031998-09-10 Dave Love <fx@gnu.org>
18304
18305 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18306
183071998-09-10 Richard Stallman <rms@gnu.org>
18308
18309 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18310 (bcopy, bcmp, bzero): Add #undef.
18311
18312 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18313 first exit if selected frame is dead (no live frames remain).
18314 (read_key_sequence): Likewise.
18315
183161998-09-10 Karl Heuer <kwzh@gnu.org>
18317
18318 * emacs.c (main): Mention --display and --eval in help.
18319
183201998-09-07 Paul Eggert <eggert@twinsun.com>
18321
18322 * editfns.c (emacs_memftime): New function.
18323 (Fformat_time_string): Use it to handle null bytes in formats
18324 correctly.
18325
183261998-09-08 Kenichi Handa <handa@etl.go.jp>
18327
18328 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18329 (Ffind_charset_string): For unibyte string, return (ascii).
18330
18331 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18332 arg MARKERS 1.
18333
18334 * insdel.c (adjust_after_replace): Don't add combining bytes to
18335 the args given to adjust_point. Handle correctly the case that
18336 there are both before and after combining bytes.
18337 (replace_range): Likewise.
18338
183391998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18340
18341 * fns.c (base64_decode_1, base64_encode_1): New functions.
18342 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18343 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18344
183451998-09-07 Karl Heuer <kwzh@gnu.org>
18346
18347 * eval.c (error): After enlarging buffer, write to it, not to buf.
18348
18349 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18350
183511998-09-07 Kenichi Handa <handa@etl.go.jp>
18352
18353 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18354 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18355 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18356
18357 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18358 chars in produced byte sequence.
18359 (Ffind_operation_coding_system): Doc-string fixed.
18360
18361 * insdel.c (count_combining_after): Check also preceding bytes at
18362 POS if all characters in STRING are not character head.
18363
183641998-09-06 Paul Eggert <eggert@twinsun.com>
18365
18366 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18367 Don't assume that localtime and gmtime return non-NULL.
18368
183691998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18370
18371 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18372 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18373 New functions.
18374
183751998-09-06 Richard Stallman <rms@gnu.org>
18376
18377 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18378
18379 * lread.c (Fload): Handle case where openp finds a magic file
18380 but it has no `load' handler or that handler calls `load'.
18381 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18382
183831998-09-04 Dave Love <fx@gnu.org>
18384
18385 * buffer.c (enable-multibyte-characters): Doc fix.
18386
183871998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18388
18389 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18390
183911998-09-01 Kenichi Handa <handa@etl.go.jp>
18392
18393 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18394 address in buffer from byte-position.
18395
183961998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18397
18398 * w16select.c (Vnext_selection_coding_system): New variable.
18399 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18400 Vselection_coding_system.
18401 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18402 Vnext_selection_coding_system if non-nil.
18403 (Fw16_get_clipboard_data): Always convert a string that includes
18404 non-ASCII characters. Use Vnext_selection_coding_system if
18405 non-nil.
18406
184071998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18408
18409 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18410 mouse capture.
18411
184121998-08-31 Kenichi Handa <handa@etl.go.jp>
18413
18414 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18415 x_list_font returns.
18416
184171998-08-31 Paul Eggert <eggert@twinsun.com>
18418
18419 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18420 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18421
184221998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18423
18424 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18425 cursor, save and restore previous cursor position in the
18426 minibuffer.
18427
184281998-08-31 Kenichi Handa <handa@etl.go.jp>
18429
18430 * charset.c (unibyte_char_to_multibyte):
18431 Vnonacii_translation_table will convert a 7-bit charcater.
18432 (multibyte_char_to_unibyte): Handle the case that
18433 Vnonacii_translation_table converts a multibyte charcater to a
18434 unibyte charcter of less than 128.
18435 (init_charset_once): Initialize nonascii_insert_offset and
18436 Vnonacii_translation_table.
18437
18438 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18439 processing if CODING requires flushing.
18440 (encode_coding): Likewise.
18441 (code_convert_region): Likewise.
18442 (code_convert_string): Likewise.
18443
18444 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18445 to convert a character less than 160 to multibyte.
18446 * insdel.c (copy_text): Likewise.
18447 (count_size_as_multibyte): Likewise.
18448 * xterm.c (dumpglyphs): Likewise.
18449
184501998-08-29 Paul Eggert <eggert@twinsun.com>
18451
18452 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18453 using negation, not subtraction; this makes a difference with
18454 IEEE floating point arithmetic (and also if integer arithmetic
18455 is ones' complement or signed-magnitude!).
18456
184571998-08-29 Karl Heuer <kwzh@gnu.org>
18458
18459 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18460
184611998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18462
18463 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18464
184651998-08-28 Paul Eggert <eggert@twinsun.com>
18466
18467 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18468 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18469 path only if we're not building with Motif.
18470
184711998-08-28 Kenichi Handa <handa@etl.go.jp>
18472
18473 * insdel.c (adjust_after_replace): Fix the code to record undo
18474 information for the case that `before combining' happens. Remove
18475 text properties which are added to the new text by
18476 offset_intervals.
18477
18478 * coding.c (code_convert_region1): Remove all text properties of
18479 the region.
18480
184811998-08-28 Kenichi Handa <handa@etl.go.jp>
18482
18483 * charset.h (CHAR_BYTES): New macro.
18484
18485 * charset.c (Fchar_bytes): Now always return 1.
18486 (char_bytes): New function.
18487
18488 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18489 range, return nil.
18490 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18491 nil.
18492
18493 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18494 * fns.c (concat): Likewise.
18495 * insdel.c (count_size_as_multibyte): Likewise.
18496 * xdisp.c (message_dolog): Likewise.
18497
184981998-08-27 Kenichi Handa <handa@etl.go.jp>
18499
18500 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18501 correctly. They are for SS2 and SS3 respectively.
18502 (ccl_coding_driver): Fix previous change.
18503
185041998-08-26 Paul Eggert <eggert@twinsun.com>
18505
18506 * xterm.c (fixup_locale): New function. For now, it resets
18507 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18508 resets LC_MESSAGES to "C".
18509 (x_term_init): Use it to fix up the locale after setlocale
18510 (LC_ALL, "").
18511
185121998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18513
18514 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18515 case it was prototyped the old way.
18516
185171998-08-25 Kenichi Handa <handa@etl.go.jp>
18518
18519 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18520 returns a null string. This happens when dxpc 3.7 is being used.
18521
185221998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18523
18524 * keyboard.c (input-method-previous-message): Doc fix.
18525
18526 * coding.c (file-coding-system-alist,
18527 select-safe-coding-system-function): Doc fix.
18528
185291998-08-23 Kenichi HANDA <handa@etl.go.jp>
18530
18531 * coding.c (detect_coding_iso2022): Don't check the byte length of
18532 succeeding codes (0xa0..0xFF) if the codes follows single shift
18533 code (SS2 or SS3).
18534
185351998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18536
18537 * coding.c (detect_coding_system): If detect_eol_type returns
18538 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18539 correctly.
18540
18541See ChangeLog.7 for earlier changes.