Menu help strings now used.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
712eaef2
GM
12000-07-12 Gerd Moellmann <gerd@gnu.org>
2
3 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
4 Before scrolling, turn off a mouse-highlight in the window
5 being scrolled.
6
7 * xterm.c (x_update_window_end): Add parameter
8 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
9 redisplay in XTframe_up_to_date.
10 (x_clear_mouse_face): New function.
11 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
12
13 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
14 current glyph row.
15 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
16 it when any row is written to that contains glyphs highlighted in
17 mouse-face.
18 (update_window): Call the window update end hook with new
19 parameter MOUSE_FACE_OVERWRITTEN_P.
20 (direct_output_for_insert): Give up if row contains mouse-face.
21
22 * dispextern.h (struct redisplay_interface): Add parameter
23 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
24 (clear_mouse_face): New function pointer member.
25
02010917
SM
262000-07-11 Stefan Monnier <monnier@cs.yale.edu>
27
28 * syntax.c (back_comment): Use one switch rather than a few `if's.
29 Obey open_paren_in_column_0_is_defun_start.
30 When reverting to the `slow' method, try to nicely handle the case
31 of nested comments by checking that the comment-starter we found
32 does indeed match the comment-ender.
33 (scan_sexps_forward, scan_sexps_forward):
34 Ignore excessive opening parenthesis rather than throwing an error.
35
d76c03ea
GM
362000-07-11 Gerd Moellmann <gerd@gnu.org>
37
38 * doc.c (Fsubstitute_command_keys): Handle case that a GC
39 in Fwhere_is_internal or get_keymap_1 relocates string contents.
40
41 * dispnew.c (direct_output_forward_char): Give up if currently
42 displaying a message instead of the minibuffer contents.
43
44 * xterm.c (x_update_window_begin): No need to turn off the mouse
45 highlight here.
46 (show_mouse_face): Set the mouse_face_p flag of glyph rows
47 depending on whether they contain glyphs highlighted in
48 mouse-face.
49
50 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
51 compare the mouse_face_p flags of both rows.
52
53 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
54
d55ead18
EZ
552000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
56
57 * keyboard.c (show_help_echo): Accept additional parameter
58 ok_to_overwrite_keystroke_echo.
59 (read_char): Call show_help_echo with a zero
60 ok_to_overwrite_keystroke_echo argument.
61 * keyboard.h (show_help_echo): Update prototype of
62 show_help_echo.
63 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
64 ok_to_overwrite_keystroke_echo argument.
65 * w32menu.c (w32_menu_display_help): Call show_help_echo with
66 non-zero ok_to_overwrite_keystroke_echo argument.
67
df75b1a3
GM
682000-07-10 Gerd Moellmann <gerd@gnu.org>
69
4b92c49a
GM
70 * xdisp.c (try_window_id): If changes are all below what is
71 displayed in the window, and point is in the window, we still
72 might have to find point on the display.
73
74 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
75 glyphs instead of a single one.
76 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
77 with new argument list.
78 (x_set_glyph_string_gc): Make sure the face's GC is valid.
79
df75b1a3
GM
80 * keymap.c (get_keymap_1): Add comment that this function can GC.
81 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
82 comment that functions can GC.
83 (Fset_keymap_parent): GCPRO arg KEYMAP.
84
4314cf3e
EZ
852000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
86
87 * msdos.c (XMenuActivate): After exiting the menu, restore the
88 echo area message and erase it.
89
ab49ce15
KH
902000-07-10 Kenichi Handa <handa@etl.go.jp>
91
92 * fontset.c (Ffontset_info): Make the return value more compatible
93 with that of Emacs 20.
94
090a072f
GM
952000-07-07 Gerd Moellmann <gerd@gnu.org>
96
97 * eval.c (Fsignal): Handle case that backtrace_list is null.
98
f92de4a6
KH
992000-07-07 Kenichi Handa <handa@etl.go.jp>
100
101 * ccl.c (Fccl_execute): Typo fixed.
102
dd8888a1
GM
1032000-07-06 Gerd Moellmann <gerd@gnu.org>
104
e5c81191
GM
105 * window.c (window_loop): Add missing gcpro1 local variable.
106
dd8888a1
GM
107 * window.c (Fwindow_list): Reverse list at the end.
108 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
109 means allow windows on OWINDOW's frame, only.
110 (window_loop): Simplified; use Fwindow_list.
111
112 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
113
485266d0
GM
1142000-07-05 Gerd Moellmann <gerd@gnu.org>
115
116 * xterm.c (XTread_socket): Increment handling_signal at the start,
117 decrement it at the end.
118
119 * eval.c (handling_signal): New variable.
120 (Fsignal): Abort if handling_signal is non-zero.
121
122 * lisp.h (handling_signal): External declaration.
123
124 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
125
80fcd514
KR
1262000-07-05 Ken Raeburn <raeburn@gnu.org>
127
128 Sound support for NetBSD through "Linux emulation" support:
129 * config.in (HAVE_SOUNDCARD_H): Undef.
130 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
131 * Makefile.in (LIBSOUND): New variable.
132 (LIBES): Include it.
133 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
134 <soundcard.h>.
135 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
136 elsewhere.
137 (vox_open): Use DEFAULT_SOUND_DEVICE.
138 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
139
d5c5cddd
GM
1402000-07-05 Gerd Moellmann <gerd@gnu.org>
141
142 * print.c (print_error_message): If Vsignaling_function is set,
143 show it in *Messages*.
144
145 * lisp.h (Vsignaling_function): External declaration.
146
147 * eval.c (Vsignaling_function): New variable.
148 (Fsignal): Compute it.
149 (syms_of_eval): Staticpro it.
150
65171e3a
DL
1512000-07-05 Dave Love <fx@gnu.org>
152
153 * syswait.h: Use the autoconf recommended approach. Old code
154 #if'd out in case we need to revert.
155
156 * config.in (HAVE_SYS_WAIT_H): Added.
157
e2c46326
AI
1582000-07-05 Andrew Innes <andrewi@gnu.org>
159
160 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
161 when non-NULL instead of __morecore, to take account of buffer
162 memory. This also solves a problem with spurious memory warnings
163 on Windows.
164
165 * ralloc.c: Make real_morecore non-static.
166
167 * eval.c (internal_condition_case): Comment out abort if
168 interrupt_input_blocked is not zero.
169
170 * makefile.nt: Add support for `bootstrap' and related targets.
171 Include minimal debug info in emacs.exe in release build.
172 Remove all dependencies on lisp.h, and fixup some others.
173
174 * w32.c (init_environment): Install code from 20.7 for providing
175 default values for environment variables, based on the
176 executable's own location.
177 (map_w32_filename): Handle filenames that are longer than
178 MAX_PATH.
179 (sys_socket): Install socket inheritance bug fix from 20.7.
180
181 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
182 here via blockinput.h).
183
a027a91b
SM
1842000-07-05 Stefan Monnier <monnier@cs.yale.edu>
185
e4b31601
SM
186 * w32menu.c (w32_menu_display_help):
187 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
188
189 * keyboard.h (show_help_echo): Declare.
190
191 * keyboard.c (show_help_echo): New function, extracted from read_char.
192 Feval its `msg' argument if it's a cons cell.
193 (read_char): Use it.
4cf8d9d5 194 (follow_key): Pass `autoload' to get_keyelt.
a027a91b
SM
195
196 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
197 (note_tool_bar_highlight, XTread_socket):
198 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
199 (dos_rawgetc):
200 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
201 (note_tool_bar_highlight, w32_read_socket):
202 Do not gratuitously ignore non-string `help-echo' properties.
203
88d75730
GM
2042000-07-05 Gerd Moellmann <gerd@gnu.org>
205
969f7e79
GM
206 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
207
71201b00
GM
208 * window.c (delete_all_subwindows): Reset Vwindow_list.
209
88d75730
GM
210 * xterm.c (x_append_glyph, x_append_composite_glyph)
211 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
212 changes in struct glyph starting 1999-12-27. Some bit-fields of
213 struct glyph were not set, which made glyphs unequal when compared
214 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
215 effects were the result. This also depended on the contents of
216 memory returned by xmalloc. If flickering happens again, activate
217 the code in clear_glyph_row that's in #if 0. If the flickering is
218 gone with that, chances are that it is caused by something
219 similar.
220
221 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
222
223 * dispextern.h: Add some comments.
224
225 * window.c (add_window_to_list): Add parameter LIST.
226 (window_list): Order list so that, for each frame, windows are
227 in canonical order, and so that frames appear in the list in
228 the order given by Vframe_list.
229 (next_window): Reverse the handling of NEXT_P.
230
53654733
GM
2312000-07-04 Gerd Moellmann <gerd@gnu.org>
232
87efd256
GM
233 * window.c (Vwindow_list): New variable.
234 (make_window, delete_window): Set Vwindow_list to nil.
235 (check_window_containing): New function.
236 (window_from_coordinates): Rewritten.
237 (add_window_to_list, window_list, candidate_window_p)
238 (decode_next_window_args, next_window): New functions.
239 (Fnext_window, Fprevious_window): Rewritten in terms of
240 next_window.
241 (Fwindow_list): New function.
242 (Fother_window): Cleaned up.
243 (foreach_window): Add a longer "variable argument list". Let
244 callback function return 0 to indicate that cycling over windows
245 should stop.
246 (foreach_window_1): Likewise.
247 (freeze_window_start): Return int.
248 (init_window): New function.
249 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
250
251 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
252 input_event with bzero.
253 (main): Call init_window.
254
53654733
GM
255 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
256 a menu filter.
257
4a8c194f
KH
2582000-07-04 Kenichi Handa <handa@etl.go.jp>
259
260 * composite.h (make_composition_value_copy): Extern it.
261
262 * composite.c (make_composition_value_copy): New function.
263
264 * editfns.c (Fformat): While copying text properties, make each
265 composition property value a copy.
266
267 * fns.c (concat): While copying text properties, make each
268 composition property value a copy.
269
831a6cb0
GM
2702000-07-03 Gerd Moellmann <gerd@gnu.org>
271
2f516940
GM
272 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
273
aee625fa
GM
274 * fns.c (sweep_weak_table): Mark only objects that are not
275 marked already.
276
831a6cb0
GM
277 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
278 include those frames as candidates which have their focus
279 redirected to the minibuffer frame.
280
d9c4f922
SM
2812000-07-03 Stefan Monnier <monnier@cs.yale.edu>
282
283 * fns.c (Fputhash): Return `value' rather than nil.
284
3780bc22
GM
2852000-06-30 Gerd Moellmann <gerd@gnu.org>
286
97d176db
GM
287 * frame.c (next_frame): Don't check focus redirection in case
288 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
289 unless their focus is redirected, which contradicts the
290 specification of next-frame, and leads to infinite loops in
291 certain situations when cycling through windows with next-window.
292
dca9961d
KH
2932000-06-30 Kenichi Handa <handa@etl.go.jp>
294
295 * coding.c (code_convert_region): Even if the length of text is
296 zero, try to convert it if coding->type is coding_type_ccl.
297 (decode_coding_string, encode_coding_string): Likewise.
298
d5483ab1
GM
2992000-06-28 Gerd Moellmann <gerd@gnu.org>
300
af5c25e1 301 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 302 the display if windows_or_buffers_changed.
af5c25e1
GM
303
304 * dispnew.c (struct row_entry): New structure.
305 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
306 (row_table_size, old_lines, new_lines, old_lines_size)
307 (new_lines_size, run_pool, runs_size, runs): New variables.
308 (add_row_entry): New function.
309 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 310 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
311 holding them in local variables. Use a larger hash table whose
312 size depends on glyph matrix sizes. Don't use bzero to clear the
313 hash table; instead, clear used slots only.
314
315 * fns.c (next_almost_prime): Make it externally visible.
316
317 * lisp.h (next_almost_prime): Add prototype.
318
d5483ab1
GM
319 * s/isc4-0.h (sigunblock): Define.
320
321 * s/sco5.h (sigunblock): Define.
322
93e40f40
DL
3232000-06-27 Dave Love <fx@gnu.org>
324
325 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
326 (moved to osf5-0.h).
327 [!NOT_C_CODE]: Protect string.h stuff.
328
329 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
330 (sys_siglist, NSIG): Definitions moved here from osf1.h.
331
3c4b7685
GM
3322000-06-27 Gerd Moellmann <gerd@gnu.org>
333
97d176db 334 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
335 below the last line from the needed window height.
336
32cad0aa
SM
3372000-06-26 Stefan Monnier <monnier@cs.yale.edu>
338
339 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
340 (Fwidget_get): Use it.
341 (syms_of_fns): Defsubr it.
342
2c69ced2
GM
3432000-06-26 Gerd Moellmann <gerd@gnu.org>
344
1d36487c
GM
345 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
346 display info for XIM.
347 (xim_open_dpy): Likewise.
348 (xim_close_dpy): Don't free the display info's XIM.
349
350 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
351
352 * config.in (USE_XIM): New define.
353
3fc720e4
GM
354 * keymap.c (get_keyelt): For menu-items containing a `:filter
355 FILTER', apply FILTER to the menu-item's definition to get the
356 real definition to use.
357
358 * lisp.h (QCfilter): External declaration.
359
2c69ced2
GM
360 * xfns.c (Fimage_size): New function.
361 (syms_of_xfns): Defsubr it.
362
f978b2a2
AS
3632000-06-26 Andreas Schwab <schwab@suse.de>
364
365 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
366 Fstring_as_unibyte.
367
94cc7892
DL
3682000-06-25 Dave Love <fx@gnu.org>
369
370 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
371 tgetnum.
372
373 * Makefile.in (blockinput.h): Depend on atimer.h.
374 (atimer.h): Depend on systime.h.
375
376 * blockinput.h: Protect against multiple inclusion. Include
377 atimer.h.
378
379 * atimer.h: Protect against multiple inclusion. Include
380 systime.h.
381
382 * lisp.h (swap_in_global_binding): Declare.
383
b8c24556
KR
3842000-06-24 Ken Raeburn <raeburn@gnu.org>
385
386 * process.c (Fopen_network_stream): Turn off atimers for duration
387 of call to connect. (Patch from Gerd.)
388
8cf8560b
DL
3892000-06-23 Dave Love <fx@gnu.org>
390
511c7541
DL
391 * ralloc.c: Maybe include unistd.h
392
8cf8560b
DL
393 * emacs.c (setgrp): Undefine before defining.
394 (malloc_warning, set_time_zone_rule, index): Prototype.
395
396 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
397 HAVE_STRUCT_TIMEZONE.
398
399 * s/osf1.h: Move string.h hack here from alpha.h and make it
400 conditional.
401 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
402 _XOPEN_SOURCE.
403 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
404 (SOCKLEN_TYPE): Don't define.
405
406 * m/alpha.h: Remove string.h hack.
407
408 * s/osf5-0.h: New file.
409
410 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
411 include time.h, done by systime.h.
412 [__FreeBSD__]: Remove redundant includes.
413
3fc720e4 414 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
415 (delete_temp_file): Return Qnil to avoid warning.
416
417 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
418
419 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
420 HAVE_X_WINDOWS.
421
422 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
423
424 * composite.h (compose_text): Declare.
425
426 * xterm.c: Don't include sys/types.h unconditionally. Don't
427 protect its inclusion with !USG (following xmenu.c).
428
ea055732
GM
4292000-06-23 Gerd Moellmann <gerd@gnu.org>
430
431 * xfns.c (x_create_tip_frame): Initialize frame's colors like
432 in x_create_frame.
433
74b01b80
EZ
4342000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
435
436 * coding.c (decode_eol_post_ccl): Special handling for undecided
437 and inconsistent EOL types.
438
64f3a166
GM
4392000-06-22 Gerd Moellmann <gerd@gnu.org>
440
16cf31f7
GM
441 * xrdb.c (x_load_resources): Add default resource for scroll bar's
442 trough color and main window's background color.
443
444 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
445 differently.
446
447 * xterm.h (Xt_app_con): External declaration.
448
449 * widget.c (EmacsFrameRealize): Fix typo.
450
486a103d
GM
451 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
452
64f3a166
GM
453 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
454 (handle_invisible_prop): Record the start of invisible text in
455 it->add_overlay_start.
456 (struct overlay_entry): Add member `overlay'.
457 (handle_overlay_change): Simplify.
458 (next_overlay_string): After having processed overlay strings at the
459 end of the buffer, record that fact in
460 it->overlay_strings_at_end_processed_p.
461 (compare_overlay_entries): If before- and after-strings come
462 from the same overlay, let before-strings come first.
463 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
464 (load_overlay_strings): Take it->add_overlay_start into account
465 when adding overlay strings.
466
467 * dispextern.h (struct it): Add member add_overlay_start.
468
bb746ea6
DL
4692000-06-22 Dave Love <fx@gnu.org>
470
471 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
472
473 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
474
a8f573f3
KH
4752000-06-22 Kenichi Handa <handa@etl.go.jp>
476
477 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
478 is greater than 0.
479
9f2bbc92
DL
4802000-06-21 Dave Love <fx@gnu.org>
481
482 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
483
3ee5041c
SM
4842000-06-21 Stefan Monnier <monnier@cs.yale.edu>
485
486 * syntax.c (back_comment): Simplify string-parity counting (with
487 the added benefit of handling multiple string-styles as long as
488 they are not intertwined).
489 Jump to the slow code as soon as a comment starter is found in
490 a "string_lossage" position. Fixes the case: " /* " /* " */.
491
4c343001
DL
4922000-06-21 Dave Love <fx@gnu.org>
493
494 * Makefile.in: Use GETLOADAVG_LIBS.
495
496 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
497 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
498
e6365855
SM
4992000-06-20 Stefan Monnier <monnier@cs.yale.edu>
500
501 * syntax.c (describe_syntax): Recognize the `n'estable bit.
502 (Fforward_comment, scan_lists):
503 Check the comstyle of single-char comment-starters.
504 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
505 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
506 Check the comstyle of single-char comment-starters.
507 Clarify control-flow around the Scomment case.
e6365855 508
5700d2cc
DL
5092000-06-20 Dave Love <fx@gnu.org>
510
d355bd8a
SM
511 * fns.c (make_hash_table, maybe_resize_hash_table):
512 Cast arg of next_almost_prime.
5700d2cc
DL
513
514 * tparam.c [emacs]: Include lisp.h.
515
516 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
517 and unistd.h.
518
4a27bdfb
GM
5192000-06-20 Gerd Moellmann <gerd@gnu.org>
520
a61d762c
GM
521 * keyboard.c (adjust_point_for_property): Check if display
522 property should be treated as intangible by looking at its
523 value.
524
525 * xdisp.c (single_display_prop_intangible_p)
526 (display_prop_intangible_p): New functions.
527
528 * dispextern.h (display_prop_intangible_p): Add prototype.
529
530 * xdisp.c (dump_glyph_row): Show type of glyph->object.
531
4a27bdfb
GM
532 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
533 argument to sigprocmask.
534
535 * s/sco5.h (sigblock): Redefined to pass a pointer as second
536 argument to sigprocmask.
537
538 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
539 sigprocmask_set, and pass a pointer to it to sigprocmask.
540
541 * sysdep.c (sigprocmask_set): New variable.
542
543 * fileio.c (make_temp_name): Don't use `%s' in string passed to
544 report_file_error.
545
427ec082
SS
5462000-06-20 Sam Steingold <sds@gnu.org>
547
548 * xrdb.c: Don't declare xmalloc, xrealloc.
549
8972fe79 5502000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
551
552 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
553 (re_comp): Cast gettext return value to avoid complaints when
554 !HAVE_LIBINTL.
555
074b6efe
DL
5562000-06-20 Dave Love <fx@gnu.org>
557
f85c008a
DL
558 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
559 HAVE_GETTIMEOFDAY.
560
5700d2cc 561 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 562
d355bd8a 563 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
564
565 * m/alpha.h: Don't declare xmalloc, xrealloc.
566
0af4f205
DL
567 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
568
569 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
570
571 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
572
573 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
574 HAVE_GETWD.
575
074b6efe
DL
576 * keyboard.h (poll_for_input_1): Declare.
577
578 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
579
580 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
581
582 * doprnt.c: Don't declare xmalloc, xrealloc.
583
584 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
585 (getenv, ctime, getwd): Removed.
586 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
587
588 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
589 x_set_tool_bar_lines.
590
591 * config.in: Add HAVE_GETWD. Move some definitions above
592 machine/system includes.
593
68a5e97b
KH
5942000-06-20 Kenichi Handa <handa@etl.go.jp>
595
95417e1e
KH
596 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
597
68a5e97b
KH
598 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
599 contain information about ENCODING.
600
601 * fontset.c (FONTSET_ASCII): Use the first element of char table
602 for an ASCII font, not defalt slot.
603 (fontset_ref_via_base): If FONTSET doesn't contain information for
604 C, try the default fontset.
605 (make_fontset): Don't copy the default fontset.
606 (fontset_font_pattern): Likewise.
607 (accumulate_font_info): If ELT is nil, use the corresponding
608 element in the default fontset.
609
3b4fa1b2
DL
6102000-06-19 Dave Love <fx@gnu.org>
611
943e731c
DL
612 * syntax.c (Fparse_partial_sexp): Doc fix.
613
614 * regex.h: Test PROTOTYPES as well as __STDC__.
615
3b4fa1b2
DL
616 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
617 errno, strerror. Put text after #endif in comment.
618
619 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
620 pcc).
621
622 * xterm.c (x_frame_of_widget): Likewise.
623
cdf0357b
GM
6242000-06-19 Gerd Moellmann <gerd@gnu.org>
625
626 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
627 to Vfundamental_mode_abbrev_table.
628
629 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
630 bogus objects are marked. This slows down GC by ~80 percent, but
631 it might be worth trying when debugging GC-related problems.
632 This feature requires conservative stack marking to be enabled.
633
634 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
635 returns XLookupChars, reset `modifiers' to zero.
636
998e9f8c
DL
6372000-06-19 Dave Love <fx@gnu.org>
638
639 * mktime.c: Unprotoized.
640
d1504184
GM
6412000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
642
643 * data.c (set_internal): If variable is frame-local,
644 store the new value immediately into the frame parameter alist.
645
140c4ac6
KR
6462000-06-19 Ken Raeburn <raeburn@gnu.org>
647
14358466
KR
648 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
649 in the custom handler pointer.
650
140c4ac6
KR
651 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
652 value, or checks for CHAR_META can fail when Lisp_Object is a
653 union type.
654 * keymap.c (get_keyelt): Likewise.
655
10d7bf84
KH
6562000-06-19 Kenichi Handa <handa@etl.go.jp>
657
658 * ccl.h (struct ccl_program): New member eol_type.
659 (struct ccl_spec): New member cr_carryover.
660
661 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
662 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
663
664 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
665 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
666 (decode_eol_post_ccl): New function.
667 (decode_coding): Don't detect EOL format here for CCL based coding
668 systems.
669 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
670 decode_eol_post_ccl after running the CCL program.
671 (code_convert_region): Don't detect EOL format here for CCL based
672 coding systems.
673 (decode_coding_string): Likewise.
674
52e386c2
KR
6752000-06-18 Ken Raeburn <raeburn@gnu.org>
676
677 * charset.c (update_charset_table): Use XINT on "iso_final_char"
678 when treating it as an integer.
679
680 * coding.h (encode_coding_string): Declare.
681
682 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
683 it as an integer.
684
685 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
686 "xkeymap" to avoid shadowing the "enum map_type" value that needs
687 to be passed to get_local_map.
688
689 * sound.c (Fplay_sound): Don't call make_number on
690 Frun_hook_with_args count argument.
691
692 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
693 for lisp objects in X event structure data field, when lisp
694 objects are represented with unions.
695 (x_scroll_bar_to_input_event): Ditto.
696
b357b9d4
KR
6972000-06-16 Ken Raeburn <raeburn@gnu.org>
698
699 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
700 termination of string. Fix sense of test whether
701 Vline_number_display_limit is an integer.
b357b9d4 702
a871441d
GM
7032000-06-16 Gerd Moellmann <gerd@gnu.org>
704
a9021acd
GM
705 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
706 only if HAVE_X_WINDOWS.
707
6344985d
GM
708 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
709 of titles.
710
427ec082 711 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
712 out of bounds.
713
228b083e
EZ
7142000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
715
716 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
717 of its headers.
718
c25b53a2
KH
7192000-06-15 Kenichi Handa <handa@etl.go.jp>
720
721 * coding.c (decode_coding_emacs_mule): Always set src_base at the
722 start of the while loop.
723
a6981b11
GM
7242000-06-15 Gerd Moellmann <gerd@gnu.org>
725
e9924e52
GM
726 * atimer.c (alarm_signal_handler): Add forward declaration.
727
a6981b11
GM
728 * data.c (set_internal): Remove debug code.
729
25fa6deb
GM
7302000-06-14 Gerd Moellmann <gerd@gnu.org>
731
dce6b995
GM
732 * Makefile.in (bootstrap-temacs): Add `-I../src'.
733
9f817ea4
GM
734 * unexec.c (toplevel) [COFF]: Include coff.h.
735
736 * s/lynxos.h: New file.
737
738 * keymap.c (Fsingle_key_description): Enclose function key and
739 event symbol names in angle brackets.
740
8a4e3c0c
GM
741 * xdisp.c (setup_echo_area_for_printing): Call
742 message_log_maybe_newline if message_buf_print is not set.
743
744 * print.c (printchar, strout): Don't check message_buf_print
427ec082 745 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
746 function does something useful even when message_buf_print is
747 already set.
748
25fa6deb
GM
749 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
750 variables.
751 (ensure_echo_area_buffers): Initialize echo buffer's
752 truncate lines setting to nil.
753 (with_echo_area_buffer): Don't set the echo buffer's truncate
754 lines setting here.
8a4e3c0c 755 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
756 of message_truncate_lines.
757 (resize_mini_window): Handle case that lines are truncated.
758 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
759 message-truncate-lines.
760
761 * keyboard.c (read_char): Bind message-truncate-lines to t
762 while displaying a help-echo.
763
764 * lisp.h (Qmessage_truncate_lines): External declaration.
765
163dcff3
GM
7662000-06-13 Gerd Moellmann <gerd@gnu.org>
767
1681ead6
GM
768 * xdisp.c (Vline_number_display_limit): Renamed from
769 line_number_display_limit.
770 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
771 Extend documentation string. Initialize
772 Vline_number_display_limit to nil meaning no limit.
773 (decode_mode_spec): Use Vline_number_display_limit with its new
774 meaning.
775
163dcff3
GM
776 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
777
7782000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
779
780 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 781
163dcff3
GM
782 * xfns.c (x_set_frame_parameters): Comment fix.
783
784 * frame.c (store_frame_param): Call swap_in_global_binding if the
785 variable's current binding was chosen based on this frame.
786
787 * data.c (swap_in_global_binding): New function.
788
a704139d
EZ
7892000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
790
791 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
792 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
793
9b6610db
EZ
7942000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
795
796 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
797
c68833d2
JR
7982000-06-12 Jason Rumney <jasonr@gnu.org>
799
800 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
801
802 * w32.h (EMACS_W32_H): Renamed from _NT_H_
803
804 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
805
806 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
807
ed1056b3
GM
8082000-06-12 Gerd Moellmann <gerd@gnu.org>
809
810 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
811 (syms_of_xfaces): Defsubr Sdump_colors.
812 (x_free_colors): Don't treat b&w specially on default visual.
813 (x_free_dpy_colors): New function.
814 (free_face_colors): Don't check visual class; it's done
815 in x_free_colors.
816
817 * xterm.c (x_frame_of_widget): New function.
818 (x_alloc_nearest_color_for_widget): Use it.
819 (x_copy_dpy_color): New function.
820 (x_destroy_window): Free various colors.
821
5050a2ef
KH
8222000-06-12 Kenichi Handa <handa@etl.go.jp>
823
824 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
825
826 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
827
828 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
829
830 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
831
832 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
833
fb1b041d
DL
8342000-06-11 Dave Love <fx@gnu.org>
835
836 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
837
ff96b5f4
EZ
8382000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
839
840 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
841
db8eeecd
GM
8422000-06-11 Gerd Moellmann <gerd@gnu.org>
843
ed1056b3 844 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
845 to `XEvent *'.
846
49b71c5f
KH
8472000-06-10 Kenichi Handa <handa@etl.go.jp>
848
c479bd55
KH
849 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
850 (regex_compile): Fix the code for handling the case of single byte
851 char and multibyte char being mixed in a range within [...].
852
ff6a65c2
KH
853 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
854 and dst_multibyte members of coding.
855
49b71c5f
KH
856 * charset.c (update_charset_table): Update the table
857 bytes_by_char_head.
858 (init_charset_once): Initialize elements of bytes_by_char_head to
859 1 except for leading codes for private charases.
860
861 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
862 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
863 sequence.
864
9e80b57d
KR
8652000-06-09 Ken Raeburn <raeburn@gnu.org>
866
867 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
868 access the data it doesn't point to.
869
f83fe4b4
GM
8702000-06-08 Gerd Moellmann <gerd@gnu.org>
871
872 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 873 will be translated to a switch-frame event when reading the
f83fe4b4
GM
874 event queue. This is necessary because Emacs otherwise won't
875 perform a switch-frame to a new frame until some other event, for
876 example a keystroke event, forces it to do so. This has various
877 effects, one visible being that the cursor of a frame created with
878 C-x 5 2 or switched to with a window manager key binding like
879 A-TAB stays hollow because selected_window isn't on the newly
880 focused frame until the switch-frame is performed.
881
882 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
883 generating a switch-frame event if necessary.
884
885 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
886
887 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
888 it's an integer.
889
0890801b
KH
8902000-06-08 Kenichi Handa <handa@etl.go.jp>
891
892 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
893 charset.
894
173cbca8
GM
8952000-06-07 Gerd Moellmann <gerd@gnu.org>
896
3091c2a6
GM
897 * window.c (displayed_window_lines): Take empty lines at
898 the bottom of a window into account.
427ec082 899
f38952fe
GM
900 * window.c (displayed_window_lines): New function.
901 (Fmove_to_window_line): Use displayed_window_lines to determine
902 the number of lines to move, instead of using the window's height.
903
904 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
905 to stop reading, even if the form read sets point to a different
906 value when evaluated.
907
427ec082 908 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
909 put the cursor.
910
6ba6c818
KH
9112000-06-07 Kenichi Handa <handa@etl.go.jp>
912
913 * fileio.c (e_write): Free composition data if stored in
914 coding->cmp_data.
915
5f1aea9a
GM
9162000-06-06 Gerd Moellmann <gerd@gnu.org>
917
666852af
GM
918 * xdisp.c (display_line): Set row's and iterator's
919 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
920 Set cursor even if row ends in the middle of a character.
921 (dump_glyph_row): Print values of new flags.
922 (redisplay_window) <cursor movement in unchanged window>: When
923 point has been moved forward, and PT is at the end of the cursor
924 row, don't place the cursor in the next row if the cursor row ends
925 in the middle of a character or at ZV.
926
927 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
928 (struct glyph_row): Add starts_in_middle_of_char_p and
929 ends_in_middle_of_char_p.
930 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
931 ends_in_middle_of_char_p flag.
932 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
933
d13f3e2e
GM
934 * term.c (append_glyph): Revert change of 2000-06-06.
935
936 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
937 padding glyph not fitting on line as whole character not
938 fitting on line.
939
5f1aea9a
GM
940 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
941 this isn't true for images with `:ascent 100'.
942
10cda9b0
KH
9432000-06-06 Kenichi Handa <handa@etl.go.jp>
944
ed00559d
KH
945 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
946 as modified if it is originally unmodified.
947
10cda9b0
KH
948 * term.c (encode_terminal_code): Change the way to check if
949 terminal coding does any conversion.
950 (append_glyph): Set glyph->pixel_width correctly.
951
952 * xdisp.c (display_line): While checking line continuation, pay
953 attention to a padding glyph.
954
1969fae2
GM
9552000-06-05 Gerd Moellmann <gerd@gnu.org>
956
957 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
958
162ccef4
DL
9592000-06-05 Dave Love <fx@gnu.org>
960
f19f32dd
DL
961 * xdisp.c: Include fontset.h.
962
963 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
964
965 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
966
967 * dispnew.c: Conditionally include term.h.
968
969 * coding.h: Declare code_convert_string_norecord.
970
971 * frame.h (struct frame): Use volatile unconditionally.
972
973 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
974
975 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
976
977 * systime.h: Protect against multiple inclusion.
978 (timezone) [USG5_4]: Define as time_t.
979
980 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
981 (Foptimize_char_table, make_temp_name): Declare.
982
983 * Makefile.in (xdisp.o): Depend on fontset.h.
984
985 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
986
987 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
988 (Foptimize_char_table, make_temp_name): Declare.
989
427ec082 990 * s/irix4-0.h:
162ccef4
DL
991 * s/irix5-0.h:
992 * s/netbsd.h: Don't define autoconfiscated MATHERR.
993
2082fe81
DL
9942000-06-02 Dave Love <fx@gnu.org>
995
996 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
997
dcf671d2
GM
9982000-06-02 Gerd Moellmann <gerd@gnu.org>
999
1000 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 1001 result face, set flags in that face indicating that colors may not
dcf671d2
GM
1002 be freed.
1003
1004 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1005 glyph, use the ASCII NUL character to determine the face.
1006
d42122a3
DL
10072000-06-02 Dave Love <fx@gnu.org>
1008
1009 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1010 (VFORK_RETURN_TYPE): Remove.
427ec082 1011
d42122a3
DL
1012 * config.in: Add NO_MATHERR.
1013
dd432f16
DL
10142000-06-01 Dave Love <fx@gnu.org>
1015
90aa4ea8
DL
1016 * cmds.c (internal_self_insert): Don't check
1017 Vbefore_change_function, Vafter_change_function.
1018
1019 * insdel.c (signal_before_change, signal_after_change): Likewise.
1020
1021 * buffer.c (Vbefore_change_function, Vafter_change_function):
1022 Variables and their initializations deleted.
1023
2330c9d4
DL
1024 * callint.c (Fcall_interactively): Doc fix.
1025
dd432f16
DL
1026 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
1027
bf9e8804
DL
10282000-05-31 Dave Love <fx@gnu.org>
1029
1030 * textprop.c: Revert last change -- duplicated.
1031
3694b4ab
GM
10322000-05-31 Gerd Moellmann <gerd@gnu.org>
1033
1034 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
1035 in #if 0.
1036
1037 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
1038
f14156cd
JR
10392000-05-31 Jason Rumney <jasonr@gnu.org>
1040
8119aab8
JR
1041 * search.c (Fre_search_forward, Fre_search_backward)
1042 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
1043
f14156cd
JR
1044 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
1045
4aab9be3
JR
10462000-05-30 Jason Rumney <jasonr@gnu.org>
1047
1048 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
1049 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
1050
1051 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
1052 member.
1053
1054 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
1055 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
1056 expand a nil default_filename.
1057
1058 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
1059 pointer to glyph_to_pixel_coords, not a frame.
1060
1061 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
1062 coding.h to dependencies.
1063
1064 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
1065
1066 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1067 window pointer to be consistent with w32term.c and xterm.c.
1068
1069 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1070 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1071 (Qline_spacing, Qcenter): New variables.
1072 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1073 (x_set_line_spacing): New function.
1074 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1075 macros.
1076 (x_specified_cursor_type): New function.
1077 (x_set_cursor_type): Use it.
1078 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1079 and icon strings.
1080 (validate_x_resource_name, x_get_resource_string): Measure lengths
1081 of external strings in bytes.
1082 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1083 GetTextExtentPoint32 with NULL title.
1084 (Fx_create_frame): Initialize Qline_spacing.
1085 (w32_load_system_font): Initialize font->double_byte_p.
1086 (x_to_w32_charset): Use Vw32_charset_info_alist.
1087 (Image, busy cursor, tooltip functions): Merged changes from
1088 xfns.c. Not yet functional on Windows.
1089
1090 * w32gui.h (W32FontStruct): Add double_byte_p member.
1091
1092 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1093 (emacs_button_translation): Use it.
1094 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1095 in `mask' to be set.
1096
1097 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1098 menu strings.
1099
1100 * w32term.c: Format and doc changes to bring closer to xterm.c.
1101 (w32_char_font_type): New enum.
1102 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1103 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1104 (w32_encode_char): New function.
1105 (x_encode_char): Removed.
1106 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1107 x_encode_char and w32_font_is_double_byte.
1108 (x_produce_image_glyph): Use image_ascent.
1109 (x_produce_glyphs): Use new version of w32_per_char_metric and
1110 handle NULL return value. Allow extra line spacing.
1111 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1112 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1113 w32_font_type member of glyph instead.
1114 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1115 (fast_find_position): Make sure not to consider rows not visible
1116 in the window.
1117 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1118 w32_menu_display_help with input blocked, as it can abort.
1119 (x_display_and_set_cursor): Choose cursor depending
1120 on buffer-local value of cursor_type.
1121 (x_draw_bar_cursor): Add parameter WIDTH.
1122
1123 * w32term.h (CP_DEFAULT): Define.
1124 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1125
10fc3187
GM
11262000-05-30 Gerd Moellmann <gerd@gnu.org>
1127
1128 * search.c (Fre_search_forward, Fre_search_backward)
1129 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1130
d0555360
KH
11312000-05-30 Kenichi Handa <handa@etl.go.jp>
1132
1133 * coding.c (detect_coding_iso2022): Fix code for checking
1134 CODING_CATEGORY_MASK_ISO_8_2.
1135
f1ad044f
SM
11362000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1137
1138 * regex.c (PREFETCH_NOLIMIT): New function.
1139 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1140
84ec3b4b
GM
11412000-05-29 Gerd Moellmann <gerd@gnu.org>
1142
66254a13
GM
1143 * syntax.c (find_defun_start): Move test for
1144 open_paren_in_column_0_is_defun_start outside of the loop.
1145
49e70dec
GM
1146 * xdisp.c (redisplay_window): Really switch buffers when
1147 displaying mode lines, and temporarily set selected_frame to the
1148 frame of the window that's redisplayed.
1149
84ec3b4b
GM
1150 * xfaces.c (free_realized_faces): Block/unblock input.
1151 (free_realized_multibyte_face): Ditto.
1152
869a3a14
DL
11532000-05-29 Dave Love <fx@gnu.org>
1154
1155 * textprop.c (Qkeymap): New variable.
1156 (syms_of_textprop): Intern it.
1157
1158 * keymap.c: Include intervals.h.
1159 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1160
1161 * Makefile.in (keymap.o): Depend on intervals.h.
1162
1163 * keyboard.c (menu_bar_items, tool_bar_items)
1164 (Fexecute_extended_command): Deal with `keymap' property.
1165 (read_key_sequence): Track map from `keymap' property as well as
1166 `local_map'.
1167
1168 * intervals.c (get_local_map): Extra arg to allow looking for
1169 `keymap' too.
1170
1171 * intervals.h (map_property): New enum.
1172 (get_local_map): Extra arg using it.
1173 (Qkeymap): Declare.
1174
84ec3b4b 1175 * lisp.h (get_local_map): Don't declare here.
869a3a14 1176
89d0c844
KH
11772000-05-29 Kenichi Handa <handa@etl.go.jp>
1178
1179 * Makefile.in (callproc.o): Depend on composite.h.
1180
1181 * callproc.c: Include composite.h.
1182 (Fcall_process): Handle composition correctly.
1183
1184 * coding.h (coding_allocate_composition_data): Extern it.
1185 (coding_restore_composition): Likewise.
1186
1187 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1188 yet allocated, finish decoding with result
1189 CODING_FINISH_INSUFFICIENT_CMP.
1190 (coding_allocate_composition_data): Make it non-static.
1191 (coding_restore_composition): Likewise.
1192
797a084a
EZ
11932000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1194
1195 * charset.c (syms_of_charset): Revert last change.
1196
cf872af5
EZ
11972000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1198
1199 * term.c (produce_glyphs): Treat characters from the eight-bit-*
1200 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1201 Handa.
1202
5b1ae051
EZ
12032000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1204
1205 * charset.c (syms_of_charset): Set width of character sets
1206 eight-bit-control and eight-bit-graphic to 1 column.
1207
34ec9ebe
GM
12082000-05-26 Gerd Moellmann <gerd@gnu.org>
1209
1210 * config.in (HAVE_SPEED_T): New define.
1211
1212 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1213 `extern speed_t'.
1214
dd854dc2
DL
12152000-05-26 Dave Love <fx@gnu.org>
1216
1217 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1218
1219 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1220 (Fsubr_arity): New function.
1221 (syms_of_data): Install them.
1222
ba9f8f95
KH
12232000-05-26 Kenichi Handa <handa@etl.go.jp>
1224
0f3e0672
KH
1225 * charset.c (init_charset_once): Set the table bytes_by_char_head
1226 correctly.
1227
cebefb44
KH
1228 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1229 the default fontset to what Emacs uses by default.
0f3e0672
KH
1230 (check_registry_encoding): This function deleted.
1231 (Fset_fontset_font): Remove the adhoc condition for the default
1232 fontset. Allow cons in FONTNAME.
cebefb44 1233
0f3e0672
KH
1234 * fns.c (map_char_table): Ignore char-table entries for
1235 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1236
7a18af49
KR
12372000-05-25 Ken Raeburn <raeburn@gnu.org>
1238
1239 * emacs.c (main): Initialize keyboard syms before initializing
1240 window code, so face names are available.
1241
d2af47df
SM
12422000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1243
1244 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1245 of an anchor at the beginning of a shy-group.
1246
fc6a6a4e
GM
12472000-05-25 Gerd Moellmann <gerd@gnu.org>
1248
1249 * xdisp.c (handle_invisible_prop): Don't try to skip over
1250 invisible text if end of text is already reached.
1251
005f0d35
DL
12522000-05-25 Dave Love <fx@gnu.org>
1253
02513cdd
DL
1254 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1255
005f0d35
DL
1256 * coding.c (encode_eol): Add null statement after label.
1257
89f6ca4e
EZ
12582000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1259
1260 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1261 2000-05-20.
1262
a4e1759e
KH
12632000-05-25 Kenichi Handa <handa@etl.go.jp>
1264
1265 * ccl.c (ccl_driver): Fix previous change.
1266
eacfd7fe
KH
12672000-05-25 Kenichi Handa <handa@etl.go.jp>
1268
46ab33a9
KH
1269 * coding.c (run_pre_post_conversion_on_str): Set point to the
1270 beginning of buffer before calling coding->post_read_conversion.
1271 (decode_coding_string): Give correct args to
1272 run_pre_post_conversion_on_str.
1273 (encode_coding_string): Likewise.
1274
eacfd7fe
KH
1275 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1276 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1277 eight-bit-graphic correctly.
1278
f8569325
DL
12792000-05-24 Kenichi HANDA <handa@etl.go.jp>
1280
1281 * fileio.c (Finsert_file_contents): Even if a file is not found,
1282 execute codes for setting up coding system. Call
1283 after-insert-file-functions unconditionally.
1284
04545643
GM
12852000-05-24 Gerd Moellmann <gerd@gnu.org>
1286
1287 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1288 BSD_PGRPS are not defined.
1289
747d90ea
KH
12902000-05-24 Kenichi Handa <handa@etl.go.jp>
1291
1292 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1293 DESCRIPTION.
1294 (syms_of_charset): Avoid building same strings.
1295
716e3b88
GM
12962000-05-23 Gerd Moellmann <gerd@gnu.org>
1297
1298 * lread.c (Fload): Add a comment about the meaning of
1299 Vuser_init_file being t.
1300
1301 * puresize.h (BASE_PURESIZE): Increase to 675000.
1302
1303 * s/gnu-linux.h (setpgrp): Don't define it here because this
1304 prevents compilation on GNU/Linux systems with glib 2.2.
1305
1306 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1307 as setpgid.
427ec082 1308
9aeb39fa
EZ
13092000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1310
1311 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1312 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1313 version.
1314 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1315
29ced61b
KH
13162000-05-23 Kenichi Handa <handa@etl.go.jp>
1317
0574a2ed
KH
1318 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1319 unconditionally.
1320
3d80f24d
KH
1321 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1322
1323 * term.c (encode_terminal_code): Set coding->src_multibyte
1324 properly.
1325
29ced61b
KH
1326 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1327
d7e00792
KH
13282000-05-22 Kenichi Handa <handa@etl.go.jp>
1329
c9d80d38
KH
1330 * keyboard.c (read_char): Allow character codes 128..255 to be
1331 handled by input-method-function.
1332
d7e00792
KH
1333 * insdel.c (adjust_markers_for_replace): Fix previous change.
1334 (adjust_after_replace): If PREV_TEXT is nil, call
1335 adjust_markers_for_insert, not adjust_markers_for_replace.
1336
087121cc 13372000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1338
087121cc
GM
1339 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1340 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1341 [HAVE_GRANDPT]: Define.
1342 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1343
1344 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1345 like SYSV_PTYS.
1346
1347 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1348
1349 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1350
c9671f81
KH
13512000-05-20 Kenichi Handa <handa@etl.go.jp>
1352
1353 The following changes are to handle 8-bit characters in a
1354 multibyte buffer/string without facing with byte combining
1355 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1356 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1357
1358 * Makefile.in (fns.o): Depend on charset.h.
1359
1360 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1361 convert it to unibyte.
1362 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1363
1364 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1365 apparent char boundary.
1366 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1367 0x80..0x9F to/from multibyte form.
1368
1369 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1370 to unibyte.
1371
1372 * callproc.c (Fcall_process): Always encode an argument string if
1373 it is multibyte. Setup src_multibyte and dst_multibyte members of
1374 process_coding properly.
ce75fd23 1375
c9671f81
KH
1376 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1377 SPLIT_NON_ASCII_CHAR.
1378
1379 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1380 as is.
1381 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1382
1383 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1384 variables.
1385 (SPLIT_CHARACTER_SEQ): This macro deleted.
1386 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1387 valid.
1388 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1389 and eight-bit-graphic.
1390 (char_to_string): Likewise. Signal an error for too large
1391 character code.
1392 (char_printable_p): Return 0 for 8-bit characters.
1393 (update_charset_table): Update iso_charset_table only when a final
1394 character is non-negative.
1395 (find_charset_in_text): Renamed from find_charset_in_str.
1396 Arguments and return value changed. Callers changed.
1397 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1398 be -1 if CHARSET is used only internally.
1399 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1400 eight-bit-graphic.
1401 (Fcharset_after): Simplified.
1402 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1403 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1404 (multibyte_chars_in_text): Simplified by assuming there's no
1405 invalid multibyte sequence.
1406 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1407 str_as_unibyte): New functions.
1408 (Fstring): Simpified by assuming that byte combining never
1409 happens.
1410 (init_charset_once): Initialization for
1411 LEADING_CODE_8_BIT_CONTROL.
1412 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1413 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1414 eight-bit-control and eight-bit-graphic.
1415
1416 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1417 CHARSET_8_BIT_GRAPHIC): New macros.
1418 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1419 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1420 (CHARSET_REVERSE_CHARSET): Likewise.
1421 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1422 eight-bit-graphic.
1423 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1424 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1425 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1426 encounter an invalid multibyte sequence.
1427 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1428 sequence is always valid.
1429 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1430 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1431 macros.
1432 (CHAR_STRING): For 8-bit characters, call char_to_string.
1433 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1434 multibyte sequence is always valid.
1435 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1436 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1437 str_as_unibyte): Extern them.
1438 (BCOPY_SHORT): Fix a bug.
1439 (CHAR_LEN): This macro deleted. Callers changed to use
1440 CHAR_BYTES.
1441 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1442 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1443 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1444
bd4bde7f 1445 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1446 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1447 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1448 EMIT_BYTES): New macros.
1449 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1450 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1451 macros deleted.
1452 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1453 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1454 check the validity of multibyte sequence.
1455 (decode_coding_emacs_mule): New function.
1456 (encode_coding_emacs_mule): New macro.
1457 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1458 the source.
1459 (DECODE_ISO_CHARACTER): Just return a character code.
1460 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1461 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1462 EMIT_CHAR to produced decoded characters. Exit the loop only by
1463 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1464 block here.
1465 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1466 only position codes for an invalid character.
1467 (encode_designation_at_bol): Return new destination pointer. 5th
1468 arg DSTP is changed to DST.
1469 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1470 from the source by ONE_MORE_CHAR. Don't handle the case of last
1471 block here.
1472 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1473 macros deleted.
1474 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1475 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1476 TWO_MORE_BYTES to fetch a byte from the source.
1477 (encode_eol): Pay attention to coding->src_multibyte.
1478 (detect_coding, detect_eol): Preserve members src_multibyte and
1479 dst_multibyte.
1480 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1481 (encoding_buffer_size): Set magnification to 3 for all coding
1482 systems that require encoding.
1483 (ccl_coding_driver): For decoding, be sure that the result is
1484 valid multibyte sequence.
1485 (decode_coding): Initialize coding->errors and coding->result.
1486 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1487 and raw-text, always call decode_eol. Handle the case of last
1488 block here. If not coding->dst_multibyte, convert the resulting
1489 sequence to unibyte.
1490 (encode_coding): Initialize coding->errors and coding->result.
1491 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1492 and raw-text, always call encode_eol. Handle the case of last
1493 block here.
1494 (shrink_decoding_region, shrink_encoding_region): Detect cases
1495 that we can't skip data more rigidly.
1496 (code_convert_region): Setup src_multibyte and dst_multibyte
1497 members of coding. For decoding, if the buffer is multibyte,
1498 convert the source sequence to unibyte in advance. For encoding,
1499 if the buffer is multibyte, convert the resulting sequence to
1500 multibyte afterward.
1501 (run_pre_post_conversion_on_str): New function.
1502 (code_convert_string): Deleted and divided into the following two.
1503 (decode_coding_string, encode_coding_string): New functions.
1504 (code_convert_string1, code_convert_string_norecord): Call one of
1505 above.
1506 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1507 MAKE_NON_ASCII_CHAR.
1508 (Fset_terminal_coding_system_internal,
1509 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1510 and dst_multibyte members.
1511 (init_coding_once): Initialize iso_code_class with new enum
1512 ISO_control_0 and ISO_control_1.
1513
1514 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1515 devided into ISO_control_0 and ISO_control_1.
1516 (struct coding_system): New members src_multibyte, dst_multibyte,
1517 errors, and result. Delete member fake_multibyte.
1518 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1519 nonzero.
1520 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1521 nonzero.
1522
1523 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1524 (Faset): Likewise.
1525
1526 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1527 multibyte form.
1528 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1529 combining occurs.
1530 (Ftranspose_region): Delete codes for handling byte combining.
1531
1532 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1533 dst_multibyte members of coding. On handling REPLACE on unibyte
1534 buffer, convert the result of decode_coding to unibyte. On
1535 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1536 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1537 multibyteness of the source (buffer or string).
1538
1539 * fns.c (concat): Handle 8-bit characters correctly.
1540 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1541 unibyte in the result.
1542 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1543 valid multibyte form in the result.
1544 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1545 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1546 return -1, signal an error.
1547 (base64_encode_1): New arg MULTIBYTE. Get each character by
1548 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1549 character is found, return -1.
1550 (Fbase64_decode_region): Delete codes for handling byte-combining.
1551 Treat each decoded byte as a unibyte character.
1552 (Fbase64_decode_string): Return unibyte string.
1553 (Fcompare_strings, concat, string_byte_to_char): Use
1554 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1555 FETCH_STRING_CHAR_ADVANCE.
1556 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1557 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1558
1559 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1560 SPLIT_NON_ASCII_CHAR.
1561 (fontset_ref_via_base, fontset_set): Likewise
1562
1563 * insdel.c (adjust_markers_for_record_delete): Deleted.
1564 (adjust_markers_for_insert): Argument changed. Caller changed.
1565 (adjust_markers_for_replace): Likewise.
1566 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1567 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1568 (copy_text): Delete unused local varialbe c_save. For converting
1569 to multibyte, be sure to make all 8-bit characters in valid
1570 multibyte form.
1571 (count_size_as_multibyte): Handle 8-bit characters correctly.
1572 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1573 adjust_after_replace, replace_range, del_range_2)
1574 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1575 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1576 adjust_after_replace, replace_range, del_range_2) Delete codes for
1577 handling byte combining.
1578 (adjust_before_replace): Deleted.
427ec082 1579
c9671f81
KH
1580 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1581 SPLIT_NON_ASCII_CHAR.
1582 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1583 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1584 unconditionally.
1585 (Fkey_description): Likewise.
1586
1587 * lread.c (read1): On reading multibyte string, be sure to make
1588 all 8-bit chararacters in valid multibyte form.
1589 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1590
1591 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1592 unconditionally.
1593
1594 * process.c (Fstart_process): GCPRO current_dir before calling
1595 Ffind_operation_coding_system. Encode arguments here.
1596 (create_process): Don't encode arguments here. Setup
1597 src_multibyte and dst_multibyte members of struct coding.
1598 (read_process_output): Setup src_multibyte and dst_multibyte
1599 members of struct coding. If the output is to multibyte buffer,
1600 always decode the output of the process. Adjust the
1601 representation of 8-bit characters to the multibyteness of the
1602 output.
1603 (send_process): Setup coding->src_multibyte according to the
1604 multibyteness of the source.
1605
1606 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1607 unconditionally.
1608 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1609 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1610
1611 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1612 CHAR_LEN.
1613
1614 * w16select.c (Fw16_set_clipboard_data): Setup members
1615 src_multibyte and dst_multibyte of coding. Adjusted for the
1616 change for find_charset_in_str.
1617 (Fw16_get_clipboard_data): Likewise.
1618
1619 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1620 dst_multibyte of coding.
1621 (x_to_w32_font): Likewise.
1622
1623 * w32select.c (Fw32_set_clipboard_data): Setup members
1624 src_multibyte and dst_multibyte of coding. Adjusted for the
1625 change for find_charset_in_str.
1626 (Fw32_get_clipboard_data): Likewise.
1627
1628 * xdisp.c (get_next_display_element): Handle 8-bit characters
1629 correctly.
1630 (next_element_from_display_vector): Use CHAR_BYTES instead of
1631 CHAR_LEN.
1632 (disp_char_vector): Use SPLIT_CHAR instead of
1633 SPLIT_NON_ASCII_CHAR.
1634
1635 * xselect.c (selection_data_to_lisp_data): Setup members
1636 src_multibyte and dst_multibyte of coding. Adjusted for the
1637 change for find_charset_in_str.
1638 (lisp_data_to_selection_data): Likewise.
1639
5f64c9e0
GM
16402000-05-19 Gerd Moellmann <gerd@gnu.org>
1641
2b63d473
GM
1642 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1643 buffer.
1644
5f64c9e0
GM
1645 * dispextern.h (Vimage_types): Add extern declaration.
1646
1647 * xdisp.c (Vimage_types): Moved here from xfns.c.
1648 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1649
1650 * xfns.c (Vimages_types): Moved to xdisp.c.
1651 (syms_of_xfns): Move `image-types' to xdisp.c.
1652
1653 * w32fns.c (Vimage_types): Removed.
1654 (syms_of_w32fns): Remove `image-types'.
1655
813086ea
KH
16562000-05-18 Kenichi Handa <handa@etl.go.jp>
1657
1658 * fns.c (map_char_table): Pay attention to character number of
1659 charset. Check the validity of charset at the first level. For
1660 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1661 the default value.
1662
1663 * fontset.c: Include "buffer.h".
1664 (fs_load_font): If the face has fontset, record the face ID in
1665 that fontset.
1666 (Finternal_char_font): New function.
1667 (accumulate_font_info): New function.
1668 (Ffontset_info): Rewritten for the new fontset implementation.
1669 (syms_of_fontset): Register Vdefault_fontset in the first element
1670 of Vfontset_table. Include Vdefault_fontset in
1671 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1672 function.
1673
bdaebbf0
DL
16742000-05-16 Dave Love <fx@gnu.org>
1675
1676 * m/iris5d.h: Deleted -- unused.
1677
cb613bb8
GM
16782000-05-16 Gerd Moellmann <gerd@gnu.org>
1679
b15f3b77
GM
1680 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1681 `invalid' instead of `illegal'.
1682
1683 * indent.c (Fmove_to_column): When ending within a tab, insert
1684 spaces first so that markers at the end of the tab get adjusted.
1685
835c1b36
GM
1686 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1687 buffer list that wasn't selected in that frame.
1688
cb613bb8
GM
1689 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1690 is needed on mescaline, use a 2 char prefix, and call
1691 make_temp_name with second arg non-zero.
1692
1693 * fileio.c (make_temp_name): New function, extracted from
1694 Fmake_temp_name.
1695 (Fmake_temp_name): Use it.
1696
f685bea9
EZ
16972000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1698
1699 * window.c (coordinates_in_window): Subtract 1 when computing
1700 right_x.
1701
a1b8d58b
GM
17022000-05-15 Gerd Moellmann <gerd@gnu.org>
1703
1704 * Makefile.in (lisp): Add env.elc.
1705
1706 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1707
a265079f
GM
17082000-05-12 Gerd Moellmann <gerd@gnu.org>
1709
1710 * search.c (Freplace_match): Handle case of `\N' in the
1711 replacement when there's no group N.
1712
da4496b6
GM
17132000-05-11 Gerd Moellmann <gerd@gnu.org>
1714
0ace421a
GM
1715 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1716 of the message to message_dolog.
1717
1172eb8d
GM
1718 * keyboard.c (read_char): Don't clear current message for help
1719 events; let the code handling help events handle this. Change
1720 code detecting help events that should be ignored.
1721
da4496b6
GM
1722 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1723 we're interating over a string.
1724
0623e40f
DL
17252000-05-09 Dave Love <fx@gnu.org>
1726
1727 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1728 that offset before writing. Move gcpro region past call of
1729 Ffile_regular_p.
1730
bae2503b
DL
17312000-05-04 Dave Love <fx@gnu.org>
1732
1733 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1734
ec82fb2f
GM
17352000-05-04 Gerd Moellmann <gerd@gnu.org>
1736
1737 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1738 of inserted characters when BUF equals the current buffer, and PT
1739 is in front of or equal to FROM.
1740
cbf18892
GM
17412000-05-03 Gerd Moellmann <gerd@gnu.org>
1742
4ff40dd0
GM
1743 * xdisp.c (handle_single_display_prop): If display property value
1744 is invalid, or something not supported on the frame, restore
1745 iterator's position to what it was initially. Make sure to return
1746 0 for invalid and unsupported property values.
1747
cbf18892
GM
1748 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1749 that x_per_char_metric returns null.
1750
1b0672c3
GM
17512000-05-02 Gerd Moellmann <gerd@gnu.org>
1752
576da55d
GM
1753 * xterm.h (struct face): Add forward declaration.
1754 (struct image): Ditto.
1755 (image_ascent): Add prototype.
1756
1757 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1758 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1759 image_ascent instead of using IMAGE_ASCENT.
1760
1761 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1762 (IMAGE_ASCENT): Removed.
1763
1764 * xfns.c (Qcenter): New variable.
1765 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1766 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1767 (image_ascent): New function.
1768 (lookup_image): Recognize `:ascent center'.
1769 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1770 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1771 (xbm_load): Don't set image's ascent here.
1772 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1773 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1774 check ascent values here.
1775 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1776 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1777 (syms_of_xfns): Initialize Qcenter.
1778
1b0672c3
GM
1779 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1780 to the limits, increase the limits.
1781
0d7811ed
KH
17822000-05-01 Kenichi Handa <handa@etl.go.jp>
1783
1784 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1785 Check Vfont_encoding_alist against the full name of the opened
1786 font.
1787
a943a5ca
GM
17882000-04-28 Gerd Moellmann <gerd@gnu.org>
1789
1790 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1791 taller than the window.
1792
5dba1e29
KH
17932000-04-28 Kenichi Handa <handa@etl.go.jp>
1794
1795 * xfaces.c (realize_x_face): Fix the argument of the second
1796 xassert. BASE_FACE may not be a face for ASCII.
1797
353964e3
GM
17982000-04-27 Gerd Moellmann <gerd@gnu.org>
1799
c76e04a8
GM
1800 * print.c (print_object): Treat print-length < 0 as nil.
1801
1802 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1803
1804 * s/freebsd.h (TERMCAP_OBJ): Removed.
1805 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1806
1807 * lread.c (read1): Don't treat period followed by certain
1808 characters as symbol start.
1809
1810 * xfns.c (slurp_file): New function.
1811 (xbm_image_p): Handle case of in-memory XBM files.
1812 (xbm_scan): Rewritten to work on memory buffers instead of files.
1813 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1814 Work on memory buffers instead of files. If DATA is null test
1815 if buffer looks like an in-memory XBM file.
1816 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1817 memory buffers instead of files.
1818 (xbm_file_p): New function.
1819 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1820
353964e3
GM
1821 * lread.c (end_of_file_error): New function.
1822 (read1): Call it instead of signaling `end-of-file' directly.
1823
427ec082 1824 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1825 with Fprinc instead of Fprin1.
1826
24d744ac
KR
18272000-04-26 Ken Raeburn <raeburn@gnu.org>
1828
1829 * window.c (freeze_window_start): Check that minibuffer scroll
1830 window isn't nil before extracting the window structure pointer
1831 from it.
1832
1833 * undo.c (record_delete): If we hit the end of the undo list, stop
1834 picking elements apart.
1835
7464346d
GM
18362000-04-26 Gerd Moellmann <gerd@gnu.org>
1837
1838 * xdisp.c (display_line): If lines are continued, restore
1839 iterator's ascent/descent information to the values before the
1840 first glyph not fitting on the line.
1841
612839b6
GM
18422000-04-25 Gerd Moellmann <gerd@gnu.org>
1843
1844 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1845 positions in glyph matrix. Don't compute new window end
1846 positions.
1847
1848 * dispnew.c (increment_matrix_positions): Renamed from
1849 increment_glyph_matrix_buffer_positions.
1850 (increment_row_positions): Renamed from
1851 increment_glyph_row_buffer_positions.
1852
1853 * dispextern.h: Change names of renamed functions from dispnew.c
1854 in prototypes.
1855
cc181e95
GM
18562000-04-24 Gerd Moellmann <gerd@gnu.org>
1857
abfcc168
GM
1858 * fileio.c (Fdo_auto_save): Create directories for auto-save
1859 list file if necessary.
1860
cc181e95
GM
1861 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1862 from buffer or frame.
1863 (automatic_hscrolling_p): New variable.
1864 (hscroll_windows): Scroll windows horizontally only if automatic
1865 hscrolling is allowed.
1866 (syms_of_xdisp): New variable `automatic-hscrolling'.
1867
1868 * frame.h (struct frame): Add member extra_line_spacing.
1869
1870 * xfns.c (x_set_line_spacing): New function.
1871 (Fx_create_frame): Set line spacing from resources.
1872 (Qline_spacing): New variable.
1873 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1874
cc181e95
GM
1875 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1876
1877 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1878 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1879 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1880 extra_line_spacing from default value.
1881 (init_buffer_once): Initialize default value of extra_line_spacing.
1882
1883 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1884 and extra3.
1885
1886 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1887 prompt_width. Add extra line spacing.
1888
1889 * term.c (produce_glyphs): Remove reference to struct it's
1890 prompt_width.
1891
1892 * dispextern.h (struct it): Remove member prompt_width, add
1893 extra_line_spacing.
1894
58827478
GM
18952000-04-22 Gerd Moellmann <gerd@gnu.org>
1896
1897 * dispnew.c (update_frame_line): When writing a whole line, make
1898 sure cursor is in the right row afterwards, otherwise a use of
1899 capability `ch' in cmgoto might leave the cursor in the row below.
1900
25a87f42
GM
19012000-04-21 Gerd Moellmann <gerd@gnu.org>
1902
1903 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1904
1905 * keyboard.c (timer_check): Fix typo in comment.
1906
54edf5c2
KH
19072000-04-21 Kenichi Handa <handa@etl.go.jp>
1908
1909 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1910 name change: ch -> character.
1911
3a64eef5
GM
19122000-04-20 Gerd Moellmann <gerd@gnu.org>
1913
1914 * keyboard.c (echo_message_buffer): New variable.
1915 (echo_now): Set echo_message_buffer to the echo area buffer used
1916 to display the echo.
1917 (cancel_echoing): Reset echo_message_buffer to nil.
1918 (read_char): Code rewritten that handles canceling an echo or
1919 echoing a dash, respectively.
1920
1921 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1922 directory doesn't exist.
1923
6142fdcb
DL
19242000-04-19 Dave Love <fx@gnu.org>
1925
1926 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1927 (concat): Don't allow numeric args.
1928 (Fconcat): Doc change.
6142fdcb 1929
ac6b5352
SM
19302000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1931
1932 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1933 instead define end_match(1|2) more carefully.
1934 Use GET_CHAR_BEFORE_2 for `begline'.
1935
cb9215e4
GM
19362000-04-19 Gerd Moellmann <gerd@gnu.org>
1937
5e3dac3f
GM
1938 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1939 on 64-bit systems where NULL is defined as `0'.
1940
1941 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1942 the `variable argument list' to make it work on Alpha.
1943
cb9215e4
GM
1944 * m/alpha.h (_LP64) [!_LP64]: Define.
1945 (ORDINARY_LINK): Define for NetBSD.
1946
1947 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1948
f532dca0
DL
19492000-04-19 Dave Love <fx@gnu.org>
1950
c750667e
DL
1951 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1952 change.
1953
1954 * Makefile.in (LIBS): Don't use.
1955 (GETLOADAVG_OBJ): Define again.
1956 (otherobj): Add GETLOADAVG_OBJ.
1957
f532dca0
DL
1958 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1959
1c7e22fd
GM
19602000-04-18 Gerd Moellmann <gerd@gnu.org>
1961
f6d3257b
GM
1962 * lread.c (read_filtered_event): Cancel and start busy cursor.
1963
427ec082 1964 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1965 that the per-character metrics may be null.
1966
e10f64e7
GM
19672000-04-17 Gerd Moellmann <gerd@gnu.org>
1968
0daee095
GM
1969 * buffer.c (clone_per_buffer_values): New function.
1970 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1971 clone_per_buffer_values if CLONE is not nil.
1972
e10f64e7
GM
1973 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1974
38687d43
DL
19752000-04-16 Dave Love <fx@gnu.org>
1976
1977 * Makefile.in: Remove obsolete localcpp stuff.
1978 (GETLOADAVG_OBJ): Don't define.
1979 (obj): Move LIBOBJS...
1980 (otherobj): ... to here.
1981 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1982 whitespace-only lines after the continuation (Irix).
1983
c21c7262
GM
19842000-04-14 Gerd Moellmann <gerd@gnu.org>
1985
1986 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1987
1988 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1989
314767c0
DL
19902000-04-14 Dave Love <fx@gnu.org>
1991
1992 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1993 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1994 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1995 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1996 NLIST_STRUCT.
1997
1998 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1999 autoconfiscated HAVE_GETLOADAVG.
2000
2001 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2002 BROKEN_MKTIME.
2003
a2522dca
GM
20042000-04-14 Gerd Moellmann <gerd@gnu.org>
2005
2006 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2007 (fill_in_lock_file_name): Avoid existing files that aren't
2008 links.
2009
33744b5d
DL
20102000-04-14 Dave Love <fx@gnu.org>
2011
c21c7262 2012 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
2013 (INTERVAL_SRC): Convert to make variable.
2014 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2015 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2016 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2017 add LIBOBJS.
2018 (SOME_MACHINE_OBJECTS): Remove interval stuff.
2019 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
2020 (shortlisp): Add facemenu, float-sup, frame.
2021 (SOME_MACHINE_LISP): Remove them from here.
2022 (LIBES): Change unused LDLIBS to autoconf LIBS.
2023
2024 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
2025
9d3d5916
KH
20262000-04-14 Kenichi Handa <handa@etl.go.jp>
2027
2028 * composite.c (update_compositions): If FROM and TO are not in a
2029 valid range, do nothing.
2030
198e3c7a
GM
20312000-04-13 Gerd Moellmann <gerd@gnu.org>
2032
2033 * tparam.c (tparam1): Abort when encountering an unknown
2034 `%'-specifier.
2035
2036 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
2037 terminfo.o.
2038
2039 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
2040 as TERMCAP_OBJ.
2041
055a28c9
EZ
20422000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
2043
2044 * fileio.c (a_write): Remove redundant semi-colons.
2045 (e_write): Return -1 if failed to write all the data.
2046 This fixes the changes made at 1999-12-15.
2047
f5c75033
DL
20482000-04-12 Dave Love <fx@gnu.org>
2049
2050 * fns.c (mapcar1): Test for null vals to support mapc.
2051 (Fmapc): New function.
2052
0c3cfc51
EZ
20532000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
2054
2055 * msdos.c (NUM_MOUSE_BUTTONS): Define.
2056 (IT_frame_up_to_date): Support the buffer local value of
2057 cursor-type, if defined.
2058
33465a31
DL
20592000-04-10 Dave Love <fx@gnu.org>
2060
2061 * editfns.c (preceding-char, following-char): Doc fix.
2062
6ed56568
KR
20632000-04-10 Ken Raeburn <raeburn@gnu.org>
2064
2065 * Makefile.in (temacs): Revert 2000-03-12 change.
2066
7cf80d4e
JR
20672000-04-10 Jason Rumney <jasonr@gnu.org>
2068
2069 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2070
34f3f342
GM
20712000-04-10 Gerd Moellmann <gerd@gnu.org>
2072
1a1b1895
GM
2073 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2074 area buffer, if it's not set up yet.
2075
34f3f342
GM
2076 * indent.c (compute_motion): Set immediate_quit.
2077
be0dbdab
GM
20782000-04-09 Gerd Moellmann <gerd@gnu.org>
2079
c45be9ac
GM
2080 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2081 variable.
2082 (realize_tty_face): Suppress boldness if colors are the inverse of
2083 the default colors, and tty_suppress_bold_inverse_default_colors_p
2084 is set.
2085 (Ftty_suppress_bold_inverse_default_colors): New function.
2086 (syms_of_xfaces): Defsubr it.
2087
be0dbdab
GM
2088 * buffer.c (Frestore_buffer_modified_p): New function.
2089 (syms_of_buffer): Defsubr it.
2090
e8413c3b
KR
20912000-04-08 Ken Raeburn <raeburn@gnu.org>
2092
87f67317
KR
2093 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2094 charset id (int) argument, not a charset (Lisp_Object).
2095
e8413c3b
KR
2096 * coding.h (code_convert_string): Declare.
2097 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2098 object, as the fourth argument to code_convert_string.
2099
2100 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2101 value.
2102 (Fset_fontset_font): Use EQ to compare lisp objects.
2103
7c752c80
KR
21042000-04-05 Ken Raeburn <raeburn@gnu.org>
2105
c0333abc
KR
2106 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2107 a pointer that looks like a lisp object.
2108 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2109 zero, instead see whether it's an integer object, since they can't
2110 have intervals.
2111 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2112
7c752c80
KR
2113 * dispnew.c (allocate_matrices_for_frame_redisplay,
2114 direct_output_forward_char): Use X(U)INT and make_number as needed
2115 to convert between (unsigned) int values and lisp integers.
2116 * keyboard.c (read_key_sequence): Likewise.
2117 * lread.c (substitute_object_recurse): Likewise.
2118 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2119 * minibuf.c (do_completion, Fminibuffer_complete_word,
2120 Fminibuffer_completion_help): Likewise.
2121 * term.c (produce_special_glyphs): Likewise.
2122
2123 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2124 * print.c (print_preprocess, print_object): Likewise.
2125
2126 * search.c (compile_pattern): Use NILP when checking for nil.
2127
74e49b38
KR
2128 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2129 __OPTIMIZE__]: Provide a GNU C macro version that handles
2130 lisp-object unions.
2131 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2132 field, to better cope with ENABLE_CHECKING and calls that modify a
2133 Lisp_Object using its old value.
2134
685e5ed2
GM
21352000-04-04 Gerd Moellmann <gerd@gnu.org>
2136
c407c570
GM
2137 * window.c (compare_window_configurations): Signal an error
2138 if parameters C1 or C2 aren't window configurations.
2139
685e5ed2
GM
2140 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2141 AFTER_POTENTIAL_GC calls around calls to functions that can
2142 signal an error and thus invoke the debugger.
2143
587a49ab
GM
21442000-04-03 Gerd Moellmann <gerd@gnu.org>
2145
62f20204
GM
2146 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2147 an error if decoding fails.
2148
587a49ab
GM
2149 * keyboard.c (lispy_mouse_names): Variable removed.
2150 (Vlispy_mouse_stem): New variable.
2151 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2152 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2153 for any mouse button number. Increase size of mouse_syms and
2154 button_down_location as needed. Call modify_event_symbol with
2155 different arguments.
2156 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2157 Call modify_event_symbol with different arguments.
2158 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2159 for any button number. Call modify_event_symbol with different
2160 arguments.
2161 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2162 Accept a string for NAME_ALIST_OR_STEM.
2163
2164 * lisp.h (larger_vector): Add prototype.
2165
2166 * fns.c (larger_vector): Make externally visible.
2167
2168 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2169
2d1675e4
SM
21702000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2171
2172 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2173 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2174 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2175 we are between str1 and str2.
2176 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2177 (PATFETCH): Use `TRANSLATE'.
2178 (PATFETCH_RAW): Fetch multibyte char if applicable.
2179 (PATUNFETCH): Remove.
2180 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2181 When writing a char, write it directly into the pattern buffer rather
2182 than going needlessly through a temp char-array.
2183 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2184 multibyte magic and remove the useless `#ifdef emacs'.
2185 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2186 buffer.
2187
2188 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2189 conditional on `emacs'.
2190
2191 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2192
cc2d8c6b
KR
21932000-04-01 Ken Raeburn <raeburn@gnu.org>
2194
2195 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2196 non-union-type versions of XMARK and friends here, because XMARK
2197 and friends won't work on an integer field if NO_UNION_TYPE is not
2198 defined.
2199 (make_number): Define as a function if it's not defined as a
2200 macro.
2201
09654086
KR
2202 * composite.c (run_composite_function): Use NILP when checking for
2203 nil.
2204 (syms_of_composite): Delete local var NARGS, pass an int as first
2205 argument to Fmake_hash_table.
2206
2387b382
KR
2207 * editfns.c (text_property_stickiness): Use NILP to test
2208 Lisp_Object boolean value.
2209 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2210 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2211 problems reading from and changing the same lisp value in an
2212 XSETSTRING call.
2213
27660e89
GM
22142000-04-01 Gerd Moellmann <gerd@gnu.org>
2215
2216 * term.c (TN_no_color_video): New variable.
2217 (term_init): Intitialize TN_no_color_video.
2218 (enum no_color_bit): New enumeration.
2219 (MAY_USE_WITH_COLORS_P): New macro.
2220 (turn_on_face): Use it to determine if attributes may be used
2221 combined with colors.
2222
3578db3c
KR
22232000-04-01 Ken Raeburn <raeburn@gnu.org>
2224
2225 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2226 with int lvalues via casts; instead, just yield lisp object
2227 lvalues.
2228 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2229 proper accessor macros.
2230 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2231 (grow_mini_window): Fix typo getting int value of root->height.
2232
6fc556fd
KR
2233 * xdisp.c (compute_string_pos): Fix order of arguments to
2234 string_pos_nchars_ahead.
2235 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2236 count arg to variable-arg routines like Frun_hook_with_args and
2237 Fformat.
587a49ab
GM
2238 (back_to_previous_visible_line_start)
2239 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2240 fixed-arg routines like Fget_char_property and Fmake_string.
2241 (reconsider_clip_changes): Use XINT when comparing integer lisp
2242 objects, or passing them as int arguments.
587a49ab
GM
2243 (mark_window_display_accurate, insert_left_trunc_glyphs)
2244 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2245 storing or passing integer values as lisp objects.
2246 (set_cursor_from_row, highlight_trailing_whitespace): Use
2247 INTEGERP, not implicit test against zero, for glyph object.
2248 (try_window_id): Don't use make_number when we want an int value.
2249
2250 * xfaces.c (xlfd_symbolic_value): Make last argument a
2251 Lisp_Object, to be consistent with callers.
2252 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2253 (lface_hash): Apply XFASTINT to lisp values before folding in.
2254
2255 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2256 fill in window width and height. Pass an int, not a lisp object,
2257 as first arg to Finsert.
2258
6e7b2457
GM
22592000-04-01 Gerd Moellmann <gerd@gnu.org>
2260
610d841e
GM
2261 * xfaces.c (realize_basic_faces): Block input while realizing
2262 the faces.
2263
6e7b2457
GM
2264 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2265
2266 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2267
aa110c0c
GM
22682000-03-31 Gerd Moellmann <gerd@gnu.org>
2269
2270 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2271 or ASCII, handle case that per-char metric is null.
aa110c0c 2272
8801a864
KR
22732000-03-30 Ken Raeburn <raeburn@gnu.org>
2274
c6129d7e
KR
2275 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2276
8801a864
KR
2277 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2278 XSUBR, XBUFFER): Verify correct object type before returning
2279 pointer, using eassert.
2280 * frame.h (XFRAME): Likewise.
2281
2282 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2283 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2284 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2285 type.
2286 * data.c (set_internal): Likewise.
2287 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2288 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2289 * fileio.c (auto_save_1): Likewise.
2290 * insdel.c (check_markers): Likewise.
2291 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2292 * undo.c (record_insert): Likewise.
2293 * vmsproc.c (child_sig): Likewise.
2294 * window.c (unshow_buffer, window_loop): Likewise.
2295 * xterm.c (x_erase_phys_cursor): Likewise.
2296
8e7af858
GM
22972000-03-30 Gerd Moellmann <gerd@gnu.org>
2298
2299 * xfns.c (free_image_cache): Free the cache structure itself
2300 last, after all its members have been freed.
2301
2302 * lisp.h (xstrdup): Add prototype.
2303
2304 * alloc.c (xstrdup): Moved here from xfaces.c.
2305 (allocating_for_lisp): Variable removed.
2306 (lisp_malloc): Block input around the calls to malloc and
2307 mem_insert.
2308
2309 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2310 of Fsymbol_value.
2311 (xstrdup): Moved to alloc.c.
2312
e0b8c689
KR
23132000-03-29 Ken Raeburn <raeburn@gnu.org>
2314
b96f9fb7
KR
2315 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2316
2317 * emacs.c (main): Fix sense of no-loadup test.
2318
e0b8c689
KR
2319 * config.in (ENABLE_CHECKING): Undef.
2320
2321 * lisp.h (struct interval): Replace "parent" field with a union of
2322 interval pointer and Lisp_Object; add new bitfield to use as
2323 discriminant. Change other flag fields to bitfields.
2324 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2325 is defined and the supplied test fails, print a message and
2326 abort.
2327 (eassert): New macro. Use CHECK to provide an assert-like
2328 facility.
2329
2330 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2331 pointers; abort if the value looks like a lisp object.
2332 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2333 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2334 Modify for new interval parent definition.
2335
2336 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2337 UNMARK_BALANCE_INTERVALS): Update references that need an
2338 addressable lisp object in the interval structure.
2339 (die): New function.
2340 (suppress_checking): New variable.
2341
2342 * intervals.c (interval_start_pos): Just return 0 if there's no
2343 parent object.
2344
f83c5440
GM
23452000-03-29 Gerd Moellmann <gerd@gnu.org>
2346
2347 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2348 and earlier Emacs versions.
2349
2350 * keyboard.c (Ftop_level): Cancel busy-cursor.
2351
2352 * eval.c (call_debugger): Cancel busy-cursor.
2353
fdce64ff
KH
23542000-03-29 Kenichi Handa <handa@etl.go.jp>
2355
2356 * search.c (Freplace_match): Adjust multibyteness of the current
2357 buffer and NEWTEXT. Free allocated memory before signaling an
2358 error.
2359
f6a3f532
SM
23602000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2361
2362 * regex.c (analyse_first): New function obtained by ripping out most
2363 of re_compile_fastmap and generalizing it a little bit so that it
2364 can also just return whether a given (sub)pattern can match the empty
2365 string or not.
2366 (regex_compile): Use `analyse_first' to decide whether the loop-check
2367 needs to be done or not for *, +, *? and +? (the loop check is costly
2368 for non-greedy repetition).
2369 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2370
e9b309ac
DL
23712000-03-28 Dave Love <fx@gnu.org>
2372
bb15bd9a
DL
2373 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2374 alpha.
2375
e9b309ac
DL
2376 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2377
ed0767d8
SM
23782000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2379
2380 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2381 an expression.
2382 (enum re_opcode_t): Update description of succeed_n.
2383 (PATFETCH): Always define.
2384 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2385 operators, char classes, shy-groups and intervals).
2386 Optimize special cases of intervals so as to only use succeed_n and
2387 jump_n when really needed.
2388 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2389 that we don't have to handle the special cases any more.
2390 Simplify on_failure_jump handling as well.
2391
e11e7e46
JR
23922000-03-28 Jason Rumney <jasonr@gnu.org>
2393
2394 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2395
88faab89
GM
23962000-03-27 Gerd Moellmann <gerd@gnu.org>
2397
182ff242
GM
2398 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2399
2400 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2401
182ff242
GM
2402 * alloc.c (mark_maybe_object): New function.
2403 (mark_memory): Use it.
2404 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2405 (setjmp_tested_p, longjmp_done): New variables.
2406 (test_setjmp): New function.
2407 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2408 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2409
c1005d06
GM
2410 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2411 to DEC_TEXT_POS and INC_TEXT_POS.
2412
2413 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2414 with parameter MULTIBYTE_P.
2415
427ec082 2416 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2417 MULTIBYTE_P.
2418
7439e5b9 2419 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2420 buffers because it looks for multibyte character byte sequences
2421 which don't exist in unibyte text.
7439e5b9 2422
d9c545da
GM
2423 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2424
11fd416e 2425 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2426 [DEBUG_X_COLORS]: New functions.
2427 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2428
2429 * xfns.c (x_set_cursor_color): Get color reference counts right.
2430
2431 * xterm.c (x_copy_color): New function.
2432 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2433
2434 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2435 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2436 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2437 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2438 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2439 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2440 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2441 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2442 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2443 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2444
11fd416e
GM
2445 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2446 names for handling per-buffer variables.
d9c545da
GM
2447
2448 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2449 instead of MAX_BUFFER_LOCAL_VARS.
2450 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2451
2452 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2453
88faab89
GM
2454 * xfns.c (x_specified_cursor_type): New function.
2455 (x_set_cursor_type): Use it.
2456
2457 * buffer.h (struct buffer): Add cursor_type.
2458
d80f42b7
SM
24592000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2460
2461 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2462 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2463 opcode.
d80f42b7
SM
2464 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2465 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2466 executing it as well as when popping it off the stack to find infinite
2467 loops in non-greedy repetition operators.
2468
89e80928
GM
24692000-03-26 Gerd Moellmann <gerd@gnu.org>
2470
3d4ff2dd
GM
2471 * doc.c (Qfunction_documentation): New variable.
2472 (syms_of_doc): Initialize Qfunction_documentation.
2473 (Fdocumentation): If FUNCTION is a symbol with non-nil
2474 `function-documentation' property, return a documentation derived
2475 from that.
2476
bd96bd79
GM
2477 * buffer.c (syms_of_buffer): Add default-cursor-type.
2478 (init_buffer_once): Don't let cursor_type have a local value
2479 in every buffer.
2480
19d1bc27
GM
2481 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2482 on buffer-local value of cursor_type.
2483 (x_draw_bar_cursor): Add parameter WIDTH.
2484
2485 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2486 (init_buffer_once): Set default cursor_type value to t.
2487 Mark cursor_type as local everywhere.
2488 (syms_of_buffer): New per-buffer variable cursor-type.
2489
89e80928
GM
2490 * buffer.h (struct buffer): Remove member local_var_flags,
2491 add local_flags.
2492 (MAX_BUFFER_LOCAL_VARS): New macro.
2493 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2494 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2495 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2496 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2497
2498 * print.c (print_object): Use new macros for per-buffer
2499 variables.
2500
2501 * category.c (Fset_category_table): Use new macros for per-buffer
2502 variables.
2503
2504 * buffer.c (buffer_permanent_local_flags): Make a char array.
2505 (max_buffer_local_idx): New variable.
2506 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2507 for new handling of per-buffer variables.
2508 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2509 (init_buffer_once): Initialize per-buffer vars differently.
2510 Set max_buffer_local_idx.
2511
2512 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2513 variables.
2514
2515 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2516 variables.
2517
2518 * data.c (do_symval_forwarding, store_symval_forwarding)
2519 (find_symbol_value, set_internal, default_value, Fset_default)
2520 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2521 per-buffer variables.
2522
2523 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2524
9a0dd3dc
GM
25252000-03-24 Gerd Moellmann <gerd@gnu.org>
2526
b68c375f
GM
2527 * xterm.c (x_term_init): Unblock input around call1 of
2528 Qvendor_specific_keysyms.
2529
9a0dd3dc
GM
2530 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2531 (find_defun_start): Consider an open parenthesis in column 0
2532 a defun start only if open_paren_in_column_0_is_defun_start is set.
2533 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2534
7973e637
SM
25352000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2536
2537 * eval.c (Fautoload): Add entry in load-history (if after dump).
2538 * lread.c (load-history): Update docstring.
2539
39210e90
GM
25402000-03-24 Gerd Moellmann <gerd@gnu.org>
2541
2542 * indent.c (Fvertical_motion): Always use the current buffer.
2543 Temporarily change the window's buffer, if necessary.
2544
72db3ab5
GM
25452000-03-23 Gerd Moellmann <gerd@gnu.org>
2546
2547 * xterm.c (fast_find_position): Make sure not to consider rows
2548 not visible in the window.
2549
990b2375
SM
25502000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2551
2552 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2553 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2554
ff4df011
JR
25552000-03-22 Jason Rumney <jasonr@gnu.org>
2556
2557 * w32menu.c (single_submenu): Set help string to NULL if none.
2558 (w32_menu_show): Set help string correctly.
2559 (add-menu-item): Set help string in MIIM_DATA for menu item.
2560 Load SetMenuItemInfoA explicitly.
2561 (w32_menu_display_help): New function.
427ec082 2562
ff4df011
JR
2563 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2564 (QCdata): Moved to xdisp.c.
2565
2566 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2567 (Vw32_charset_to_codepage_alist): Removed.
2568 (Vw32_charset_info_alist): New variable.
2569 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2570 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2571 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2572 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2573 with TODO comment.
2574 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2575 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2576 Define Vw32_charset_info_alist and w32_charset symbols.
2577
25782000-03-22 Jason Rumney <jasonr@gnu.org>
2579
2580 * makefile.nt (w32bdf.obj): Update dependencies.
2581
2582 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2583
2584 * w32fns.c: Include fontset.h after dispextern.h.
2585 (Fx_create_frame): Do not create fontset.
2586 (w32_load_system_font): Doc fix.
2587 (Fx_close_connection): Free full_name if it is not shared.
2588
2589 * w32term.c: Include fontset.h after dispextern.h.
2590 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2591 updated.
2592 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2593 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2594 (w32_font_is_double_byte): New function, needs body.
2595 (x_append_glyph): Set glyph->glyph_not_available_p.
2596 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2597 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2598 character, convert it to a unibyte character.
2599 (struct glyph_string): Delete member `charset'.
2600 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2601 calculating it is found.
2602 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2603 the case that per char metric is not available correctly.
2604 (x_fill_glyph_string): Handle the case that the specific glyph is
2605 not available correctly.
2606 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2607 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2608 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2609 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2610 fontset. Don't call FS_LOAD_FONT.
2611
439d5cb4
KR
26122000-03-22 Ken Raeburn <raeburn@gnu.org>
2613
2614 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2615 (INT_LISPLIKE): New macro.
2616 (NULL_INTERVAL_P): Use it.
2617 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2618 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2619 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2620
2621 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2622 explicit references to "parent" field of struct interval and
2623 associated unclean type conversions.
2624 * intervals.c (create_root_interval, root_interval, rotate_right,
2625 rotate_left, balance_possible_root_interval, split_interval_right,
2626 split_interval_left, interval_start_pos, find_interval,
2627 next_interval, previous_interval, update_interval,
2628 adjust_intervals_for_insertion, delete_node, delete_interval,
2629 adjust_intervals_for_deletion, merge_interval_right,
2630 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2631 copy_intervals_to_string): Likewise.
2632 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2633 Likewise.
2634 * syntax.c (update_syntax_table): Likewise.
2635
2636 * intervals.c (reproduce_tree_obj): New function, like
2637 reproduce_tree but takes a Lisp_Object for the parent. Declare
2638 with prototype.
2639 (graft_intervals_into_buffer): Use it when appropriate.
2640 (reproduce_tree): Declare with prototype.
2641 (balance_possible_root_interval): Check that the parent is a lisp
2642 object before trying to examine its type.
2643
ee1c5b21
GM
26442000-03-22 Gerd Moellmann <gerd@gnu.org>
2645
2646 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2647 as strings only if both are known to be strings.
2648
2649 * s/openbsd.h (LIBS_TERMCAP): Undef.
2650
1fb352e0
SM
26512000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2652
2653 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2654 definitions for non-Emacs compilation.
2655 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2656 outside of `#ifdef emacs'.
2657 (print_partial_compiled_pattern): Update.
2658 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2659 (re_compile_fastmap): Merge handling of charset and charset_not (for
2660 emacs and non-emacs compilation as well).
2661 Similarly for (not)categoryspec and (not)syntaxspec.
2662 Don't use the fastmap when reaching `anychar' since the added
2663 complexity is not justified.
2664 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2665 and (not)syntaxspec. Merge (not)categoryspec.
2666
fdaa1f77
KH
26672000-03-22 Kenichi Handa <handa@etl.go.jp>
2668
ff1a0d8e
KH
2669 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2670 FACE_FOR_CHAR): Define them differently for the configuration of
2671 --without-x.
fdaa1f77 2672
d152fb46
DL
26732000-03-21 Dave Love <fx@gnu.org>
2674
2675 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2676 doc string.
2677
d2cafc8c
GM
26782000-03-21 Gerd Moellmann <gerd@gnu.org>
2679
2680 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2681 (lface_fully_specified_p): Don't check contents of
2682 LFACE_FONT_INDEX because that attribute is optional.
2683 (realize_x_face): Remove now unwarranted xassert.
2684
9111d4b5
KH
26852000-03-21 Kenichi HANDA <handa@etl.go.jp>
2686
2687 The following changes are to make font selection based on
2688 characters, not charset. In addition, they recover fontset
2689 facilities while utilizing the new font selection mechanism.
2690
6c4bfdc0
KH
2691 * Makefile.in (fontset.o): Depend on dispextern.h.
2692
2693 * alloc.c (mark_face_cache): Don't mark face->registry.
2694
9111d4b5
KH
2695 * dispextern.h (struct glyph): New member glyph_not_available_p.
2696 Use 22 bits for face_id.
2697 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2698 (struct face): Delete member registry, new member ascii_face.
2699 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2700 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2701 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2702 (struct it): Delete member charset, new member
2703 glyph_not_available_p.
2704
2705 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2706 (struct fontset_info, struct fontset_data): Structs removed.
2707 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2708 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2709 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2710 (fs_free_face_fontset, fontset_font_pattern,
2711 face_suitable_for_char_p, face_for_char,
2712 make_fontset_for_ascii_face): Extern them.
2713 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2714 (FS_LOAD_FACE_FONT): New macro.
2715
2716 * fontset.c: All codes rewritten or adjusted for the change of
2717 fontset implementation. Now fontset is represented by char table.
2718 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2719 removed.
2720 (my_strcasecmp): Function removed.
2721 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2722 variables.
2723 (AREF, ASIZE): New macros.
2724 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2725 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2726 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2727 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2728 fontset_id_valid_p, font_family_registry, fontset_name,
2729 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2730 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2731 New functions.
2732 (fs_load_font): New arg FACE. Caller changed.
2733 (fs_query_fontset): Argument changed. Caller changed.
2734 (Fquery_fontset): call fs_query_fontset.
2735 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2736 Functions removed.
2737 (clear_fontset_elements, check_registry_encoding,
2738 check_fontset_name): New functions.
2739 (syms_of_fontset): Set char-table-extra-slots property of fontset
2740 to 3. Staticpro and initialize Vfontset_table and
2741 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2742
2743 * frame.h (struct frame): Member `fontset_data' removed.
2744 (FRAME_FONTSET_DATA): Macro removed.
2745
2746 * frame.c (make_frame): Don't allocate f->fontset_data.
2747 (Fdelete_frame): Don't free f->fontset_data.
2748
6c4bfdc0
KH
2749 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2750
9111d4b5
KH
2751 * xdisp.c (charset_at_position): Function removed.
2752 (init_iterator): Don't set member charset of struct `it'.
2753 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2754 next_element_from_display_vector, insert_left_trunc_glyphs):
2755 Likewise.
2756 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2757 FACE_FOR_CHARSET.
2758 (get_next_display_element, append_space,
2759 extend_face_to_end_of_line): Likewise.
2760
2761 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2762 Variables removed.
2763 (clear_font_table, frame_update_line_height, load_face_font):
2764 Adjusted for the change of fontset implementation.
2765 (load_face_fontset_font): Function removed.
2766 (pixel_point_size): New function.
2767 (font_list): Argument type changed. Caller changed.
2768 (LFACE_FONT): New macro.
2769 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2770 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2771 Lisp_Object. Determine the font name by actually loading a font
2772 by the specified pattern. Set LFACE_FONT (lface) to the specified
2773 pattern. Even if a font is not found, don't try alternatives.
2774 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2775 (set_font_frame_param): If `font' is specified in lface, use it.
2776 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2777 (lface_same_font_attributes_p): Likewise.
2778 (make_realized_face): Arguent changed. Caller changed. Set
2779 face->ascii_face to face itself.
2780 (free_realized_face): Free face->fontset if face is for ASCII.
2781 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2782 deduce_unibyte_registry, x_charset_registry): Functions removed.
2783 (free_realized_multibyte_face): New function.
2784 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2785 changed. Caller changed.
2786 (try_font_list): Argument type changed.
2787 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2788 (choose_face_font): Argument changed. Handle fontset properly.
2789 (choose_face_fontset_font): Function removed.
2790 (realize_default_face, realize_named_face): Don't remove the
2791 former face here.
2792 (realize_face): Argument changed. Caller changed. Remove face
2793 with the arg former_face_id in advance. Load font for the new
2794 face.
2795 (realize_x_face): Argument changed. Caller changed. For a
2796 multibyte character, share fontset with base_face. For a single
2797 byte character, make a new realized fontset. Don't load a font
2798 here.
2799 (realize_tty_face): Argument changed. Caller changed.
2800 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2801 (face_at_buffer_position): Don't check multibyte_p for returning
2802 DEFAULT_FACE_ID.
2803 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2804 FACE_SUITABLE_FOR_CHARSET_P.
2805 (syms_of_xfaces): Remove code for Qx_charset_registry and
2806 Vface_default_registry.
2807
6c4bfdc0
KH
2808 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2809 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2810 (x_per_char_metric): Don't try FONT->default_char. Even if
2811 pcm->width is zero, glyph bits may exist.
2812 (x_encode_char): Always initialize char2b->byte1.
2813 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2814 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2815 changed.
2816 (x_append_glyph): Set glyph->glyph_not_available_p.
2817 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2818 it->charset. Handle the case that per char metric is not
2819 available. If it->multibyte_p is zero and it->c is a multibyte
2820 character, convert it to a unibyte character.
2821 (struct glyph_string): Delete member `charset'.
2822 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2823 the case that per char metric is not available correctly.
2824 (x_fill_glyph_string): Handle the case that the specific glyph is
2825 not available correctly.
2826 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2827 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2828 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2829 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2830 fontset. Don't call FS_LOAD_FONT.
2831
2832 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2833 (x_create_tip_frame): Likewise.
2834 (Fx_close_connection): Free full_name of font_info.
2835
2836 * fns.c (optimize_sub_char_table): New function.
2837 (Foptimize_char_table): New function.
2838 (syms_of_fns): Defsubr Soptimize_char_table.
2839
b33dd3b0
GM
28402000-03-20 Gerd Moellmann <gerd@gnu.org>
2841
2842 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2843 only if buffer is displayed in some window.
2844
2845 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2846 (try_window_reusing_current_matrix): Don't call scroll run
2847 function if run's current and desired position are the same;
2848 this prevents cursor flickering.
2849
4e8a9132
SM
28502000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2851
2852 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2853
2854 * regex.c (RE_STRING_CHAR): New macro.
2855 (GET_CHAR_AFER_2): Remove.
2856 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2857 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2858 (print_partial_compiled_pattern, re_compile_fastmap)
2859 (re_match_2_internal): Remove on_failure_jump_exclusive.
2860 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2861 optimization only need to work for * (ie. can use of_keep_string_jump).
2862 Remove the special case for .*\n since it is now covered by the general
2863 optimization.
2864 (re_search_2): Don't bother with `room'.
2865 (skip_one_char): New function.
2866 (skip_noops): Simplify since `memory' is not needed any more.
2867 (mutually_exclusive_p): Restructure slightly to use `switch' and
2868 add handling for "all" remaining cases.
2869 (re_match_2_internal): Change on_failure_jump_smart to use
2870 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2871 rather than on_failure_jump_exclusive.
2872
2136fdd4
GM
28732000-03-19 Gerd Moellmann <gerd@gnu.org>
2874
2875 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2876 number of bits per RGB because it's everywhere used as the depth
2877 of the visual.
2878
2879 * term.c (calculate_costs): Remove code dealing with X frames.
2880
e53ae11c
RS
28812000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2882
2883 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2884
d7b511c4
GM
28852000-03-18 Gerd Moellmann <gerd@gnu.org>
2886
2887 * lread.c (read_integer): Unread the last char not consumed.
2888
16b5d424
GM
28892000-03-17 Gerd Moellmann <gerd@gnu.org>
2890
2891 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2892 which are in the process of being deleted.
16b5d424 2893
1fa28578
GM
28942000-03-16 Gerd Moellmann <gerd@gnu.org>
2895
83488cce
GM
2896 * Makefile.in (mostlyclean): Add `*.core'.
2897 (clean): Add `bootstrap-emacs'.
2898
1fa28578
GM
2899 * lread.c (read_integer): New function.
2900 (read1): Support read syntax #o, #x, #b, #r.
2901
99633e97
SM
29022000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2903
1fa28578
GM
2904 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2905 make sure POINTER_TO_OFFSET gives the same value before and after
2906 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2907 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2908 (debug): Now only active if > 0 rather than if != 0.
2909 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2910 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2911 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2912 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2913 (store_op1, store_op2, insert_op1, insert_op2)
2914 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2915 (group_in_compile_stack): Move to after its arg's types are
2916 declared and add a prototype.
99633e97 2917 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2918 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2919 wrapper.
99633e97 2920 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2921 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2922 indentation of the greedy-op and shy-group code.
99633e97
SM
2923 (at_(beg|end)line_loc_p): Fix argument's types.
2924 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2925 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2926 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2927 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2928 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2929 QUIT unconditionally.
99633e97 2930
699238d9
GM
29312000-03-15 Gerd Moellmann <gerd@gnu.org>
2932
2933 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2934 a sole completion.
2935
2936 * process.c (send_process): Add a hint that the function
2937 can call Lisp code to its comment.
2938
2939 * lread.c (load_dangerous_libraries): New variable.
2940 (Vbytecomp_version_regexp): New variable.
2941 (safe_to_load_p): New function.
2942 (Fload): Handle files not compiled with Emacs specially.
2943 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2944
34e23e5a
GM
29452000-03-14 Gerd Moellmann <gerd@gnu.org>
2946
9c763cca
GM
2947 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2948
2949 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2950 support functions only if HAVE_X11R6_XIM is defined.
2951 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2952
2953 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2954
2955 * xfns.c (X_I18N_INHIBITED): Don't define.
2956 (create_frame_xic): Remove conditional compilation on
2957 X_I18N_INHIBITED.
2958 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2959
2960 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2961 (HAVE_X11R6_XIM): Define.
2962
2963 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2964
34e23e5a
GM
2965 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2966 If set, call XSynchronize.
2967
66f0296e
SM
29682000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2969
34e23e5a
GM
2970 * regex.c: Declare a new type `re_char' used throughout the code
2971 for the string char type. It's `const unsigned char' to match the
2972 rest of Emacs. Consistently make sure all pointers to strings use
2973 it and make sure all pointers into the pattern use `unsigned
2974 char'.
66f0296e 2975 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2976 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2977 code duplication.
66f0296e
SM
2978
2979 * charset.h (GET_CHAR_AFTER_2): Remove.
2980 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2981
854a025c
KR
29822000-03-12 Ken Raeburn <raeburn@gnu.org>
2983
2984 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2985 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2986 of them try to use backquotes.
2987
b9d2c7e2
DL
29882000-03-12 Dave Love <fx@gnu.org>
2989
2990 * unexelf.c: Restore changes of 1999-10-19.
2991 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2992 fix its type and alignment; copy it from current process.
2993
5e5dff44
GM
29942000-03-12 Gerd Moellmann <gerd@gnu.org>
2995
9b2f3c38
GM
2996 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2997 has been found. Fix bug not computing timer's predecessor.
2998
427ec082 2999 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
3000 file name.
3001
e1cff360
GM
3002 * window.c (Fsave_window_excursion): Doc fix.
3003
5e5dff44
GM
3004 * xfns.c (x_defined_color): Rewritten to use
3005 x_allocate_nearest_color.
3006
e411ce4b
EZ
30072000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3008
3009 * msdos.c (vga_installed): New function, code moved from
3010 dos_set_window_size.
3011 (Qbar, Qcursor_type, outside_cursor): New variables.
3012 (syms_of_msdos): Intern and staticpro them.
3013 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3014 shape used outside Emacs when called for the first time.
3015 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3016 cursor shape used outside Emacs.
3017 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
3018 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
3019 type has changed.
3020 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
3021 parameters specify the cursor. Make qreverse a global
3022 variable (renamed to Qreverse).
3023
80460654
GM
30242000-03-09 Gerd Moellmann <gerd@gnu.org>
3025
3026 * fns.c (Fy_or_n_p): Cancel busy-cursor.
3027
95cd4c40
SM
30282000-03-08 Stefan Monnier <monnier@cs.yale.edu>
3029
3030 This is a big redesign of failure-stack and register handling, prompted
3031 by bugs revealed when trying to add shy-groups. Overall, what happened
3032 is that loops are now structured a little differently, groups can be
3033 shy and the code is a little simpler.
3034
3035 * regex.h: Update the copyright.
3036 (RE_SHY_GROUPS): New value.
3037 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
3038 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
3039
80460654
GM
3040 * regex.c (enum re_opcode_t): Remove jump_past_alt,
3041 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
3042 on_failure_jump_(exclusive, loop and smart). Also fix the comment
3043 for (start|stop)_memory since they now only take one argument (the
3044 second has becomes unnecessary).
3045 (print_partial_compiled_pattern): Adjust for changes in
3046 re_opcode_t.
3047 (print_compiled_pattern): Use %ld to printf long ints and flush to
3048 make debugging a little easier.
95cd4c40
SM
3049 (union fail_stack_elt): Make the integer unsigned.
3050 (struct fail_stack_type): Add a `frame' element.
3051 (INIT_FAIL_STACK): Init `frame' as well.
3052 (POP_PATTERN_OP): New macro for re_compile_fastmap.
3053 (DEBUG_PUSH, DEBUG_POP): Remove.
3054 (NUM_REG_ITEMS): Remove.
3055 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
3056 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
3057 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 3058 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
3059 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
3060 macros.
3061 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
3062 address pushed is not the destination of the jump but the source
3063 of it instead.
95cd4c40
SM
3064 (NUM_FAILURE_ITEMS): Remove.
3065 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
3066 registers before the actual failure point). Don't hardcode any
3067 meaning for str==NULL anymore.
95cd4c40 3068 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3069 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3070 Remove.
95cd4c40
SM
3071 (REG_UNSET_VALUE): Use NULL (why not?).
3072 (compile_range): Remove declaration since it doesn't exist.
3073 (struct compile_stack_elt_t): Remove inner_group_offset.
3074 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3075 (regex_grow_registers): Remove dead code.
3076 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3077 (regex_compile): Add shy-groups Change loops to use
3078 on_failure_jump_smart&jump instead of
3079 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3080 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3081 variable to me). Use `jump' instead of `jump_past_alt' and don't
3082 bother with push_dummy_failure in alternatives since it is now
3083 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3084 emacs' for (re)allocating the stack.
3085 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3086 from loop when bufp->can_be_null rather than jumping to `done'.
3087 Avoid jumping backwards so as to ensure termination. Use
3088 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3089 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3090 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3091 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3092 improve mutually_exclusive_p to handle ".+\n".
3093 (lowest_active_reg, highest_active_reg,
3094 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3095 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3096 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3097 variables. Push register (in `start_memory') on the stack rather
3098 than storing it in old_reg(start|end). Remove the cycle detection
3099 from `stop_memory', replaced by the use of on_failure_jump_loop
3100 for greedy loops. Add code for the new on_failure_jump_<foo>.
3101 Remove ad-hoc code in `on_failure_jump' to push more registers in
3102 the case of a loop. Take out code from `maybe_pop_jump' into
3103 separate functions and adapt it to the semantics of
3104 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3105 and push_dummy_failure. Remove dummy_failure handling and
3106 handling of `failures to jump to on_failure_jump' (this last one
3107 was already dead code, it seems).
3108 (group_match_null_string_p, alt_match_null_string_p)
3109 (common_op_match_null_string_p): Remove.
95cd4c40 3110
7397acc4
DL
31112000-03-08 Dave Love <fx@gnu.org>
3112
3113 * config.in: Don't depend on __STDC__ for volatile.
3114 Add POINTER_TYPE, PTR, PROTOTYPES.
3115
3116 * hftctl.c, strftime.c: Use PROTOTYPES.
3117 * eval.c (find_handler_clause): Likewise.
3118
3119 * mem-limits.h: Use POINTER_TYPE.
3120
3121 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3122 (memory_warnings): Declare using POINTER_TYPE.
3123
5e91ff9e
GM
31242000-03-08 Gerd Moellmann <gerd@gnu.org>
3125
feab4fba
GM
3126 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3127
25edb08f
GM
3128 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3129 collection.
3130
5e91ff9e
GM
3131 * xfns.c: Remove obsolete code in #if 0.
3132 (Fx_focus_frame): New function.
3133
a735b7e1
KH
31342000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3135
3136 * coding.c (coding_category_name): Add coding-category-utf-8,
3137 coding-category-utf-16-be, coding-category-utf-16-le.
3138 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3139 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3140 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3141 (detect_coding_utf_8): New function.
3142 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3143 UTF_16_LOW_SURROGATE_P): New macros.
3144 (detect_coding_utf_16): New function
3145 (detect_coding_mask): When priorities are specified, skip any
3146 categories that have `nil' coding-system. Fix bug of returning
3147 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3148 returns a mask not set in PRIORITIES.
3149 (detect_eol_type_in_2_octet_form): New function.
3150 (detect_eol): selects detect_eol_type_XXX to call according to
3151 cooding->category_idx.
3152 (detect_coding_system): Remove `nil' coding-system in the result.
3153 (Fupdate_coding_systems_internal): Update all coding-categories.
3154
3155 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3156 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3157 macros.
3158 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3159 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3160 CODING_CATEGORY_IDX_UTF_16_LE.
3161 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3162 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3163 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3164 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3165
9994cc69
GM
31662000-03-07 Gerd Moellmann <gerd@gnu.org>
3167
e9b4e5ff
GM
3168 * doc.c (Fdocumentation_property): If value is not a string,
3169 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3170
f7daf1e1
GM
3171 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3172 close the display with XtCloseDisplay. This caused a bus error
3173 on OpenWindows.
3174
9994cc69
GM
3175 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3176 complete but not unique.
3177
4336c705
GM
31782000-03-06 Gerd Moellmann <gerd@gnu.org>
3179
18bb0684
GM
3180 * process.c (send_process): Remove local variable `procname' that
3181 might become invalid when a GC happens. Instead, access the
3182 process name slot directly.
3183
4336c705
GM
3184 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3185 orig_height if set.
3186
3187 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3188 orig_height if set.
3189
515d0d0e
EZ
31902000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3191
3192 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3193 glyph matrices have been freed.
3194
100b3cbb
GM
31952000-03-05 Gerd Moellmann <gerd@gnu.org>
3196
50df5e5a 3197 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3198 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3199
3200 * xfns.c (QCdata): Moved to xdisp.c.
3201
3202 * xdisp.c (QCdata): Moved here from xfns.c.
3203 (syms_of_xdisp): Initialize QCdata.
3204
3205 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3206
3207 * window.c (coordinates_in_window): Use
3208 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3209 FRAME_INTERNAL_BORDER_WIDTH.
3210
100b3cbb 3211 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3212 it is obviously invalid.
100b3cbb
GM
3213
3214 * xterm.c (x_term_init): Create a colormap if not using the
3215 default visual.
3216
3217 * xterm.h (select_visual): Change prototype.
3218
3219 * xfns.c (select_visual): Rewritten. Recognize user-specified
3220 visual classes.
3221 (visual_classes): New variable.
3222
64d739c4
GM
32232000-03-04 Gerd Moellmann <gerd@gnu.org>
3224
3225 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3226 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3227 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3228 (x_decode_color): Don't handle allocation of white and black
3229 specially.
3230 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3231 XtNcolormap resources.
3232 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3233 (Fx_create_frame): Initialize color members of x_output structure.
3234 (xpm_load): Pass colormap to XPM lib.
3235
3236 * xfaces.c (x_free_colors): Access colormap of frame using
3237 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3238 when default colormap is used.
3239
3240 * xterm.c (x_term_init): Set Colormap member of x_display_info
3241 structure. Copy colormap if resource `privateColormap' is
3242 specified (PseudoColor only).
3243 (x_setup_relief_color): Access colormap of frame using
3244 FRAME_X_COLORMAP.
3245
3246 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3247 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3248
c3cee013
JR
32492000-03-04 Jason Rumney <jasonr@gnu.org>
3250
3251 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3252 other non-platform-specific equivalents.
64d739c4 3253 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3254 specific functions and macros as their w32 equivalents where
3255 non-platform-specifics are not available.
3256 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3257 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3258 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3259 (frame_update_line_height): Use macros to access f->output_data.
3260 (defined_color): Remove FIXME comments; fixed.
3261 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3262 into #ifdef blocks. Add WINDOWSNT blocks.
3263 (Fx_list_fonts): Use macros for accessing font data.
3264 (set_lface_from_font_name): Different default fonts for X and
3265 WINDOWSNT.
3266 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3267 scalable for backward compatibility.
64d739c4 3268 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3269 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3270
64d739c4 3271 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3272 syms_of_w32faces.
3273
3274 * makefile.nt (w32faces.obj): Remove.
3275 (xfaces.obj): Add.
3276
807cc41c
JR
32772000-03-03 Jason Rumney <jasonr@gnu.org>
3278
3279 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3280 correct parameters.
3281
0007072a
KR
32822000-03-03 Ken Raeburn <raeburn@gnu.org>
3283
3284 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3285 standard ELF definitions here if the system header does not.
3286
71a6ba55
GM
32872000-03-03 Gerd Moellmann <gerd@gnu.org>
3288
3289 * xterm.c (PER_CHAR_METRIC): Removed.
3290 (x_per_char_metric_1, x_default_char): New functions.
3291 (x_per_char_metric): If font's default char is invalid, return
3292 metrics of a suitably chosen usable default char.
3293 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3294 char, replace occurrences of unprintable chars with a suitably
3295 chosen usable default char.
71a6ba55 3296
900fa1f1
GM
32972000-03-02 Gerd Moellmann <gerd@gnu.org>
3298
42f55fe0
GM
3299 * xterm.c (note_mouse_highlight): Return quickly if frame's
3300 glyph matrices have been freed.
3301
3302 * dispnew.c (free_glyphs): Block input while freeing matrices.
3303
900fa1f1
GM
3304 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3305
3306 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3307 x_free_colors.
3308
3309 * dispextern.h (x_free_colors): Add prototype.
3310
3311 * xfaces.c (x_free_colors): New function.
3312 (unload_color, free_face_colors): Use it.
3313
2f950292
EZ
33142000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3315
3316 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3317
3318 * window.c [MSDOS]: Include msdos.h.
3319
54d04320
DL
33202000-03-02 Dave Love <fx@gnu.org>
3321
3322 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3323
3324 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3325 set C_OPTIMIZE_SWITCH for gcc.
3326
0ba93ac4
KH
33272000-03-02 Kenichi Handa <handa@etl.go.jp>
3328
3329 * coding.c (coding_save_composition): Be sure to allocate
3330 composition data area in coding even if there's no composition in
3331 the current run.
3332
a2bc11d4
JR
33332000-03-01 Jason Rumney <jasonr@gnu.org>
3334
3335 * w32term.c: Equivalent changes to those made to xterm.c on
3336 2000-02-25 and 2000-02-24.
3337
3338 * w32fns.c: Equivalent changes to those made to xfns.c on
3339 2000-02-25 and 2000-02-21.
3340
3341 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3342 correct line-end convention is followed.
3343
3344 * w32menu.c [HAVE_BOXES]: Remove #undef.
3345 (single_keymap_panes): Remove code for simulating checkmarks.
3346 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3347 Remove code for drawing simulated checkmarks.
3348 (w32_menu_show): make unibyte help string correctly.
3349 (add_menu_item): draw standard Windows checkmarks. Draw radio
3350 buttons as radio buttons if possible.
3351
72d19d75
GM
33522000-03-01 Gerd Moellmann <gerd@gnu.org>
3353
2df636f4
GM
3354 * sysdep.c (start_of_text): Don't define this function for NetBSD
3355 with ELF.
3356
427ec082 3357 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3358 Don't define.
3359 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3360 (LINKER): Don't undef if __NetBSD__ is defined.
3361
3362 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3363
3364 * fileio.c [__NetBSD__]: Define `unix'.
3365
72d19d75
GM
3366 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3367
ed4d0512
GM
33682000-02-29 Gerd Moellmann <gerd@gnu.org>
3369
50b1039f
GM
3370 * atimer.c (start_atimer): Don't abort when timers are stopped.
3371 (append_atimer_lists): New function.
3372 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3373 arbitrary lists of stopped and running atimers.
3374
ed4d0512
GM
3375 * atimer.c (cancel_atimer): Handle canceling an atimer when
3376 some timers are stopped.
3377
3378 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3379 after canceling it.
3380
3381 * fns.c (maybe_resize_hash_table): Handle case of new size
3382 coming out as being the same as old size.
3383
387023ee
JR
33842000-02-27 Jason Rumney <jasonr@gnu.org>
3385
3386 * makefile.nt: Add atimer.h to dependencies.
3387 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3388 * w32console.c: Only disable window system features for dispextern.h
3389 (initialize_w32_display): Build a display info for the console.
3390 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3391 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3392 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3393 as 2 button mice.
3394 * w32gui.h (struct W32FontStruct): Revert last change after change
3395 to xdisp.c.
3396 * w32menu.c (single_submenu): Set up help string.
3397 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3398 (w32_dialog_show): Set up help string.
3399 * w32term.c (w32_display_info_for_display): Remove unused function.
3400 (w32_draw_bitmap): Use pre-built bitmaps.
3401 (w32_initialize_display_info): New function to initialize parts of
3402 display info that are common to both GUI and console frames.
3403 (w32_term_init): Use w32_initialize_display_info. Do not set
3404 Vw32_num_mouse_buttons here, as it is not called for console
3405 frames. Build bitmaps for indicating truncated lines etc.
3406 (x_delete_display): Destroy pre-built bitmaps.
3407 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3408 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3409
4516715a
DL
34102000-02-27 Dave Love <fx@gnu.org>
3411
3412 * lisp.h: Add a bunch of prototypes.
3413
171ca836
KH
34142000-02-26 Kenichi Handa <handa@etl.go.jp>
3415
3416 * keyboard.c (read_char): Set `usec' correctly.
3417
4013921d
KH
34182000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3419
3420 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3421 `lambda', set reg[RRR] to the map index.
3422 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3423 reg[RRR] to 0. Otherwise, set it to -1.
3424
9244a058
GM
34252000-02-25 Gerd Moellmann <gerd@gnu.org>
3426
2df636f4 3427 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3428
f43d79c1 34292000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3430
f43d79c1
GM
3431 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3432 and contains a `:', prepend `/:'.
3433
3434 * window.c (select_window_1): If selected_window is nil,
3435 don't "swap out" the buffer's point.
3436 (Fset_window_configuration): Set selected_window to nil
3437 before calling Fselect_window.
3438 (unshow_buffer): Don't set point in buffer from window's point
3439 if another more recently selected window also shows the buffer.
3440
bed0c171
GM
34412000-02-25 Gerd Moellmann <gerd@gnu.org>
3442
449c3c52
GM
3443 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3444
f5b58615
GM
3445 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3446 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3447 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3448 variables.
3449 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3450 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3451 (hide_busy_cursor): New functions.
3452 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3453
3454 * minibuf.c (read_minibuf): Cancel busy-cursor.
3455
3456 * keyboard.c (command_loop_1): Call start_busy_cursor before
3457 Fcommand_execute and cancel_busy_cursor after it.
3458 (timer_check): Remove busy-cursor code.
3459 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3460 cursor timer.
3461
3462 * process.c (wait_reading_process_input): Remove busy-cursor code.
3463
3464 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3465 Fx_hide_busy_cursor.
3466
3467 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3468 Remove prototyoes.
3469 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3470
3471 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3472
3473 * xterm.c (XTread_socket): Remove busy-cursor code.
3474
4eb8436f
GM
3475 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3476 (build_frame_matrix_from_leaf_window): Put code handling
3477 glyph row's not being a slice of a frame row in #if 0.
3478 (sync_window_with_frame_matrix_rows): New function.
3479 (frame_row_to_window): New function.
3480 (mirror_line_dance): Handle copies between windows.
3481
3cb65b0e
GM
3482 * lread.c (Fload): Use `xfree' instead of `free'.
3483 (init_obarray): Use `xmalloc' instead of `malloc'.
3484
bed0c171
GM
3485 * window.c (Fset_window_buffer): Set WINDOW to the window
3486 after decoding.
2add4349
GM
3487 (coordinates_in_window): Take frame's internal border width
3488 into account.
bed0c171 3489
42088c12
GM
34902000-02-24 Gerd Moellmann <gerd@gnu.org>
3491
3492 * xterm.c (x_display_and_set_cursor): Display cursor of
3493 non-selected windows depending on the setting of
3494 cursor_in_non_selected_windows.
3495
3496 * xdisp.c (cursor_in_non_selected_windows): New variable.
3497 (syms_of_xdisp): DEFVAR_BOOL it.
3498
d1e103b2
GM
34992000-02-23 Gerd Moellmann <gerd@gnu.org>
3500
723e779c
GM
3501 * data.c (Fstring_to_number): If number is greater than what
3502 fits into an integer, return a float.
3503
d1e103b2
GM
3504 * eval.c (specbind): Remove references to
3505 keyword_symbols_constant_flag.
3506
3507 * data.c (keyword_symbols_constant_flag): Removed.
3508 (Fmakunbound, set_internal, syms_of_data): Remove references to
3509 keyword_symbols_constant_flag.
3510
3511 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3512
214f877f
KH
35132000-02-23 Kenichi Handa <handa@etl.go.jp>
3514
3515 * syntax.c (multibyte_syntax_as_symbol): New variable.
3516 (syms_of_syntax): Declare it as a Lisp variable.
3517 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3518 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3519 nonzero, treat all multibyte characters as symbol.
42088c12 3520 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3521 characters.
3522
130adcb7
EZ
35232000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3524
3cb65b0e 3525 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3526 a deleted frame.
3527
17cbbf95
GM
35282000-02-21 Gerd Moellmann <gerd@gnu.org>
3529
3530 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3531
3532 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3533 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3534
beb0bc36
DL
35352000-02-21 Dave Love <fx@gnu.org>
3536
3537 * frame.c (Vmouse_position_function): New variable.
3538 (Fmouse_position): Use it.
3539 (syms_of_frame): Install it.
3540
3541 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3542
1d92afcd
GM
35432000-02-20 Gerd Moellmann <gerd@gnu.org>
3544
3545 * fileio.c (Finsert_file_contents): Unbind the binding of
3546 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3547
3548 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3549 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3550 (specbind, unbind_to): Handle most common case of non-constant
3551 symbol with trivial value specially.
3552
3553 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3554
2d06696f
RS
35552000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3556
3557 * data.c (Fmake_variable_buffer_local): Doc fix.
3558 Init found_for_buffer to 0.
3559 (Fmake_variable_frame_local): If the variable has already
3560 been buffer-local, set the check_frame field.
3561
1d4311c3
EZ
35622000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3563
3564 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3565 produced for CODING_MODE_LAST_BLOCK requires.
3566
2dc95ddd
DL
35672000-02-18 Dave Love <fx@gnu.org>
3568
3569 * keyboard.c (echo_keystrokes): Remove declaration.
3570 (Vecho_keystrokes) New variable.
3571 (read_char, record_menu_key, read_key_sequence): Use it to allow
3572 use of float value.
3573 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3574
3575 * lread.c: Undef feature selection macros before defining.
3576
f0930f35
GM
35772000-02-18 Gerd Moellmann <gerd@gnu.org>
3578
3579 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3580 for symbols other than the symbol in question.
3581
e3d4de90
DL
35822000-02-17 Dave Love <fx@gnu.org>
3583
3584 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3585
0b378936
GM
35862000-02-17 Gerd Moellmann <gerd@gnu.org>
3587
d621caf7
GM
3588 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3589
0b378936
GM
3590 * alloc.c (enum mem_type): Compile unconditionally.
3591
3b451f74
EZ
35922000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3593
3594 * xfaces.c (tty_defined_color): Don't return faulire indication
3595 for unspecified-fg and unspecified-bg pseudo-colors.
3596
10689a01
GM
35972000-02-17 Gerd Moellmann <gerd@gnu.org>
3598
1216f5e4
GM
3599 * alloc.c (mark_object): Don't mark symbol names in pure space.
3600 (gc_sweep): Don't unmark symbol names in pure space.
3601
3602 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3603 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3604 [GC_MARK_STACK]: New defines.
427ec082 3605 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3606 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3607
3608 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3609
3610 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3611 allocate_buffer instead of xmalloc.
3612
3613 * alloc.c (toplevel): Include setjmp.h.
3614 (PURE_POINTER_P): New define.
3615 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3616 (Vdead) [GC_MARK_STACK]: New variable.
3617 (lisp_malloc): Add parameter TYPE, call mem_insert if
3618 GC_MARK_STACK is defined.
3619 (allocate_buffer): New function.
427ec082 3620 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3621 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3622 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3623 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3624 (MEM_NIL) [GC_MARK_STACK]: New define.
3625 (struct mem_node) [GC_MARK_STACK]: New structure.
3626 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3627 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3628 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3629 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3630 (mark_stack) [GC_MARK_STACK]: New functions.
3631 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3632 (clear_marks): Removed.
3633 (gc_sweep): Set free conses' car, free floats' type, free
3634 symbols' function to Vdead. Use lisp_free to free buffers.
3635 (init_alloc_once): Initialize Vdead.
3636 (survives_gc_p): Return non-zero for pure objects.
3637
3638 * alloc.c: Add comments throughout the file.
3639
2503c8b1
GM
3640 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3641 that unblocks alarms.
3642
8389e1e2
GM
3643 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3644 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3645 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3646
10689a01 3647 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3648
bfc17d18
KH
36492000-02-17 Kenichi Handa <handa@etl.go.jp>
3650
4a09dee0
KH
3651 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3652 avoid infinite error signaling. Allocate sufficient memory for
3653 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3654
2b927d02
SM
36552000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3656
3657 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3658 depends on the previous behavior.
3659
b49cb764
GM
36602000-02-16 Gerd Moellmann <gerd@gnu.org>
3661
3662 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3663
99e95407
GM
36642000-02-15 Gerd Moellmann <gerd@gnu.org>
3665
3666 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3667
3668 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3669 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3670 write(2).
3671
6ffd3cf7
RS
36722000-02-15 Richard M. Stallman <rms@gnu.org>
3673
3674 * data.c (set_internal): Don't make variable buffer-local
3675 if within a let-binding for the same buffer.
3676 (let_shadows_buffer_binding_p): New function.
3677
3678 * eval.c (specbind): For buffer-local value,
3679 record the current buffer also.
3680 (unbind_to): Cope with that change.
3681
cad53475
GM
36822000-02-15 Gerd Moellmann <gerd@gnu.org>
3683
3684 * window.c (Fsave_window_excursion): Doc fix.
3685
1aa963c8
SM
36862000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3687
3688 * syntax.c (back_comment): Make sure we only consider comment-starters
3689 of the relevant style and return -1 in case of a failure to find the
3690 beginning of the comment.
3691 (Fforward_comment): If back_comment fails, go back to the position just
3692 after the comment-end.
3693 (scan_lists): Add comment describing a very minor bug.
3694
b9b84fd3
SM
36952000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3696
3697 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3698 `completion-regexp-list' in the docstring.
3699
3a28db80
DL
37002000-02-14 Dave Love <fx@gnu.org>
3701
3702 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3703
fb4a568d
SM
37042000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3705
3706 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3707 to Emacs' syntax. Also fix the comment about set/not-set meanings
3708 since Emacs syntax is not the value 0 any more.
3709 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3710 since it's now part of RE_SYNTAX_EMACS.
3711
1063ebb5
DL
37122000-02-12 Dave Love <fx@gnu.org>
3713
3714 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3715 Alpha.
3716
fb07a302
GM
37172000-02-12 Gerd Moellmann <gerd@gnu.org>
3718
3719 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3720
aaf2320c
DL
37212000-02-12 Dave Love <fx@gnu.org>
3722
3723 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3724
3725 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3726 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3727 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3728
3729 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3730
3731 * s/nextstep.h: Don't define HAVE_ALLOCA.
3732
3733 * config.in: Add vfork bits.
3734
eedf8bde
GM
37352000-02-12 Gerd Moellmann <gerd@gnu.org>
3736
3737 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3738 unwind function to undo the effect of stopping atimers.
3739
3740 * keyboard.c (bind_polling_period): Stop all timers except
3741 poll_timer.
3742
3743 * atimer.c (stopped_atimers): New variable.
3744 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3745 New functions.
3746
3747 * atimer.h (stop_other_atimers, run_all_atimers)
3748 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3749
eedf8bde
GM
3750 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3751
8476c2f8
KR
37522000-02-11 Ken Raeburn <raeburn@gnu.org>
3753
3754 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3755 library may depend on jpeg.
3756 (atimer.o): Depends on atimer.c.
3757
0e85e4a3
KH
37582000-02-11 Kenichi Handa <handa@etl.go.jp>
3759
3760 * insdel.c (del_range_1): Call update_compositions.
3761 (del_range_both): Call update_compositions just once..
3762
97fa0cc8
DL
37632000-02-10 Dave Love <fx@gnu.org>
3764
3765 * xfns.c (create_frame_xic): Fix initialization of automatic
3766 aggregates for pcc.
3767
25566a3c
KH
37682000-02-09 Kenichi Handa <handa@etl.go.jp>
3769
3770 * ccl.c (CCL_MAKE_CHAR): New macro.
3771 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3772 registers by CCL_MAKE_CHAR before calling translate_char.
3773 <CCL_TranslateCharacterConstTbl> Likewise.
3774
69da54ba
DL
37752000-02-08 Dave Love <fx@gnu.org>
3776
3777 * lread.c (__EXTENSIONS__): Define.
3778
f7136ee8
GM
37792000-02-08 Gerd Moellmann <gerd@gnu.org>
3780
3781 * puresize.h (BASE_PURESIZE): Increase to 650000.
3782
7768790b
EZ
37832000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3784
3785 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3786 the help message.
3787
38fd211b
EZ
37882000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3789
3790 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3791 md, mh, mb, mr, and me to the fake termcap entry.
3792
66e4690f
KR
37932000-02-06 Ken Raeburn <raeburn@gnu.org>
3794
3795 * sound.c (sound_cleanup): Don't call device close routine if the
3796 function pointer is null.
3797
a75dfea0
AI
37982000-02-06 Andrew Innes <andrewi@gnu.org>
3799
3800 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3801 around image definitions and prototypes.
3802 (gamma_correct) [WINDOWSNT]: New prototype.
3803
3804 * w32term.c (x_make_frame_visible): Replace call to
3805 input_poll_signal with poll_for_input.
3806
3807 * window.c [WINDOWSNT]: Include w32term.h.
3808
3809 * xdisp.c [WINDOWSNT]: Include w32term.h.
3810
3811 * makefile.nt: Add dependencies on w32gui.h.
3812 (OBJ1): Include atimer.obj.
3813 ($(BLD)\atimer.obj): New dependency rule.
3814
3815 * w32.c (sigmask): New function (does nothing).
3816 (sigunblock): Ditto.
3817
3818 * frame.c [WINDOWSNT]: Include w32term.h.
3819
3820 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3821
3822 * lread.c (syms_of_lread): Fix literal newlines.
3823
3824 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3825 the string constant limit (2048 bytes) in MSVC.
3826 (main): Ditto.
3827
59ddecde
GM
38282000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3829
3830 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3831 area.
3832 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3833 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3834 dispatch the event.
3835
07590973
DL
38362000-02-04 Dave Love <fx@gnu.org>
3837
3838 * fileio.c: Remove some unused vars.
3839 (_GNU_SOURCE): Define (for euidaccess).
3840
3841 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3842
3843 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3844 gcpro1, gcpro2.
3845 (read_minibuf): Deal with allow_props correctly.
3846
649351f9
EZ
38472000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3848
3849 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3850
66e4690f 38512000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3852
3853 * search.c (compile_pattern): If a cache entry has a nil regexp,
3854 fill in that entry instead of clobbering a previously cached
3855 string regexp.
3856
66e4690f 38572000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3858
3859 * puresize.h (BASE_PURESIZE): Increase to 610000.
3860
d240a249
GM
38612000-02-02 Gerd Moellmann <gerd@gnu.org>
3862
3863 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3864 can GC.
3865
ca91fb26
KH
38662000-02-02 Kenichi Handa <handa@etl.go.jp>
3867
25660570
KH
3868 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3869 instead of incrementing ic directly.
3870 <CCL_WriteExprConst> Likewise.
3871 <ccl_set_expr>: Set ic to jump_address.
3872
ca91fb26
KH
3873 * fileio.c (e_write): Fix the handling of
3874 CODING_FINISH_INSUFFICIENT_SRC.
3875
2ede9689
DL
38762000-02-01 Dave Love <fx@gnu.org>
3877
3878 * editfns.c (Fpropertize): Doc fix.
3879
3880 * process.c (Fstart_process): Doc fix.
3881
3882 * eval.c: Fix various doc strings not to duplicate information
3883 from help-manyarg-func-alist.
3884
3885 * window.c (Fset_window_margins): Don't make interactive. Doc
3886 fix.
3887
3888 * doc.c (Vhelp_manyarg_func_alist): New variable.
3889 (Fdocumentation): Use it.
3890 (syms_of_doc): Define it.
3891
b6680a0e
GM
38922000-01-31 Gerd Moellmann <gerd@gnu.org>
3893
2cb750ba
GM
3894 * xterm.c (xim_open_dpy): Remove unused local variable.
3895
74e9213b
GM
3896 * emacs.c (USAGE): Use term `display options' instead of `X
3897 options'.
3898
3899 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3900 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3901
b6680a0e
GM
3902 * fns.c (sweep_weak_table): New function.
3903 (sweep_weak_hash_tables): Use it. Keep on marking until there
3904 is no more change.
3905
994c5afe
GM
39062000-01-30 Gerd Moellmann <gerd@gnu.org>
3907
3908 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3909 that XTread_socket does not crash by trying to call XNoOp on a
3910 closed display.
427ec082 3911
f00276e3
JR
39122000-01-30 Jason Rumney <jasonr@gnu.org>
3913
3914 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3915 Change selected_frame to SELECTED_FRAME ().
3916 (w32_console_mouse_position): Remove #ifndef MULE from around
3917 `insist' parameter.
3918
3919 * makefile.nt: Remove dosfns.obj.
3920
3921 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3922
3923 * w32fns.c (w32_defined_color): Check for valid frame before
3924 applying gamma correction. Eliminate dependency on frame elsewhere.
3925 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3926 (w32_to_x_font): Use resx and resy not height_in and width_in.
3927 (x_to_w32_font): Doc fix.
3928 (xlfd_strip_height): New function to strip and return font height.
3929 (w32_font_match): Compare height separately from rest of xlfd
3930 spec, using xlfd_strip_height.
3931
3932 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3933 width_in. Use w32_defined_color in place of defined_color.
3934
3935 * w32faces.c: Merge more of DOS and X specifics in preparation for
3936 merge with xfaces.c.
3937 (defined_color): Remove FIXME comment.
3938 (tty_color_name): Provide w32-specific function.
3939 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3940
3941 * w32console.c (turn_on_face, turn_off_face): Removed.
3942 (w32_face_attributes): New function.
3943 (Global_variables): Reduce scope where possible.
3944 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3945 fill attribute.
3946 (hl_mode): Don't modify text attributes.
3947 (write_glyphs): Don't do anything if len <= 0. Use
3948 w32_face_attributes to get attributes for drawing. Write
3949 terminating codes using char_attr_normal.
3950 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3951 (update_begin, update_end): Likewise.
3952 (vga_stdcolor_name): New function.
3953 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3954 (Fset_screen_color): Remove char_attr_reverse.
3955
b08e8bb2
GM
39562000-01-29 Gerd Moellmann <gerd@gnu.org>
3957
3958 * xfns.c (xic_set_preeditarea): Take window parameter and
3959 window-relative pixel-positions.
3960
3961 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3962 is its frame's selected window.
3963 (xim_instantiate_callback): Likewise.
3964
3965 * xfns.c (x_create_im): Removed.
3966 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3967 (supported_xim_styles): Renamed from supported_styles.
3968 (best_xim_style): Renamed from best_style.
3969 (create_frame_xic): Renamed from xic_create_frame.
3970 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3971
b08e8bb2
GM
39722000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3973
3974 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3975 our frames, call XFilterEvent with 2nd parameter `None'.
3976 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3977 returning XBufferOverflow.
3978 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3979 area.
3980 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3981 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3982 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3983 (xim_initialize, xim_close)
3984 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3985 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3986 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3987 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3988
3989 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3990 and `xim_styles'.
3991 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3992 `xic_style' and `xic_xfs'.
3993 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3994 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3995 (FRAME_XIM): Removed.
3996
3997 * xfns.c (supported_styles): New variable.
3998 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3999 (xic_create_xfontset, best_style, xic_create_frame)
4000 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4001 (xic_set_xfontset): New functions.
4002
142e109c
DL
40032000-01-28 Dave Love <fx@gnu.org>
4004
4005 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4006
4007 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4008
b02786f9
GM
40092000-01-28 Gerd Moellmann <gerd@gnu.org>
4010
d060bc9f
GM
4011 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4012 for *scratch* if it already existed.
4013
b02786f9
GM
4014 * emacs.c (USAGE): New macro.
4015 (main): Use it to display usage information.
4016
2c52d7e4
EZ
40172000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4018
4019 Support for the menu-help feature:
4020
4021 * msdos.h: Change prototypes of XMenuAddSelection and
4022 XMenuActivate.
4023
4024 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
4025 part of the line to the termscript file.
4026 (IT_clear_to_end): Clear the entire line, not just its beginning.
4027 (menu_help_message, prev_menu_help_message): New variables.
4028 (IT_menu_make_room): Make room for the help_text member.
4029 (IT_menu_display): New argument disp_help; all callers changed.
4030 If disp_help is non-zero, store the help text of the active menu
4031 item in menu_help_message.
4032 (XMenuAddPane): Initialize the help_text member to NULL.
4033 (XMenuAddSelection): New argument help_text. Store it in the
4034 XMenu structure.
4035 (XMenuActivate): New argument help_callback. If the value of
4036 menu_help_message has changed since the last time, display the
4037 menu help message text while waiting for the mouse to move. Clear
4038 the echo area before exiting.
4039 (XMenuDestroy): Free the help_text member.
4040
ffe0bcd1
GM
40412000-01-27 Gerd Moellmann <gerd@gnu.org>
4042
4043 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
4044 XMenuAddSelection. Pass help callback to XMenuActivate.
4045 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
4046
50dbd23f
EZ
40472000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
4048
4049 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
4050 and EMACS_SET_USECS.
4051
f5941bf8
GM
40522000-01-26 Dave Love <fx@gnu.org>
4053
6c67ddee
DL
4054 * editfns.c (Fchar_after, Fchar_before): Doc fix.
4055
f5941bf8
GM
4056 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
4057 an error may be signalled.
4058
9e49c990
GM
40592000-01-26 Gerd Moellmann <gerd@gnu.org>
4060
fc3cb460
GM
4061 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
4062 LD_SWITCH_SYSTEM inherited from irix5-0.h.
4063
9e49c990
GM
4064 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
4065
d0c037d8
GM
40662000-01-25 Gerd Moellmann <gerd@gnu.org>
4067
4068 * charset.c (Fstring): If there is a multibyte char among
4069 the args, always return a multibyte string.
4070
e12489f9
GM
40712000-01-25 Gerd Moellmann <gerd@gnu.org>
4072
4073 * sysdep.c (sys_select): Turn atimers off and on instead of
4074 recording and restoring old alarm handler
4075
4076 * process.c (toplevel): Include atimer.h.
4077 (create_process_1): Rewritten.
4078 (create_process): Use atimers instead of alarm.
4079 (wait_reading_process_input) [hpux]: Turn atimers off instead
4080 of turning off SIGALRM.
4081 (wait_reading_process_input): Turn off atimers instead off
4082 calling stop_polling.
4083
4084 * emacs.c (main): Call init_atimer.
4085
4086 * keyboard.c (toplevel): Include systime.h and atimer.h.
4087 (polling_for_input): Removed because unused.
4088 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4089 (poll_timer): New variable.
4090 (poll_for_input, poll_for_input_1): New functions.
4091 (start_polling, stop_polling): Rewritten.
4092
4093 * keyboard.h (polling_for_input): Removed.
427ec082 4094
e12489f9
GM
4095 * atimer.h, atimer.c: New files.
4096
4097 * Makefile.in (obj): Add atimer.o.
4098 (atimer.o): New target.
4099
4100 * blockinput.h (pending_atimers): Add extern declaration.
4101 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4102
4103 * lisp.h (popup_activated_flag): Add extern declaration.
4104
4105 * xmenu.c (popup_activated_flag): Make externally visible.
4106 (popup_activate_callback) [USE_MOTIF]: Increment
4107 popup_activated_flag.
4108 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4109
4110 * xterm.c (toplevel): Include atimer.h.
4111 (toolkit_scroll_bar_interaction): New variable.
4112 (Fxt_process_timeouts): Removed.
4113 (x_process_timeouts): New function.
4114 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4115 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4116 (x_make_frame_visible): Call poll_for_input_1 instead of
4117 input_poll_signal. Don't call alarm.
4118 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4119
1e5279b9
DL
41202000-01-24 Dave Love <fx@gnu.org>
4121
6c67ddee 4122 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4123 Don't use -cckr -- apparently not now necessary.
4124
edf6aeb8
EZ
41252000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4126
4127 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4128 screen boundary.
4129
9badad41
JR
41302000-01-23 Jason Rumney <jasonr@gnu.org>
4131
4132 * w32fns.c (w32_defined_color): Apply gamma correction before
4133 trying to map to the palette.
4134 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4135 to w32_clear_rect.
4136
4137 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4138 here. Callers changed to always pass real device context.
4139 (w32_draw_bitmap): Likewise.
4140 (w32_get_glyph_overhangs): Likewise.
4141 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4142 one.
4143 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4144 pfnSetScrollInfo and SetScrollRange.
4145 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4146 back into MULE characters after decoding them.
4147 (x_get_glyph_face_and_encoding): Likewise.
4148 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4149 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4150 (x_produce_glyphs): Calculate per char metrics for a character
4151 that we know exists in default font when font_not_found_p is true.
4152
63bd786b
JR
41532000-01-22 Jason Rumney <jasonr@gnu.org>
4154
4155 * makefile.nt (intervals.obj, composite.obj): New modules.
4156 (composite.h): Added as dependency where appropriate.
4157
4158 * w32gui.h (XGCValue): New struct for emulating X GCs.
4159
4160 * w32term.h (XCharStruct): New struct for emulating X.
4161
4162 * w32console.c (turn_on_face, turn_off_face): New functions.
4163 (change_line_highlight): New prototype for new redisplay.
4164 (write_glyphs): Support multibyte text. Support faces.
4165
4166 * w32faces.c: Complete rewrite for new redisplay based on new
4167 xfaces.c.
4168
4169 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4170 throughout. struct frame * in place of FRAME_PTR.
4171 Skeleton support for images, toolbars, tooltips from xfns.c.
4172 (Fx_create_frame): Use system default for default scroll bar
4173 width.
4174 (w32_get_arg): Renamed from x_get_arg.
4175 (Fx_file_dialog): New function.
4176 (w32_list_fonts): Check cache before asking system.
4177 (Vw32_enable_synthesized_fonts): New variable.
4178 (Vw32_enable_italics): Obsolete, removed.
4179
4180 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4181 Use SELECTED_FRAME macro.
4182
4183 * w32menu.c: Add skeleton support for help strings on menus.
4184 (add_menu_item): Native checkbox and radio support added, but not
4185 yet enabled due to bugs.
4186 (push_menu_item): Add parameters type, selection and help.
4187 Callers updated.
4188 Formatting changes to reduce unnecessary diffs with xmenu.c.
4189
4190 * w32select.c (Fw32_set_clipboard_data): Update call to
4191 find_charset_in_str.
4192
4193 * w32term.c: Complete rewrite for new redisplay based on new
4194 xterm.c with necessary sections merged back in from old w32term.c.
4195
6ffd3cf7 41962000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4197
4198 * data.c (set_internal): Further fix in same criterion.
4199
6ffd3cf7 42002000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4201
4202 * data.c (set_internal): Fix the criteria for whether
4203 to swap out the old cached binding.
4204
60af03f1
DL
42052000-01-19 Dave Love <fx@gnu.org>
4206
4207 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4208
f9be074f
KH
42092000-01-18 Kenichi Handa <handa@etl.go.jp>
4210
4211 * regex.c (re_compile_fastmap): While checking a range table for
4212 `charset', skip flag bits for a character class correctly.
4213
52b8dbf9
GM
42142000-01-17 Gerd Moellmann <gerd@gnu.org>
4215
d36100c9
GM
4216 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4217
52b8dbf9
GM
4218 * xfns.c (x_window): Call lw_create_widget with new parameter
4219 list.
4220
4221 * widget.c (EmacsFrameSetCharSize): Change size of children first
4222 because of problems with main window geometry management under
4223 Lesstif.
4224
4225 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4226 MENU_ITEMS_ITEM_.*.
4227 (MENU_ITEMS_ITEM_HELP): New enumerator.
4228 (push_menu_item): Add parameter HELP. Record help in menu_items.
4229 (single_menu_item, single_submenu, list_of_items): Call
4230 push_menu_item with new parameter.
4231 (single_submenu): Set help string in widget value.
4232 (menu_highlight_callback): New function.
4233 (set_frame_menubar): Call lw_create_widget with new
4234 parameter list.
4235 (xmenu_show, xdialog_show): Ditto.
4236
3139018f
GM
42372000-01-13 Gerd Moellmann <gerd@gnu.org>
4238
4239 * sound.c (Fplay_sound): Improve doc string.
4240
83c8f461
RS
42412000-01-11 Richard M. Stallman <rms@gnu.org>
4242
4243 * lisp.h (set_internal): Enter the new arg.
4244
4245 * eval.c (specbind): Record buffer-local variables specially,
4246 indicating which buffer's binding was saved.
4247 (unbind_to): Restore buffer-local variables specially
4248 in the proper buffer.
4249
4250 * data.c (set_internal): New arg BUF.
427ec082 4251
83c8f461
RS
4252 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4253 * data.c (Fset): Pass new arg to set_internal.
4254 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4255
1fab1775
GM
42562000-01-11 Gerd Moellmann <gerd@gnu.org>
4257
4258 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4259 xprintsym.
4260
83c8f461 42612000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4262
4263 * minibuf.c (Ftry_completion): Doc fix.
4264
7a85e4df
GM
42652000-01-11 Gerd Moellmann <gerd@gnu.org>
4266
4267 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4268 vector, too.
4269
a970dae4
AS
42702000-01-11 Andreas Schwab <schwab@suse.de>
4271
4272 * coding.c (code_convert_region): Initialize total_skip.
4273
c65d14ee
DL
42742000-01-08 Dave Love <fx@gnu.org>
4275
4276 * eval.c (Fuser_variable_p): Check customizability too.
4277
834938d2
GM
42782000-01-07 Gerd Moellmann <gerd@gnu.org>
4279
4280 * minibuf.c (Fcompleting_read): Doc fix.
4281
e0303cd6
GM
42822000-01-05 Gerd Moellmann <gerd@gnu.org>
4283
8a26744b
GM
4284 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4285 -L /usr/local/lib.
4286
e0303cd6
GM
4287 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4288 Check that input style is supported before trying to create an
4289 IC for it.
4290 (x_window): Call x_create_im.
427ec082 4291
2e471eb5
GM
42922000-01-04 Gerd Moellmann <gerd@gnu.org>
4293
560a7bd2
GM
4294 * xfns.c (current_gif_memory_src): New variable.
4295 (gif_load): Record the address of the current memory source
4296 in current_gif_memory_src.
4297 (gif_read_from_memory): Use current_gif_memory_src.
4298
f9ee84a3
GM
4299 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4300 macros statement form.
4301
d1299cde
GM
4302 * sound.c (struct sound): Renamed from struct sound_file.
4303 (struct sound): Add members `data' and `header_size'.
4304 (enum sound_attr): Add SOUND_DATA.
4305 (current_sound, current_sound_device): Variables renamed from
4306 sound_file and sound_device.
4307 (parse_sound): Parse :data.
4308 (parse_sound): Handle sound data in strings.
4309 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4310 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4311 needed header size.
4312 (wav_play, au_play): Play sounds from string data.
4313
2e471eb5
GM
4314 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4315
4316 * lisp.h: Add prototype for allocate_string_data.
4317
4318 * alloc.c (Fgarbage_collect): Return number of live and free
4319 strings.
4320
4321 * alloc.c (mark_buffer): Remove code in #if 0.
4322 (gc_sweep): Ditto.
4323 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4324 (strings_consed): New variable.
4325 (allocate_string): Set it.
4326 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4327 (Fmemory_use_counts): Return strings_consed. Use Flist.
4328
4329 * alloc.c: General cleanup in comments etc. Remove conditional
4330 compilation for `standalone'.
4331
4332 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4333
4334 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4335 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4336 (DONT_COPY_FLAG): Removed.
4337 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4338 (struct sdata, struct sblock): New
4339 (struct string_block): Rewritten.
4340 (STRINGS_IN_STRING_BLOCK): New macro.
4341 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4342 (large_sblocks, string_blocks, string_free_list): New variables.
4343 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4344 (init_strings): Rewritten.
4345 (allocate_string, allocate_string_data, compact_small_strings)
4346 (free_large_strings, sweep_strings): New functions.
4347 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4348 (struct string_block_head, current_string_block)
4349 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4350 (STRING_PAD): Removed.
4351 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4352 (Fgarbage_collect): Don't set mark bit in large strings.
4353 (mark_object): Mark strings differently. Mark symbol names
4354 differently.
4355 (survives_gc_p): Test marked strings differently.
427ec082 4356 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4357 symbol names.
4358 (compact_strings): Removed.
4359
42608ba8
EZ
43602000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4361
4362 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4363 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4364
e0a09e1a
KH
43652000-01-04 Kenichi Handa <handa@etl.go.jp>
4366
dd9f0750 4367 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4368 in a non-empty buffer.
dd9f0750 4369
3c0f3b15 4370 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4371
44cd3ae5
GM
43722000-01-03 Gerd Moellmann <gerd@gnu.org>
4373
4374 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4375 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4376
4377 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4378
c182a70f
EZ
43792000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4380
4381 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4382 need to test for MSDOS frames.
4383
24480d5b
EZ
43842000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4385
4386 * dosfns.c (unspecified_colors): Remove.
4387 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4388 unspecified_bg.
4389 (msdos_stdcolor_name): Return strings for unspecified fore- and
4390 back-ground colors.
4391
4392 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4393 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4394 (tty_color_name): Return Lisp strings for unspecified fore- and
4395 back-ground colors.
4396 (Finternal_set_lisp_face_attribute): Remove the special treatment
4397 for Qunspecified_{f,b}g.
4398 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4399 string.
4400
047f434a
GM
44012000-01-03 Gerd Moellmann <gerd@gnu.org>
4402
4403 * xdisp.c (reseat_at_next_visible_line_start): Position before
4404 newline only if ending up on a newline.
4405 (next_element_from_ellipsis): Return success. Handle case of
4406 displaying no ellipsis. Fix case of ellipsis defined in display
4407 table.
4408 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4409 returns 0.
4410
d684c676
EZ
44112000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4412
4413 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4414 (Fcolor_supported_p): Renamed from face-color-supported-p.
4415
5fe1d139
EZ
44162000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4417
4418 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4419 list of colors renamed to tty-defined-color-alist.
4420 (tty_color_name): Pass the frame to tty-color-by-index.
4421 (realize_tty_face): tty-color-alist is now a function which
4422 accepts the frame as argument.
4423
4424 * term.c (Ftty_display_color_p): Accept an optional argument
4425 FRAME.
4426
816be8b8
EZ
44272000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4428
4429 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4430 encode_terminal_code.
4431
b635321e
EZ
44322000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4433
4434 * dispnew.c (mode_line_string): Support termcap frames as well.
4435
9b784e96
GM
44362000-01-01 Gerd Moellmann <gerd@gnu.org>
4437
27189709
GM
4438 * syntax.c (Fforward_word): Undo previous change.
4439
4440 * editfns.c (Fconstrain_to_field): Don't constrain if
4441 inhibit-field-text-motion is non-nil.
4442 (Fline_beginning_position): Undo previous change.
4443 (Fline_end_position): Ditto.
4444
4445 * syntax.c (Fforward_word): Notice field boundaries only if
4446 inhibit-field-text-motion is nil.
4447
4448 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4449
4450 * editfns.c (Vinhibit_field_text_motion): New variable.
4451 (inhibit-field-text-motion): New DEFVAR_LISP.
4452 (Fline_beginning_position, Fline_end_position): Notice field
4453 boundaries only if inhibit-field-text-motion is nil.
4454
45158a91
GM
4455 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4456 All calls adjusted.
4457 (x_build_heuristic_mask): Likewise.
4458 (xbm_load_image_from_file): Change error output.
4459 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4460 (gif_load, gs_load, x_kill_gs_process): Ditto.
4461
9b784e96
GM
4462 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4463 color indices when accessing raster pixels.
63cec32f
GM
4464 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4465 one of :file or :data.
4466 (enum pbm_keyword_index): Add PBM_DATA.
4467 (pbm_format): Add :data.
4468 (pbm_image_p): Allow either :file or :data.
4469 (pbm_read_file): New function.
4470 (pbm_scan_number): Rewritten to read from string.
4471 (pbm_load): Support :data.
9b784e96 4472
5ad6a5fb
GM
44731999-12-31 Gerd Moellmann <gerd@gnu.org>
4474
4475 * xfns.c: New image functions adapted to Emacs conventions.
4476 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4477 variable `file'.
4478
63448a4d
WP
44791999-12-31 William M. Perry <wmperry@aventail.com>
4480
4481 * xfns.c (jpeg_format): Added the :data keyword
4482 (jpeg_image_p): JPEG is valid with :file _or_ :data
4483 (jpeg_memory_src): Defined new JPEG image source to read from a
4484 memory buffer.
4485 (jpeg_load): Pay attention to the :data keyword if specified.
4486 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4487 found.
4488 (png_format): Added the :data keyword
4489 (png_image_p): PNG is valid with :file _or_ :data
4490 (png_read_from_memory): New PNG read function to read from a
4491 memory buffer.
4492 (png_load): Pay attention to the :data keyword if specified. Uses
4493 png_set_read_fn() instead of png_init_io() if specified.
4494 (tiff_format): Added the :data keyword for TIFF images.
4495 (tiff_image_p): TIFF is valid with :file _or_ :data
4496 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4497 from a memory buffer.
4498 (tiff_load): Pay attention to the :data keyword if specified.
4499 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4500 (gif_format): Added the :data keyword
4501 (gif_image_p): GIF is valid with :file _or_ :data
4502 (gif_read_from_memory): New GIF input function to read from a
4503 memory buffer.
c65d14ee 4504 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4505 instead of DGifOpenFileName() if specified.
4506
c880678e
GM
45071999-12-31 Gerd Moellmann <gerd@gnu.org>
4508
4509 * xdisp.c (next_element_from_buffer): Change assertion at the end
4510 because it doesn't hold when there's an overlay string at the end
4511 from which we deliver an image.
4512
8ccb9a54
EZ
45131999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4514
4515 * msdos.c (IT_update_begin): Don't dereference members of struct
4516 window for deleted windows.
4517
12ce2351
GM
45181999-12-30 Gerd Moellmann <gerd@gnu.org>
4519
a915c648
GM
4520 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4521 a hook, and the hook has a non-nil `no-self-insert' property, let
4522 the return value of the hook specify whether an expansion took
4523 place. If it returns nil, no expansion has been performed.
4524
12ce2351
GM
4525 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4526 differently.
4527
04ee4f45
EZ
45281999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4529
4530 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4531
7f4bc0c3
EZ
45321999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4533
4534 * dispnew.c (mode_line_string): Support MS-DOS frames.
4535
dac204bc
GM
45361999-12-29 Gerd Moellmann <gerd@gnu.org>
4537
4538 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4539
7b712ad8
KH
45401999-12-29 Kenichi Handa <handa@etl.go.jp>
4541
4542 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4543 to signal_after_change.
4544
adb9900f
EZ
45451999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4546
41ad069b
EZ
4547 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4548 dimensions changed, invalidate the mouse highlight info.
4549 (disable_mouse_highlight, help_echo, previous_help_echo): New
4550 variables.
4551 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4552 (fast_find_position, IT_note_mode_line_highlight)
4553 (IT_note_mouse_highlight): New functions.
4554 (IT_update_begin): If the redisplay affects the window where the
4555 mouse highlight is, clear the highlight. If the frame where the
4556 highlight was displayed was killed, invalidate the highlight
4557 info.
4558 (IT_update_end): Reset the highlight flag. Reset the mouse
4559 highlight-defer flag.
4560 (IT_frame_up_to_date): New function, if mouse highlight was
4561 deferred due to GC, do it now.
4562 (internal_terminal_init): Initialize mouse-highlight related
4563 members of the_only_x_display. Assign IT_frame_up_to_date to
4564 frame_up_to_date_hook.
4565 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4566 help_echo changed value, generate a HELP_EVENT event.
4567 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4568
adb9900f
EZ
4569 * msdos.h (struct display_info): New.
4570 (struct x_output): Add the display_info member.
4571 (FRAME_X_DISPLAY_INFO): New macro.
4572
481b5054
GM
45731999-12-28 Gerd Moellmann <gerd@gnu.org>
4574
4575 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4576 if MODIFF > 1.
6448a6b3 4577 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4578
4579 * buffer.c (modify_overlay): Always compute unchanged info.
4580
a2882b0d
KH
45811999-12-27 Kenichi Handa <handa@etl.go.jp>
4582
4583 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4584
89ba5b5f
KH
45851999-12-27 Kenichi Handa <handa@etl.go.jp>
4586
4587 The following changes are to use more bits for face IDs.
4588
4589 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4590 lowest 8 bits are single byte character code, the bits above are
4591 face ID.
481b5054 4592 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4593 above.
481b5054
GM
4594 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4595 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4596
4597 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4598 of GLYPH_MASK_CHAR.
4599
4600 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4601 of GLYPH_MASK_CHAR.
4602
4603 * dispextern.h (struct glyph): Make face_id and padding_p the top
4604 level members. Change members in union `u'.
4605 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4606 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4607 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4608 (CHAR_GLYPH_PADDING_P): Likewise.
4609 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4610 characters.
4611
481b5054 4612 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4613 for the change of struct glyph.
4614 (line_draw_cost): Adjusted for the change of
4615 GLYPH_FROM_CHAR_GLYPH.
4616 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4617
4618 * term.c (encode_terminal_code): Adjusted for the change of struct
4619 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4620 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4621 change of struct glyph.
4622
4623 * xdisp.c: All codes adjusted for the change of struct glyph.
4624
4625 * xterm.c: All codes adjusted for the change of struct glyph.
4626
5bcd116c
KH
46271999-12-27 Kenichi Handa <handa@etl.go.jp>
4628
4629 * composite.h (struct composition): Change the order of declaring
4630 members to reduce the byte size of the structure.
4631
f21b06b7
GM
46321999-12-25 Gerd Moellmann <gerd@gnu.org>
4633
4634 * search.c (looking_at_1): Reset immediate_quit before modifying
4635 global data.
4636
e36557c9
KH
46371999-12-24 Kenichi Handa <handa@etl.go.jp>
4638
4639 * process.c (read_process_output): Fix the arg FROM to
4640 update_compositions.
4641
83c8f461 46421999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4643
4644 * search.c (Freplace_match): For nonliteral replacement in buffer,
4645 construct all the new text first, then insert all at once.
4646
0b863bd9
DL
46471999-12-22 Dave Love <fx@gnu.org>
4648
4649 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4650
6d8e8ef3
GM
46511999-12-22 Gerd Moellmann <gerd@gnu.org>
4652
28d7281d
GM
4653 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4654 lead to size changes to after the X window has been created.
4655
e22ef6eb 4656 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4657 variable in xassert.
4658
8affcced
KH
46591999-12-22 Kenichi Handa <handa@etl.go.jp>
4660
4661 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4662 only when the frame is not for a window system.
8affcced 4663
f2be1146
GM
46641999-12-22 Gerd Moellmann <gerd@gnu.org>
4665
deca1348
GM
4666 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4667 redisplay after changing the multibyteness of a buffer.
4668
f2be1146
GM
4669 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4670 frame's X window to XFilterEvent instead of None because that's
4671 the X window for which the IC was created. This makes dead
4672 accents work when the pointer is not in Emacs' frame.
4673 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4674
a744a2ec
DL
46751999-12-20 Dave Love <fx@gnu.org>
4676
4677 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4678
9e6985ed
GM
46791999-12-19 Gerd Moellmann <gerd@gnu.org>
4680
4681 * eval.c (debugger_may_continue): New variable.
4682 (syms_of_eval): Add a DEFVAR_BOOL for it.
4683 (call_debugger): Bind it.
4684
3b620731
EZ
46851999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4686
4687 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4688 fp->tty_reverse_p is set, unless the computed colors are identical
4689 to frame colors. Print both original and computed colors to
4690 termscript file.
4691 (IT_write_glyphs): Track the changes in handling of composite
4692 characters.
4693 (IT_set_frame_parameters): Don't set frame colors from
4694 unspecified-fg and unspecified-bg pseudo-colors.
4695
0f9a51c4
DL
46961999-12-17 Dave Love <fx@gnu.org>
4697
4698 * data.c (Fkeywordp): New function.
4699 (syms_of_data): Install it.
4700
363e4e42
EZ
47011999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4702
4703 * xfaces.c (tty_defined_color): Fix last change.
4704
cfad01b4
GM
47051999-12-15 Gerd Moellmann <gerd@gnu.org>
4706
4707 * xdisp.c (redisplay_window) <optional new window start>: Check
4708 that window start is in [BEGV..ZV].
4709
f9d2fdc4
EZ
47101999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4711
4712 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4713 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4714
4715 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4716 (syms_of_xfaces): Initialize and staticpro them.
4717 (tty_defined_color): If the color name is unspecified-fg or
4718 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4719 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4720 (tty_color_name): If the color pixel value is either
4721 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4722 Qunspecified_fg or Qunspecified_bg, respectively.
4723 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4724 and Qunspecified_bg for foreground and background colors.
4725 (realize_default_face): If the foreground and background colors
4726 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4727 (realize_tty_face): By default, set the face colors to
4728 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4729 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4730 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4731 Reverse the colors if the default colors were reversed.
4732
4733 * dispnew.c (init_display): Initialize the frame pixels of the
4734 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4735 FACE_TTY_DEFAULT_BG_COLOR.
4736
4737 * term.c (turn_on_face): If the default fore- and background
4738 colors are reversed, enter inverse video mode. Don't send color
4739 escape sequences for unspecified foreground and background colors.
4740 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4741
4742 * dosfns.c (unspecified_colors): New variable.
4743 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4744 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4745 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4746 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4747 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4748 Qunspecified_bg, respectively.
4749
4750 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4751 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4752
e19539f1
KH
47531999-12-15 Kenichi Handa <handa@etl.go.jp>
4754
4755 * coding.c (code_convert_region): Fix the secoding arg to
4756 update_compositions.
4757
5ec14d3c
KH
47581999-12-15 Kenichi Handa <handa@etl.go.jp>
4759
4760 The following changes are for the new composition mechanism. We
4761 have deleted `composition' charset and composite characters,
4762 instead introduced a special text property `composition'.
4763
4764 * Makefile.in (INTERVAL_SRC): Include composite.h.
4765 (INTERVAL_OBJ): Include composite.o.
4766 (SOME_MACHINE_OBJECTS): Include composite.o.
4767 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4768 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4769 Depend on composite.h.
4770 (doc.o): Depend on charset.h.
4771 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4772 (composite.o): New target.
427ec082 4773
5ec14d3c
KH
4774 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4775
4776 * callproc.c (Fcall_process): Call code_convert_string to encode
4777 arguments. Use CODING_REQUIRE_DECODING to check if the process
4778 output should be decoded.
4779
4780 * casefiddle.c: Include composite.h.
4781 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4782 multibyte character. Adjusted for the change of CHAR_STRING.
4783 (casify_region): Likewise. Call update_compositions.
4784
4785 * category.h (CATEGORY_SET): Delete codes for a composite
4786 character.
4787
4788 * category.c (word_boundary_p): Delete codes for a composite
4789 character.
4790 (Fmake_category_table): New function.
4791 (syms_of_category): Defsubr it.
4792
4793 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4794 (ccl_driver): Delete codes for a composite character.
4795
4796 * charset.h: In this entry, just `Modified' means that codes for a
4797 composite character is deleted.
4798 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4799 (charset_composition) (MIN_CHAR_COMPOSITION)
4800 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4801 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4802 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4803 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4804 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4805 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4806 Modified.
4807 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4808 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4809 non_ascii_char_to_string.
4810 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4811 (STRING_CHAR_AND_LENGTH): Likewise.
4812 (FETCH_CHAR_ADVANCE): New macro.
4813 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4814 (MAX_MULTIBYTE_LENGTH): New macro.
4815 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4816 (find_charset_in_str): Argument adjusted.
4817 (CHAR_LEN): Modified.
427ec082 4818
5ec14d3c
KH
4819 * charset.c: In this entry, just `Modified' means that codes for a
4820 composite character is deleted.
4821 (Qcomposition) (leading_code_composition)
4822 (charset_composition) (min_composite_char) (cmpchar_table)
4823 (cmpchar_table_size) (n_cmpchars): Deleted.
4824 (SPLIT_COMPOSITE_SEQ): Deleted.
4825 (SPLIT_MULTIBYTE_SEQ): Modified.
4826 (char_to_string): Renamed from non_ascii_char_to_string.
4827 Modified.
4828 (string_to_char): Renamed from string_to_non_ascii_char.
4829 (split_string): Renamed from split_non_ascii_string.
4830 (char_printable_p) (Fsplit_char)
4831 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4832 (char_bytes) (Fchar_width) (strwidth): Modified.
4833 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4834 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4835 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4836 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4837 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4838 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4839 (Fcmpchar_cmp_count): Deleted.
4840 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4841 (init_charset_once): Modified.
4842 (syms_of_charset): Modified.
4843
4844 * cmds.c (internal_self_insert): Adjusted for the change of
4845 CHAR_STRING.
4846
4847 * coding.h (emacs_code_class_type): Delete the member
4848 EMACS_leading_code_composition.
4849 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4850 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4851 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4852 (COMPOSING_WITH_RULE_P): Macros deleted.
4853 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4854 macros.
4855 (struct composition_data): New structure.
4856 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4857 (struct coding_system): New members composition_rule_follows,
4858 cmp_data, cmp_data_start, cmp_data_index.
4859 (coding_save_composition) (coding_free_composition_data)
4860 (coding_adjust_composition_offset): Extern them.
4861
4862 * coding.c: Include composite.h.
4863 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4864 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4865 of multibyte code here.
4866 (DECODE_CHARACTER_DIMENSION2): Likewise.
4867 (detect_coding_emacs_mule): Change the case label from
4868 EMACS_leading_code_composition to 0x80.
4869 (detect_coding_iso2022): Handle new composition sequence.
4870 (DECODE_ISO_CHARACTER): Likewise.
4871 (check_composing_code): Deleted.
4872 (coding_allocate_composition_data): New function.
4873 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4874 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4875 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4876 (decode_coding_iso2022): Handle new composition sequence.
4877 (ENCODE_ISO_CHARACTER): Don't check composition here.
4878 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4879 (ENCODE_COMPOSITION_NO_RULE_START)
4880 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4881 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4882 (ENCODE_COMPOSITION_FAKE_START): New macro.
4883 (encode_coding_iso2022): Handle new composition sequence.
4884 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4885 (encode_coding_sjis_big5): Ignore composition.
4886 (setup_coding_system): Initialize new members of struct
4887 coding_system. Enable composition only when the coding system has
4888 `composition' property t.
4889 (coding_free_composition_data) (coding_adjust_composition_offset)
4890 (coding_save_composition) (coding_restore_composition): New
4891 functions.
4892 (code_convert_region): Call coding_save_composition for encoding
4893 and coding_allocate_composition_data for decoding. Don't skip
4894 ASCII characters if we handle composition on encoding. Call
4895 signal_after_change with Check_BORDER.
4896 (code_convert_string): Call coding_save_composition for encoding
4897 and coding_allocate_composition_data for decoding. Don't skip
4898 ASCII characters if we handle composition on encoding.
4899 (code_convert_string1): Set Vlast_coding_system_used after calling
4900 code_convert_string.
4901 (code_convert_string_norecord): Disable composition.
4902 (Fset_terminal_coding_system_internal): Likewise.
4903 (Fset_safe_terminal_coding_system_internal): Likewise.
4904 (Fset_keyboard_coding_system_internal): Likewise.
4905 (init_coding_once): Set emacs_code_class[0x80] to
4906 EMACS_invalid_code.
4907
4908 * composite.h: New file.
4909
4910 * composite.c: New file.
4911
4912 * data.c (Faref): Delete codes for a composite character..
4913 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4914
4915 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4916 (struct glyph): Add new sub-structure cmp to the union `u'.
4917 (enum display_element_type): New member IT_COMPOSITION.
4918 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4919 (struct it): New members cmp_id, cmp_len.
4920
4921 * dispnew.c (direct_output_forward_char): Check point moving into
4922 or out of a composition. If so, give up direct method.
4923
4924 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4925
4926 * editfns.c (Fchar_to_string): Adjusted for the change of
4927 CHAR_STRING.
4928 (general_insert_function): Likewise.
4929 (Finsert_char): Likewise.
4930 (Fsubst_char_in_region): Likewise. Call update_compositions.
4931 (Ftranslate_region): Call update_compositions.
4932 (Ftranspose_regions): Call update_compositions.
4933
4934 * emacs.c (main): Call syms_of_composite.
4935
4936 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4937 CHAR_STRING.
4938 (Finsert_file_contents): Set Vlast_coding_system_used before
4939 calling signal_after_change. Call update_compositions if some
4940 texts are inserted..
4941 (Fwrite_region): Adjusted for the change of a_write and e_write.
4942 (a_write): Argument changed. Work based on character position,
4943 not byte position.
4944 (e_write): Argument changed. Handle new way of composition.
4945
4946 * fns.c (Flength): The length of char-table is MAX_CHAR.
4947 (concat): Adjusted for the change of CHAR_STRING.
4948 (Ffillarray): Adjusted for the change of CHAR_STRING.
4949 (Fset_char_table_default): Delete codes for a composite character.
4950 (hash_put): Return hash index.
4951
4952 * fontset.h (struct font_info): New member vertical_centering.
4953 (Vvertical_centering_font_regexp): Extern it.
4954
4955 * fontset.c (Vvertical_centering_font_regexp): New variable.
4956 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4957 Set Vignore_relative_composition to nil.
4958 (fs_load_font): Initialize `vertical_centering' of struct
4959 font_info.
4960
4961 * indent.c (check_composition): New function.
4962 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4963 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4964 (current_column_1): Handle new way of composition.
4965 (Fmove_to_column): Likewise.
4966 (compute_motion): Likewise.
4967
4968 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4969 (insert_char): Likewise.
4970 (insert): Call update_compositions.
4971 (insert_and_inherit): Likewise.
4972 (insert_before_markers): Likewise.
4973 (insert_before_markers_and_inherit): Likewise.
4974 (insert_from_string): Likewise.
4975 (insert_from_string_before_markers): Likewise.
4976 (insert_from_buffer): Likewise.
4977 (replace_range): Likewise.
4978 (count_combining_composition): Deleted.
4979 (count_combining_before): Delete codes for a composite character.
4980 (count_combining_after): Likewise.
4981 (del_range_1): Call update_compositions.
4982 (del_range_byte): Likewise.
4983 (del_range_both): Likewise.
4984 (Fcombine_after_change_execute): Likewise.
4985
4986 * intervals.h: Include composite.h.
4987 (get_property_and_range): Extern it.
4988 (Vtext_property_default_nonsticky): Extern it.
427ec082 4989
5ec14d3c
KH
4990 * intervals.c (adjust_intervals_for_insertion): To check stickines
4991 of properties, pay attention to text-property-default-nonsticky.
4992 (merge_properties_sticky): Likewise.
4993 (get_property_and_range): New function.
4994
4995 * keyboard.c (Vdisable_point_adjustment): New variable.
4996 (Vglobal_disable_point_adjustment): New variable.
4997 (syms_of_keyboard): Declare them as Lisp variables.
4998 (command_loop_1): Check them and call adjust_point_for_property if
4999 necessary.
5000 (adjust_point_for_property): New function.
5001
5002 * keymap.c (push_key_description): Adjusted for the change of
5003 CHAR_STRING.
5004 (Ftext_char_description): Likewise.
5005
5006 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
5007 (hash_put): Adjusted for the change of the definition.
5008 (signal_after_change): Likewise.
5009 (check_point_in_composition): Extern it.
5010
5011 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
5012 Delete a code that handles an invalid too-long multibyte sequence
5013 because we are now sure that we never encounter with such a
5014 sequence.
5015 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
5016 MAX_LENGTH_OF_MULTI_BYTE_FORM.
5017 (init_obarray): Likewise.
5018 (read1): Likewise. Adjusted for the change of CHAR_STRING.
5019
5020 * print.c (printchar): Adjusted for the change of CHAR_STRING.
5021
5022 * process.c: Include composite.h.
5023 (read_process_output): Call update_compositions.
5024
5025 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
5026
5027 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
5028
5029 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
5030 character.
5031
5032 * term.c (encode_terminal_code): Delete codes for a composite
5033 character. Adjusted for the change of CHAR_STRING.
5034 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
5035 Delete codes for a composite character.
5036
5037 * textprop.c (Vtext_property_default_nonsticky): New variable
5038 (syms_of_textprop): Declare it as a Lisp variable.
5039
5040 * window.c (Frecenter): Clear all caches of compositions.
5041
5042 * xdisp.c (it_props): Add an entry for composition.
5043 (face_before_or_after_it_pos): For composition, check face of a
5044 character after the composition.
5045 (handle_composition_prop): New function.
5046 (get_next_display_element): Adjusted for the change of
5047 CHAR_STRING.
5048 (set_iterator_to_next): Handle the case that it->method ==
5049 next_element_from_composition.
5050 (next_element_from_composition): New function.
5051 (message_dolog): Adjusted for the change of CHAR_STRING.
5052 (set_message_1): Likewise.
5053 (check_point_in_composition): New function.
5054 (reconsider_clip_changes): If point moved into or out of
5055 composition, set b->clip_changed to 1 to force updating of the
5056 screen.
5057 (disp_char_vector): Delete codes for a composite character.
5058 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
5059
5060 * xfaces.c (choose_face_fontset_font): Delete codes for a
5061 composite character.
5062 (realize_x_face): Likewise. Change a place to set local variable
5063 `f' to avoid a bug of GCC 2.8.1 on Solaris.
5064
5065 * xfns.c: Include intervals.h.
5066 (syms_of_xfns): Make `display' property nonsticky by default.
5067
5068 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5069 for find_charset_in_str.
5070
5071 * xterm.h (struct x_output): Change member font_baseline to
5072 baseline_offset.
5073
5074 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5075 for composition.
5076 (x_append_composite_glyph): New function.
5077 (VCENTER_BASELINE_OFFSET): New macro.
5078 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5079 of struct it for the composition. Cache pixel offsets in the
5080 struct composition. Delete codes for a composite character.
5081 Handle Vignore_relative_composition in composition code.
5082 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5083 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5084 (x_compute_glyph_string_overhangs): Likewise.
5085 (x_get_glyph_overhangs): Delete codes for a composite character.
5086 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5087 (x_draw_glyph_string_background): Likewise. Delete codes for
5088 checking s->gidx for a composition.
5089 (x_draw_glyph_string_foreground): Delete code for a composite
5090 character.
5091 (x_draw_composite_glyph_string_foreground): New function.
5092 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5093 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5094 (struct work): Deleted.
5095 (x_fill_composite_glyph_string): Argument changed. Mostly
5096 rewritten for that.
5097 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5098 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5099 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5100 (BUILD_GLYPH_STRINGS): For composition, call
5101 BUILD_COMPOSITE_GLYPH_STRING.
5102 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5103 f->output_data.x->font_baseline.
5104
c3c60f13
GM
51051999-12-14 Gerd Moellmann <gerd@gnu.org>
5106
5107 * xterm.c (show_mouse_face): Don't use updated_area, use
5108 TEXT_AREA.
5109
83c8f461 51101999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5111
5112 * minibuf.c (Fall_completions): Doc fix.
5113
83c8f461 51141999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5115
5116 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5117 has been changed by the Lisp code.
5118
d8eccf12
GM
51191999-12-12 Gerd Moellmann <gerd@gnu.org>
5120
5121 * xfns.c: Indentation fixes.
5122
ae56feae
SM
51231999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5124
5125 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5126
dfa1c6ae
GM
51271999-12-10 Gerd Moellmann <gerd@gnu.org>
5128
5129 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5130 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5131
5132 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5133 to frame.h.
5134
ec18280f
SM
51351999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5136
5137 * keyboard.c (Qratio): New symbol.
5138 (scroll_bar_parts): Add `Qratio' to it.
5139 (syms_of_keyboard): Init `Qratio'.
5140 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5141 * xterm.c (#includes): Allow compilation with only Xaw.
5142 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5143 (xt_action_hook): Replace XAW3D by XAW.
5144 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5145 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5146 Determine epsilon dynamically and don't try to be too clever.
5147 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5148 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5149 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5150 scrollbar (using `ratio').
5151 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5152 scrollbar we have so as to set it up more optimally and to fix
5153 xaw3d_arrow_scroll and xaw3d_pick_top.
5154 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5155 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5156 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5157 is not ignored, using a major gross hack.
5158 (x_initialize): Init default values for xaw3d_arrow_scroll and
5159 xaw3d_pick_top.
5160
83b6d970
DL
51611999-12-09 Dave Love <fx@gnu.org>
5162
5163 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5164
3648c842
GM
51651999-12-08 Gerd Moellmann <gerd@gnu.org>
5166
5167 * eval.c: Remove conditional compilation on `standalone'.
5168 (call_debugger): When entering the debugger while redisplaying,
5169 reset redisplaying_p, and go back to the top-level if the debugger
5170 returns.
5171
05e71564
GM
51721999-12-07 Gerd Moellmann <gerd@gnu.org>
5173
5174 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5175 basic faces are realized before trying to use face `menu'.
5176
5177 * window.c (delete_window): Block input for the time window
5178 matrices are being changed.
5179
b46cd536
DL
51801999-12-07 Dave Love <fx@gnu.org>
5181
5182 * lread.c (Fintern_soft): Fix newlines in doc string.
5183
96acb1f7
GM
51841999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5185
5186 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5187 duplicate definition of ElfW.
5188 (find_section): Copied from unexsgi.c.
5189 (unexec): Use find_section. Adjust whitespace. Initialize
5190 new_data2_offset based on old_data, not sbss (this fixes a bug on
5191 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5192 Adjust test for presence of .mdebug section to the new return
5193 value of find_section.
427ec082 5194
96acb1f7
GM
51951999-12-07 Gerd Moellmann <gerd@gnu.org>
5196
5197 * unexelf.c: Merge changes from 20.5.
5198 (unexec): Handle .lit4 and .lit8 unconditionally.
5199
5200 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5201 unexsgi.o again.
427ec082 5202
96acb1f7
GM
5203 * m/iris5d.h (UNEXEC): Likewise.
5204
7dae4502
SM
52051999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5206
5207 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5208 (syms_of_editfns): Register it.
5209 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5210 (del_range_1, del_range_2): Add a ret_string argument to
5211 request that the deleted text be returned.
5212 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5213 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5214 * casefiddle.c (casify_region): Update del_range_1 call.
5215 * coding.c (code_convert_region): Update del_range_2 call.
5216 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5217
397e4fae
GM
52181999-12-06 Gerd Moellmann <gerd@gnu.org>
5219
5220 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5221
3d973f71
GM
52221999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5223
5224 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5225
740e985f
EZ
52261999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5227
5228 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5229
5230 * insdel.c (adjust_markers_for_delete): Fix last change.
5231
2d764c78
EZ
52321999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5233
5234 Changes for automatic remapping of X colors on terminal frames:
5235
5236 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5237 frames.
5238 (Vface_tty_color_alist): Remove.
5239 (tty_defined_color): New function.
5240 (defined_color): Rewrite to support any type of frame.
5241 (tty_color_name): New function.
5242 (face_color_supported_p, Fface_color_gray_p,
5243 Fface_color_supported_p): Support non-X frames.
5244 (load_color): Enclose the color name in quotes, in the log
5245 messages. Remove DOS-specific version of load_color.
5246 (realize_tty_face): Take the supported colors from
5247 tty-color-alist. Support translation of X colors to the closest
5248 tty color, for both MSDOS and tty frames.
5249 [MSDOS]: Don't invert face colors if they were taken from the
5250 frame colors.
5251 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5252
5253 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5254 Define a mostly empty surrogate.
5255 (tty_display): Declare.
5256
5257 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5258 tty_display.
5259 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5260 frames when the frame's param_alist includes 'reverse.
5261 (tty_display): Define.
5262 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5263 output_data.x member.
5264 (Fframe_parameters): Return foreground and background color names
5265 on tty frames as well, in addition to MSDOS frames.
5266
5267 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5268 selected_frame.
5269 (struct x_output): Remove unused members; document who uses each
5270 member.
5271 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5272 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5273 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5274 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5275 unused macro definintions.
5276
5277 * msdos.c (IT_set_frame_parameters): Don't call
5278 recompute_basic_faces, the next redisplay will, anyway.
5279 (x_current_display): Remove unused variable.
5280 Many functions: changes for Lisp_object selected_frame.
5281 (IT_set_face): If the tty_reverse_p flag is set for the face,
5282 reverse the foreground and background colors.
5283 (Fmsdos_remember_default_colors): New function.
5284 (syms_of_msdos): Defsubr it.
5285 (IT_set_frame_parameters): Use initial_screen_colors[] when
5286 creating a new frame. If the frame parameters include 'reverse,
5287 swap the foreground and background colors.
5288 (internal_terminal_init): Initialize initial_screen_colors to -1.
5289 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5290 cus-start.el.
5291
5292 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5293
5294 * xfns.c (x_defined_color): Rename from defined_color. All
5295 callers changed.
5296 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5297 all callers changed.
5298 (Fxw_color_values): Renamed from Fx_color_values; all callers
5299 changed.
5300 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5301 callers changed.
5302 (x_window_to_frame, x_any_window_to_frame,
5303 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5304 x_top_window_to_frame): Use !FRAME_X_P instead of
5305 f->output_data.nothing.
5306 * xterm.h (x_defined_color): Rename from defined_color.
5307
5308 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5309 f->output_data.nothing.
5310 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5311 all callers changed.
5312 (Fxw_color_values): Renamed from Fx_color_values; all callers
5313 changed.
5314 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5315 callers changed.
5316
5317 * dispextern.h (tty_color_name): Add prototype.
5318
5319 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5320 f->output_data.nothing.
5321 * w32menu.c (menubar_id_to_frame): Likewise.
5322 * w32term.h (w32_output): Declare.
5323
5324 * dosfns.c (Qmsdos_color_translate): Remove.
5325 (msdos_stdcolor_name): Now returns a Lisp_Object.
5326 * dosfns.h (Qmsdos_color_translate): Remove.
5327
5328 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5329
b3e5232e
KH
53301999-12-06 Kenichi Handa <handa@etl.go.jp>
5331
5332 * fileio.c (decide_coding_unwind): Renamed from
5333 set_auto_coding_unwind.
5334 (Finsert_file_contents): Make single unwind protect to call both
5335 Vset_auto_coding_function and Ffind_operation_coding_system.
5336
5337 * insdel.c (adjust_markers_for_delete): Make it non-static.
5338
db0e466c
SM
53391999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5340
5341 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5342 operators and handle them properly.
5343 * regex.h (RE_ALL_GREEDY): New option.
5344 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5345 sorting would put it.
5346 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5347 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5348
22afa6e8
DL
53491999-12-04 Dave Love <d.love@dl.ac.uk>
5350
5351 * m/arm.h: New file.
5352
40afb967
DL
53531999-12-03 Dave Love <fx@gnu.org>
5354
5355 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5356
ddf8eff5
GM
53571999-12-02 Gerd Moellmann <gerd@gnu.org>
5358
5359 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5360 for building with Motif.
5361
5362 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5363 unexelf.o.
427ec082 5364
ddf8eff5
GM
5365 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5366
fa09a82d
DL
53671999-12-01 Dave Love <fx@gnu.org>
5368
5369 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5370
ddf8eff5
GM
53711999-11-28 Gerd Moellmann <gerd@gnu.org>
5372
5373 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5374 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5375 macros.
5376
5377 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5378
fa09a82d
DL
53791999-11-28 eliz <eliz@dlpx1>
5380
5381 * emacs.c (synchronize_locale): Avoid compiler warnings about
5382 pointer type mismatch.
5383
f9632fc8
GM
53841999-11-28 Gerd Moellmann <gerd@gnu.org>
5385
717d0121
GM
5386 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5387 out of range position.
5388
427ec082 5389 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5390 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5391
59c65f1e
EZ
53921999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5393
613a8346
EZ
5394 * charset.c (Fmake_char_internal): Print the charset ID when
5395 signalling an error.
5396
59c65f1e
EZ
5397 * emacs.c (synchronize_locale): Avoid compiler warnings about
5398 pointer type mismatch.
5399
83c8f461 54001999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5401
5402 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5403
18df9369
GM
54041999-11-26 Gerd Moellmann <gerd@gnu.org>
5405
65a3ccf7
GM
5406 * puresize.h (BASE_PURESIZE): Increase to 550000.
5407
b3b98592
GM
5408 * textprop.c (set_text_properties): New function. Like
5409 Fset_text_properties, but with additional parameter
5410 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5411 changes.
5412 (Fset_text_properties): Use it.
5413
5414 * insdel.c (insert_1_both): Call set_text_properties with last
5415 parameter nil so that no after changes will be signaled.
5416
5417 * lisp.h: Add prototype for set_text_properties.
5418
18df9369
GM
5419 * xfaces.c (set_lface_from_font_name): Fix previous change.
5420 (recompute_basic_faces): Change assert to abort.
5421
71a8e74b
DL
54221999-11-25 Dave Love <fx@gnu.org>
5423
5424 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5425 (Fmember, Fdelq, Fdelete): Inline car.
5426 (Fy_or_n_p): Doc fix.
5427
bc6a5782
GM
54281999-11-25 Gerd Moellmann <gerd@gnu.org>
5429
3221576b 5430 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5431 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5432 is not set, try to use a reasonable default.
5433
bc6a5782
GM
5434 * dispnew.c (direct_output_for_insert): Set glyph row's
5435 displays_text_p flag. Correct window's window_end_vpos if
5436 necessary.
5437
0c8559bb
PE
54381999-11-25 Paul Eggert <eggert@twinsun.com>
5439
5440 * emacs.c (fixup_locale): Don't bother to record initial locale.
5441 (synchronize_locale): If the desired locale is nil,
5442 treat it as if it were the empty string,
5443 so that we set the locale from the environment.
5444
35737351
KH
54451999-11-25 Kenichi Handa <handa@etl.go.jp>
5446
5447 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5448 of the current buffer via Fset.
5449
5562b47f
DL
54501999-11-24 Dave Love <fx@gnu.org>
5451
5562b47f
DL
5452 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5453
5454 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5455
00da0e4a
GM
54561999-11-24 Gerd Moellmann <gerd@gnu.org>
5457
5458 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5459
5460 * emacs.c (PVEC_FLAG): New variable.
5461
b1775dc1
GM
54621999-11-23 Gerd Moellmann <gerd@gnu.org>
5463
5464 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5465 that fails on IBM PowerPC, AIX 4.2.
427ec082 5466
08de6200
EZ
54671999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5468
5469 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5470 string of mode-line-format. Remove the obsolete %t.
5471
02fda8ff
GM
54721999-11-22 Gerd Moellmann <gerd@gnu.org>
5473
f2fa858f
GM
5474 * dispnew.c (direct_output_for_insert): Increment glyph positions
5475 for glyphs from buffer text only.
5476
02fda8ff
GM
5477 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5478 (gdb_data_seg_bits): New variables.
427ec082 5479
02fda8ff
GM
5480 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5481 work on systems not allowing enumerators > INT_MAX, and it
5482 won't work if EMACS_INT is long long.
5483
1b0d24e7
PE
54841999-11-22 Paul Eggert <eggert@twinsun.com>
5485
5486 Port to SunOS 4.1.x again. Help out with Alpha port.
5487 Rename messages-locale to system-messages-locale,
5488 and likewise for time-locale.
427ec082 5489
1b0d24e7
PE
5490 * callproc.c (strerror): Remove decl.
5491 * fileio.c (strerror): Likewise.
5492 * process.c (strerror): Likewise.
5493 * emacs.c (strerror): Likewise.
5494 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5495 All uses changed.
5496 (Vprevious_system_messages_locale): Likewise, from
5497 Vprevious_messages_locale.
5498 (Vsystem_time_locale): Likewise, from Vtime_locale.
5499 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5500 (ABORT_RETURN_TYPE): New macro.
5501 (abort): Return type is now ABORT_RETURN_TYPE.
5502 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5503 defined.
5504 (syms_of_emacs): messages-locale -> system-messages-locale,
5505 previous-messages-locale -> previous-system-messages-locale,
5506 time-locale -> system-time-locale,
5507 previous-time-locale -> previous-system-time-locale.
5508
5509 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5510 (const): Do not define; that's config.h's job.
5511 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5512 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5513 (<stddef.h>): Include if STDC_HEADERS is defined.
5514 (FREE_RETURN_TYPE): New macro.
5515 (free): Return type is now FREE_RETURN_TYPE.
5516
5517 * lisp.h (synchronize_system_time_locale): Renamed from
5518 synchronize_time_locale. All uses changed.
5519 (synchronize_system_messages_locale): Likewise, from
5520 synchronize_messages_locale.
5521
5522 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5523 stdlib.h now does this.
5524
5525 * process.c (sys_siglist): Remove.
5526
5527 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5528 New macros.
5529
5530 * syntax.c (scan_sexps_forward): Use abort, not assert.
5531
5532 * sysdep.c (my_sys_siglist): New var.
5533 (sys_siglist): New macro. Remove old initialized vars of same name.
5534 (init_signals): Initialize sys_siglist.
5535
5536 * xfns.c (abort): Remove decl; stdlib.h now does this.
5537
0dcd5b54
DL
55381999-11-18 Dave Love <fx@gnu.org>
5539
946173ad
DL
5540 * filelock.c: Add forward declaration for get_boot_time_1.
5541
0dcd5b54
DL
5542 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5543
71447e8f
GM
55441999-11-18 Gerd Moellmann <gerd@gnu.org>
5545
5546 * buffer.h (struct buffer_text): Add comment about moving
5547 buffer text if REL_ALLOC is defined.
5548
eeedff63
KH
55491999-11-18 Kenichi Handa <handa@etl.go.jp>
5550
5551 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5552
5553 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5554 memory for push_key_description.
5555
5556 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5557 allocate memory for push_key_description.
5558 (describe_buffer_bindings): Likewise.
5559
5d7e4a2c
GM
55601999-11-17 Gerd Moellmann <gerd@gnu.org>
5561
5562 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5563 (Fx_hide_busy_cursor): Ditto.
5564
55651999-11-17 Marco Walther <walther@siemens-pyramid.com>
5566
5567 * unexsni.c (unexec): Handle .rel.dyn section.
5568
b5b41e02
DL
55691999-11-16 Dave Love <fx@gnu.org>
5570
5571 * doc.c (Fdocumentation): Remove gcpro here too.
5572
e35b6123
GM
55731999-11-16 Gerd Moellmann <gerd@gnu.org>
5574
5575 * keyboard.c (command_loop_1): Remove no_redisplay.
5576
83c8f461 55771999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5578
5579 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5580 in noninteractive.
5581
b05d3bee
GM
55821999-11-14 Gerd Moellmann <gerd@gnu.org>
5583
5bcfeb49
GM
5584 * xdisp.c (ensure_echo_area_buffers): New.
5585 (with_echo_area_buffer): Use it.
5586 (setup_echo_area_for_printing): Ditto.
5587
b05d3bee
GM
5588 * buffer.c (indicate-empty-lines): Doc-fix.
5589
9b2e6e4c
GM
55901999-11-12 Gerd Moellmann <gerd@gnu.org>
5591
e7f90eab
GM
5592 * term.c (term_init): If "op" isn't available, don't support color
5593 because we can't switch back to the default foreground and
5594 background.
5595
9b2e6e4c
GM
5596 * doc.c (Fdocumentation_property): Remove GCPRO because
5597 Fsubstitute_command_keys gcpro's the string.
5598
1bf21027
KH
55991999-11-12 Kenichi Handa <handa@etl.go.jp>
5600
5601 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5602
3bc6df53
GM
56031999-11-11 Gerd Moellmann <gerd@gnu.org>
5604
5605 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5606 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5607 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5608
35a5514b
GM
56091999-11-10 Gerd Moellmann <gerd@gnu.org>
5610
5611 * xfns.c (QCuser_data): Removed.
5612 (syms_of_xfns): Initialization of QCuser_data removed.
5613 (parse_image_spec): Don't handle :user-data specially. Allow
5614 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5615 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5616 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5617 parse_image_spec accordingly.
5618
83c8f461 56191999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5620
5621 * cmds.c (Fbeginning_of_line): Doc fix.
5622 (Fend_of_line): Doc fix.
5623
5624 * editfns.c (Fline_beginning_position): If N is not 1,
5625 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5626
5627 * syntax.c (Fforward_word): Handle fields even if would have hit
5628 an edge of the buffer. Return nil if affected by fields.
5629
83c8f461 56301999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5631
5632 * editfns.c (preceding_pos): Function deleted.
5633 (text_property_stickiness): Decrement POS directly.
5634 Fix a confusion that used PT instead of POS.
5635
5636 * editfns.c (find_field): Properly handle the case
5637 of a field boundary where `field' inherits from neither side.
5638
5639 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5640 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5641
fa9aabf6
GM
56421999-11-08 Gerd Moellmann <gerd@gnu.org>
5643
5644 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5645 BEFORE_POTENTIAL_GC before DISCARD.
5646
4015b3c0
GM
56471999-11-07 Gerd Moellmann <gerd@gnu.org>
5648
033a5fa3
GM
5649 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5650
5651 * lisp.h: Add prototype for unmark_byte_stack.
5652
5653 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5654 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5655 XUNMARK.
5656
55b064bd
GM
5657 * xdisp.c (resize_mini_window): Fix computation of needed
5658 mini-window height.
5659
5660 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5661 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5662
4015b3c0 5663 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5664 locally there. Rearrange case statements so that those most
4015b3c0
GM
5665 frequently executed come first. Avoid goto's in frequently
5666 executed cases.
5667
fe512f27
GM
56681999-11-05 Gerd Moellmann <gerd@gnu.org>
5669
dd59e217
GM
5670 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5671 AFTER_POTENTIAL_GC around internal_catch.
5672
bcf28080
GM
5673 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5674 relocate_byte_pcs.
5675 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5676
5677 * eval.c (struct catchtag): Add member byte_stack.
5678 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5679 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5680 catchtag.
5681 (unwind_to_catch): Restore byte_stack_list from catchtag.
5682
5683 * lisp.h: Add prototypes for new functions in bytecode.c.
5684 Add extern declaration for byte_stack_list.
5685
5686 * bytecode.c (struct byte_stack): New.
5687 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5688 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5689 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5690 (HANDLE_RELOCATION): Removed.
5691 (Fbyte_code): Use byte_stack structures.
5692
4d59c34c
GM
5693 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5694
fe512f27
GM
5695 * buffer.c (syms_of_buffer): Extend documentation of
5696 mode-line-format.
5697
60b64cd6
GM
56981999-11-04 Gerd Moellmann <gerd@gnu.org>
5699
5700 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5701
5702 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5703 Ferase_field instead of Fdelete_field.
5704
b51b619b
GM
57051999-11-03 Gerd Moellmann <gerd@gnu.org>
5706
5707 * dispnew.c (Finternal_show_cursor): Change it to set the
5708 cursor on/off, not toggle its state.
5709 (Finternal_show_cursor_p): New.
5710 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5711
5865af0d
DL
57121999-11-03 Dave Love <fx@gnu.org>
5713
5714 * charset.c (split_non_ascii_string): Define return value.
5715
82a700f3
GM
57161999-11-03 Gerd Moellmann <gerd@gnu.org>
5717
edfef199
GM
5718 * minibuf.c (string_to_object): New.
5719 (read_minibuf_noninteractive): New.
5720 (read_minibuf): Call read_minibuf_noninteractive if
5721 noninteractive. Use string_to_object.
5722
82a700f3
GM
5723 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5724
b5540f0d
DL
57251999-11-02 Dave Love <fx@gnu.org>
5726
e69dcd60
DL
5727 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5728
827a1788
DL
5729 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5730 declared with glibc2.
b5540f0d 5731
a69a6e61
GM
57321999-11-02 Gerd Moellmann <gerd@gnu.org>
5733
5734 * lisp.h (QUIT): Give it statement form.
5735
87e21fbd
DL
57361999-11-02 Dave Love <fx@gnu.org>
5737
5738 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5739
1b335865
GM
57401999-11-02 Gerd Moellmann <gerd@gnu.org>
5741
9fb5e03d
GM
5742 * xfns.c (QCuser_data): New.
5743 (syms_of_xfns): Initialize QCuser_data.
5744 (parse_image_spec): Ignore :user-data DATA properties.
5745
1b335865
GM
5746 * xdisp.c (display_line): Set charpos of first glyph in blank
5747 lines not corresponding to any text to -1, even if no glyphs are
5748 filled in in that line.
5749
e76f1c44
GM
57501999-11-01 Gerd Moellmann <gerd@gnu.org>
5751
427ec082 5752 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5753 png_get_sRGB in #ifdef.
5754
111259b4
GM
5755 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5756 (syms_of_display): Use the new name.
5757
dd5c96e8
GM
5758 * textprop.c (verify_interval_modification): Signal text-read-only
5759 instead of calling error.
5760
db8878fb
GM
5761 * data.c (Qtext_read_only): New built-in error.
5762 (syms_of_data): Initialize it.
5763
5764 * lisp.h: Add extern declaration for Qtext_read_only.
5765
e76f1c44
GM
5766 * syntax.c: Remove whitespace after open or in front of closing
5767 parentheses.
5768
83c8f461 57691999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5770
5771 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5772
7843e09c
GM
57731999-10-31 Gerd Moellmann <gerd@gnu.org>
5774
575ed805
GM
5775 * xdisp.c (resize_mini_window): Compute needed height differently.
5776
7843e09c
GM
5777 * fns.c (Flength): Unroll loop over lists.
5778
5779 * xdisp.c (append_space): Return non-zero if space was appended.
5780 (display_line): Set charpos of first glyph to -1 only if that
5781 glyph is the space added by append_glyph.
5782
83c8f461 57831999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5784
5785 * print.c (strout): Consider `noninteractive' and use stdout
5786 only when PRINTCHARFUN is t.
5787
5788 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5789 (gcpro_level): Declare it extern.
5790 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5791 Alternate definitions that set `level' and increment `gcpro_level'.
5792 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5793
5794 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5795 (init_eval) [DEBUG_GCPRO]: Initialize it.
5796 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5797 from remaining gcprolist.
5798
3636f7a3
KH
57991999-10-29 Kenichi Handa <handa@etl.go.jp>
5800
5801 * coding.c (code_convert_region): Update `dst' correctly.
5802
a2ad7096
GM
58031999-10-28 Gerd Moellmann <gerd@gnu.org>
5804
5805 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5806 (Frassoc): Rewritten.
5807
1e3196e8
GM
58081999-10-27 Noah Friedman <friedman@splode.com>
5809
5810 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5811 Define PTY_NAME_SPRINTF.
5812 Redefine PTY_TTY_NAME_SPRINTF.
5813 * config.in: Add undef for HAVE_DEV_PTMX.
5814
83c8f461 58151999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5816
5817 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5818 as arg to DEBUG_POP and DEBUG_PRINT.
5819
83c8f461 58201999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5821
5822 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5823 (Ffset): Call Qad_activate_internal.
5824 (syms_of_data): Initialize Qad_activate_internal.
5825
26922151
GM
58261999-10-27 Gerd Moellmann <gerd@gnu.org>
5827
5828 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5829 Vterminal_frame is selected and Vwindow_system is non-nil.
5830
67a5596f
GM
58311999-10-26 Gerd Moellmann <gerd@gnu.org>
5832
2bea706b
GM
5833 * xdisp.c (echo_area_display): Put previous change in #if 0.
5834
67a5596f
GM
5835 * emacs.c (standard_args): Add `file' as synonym for `visit',
5836 `execute' as synonym for `eval'.
5837 (main): Add new options to usage message.
5838
81dc5de5
GM
58391999-10-25 Gerd Moellmann <gerd@gnu.org>
5840
5841 * data.c (Qhash_table): New.
5842 (Ftype_of): Return it for hash tables.
5843 (syms_of_data): Initialize Qhash_table.
5844
83c8f461 58451999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5846
5847 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5848
66e4690f 58491999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5850
7539e11f
KR
5851 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5852 lisp.h.
5853
5854 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5855 Fbuffer_local_variables, Fother_buffer, record_buffer,
5856 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5857 swap_out_buffer_local_variables, overlays_at, overlays_in,
5858 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5859 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5860 Foverlay_put, report_overlay_modification, evaporate_overlays):
5861 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5862 references.
5863 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5864 swap_in_symval_forwarding, set_internal, default_value,
5865 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5866 Fmake_variable_frame_local, Flocal_variable_p,
5867 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5868 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5869 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5870 * emacs.c (main): Likewise.
5871 * fontset.c (fs_load_font, fs_register_fontset,
5872 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5873 Fnew_fontset, Fset_fontset_font): Likewise.
5874 * frame.c (do_switch_frame, next_frame, prev_frame,
5875 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5876 Likewise.
5877 * keyboard.c (read_char, help_char_p, event_to_kboard,
5878 kbd_buffer_get_event, timer_start_idle, timer_check,
5879 make_lispy_event, apply_modifiers, reorder_modifiers,
5880 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5881 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5882 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5883 Fcommand_execute, Fexecute_extended_command): Likewise.
5884 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5885 Fall_completions): Likewise.
5886 * window.c (Fset_window_margins): Likewise.
5887
5888 * callint.c (quotify_args): Don't explicitly use struct
5889 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5890
3a7093d8
KR
5891 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5892 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5893 if __ELF__ is defined.
5894
2a3d7146
GM
58951999-10-24 Gerd Moellmann <gerd@gnu.org>
5896
5897 * window.c (Fnext_window): Add a QUIT in the loop.
5898
8ac52782
GM
58991999-10-23 Gerd Moellmann <gerd@gnu.org>
5900
427ec082 5901 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5902 New targets.
5903
05f0d15a
DL
59041999-10-22 Dave Love <fx@gnu.org>
5905
5906 * emacs.c (main): Enable profiling conditional on __linux also.
5907
882fb0e6
GM
59081999-10-20 Gerd Moellmann <gerd@gnu.org>
5909
5910 * xrdb.c (x_load_resources): Set default resources for resource
5911 classes instead of for the specific Emacs.
5912
b5f5bc31
GM
59131999-10-19 Gerd Moellmann <gerd@gnu.org>
5914
66f4dd69
GM
5915 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5916 defines it that way.
427ec082 5917
b5f5bc31
GM
5918 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5919 if selected_frame is equal to Vterminal_frame.
5920
68c45bf0 59211999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5922
68c45bf0 5923 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5924
68c45bf0
PE
5925 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5926 when dumping, so that the dumped Emacs doesn't have stray locale info.
5927 (dired.o): Depend on systime.h.
5928 (editfns.o): Depend on coding.h.
5929
5930 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5931 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5932 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5933 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5934 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5935 Include <config.h> before any system include files.
5936
5937 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5938 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5939 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5940 xmenu.c, xterm.c:
5941 Do not include <stdlib.h>, as <config.h> does this now.
5942
5943 * callproc.c (Fcall_process):
5944 Synchronize messages locale before invoking strerror.
5945 Decode resulting string with locale-coding-system.
5946
5947 * coding.c (Vlocale_coding_system): New var.
5948 (syms_of_coding): Adjust to above change.
5949 (emacs_strerror): New function.
5950
5951 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5952
68c45bf0
PE
5953 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5954 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5955 HAVE_STRSIGNAL): New macros.
5956 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5957 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5958
5959 * dired.c: Include "systime.h".
5960 (Ffile_attributes): Do not cast s.st_size to int; this loses
5961 information if int is 32 bits but st_size and EMACS_INT are larger.
5962 Treat large device numbers like large inode numbers.
5963
5964 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5965
5966 * editfns.c: Include coding.h.
5967 (emacs_strftime): Remove decl.
5968 (emacs_strftimeu): New decl.
5969 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5970 Use emacs_strftimeu instead of emacs_strftime.
5971 (Fformat_time_string): Convert format string using
5972 Vlocale_coding_system, and convert result back. Synchronize time
5973 locale before invoking lower level function. Invoke
5974 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5975
68c45bf0
PE
5976 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5977 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5978 Vprevious_time_locale): New variables.
5979 (main): Invoke setlocale early, so that initial error messages are
5980 localized properly. But skip locale-setting if LC_ALL is "C".
5981 Fix up locale when it's safe to do so.
5982 (fixup_locale): Moved here from xterm.c.
5983 (synchronize_locale, synchronize_time_locale,
5984 synchronize_messages_locale): New functions.
5985 (syms_of_emacs): Accommodate above changes.
5986
5987 * fileio.c (report_file_error): Convert strerror output according
5988 to Vlocale_coding_system.
5989 (Finsert_file_contents): Check for arithmetic overflow in
5990 computations that depend on file size. Report IO errors
5991 with emacs_strerror, not strerror.
5992
5993 * fns.c (Fgethash): Declare dflt parameter.
5994
5995 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5996 is defined; that's config.h's job.
5997
5998 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5999 default these values to long, BITS_PER_LONG, and unsigned long.
6000 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
6001 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
6002 (code_convert_string_norecord, fixup_locale,
6003 synchronize_messages_locale, synchronize_time_locale,
6004 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
6005 All Emacs callers of open, close, read, write changed to use
6006 emacs_open, emacs_close, emacs_read, emacs_write.
6007
6008 * lread.c (file_offset, file_tell): New macros. All uses of ftell
6009 changed to file_tell.
6010 (saved_doc_string_position, prev_saved_doc_string_position): Now
6011 of type file_offset.
6012 (init_lread): Do not fix locale here; fixup_locale now does this.
6013
6014 * m/amdahl.h, s/usg5-4.h:
6015 (NSIG): Remove.
6016 (NSIG_MINIMUM): New macro.
6017
6018 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
6019 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
6020 s/umips.h, s/usg5-4.h:
6021 (SIGIO): Do not undef.
6022 (BROKEN_SIGIO): New macro.
6023
6024 * m/ustation.h:
6025 (SIGTSTP): Do not undef.
6026 (BROKEN_SIGTSTP): New macro.
6027
6028 * s/gnu-linux.h:
6029 (SIGPOLL, SIGURG): Do not undef.
6030 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
6031
6032 * s/ptx4.h:
6033 (SIGINFO): Do not undef.
6034 (BROKEN_SIGINFO): New macros.
427ec082 6035
68c45bf0
PE
6036 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
6037
6038 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
6039 some Emacs-related changes merged.
6040
6041 * print.c (float_to_string): Prepend "-" to representation of a
6042 NaN if the NaN is negative.
6043
6044 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
6045 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 6046
68c45bf0
PE
6047 * process.c (status_message, sigchld_handler): Synchronize locale,
6048 then use strsignal istead of sys_siglist.
6049 * w32proc.c (sys_wait): Likewise.
427ec082 6050
68c45bf0
PE
6051 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
6052 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
6053 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
6054 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
6055 (open, close, read, write, INTERRUPTIBLE_OPEN,
6056 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
6057
6058 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
6059
6060 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
6061 sys_open, open): Remove.
6062 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
6063 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
6064 macros are no longer used.
6065 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
6066 (emacs_close): Renamed from sys_close.
6067 (emacs_read): Renamed from sys_read.
6068 (emacs_write): Renamed from sys_write.
6069 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6070 (dup2): Do not print error on failure; the real dup2 doesn't.
6071 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6072
6073 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6074 is defined.
6075 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6076 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6077 (strsignal): Declare if !HAVE_STRSIGNAL.
6078
6079 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6080 (ElfW): Define in terms of ElfExpandBitsW.
6081
6082 * w32proc.c (sys_siglist): Remove decl.
6083
6084 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6085 with ANSI C.
6086 (display_string): Declare face_string_pos arg.
6087
6088 * xfns.c (Fx_show_tip): Declare timeout param.
6089
6090 * xterm.c: No need to include locale.h.
6091 (x_alloc_lighter_color, x_setup_relief_color):
6092 Pass arg as double, not float, for compatibility with ANSI C.
6093 (fixup_locale): Move to emacs.c.
6094 (x_term_init): Do not setlocale or fixup locale; the main program
6095 does this now.
6096
2f0b74ea
DL
60971999-10-18 Dave Love <fx@gnu.org>
6098
6099 * doc.c (Fdocumentation_property): Gcpro `tem'.
6100
471aa4a0
KH
61011999-10-18 Kenichi Handa <handa@etl.go.jp>
6102
6103 * lread.c (Fload): Calculate bytes of filename correctly.
6104 (openp): Likewise.
6105
aca2020b
KH
61061999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6107
6108 * print.c (print_preprocess): In case print-circle is nil,
6109 add OBJ to Vprint_number_table only when OBJ is a symbol.
6110
1f5fe392 61111999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6112
6113 * coding.c (code_convert_string): Add record_unwind_protect to
6114 assure setting inhibit_pre_post_conversion back to zero. Take
6115 care of the multibyteness of the working buffer.
6116
6117 * coding.c (inhibit_pre_post_conversion): New variable.
6118 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6119 ignore post-read-conversion and pre-write-conversion property of
6120 the coding system.
6121 (code_convert_region_unwind): New function.
6122 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6123 running pre-write-conversion and post-read-conversion.
6124 (code_convert_string): Likewise.
6125
cd876a91
GM
61261999-10-17 Miles Bader <miles@gnu.org>
6127
6128 * editfns.c: Doc fix.
6129
61301999-10-17 Miles Bader <miles@gnu.org>
6131
6132 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6133 argument preconditions of find_before_next_newline in the case
6134 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6135 was indeed at the edge.
6136
61371999-10-17 Miles Bader <miles@gnu.org>
6138
6139 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6140 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6141
6142 * editfns.c (text_property_eq, text_property_stickiness): Don't
6143 use initializers for auto variables of type Lisp_Object.
6144 (find_field): Likewise. Use braces around nested ifs.
6145 (Fline_end_position): Store the raw eol in a variable, so that the
6146 final expression doesn't look so ugly.
6147 (Fconstrain_to_field): Doc fix.
6148 (preceding_pos): Renamed from `preceeding_pos'.
6149 (text_property_stickiness, find_field): Call preceding_pos,
6150 not preceeding_pos.
6151
61521999-10-17 Miles Bader <miles@gnu.org>
6153
6154 * editfns.c (Ffield_string_no_properties): New function.
6155 (text_property_stickiness, preceeding_pos): New functions.
6156 (Ffield_string): Remove PROPS parameter.
6157 (find_field): Add MERGE_AT_BOUNDARY parameter.
6158 Rewrite to use stickiness of `field' property to resolve
6159 ambiguous cases.
6160 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6161 (Fconstrain_to_field): Likewise.
6162 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6163 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6164 Supply new MERGE_AT_BOUNDARY argument to find_field.
6165 (Fline_beginning_position, Fline_end_position): Supply new
6166 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6167 Pass a value of Qt for the ONLY_IN_LINE argument to
6168 Fconstrain_to_field (only matters if N != 1).
6169 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6170 to Fconstrain_to_field.
6171
6172 * minibuf.c (Fminibuffer_complete_word): Use
6173 Ffield_beginning to find the prompt end.
6174
61751999-10-17 Miles Bader <miles@gnu.org>
6176
6177 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6178 behavior when NEW_POS is nil.
6179 (find_field): Use XSETFASTINT instead of make_number.
6180 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6181 input string by seeing where the field begins, instead of
6182 looking at text-properties.
6183
61841999-10-17 Miles Bader <miles@gnu.org>
6185
6186 * editfns.c (Qfield): New variable.
6187 (find_field, Ferase_field, Ffield_string,
6188 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6189 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6190 (make_buffer_string_both): Remove minibuffer-prompt hack.
6191 (syms_of_editfns): Initialize Qfield, and subr entries for
6192 field functions above.
6193 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6194 minibuf_save_list.
6195 Don't initialize minibuffer prompt length.
6196 Wrap prompt text-properties around the entire prompt.
6197 Add 'prompt text-property to prompt.
6198 Get final value with Ffield_string instead of make_buffer_string.
6199 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6200 minibuf_save_list.
6201 (do_completion): Get minibuffer input with Ffield_string
6202 instead of Fbuffer_string.
6203 Erase minibuffer input with Ferase_field instead of erase_buffer.
6204 (Fminibuffer_complete_and_exit): Likewise.
6205 Test whether buffer is empty by looking for the 'prompt text
6206 property at the end.
6207 Set prompt length by looking for the end of the prompt text property,
6208 and save prompt length for later use (since there is no longer a
6209 buffer variable to get it from).
6210 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6211 (syms_of_minibuf): Remove initializations of
6212 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6213 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6214 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6215 Don't initialize prompt_end_charpos field.
6216 * syntax.c (Fforward_word): Likewise.
6217 Constrain to any field.
6218
3f6f7508
GM
62191999-10-16 Gerd Moellmann <gerd@gnu.org>
6220
6221 * window.c (enum save_restore_action): New.
6222 (save_restore_orig_size): Change parameter list. Add
6223 functionality to check for valid orig_top and orig_height members
6224 in a window tree.
6225 (grow_mini_window): Call save_restore_orig_size with new parameter
6226 list.
6227 (shrink_mini_window): Restore old window sizes only if old
6228 size information is valid in all windows in a window tree.
427ec082 6229
06482119
GM
62301999-10-15 Gerd Moellmann <gerd@gnu.org>
6231
2710454d
GM
6232 * xmenu.c (set_frame_menubar): Don't call
6233 x_set_menu_resources_from_menu_face here.
6234 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6235
06482119
GM
6236 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6237
17fa2837
DL
62381999-10-14 Dave Love <fx@gnu.org>
6239
6240 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6241
45f93416
GM
62421999-10-14 Gerd Moellmann <gerd@gnu.org>
6243
6244 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6245 fails and h_errno is TRY_AGAIN.
6246
c765b723
DL
62471999-10-13 Dave Love <fx@gnu.org>
6248
6249 * filelock.c (lock_file): Move gcpro of `fn'.
6250
dace7f4e
GM
62511999-10-10 Gerd Moellmann <gerd@gnu.org>
6252
6253 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6254
83c8f461 62551999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6256
6257 * print.c (print): When removing objects from Vprint_number_table,
6258 only scan the newly added objects.
6259 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6260 unconditionally force it to stay in the table.
6261
85177c86
GM
62621999-10-09 Gerd Moellmann <gerd@gnu.org>
6263
6264 * xfns.c (prepare_image_for_display): Don't try to load image if
6265 loading it failed before.
6266 (lookup_image, prepare_image_for_display): Remember if loading the
6267 image failed.
6268 (xpm_load): Add missing UNBLOCK_INPUT.
6269
6270 * dispextern.h (struct image): New member load_failed_p.
6271
11e4de5d
SM
62721999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6273
f28eba7b 6274 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6275 in the docstring.
6276
f1da8f06
GM
62771999-10-08 Gerd Moellmann <gerd@gnu.org>
6278
6279 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6280 Don't call XSetInputFocus because that can generate additional
6281 FocusIn events.
427ec082 6282
c37bbd4f
GM
62831999-10-07 Jeffrey C Honig <jch@bsdi.com>
6284
6285 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6286
83c8f461 62871999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6288
6289 * process.c (wait_reading_process_input): When trying to suck
6290 input from one process, for accept-process-output,
6291 exit that loop if we get EAGAIN or EWOULDBLOCK.
6292
577d9e2f
GM
62931999-10-07 Gerd Moellmann <gerd@gnu.org>
6294
6295 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6296 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6297 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6298 Fpixmap_spec_p and Qpixmap_spec_p.
6299 (load_face_colors, check_lface_attrs,
6300 merge_face_vector_with_property,
6301 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6302 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6303 Fbitmap_spec_p.
6304
f5737ad2
GM
63051999-10-07 Gerd Moellmann <gerd@gnu.org>
6306
6307 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6308 MODE_LINE_FACE_ID.
6309
6310 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6311 (struct x_resources) [USE_X_TOOLKIT]: New.
6312 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6313 [USE_MOTIF]: New.
6314 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6315 [USE_LUCID]: New.
6316 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6317 (Qmenu): New.
6318 (syms_of_xfaces): Initialize Qmenu.
6319 (realize_basic_faces): Realize face `menu'.
6320 (resolve_face_name): New.
6321 (lface_from_face_name): Use it.
6322 (Finternal_set_lisp_face_attribute): Ditto.
6323 (Fpixmap_spec_p): Rewritten. Extend doc string.
6324
6325 * xmenu.c (set_frame_menubar, xmenu_show): Call
6326 x_set_menu_resources_from_menu_face.
6327
6328 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6329 (toplevel): Include X11/Intrinsic.h.
6330
6a1aa823
DL
63311999-10-03 Ken'ichi Handa <handa@gnu.org>
6332
6333 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6334 correctly.
6335
26901792
DL
63361999-09-30 Kenichi Handa <handa@etl.go.jp>
6337
6338 * category.c (modify_lower_category_set): Set default value of
6339 TABLE correctly.
6340
6341 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6342 size correctly.
6343
63441999-09-29 Gerd Moellmann <gerd@gnu.org>
6345
6346 * editfns.c (Fpropertize): Renamed from Fproperties.
6347
63481999-09-29 Gerd Moellmann <gerd@gnu.org>
6349
6350 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6351 frame that hasn't been initialized yet.
6352
83c8f461 63531999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6354
6355 * keymap.c (Fsingle_key_description): Make tem big enough.
6356 (describe_buffer_bindings): Make buf big enough.
6357
83c8f461 63581999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6359
6360 * intervals.c (get_local_map): Use indirect_function,
6361 not Findirect_function.
6362
26901792
DL
63631999-09-27 Dave Love <fx@gnu.org>
6364
6365 * cm.h: Remove unneeded declaration of ospeed.
6366
63671999-09-26 Gerd Moellmann <gerd@gnu.org>
6368
6369 * lisp.h (toplevel): Add prototype for
6370 next_single_char_property_change.
6371
6372 * textprop.c (next_single_char_property_change): New.
6373
6374 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6375 next_single_char_property_change.
6376
63771999-09-25 Gerd Moellmann <gerd@gnu.org>
6378
6379 * editfns.c (Fproperties): New.
6380 (syms_of_editfns): Defsubr it.
6381
6382 * xfns.c (lookup_image): Set image's timestamp because it's
6383 used when we look it up.
6384
63851999-09-23 Gerd Moellmann <gerd@gnu.org>
6386
6387 * window.c (enlarge_window): Add window parameter instead of using
6388 selected_window.
6389 (Fdisplay_buffer): Call it with window parameter instead of
6390 setting selected_window.
6391 (Fenlarge_window, Fshrink_window): Ditto.
6392 (shrink_mini_window): If there is no recorded height and position
6393 info, resize mini-window to height 1.
6394
6395 * xfns.c (image_error): Use add_to_log.
6396
6397 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6398 (load_face_font_or_fontset, load_color,
6399 merge_face_vector_with_property): Ditto.
6400
6401 * dispextern.h: Add prototype for add_to_log.
6402
6403 * xfaces.c (add_to_log): Move to xdisp.c.
6404
6405 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6406 parameter.
6407
64081999-09-23 Gerd Moellmann <gerd@gnu.org>
6409
6410 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6411 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6412
6413 * xdisp.c (resize_mini_window): Use grow_mini_window and
6414 shrink_mini_window.
6415
6416 * window.c (window_min_size): Add parameter ignore_fixed_p.
6417 (change_window_height): Call window_min_size with new parameter.
6418 (shrink_window_lowest_first, save_restore_orig_size,
6419 grow_mini_window, shrink_mini_window): New.
6420 (make_window, replace_window): Initialize orig_top and
6421 orig_height.
6422 (enlarge_window): Renamed from change_window_height. Make it
6423 static.
6424 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6425 enlarge_window instead of change_window_height.
6426
6427 * window.h (struct window): New members orig_top, orig_height.
6428 (toplevel): Add prototypes for grow_mini_window and
6429 shrink_mini_window. Remove prototype for change_window_height.
6430
64311999-09-21 Eli Zaretskii <eliz@gnu.org>
6432
6433 * frame.c (frame_name_fnn_p): Fix previous change.
6434
64351999-09-20 Gerd Moellmann <gerd@gnu.org>
6436
6437 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6438
6439 * dispnew.c (direct_output_for_insert): Cast arguments to
6440 safe_bcopy to char *.
6441
6442 * lread.c (readchar): Remove unused variables.
6443 (read_filtered_event, read1, Fmapatoms): Ditto.
6444 (toplevel): Include intervals.h.
6445
6446 * eval.c (Fsignal): Remove unused variables.
6447 (Fcommandp, do_autoload): Ditto.
6448
6449 * lisp.h: Add prototype for safe_bcopy, fatal.
6450
6451 * editfns.c (init_editfns): Remove unused variables.
6452 (Fgoto_char, Fchar_after, Fformat): Ditto.
6453 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6454
6455 * data.c (find_symbol_value): Remove unused variables.
6456 (Faref, Fstring_to_number): Ditto.
6457 (toplevel): Include stdio.h.
6458 (Fnumber_to_string): Cast XINT to long for %ld.
6459
6460 * casefiddle.c (casify_object): Remove unused variables.
6461 (casify_region): Ditto.
6462
427ec082 6463 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6464 conditinally compiled section in #ifdef.
6465 (toplevel): Include stdio.h.
6466
6467 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6468 keys_of_keymap, syms_of_keymap): Remove unused variables.
6469
64701999-09-20 Gerd Moellmann <gerd@gnu.org>
6471
6472 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6473 whose corresponding window rows have been disabled in
6474 try_window_id.
6475
64761999-09-20 Gerd Moellmann <gerd@gnu.org>
6477
6478 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6479 that window start is out of range.
6480 (handle_display_prop, handle_single_display_prop): Replace
6481 marginal area specifications like `left-margin' with `(margin
6482 left-margin)'.
6483 (Qmargin): New.
6484 (syms_of_xdisp): Initialize Qmargin.
6485
64861999-09-19 Gerd Moellmann <gerd@gnu.org>
6487
6488 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6489 describe_syntax, skip_chars): Remove unused variables.
6490 (back_comment, forw_comment): Add braces to if-statement with
6491 if-else as dependent statement.
6492
6493 * process.c (list_processes_1): Remove unused variables.
6494 (Fopen_network_stream, create_process): Add parentheses to
6495 conditional expressions.
6496 (create_process): Put declaration of sigchld in #if 0.
6497 (Fopen_network_stream): Removed unused variables.
6498 (Fopen_network_stream, wait_reading_process_input,
6499 wait_reading_process_input, send_process, send_process): Ditto.
6500 (toplevel): Add prototypes for set_waiting_for_input and
6501 keyboard_bit_set.
6502
6503 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6504
6505 * textprop.c (Fset_text_properties): Remove unused variables.
6506 (text_property_list, verify_interval_modification,
6507 interval_has_all_properties): Ditto.
6508
6509 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6510 (Fcall_process): Remove unused variable.
6511
6512 * keyboard.c (Frecursive_edit): Remove unused variable.
6513 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6514 timer_check, make_lispy_event, menu_bar_items,
6515 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6516 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6517 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6518 read_key_sequence): Ditto. Fread_key_sequence,
6519 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6520 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6521 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6522 (Fexecute_extended_command): Cast XINT to long for %ld.
6523 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6524 (toplevel): Include sys/types.h.
6525
6526 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6527 (toplevel): Add prototypes for stuff_char, and
6528 code_convert_string_norecord.
6529
65301999-09-19 Gerd Moellmann <gerd@gnu.org>
6531
6532 * buffer.h: Add prototype for r_re_alloc.
6533
6534 * insdel.c (copy_text): Removed unused variables.
6535 (count_combining_after, count_combining_after, insert_1_both,
6536 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6537 (adjust_after_replace, replace_range): Add parentheses to logical
6538 expressions. Remove unused variables.
6539 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6540 expression.
6541
6542 * alloc.c (Fgarbage_collect): Remove unused variable.
6543 (compact_strings): Add parentheses around assignments in
6544 conditional context.
6545 (toplevel): Put declaration of unused function clear_marks
6546 in #if 0 like its definition.
6547
6548 * lisp.h: Add prototype for shrink_regexp_cache,
6549 sweep_weak_hash_tables.
6550
65511999-09-19 Dave Love <fx@gnu.org>
6552
6553 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6554
6555 * doc.c (read_bytecode_char): Declare arg.
6556
6557 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6558 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6559
65601999-09-18 Richard Stallman <rms@gnu.org>
6561
6562 * xdisp.c (echo_area_display): Turn off code that returned
6563 without doing anything when using a terminal frame.
6564
83c8f461 65651999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6566
6567 * unexelf.c (unexec): Don't get confused by a short section
6568 just before the bss section.
6569
26901792
DL
65701999-09-16 Gerd Moellmann <gerd@gnu.org>
6571
6572 * emacs.c (main): Remove unused variables.
6573 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6574
6575 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6576 init_fileio_once, syms_of_sound, init_xfns, init_fns
6577 init_sound, check_message_stack.
6578
6579 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6580
6581 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6582 ambiguous else warning.
6583 (split_interval_left): Remove unused variables.
6584 (previous_interval, adjust_intervals_for_deletion,
6585 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6586 (icount, idepth, zero_length): Move into #if 0 section below
6587 original position where these are used.
6588
6589 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6590
6591 * buffer.c (Fkill_buffer): Remove unused variables.
6592 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6593 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6594 init_buffer_once, (syms_of_buffer): Ditto.
6595
6596 * xrdb.c (get_fallback): Remove unused variable.
6597 (x_load_resources): Ditto. Put local variable used for Motif only
6598 in #ifdef USE_MOTIF.
6599
66001999-09-16 Gerd Moellmann <gerd@gnu.org>
6601
6602 * minibuf.c (read_minibuf): Remove unused variables.
6603 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6604 (do_completion): Move assignment out of conditional context.
6605 (Fdisplay_completion_list): Add parentheses to conditional expression.
6606
6607 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6608
6609 * lisp.h: Add prototype for no_switch_window.
6610
6611 * window.c (Fset_window_buffer): Remove unused variables.
6612 (Fset_window_margins): Ditto.
6613
6614 * xdisp.c (resize_mini_window): Temporarily set the selected
6615 window's or Vminibuf_scroll_window's height to "fixed" around
6616 the call the change_window_height.
6617
6618 * window.c (window_fixed_size_p): Check window's height_fixed_p
6619 flag.
6620
6621 * window.h (struct window): New member height_fixed_p.
6622
6623 * dispnew.c (direct_output_forward_char): Don't use this method
6624 if showing a message or a message was just cleared because we
6625 might need to resize the mini-window.
6626
66271999-09-16 Gerd Moellmann <gerd@gnu.org>
6628
6629 * frame.c (Fdelete_frame): Correct local variable pointing to
6630 selected frame after selecting new frame.
6631
66321999-09-15 Richard Stallman <rms@gnu.org>
6633
6634 * puresize.h (BASE_PURESIZE): Increase to 525000.
6635
6636 * filelock.c (Vtemporary_file_directory): New variable.
6637 (syms_of_filelock): Set up Lisp variable.
6638
66391999-09-15 Gerd Moellmann <gerd@gnu.org>
6640
6641 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6642 (encode_terminal_code): Remove unused variables.
6643 (turn_off_face): Ditto.
6644 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6645
6646 * dispnew.c (update_frame_line): If writing whole desired line,
6647 don't clear to end of line if already at the end.
6648
66491999-09-15 Gerd Moellmann <gerd@gnu.org>
6650
6651 * xdisp.c (resize_mini_window): Don't report changed window
6652 height if it actually hasn't changed.
6653
427ec082 6654 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6655 unused variables.
6656 (mark_shell_size_user_specified): Put in #if 0 because not used.
6657 (create_frame_gcs): Put in #if 0 because currently unused.
6658 (first_frame_p): Ditto.
6659
6660 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6661 single_submenu, update_frame_menubar, set_frame_menubar,
6662 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6663 variables.
6664
6665 * print.c (PRINTFULLP): Removed because it is no longer used and
6666 is misleading.
6667 (Ferror_message_string): Remove unused variables.
6668 (print_object): Cast argument of sprintf to long for `%ld'
6669 specifier. Remove unused variable.
6670
66711999-09-14 Gerd Moellmann <gerd@gnu.org>
6672
6673 * sound.c (Fplay_sound): Remove usused variables.
6674 (be2hs): Put in #if 0 because it's currently not used.
6675
66761999-09-14 Ken Raeburn <raeburn@gnu.org>
6677
6678 * print.c (Ferror_message_string, print_error_message,
6679 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6680 member access.
6681
66821999-09-14 Gerd Moellmann <gerd@gnu.org>
6683
6684 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6685
6686 * frame.c (Fnext_frame): Remove unused variable(s).
6687 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6688 (store_frame_param): Add parentheses to conditional expression.
6689 (Fmodify_frame_parameters): Remove unused variables.
6690 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6691 Ditto.
6692
6693 * xfns.c (x_set_background_color): Remove unused variable(s).
6694 (x_set_border_pixel): Ditto.
6695 (x_set_menu_bar_lines): Put local variable used only for
6696 non-toolkit case in #ifdef/#endif.
6697 (x_figure_window_size): Remove unused variable(s).
427ec082 6698 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6699 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6700 png_load, jpeg_load, gif_load, x_create_tip_frame,
6701 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6702
6703 * xterm.c (x_scroll_bar_handle_click): Compile only if
6704 not USE_TOOLKIT_SCROLL_BARS.
6705 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6706
6707 * dispextern.h: Add prototypes for gamma_correct and
6708 x_kill_gs_process.
6709
6710 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6711 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6712 x_set_toolkit_scroll_bar_thumb): Ditto.
6713 (x_scroll_bar_create): Move local variable to the
6714 conditionally compiled section of code where it is used.
6715 (x_scroll_bar_create): Remove unused variable(s).
6716 (x_scroll_bar_remove, XTread_socket): Ditto.
6717 (XTread_socket) <ConfigureNotify>: Move variables used for
6718 non-toolkit case into conditionally compiled section of code.
6719
6720 * window.h (freeze_window_starts): Fix typo in prototype.
6721
6722 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6723 variable(s).
6724
6725 * lisp.h: Add prototype for debug_print.
6726
6727 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6728 to use do-while.
6729
6730 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6731 (Fchar_table_range, Fset_char_table_default, mapcar1,
6732 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6733
6734 * lisp.h: Add prototype for getloadavg.
6735
67361999-09-14 Andreas Schwab <schwab@gnu.org>
6737
6738 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6739
6740 * lisp.h: Declare close_file_unwind.
6741
67421999-09-14 Richard Stallman <rms@gnu.org>
6743
6744 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6745
67461999-09-13 Gerd Moellmann <gerd@gnu.org>
6747
6748 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6749 is always set correctly.
6750
67511999-09-13 Dave Love <fx@gnu.org>
6752
6753 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6754 declaration.
6755
67561999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6757
6758 * xdisp.c (QCfile): Move here from xfns.c.
6759 (syms_of_xdisp): Initialize it.
6760 (message2_nolog): Change for Lisp_Object selected_frame.
6761 (message3_nolog, message_with_string, message,
6762 setup_echo_area_for_printing, truncate_echo_area,
6763 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6764
67651999-09-13 Dave Love <fx@gnu.org>
6766
6767 * xterm.c: Don't continue #define args for benefit of old cc.
6768 (xt_action_hook): Indent #error for benefit of K&R cc.
6769
67701999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6771
6772 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6773 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6774 (XRINGBELL): Removed.
6775
67761999-09-13 Dave Love <fx@gnu.org>
6777
6778 * xfns.c (x_put_x_image): Make type consistent with declaration.
6779
6780 * fns.c (Fmake_hash_table): Fix string continuation.
6781
67821999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6783
6784 * xfns.c (QCfile): Moved to xdisp.c.
6785 (syms_of_xfns): Don't initialize QCfile.
6786 (check_x_frame): Change for Lisp_Object selected_frame.
6787 (check_x_display_info, x_get_resource_string): Ditto.
6788
67891999-09-13 Gerd Moellmann <gerd@gnu.org>
6790
6791 * minibuf.c (choose_minibuf_frame): Don't try to set the
6792 mini-buffer window's buffer, if the buffer is invalid.
6793
6794 * xfns.c (QCfile): Moved to xdisp.c.
6795 (syms_of_xfns): Don't initialize QCfile.
6796
6797 * xdisp.c (QCfile): Move here from xfns.c.
6798 (syms_of_xdisp): Initialize it.
6799
6800 * lisp.h (selected_frame): Add external declaration.
6801
6802 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6803 (Fx_store_cut_buffer_internal): Ditto.
6804 (Fx_rotate_cut_buffers_internal): Ditto.
6805
6806 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6807 selected_frame.
6808 (Finternal_set_lisp_face_attribute): Ditto.
6809 (Finternal_get_lisp_face_attribute): Ditto.
6810 (Finternal_lisp_face_empty_p): Ditto.
6811 (Fdump_face): Ditto.
6812
6813 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6814 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6815 set_terminal_window, set_scroll_region, reassert_line_highlight,
6816 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6817 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6818 encode_terminal_code, write_glyphs, term_init): Ditto.
6819
6820 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6821 (kbd_input_ast, read_input_waiting): Ditto.
6822
6823 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6824 selected_frame.
6825 (read_minibuf): Ditto.
6826
6827 * keyboard.c (command_loop_1): Change for Lisp_Object
6828 selected_frame.
6829 (cmd_error_internal, command_loop_1, read_char,
6830 kbd_buffer_get_event, read_avail_input,
6831 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6832 interrupt_signal, quit_throw_to_read_char): Ditto.
6833
6834 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6835 (Ffontset_info): DItto.
6836
6837 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6838
6839 * dispnew.c (selected_frame): Make it a Lisp_Object.
6840 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6841 (direct_output_for_insert, direct_output_forward_char,
6842 init_display): Ditto.
6843
6844 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6845 selected_frame.
6846 (set_internal): Ditto.
6847
6848 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6849 (record_buffer): Ditto.
6850
6851 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6852 (do_switch_frame): Change for Lisp_Object selected_frame.
6853 (Fselected_frame): Ditto.
6854 (Fframe_first_window): Use SELECTED_FRAME.
6855 (Fframe_root_window): Change for Lisp_Object selected_frame.
6856 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6857 Fprevious_frame, other_visible_frames, Fdelete_frame,
6858 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6859 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6860 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6861 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6862 Fset_frame_height, Fset_frame_width): Ditto.
6863
68641999-09-13 Gerd Moellmann <gerd@gnu.org>
6865
6866 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6867 (message3_nolog, message_with_string, message,
6868 setup_echo_area_for_printing, truncate_echo_area,
6869 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6870
6871 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6872 (Fx_popup_dialog): Ditto.
6873
6874 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6875 (check_x_display_info, x_get_resource_string): Ditto.
6876
6877 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6878 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6879 (XRINGBELL): Removed.
6880
6881 * window.c (Fminibuffer_window): Change for Lisp_Object
6882 selected_frame.
6883 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6884 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6885 Fcurrent_window_configuration, init_window_once): Ditto.
6886
6887 * frame.h (SELECTED_FRAME): New.
6888
68891999-09-12 Ken Raeburn <raeburn@gnu.org>
6890
6891 * category.c (word_boundary_p): Use XCAR and XCDR.
6892 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6893 Fregister_code_conversion_map): Likewise.
6894 * coding.c (setup_coding_system, detect_coding_system,
6895 Ffind_operation_coding_system, Fset_coding_priority_internal):
6896 Likewise.
6897 * doc.c (get_doc_string, Fdocumentation,
6898 store_function_docstring): Likewise.
6899 * editfns.c (save_restriction_restore): Likewise.
6900 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6901 skip_debugger, find_handler_clause, Fautoload, Fapply,
6902 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6903 Likewise.
6904 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6905 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6906 Fread_file_name): Likewise.
6907 * filelock.c (unlock_all_files): Likewise.
6908 * insdel.c (Fcombine_after_change_execute): Likewise.
6909 * intervals.c (adjust_intervals_for_insertion): Likewise.
6910 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6911 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6912 store_in_keymap, Fcopy_keymap, define_as_prefix,
6913 current_minor_maps, Faccessible_keymaps,
6914 accessible_keymaps_char_table, Fkey_description,
6915 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6916 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6917 describe_map): Likewise.
6918 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6919 read_list, init_lread): Likewise.
6920 * search.c (Fmatch_data): Likewise.
6921 * sunfns.c (Fsun_menu_internal): Likewise.
6922 * syntax.c (describe_syntax): Likewise.
6923 * undo.c (record_insert, record_delete, Fundo_boundary,
6924 truncate_undo_list): Likewise.
6925 * vmsproc.c (child_sig): Likewise.
6926
6927 * editfns.c (Fformat): Use XFLOAT_DATA.
6928
69291999-09-12 Gerd Moellmann <gerd@gnu.org>
6930
6931 * keyboard.c (command_loop_1): Resize mini-window to the
6932 exact size of a message displayed, if any.
6933
6934 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6935 to exact size if exact_p is non-zero.
6936 (display_echo_area_1): Call resize_mini_window with
6937 new parameter.
6938 (redisplay_internal): Ditto.
6939 (resize_echo_area_axactly): New.
6940
6941 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6942 new parameter.
6943
6944 * dispextern.h: Change prototype of resize_mini_window.
6945 Add prototype for resize_echo_area_axactly.
6946
6947 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6948 (syms_of_xfaces): Defsubr accordingly.
6949
6950 * xdisp.c (hscroll_window_tree): Choose cursor row from
6951 desired or current matrix.
6952 (redisplay_internal): Hscroll before updating.
6953
69541999-09-12 Gerd Moellmann <gerd@gnu.org>
6955
6956 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6957 of minibuffer_prompt_length.
6958
6959 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6960 of minibuffer_prompt_length.
6961 (read_minibuf_unwind): Ditto.
6962 (Fminibuffer_complete_and_exit): Ditto.
6963 (Fminibuffer_complete_word): Ditto.
6964 (Fminibuffer_prompt_end): Ditto.
6965
6966 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6967 of minibuffer_prompt_length.
6968 (Fline_beginning_position): Ditto.
6969
6970 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6971 of minibuffer_prompt_length.
6972 (Fmake_indirect_buffer): Ditto.
6973 (Fkill_buffer): Ditto.
6974 (Ferase_buffer): Ditto.
6975
6976 * buffer.h (prompt_end_charpos): Replaces
6977 minibuffer_prompt_length.
6978
427ec082 6979 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6980 without the prompt.
6981
6982 * editfns.c (make_buffer_string_both): Take out the code
6983 to handle mini-buffer prompts.
6984 (Fbuffer_string): Handle the prompt here, instead.
6985
6986 * xfaces.c (lface_from_face_name): Resolve face aliases.
6987 (Qmode_line): Replaces Qmodeline.
6988 (realize_basic_faces): Use Qmode_line.
6989 (syms_of_xfaces): Initialize Qmode_line.
6990
69911999-09-12 Gerd Moellmann <gerd@gnu.org>
6992
6993 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6994 current column after inserting prompt.
6995 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6996
6997 * xfaces.c (Qframe_update_face_colors): New.
6998 (syms_of_xfaces): Initialize call.
6999 (update_face_from_frame_parameter): Call that function when
7000 the frame's background changes.
7001
70021999-09-12 Richard Stallman <rms@gnu.org>
7003
7004 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
7005
70061999-09-12 Ken Raeburn <raeburn@gnu.org>
7007
7008 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
7009 mark_object, mark_buffer): Use XCAR and XCDR.
7010 * bytecode.c (Fbyte_code): Likewise.
7011 * callint.c (Fcall_interactively, Fprefix_numeric_value):
7012 Likewise.
7013 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
7014 getenv_internal): Likewise.
7015 * dired.c (file_name_completion): Likewise.
7016 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
7017 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
7018 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
7019 * indent.c (Fcompute_motion): Likewise.
7020 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
7021 list_processes_1, Fstart_process, Fopen_network_stream,
7022 wait_reading_process_input, read_process_output_call,
7023 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
7024 status_notify, wait_reading_process_input): Likewise.
7025 * textprop.c (PLIST_ELT_P, property_value, set_properties,
7026 extend_property_ranges): Likewise.
7027 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
7028 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
7029 x_report_frame_params, x_set_cursor_type, x_icon_type,
7030 x_figure_window_size, Fx_create_frame, w32_load_system_font,
7031 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
7032 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
7033 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
7034 x_display_info_for_name, Fx_display_list): Likewise.
7035 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
7036 Fx_popup_menu, Fx_popup_dialog): Likewise.
7037 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
7038 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
7039 w32_term_init, x_delete_display): Likewise.
7040 * xfns.c (x_window_to_frame, x_any_window_to_frame,
7041 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
7042 x_top_window_to_frame, x_set_frame_parameters,
7043 x_report_frame_params, x_set_cursor_type, x_icon_type,
7044 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
7045 Fx_display_list, x_create_tip_frame): Likewise.
7046 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
7047 Fx_popup_menu, Fx_popup_dialog): Likewise.
7048 * xselect.c (x_own_selection, x_get_local_selection,
7049 x_handle_selection_request, x_handle_selection_clear,
7050 x_clear_frame_selections, wait_for_property_change_unwind,
7051 wait_for_property_change, x_handle_property_notify,
7052 copy_multiple_data, x_get_foreign_selection,
7053 lisp_data_to_selection_data, clean_local_selection_data,
7054 x_handle_selection_notify, Fx_get_selection_internal,
7055 x_disown_buffer_selections): Likewise.
7056 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
7057 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
7058 Likewise.
7059
7060 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
7061 XFLOAT_DATA.
7062 * bytecode.c (Fbyte_code): Likewise.
7063 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
7064 fmod_float): Likewise.
7065
70661999-09-11 Richard Stallman <rms@gnu.org>
7067
7068 * xdisp.c (run_window_scroll_functions): If hook functions switch
7069 buffers, switch back after.
7070
70711999-09-11 Ken Raeburn <raeburn@gnu.org>
7072
7073 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7074 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7075 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7076 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7077 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7078 XCDR.
7079 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7080 XCDR.
7081
70821999-09-10 Richard Stallman <rms@gnu.org>
7083
7084 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7085 not RevertToPointerRoot.
7086 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7087 Fix the code to clear around the scroll bar.
7088
70891999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7090
7091 * print.c: Support print-circle and related features.
7092 (Vprint_gensym_alist): Removed.
7093 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7094 Vprint_number_table): New variables.
7095 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7096 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7097 (print, print_preprocess, print_preprocess_string, print_object):
7098 New/modified functions with print-circle feature. Use
7099 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7100 (syms_of_print): Defined new Lisp variables `print-circle',
7101 `print-continuous-numbering', `print-number-table'.
7102
71031999-09-10 Gerd Moellmann <gerd@gnu.org>
7104
7105 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7106 as background color specification instead of an integer.
7107 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7108 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7109 (clear_image_cache, syms_of_xfns): Use it.
7110 (Qpostscript): Replaces Qghostscript.
7111 (gs_type): Use it.
7112 (gs_image_p): Ditto.
7113 (syms_of_xfns): Initialize Qpostscript.
7114
71151999-09-10 Richard Stallman <rms@gnu.org>
7116
7117 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7118
71191999-09-09 Richard Stallman <rms@gnu.org>
7120
7121 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7122
7123 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7124
71251999-09-09 Gerd Moellmann <gerd@gnu.org>
7126
7127 * fns.c (Fmakehash): Accept just one optional argument TEST.
7128
7129 * xfns.c (QCindex): New.
7130 (syms_of_xfns): Initialize QCindex.
7131 (gif_load): Use it instead of `:image'.
7132
71331999-09-09 Richard Stallman <rms@gnu.org>
7134
7135 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7136 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7137
71381999-09-08 Gerd Moellmann <gerd@gnu.org>
7139
7140 * xdisp.c (Qwhen): Replaces QCwhen.
7141 (syms_of_xdisp): Initialized it instead of QCwhen.
7142 (handle_single_display_prop): Use it instead of QCwhen.
7143
71441999-09-08 Ken'ichi Handa <handa@gnu.org>
7145
7146 * charset.c (translate_char): Reset MSBs of arguments of
7147 MAKE_CHAR.
7148 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7149
71501999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7151
7152 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7153
7154 * fns.c (Fbase64_decode_region): Don't place point outside of the
7155 current accessible portion.
7156
71571999-09-07 Richard Stallman <rms@gnu.org>
7158
7159 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7160 parent is an ancestor of SUBMAP; otherwise, add it as the
7161 ultimate ancestor.
7162
71631999-09-07 Gerd Moellmann <gerd@gnu.org>
7164
7165 * xdisp.c (handle_single_display_prop): Change conditional
7166 display property to `:when FORM . VALUE'.
7167
71681999-09-07 Richard Stallman <rms@gnu.org>
7169
7170 * fileio.c (Fwrite_region): Doc fix.
7171
71721999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7173
7174 * fileio.c (Qexcl): New variable.
7175 (report_file_error): Handle EEXIST specially.
7176 (Fwrite_region): Special handling for CONFIRM = `excl'.
7177 (syms_of_fileio): Initialize Qexcl.
7178
71791999-09-07 Gerd Moellmann <gerd@gnu.org>
7180
7181 * xfns.c (x_set_foreground_color): Call
7182 update_face_from_frame_parameter.
7183 (x_set_background_color): Ditto.
7184 (x_set_mouse_color): Ditto.
7185 (x_set_cursor_color): Ditto.
7186 (x_set_border_color): Ditto.
7187 (x_set_scroll_bar_foreground): Ditto.
7188 (x_set_scroll_bar_background): Ditto.
7189
7190 * xfaces.c (recompute_basic_faces): Clear face cache.
7191 (Finternal_set_lisp_face_attribute): Modify frame parameters
7192 if attributes of certain faces are changed.
7193 (update_face_from_frame_parameter): New.
7194
7195 * xfaces.c (realize_basic_faces): Realize new basic faces.
7196
7197 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7198 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7199
7200 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7201 (syms_of_xfaces): Intialize new symbols.
7202
7203 * fns.c (Fmakehash): Take one argument, test, make all the
7204 rest keyword arguments.
7205
7206 * window.c (Fset_window_margins): Make window the first argument.
7207 (set_window_buffer): Call Fset_window_margins with window as first
7208 argument.
7209
72101999-09-07 Gerd Moellmann <gerd@gnu.org>
7211
7212 * xfaces.c (Qfringe): Replaces Qmargin.
7213
72141999-09-07 Kenichi Handa <handa@etl.go.jp>
7215
7216 * charset.h: Lots of comments fixed.
7217 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7218 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7219
7220 * charset.c : Lots of comments fixed.
7221 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7222 (CHAR_COMPONENTS_VALID_P): Name changed from
7223 CHAR_COMPONENT_VALID_P. Caller changed.
7224
72251999-09-06 Richard Stallman <rms@gnu.org>
7226
7227 * insdel.c (syms_of_insdel): Define Lisp variable
7228 inhibit-modification-hooks.
7229
72301999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7231
7232 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7233 unexaix.c.
7234
7235 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7236
72371999-09-06 Dave Love <fx@gnu.org>
7238
7239 * unexaix.c: New version incorporating Michael Sperber's changes
7240 from XEmacs. Should solve problems on AIX 4.3.
7241
7242 * lread.c (Vbyte_boolean_vars): New variable.
7243 (defvar_bool, syms_of_lread): Use it.
7244
72451999-09-05 Richard Stallman <rms@gnu.org>
7246
7247 * minibuf.c (read_minibuf): Put all three properties on the
7248 same range, the whole prompt.
7249
72501999-09-05 Gerd Moellmann <gerd@gnu.org>
7251
7252 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7253 (Fplay_sound, syms_of_sound): Use it.
7254 (parse_sound): Allow float volume values in the range [0, 1].
7255 (Fplay_sound): Ditto.
7256
7257 * window.c (Fset_window_vscroll): Make window the first argument,
7258 amount to scroll the second. Take non-negative vscroll as
7259 argument.
7260 (Fwindow_vscroll): Return non-negative vscroll.
7261
7262 * xfns.c (Fx_show_tip): Improve documentation.
7263
72641999-09-05 Gerd Moellmann <gerd@gnu.org>
7265
7266 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7267 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7268 `top-line' and `top_line' to `header-line' and `header_line'.
7269 Likewise for similar spellings.
7270
72711999-09-05 Gerd Moellmann <gerd@gnu.org>
7272
7273 * xdisp.c (row_containing_pos): New.
7274 (try_window_id): Use it.
7275
7276 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7277 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7278 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7279 Likewise for upper-case etc.
7280
72811999-09-05 Gerd Moellmann <gerd@gnu.org>
7282
7283 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7284 Fix reference to renamed variable.
7285
72861999-09-04 Gerd Moellmann <gerd@gnu.org>
7287
7288 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7289 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7290 Qfixed_window_size.
7291 (syms_of_window): Ditto.
7292
7293 * fns.c (Fmakehash): Exchange optional test and size arguments.
7294
72951999-09-03 Gerd Moellmann <gerd@gnu.org>
7296
7297 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7298 under newly created scroll bar.
7299 (expose_window): If window is not yet fully initialized, do
7300 nothing. This can happen when toolkit scroll bars are used and a
7301 window is split. Reconfiguring the scroll bars will generate an
7302 expose for a newly created window.
7303
7304 * frame.h (struct frame): New member `gamma'.
7305
7306 * xfns.c: Include math.h. Add extern declaration for atof in case
7307 we don't see one.
7308 (Qscreen_gamma): New.
7309 (struct x_frame_parm_table): Add prototypes, add
7310 x_set_screen_gamma.
7311 (gamma_correct): New function.
7312 (defined_color): Call it.
7313 (x_set_screen_gamma): New.
7314 (x_set_title): Add parameter old_value.
7315 (RES_TYPE_FLOAT): New.
7316 (x_get_arg): Handle RES_TYPE_FLOAT.
7317 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7318 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7319 new prototype.
7320 (lookup_rgb_color): Ditto.
7321 (syms_of_xfns): Initialize Qscreen_gamma.
7322
7323 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7324 New. Allocate color for lwlib widgets.
7325 (x_alloc_nearest_color): Change parameter list include the
7326 frame on which to allocate colors. Gamma-correct colors.
7327 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7328 parameter list.
7329
7330 * xterm.h: Change protorype of x_alloc_nearest_color.
7331
73321999-09-03 Richard Stallman <rms@gnu.org>
7333
7334 * callproc.c: Delete the system-independent include of stdlib.h
7335 (leaving only the one in the WINDOWSNT conditional).
7336
73371999-09-03 Andrew Choi <choi@cs.hku.hk>
7338
7339 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7340 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7341
26901792
DL
7342 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7343 Window types and macros.
7344
7345 * frame.h: Do nothing if included a second time.
7346 (enum output_method): Add mac_output frame type.
7347 (union output_data): Add new alternative `mac'.
7348 (FRAME_MAC_P): New macro.
427ec082 7349
26901792
DL
7350 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7351 (syms_of_frame_1): Initialize Qmac.
7352 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7353 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7354 (Fmodify_frame_parameters) [macintosh]: Call
7355 mac_set_frame_parameter in macterm.c.
427ec082 7356
26901792
DL
7357 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7358 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7359
26901792
DL
7360 * make-docfiles.c: Correctly handle input files with Mac-style
7361 eol's.
427ec082 7362
26901792 7363 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7364
26901792
DL
7365 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7366 file of an X Window environment.
427ec082 7367
26901792
DL
7368 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7369 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7370
26901792
DL
7371 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7372 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7373 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7374 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7375 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7376 New functions, replacing POSIX features.
427ec082 7377
26901792
DL
7378 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7379 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7380 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7381
7382 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7383 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7384 (myPasswdDir, TempDirName, sys_siglist): New variables.
7385
7386 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7387 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7388 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7389 Define empty stubs so Emacs will link.
7390
73911999-09-03 Gerd Moellmann <gerd@gnu.org>
7392
7393 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7394
7395 * window.h: New member frozen_window_start_p.
7396
7397 * window.c (foreach_window, foreach_window_1): New.
7398 (freeze_window_start, freeze_window_starts): New.
7399 (make_window): Initialize frozen_window_start_p.
7400 (replace_window): Ditto.
7401 (Fset_window_point): Remove references to deleted variables.
7402 (Fset_window_start): Ditto.
7403
7404 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7405 resize_mini_initial_height): Removed.
7406 (syms_of_xdisp): Remove references to these variables.
7407 (resize_mini_window): Don't save window configuration, freeze
7408 window starts instead. Enlarge window until displaying an empty
7409 buffer, then shrink it. Make the function externally visible.
7410 (redisplay_window): Treat frozen window start like forced start,
7411 but accept point outside of the window.
7412
7413 * dispextern.h: Add function prototype for resize_mini_window.
7414
7415 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7416 reaching minibuf_level 0.
7417
7418 * lisp.h: Remove extern declarations for variables deleted from
7419 xdisp.c.
7420
7421 * dispnew.c (adjust_frame_glyphs): Remove reference to
7422 Vresize_mini_config.
7423
74241999-09-03 Gerd Moellmann <gerd@gnu.org>
7425
7426 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7427 to USE_TOOLKIT_SCROLL_BARS.
7428
7429 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7430 here.
7431 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7432 under newly created scroll bar. Put toolkit scroll bars in the
7433 middle of the area reserved for the scroll bar.
7434
74351999-09-03 Kenichi Handa <handa@etl.go.jp>
7436
7437 The following changes are for the new handling of mulitbyte
7438 sequence. Now, except for a composite character, no multibyte
7439 character in string/buffer has trailing garbage bytes. For
7440 instance, the length of string "\201\300\300" is now 2, the first
7441 character is Latin-1 A-grave, the second is raw \300.
7442
7443 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7444 are negative.
7445 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7446 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7447 (PARSE_COMPOSITE_SEQ): New macro.
7448 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7449 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7450 (CHAR_PRINTABLE_P): New macro.
7451 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7452 (STRING_CHAR_AND_LENGTH): Likewise.
7453 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7454 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7455 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7456
7457 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7458 (SPLIT_CHARACTER_SEQ): New macro.
7459 (SPLIT_MULTIBYTE_SEQ): New macro.
7460 (CHAR_COMPONENT_VALID_P): New macro.
7461 (non_ascii_char_to_string): Generate a multibyte sequence as far
7462 as possible.
7463 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7464 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7465 (split_non_ascii_string): Likewise.
7466 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7467 (char_printable_p): New function.
7468 (translate_char): Check character by NATNUMP instead of INTEGERP.
7469 (unibyte_char_to_multibyte): Call char_valid_p instead of
7470 VALID_MULTIBYTE_CHAR_P.
7471 (Fmake_char_internal): Check the arguments more rigidly.
7472 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7473 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7474 (Fmultibyte_char_to_unibyte): Check the validity of character by
7475 CHAR_VALID_P.
7476 (chars_in_text): Call multibyte_chars_in_text.
7477 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7478 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7479 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7480
7481 * data.c (Faset): Adjust the way to check byte-combining
7482 possibility for the new handling of multibyte sequence.
7483
7484 * editfns.c (Fsubst_char_in_region): Likewise.
7485
7486 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7487 (string_char_to_byte): Likewise.
7488 (string_byte_to_char): Likewise.
7489
7490 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7491 macro STRING_CHAR_AND_LENGTH. Caller changed.
7492
7493 * insdel.c (count_combining_composition): New function.
7494 (count_combining_before): Adjust the way to check byte-combining
7495 possibility for the new handling of multibyte sequence. Call
7496 count_combining_composition for a composite character.
7497 (count_combining_after): Likewise.
7498
7499 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7500 (print): Likewise.
7501
7502 * dispextern.h (struct it): Change the size of the member
7503 `ctl_chars'.
7504
7505 * xdisp.c (get_next_display_element): Display incomplete multibyte
7506 sequence (e.g. \222\300) by octal form.
7507
75081999-09-02 Gerd Moellmann <gerd@gnu.org>
7509
7510 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7511
7512 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7513 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7514
75151999-09-02 Gerd Moellmann <gerd@gnu.org>
7516
7517 * buffer.c (set_buffer_internal): Never set
7518 windows_or_buffers_changed.
7519
7520 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7521 if we have displayed to the bottom of the window.
7522
7523 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7524 in both directions. Extend documentation.
7525
75261999-09-01 Gerd Moellmann <gerd@gnu.org>
7527
7528 * minibuf.c (read_minibuf): Flush display after setting cursor to
7529 column 0.
7530
75311999-08-31 Gerd Moellmann <gerd@gnu.org>
7532
7533 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7534 already defined. This avoids a warning from buffer.c.
7535
75361999-08-30 Gerd Moellmann <gerd@gnu.org>
7537
7538 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7539 of both margins.
7540 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7541 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7542 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7543
7544 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7545 once instead of twice.
7546 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7547
7548 * xterm.c: Remove unused bitmaps.
7549 (continued_bits, continuation_bits, overlay_bits): Change images.
7550 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7551 instead of FRAME_X_FLAGS_AREA_WIDTH.
7552 (x_after_update_window_line): Ditto.
7553 (x_draw_bitmap): Likewise.
7554 (x_draw_row_bitmaps): Likewise.
7555 (x_draw_glyph_string_box): Likewise.
7556 (x_draw_glyphs): Likewise.
7557 (x_scroll_run): Likewise.
7558 (expose_window_tree): Likewise.
7559 (note_mode_line_highlight): Likewise.
7560 (XTset_vertical_scroll_bar): Likewise.
7561 (x_clip_to_row): Likewise.
7562 (x_set_window_size): Likewise.
7563
7564 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7565 of 2 * that value.
7566
7567 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7568 2 * that value.
7569 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7570 FRAME_FLAGS_AREA_WIDTH.
7571
7572 * window.c (coordinates_in_window): Use
7573 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7574 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7575 instead of twice.
7576
427ec082 7577 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7578 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7579 (EmacsFrameSetCharSize): Ditto.
7580
7581 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7582 instead of FRAME_FLAGS_AREA_WIDTH.
7583
7584 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7585 FRAME_FLAGS_AREA_COLS once.
7586 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7587 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7588
75891999-08-30 Gerd Moellmann <gerd@gnu.org>
7590
7591 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7592 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7593
75941999-08-30 Gerd Moellmann <gerd@gnu.org>
7595
7596 * fns.c (QCweakness): Replaces QCweak.
7597 (Fmake_hash_table): Ditto.
7598 (Fmakehash): Ditto.
7599 (syms_of_fns): Ditto.
7600
76011999-08-29 Richard Stallman <rms@gnu.org>
7602
7603 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7604
7605 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7606
7607 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7608 Add support for nested comments.
7609
863476d1
SM
7610 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7611 Consolidate the forward comment code into the new `forw_comment'.
7612 (forw_comment): New subroutine. Added support for nested comments.
7613 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7614 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7615
76161999-08-28 Ken Raeburn <raeburn@gnu.org>
7617
7618 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7619 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7620 defined, to help detect code that uses knowledge of the Lisp
7621 internals that it shouldn't have.
7622 (XFLOAT_DATA): New macro.
7623
76241999-08-25 Gerd Moellmann <gerd@gnu.org>
7625
7626 * syntax.c (Fforward_word): If in a mini-buffer and moving
7627 backwards, stop in front of the prompt to prevent accidentially
7628 moving into the read-only prompt.
7629
7630 * window.c (Frecenter): Clear frame if called with nil or no arg.
7631
7632 * xdisp.c (resize_mini_window): Don't resize if
7633 Vmax_mini_window_height is nil. Otherwise, use a default if
7634 Vmax_mini_window_height is not ot a number.
7635 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7636
76371999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7638
7639 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7640 * m/iris4d.h: Use unexelf for IRIX 5.*.
7641 * m/iris5d.h: Use unexelf for IRIX 6.*.
7642 * unexsgi.c: Deleted.
7643
7644 * unexelf.c: Auto-detect .sbss section.
7645 (round_up): Make it static.
7646 (unexec): Declare alignment as Elf Word. Skip ``Program
7647 segment above .bss'' test on MIPS without .sbss.
7648 Copy sections .got and .sdata1 sections. Adjust offsets in
7649 sections .sdata, .lit4, .lit8, .got and .sdata1.
7650
76511999-08-25 Gerd Moellmann <gerd@gnu.org>
7652
7653 * xdisp.c (try_window_id): Remove typo.
7654
76551999-08-24 Gerd Moellmann <gerd@gnu.org>
7656
7657 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7658 unchanged text at the bottom when computing the cursor position.
7659 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7660 set.
7661
7662 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7663
76641999-08-24 Gerd Moellmann <gerd@gnu.org>
7665
7666 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7667 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7668 (syms_of_xfaces): Ditto.
7669
7670 * window.c (Fset_window_point): Reset Vresize_mini_config.
7671 (Fset_window_start): Ditto.
7672 (set_window_buffer): Ditto.
7673
7674 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7675
7676 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7677 before calling try_window.
7678 (echo_area_display): If height has changed, update other windows.
7679 (resize_mini_frame, resize_mini_initial_height): New.
7680 (resize_mini_window): Save/restore window configuration
7681 differently.
7682
427ec082 7683 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7684 resize_mini_initial_height): Add extern declarations.
7685
7686 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7687 CANON_X_UNIT.
7688
7689 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7690 being redefined in jconfig.h.
7691
76921999-08-23 Ken'ichi Handa <handa@gnu.org>
7693
7694 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7695
76961999-08-22 Gerd Moellmann <gerd@gnu.org>
7697
7698 * alloc.c (mark_glyph_matrix): Mark strings only.
7699
7700 * xdisp.c (redisplay_internal): Clear garbaged frames after
7701 resizing mini-window.
7702
77031999-08-22 Gerd Moellmann <gerd@gnu.org>
7704
7705 * xdisp.c (unwind_with_echo_area_buffer): Use
7706 set_buffer_internal_1 instead of set_buffer_internal.
7707 (with_echo_area_buffer): Ditto.
7708
7709 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7710 only if buffer is displayed somewhere.
7711
7712 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7713
7714 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7715 (gap_right): Ditto.
7716 (modify_region): Ditto.
7717
7718 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7719
7720 * xdisp.c (Vresize_mini_config): New.
7721 (resize_mini_window): Use it to save restore original window
7722 configuration
7723 (syms_of_xdisp): Initialize it.
7724
7725 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7726
7727 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7728
7729 * xdisp.c (reconsider_clip_changes): New.
7730 (redisplay_internal, redisplay_window): Call it.
7731 (mark_window_display_accurate, redisplay_internal): Set current
7732 matrix' buffer, begv, zv.
7733
7734 * window.c (Fset_window_hscroll): Set
7735 prevent_redisplay_optimizations_p instead of clip_changed.
7736 (Fset_window_hscroll): Ditto.
7737 (temp_output_buffer_show): Ditto.
7738 (Fset_window_vscroll): Ditto.
7739
7740 * buffer.c (reset_buffer): Set clip_changed to 0 and
7741 prevent_redisplay_optimizations_p to 1.
7742 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7743
7744 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7745 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7746 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7747 END_UNCHANGED): New.
7748 (struct buffer_text): Add beg_unchanged, end_unchanged,
7749 unchanged_modified, overlay_unchanged_modified.
7750
7751 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7752 overlay_unchanged_modified): Removed.
7753 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7754 (unwind_with_echo_area_buffer): Don't restore them.
7755 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7756 (text_outside_line_unchanged_p, redisplay_internal,
7757 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7758 (redisplay_window): Let try_window_id be called if more than one
7759 window is displayed. Use/set buffer-specific beg/end_unchanged.
7760 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7761 try_window_id):
7762 Use buffer-specific beg/end_unchanged.
7763
7764 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7765 overlay_unchanged_modified): Remove extern declarations.
7766
7767 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7768 buffer.
7769
7770 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7771 (gap_right): Ditto.
7772 (adjust_after_replace): Likewise.
7773 (replace_range, del_range_2, modify_region): Likewise.
7774
7775 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7776 and unchanged_modified per buffer.
7777
7778 * coding.c (code_convert_region): Compute beg/end_unchanged per
7779 buffer.
7780
7781 * buffer.c (modify_overlay): Compute beg/end_unchanged
7782 per buffer.
427ec082 7783 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7784 structure.
7785
77861999-08-22 Gerd Moellmann <gerd@gnu.org>
7787
7788 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7789
7790 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7791 (Qkey_value_weak): Removed.
7792 (make_hash_table): Use nil, `key', `value', t for weakness.
7793 (Fmake_hash_table): Ditto.
7794 (copy_hash_table): New.
7795 (Fcopy_hash_table): New.
7796
77971999-08-22 Gerd Moellmann <gerd@gnu.org>
7798
7799 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7800 new parameter.
26901792
DL
7801
78021999-08-21 Gerd Moellmann <gerd@gnu.org>
7803
7804 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7805 well.
427ec082 7806 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7807 have changed.
7808 (display_echo_area): Reset displayed echo_area_buffer to nil
7809 at the end if we're displaying a nil message.
7810
78111999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7812
26901792
DL
7813 * fns.c (hash_lookup): Test with EQ before calling key comparion
7814 function.
7815 (hash_remove): Ditto.
7816 (cmpfn_eq): Removed.
7817 (cmpfn_eql): Don't test with EQ.
7818 (cmpfn_equal): Ditto.
7819 (make_hash_table): Set comparison function for `eq' to null.
7820
7821 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7822 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7823
7824 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7825
7826 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7827 xterm.c: Call change_frame_size and do_pending_window_change with
7828 new parameter.
7829
7830 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7831 (change_frame_size): Ditto.
7832 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7833 and not called from a safe place.
7834 (window_change_signal): Call change_frame_size with new parameter.
7835
7836 * dispextern.h: Change prototypes for do_pending_window_change
7837 and change_frame_size.
7838
7839 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7840 window's buffers equals current_buffer; this is not the
26901792
DL
7841 case during echo area display.
7842
78431999-08-21 Gerd Moellmann <gerd@gnu.org>
7844
7845 * xdisp.c, minibuf.c: Remove conditional compilation on
7846 NO_PROMPT_IN_BUFFER.
7847
7848 * minibuf.c (Fminibuffer_prompt_end): New.
7849 (syms_of_minibuf): Defsubr it. Remove
7850 minibuffer-prompt-in-buffer.
7851 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7852 Extend documentation.
7853
7854 * xdisp.c (get_next_display_element): Display \r as ^M.
7855
7856 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7857 under scroll bar widget.
7858
78591999-08-21 Gerd Moellmann <gerd@gnu.org>
7860
7861 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7862 anywhere.
7863 (unwind_redisplay): Return nil.
7864 (clear_garbaged_frames): New.
7865 (redisplay_internal): Use it.
7866 (echo_area_display): Ditto.
7867 (resize_mini_window): Mew.
7868 (display_echo_area_1): Use it to resize echo area window.
7869 (redisplay_internal): Use it to resize active mini-window.
7870
7871 * dispextern.h, lisp.h: Add function prototypes.
7872
427ec082 7873 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7874 cursor_in_echo_area case only for a mini-window showing
7875 a message. Don't let cursor end up after the end of a row.
7876
7877 * xdisp.c (echo_area_glyphs, echo_area_message,
7878 echo_area_glyphs_length, previous_echo_glyphs,
7879 previous_echo_area_message, previous_echo_area_glyphs_length):
7880 Removed.
7881 (Vmessage_stack, echo_area_buffer, echo_buffer,
7882 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7883 (message2_nolog): Use set_message and clear_message.
7884 (message3): Rename parameter len to nbytes to make clear what
7885 it is.
7886 (message3_nolog): Ditto. Use set_message and clear_message.
7887 (update_echo_area): Rewritten.
7888 (with_echo_area_buffer): New.
7889 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7890 (setup_echo_area_for_printing): New.
7891 (display_echo_area, display_echo_area_1): New.
7892
7893 (current_message, current_message_1): New.
427ec082 7894 (push_message, restore_message, pop_message,
26901792
DL
7895 check_message_stack): New.
7896 (truncate_echo_area): Rewritten.
7897 (truncate_message_1): New.
7898 (set_message, set_message_1, clear_message): New.
7899 (echo_area_display): Rewritten.
7900 (redisplay_internal): Check for needed echo area update
7901 differently.
7902 (redisplay_preserve_echo_area): Rewritten.
427ec082 7903 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7904 message differently.
7905 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7906 Remove initialzation of removed variables.
7907 (init_xdisp): Remove references to removed variables.
7908
7909 * dispnew.c (adjust_frame_message_buffer): Removed references
7910 to echo_area_glyphs and previous_echo_glyphs.
7911 (direct_output_for_insert): Check for mini-window displaying
7912 echo area message differently.
7913 (update_frame): Likewise.
7914 (set_window_cursor_after_update): Likewise. In echo area,
7915 don't try to set cursor on rows that aren't enabled.
7916
7917 * print.c: Remove conditional compilation on `standalone'.
7918 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7919 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7920 longer used in that way.
7921 (PRINTDECLARE): Add multibyte.
7922 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7923 (printbufidx): Removed.
7924 (printchar, strout): Rewritten.
7925
7926 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7927 a struct kboard.
7928 (echo_kboard): New.
7929 (echo_now): Set echo_kboard to the current kboard.
7930 (cancel_echoing): Set echo_kboard to null.
7931 (cmd_error_internal): Use clear_message, remove references
7932 to echo_area_glyphs and echo_area_message.
7933 (command_loop_1): Check for echo area messages differently.
7934 (read_char): Likewise.
7935 (record_menu_key): Use clear_message.
7936 (Fexecute_extended_command): Check for echo area messages
7937 differently. Use push_message, restore_message, pop_message.
7938
7939 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7940 pop_message.
7941
7942 * emacs.c (shut_down_emacs): Call check_message_stack.
7943
7944 * lisp.h: Add function prototypes and extern declarations for
7945 new functions and variables.
7946
7947 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7948 pop_message.
7949
427ec082 7950 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7951 setting echo_area_glyphs.
7952 (Fminibuffer_completion_help): Ditto.
7953
7954 * editfns.c (Fcurrent_message): Rewritten.
7955
7956 * frame.c, window.h: Remove references to echo_area_glyphs
7957 and previous_echo_glyphs.
7958
79591999-08-21 Dave Love <fx@gnu.org>
7960
7961 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7962 * aix4-1.h: Likewise.
7963
7964 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7965
79661999-08-20 Gerd Moellmann <gerd@gnu.org>
7967
7968 * xfns.c: Remove tiff34 prefix from include.
7969
79701999-08-20 Dave Love <fx@gnu.org>
7971
7972 * cm.c: Revert previous change.
7973
79741999-08-19 Gerd Moellmann <gerd@gnu.org>
7975
7976 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7977 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7978
79791999-08-18 Dave Love <fx@gnu.org>
7980
7981 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7982 stdlib.h.
7983
7984 * doprnt.c: Use stdlib.h, unistd.h.
7985
7986 * config.in: Add HAVE_TERMCAP_H.
7987
7988 * cm.c: Use termcap.h.
7989
79901999-08-18 Gerd Moellmann <gerd@gnu.org>
7991
7992 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7993 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7994 cannot be created we will already have crashed earlier. Call
7995 lw_set_main_areas with a null menu-bar widget, so that we have
7996 a reasonable default.
7997 (Fx_create_frame): Rearranged so that Lisp errors during frame
7998 initialization cause less damage. Initialize menu bar widget
7999 here.
8000
80011999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 8002
26901792
DL
8003 * dispnew.c (update_frame_line): Fix previous change. If writing
8004 whole line clear to end of frame.
8005
80061999-08-17 Gerd Moellmann <gerd@gnu.org>
8007
8008 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
8009 and `right-bitmap-area' if position is in the bitmap areas. This
8010 avoids an error when clicking on the bitmap areas. Instead, they
8011 are currently treated like clicks inside the window.
8012 (coordinates_in_window): Return 5 and 6 for bitmap areas.
8013 (Qleft_bitmap_area, Qright_bitmap_area): New.
8014 (syms_of_window): Initialize new symbols.
8015
8016 * dispnew.c (update_frame_line): If writing whole line,
8017 don't write trailing spaces unless we must.
8018
8019 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
8020 (redisplay_internal): Register unwind_redisplay with
8021 register_unwind_protect.
8022 (try_window_reusing_current_matrix): If new start > old start,
8023 give up if start pos of first reusable row is not equal to new
8024 start.
8025
8026 * eval.c (Fsignal): Don't reset redisplaying_p here.
8027
8028 * xterm.c (expose_area): If row extends face to end of line,
8029 write the whole line.
8030
80311999-08-16 Gerd Moellmann <gerd@gnu.org>
8032
8033 * dispextern.h (struct it): Remove member
8034 show_trailing_whitespace_p.
8035
8036 * dispnew.c (direct_output_for_insert): Use
8037 Vshow_trailing_whitespace instead of former iterator member
8038 show_trailing_whitespace_p.
8039 (direct_output_forward_char): Don't do it if hightlighting
8040 trailing whitespace.
8041
8042 * xdisp.c (Qshow_trailing_whitespace): Removed.
8043 (Vshow_trailing_whitespace): Added.
8044 (init_iterator): Remove initialization code for
8045 show_trailing_whitespace_p.
8046 (redisplay_internal): Don't try cursor movement in this_line
8047 if showing trailing whitespace.
8048 (redisplay_window): Likewise for cursor movement in current
8049 matrix and try_window_id.
8050 (try_window_reusing_current_matrix): Likewise.
8051 (trailing_whitespace_p): Return 0 if trailing whitespace is
8052 in front of point.
8053 (display_line): Use Vshow_trailing_whitespace instead of
8054 former iterator member show_trailing_whitespace_p.
8055 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
8056
80571999-08-16 Gerd Moellmann <gerd@gnu.org>
8058
8059 * window.c (Fpos_visible_in_window_p): Rewritten.
8060
8061 * xfaces.c (add_to_log): Renamed from display_message.
8062 Don't display messages in echo area.
8063
8064 * xterm.c (x_draw_glyph_string_box): Use the background width
8065 of the glyph string for the width of the box.
8066
80671999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8068
8069 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8070
80711999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8072
8073 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8074 background first, and then set other parameters that might
8075 depend upon their new values.
8076
80771999-08-15 Gerd Moellmann <gerd@gnu.org>
8078
8079 * xfaces.c (Vfont_list_limit): New.
8080 (syms_of_xfaces): Make it a user-variable.
8081 (DEFAULT_FONT_LIST_LIMIT): New.
8082 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8083 maximally that number of fonts, otherwise use
8084 DEFAULT_FONT_LIST_LIMIT.
427ec082 8085 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8086 until we have all fonts.
8087 (Fxfont_list): Additionally return the full names of fonts and
8088 their registry and encoding.
8089
427ec082 8090 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8091 Simplify clearing "under" scroll bar.
8092
8093 * window.c (Qfixed_window_size): New.
8094 (syms_of_window): Initialiaze it.
8095 (check_all_windows): Add return type void.
8096 (window_fixed_size_p): New. Return non-zero if window
8097 is fixed-size.
8098 (window_min_size_1): New.
8099 (window_min_size): Handle fixed-size windows.
8100 (size_window): New. Rewritten combination of set_window_height and
8101 set_window_width that handles fixed-size windows.
8102 (set_window_height): Call it.
8103 (set_window_width): Call it.
8104 (Fsplit_window): Give an error on attempt to split a fixed-size
8105 window.
8106 (change_window_height): Partly rewritten to handle fixed-size
8107 windows.
8108
81091999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8110
8111 * process.c (Fopen_network_stream): Fix previous change.
8112
81131999-08-13 Karl Heuer <kwzh@gnu.org>
8114
8115 * xdisp.c (line_number_display_limit_width): New var.
8116 (decode_mode_spec): Use it instead of hardcoded value.
8117 (syms_of_xdisp): Defvar it.
8118
81191999-08-13 Richard M. Stallman <rms@gnu.org>
8120
8121 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8122 (run_hook_with_args): Likewise.
8123
8124 * window.h (struct window): New field too_small_ok.
8125
427ec082 8126 * window.c (set_window_height, set_window_width):
26901792
DL
8127 If window starts out "too small", set its too_small_ok flag.
8128 If window's too_small_ok flag is set, don't delete it
8129 unless it is so small it would cause a crash.
8130
81311999-08-13 Gerd Moellmann <gerd@gnu.org>
8132
8133 * window.c (MINSIZE): Removed.
8134 (window_min_size): New.
8135 (set_window_height): Use window_min_size.
8136 (change_window_height): Ditto.
8137
81381999-08-12 Gerd Moellmann <gerd@gnu.org>
8139
8140 * indent.c (vmotion): Don't add in mini-buffer prompt width
8141 if prompts are inserted into mini-buffer.
8142
81431999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8144
8145 * config.in: Add HAVE_GETADDRINFO.
8146 * process.c (Fopen_network_stream): Use getaddrinfo.
8147
81481999-08-11 Gerd Moellmann <gerd@gnu.org>
8149
8150 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8151 glyphs to -1.
8152
8153 * xdisp.c (face_before_or_after_it_pos): If position after
8154 or before iterator's current position in the buffer is out
8155 of bounds, return the iterator's original face id.
8156
8157 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8158 just swap glyphs pointers between current and desired row.
8159 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8160 desired matrix method string to current matrix.
8161
81621999-08-11 Kenichi Handa <handa@etl.go.jp>
8163
8164 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8165
8166 * lread.c (read_escape): For Control modifier, pay attention to
8167 multibyte character.
8168 (read1): Likewise. Singal error or a multibyte character which
8169 has a modifer bit. Check validity of Shift modifer.
8170
8171 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8172 the same as Lisp reader.
8173
81741999-08-10 Richard M. Stallman <rms@gnu.org>
8175
8176 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8177
81781999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8179
8180 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8181
81821999-08-10 Eli Zaretskii <eliz@gnu.org>
8183
8184 * msdos.c (IT_set_face): Abort if the default face is not realized
8185 and cached.
8186 (IT_write_glyphs): Reset the screen face to the default face
8187 before writing glyphs.
8188
8189 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8190 colors from the frame here.
8191 (realize_tty_face) [MSDOS]: Do it here. Update the face
8192 attributes with the actual name of the color taken from the
8193 frame.
8194
8195 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8196 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8197
8198 * frame.c (Fframe_parameters): Swap foreground and background
8199 colors returned in frame parameters if the frame has reverse in
8200 its parameter alist.
8201 (Fmake_terminal_frame): Make a unique copy of face_alist for
8202 each frame.
8203
82041999-08-07 Richard Stallman <rms@gnu.org>
8205
8206 * buffer.c (Fprevious_overlay_change): Just return
8207 the answer obtained from overlays_at.
8208
8209 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8210 Use XpmCloseness and attrs.closeness instead.
8211
82121999-08-06 Richard Stallman <rms@gnu.org>
8213
8214 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8215
82161999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8217
427ec082 8218 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8219 Ffile_attributes_lessp): New functions.
8220 (Fdirectory_files): Use directory_files_internal.
8221 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8222 Ffile_attributes_lessp.
8223
8224 * w32.c (stat): Check for directory ending in separator when
8225 doing readdir fast path.
8226
8227 * w32fns.c (x_set_icon_type): Support setting frame icons.
8228 * w32term.c (x_bitmap_icon): New function.
8229 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8230
26901792
DL
82311999-08-06 Gerd Moellmann <gerd@gnu.org>
8232
8233 * xdisp.c (set_iterator_to_next): After delivering a character
8234 from a display vector, restore face and charset to what they were
8235 before the display vector was processed.
8236
82371999-08-06 Gerd Moellmann <gerd@gnu.org>
8238
8239 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8240 on_newline_p.
8241 (set_iterator_to_next): After delivering last char
427ec082 8242 from display vector, reseat on next visible line start if
26901792
DL
8243 dpvec_char_len < 0.
8244 (next_element_from_buffer): Set dpvec_char_len to -1 for
8245 selective display.
8246
82471999-08-06 Gerd Moellmann <gerd@gnu.org>
8248
8249 * xdisp.c (compute_line_metrics): If first line's physical ascent
8250 is larger than its logical ascent, use the physical ascent, and
8251 make the row taller. Set row's overlapping_p flag.
8252
8253 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8254 (direct_output_for_insert): Ditto.
8255
8256 * dispextern.h (struct glyph_row): Add overlapping_p.
8257
8258 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8259
8260 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8261 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8262
8263 * dispnew.c (direct_output_for_insert): Don't use this method if
8264 row is overlapped by others.
8265 (update_text_area): Write full line if current line is overlapped.
8266 (redraw_overlapped_rows): New.
8267 (update_window): Call it.
8268 (redraw_overlapping_rows): New.
8269 (update_window): Call it.
8270 (scrolling_window): Make sure overlapped_p flag in current rows is
8271 unchanged.
8272 (row_equal_p): Take rows overlapped_p flag into account.
8273
8274 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8275
8276 * xterm.c (x_fix_overlapping_area): New.
8277 (x_redisplay_interface): Add x_fix_overlapping_area.
8278
8279 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8280
82811999-08-06 Gerd Moellmann <gerd@gnu.org>
8282
8283 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8284 (struct glyph_string): Add member for_overlaps_p.
8285 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8286 of overlapping rows, clip to window bottom.
8287 (x_fill_glyph_string): Add parameter overlaps_p.
8288 (x_fill_composite_glyph_string): Ditto.
8289 (BUILD_GLYPH_STRINGS): Ditto.
8290 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8291 (x_draw_glyph_string): Don't draw anything but the foreground
8292 if glyph string draws row overlaps.
8293
8294 * dispnew.c (direct_output_for_insert): Don't use this
8295 optimization for rows that overlap others.
8296 (update_window_line): Return non-zero if display has changed.
8297 (update_text_area): Ditto.
8298 (update_window): Record if display has been changed.
8299
8300 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8301
8302 * dispextern.h (struct redisplay_interface): Add
8303 fix_overlapping_area.
8304
8305 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8306
8307 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8308
8309 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8310 ascent and descent.
8311 (x_produce_stretch_glyph): Ditto.
8312 (x_produce_glyphs): Ditto.
8313
8314 * xdisp.c (init_iterator): Reset physical line height info
8315 after producing special glyphs.
8316 (display_toolbar_line): Set physical line height info.
8317 (compute_line_metrics): Ditto.
8318 (display_line): Ditto.
8319 (display_string): Ditto.
8320
8321 * term.c (produce_glyphs): Set iterator's physical height
8322 information.
8323
8324 * dispnew.c (blank_row): Compute glyph row's physical height.
8325 (row_equal_p): Take physical row heights into account.
8326 (direct_output_for_insert): Ditto.
8327 (update_text_area): Ditto.
8328
8329 * dispextern.h (struct glyph_row): Add phys_ascent and
8330 phys_height.
8331 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8332 max_phys_descent.
8333
83341999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8335
8336 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8337 Fswitch_to_buffer.
8338 (no_switch_buffer): New function.
8339 (Fswitch_to_buffer): Call them. Don't get confused
8340 by "same-window" buffers in a dedicated frame.
8341
8342 * window.c (display-buffer): Don't get confused
8343 by "same-window" buffers in a dedicated frame.
8344
83451999-08-04 Andreas Schwab <schwab@gnu.org>
8346
8347 * insdel.c (insert_from_string_1): Check gap size against number
8348 of outgoing bytes, not incoming bytes.
8349
83501999-08-03 Tom Breton <tob@world.std.com>
8351
8352 * lread.c (read1): Added circular reading code to #N=.
8353 (SUBSTITUTE): New macro.
8354 (seen_list): New variable.
8355 (substitute_object_in_subtree): New function.
8356 (substitute_object_recurse): New function.
8357 (substitute_in_interval): New function.
8358
83591999-08-02 Eli Zaretskii <eliz@gnu.org>
8360
8361 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8362
8363 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8364 noninteractive, for termcap frames as well.
8365
8366 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8367 frames.
8368
83691999-08-01 Richard Stallman <rms@gnu.org>
8370
8371 * fns.c (internal_equal): Correct overlay comparison.
8372
83c8f461 83731999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8374
427ec082 8375 * xfns.c (x_set_internal_border_width):
26901792
DL
8376 Call do_pending_window_change. Don't block input, don't call XFlush.
8377 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8378 (x_set_scroll_bar_width, x_set_font): Likewise.
8379
8380 * frame.c (Fset_frame_height): Call do_pending_window_change.
8381 (Fset_frame_width, Fset_frame_size): Likewise.
8382
8383 * xterm.c (x_set_window_size): When calling change_frame_size,
8384 specify 1 for DELAY.
8385
8386 * widget.c (EmacsFrameSetCharSize): Don't call
8387 do_pending_window_change here.
8388
83891999-07-30 Dave Love <fx@gnu.org>
8390
8391 * config.in: Add HAVE_STDLIB_H.
8392
83931999-07-30 Richard M. Stallman <rms@gnu.org>
8394
8395 * process.c (create_process): Detect failure of `pipe'.
8396
83971999-07-30 Keisuke Nishida <kei@psn.net>
8398
8399 * alloc.c (allocate_vectorlike): Add missing increment.
8400
8401 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8402
8403 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8404 before calling indirect_function.
8405
84061999-07-30 Eli Zaretskii <eliz@gnu.org>
8407
8408 * dispextern.h (load_color, lookup_derived_face): Declare
8409 prototypes.
8410
8411 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8412 it will be done later.
8413
8414 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8415 init_frame_faces if non-interactive.
8416 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8417 array with a call to msdos_stdcolor_name. The font name is now
8418 "ms-dos", consistent with realize_tty_face.
8419
8420 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8421 MSDOS frame.
8422
8423 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8424 x_set_toolbar_lines.
8425
8426 * xfaces.c (load_color): Remove static from definition and remove
8427 prototype.
8428 [MSDOS]: Add a DOS-specific version of load_color.
8429 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8430 (lookup_derived_face): New function.
8431 (realize_default_face): Support MSDOS frames.
8432 [MSDOS]: If fore/background colors are unspecified, inherit them
8433 from the frame.
8434 (realize_face): Support MSDOS frames.
8435 (realize_tty_face): Support MSDOS frames.
8436 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8437 load_color to try to find a suitable approximation. If the face
8438 is inverse-video, swap the foreground and background colors.
8439
8440 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8441 functions.
8442
8443 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8444
8445 * msdos.h: Remove redundant declarations (most of them are now in
8446 dispextern.h).
8447
8448 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8449 Use default frame colors if the face doesn't specify them; invert
8450 the colors if highlight is ON.
8451 (IT_write_glyphs): Rewritten for the new redisplay engine.
8452 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8453 how the hook is called by term.c.
8454 (IT_copy_glyphs): New function, copies an area of the display in
8455 video RAM.
8456 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8457 redisplay now calls it even if char_ins_del_ok is zero.
8458 (IT_set_frame_parameters): Prototype changed. Calls the new
8459 load_color. Puts the new fore/background colors into the default
8460 face on current frame.
8461 (IT_menu_display): Rewritten to handle the new struct glyph
8462 instead of a char array.
8463 (XMenuActivate): Call lookup_derived_face to create and use
8464 special faces for the pop-up and drop-down menus.
8465
84661999-07-29 Gerd Moellmann <gerd@gnu.org>
8467
8468 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8469 XawScrollbarSetThumb if thumb parameters haven't changed because
8470 that function apparently isn't optimized for this case.
8471
84721999-07-29 Eli Zaretskii <eliz@gnu.org>
8473
8474 * msdos.c (getdefdir): Don't return failure indication when
8475 _fixpath sets errno to ENOSYS.
8476
84771999-07-28 Gerd Moellmann <gerd@gnu.org>
8478
8479 * xdisp.c (string_char_and_length): New. Use it everywhere
8480 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8481
84821999-07-28 Kenichi Handa <handa@etl.go.jp>
8483
8484 * fns.c (count_combining): New function.
8485 (struct textprop_rec): New structure.
8486 (concat): Copy text properties correctly when byte combining
8487 occurs.
8488
84891999-07-28 Gerd Moellmann <gerd@gnu.org>
8490
8491 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8492 if display is mono.
8493 (x_draw_row_bitmaps): If face has stipple, don't switch
8494 to foreground color for clearing areas, and set the fill style.
8495
8496 * xfaces.c (load_face_colors): Load background color if setting
8497 stipple, too.
427ec082 8498 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8499 FillStippled.
8500
85011999-07-26 Ken'ichi Handa <handa@gnu.org>
8502
8503 * xterm.c (x_find_ccl_program): Add casting.
8504
8505 * w32fns.c (w32_find_ccl_program): Add casting.
8506
85071999-07-27 Gerd Moellmann <gerd@gnu.org>
8508
8509 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8510
8511 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8512 because this will try to access a nonexisting widget.
8513
85141999-07-26 Markus Rost <rost@gnu.org>
8515
427ec082 8516 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8517 (Fputhash): Ditto.
8518 (Fremhash): Ditto.
8519
85201999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8521
26901792
DL
8522 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8523 value to frame width and height.
8524
8525 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8526 into account for full-width windows. Don't add scroll bar width
8527 to width of clip rect.
8528 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8529 (x_set_glyph_string_background_width): Add 1 to background width.
8530 (x_draw_glyphs): Take internal border into account for full-width
8531 lines.
8532
85331999-07-26 Richard M. Stallman <rms@gnu.org>
8534
8535 * xfns.c (x_set_mouse_color): Always unload the old color.
8536 Don't allow nil as color value.
427ec082 8537 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8538 Always unload the old color.
8539
8540 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8541
85421999-07-26 Karl Heuer <kwzh@gnu.org>
8543
8544 * fns.c (Fy_or_n_p): Doc fix.
8545
85461999-07-26 Kenichi Handa <handa@etl.go.jp>
8547
8548 * ccl.h (setup_ccl_program): The type is changed to `int'.
8549
8550 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8551 stored in the following CCL code. Adjusted for the change of
8552 Vccl_program_table.
8553 (resolve_symbol_ccl_program): Adjusted for the new style of
8554 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8555 is resolving failed.
8556 (ccl_get_compiled_code): New function.
8557 (setup_ccl_program): Function type changed from `void' to `int'.
8558 Resolve symbols in CCL_PROG.
8559 (Fccl_program_p): New function.
8560 (Fccl_execute): Get compiled CCL code by just calling
8561 setup_ccl_program.
8562 (Fccl_execute_on_string): Likewise.
8563 (Fregister_ccl_program): Adjusted for the change of
8564 Vccl_program_table.
8565
8566 * coding.c (setup_coding_system): Get compiled CCL code by just
8567 calling setup_ccl_program.
8568
8569 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8570 calling setup_ccl_program.
8571
8572 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8573 calling setup_ccl_program.
8574
85751999-07-23 Gerd Moellmann <gerd@gnu.org>
8576
8577 * xfaces.c (frame_update_line_height): Just use the height of the
8578 frame's fontset or font, instead of taking face fonts into
8579 account.
8580
8581 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8582
85831999-07-23 Richard M. Stallman <rms@gnu.org>
8584
8585 * window.c (Fsplit_window): For default size, round up for left window.
8586
85871999-07-21 Joe Ramey <ramey@ti.com>
8588
8589 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8590 has returned -1 (lockfile exists but is not a symlink?).
8591
85921999-07-20 Gerd Moellmann <gerd@gnu.org>
8593
8594 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8595 because of a change in cursor_gc made in 20.4.
8596
85971999-07-19 Gerd Moellmann <gerd@gnu.org>
8598
8599 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8600 for YNegative, if using X toolkit.
8601
427ec082 8602 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8603 from positions returned.
8604
86051999-07-17 Gerd Moellmann <gerd@gnu.org>
8606
8607 * xrdb.c (x_load_resources): Set double-click time defaults
8608 for Motif list boxes from double-click-time.
8609
8610 * fns.c (Vhash_table_tests): Remvoed.
8611 (Qhash_table_test): New.
8612 (syms_of_fns): Initialize Qhash_table_test.
8613 (Fmake_hash_table): Look up user-defined tests in symbol prop
8614 `hash-table-test'.
8615 (Fdefine_hash_table_test): Store test and hash function as
8616 symbol prop `hash-table-test'.
8617 (make_hash_table): Add parameters user_test and user_hash.
8618
8619 * window.c (set_window_buffer): Set window margins for tty
8620 frames, too.
8621 (Fset_window_margins): Ditto.
8622
8623 * term.c (append_glyph): Use glyph area of iterator instead of
8624 always TEXT_AREA.
8625
8626 * dispnew.c (update_frame_1): Add left margin width to cursor
8627 hpos.
8628 (direct_output_for_insert): Ditto.
8629 (direct_output_forward_char): Ditto.
8630
8631 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8632
8633 * dispextern.h (struct glyph_matrix): Add top_line_p.
8634
86351999-07-16 Gerd Moellmann <gerd@gnu.org>
8636
8637 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8638 instead.
8639
8640 * fns.c (cmpfn_eq): Add hash code parameters.
8641 (cmpfn_eql): Ditto.
8642 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8643 (cmpfn_user_defined): Likewise.
8644
86451999-07-15 Gerd Moellmann <gerd@gnu.org>
8646
8647 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8648
8649 * fns.c (maybe_resize_hash_table): Correct computation of
8650 index vector size.
8651 (make_hash_table): Ditto.
8652 (Fmakehash): New.
8653
8654 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8655
8656 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8657 (survives_gc_p): Make it externally visible.
8658 (mark_object): Ditto.
8659
8660 * fns.c (remove_hash_entry): Removed.
8661 (sweep_weak_hash_tables): New.
8662
8663 * print.c (print): Print more information about hash tables.
8664
8665 * xfns.c (image_spec_hash): Removed.
8666 (lookup_image): Use sxhash instead of image_spec_hash.
8667 (image_spec_equal_p): Removed.
8668 (lookup_image): Use Fequal instead of image_spec_equal_p.
8669
86701999-07-14 Gerd Moellmann <gerd@gnu.org>
8671
8672 * lisp.h (P_): Moved to top of file.
8673
8674 * fns.c (make_hash_table): Set new members.
8675
8676 * alloc.c (mark_object): Mark hash table's user_hash_function.
8677 Mark index vector for weak hash tables.
8678
8679 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8680 user_hash_function, cmpfn, and hashfn.
8681
8682 * fns.c (build_hash): Removed.
8683 (hash_test): Removed.
8684 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8685 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8686
86871999-07-13 Gerd Moellmann <gerd@gnu.org>
8688
8689 * alloc.c (survives_gc_p): New.
8690
8691 * print.c (print): Add hash table handling.
8692
8693 * alloc.c (mark_object): Add code to mark hash tables.
8694
8695 * lisp.h (GC_HASH_TABLE_P): New.
8696
8697 * emacs.c (main): Call init_fns.
8698
8699 * fns.c (init_fns): New.
8700
8701 * fns.c: Add hash table implementation.
8702
8703 * lisp.h (PVEC_HASH_TABLE): New.
8704 (struct Lisp_Hash_Table): New.
8705 (XHASH_TABLE): New.
8706 (XSET_HASH_TABLE): New.
8707 (HASH_TABLE_P): New.
8708 (CHECK_HASH_TABLE): New.
8709 (DEFAULT_HASH_SIZE): New.
8710 (DEFAULT_REHASH_THRESHOLD): New.
8711 (DEFAULT_REHASH_SIZE): New.
8712
8713 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8714 (x_write_glyphs): Compute overwritten cursor using real start
8715 and end positions of display.
8716 (x_insert_glyphs): Ditto.
8717
87181999-07-10 Gerd Moellmann <gerd@gnu.org>
8719
8720 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8721
8722 * dispnew.c (blank_row): Add y-position as parameter. Compute
8723 visible height.
8724
8725 * xdisp.c (next_element_from_string): Give padding spaces
8726 a position of -1.
8727
427ec082 8728 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8729 marginals areas on tty frames in a future version.
8730 (allocate_matrices_for_frame_redisplay): Ditto.
8731
8732 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8733 to zero if number of glyphs in the row is <= 1.
8734
87351999-07-09 Gerd Moellmann <gerd@gnu.org>
8736
8737 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8738 into account.
8739
8740 * xdisp.c (handle_display_prop): Don't reset area if handing
8741 a property from a string that came from a `display' property.
8742 (handle_single_display_prop): Don't handle recursive `display'
8743 properties.
8744 (handle_single_display_prop): Handle some display property
8745 forms for terminal frames.
8746 (Qimage): Moved here from xfns.c.
8747
8748 * dispextern.h (struct it): New field string_from_display_prop_p.
8749
8750 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8751 line.
8752
87531999-07-08 Gerd Moellmann <gerd@gnu.org>
8754
8755 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8756
8757 * window.c (set_window_buffer): Set window's vscroll to zero.
8758
8759 * xdisp.c (QCwhen): New.
8760 (display_prop_end): New.
8761 (handle_single_display_prop): Use it.
8762 (debug_method_add): Print buffer name if tracing.
8763 (try_window_reusing_current_matrix): Compute visible height
8764 of reused rows. Fix cursor position calculation in case of
8765 top-line.
8766
8767 * dispextern.h (struct redisplay_interface): Add parameter
8768 cursor_on_p to update_window_end_hook.
8769
8770 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8771
87721999-07-07 Gerd Moellmann <gerd@gnu.org>
8773
427ec082 8774 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8775 doesn't become negative when decrementing it.
8776
8777 * eval.c (Fsignal): Reset redisplaying_p to zero.
8778
8779 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8780 for window update.
8781 (try_window_id): Ditto.
8782
8783 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8784 (x_scroll_run): Ditto.
8785 (any_help_event_p): New.
8786 (x_initialize): Set it to zero.
8787 (XTread_socket): Clear help echo only if any_help_event_p.
8788
8789 * xdisp.c (init_iterator): Set top_line_p.
8790 (start_display): Use correct initial y if top-line is present.
8791 (make_cursor_line_fully_visible): Bug fixes for top-line.
8792 (try_scrolling): Ditto.
8793 (try_window_reusing_current_matrix): Ditto.
8794
8795 * dispextern.h (struct it): Add top_line_p.
8796
8797 * dispnew.c (shift_glyph_matrix): Move some computations out
8798 of the loop.
8799
427ec082 8800 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8801 XFLOATINT.
8802
88031999-07-06 Gerd Moellmann <gerd@gnu.org>
8804
8805 * dispnew.c (update_frame_1): When setting cursor in echo area,
8806 skip only over padding spaces at the end.
8807
8808 * xfaces.c (realize_tty_face): Set face's font_name field to
8809 "tty".
8810
8811 * term.c (update_end): Turn cursor on only if selected window's
8812 cursor_off_p flag is not set.
8813
88141999-07-05 Gerd Moellmann <gerd@gnu.org>
8815
8816 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8817 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8818 (TS_cursor_invisible): New.
8819 (term_init): Initialize TS_cursor_invisible.
8820 (tty_hide_cursor): New.
8821 (tty_show_cursor): New.
8822 (update_end): Show tty cursor.
8823 (update_begin): Hide tty cursor to prevent cursor flickering
8824 during redisplays triggered by timers (stealth fontification).
8825
8826 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8827
8828 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8829 in scroll bars.
8830 (x_handle_toolbar_click): Set modifier bits.
8831
88321999-07-04 Gerd Moellmann <gerd@gnu.org>
8833
8834 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8835 instead of a pointer to a volatile input_event.
427ec082 8836 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8837 declaration of local variable `sp'.
8838 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8839 to kbd_fetch_ptr.
8840
88411999-07-03 Gerd Moellmann <gerd@gnu.org>
8842
8843 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8844 only if buffer is modified. Return quickly if changes are
8845 above window start.
8846
88471999-07-02 Gerd Moellmann <gerd@gnu.org>
8848
8849 * dispextern.h (HSCROLL_WINDOWS): Removed.
8850
8851 * xdisp.c (mark_window_display_accurate): Don't set
8852 w->region_showing.
8853 (redisplay_internal): Don't call redraw_garbaged_frames.
8854
88551999-07-01 Gerd Moellmann <gerd@gnu.org>
8856
8857 * xdisp.c (echo_area_display): Don't display truncation marks
8858 for messages because 20.4 doesn't do it either.
8859 (redisplay_window): Case same window start. Instead of giving
8860 up when cursor is partially visible, make it fully visible.
8861 (mark_window_display_accurate): Some cleanup. Record window's
8862 last cursor information.
8863 (debug_method_add): Improved.
8864 (redisplay_internal): Record last cursor info only if not
8865 consider_all_windows_p.
8866
8867 * dispnew.c (update_window): Update top line after scrolling.
8868 (blank_row): Renamed from make_empty_enabled_row.
8869 (increment_glyph_row_buffer_positions): Increment positions
8870 in buffers, only.
8871
8872 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8873 string.
8874
88751999-06-30 Gerd Moellmann <gerd@gnu.org>
8876
8877 * dispnew.c (update_window): Check that updated row is visible.
8878
8879 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8880 top of window differently.
8881
8882 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8883 if region is showing.
8884
8885 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8886 avoiding matrix reallocation. Set window_vscroll in matrix.
8887
8888 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8889
26901792
DL
8890 * xdisp.c (debug_method_add): New.
8891 (debug_redisplay_method): Removed.
8892 (try_window_reusing_current_matrix): Handle case where old
8893 window start is the same as new window start.
8894
8895 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8896 an array instead of a pointer.
8897
26901792
DL
8898 * xfns.c (Fx_show_tip): Undo previous change.
8899
8900 * xterm.c (x_append_glyph): Clear glyph->u.val.
8901
8902 * dispextern.h (struct glyph): Increase size of face_id bit-field
8903 for CHAR_GLYPH to 12.
8904
89051999-06-29 Gerd Moellmann <gerd@gnu.org>
8906
8907 * xfaces.c (x_charset_registry): Make it externally visible.
8908
89091999-06-28 Gerd Moellmann <gerd@gnu.org>
8910
427ec082 8911 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8912 instead of WINDOW_WANTS_MODELINE_P.
8913
8914 * xterm.c (clear_mouse_face): Make externally visible.
8915
8916 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8917
8918 * xterm.c (expose_line): Handle exposure of top-lines.
8919
8920 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8921 if mouse_face_mouse_frame is null.
8922
8923 * xdisp.c (redisplay_window): If window is echo_area_window,
8924 and update_mode_line is set, update menubar and toolbar.
8925
8926 * dispnew.c (space_glyph): Set its charpos to -1.
8927 (update_frame_1): Ignore trailing padding spaces.
8928
8929 * xdisp.c (next_element_from_c_string): Set position of padding
8930 glyphs to -1.
8931
89321999-06-27 Gerd Moellmann <gerd@gnu.org>
8933
8934 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8935 XQueryColor.
8936
8937 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8938 (set_cursor_from_row): Skip over glyphs having a null object at
8939 the start of rows.
8940 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8941 glyphs.
8942 (handle_invisible_prop): Compute next change only when needed.
8943 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8944 line.
8945
89461999-06-26 Gerd Moellmann <gerd@gnu.org>
8947
8948 * xrdb.c (x_load_resources): Don't set resource for double-click
8949 time.
8950
8951 * xdisp.c (try_window_id): Return quickly if all changes are
8952 below the window's current matrix end.
8953
8954 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8955 parameter.
8956
8957 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8958 in desired not in current matrix.
8959 (try_window_reusing_current_matrix): Rotate matrices starting
8960 at start_vpos instead of 0.
8961
8962 * xterm.c (expose_window): Use window_text_bottom_y.
8963 (fast_find_position): Ditto.
8964
8965 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8966 (try_window_reusing_current_matrix): Ditto.
8967 (get_last_unchanged_at_beg_row): Ditto.
8968 (init_iterator): Ditto.
8969
8970 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8971 more row.
8972 (check_matrix_invariants): Use window_text_bottom_y.
8973 (update_window): Ditto.
8974 (scrolling_window): Ditto.
8975
8976 * xdisp.c (window_text_bottom_y): New.
8977
89781999-06-25 Gerd Moellmann <gerd@gnu.org>
8979
8980 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8981 clearing mouse face.
8982 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8983 event.xcrossing.focus is not set, and focus is in the menu bar,
8984 set focus frame as if event.xcrossing.focus were set.
8985
89861999-06-24 Gerd Moellmann <gerd@gnu.org>
8987
8988 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8989 * keyboard.c (make_lispy_movement): Ditto.
8990
8991 * window.c (coordinates_in_window): Return 4 if on top line.
8992 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8993
8994 * xdisp.c (window_box_height): Subtract top line height.
8995 (window_box): Add top line height to top y position if top line
8996 exists.
8997 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8998 the top line row of the window. Set initial y-position to
8999 window's top line height plus delta.
9000 (start_display): Choose start glyph row depending on whether
9001 window has a top line.
9002 (try_scrolling): Take top line height into account for aggressive
9003 scrolling.
9004 (compute_window_start_on_continuation_line): Take top line into
9005 account.
427ec082 9006 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
9007 trigger a new redisplay.
9008 (try_window_reusing_current_matrix): Take top line into account.
9009 (find_last_row_displaying_text): Ditto.
9010 (get_last_unchanged_at_beg_row): DItto.
9011 (try_window_id): Ditto.
9012 (compute_line_metrics): Ditto.
9013
9014 * dispnew.c (shift_glyph_matrix): Compute visible row height
9015 taking top line of window into account.
9016 (update_window): Update top line. If scrolling_window detects
9017 that all rows are equal, only set cursor.
9018 (update_window_line): Call after_update_window_line_hook if
9019 mode_line_p flag of rows has changed.
9020 (scrolling_window): Add parameter top_line_p. Return -1 if
9021 all rows are equal.
9022 (mode_line_string): Add parameter mode_line_p. Handle strings
9023 in top lines.
9024
9025 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
9026 (MATRIX_FIRST_TEXT_ROW): New.
9027 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
9028 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
9029 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
9030 (MATRIX_TOP_LINE_HEIGHT): New.
9031 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
9032 (CURRENT_TOP_LINE_HEIGHT): New.
9033 (DESIRED_TOP_LINE_HEIGHT): New.
9034 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
9035 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
9036 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
9037 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
9038
9039 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
9040 lines.
9041 (x_draw_row_bitmaps): Take top line into account when clearing
9042 bitmap area.
9043 (x_estimate_mode_line_height): Replacement for
9044 x_frame_mode_line_height.
9045 (x_get_glyph_string_clip_rect): Take top line into account.
9046 (x_clear_end_of_line): Ditto.
9047 (note_mode_line_highlight): Add parameter mode_line_p. Handle
9048 top lines.
9049 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
9050 (x_erase_phys_cursor): Take top line into account.
9051
9052 * xdisp.c (window_box_height): Subtract top line height if
9053 window wants a top line.
9054 (display_mode_lines): New.
9055 (redisplay_window): Call it.
9056 (display_mode_line): Add parameters face_id and format.
9057
9058 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
9059 (MATRIX_TOP_LINE_HEIGHT): New.
9060
9061 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
9062
9063 * term.c (estimate_mode_line_height): Renamed from
9064 frame_mode_line_height. Add parameter face_id.
9065 (estimate_mode_line_height_hook): Renamed from
9066 frame_mode_line_height_hook.
9067 (produce_special_glyphs_hook): Removed.
9068 (produce_glyphs_hook): Removed.
9069
90701999-06-23 Gerd Moellmann <gerd@gnu.org>
9071
9072 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9073 (struct glyph_row): Add mode_line_p.
9074
9075 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9076 (Qtop_line): New.
9077 (syms_of_xfaces): Initialize Qtop_line.
9078
9079 * dispextern.h (TOP_LINE_FACE_ID): New.
9080
9081 * buffer.c (init_buffer_once): Set default for
9082 top_line_format to nil.
9083 (init_buffer_once): Init top_line_format.
9084 (default-top-line-format): New.
9085 (top-line-format): New buffer-local variable.
9086
9087 * buffer.h: Add top_line_format.
9088
9089 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9090
90911999-06-17 Dave Love <fx@gnu.org>
9092
9093 * xfns.c: Move the PNG section before the JPEG one to avoid
9094 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9095
26901792
DL
90961999-06-17 Gerd Moellmann <gerd@gnu.org>
9097
9098 * xfns.c (x_kill_gs_process): Don't free colors.
9099
91001999-06-17 Dave Love <fx@gnu.org>
9101
9102 * s/gnu-linux.h: Zap spurious ~.
9103
91041999-06-16 Gerd Moellmann <gerd@gnu.org>
9105
9106 * xfns.c (gif_load): Improve multi-image support.
9107
91081999-06-15 Gerd Moellmann <gerd@gnu.org>
9109
9110 * xfns.c (gif_load): Support multi-image files.
9111
9112 * Makefile.in (LIBGIF): Use libungif.
9113
9114 * configure.in (HAVE_GIF): Use libungif instead of libgif
9115 because the former doesn't contain patented compression code.
9116
9117 * xdisp.c (compute_window_start_on_continuation_line): Don't
9118 do it if line start is too far away from window start.
9119
91201999-06-14 Gerd Moellmann <gerd@gnu.org>
9121
9122 * buffer.c (init_buffer_once): Set buffer_local_flags for
9123 scroll_*_aggressively.
9124 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9125 (init_buffer_once): Set defaults for these variables.
9126 (syms_of_buffer): Add default-scroll-*-aggressively.
9127
9128 * buffer.h (scroll_up_aggressively): New.
9129 (scroll_down_aggressively): New.
9130
9131 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9132 a static PNG library.
9133
9134 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9135 in case it's a static library.
9136
9137 * Makefile.in (ctagsfiles): Split so that files starting
9138 with an `x' are found before files starting with `w32'.
9139 (ctagsfiles1): New.
9140 (ctagsfiles2): New.
9141 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9142
9143 * xdisp.c (compute_window_start_on_continuation_line): New.
9144 (redisplay_window): Use it.
9145 (INFINITY): New.
9146 (reseat_to_string): Use it.
9147 (hscroll_window_tree): Ditto.
9148 (compute_window_start_on_continuation_line): Ditto.
9149 (redisplay_window): Don't force display with a new window start.
9150
91511999-06-06 Gerd Moellmann <gerd@gnu.org>
9152
9153 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9154 if widget not present.
9155
9156 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9157
91581999-06-04 Gerd Moellmann <gerd@gnu.org>
9159
9160 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9161 value of realize_basic_faces.
9162 (load_face_font_or_fontset): Store full font name in face.
9163 (realize_default_face): Use full font name.
9164
26901792
DL
9165 * xterm.c (x_produce_glyphs): Set member char_to_display.
9166 (x_append_glyph): Store char_to_display in glyphs.
9167
9168 * dispextern.h (struct it): Add char_to_display.
9169
9170 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9171 if faces haven't been initialized.
9172 (Fx_create_frame): Call face-set-after-frame-default after
9173 faces have been initialized, and widget has been created.
9174
9175 * puresize.h (BASE_PURESIZE): Increased.
9176
91771999-06-01 Gerd Moellmann <gerd@gnu.org>
9178
9179 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9180 (Finternal_set_lisp_face_attribute): If frame is t when
9181 :font attribute is set, use the selected frame.
9182 (clear_face_cache): Add parameter clear_fonts_p.
9183 (Fclear_face_cache): Add optional parameter thorougly.
9184
9185 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9186 in table.
9187 (Fclear_face_cache): New.
9188 (choose_face_fontset_font): If fontset doesn't contain font
9189 pattern for the given charset, use CHARSET_ASCII.
9190 (Finternal_set_lisp_face_attribute): Fix handling of nil
9191 stipple attribute.
9192 (Finternal_set_lisp_face_attribute): Fix handling of changing
9193 font-related face attributes of the default face.
9194 (set_lface_from_font_name): Set only attributes that aren't
9195 specified.
9196
91971999-05-31 Gerd Moellmann <gerd@gnu.org>
9198
9199 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9200 font support.
9201 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9202 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9203 scalable fonts depending on the setting of SCALABLE_FONTS.
9204 (first_font_matching): List more than one font to find the
9205 first non-scalable matching font.
9206 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9207 depending on SCALABLE_FONTS.
9208 (better_font_p): New parameter compare_pt_p. If zero, don't
9209 compare point sizes of fonts.
9210 (exact_face_match_p) [SCALABLE_FONTS]: New.
9211 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9212 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9213 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9214 (syms_of_xfaces): Add scalable-fonts-allowed.
9215
92161999-05-26 Gerd Moellmann <gerd@gnu.org>
9217
9218 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9219 mask only if image contains simple transparency information.
9220 Otherwise, combine image with frame background color.
9221
9222 * configure.in (--with-png, HAVE_PNG): New.
9223
9224 * config.in (HAVE_PNG): New.
9225
9226 * Makefile.in: Add PNG library.
9227
9228 * xfns.c: Add PNG support.
9229
92301999-05-25 Gerd Moellmann <gerd@gnu.org>
9231
9232 * xdisp.c (init_xdisp): Initialize echo_area_message and
9233 previous_echo_area_message to nil.
9234
9235 * keyboard.c (read_char): Rename local variable echo_area_message
9236 because it shadows the global one.
9237
92381999-05-05 Gerd Moellmann <gerd@gnu.org>
9239
9240 * xterm.c (note_mode_line_highlight): Restructured.
9241
9242 * window.c (coordinates_in_window): Handle windows that don't have
9243 a mode line because their buffer's mode-line-format is nil.
9244 Recognize the mode line under x positions that correspond to
9245 flags areas and left scroll bar.
9246
92471999-05-02 Dave Love <fx@gnu.org>
9248
9249 * xterm.c (note_mouse_highlight): Separate help-echo processing
9250 from check on mouse-face so that it works generally.
9251
92521999-04-21 Gerd Moellmann <gerd@gnu.org>
9253
9254 * sound.c (Fplay_sound): Run hook play-sound-hook.
9255 (Qplay_sound_hook): New.
9256
92571999-04-20 Gerd Moellmann <gerd@gnu.org>
9258
9259 * xdisp.c (update_echo_area): Handle echo_area_message.
9260
92611999-04-19 Gerd Moellmann <gerd@gnu.org>
9262
9263 * editfns.c (Fmessage): Use message3.
9264
9265 * print.c (printchar): Set echo_area_message to nil.
9266 (strout): Ditto.
9267
9268 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9269 (Fminibuffer_completion_help): Ditto.
9270
9271 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9272 (command_loop_1): Test echo_areA_message.
9273 (read_char): Ditto.
9274 (record_menu_key): Set echo_area_message to nil.
9275 (Fexecute_extended_command): Test echo_area_message.
9276 (Fexecute_extended_command): Handle echo_area_message.
9277
9278 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9279 is set.
9280
9281 * editfns.c (Fcurrent_message): If echo_area_message is set,
9282 return a substring of that string.
9283
9284 * dispnew.c (direct_output_for_insert): Test echo_area_message
9285 in addition to echo_area_glyphs.
9286 (set_window_cursor_after_update): Ditto.
9287 (update_frame_1): Ditto.
9288
9289 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9290 old Lisp message string.
9291
9292 * xdisp.c (echo_area_message): New.
9293 (previous_echo_area_message): New.
9294 (syms_of_xdisp): Initialize and staticpro new variables.
9295 (echo_area_display): Display echo_area_message if set.
9296 (message2_nolog): Set echo_area_message and
9297 previous_echo_area_message.
9298 (echo_area_display): Set previous_echo_area_message.
9299 (redisplay_internal): Display echo area if echo_area_message
9300 or previous_echo_area_message are set.
9301 (redisplay_preserve_echo_area): Test/set echo_area_message and
9302 previous_echo_area_message.
9303 (redisplay_window): Test echo_area_message.
9304 (message3_nolog): New.
9305 (message3): New.
9306
9307 * editfns.c (Fformat): Add text properties to the result string
9308 from properties of the format string and properties of string
9309 arguments.
9310
9311 * textprop.c (text_property_list): New.
9312 (add_text_properties_from_list): New.
9313 (extend_property_ranges): New.
9314
93151999-03-29 Gerd Moellmann <gerd@gnu.org>
9316
9317 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9318 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9319 Use these symbols for the box face attribute instead of the
9320 removed ones.
9321
93221999-03-12 Gerd Moellmann <gerd@gnu.org>
9323
9324 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9325 Correct wrong test for slant.
9326
93271999-03-10 Gerd Moellmann <gerd@gnu.org>
9328
9329 * xfaces.c: Use `unspecified' for unspecified face attributes,
9330 use t and nil for on/off.
9331
93321999-03-06 Gerd Moellmann <gerd@gnu.org>
9333
9334 * buffer.c (syms_of_buffer): Extend doc string of
9335 mode-line-format.
9336
9337 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9338 (first_font_matching): New.
9339 (set_lface_from_font_name): Use it if font name is a pattern.
9340 (font_field_wildcard_p): Removed.
9341
9342 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9343 Recompute visible height of rows.
9344
9345 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9346 Don't accept non-strings for help-echo from overlays.
9347
93481999-03-04 Dave Love <fx@gnu.org>
9349
9350 * xterm.c (note_mouse_highlight): Check overlays for help-text
9351 property.
9352 (XTread_socket): Fix compiler warning.
427ec082 9353
26901792
DL
93541999-03-05 Gerd Moellmann <gerd@gnu.org>
9355
427ec082 9356 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9357 overlay to 10. Call overlays_at so that it doesn't try to
9358 extend the vector.
9359
9360 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9361 height.
9362
9363 * dispnew.c (row_equal_p): Compare visible row height, only.
9364 (update_text_area): Draw whole line if visible heights of
9365 rows differ.
9366 (update_window_line): Call after_update_window_line_hook
9367 if visible row height has changed.
9368
9369 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9370 (struct glyph_row): New member visible_height.
9371
9372 * xfaces.c (font_field_wildcard_p): New.
9373 (set_lface_from_font_name): Remove parameter force_p. Accept
9374 font names containing wildcards.
9375
93761999-03-04 Gerd Moellmann <gerd@gnu.org>
9377
9378 * xterm.c (x_after_update_window_line): Clear internal border
9379 when windows_or_buffers_changed.
9380
9381 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9382 buffer has a nil mode_line_format.
9383
93841999-03-03 Gerd Moellmann <gerd@gnu.org>
9385
9386 * xterm.c (x_setup_relief_colors): Use either background color
9387 or specified color.
9388
9389 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9390
9391 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9392
9393 * xterm.c (x_draw_box_rect): New.
9394 (x_draw_glyph_string_box): Renamed from
9395 x_draw_glyph_string_relief. Call x_draw_box_rect.
9396
9397 * xfns.c (QCrelief): New.
9398 (syms_of_xfns): Initialize it.
9399
9400 * dispextern.h (struct glyph): Rename left_shadow_p to
9401 left_box_line_p, right_shadow_p to right_box_line_p.
9402 (MAX_RELIEF_THICKNESS): Removed.
9403 (struct it): Rename members having `relief' in their names
9404 to contain `box' instead.
9405
9406 * xfaces.c (realize_x_face): Handle new box attribute values.
9407 (QCrelief, Qbox): Removed.
9408 (QCshadow, QCcolor, Qraised, Qsunken): New.
9409 (syms_of_xfaces): Initialize new symbols.
9410
94111999-03-02 Gerd Moellmann <gerd@gnu.org>
9412
9413 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9414
9415 * xfaces.c (LFACE_RELIEF): Removed.
9416 (merge_face_vector_with_property): Remove handling of `:relief'.
9417 (Finternal_set_lisp_face_attribute): Ditto.
9418 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9419 (Finternal_get_lisp_face_attribute): Ditto.
9420 (realize_default_face): Ditto.
9421 (lface_hash): Don't compute hash from relief.
9422
9423 * dispextern.h (struct face): Replace member `relief' by
9424 `box_line_width'. Add member `box'.
9425 (face_box_type): New.
9426
9427 * xterm.c (x_produce_glyphs): If face has overline, add overline
9428 thickness + 1 to ascent.
9429
94301999-03-01 Gerd Moellmann <gerd@gnu.org>
9431
9432 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9433 strike-through, and boxes.
9434 (x_draw_glyph_string_underline): Removed.
9435
9436 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9437 (Qoverline, Qstrike_through, Qbox): New.
9438 (syms_of_xfaces): Define these symbols.
9439 (check_lface_attrs): Add checks for overline, strike-through,
9440 and box.
9441 (Finternal_set_lisp_face_attribute): Set new attributes.
9442 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9443 (load_color): Handle new attributes.
9444 (realize_x_face): Ditto.
9445 (merge_face_vector_with_property): Ditto.
9446 (free_face_colors): Ditto.
9447 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9448 (Finternal_get_lisp_face_attribute): Ditto.
9449 (Finternal_lisp_face_attribute_values): Ditto.
9450
9451 * dispextern.h (lface_attribute_index): Add enumerators for
9452 overstrike, strike-through, and box.
9453 (struct face): Add members for overline, strike-through, and
9454 box.
9455
94561999-02-17 Dave Love <fx@gnu.org>
9457
9458 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9459 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9460 files.
9461
94621999-02-16 Gerd Moellmann <gerd@gnu.org>
9463
9464 * keyboard.c (toolbar_items): Call access_keymap with third
9465 parameter 1, so that we don't get inherited toolbar item
9466 definitions.
9467
9468 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9469 the window end vpos when in empty first line of window.
9470
94711999-02-15 Gerd Moellmann <gerd@gnu.org>
9472
9473 * xfaces.c (set_font_frame_param): New.
9474 (Finternal_set_lisp_face_attribute): Call it.
9475
9476Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9477
9478 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9479 Accept specifications of color for underline.
9480
94811999-02-13 Gerd Moellmann <gerd@gnu.org>
9482
9483 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9484 `frame' is t, operate on face defaults for new frames. If it
9485 is nil, operate on the selected frame.
9486
94871999-02-12 Gerd Moellmann <gerd@gnu.org>
9488
9489 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9490 (update_window): Put the call to check_matrix_invariants in #if 0.
9491
9492Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9493
9494 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9495 Remove definition of UNDERLINE_COLOR.
9496
9497Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9498
9499 * xfaces.c (free_face_colors): Free the color for underline.
9500
9501 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9502 to the GC.
9503
9504Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9505
9506 * dispextern.h (UNDERLINE_COLOR): Defined.
9507 (struct face): Added two new members.
9508 underline_color, underline_defaulted_p.
9509
427ec082 9510 * xfaces.c (merge_face_vector_with_property):
26901792 9511 (check_lface_attrs): Accept the string value for underline.
427ec082 9512 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9513
9514 * xfaces.c (load_color): Change the last argument type to enum
9515 lface_attribute_index from int. And addec code for underling coloring.
9516 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9517
26901792
DL
95181999-02-12 Gerd Moellmann <gerd@gnu.org>
9519
9520 * xfns.c (Fx_image_header): Removed.
9521
95221999-02-07 Gerd Moellmann <gerd@gnu.org>
9523
9524 * xterm.c: Don't include <bitmaps/gray>.
9525 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9526
9527 * xfns.c (Fx_image_header): Add missing `\n\'.
9528 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9529
95301999-02-01 Gerd Moellmann <gerd@gnu.org>
9531
9532 * xterm.c (x_scroll_bar_create): Set background pixel from
9533 specified scroll bar color.
9534 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9535
9536 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9537 (x_set_scroll_bar_background): Ditto.
9538
9539 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9540
9541 * xfns.c (x_default_scroll_bar_color_parameter): New.
9542 (Fx_create_frame): Call it.
9543
95441999-01-31 Gerd Moellmann <gerd@gnu.org>
9545
9546 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9547 values in x_output structure.
26901792
DL
9548 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9549 (syms_of_xfns): Initialize these symbols.
9550
9551 * xterm.h (struct x_output): Add scroll bar pixel colors.
9552
9553 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9554 (x_set_scroll_bar_foreground): New.
9555 (x_set_scroll_bar_background): New.
9556
26901792
DL
95571999-01-12 Gerd Moellmann <gerd@gnu.org>
9558
9559 * xdisp.c (handle_single_display_prop): New.
9560 (handle_display_prop): Call it.
9561 (handle_raise_prop): Removed.
9562 (handle_height_prop): Removed.
9563 (handle_space_width_prop): Removed.
9564 (handle_face_prop): Remove handling of raised text.
9565 (handle_display_prop): Do it here.
9566
9567 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9568 (RAISE_PROP_IDX): Removed.
9569 (HEIGHT_PROP_IDX): Removed.
9570 (SPACE_WIDTH_PROP_IDX): Removed.
9571
9572 * xdisp.c (Qdisplay): Replaces Qglyph.
9573 (handle_display_prop): Formerly handle_glyph_prop.
9574
95751999-01-11 Gerd Moellmann <gerd@gnu.org>
9576
9577 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9578 (handle_stop): Set position in display vector to -1. Don't
9579 check overlay strings when set up to deliver characters from a
9580 display vector.
9581 (set_iterator_to_next): At the end of a run of characters from a
9582 display vector, check whether the display vector display replaces
9583 the display of a character.
9584
95851999-01-05 Gerd Moellmann <gerd@gnu.org>
9586
9587 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9588 X window hasn't been created yet.
9589
95901998-12-06 Gerd Moellmann <gerd@gnu.org>
9591
9592 * sound.c: New.
9593
95941998-12-04 Gerd Moellmann <gerd@gnu.org>
9595
9596 * config.in (HAVE_SOUND): New.
9597
9598 * emacs.c (main): Call syms_of_sound and init_sound.
9599
9600 * Makefile.in (obj): Add sound.o.
9601
9602 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9603
9604 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9605 (HAVE_SYS_SOUNDCARD_H): New.
9606
96071998-12-03 Gerd Moellmann <gerd@gnu.org>
9608
9609 * buffer.h (struct buffer): indicate_empty_lines renamed from
9610 indicate_zv_lines.
9611
9612 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9613 (default-indicate-zv-lines): Likewise.
9614
9615 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9616 to indicate_empty_line_p.
9617
9618 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9619 to next_element_from_buffer.
9620
9621 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9622
9623 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9624 and `N-'.
9625
9626 * xfns.c (xbm_scan): New.
9627 (xbm_read_hexint): Removed.
9628 (xbm_read_bitmap_file_data): Use xbm_scan.
9629
9630 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9631
96321998-12-02 Gerd Moellmann <gerd@gnu.org>
9633
9634 * xfns.c (xbm_read_hexint): New.
9635 (xbm_read_bitmap_file_data): New.
9636 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9637 instead of XReadBitmapFileData.
9638
9639 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9640
9641 * xfaces.c (face_with_height): New.
9642
9643 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9644 (eval_form): Renamed from eval_mode_element.
9645 (handle_face_prop): Use it.
9646 (Qheight): Replaces Qsmaller.
9647 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9648 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9649 integer, evaluate it to get the font height to use.
9650
9651 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9652 (struct it): Use `font_height' instead of `smaller'.
9653
96541998-12-01 Gerd Moellmann <gerd@gnu.org>
9655
9656 * xdisp.c (reseat_1): New.
9657 (reseat): Call it.
9658 (move_it_vertically_backward): Ditto.
9659 (redisplay_window): Don't abort when cursor not found in recenter.
9660
96611998-11-30 Gerd Moellmann <gerd@gnu.org>
9662
9663 * xdisp.c (reseat_at_next_visible_line_start): When not
9664 currently delivering display elements from the current buffer,
9665 restore buffer position first.
9666 (init_from_display_pos): Don't set IT's position from the
9667 position passed to this function.
9668
96691998-11-28 Gerd Moellmann <gerd@gnu.org>
9670
9671 * config.in (PROTO): Removed.
9672
9673 * xterm.h: Change PROTO to P_.
9674
96751998-11-26 Gerd Moellmann <gerd@gnu.org>
9676
9677 * xterm.c (take_vertical_position_into_account): New.
9678 (x_produce_image_glyph): Call it.
9679 (x_produce_stretch_glyph): Ditto.
9680 (x_produce_glyphs): Ditto.
9681 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9682 (x_fill_composite_glyph_string): Ditto.
9683 (x_fill_image_glyph_string): Ditto.
9684 (x_fill_stretch_glyph_string): Ditto.
9685
9686 * xdisp.c (display_line): Always compute row height from
9687 max_ascent and max_descent.
9688
9689 * dispextern.h (struct glyph): Add voffset.
9690 (struct it): Replace height by descent, max_height by max_descent.
9691
9692 * xterm.c (x_append_glyph): Set voffset
9693 (x_append_stretch_glyph): Ditto.
9694 (x_produce_image_glyph): Ditto.
9695 (x_produce_glyphs): Take voffset into account.
9696 (x_produce_image_glyph): Ditto.
9697 (x_produce_stretch_glyph): Ditto.
9698
9699 * dispextern.h (struct it): Add voffset.
9700 * xdisp.c (push_it): Save voffset.
9701 (pop_it): Restore it.
9702
9703 * xdisp.c (it_props): Add entry for `raise'.
9704 (handle_raise_prop): New.
9705
9706 * dispextern.h (RAISE_PROP_IDX): New.
9707
9708 * xdisp.c (Qraise): New.
9709 (syms_of_xdisp): Define Qraised.
9710
9711 * xterm.c (x_scroll_bar_move): Clear to the left and right
9712 of toolkit scroll bars differently.
9713 (x_scroll_bar_move): Removed.
9714 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9715
9716 * dispextern.h: Make it compilable --with-x=no.
9717 * alloc.c: Ditto.
9718 * emacs.c: Ditto.
9719 * dispnew.c: Ditto.
9720 * keyboard.c: Ditto.
9721 * term.c: Ditto.
9722 * xdisp.c: Ditto.
9723 * xfaces.c: Ditto.
9724 * xfns.c: Ditto.
9725 * xmenu.c: Ditto.
9726
97271998-11-25 Gerd Moellmann <gerd@gnu.org>
9728
9729 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9730
97311998-11-24 Gerd Moellmann <gerd@gnu.org>
9732
9733 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9734 update slider size, only.
9735 (xm_scroll_callback): Set dragging member of the scroll bar.
9736 (xt_action_hook): Reset last_scroll_bar_part.
9737 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9738
26901792
DL
9739 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9740 window on newly created frames that don't have one.
9741
97421998-11-23 Gerd Moellmann <gerd@gnu.org>
9743
9744 * xdisp.c (restore_overlay_strings): Removed.
9745 (restore_dpvec): Removed.
9746 (init_from_display_pos): Inline both functions above.
9747
9748 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9749 (parse_image_spec): Handle it.
9750 (xbm_format): Use it.
9751 (xpm_format): Ditto.
9752 (pbm_format): Ditto.
9753 (jpeg_format): Ditto.
9754 (tiff_format): Ditto.
9755 (gif_format): Ditto.
9756 (gs_format): Ditto.
9757
9758 * xdisp.c (set_window_cursor): Removed.
9759 (redisplay_internal): Case cursor motion in cursor line of
9760 selected window; use set_cursor_from_row.
9761
97621998-11-22 Gerd Moellmann <gerd@gnu.org>
9763
9764 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9765 into account.
9766
97671998-11-21 Gerd Moellmann <gerd@gnu.org>
9768
9769 * xterm.c (expose_frame): Redraw menu bar window.
9770
9771 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9772 in menu item.
9773
9774 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9775 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9776
9777 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9778 to determine vertical_scroll_bar_extra.
9779 (EmacsFrameSetCharSize): Ditto.
9780 * xfns.c (x_figure_window_size): Ditto.
9781
9782 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9783 (x_draw_bitmap): Ditto.
9784
9785 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9786 * xfaces.c (realize_basic_faces): Realize it.
9787
97881998-11-20 Gerd Moellmann <gerd@gnu.org>
9789
9790 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9791 under LessTif Use the widget of the frame as parent for the
26901792
DL
9792 menu, again.
9793
97941998-11-19 Gerd Moellmann <gerd@gnu.org>
9795
9796 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9797 When EnterNotify, don't generate a mouse movement event if
9798 notification is from a busy-cursor child window.
9799
9800 * xterm.h (struct x_output): Add busy_window, remove cursor.
9801
9802 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9803 Use a transparent window to display the busy-cursor.
9804 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9805
98061998-11-17 Gerd Moellmann <gerd@gnu.org>
9807
9808 * xdisp.c (check_window_end): New, for debugging.
9809 (CHECK_WINDOW_END): New.
9810 (try_window_id): Use it.
9811
9812 * xterm.c (process_expose_from_menu): Return int.
9813
9814 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9815 TOOLBAR_EVENT events in last_nonmenu_event.
9816
98171998-11-16 Gerd Moellmann <gerd@gnu.org>
9818
9819 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9820 window end isn't reliable, so set window_end_valid to nil.
9821 (redisplay_internal): If overlay arrow has changed, set
9822 windows_or_buffers_changed to redisplay thoroughly.
9823
9824 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9825 necessary.
9826
9827 * xfns.c (file_dialog_cb): New.
9828 (Fx_file_dialog): New.
9829 * fileio.c (Fread_file_name): Call it.
9830
427ec082 9831 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9832 selection dialog.
9833
98341998-11-14 Gerd Moellmann <gerd@gnu.org>
9835
9836 * xterm.c (note_mouse_highlight): Don't highlight when popup
9837 is active.
9838
26901792
DL
9839 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9840 timer-event-handler. This busy cursor tends to be anoying if
9841 fontifying stealthily.
9842
9843 * dispnew.c (direct_output_for_insert): Give up if current row
9844 contains trailing whitespace.
9845
98461998-11-13 Gerd Moellmann <gerd@gnu.org>
9847
9848 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9849
9850 * xdisp.c (handle_fontified_prop): New.
9851 (Vfontification_functions): New.
9852 (Qfontification_functions): New.
9853 (it_props): Add handle_fontified_prop.
9854
98551998-11-12 Gerd Moellmann <gerd@gnu.org>
9856
9857 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9858 Otherwise, under LessTif, after the popup has gone, all button
9859 press events come in for the frame's widget, and release events
9860 come in for the edit_widget.
9861 * xterm.c (XTread_socket): Remove workaround for that problem.
9862 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9863 XmScrollBarSetValues.
9864 (SET_SAVED_MENU_EVENT): Give it statement form.
9865
26901792
DL
9866 * xfaces.c (display_message): If waiting_for_input, don't display
9867 the message.
9868
9869 * window.c (scroll_command): If not acting on current_buffer,
9870 make redisplay consider all windows.
9871
9872 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9873
9874 * xdisp.c (handle_glyph_prop): Set it->object for images to
9875 the object having the glyph property.
9876
9877 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9878 invisible.
9879
98801998-11-11 Gerd Moellmann <gerd@gnu.org>
9881
9882 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9883 (x_term_init): Create the gray pixmap.
9884 (x_setup_relief_color): Use it.
9885 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9886 internal border at the top of a frame.
9887 (x_init_glyph_string): Likewise.
427ec082 9888 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9889 full-width lines.
9890 (XTflash): Don't flash the toolbar window.
9891
9892 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9893 in case of ButtonPress events.
9894
98951998-11-10 Gerd Moellmann <gerd@gnu.org>
9896
9897 * xrdb.c (x_load_resources): Add grey background colors as
9898 defaults for menus, scroll bars, and dialogs.
9899
9900 * insdel.c (prepare_to_modify_buffer): Move setting
9901 windows_or_buffers_changed from modify_region here.
9902
9903 * xfns.c (Fx_show_tip): Inhibit redisplay.
9904 (Fx_hide_tip): Ditto.
9905 (Fx_image_header): New.
9906
99071998-11-09 Gerd Moellmann <gerd@gnu.org>
9908
9909 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9910 when clearing current window matrices.
9911
99121998-11-08 Gerd Moellmann <gerd@gnu.org>
9913
9914 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9915 position from a string position. Use the right end position
9916 if the property spans a whole overlay string.
9917
99181998-11-07 Gerd Moellmann <gerd@gnu.org>
9919
9920 * xmenu.c (menubar_selection_callback): Remove workaround for
9921 Lesstif not calling XmNpopdownCallback because it doesn't
9922 handle the case where users don't select any menu item.
9923
26901792
DL
9924 * insdel.c (modify_region): Set windows_or_buffers_changed.
9925
9926 * buffer.c (set_buffer_internal): Don't set
9927 windows_or_buffers_changed.
9928
26901792
DL
9929 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9930
26901792
DL
9931 * xmenu.c (menubar_selection_callback): Add workaround for
9932 Lesstif not calling XmNpopdownCallback.
9933
9934 * xdisp.c (eval_mode_element): New.
9935 (eval_mode_handler): New.
9936 (display_mode_element): Use eval_mode_element.
9937
9938 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9939 Remove code looking at text props of default value.
9940
9941 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9942
26901792
DL
99431998-11-06 Gerd Moellmann <gerd@gnu.org>
9944
427ec082 9945 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9946 BUTTON_TYPE_NONE.
9947 (single_submenu): Likewise for panes and menu items.
9948 (set_frame_menubar): Set button_type of menu bar to none.
9949 (xmenu_show): Likewise.
9950 (single_submenu): Set widget values selected slot.
9951 (xmenu_show): Likewise.
9952
26901792
DL
9953 * xmenu.c (push_menu_item): Add parameters `type' and
9954 `selected'. Store it in menu_items.
9955 (MENU_ITEMS_ITEM_TYPE): New.
9956 (MENU_ITEMS_ITEM_SELECTED): New.
9957 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9958
9959 * xfns.c (clear_image_cache): Get the current time, before
9960 doing anything.
9961 (cache_image): Set prev pointer of next image.
9962 (clear_image_cache): Clear current matrices if any image was
9963 freed.
9964
9965 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9966
9967 * xfns.c (x_set_cursor): New.
9968 (Fx_display_busy_cursor): New.
9969 (Fx_undisplay_busy_cursor): New.
9970
9971 * xterm.h (struct x_output): Add busy_cursor.
9972
9973 * xfns.c (Vx_busy_pointer_shape): New.
9974 (x_set_mouse_color): Create busy cursor.
9975
9976 * process.c (wait_reading_process_input): Show and hide busy
9977 cursor.
9978
9979 * keyboard.c (command_loop_1): Display busy cursor.
9980
9981 * eval.c (Fsignal): Hide busy cursor.
9982
9983 * buffer.c (set_buffer_internal): Don't set
9984 windows_or_buffers_changed.
9985
9986 * xterm.c (redo_mouse_highlight): New.
9987
99881998-11-04 Gerd Moellmann <gerd@gnu.org>
9989
26901792
DL
9990 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9991 (x_build_heuritic_mask): New.
9992 (lookup_image): Call it.
9993
9994 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9995 (previous_help_echo): New.
9996 (XTread_socket): Generate help event with nil message when
9997 leaving a region with help-echo.
9998 (note_mouse_highlight): Handle `help-echo' over text.
9999 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
10000 CirculateRequest.
10001 (clear_mouse_face): Don't clear if tooltip is shown.
10002 (XTread_socket): Redo mouse-highlight after tooltip is gone.
10003 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
10004
10005 * keyboard.c (Vshow_help_function): New.
10006 (read_char): Use it.
10007
100081998-11-03 Gerd Moellmann <gerd@gnu.org>
10009
10010 * xfns.c (x_create_tip_frame): New.
10011 (Fx_show_tip): New.
10012 (Fx_hide_tip): New.
10013
427ec082 10014 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
10015 a widget.
10016
10017 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
10018 to full_width_p. Add internal_border_p.
10019
100201998-11-02 Gerd Moellmann <gerd@gnu.org>
10021
10022 * xterm.c (note_mode_line_highlight): Check the charpos of
10023 the glyph under the mouse pointer before accessing text
10024 properties at that position.
10025
100261998-11-01 Gerd Moellmann <gerd@gnu.org>
10027
10028 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
10029
10030 * xdisp.c (auto-raise-toolbar-buttons): New.
10031 (build_desired_toolbar_string): Handle the flag.
10032 (toolbar-button-margin): New.
10033 (toolbar-button-relief): New.
10034 (build_desired_toolbar_string): Use margin and relief.
10035
10036 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
10037 for FreeBSD.
10038 (note_mode_line_highlight): New.
10039 (note_mouse_highlight): Call it.
10040
100411998-10-31 Gerd Moellmann <gerd@gnu.org>
10042
10043 * s/freebsd.h (NARROWPROTO): New.
10044
10045 * xdisp.c (display_string): New parameter face_string.
10046 (display_mode_element): When displaying a symbol with a string
10047 value, use text properties from the symbol's default value, maybe.
10048
10049 * xrdb.c (x_load_resources): Add font defaults for menus and
10050 dialogs.
10051
100521998-10-30 Gerd Moellmann <gerd@gnu.org>
10053
10054 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
10055
100561998-10-29 Gerd Moellmann <gerd@gnu.org>
10057
10058 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
10059 produced for characters with codes < 32 under certain
10060 circumstances.
10061
10062 * xdisp.c (redisplay_window): Handle values of PT in front
10063 of invisible, intangible text.
427ec082 10064 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
10065 displaying lines.
10066 (display_mode_element): Assign to glyphs written for a mode
10067 line spec `%x' as object the Lisp format string, as position
10068 the position of the `%' in that string.
10069 (display_string): If displaying a C string, optionally get
10070 the face to use from a Lisp string.
10071
10072 * xterm.c (expose_window_tree): Include mode line height.
10073
10074 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10075
100761998-10-27 Gerd Moellmann <gerd@gnu.org>
10077
10078 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10079 over mode line.
10080
100811998-10-26 Gerd Moellmann <gerd@gnu.org>
10082
10083 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10084
10085 * xdisp.c (redisplay_window): If mode line height has changed,
10086 arrange for a thorough immediate redisplay using the correct mode
10087 line height.
10088 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10089
10090 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10091 (CURRENT_MODE_LINE_HEIGHT): New.
10092 (DESIRED_MODE_LINE_HEIGHT): New.
10093
10094 * keyboard.c (make_lispy_event): Add string and string position
10095 info to mouse-click events.
10096 (read_key_sequence): Handle `local-map' property of mode line
10097 strings.
10098
10099 * keyboard.h (POSN_STRING): New.
10100
101011998-10-25 Gerd Moellmann <gerd@gnu.org>
10102
10103 * dispnew.c (mode_line_string): Mew.
10104
10105 * xterm.c (xt_action_hook): New.
10106 (x_create_toolkit_scroll_bar): Add action hook.
10107 (xm_scroll_callback): Implement dragging.
10108
10109 * keyboard.c (Qend_scroll): New.
10110 (scroll_bar_parts): Add it.
10111
10112 * termhooks.h (scroll_bar_end_scroll): New.
10113
10114 * xterm.c (XTread_socket): Bug fix.
10115
101161998-10-24 Gerd Moellmann <gerd@gnu.org>
10117
10118 * xdisp.c (redisplay_window): Finish scroll bars after
10119 redisplaying toolbar.
10120
10121 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10122 (syms_of_keyboard): Add Qbottom.
10123
10124 * termhooks.h (scroll_bar_to_top): New.
10125 (scroll_bar_to_bottom): New.
10126
10127 * xdisp.c (redisplay_window): Always resize toolbar window if
10128 auto_resize_toolbar_p is non-zero.
10129 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10130 (window_box): New.
10131 (window_box_height): New.
10132 (window_box_width): New.
10133 (window_box_left): New.
10134 (window_box_right): New.
10135 (window_box_edges): New.
10136
101371998-10-23 Gerd Moellmann <gerd@gnu.org>
10138
10139 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10140 XawScrollbarSetThumb in FreeBSD.
10141 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10142 to true.
10143
10144 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10145 is out of range.
10146
10147 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10148 (x_term_init): Initialize it.
10149
10150 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10151
10152 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10153 cursor.
10154
101551998-10-22 Gerd Moellmann <gerd@gnu.org>
10156
10157 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10158 differently when using toolkit scroll bars.
10159
10160 * xterm.c (x_send_scroll_bar_event): New.
10161 (x_scroll_bar_to_input_event): New.
10162 (xaw3d_scroll_callback): New.
10163 (xaw3d_jump_callback): New.
10164 (xm_scroll_callback): New.
10165 (x_toolkit_scroll_p): New.
10166 (XTread_socket): Handle scroll bar client message.
10167 (x_term_init): Initialize Xatom_Scrollbar.
10168 (x_scroll_bar_create): Set cursor.
10169 (xm_scroll_callback):
10170 (x_create_toolkit_scroll_bar): New.
10171 (x_set_toolkit_scroll_bar_thumb): New.
10172 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10173 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10174
10175 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10176
101771998-10-21 Gerd Moellmann <gerd@gnu.org>
10178
10179 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10180 (XTread_socket): Don't handle mouse button events for scroll bars
10181 if using toolkit scroll bars.
10182 (XTset_vertical_scroll_bar): Set thumb size and position for
10183 Athena scroll bar.
10184
10185 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10186
10187 * xterm.c (XTread_socket): Dispatch expose event to widget
10188 if using toolkit scroll bars.
10189 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10190 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10191 if using toolkit scroll bars.
10192 (x_scroll_bar_move): Handle tookit scroll bars.
10193
10194 * Makefile.in (LIBW): Use Xaw3d if present.
10195
10196 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10197 (HAVE_XAW3D): New.
427ec082 10198
26901792
DL
10199 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10200 (HAVE_XAW3D): New.
10201
427ec082 10202 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10203 right vertical scroll bar.
10204
102051998-10-20 Gerd Moellmann <gerd@gnu.org>
10206
10207 * xfns.c (xpm_load): Support reading XPM images from string
10208 buffers containing data in the same format as an XPM file.
10209 Support `:color-symbols'.
10210 (xpm_format): Add `:data'.
10211 (xpm_keyword_index): Add XPM_DATA.
10212 (syms_of_xfns): Add `:color-symbols'.
10213 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10214 (xpm_valid_color_symbols_p): New.
10215 (xpm_image_p): Call it.
10216
10217 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10218 attribute to the image if item is not enabled.
10219
10220 * xfns.c (x_laplace): New.
10221 (x_laplace_read_row): New.
10222 (x_laplace_write_row): New.
10223 (lookup_image): Handle common image attributes here. New
10224 attribute `:algorithm'.
10225
10226 * xfaces.c (clear_face_cache): Call clear_image_cache.
10227
10228 * xterm.c (x_inverted_image_mask): Removed.
10229 (x_draw_image_foreground_1): New.
10230 (x_draw_image_glyph_string): Draw images with mask to a temporary
10231 pixmap to reduce flickering.
10232
10233 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10234 (display_toolbar_line): Remove parameter `margin'.
10235
102361998-10-19 Gerd Moellmann <gerd@gnu.org>
10237
10238 * xdisp.c (toolbar_lines_needed): New.
10239 (auto-resize-toolbars): New.
10240
10241 * xfns.c (cache_image): Correct call to xrealloc.
10242
10243 * dispnew.c (Fset_toolbar_height): Removed.
10244
10245 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10246 FRAME_MENU_BAR_LINES.
10247
10248 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10249 instead of FRAME_MENU_BAR_LINES.
10250 (check_frame_size): Ditto.
10251
10252 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10253 instead of FRAME_MENU_BAR_LINES.
10254 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10255 (build_frame_matrix): Ditto.
10256 (change_frame_size_1): Ditto.
10257
10258 * frame.h (FRAME_TOOLBAR_LINES): New.
10259 (FRAME_TOP_MARGIN): New.
10260
10261 * window.c (struct save_window_data): Add frame_toolbar_lines.
10262 (Fset_window_configuration): Handle toolbar lines.
10263 (Fcurrent_window_configuration): Save toolbar lines.
10264
10265 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10266
10267 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10268
10269 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10270
10271 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10272 (x_set_toolbar_lines): New.
10273
10274 * keyboard.c (cmd_error_internal): Bug fix.
10275
10276 * xterm.c: Remove double include of syssignal.h.
10277
102781998-10-18 Gerd Moellmann <gerd@gnu.org>
10279
10280 * xterm.c (x_toolbar_item): New.
10281 (x_handle_toolbar_click): Use it.
10282 (note_toolbar_highlight): Use it.
10283
10284 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10285 and toolbar_items_vectors.
10286
10287 * xterm.c (help_echo): New.
10288 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10289 (x_set_glyph_string_gc): Handle them.
10290 (x_after_update_window_line): Don't do anything in pseudo-windows.
10291 (x_produce_image_glyph): Take image margin and face relief into
10292 account.
10293 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10294 (x_draw_glyph_string_background): Optimize case when face has
10295 relief.
10296 (x_setup_relief_color): Take frame instead of glyph string
10297 parameter.
10298 (x_draw_relief_rect): New.
10299 (x_draw_glyph_string_relief): Call it.
10300 (x_draw_image_glyph_string_foreground): Handle margin and image
10301 relief.
10302 (x_draw_image_glyph_string_background): Ditto.
10303 (expose_frame): Redraw toolbar window.
10304 (expose_window): Don't draw cursor for pseudo-windows.
10305 (x_y_to_hpos_vpos): Handle pseudo-windows.
10306 (frame_to_window_pixel_xy): New.
10307 (note_mouse_highlight): Call note_toolbar_highlight.
10308 (x_handle_toolbar_click): New.
10309 (note_toolbar_highlight): New.
10310 (show_mouse_face): Change int parameter `hl' to parameter of
10311 type enum draw_glyphs_face. Handle image highlighting.
10312 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10313 non-nil. Use x_handle_toolbar_click.
10314
10315 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10316
10317 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10318 IMAGE_BOOL_VALUE.
10319 (parse_image_spec): Handle them.
10320 (image_spec_value): Additional parameter found.
427ec082 10321 (free_image): Remove image from the vector `images' of the
26901792
DL
10322 image cache.
10323 (clear_image_cache): Additional parameter force_p.
10324 (Fclear_image_cache): New.
10325 (x_find_image_file): New.
10326 (xbm_load): Handle `:margin' and `:relief'. Use
10327 x_find_image_file.
10328 (xpm_load): Likewise.
10329 (pbm_load): Likewise.
10330 (jpeg_load): Likewise.
10331 (tiff_load): Likewise.
10332 (gif_load): Likewise.
10333
10334 * keyboard.c (Qhelp_echo): New symbol.
10335 (read_char): Handle `toolbar' and `help_echo' events.
10336 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10337 (make_lispy_event): Handle TOOLBAR_EVENT.
10338 (toolbar_items): New.
10339 (process_toolbar_item): New.
10340 (PROP): New.
10341 (init_toolbar_items): New.
10342 (append_toolbar_item): New.
10343 (read_char_x_menu_prompt): Handle `toolbar' event.
10344 (read_key_sequence): Ditto.
10345
10346 * xfaces.c (Qtoolbar): New.
10347 (realize_basic_faces): Realize `toolbar' face.
10348 (face_at_string_position): Remove parameter modeline_p, add
10349 base_face_id.
10350
10351 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10352 to read data.
10353
103541998-10-17 Gerd Moellmann <gerd@gnu.org>
10355
10356 * xdisp.c (init_iterator): Replace parameter modeline_p with
10357 base_face_id.
10358 (next_element_from_string): Call get_next_display_element
10359 recursively after handling text properties.
10360 (prepare_menu_bars): Call update_toolbar.
10361 (update_toolbar): New.
10362 (build_desired_toolbar_string): New.
10363 (display_toolbar_line): New.
10364 (redisplay_toolbar): New.
10365 (toolbar_item_info): New.
10366 (redisplay_window): Call redisplay_toolbar.
10367 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10368
10369 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10370 window.
10371 (clear_desired_matrices): Ditto.
10372 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10373 (free_glyphs): Free matrices of toolbar window.
10374 (update_frame): Update toolbar window.
10375 (change_frame_size_1): Take toolbar into account.
10376 (Fset_toolbar_height): New.
10377
10378 * dispextern.h (struct it): Remove member modeline_p, add
10379 base_face_id.
10380 (struct image): Add members relief and margin.
10381 (IMAGE_ASCENT): Include margin in height.
10382
103831998-10-14 Gerd Moellmann <gerd@gnu.org>
10384
10385 * xfns.c (Fclear_image_cache): New.
10386
10387 * xfaces.c (realize_basic_faces): Realize toolbar face.
10388 (face_at_string_position): Remove parameter modeline_p, add
10389 base_face_id.
10390
10391 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10392
103931998-10-13 Gerd Moellmann <gerd@gnu.org>
10394
10395 * keyboard.c (syms_of_keyboard): Intern `:help'.
10396
103971998-10-12 Gerd Moellmann <gerd@gnu.org>
10398
10399 * xterm.c (note_toolbar_highlight): New.
10400 (note_mouse_highlight): Call it.
10401
10402 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10403 (coordinates_in_window): Handle toolbar window.
10404
10405 * keyboard.c (toolbar_items): New.
10406 (process_toolbar_item): New.
10407 (parse_toolbar_item): New.
10408 (init_toolbar_items): New.
10409 (append_toolbar_item): New.
10410
10411 * dispextern.h (enum toolbar_item_idx): New.
10412 (enum toolbar_item_image): New.
10413
10414 * frame.h (struct frame): Add toolbar-related members.
10415
10416 * xfaces.c (face_at_string_position): Remove assertion that
10417 current_buffer == window's buffer. This is not the case when
10418 called for the toolbar window.
10419
10420 * frame.c (make_frame): Initialize toolbar members.
10421
10422 * alloc.c (mark_object): Mark toolbar data of frames.
10423
10424 * frame.h (struct frame): Add toolbar-related members
10425 toolbar_window, desired_toolbar_items, current_toolbar_items,
10426 desired_toolbar_string, current_toolbar_string,
10427 n_desired_toolbar_items, n_current_toolbar_items. Add
10428 window_height.
10429
10430 * xterm.c (x_after_update_window_line): Don't draw bitmap
10431 areas for pseudo-windows.
10432 (expose_frame): Handle toolbar window.
10433 (expose_window): Don't do cursor stuff for pseudo-windows.
10434
10435 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10436
104371998-10-11 Gerd Moellmann <gerd@gnu.org>
10438
10439 * frame.c (make_frame): Initialize toolbar_window.
10440
10441 * alloc.c (mark_object): Make the toolbar window.
10442
10443 * dispnew.c (update_frame): Update frame's toolbar_window.
10444 (clear_current_matrices): Likewise.
10445 (clear_desired_matrices): Likewise.
10446 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10447 (free_glyphs): Free the toolbar window and its matrices.
10448
10449 * frame.h (struct frame): Add toolbar_window.
10450
10451 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10452 with relief.
10453
104541998-10-10 Gerd Moellmann <gerd@gnu.org>
10455
427ec082 10456 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10457 window start is not in the range BEGV..ZV.
10458
104591998-10-09 Gerd Moellmann <gerd@gnu.org>
10460
10461 * xdisp.c (try_scrolling): Experimentally handle the case
10462 that scroll-preserve-screen-position is set to `always'.
10463
10464 * window.c (Vscroll_preserve_screen_position): Replacement for
10465 scroll_preserve_screen_position.
10466
104671998-10-08 Gerd Moellmann <gerd@gnu.org>
10468
10469 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10470 doesn't like it.
10471 * xdisp.c: Ditto.
10472
10473 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10474
104751998-10-06 Gerd Moellmann <gerd@gnu.org>
10476
427ec082 10477 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10478 i_byte when prompts are inserted into minibuffers.
10479
10480 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10481 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10482 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10483
104841998-10-04 Gerd Moellmann <gerd@gnu.org>
10485
10486 * xdisp.c (make_cursor_line_fully_visible): New.
10487 (try_scrolling): New.
10488 (redisplay_window): Move scrolling code to try_scrolling.
10489 (make_cursor_line_fully_visible): Handle case of window too small
10490 to show a single line.
10491 (redisplay_window): Case forced window start---use
10492 make_cursor_line_fully_visible.
10493 (redisplay_window): Case cursor movement via current matrix.
10494 If ending up on a partially visible line, make it fully visible
10495 instead of recentering.
10496 (try_scrolling): Additional parameter scroll_smoothly.
10497
10498 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10499
105001998-09-28 Gerd Moellmann <gerd@gnu.org>
10501
10502 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10503 instead of y-position for scroll-preserved-screen-position.
10504
105051998-09-07 Gerd Moellmann <gerd@gnu.org>
10506
10507 * dispnew.c (update_frame_line): If current row is not enabled,
10508 write the whole line.
10509
105101998-09-06 Gerd Moellmann <gerd@gnu.org>
10511
10512 * lisp.h (HAVE_FACES): Removed.
10513
10514 * dispextern.h (HAVE_FACES): Removed.
10515
10516 * config.in (HAVE_FACES): Removed.
10517
10518 * dispnew.c (HAVE_FACES): Removed.
10519
10520 * xdisp.c (HAVE_FACES): Removed.
10521
10522 * xfaces.c (HAVE_FACES): Removed.
10523
105241998-09-05 Gerd Moellmann <gerd@gnu.org>
10525
10526 * xdisp.c (init_iterator): If face_change_count is non-zero,
10527 free realized faces.
10528
10529 * xfaces.c (free_all_realized_faces): Make it externally visible.
10530 (Finternal_set_lisp_face_attribute): Increment
10531 windows_or_buffers_changed.
10532
10533 * dispnew.c (direct_output_for_insert): Give up if
10534 face_change_count is non-zero.
10535 (direct_output_forward_char): Ditto.
10536
10537 * xfaces.c (face_change_count): New.
10538
105391998-09-04 Gerd Moellmann <gerd@gnu.org>
10540
10541 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10542 of range.
10543
105441998-09-03 Gerd Moellmann <gerd@gnu.org>
10545
10546 * term.c (Ftty_display_color_p): New.
10547
105481998-09-02 Gerd Moellmann <gerd@gnu.org>
10549
10550 * xfaces.c (Ftty_defined_colors): New.
10551
10552 * xterm.c (x_produce_glyphs): Fix computation of
10553 contains_overlapping_glyphs_p for ASCII.
10554
10555 * dispnew.c (Fshow_cursor): Don't change cursor state while
10556 redisplaying.
10557 (direct_output_for_insert): If a glyph with lbearing or rbearing
10558 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10559
105601998-09-01 Gerd Moellmann <gerd@gnu.org>
10561
10562 * term.c (OUTPUT_IF): Make replacement text have statement form.
10563 (OUTPUT1_IF): Ditto.
10564 (TS_italic_mode, TS_end_italic_mode): Removed.
10565 (TS_bold_mode): Removed.
10566 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10567 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10568 (TS_enter_reverse_mode): New.
10569 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10570 (TN_magic_cookie_glitch_ul): New.
10571 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10572 (TS_exit_attribute_mode): New.
10573 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10574 (TS_set_foreground, TS_set_background): New.
10575 (reset_terminal_modes): Switch colors back to default.
10576 (write_glyphs): Turn face on before writing text, turn it off
10577 afterwards.
10578 (insert_glyphs): Ditto.
10579 (term_init): Initialize new terminal capability variables.
10580 (turn_on_face): Turn a face on.
10581 (turn_off_face): Turn a face off.
10582
10583 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10584 (GLYPH_CHAR): Ditto.
10585 (GLYPH_FACE): Ditto.
10586
10587 * xfaces.c (Vface_tty_color_alist): New.
10588 (face-register-tty-color): New.
10589 (face-clear-tty-colors): New.
10590
10591 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10592 (struct it): Remove member faces_p since we now always have faces.
10593
105941998-08-31 Gerd Moellmann <gerd@gnu.org>
10595
10596 * dispextern.h (struct face): Add tty appearance flags.
10597
10598 * xdisp.c (init_iterator): Always handle faces.
10599 (extend_face_to_end_of_line): Handle tty frames.
10600
10601 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10602 passed in.
10603
106041998-08-30 Gerd Moellmann <gerd@gnu.org>
10605
10606 * xfaces.c (realize_default_face): Use empty strings to indicate
10607 that the face should use the default foreground/background
427ec082 10608 color of the terminal. Fill font-related attributes with
26901792
DL
10609 appropriate values for tty frames.
10610
10611 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10612
10613 * xfaces.c (realize_default_face): If face `default' is not
10614 yet known, create it.
10615
10616 * frame.c (make_terminal_frame): Call init_frame_faces
10617 unconditionally.
10618
10619 * xfaces.c (init_frame_faces): Make it work for tty frames.
10620 (free_frame_faces): Ditto.
10621 (clear_face_cache): Ditto.
10622 (recompute_basic_faces): Ditto.
10623 (Fframe_face_alist): Ditto.
10624 (free_realized_face): Ditto.
10625 (prepare_face_for_display): Ditto.
10626 (clear_face_gcs): Ditto.
10627 (lookup_face): Ditto.
10628 (smaller_face): Ditto.
10629 (realize_default_face): Ditto.
10630 (realize_face): Ditto.
10631 (realize_face): Dispatch to functions depending on the frame type.
10632 (realize_x_face): X way of realizing faces.
10633 (realize_tty_face): TTY way of realizing faces.
10634
106351998-08-29 Gerd Moellmann <gerd@gnu.org>
10636
10637 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10638 compute it instead.
10639 (lookup_face): Remove local variable unibyte_registry.
10640
106411998-08-22 Gerd Moellmann <gerd@gnu.org>
10642
10643 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10644 1 pixel longer.
10645
427ec082 10646 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10647 of face in buffer.
10648
10649 * editfns.c (make_buffer_string_both): If prompt in buffer,
10650 prevent start > end.
10651
10652 * indent.c (Fvertical_motion): Set current_buffer to window's
10653 buffer if it isn't already.
10654
106551998-08-21 Gerd Moellmann <gerd@gnu.org>
10656
10657 * dispextern.h (GLYPH_DEBUG): Use default 0.
10658
10659 * xdisp.c (it_props): New member `smaller'.
10660 (init_iterator): Initialize it.
10661 (Qsmaller): New.
10662 (push_it): Save value of `smaller' value on the stack.
10663 (pop_it): Restore `smaller' from the stack.
10664 (handle_smaller_prop): New.
10665 (handle_face_prop): Use `smaller' text property to select a
10666 suitable face.
10667
10668 * dispextern.h (SMALLER_PROP_IDX): New.
10669 (struct it): Add member `smaller'.
10670
10671 * xfaces.c (smaller_face): New.
10672
10673 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10674
10675 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10676 total pixel width of window differently.
10677
10678 * xdisp.c (init_iterator): Compute width of mode line differently.
10679
10680 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10681 of bitmap areas.
10682
10683 * window.c (Fsplit_window): Include width of bitmap areas in
10684 window width.
10685 (window_internal_width): Subtract width of bitmap areas from
10686 total width.
10687
106881998-08-18 Gerd Moellmann <gerd@gnu.org>
10689
10690 * xdisp.c: Functions reordered for better readability.
10691
10692 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10693 lbearing.
10694 (update_window_tree): Parameter no_scrolling_p removed.
10695 (update_single_window): Ditto.
10696
10697 * xterm.c (x_get_char_font_and_encoding): Renamed to
10698 x_get_char_face_and_encoding.
10699
10700 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10701 if end of current row reached.
10702
10703 * xterm.c (x_get_glyph_face_and_encoding): New.
10704 (x_get_glyph_overhangs): Call it.
10705
10706 * xdisp.c (Qshow_trailing_whitespace): New.
10707 (Qtrailing_whitespace): New.
10708 (enum prop_handled): New.
10709 (struct props, it_props): New.
10710 (next_overlay_change): New. Works like Fnext_overlay_change
10711 but doesn't use xmalloc.
10712 (handle_stop): Restructured.
10713 (face_before_or_after_it_pos): Case iteration over a string: fix
10714 handling of face before current position.
10715
107161998-08-16 Gerd Moellmann <gerd@gnu.org>
10717
10718 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10719 reallocation matrix if fonts_changed_p.
10720 (update_text_area): Handle glyphs with lbearing.
10721
107221998-08-14 Gerd Moellmann <gerd@gnu.org>
10723
10724 * xdisp.c (struct props): New.
10725 (it_props): New.
10726 (compute_prop_info): New.
10727 (handle_stop): New.
10728
10729 * textprop.c (validate_interval_range): Make it externally
10730 visible.
10731
10732 * dispnew.c (direct_output_for_insert): Remove calls
10733 to compute_stop_pos.
10734
10735 * dispextern.h (struct it): Remove check_charpos,
10736 next_overlay_pos. Add what_changes.
10737
107381998-08-10 Gerd Moellmann <gerd@gnu.org>
10739
10740 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10741
10742 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10743 face_default_registry instead.
10744
10745 * syntax.c (scan_sexps_forward): Set up syntax table before
10746 jumping to initial state label.
10747
107481998-08-09 Gerd Moellmann <gerd@gnu.org>
10749
10750 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10751 >= ZV specially.
10752
107531998-08-08 Gerd Moellmann <gerd@gnu.org>
10754
10755 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10756 ends up in partially visible row, try to scroll. Case forced
10757 window start---handle windows not tall enough to show a single
10758 line.
10759
10760 * window.h (struct window): Member dy renamed vscroll.
10761
10762 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10763 fonts.
10764 (x_draw_stretch_glyph_string): Set clipping if using GC that
10765 hasn't set it yet.
10766
10767 * xdisp.c (redisplay_window): Case forced window start -
10768 don't let cursor end on partially visible row. Use desired
10769 matrix to find a suitable PT if it doesn't appear.
10770 (decode_mode_spec): Merged with 20.2.97.
10771 (try_window_reusing_current_matrix): Give up if old or
10772 new display is vscrolled.
10773 (redisplay_window): Reset vscrolling if forced window start,
10774 or if recentering.
10775
107761998-08-06 Gerd Moellmann <gerd@gnu.org>
10777
10778 * xfaces.c (realize_default_face): Use the fontset name instead of
10779 the alias for the family attribute of the default face because we
10780 can't easily determine a good alias from fontset-alias-alist.
10781 (face_fontset): Use Fquery_fontset to find the fontset.
10782 (font_list): Additional pattern parameter.
10783 (try_font_list): Ditto.
10784 (set_lface_from_font_name): Set face family from font foundry
10785 and family.
10786 (font_list): If family contains a hyphen, build pattern differently.
10787
107881998-08-05 Gerd Moellmann <gerd@gnu.org>
10789
10790 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10791 changed instead of setting the frame garbaged.
10792
10793 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10794 all attribute values. This is wrong if values are unspecified,
10795 i.e. nil.
10796
10797 * xdisp.c (try_window_id): Give up if window start changed.
10798
10799 * xfaces.c (make_realized_face): Store registry as Lisp object.
10800 (load_face_font_or_fontset): Compute registry of a face
10801 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10802 possible.
10803
10804 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10805 differently.
10806
10807 * alloc.c (mark_face_cache): Mark the registry member of faces.
10808
10809 * dispextern.h (struct face): Make registry a Lisp string.
10810
108111998-08-04 Gerd Moellmann <gerd@gnu.org>
10812
10813 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10814 multibyte_p. Handle unibyte text.
10815 (x_append_glyph): Set the multibyte_p flag of glyphs.
10816 (x_produce_image_glyph): Ditto.
10817 (x_append_stretch_glyph): Ditto.
10818 (x_produce_glyphs): Handle unibyte text like ASCII.
10819
10820 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10821 stack.
10822 (pop_it): Restore it.
10823 (face_before_or_after_it_pos): Handle the case that the string or
10824 buffer is unibyte.
10825 (get_overlay_strings): Set the multibyte flag of the iterator if
10826 the new overlay string is multibyte.
10827 (get_glyph_property): Likewise.
10828 (get_next_display_element): Don't check for charset changes in
10829 unibyte text.
10830 (append_space): Compute face differently for unibyte text.
10831 (extend_face_to_end_of_line): Don't return quickly if face has
10832 stipple.
10833
10834 * xfaces.c (load_face_font_or_fontset): Store registry and
10835 encoding of the font in the registry member of the face.
10836 (make_realized_face): Additional parameter `registry'.
10837 (free_realized_face): Free the registry of a realized face.
10838 (face_suitable_for_charset_p): Function form of the macro
10839 with the same name in uppercase.
10840 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10841 (choose_face_font): New parameter unibyte_registry.
10842 (choose_face_fontset_font): Ditto.
10843 (realize_default_face): Remember the registry and encoding of
10844 the specified frame font in Vx_unibyte_registry_and_encoding.
10845 (face_at_buffer_position): Handle unibyte.
10846 (face_at_string_position): Likewise.
427ec082 10847 (realize_face): New parameter unibyte_registry.
26901792
DL
10848 (compute_char_face): Handle the unibyte case.
10849
10850 * dispextern.h (struct glyph): Add bit multibyte_p.
10851 (struct face): New member registry holding the registry and
10852 encoding of the X font of the face.
10853 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10854 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10855 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10856 text.
10857 (struct iterator_stack_entry): Add multibyte_p.
10858
10859 * xdisp.c (string_pos): Use string_char_to_byte.
10860 (char_charset): Removed.
10861
108621998-08-03 Gerd Moellmann <gerd@gnu.org>
10863
10864 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10865 rectangle for a block cursor over an image without a mask.
10866 (x_stretch_block_cursor): Added. Non-zero means don't draw
10867 a block cursor over a stretch as wide as that stretch.
10868 (x_draw_stretch_glyph_string): Use it.
10869 (x_draw_hollow_cursor): Ditto.
10870
10871 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10872 (read_minibuf): Add front-sticky text property for prompt.
10873
10874 * xdisp.c (char_charset): Return charset of a character,
10875 depending on whether or not multi-byte characters are enabled.
10876
10877 * xfaces.c (Fset_face_charset_registry): Removed.
10878 (x_charset_registry): Determine registry from charset plist.
10879
108801998-08-02 Gerd Moellmann <gerd@gnu.org>
10881
10882 * xdisp.c (get_next_display_element): Don't check for charset
10883 changes if multi-byte characters are not enabled.
427ec082 10884
26901792 10885 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10886 redisplay interface.
26901792
DL
10887 * keyboard.c (detect_input_pending_run_timers): Likewise.
10888
10889 * dispextern.h (produce_*glyphs_hook): Removed.
10890 * term.c (produce_*glyphs): Ditto.
10891 (cursor_to): Remove pixel position parameters.
10892
10893 * dispnew.c: Remove hooks for window-based redisplay, introduce
10894 a redisplay interface structure.
10895
10896 * xterm.c (x_per_char_metric): Return default char metrics if per
10897 char metric exists but contains a zero width. Adobe Courier seems
10898 to contain such characters.
10899
10900 * xdisp.c (compute_line_metrics): Compute the width of rows
10901 without stopping at glyphs with zero width.
10902
109031998-08-01 Gerd Moellmann <gerd@gnu.org>
10904
10905 * xdisp.c (display_mode_line): If nothing was displayed at all,
10906 display a space.
10907 (hscroll_window_tree): Don't subtract 1 from target point if equal
10908 to ZV and window is not the selected window.
10909
10910 * dispnew.c (check_matrix_invariants): Remove check for window
10911 start at BEGV or after newline. This happens in rare cases
10912 intentionally.
10913
109141998-07-31 Gerd Moellmann <gerd@gnu.org>
10915
10916 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10917 (syms_of_xfaces): Add Vface_default_registry.
10918 (x_charset_registry): Use it.
10919
10920 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10921 (redisplay_window): Use it.
10922
10923 * dispnew.c (update_text_area): Handle lbearing of deleted text
10924 by backing up one character.
10925
109261998-07-30 Gerd Moellmann <gerd@gnu.org>
10927
427ec082 10928 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10929 decide to do nothing.
10930
10931 * xfaces.c (face_at_string_position): Additional parameter
10932 mode_line_p. If non-zero, merge with the mode line face
10933 instead of the default face.
10934 * dispextern.h (struct it): Add mode_line_p.
10935 * xdisp.c (init_iterator): Set it.
10936 (compute_face_in_string): Use it.
10937 (face_before_or_after_it_pos): Handle strings.
10938 (get_next_display_element): Don't look for relief end in C strings.
10939 (next_element_from_string): Deliver string position instead of
10940 buffer position.
10941
10942 * xterm.c (x_flush): Flush X output buffer.
10943 (XTflash): Use it.
10944
10945 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10946 Allow strings as face names.
10947
10948 * xfns.c (forall_images_in_image_cache): Check that frame is
10949 alive.
10950
10951 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10952 it's also called from x_destroy_window. Since this function is
10953 called from X, freeing stuff allocated with xmalloc is dangerous
10954 here, anyway.
10955
10956 * xfaces.c (free_realized_faces): Don't clear current matrices
10957 of a frame being destroyed.
10958
427ec082 10959 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10960 Fset_window_buffer.
10961
10962 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10963 with an additional argument specifying whether or not hooks may
10964 be called.
10965 (Fset_window_buffer): Call it.
10966
10967 * dispnew.c (clear_desired_matrices): Check that frame has
10968 a valid root window before clearing matrices in the window tree.
10969 (clear_current_matrices): Ditto.
10970 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10971 vchild are valid windows if not nil.
10972
10973 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10974 for :inverse-video.
10975 (Finternal_set_lisp_face_attribute): Ditto.
10976 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10977 (Finternal_get_lisp_face_attribute): Ditto.
10978 (Finternal_lisp_face_attribute_values): Ditto.
10979 (syms_of_xfaces): Define the symbol `:reverse-video'.
10980
10981 * xdisp.c (get_glyph_property): Renamed from
10982 fill_iterator_from_glyph_property.
10983 (next_element_from_buffer): Handle case that no `glyph' property
10984 was found correctly.
10985 (display_line): Extend face to end of line only if we have faces.
10986
109871998-07-29 Gerd Moellmann <gerd@gnu.org>
10988
10989 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10990 additional window argument.
10991
10992 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10993 set_iterator_to_previous_visible_line_start.
10994 (reseat_at_next_visible_line_start): Likewise.
10995 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10996 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10997 (compute_face_in_buffer): Renamed from
10998 compute_face_at_iterator_position.
10999 (compute_face_in_string): Renamed from
11000 compute_face_at_iterator_string_position.
11001 (get_space_width): Renamed from get_iterator_space_width.
11002 (next_overlay_string): Renamed from
11003 set_iterator_to_next_overlay_string.
11004 (get_overlay_strings): Renamed from
11005 get_overlay_strings_at_iterator_position.
11006 (restore_overlay_strings): Renamed from
11007 setup_overlay_strings_from_glyph_pos.
11008 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
11009 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
11010 (init_to_row_start): Renamed from init_iterator_to_row_start.
11011 (init_to_row_end): Formerly init_iterator_to_next_row_start.
11012
11013 * xterm.c: Merge with 20.2.97.
11014 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
11015
11016 * dispextern.h (struct glyph): Replace text_pos position with
11017 simple charpos.
11018
11019 * xdisp.c (this_line_start_pos): Use struct text_pos.
11020 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
11021 (enum move_it_result): Renamed from move_iterator_result.
11022 (string_pos_nchars_ahead): Compute text_pos in a string from a
11023 known text_pos plus a character delta.
11024 (string_pos): Compute text_pos in string from charpos.
11025 (c_string_pos): Likewise for a C string.
11026 (number_of_chars): Return number of characters in a possibly
11027 multi-byte C string.
11028 (check_it): Renamed from check_iterator. Check that charpos and
11029 bytepos are in sync.
11030 (push_it): Renamed from save_iterator_settings.
11031 (pop_it): Renamed from restore_iterator_settings.
11032 (move_it_.*): Renamed from move_iterator_.*.
11033 (charset_at_position): Take charpos/bytepos into account.
11034 (back_to_previous_line_start): Set iterator to previous line start.
11035 (forward_to_next_line_start): Set iterator to next line start.
427ec082 11036 (back_to_previous_visible_line_start): Renamed from
26901792
DL
11037 move_iterator_previous_visible_line_start.
11038 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
11039 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
11040 Handle charpos/bytepos.
11041 (compute_face_at_iterator_position): Handle charpos/bytepos.
11042 (compute_face_at_iterator_string_position): Likewise.
11043 (get_iterator_space_width): Likewise.
11044 (load_overlay_strings): Likewise.
11045 (get_overlay_strings_at_iterator_position): Likewise.
11046 (reseat_iterator): Take a text_pos position argument.
11047 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
11048 bytepos.
11049 (init_iterator): Take additional bytepos parameter.
11050 (reseat_iterator_to_string): Handle charpos/bytepos.
11051 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
11052 (next_element_from_string): Handle charpos/bytepos.
11053 (next_element_from_c_string): Likewise.
11054 (fill_iterator_from_glyph_property): Likewise.
11055 (next_element_from_buffer): Likewise.
11056 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
11057 (move_iterator_in_display_line_to): Handle charpos/bytepos.
11058 (move_it_to): Likewise.
11059 (move_it_vertically_backward): Likewise.
11060 (move_it_vertically): Likewise.
11061 (move_it_by_lines): Likewise.
11062 (hscroll_window_tree): Likewise.
11063 (redisplay_internal): Likewise.
11064 (set_cursor_from_row): Likewise.
11065 (redisplay_window): Likewise.
11066 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11067 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11068 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11069 (try_window_id): Handle charpos/bytepos.
11070 (Ftrace_redisplay_toggle): Return Qnil.
11071 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11072 (insert_left_trunc_glyphs): Likewise.
11073
11074 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11075 do a real merge).
11076 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11077 (increment_glyph_row_buffer_positions): Ditto.
11078 (copy_glyph_row_contents): Ditto.
11079 (check_matrix_invariants): Add additional checks for charpos/
11080 bytepos consistency.
11081 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11082 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11083 `direction-reversed' in #if 0.
11084
11085 * xterm.h: Merge with 20.2.97.
427ec082 11086
26901792
DL
11087 * frame.h: Merge with 20.2.97.
11088
11089 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11090
11091 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11092 start.
11093 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11094 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11095 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11096 (struct it): Various members renamed from .*pos to .*charpos.
11097 (IT_CHARPOS): Access current buffer character position of an
11098 iterator.
11099 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11100 (IT_STRING_CHARPOS): Access current string character position of
11101 an iterator.
11102 (IT_STRING_BYTEPOS): Access current string byte position of
11103 an iterator.
11104 (globally): Add function prototypes from 20.2.97.
11105
11106 * everywhere: Use P_ instead of PROTO for function prototypes
11107 because everyone else seems to use P_.
11108
11109 * dispextern.h (struct text_pos): Structure describing a charpos/
11110 bytepos position in text.
11111 (BYTEPOS): Access the byte position part of a text_pos.
11112 (CHARPOS): Likewise for the character position.
11113 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11114 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11115 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11116 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11117 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11118 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11119 for buffer and string positions.
11120 (struct glyph): Use text_pos.
11121 (struct it): Renamed from display_iterator. Use text_pos.
11122
111231998-07-23 Gerd Moellmann <gerd@gnu.org>
11124
11125 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11126 pixmap.
11127
111281998-07-21 Gerd Moellmann <gerd@gnu.org>
11129
11130 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11131 * xterm.c (x_draw_row_bitmaps): Use it.
11132 * dispnew.c (row_equal_p): Ditto.
11133 (update_window_line): Ditto.
11134
11135 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11136 flag of images.
11137
11138 * dispextern.h (struct image): Removed member loading_failed_p.
11139 It's probably better to have the chance to try to load an image
11140 again.
11141
111421998-07-20 Gerd Moellmann <gerd@gnu.org>
11143
11144 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11145 at ZV if `indicate-zv-lines' is non-nil.
11146 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11147
11148 * dispnew.c (row_equal_p): Compare displays_text_p and
11149 ends_at_zv_p flags of rows.
11150 (update_window_line): Ditto.
11151
11152 * buffer.h (struct buffer): New member indicate_zv_lines.
11153
11154 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11155 (init_buffer_once): New variable `default-indicate-zv-lines'.
11156 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11157
11158 * xdisp.c (redisplay_window): Don't try moving the cursor
11159 if current glyph row w->last_cursor.vpos isn't enabled.
11160
11161 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11162
11163 * window.c (Fset_window_vscroll): Allow only negative scroll
11164 values. Others don't seem to make sense, and this way it's easy
11165 to restore a vscroll of zero.
11166
11167 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11168 allocated.
11169 (x_draw_image_glyph_string_background): Don't clip if pixmap
11170 could not be created.
11171
11172 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11173 be created.
11174 (xbm_load): Ditto.
11175 (gs_load): Ditto.
11176
11177 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11178 glyphs into account.
11179
11180 * xfaces.c (realize_default_face): Don't set font family of
11181 the default face from the fontset alias name for `fontset-startup'.
11182
11183 * xfns.c (gs_load): Pass frame's pixel foreground and background
11184 color to the Lisp loader.
11185
111861998-07-19 Gerd Moellmann <gerd@gnu.org>
11187
11188 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11189 libtiff34.
11190
11191 * configure.in (--with-tiff, HAVE_TIFF): Added.
11192
11193 * config.in (HAVE_TIFF): Added.
11194
11195 * Makefile.in (LIBTIFF): Added.
11196
11197 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11198
11199 * Makefile.in (LIBJPEG): Added.
11200
11201 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11202 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11203 jpeglib.h.
11204
427ec082 11205 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11206 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11207 configure must be run with `--x-includes=/usr/X11R6/include:
11208 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11209
112101998-07-18 Gerd Moellmann <gerd@gnu.org>
11211
11212 * config.in (HAVE_JPEG): Added.
11213
11214 * xfns.c (ct_init): Initialize color table used to map RGB colors
11215 from images to X pixel colors.
11216 (ct_free): Free color table.
11217 (ct_lookup): Look an RGB color up.
11218 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11219 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11220 image specification.
11221 (pbm_scan_number): Scan a decimal ASCII number from a file.
11222 (pbm_load): Load a PPM image.
11223
11224 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11225 necessary. Take canonical character units as parameter.
11226 (Fwindow_vscroll): Return canonical character units.
11227
11228 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11229 w->dy to display height for which glyph rows must be allocated.
11230
112311998-07-17 Gerd Moellmann <gerd@gnu.org>
11232
11233 * xfaces.c (face_at_string_position): Merge in region face
11234 so that it won't overwrite the font in the region.
11235 (face_at_buffer_position): Ditto.
11236 (realize_basic_faces): Don't realize region face.
11237
11238 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11239
11240 * xterm.c (x_set_glyph_string_background_width): Don't let
11241 cursor face extend to end of line.
11242
11243 * xdisp.c (append_space): If adding space of default face,
11244 make sure glyph ist produced with right face.
11245
11246 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11247 background color of a glyph string.
11248 (x_draw_glyph_string_background): Call it.
11249 (x_draw_glyph_string_bg_rect): Ditto.
11250 (x_draw_stretch_glyph_string): Ditto.
11251
112521998-07-15 Gerd Moellmann <gerd@gnu.org>
11253
11254 * xdisp.c (init_iterator): Initialize it->current_y to the
11255 window's vscroll w->dy.
11256
11257 * window.c (Fwindow_vscroll): Return number of pixels window
11258 is vscrolled smoothly.
11259 (Fset_window_vscroll): Set the number.
11260
11261 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11262 to_pos in truncated part of a line.
11263
112641998-07-14 Gerd Moellmann <gerd@gnu.org>
11265
11266 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11267 doesn't fit on the line, truncate it, despite truncate_lines nil.
11268 (display_line): Ditto.
11269
11270 * xfns.c: Experimental support for Ghostscript images.
11271
11272 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11273 (XTread_socket): React on events from Ghostscript.
11274 (expose_frame): If width or height are zero, redraw entire frame.
11275 (XTread_socket): Call expose_frame after receiving event from
11276 Ghostscript.
11277
11278 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11279 for Ghostscript support.
11280
11281 * xdisp.c (redisplay_internal): Return quickly if called
11282 recursively.
11283
11284 * alloc.c (NSTATICS): Increased to 1024.
11285
112861998-07-08 Gerd Moellmann <gerd@gnu.org>
11287
11288 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11289 iterator's glyph row.
11290 (x_produce_stretch_glyph): Call it.
11291 (x_produce_glyphs): Handle `space-width' property; call
11292 x_append_stretch_glyph.
11293
11294 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11295 property.
11296 (get_iterator_space_width): Determine value of `space-width'
11297 property at iterator's position.
11298 (reseat_iterator): Call it.
11299 (next_element_from_string): Ditto.
11300 (next_element_from_buffer): Ditto.
11301 (init_iterator): Initialize space_width of iterator.
11302 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11303 moved, but cursor blinks.
11304 (redisplay_internal): Set w->last_cursor_off_p after update.
11305
11306 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11307 (struct display_iterator): Add new member space_width.
11308
11309 * window.h (struct window): Add last_cursor_off_p.
11310
113111998-07-07 Gerd Moellmann <gerd@gnu.org>
11312
11313 * Saved.
11314
11315 * window.c (Fpos_visible_in_window_p): Case window not up to
11316 date---return nil if iterator hasn't reached position.
11317
113181998-07-06 Gerd Moellmann <gerd@gnu.org>
11319
11320 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11321 overlays have changed.
11322 (redisplay_window): Case cursor movement. Don't try it if
11323 last_cursor.vpos is out of range.
11324
11325 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11326 way, the display optimization for the line containing the cursor
11327 is used more frequently, esp. when we have a blinking cursor.
11328 (display_line): Don't set this_line_.* variables.
11329
11330 * xterm.c (x_redraw_cursor): Removed.
11331 (x_display_and_set_cursor): Set cursor type depending on
11332 cursor_off_p flag of window.
11333
11334 * dispnew.c (redraw_cursor_hook): Removed.
11335 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11336 member of the selected window.
11337
11338 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11339
11340 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11341 Return glyph area under x/y.
11342 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11343
11344 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11345 after redisplaying.
11346
113471998-07-05 Gerd Moellmann <gerd@gnu.org>
11348
11349 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11350 are all outside of a line of text.
11351 (redisplay_internal): Use it.
11352
113531998-06-30 Gerd Moellmann <gerd@gnu.org>
11354
11355 * xdisp.c (next_element_from_buffer): After skipping over
11356 invisible text, look for the `glyph' property.
11357 (set_iterator_stop_pos): Ignore check positions in front
11358 of an iterator's current position.
11359
11360 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11361 anymore or which are marked as not having valid contents.
11362
11363 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11364 realized faces if new attribute value is equal to old value.
11365
113661998-06-29 Gerd Moellmann <gerd@gnu.org>
11367
11368 * xfaces.c (Finternal_make_lisp_face): Increment
11369 lface_id_to_name_size when lface_id_to_name is reallocated.
11370
113711998-06-27 Gerd Moellmann <gerd@gnu.org>
11372
11373 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11374 as minimum of endpos and overlay_pos.
11375 (load_overlay_strings): Set next_overlay_pos of iterator to
11376 -1 if we don't have to check for more overlay strings.
11377
113781998-05-09 Gerd Moellmann <gerd@gnu.org>
11379
11380 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11381 do anything if iterator is at ZV because scan_buffer doesn't
11382 work otherwise.
11383
11384 * xterm.c (x_encode_char): Inline it.
11385 (x_get_char_font_and_encoding): Simplified.
11386 (x_per_char_metric): Inline it.
11387
11388 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11389
11390 * xdisp.c (get_next_display_element): Check for end of relief
11391 face moved here from next_element_from_buffer.
11392
11393 * xterm.c (x_produce_image_glyph): Add relief thickness.
11394 (x_produce_stretch_glyph): Ditto.
11395
113961998-05-08 Gerd Moellmann <gerd@gnu.org>
11397
11398 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11399 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11400
11401 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11402 from a glyph property.
11403 (x_produce_glyphs): Use it.
11404
11405 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11406
427ec082 11407 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11408 in text area.
11409 (x_produce_glyphs): Ditto.
11410
427ec082 11411 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11412 marginal areas.
11413
427ec082 11414 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11415 background of an image glyph string.
427ec082 11416 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11417 the background of a glyph string.
11418 (x_draw_image_glyph_string_foreground): Draw the foreground of
11419 an image glyph string.
11420 (x_inverted_image_mask): Return the inverted mask of an image.
11421
11422 * xfns.c (x_draw_image): Removed.
11423
11424 * dispextern.h (struct image_type): Remove drawing function.
11425
11426 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11427
11428 * xdisp.c (get_next_display_element): In marginal areas, translate
11429 newlines, tabs, etc. like normal control characters.
11430
11431 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11432 and color.
11433 (free_realized_faces): Set frame garbaged.
11434
11435 * xfaces.c (syms_of_xfaces): Add defsubr for
11436 internal-lisp-face-attribute-values.
11437
114381998-05-07 Gerd Moellmann <gerd@gnu.org>
11439
11440 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11441 full.
11442 (x_produce_image_glyph): Set IT->nglyphs to 1.
11443 (x_draw_image_glyph_string): Use inverted mask to draw background.
11444
11445 * dispextern.h (struct image_type): Additional clipping rect
11446 parameters for drawing functions.
11447
427ec082 11448 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11449 a glyph string.
11450 (x_draw_image_glyph_string): Use it and pass the rect to the
11451 image drawing function.
11452
11453 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11454 first character with `glyph' property as image position. Set
11455 iterator back to that position as long as the image hasn't been
11456 consumed with set_iterator_to_next.
11457 (set_cursor_from_row): Accept when glyph with given position is
11458 not found in the row. Set cursor x to end of line in that case,
11459 so that we can hscroll.
11460 (redisplay_internal): Correct computation of delta by which
11461 positions have changed in redisplay optimization for cursor
11462 row of selected window.
11463
11464 * xdisp.c (display_line): Remove start_pos.
427ec082 11465 (display_line): Fix bug preventing display optimization for
26901792
DL
11466 cursor line of selected window.
11467 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11468 instead.
11469
11470 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11471 (update_text_area): Take glyph pixel width into account
11472 when trying to find a resync point.
11473 (row_equal_p): Compare glyphs in all areas.
11474
114751998-05-06 Gerd Moellmann <gerd@gnu.org>
11476
11477 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11478
11479 * dispextern.h (struct glyph_row): Use unsigned hash value.
11480
11481 * xdisp.c (display_line): Simplified and made faster by setting
11482 the cursor with set_cursor_from_row.
11483 (set_cursor_from_row): Handle rows of desired matrix.
11484
114851998-05-05 Gerd Moellmann <gerd@gnu.org>
11486
11487 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11488 with type != CHAR_GLYPH.
11489 (fill_iterator_from_glyph_property): Return void. Set
11490 method to next_element_from_image.
11491 (next_element_from_image): Dummy function for delivering a
11492 single image id.
11493 (set_iterator_to_next): Add method next_element_from_image.
11494 (redisplay_window): When recentering, and cursor vpos is -1
11495 after display, assume middle of window is in first line displayed
11496 in window, and display again.
427ec082 11497 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11498 the position of the first character having the glyph property.
11499
11500 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11501 * xfns.c (x_draw_image): Use it.
11502 * xterm.c (x_produce_image_glyph): Use it.
11503
11504 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11505
11506 * Makefile.in: Extraneous #define of LIBXPM removed.
11507
11508 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11509 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11510 stretch glyph.
11511 (x_compute_glyph_string_overhangs): Compute overhangs only
11512 for text glyph strings.
11513 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11514 (x_draw_glyph_string): Call it.
11515
11516 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11517 (struct glyph): Add sub-structure for stretchable glyphs.
11518 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11519
11520 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11521 #ifdef HAVE_FACES.
11522
11523 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11524
11525 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11526 setup_iterator_from_glyph_property. Don't do it for terminal
11527 frames.
11528
11529 * xterm.c (x_produce_image_glyph): Produce glyph for image
11530 that can't be loaded.
11531
11532 * xfns.c (lookup_image): If image can't be loaded, set its
11533 width and height so that we can draw a rectangle.
11534 (x_draw_image): Draw a rectangle for images that don't have
11535 a pixmap.
11536 (make_image): Set hash value.
11537 (image_spec_equal_p): Use image_spec_value.
11538
11539 * xterm.c (expose_frame): Don't try to redraw if basic faces
11540 haven't benn realized yet.
427ec082 11541 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11542 is not as tall as row.
11543
115441998-05-04 Gerd Moellmann <gerd@gnu.org>
11545
11546 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11547 (LIBX)[HAVE_X11]: Add LIBXPM.
11548
11549 * xfns.c (xpm_image_p): Implementation of image type functions
11550 for XPM.
11551 (xpm_load): Ditto.
11552
11553 * dispextern.h (struct image): Add mask pixmap for XPM.
11554
11555 * xfns.c (x_draw_image): Handle images with masks.
11556
11557 * configure.in: --with-xpm added. Code detecting -lXpm added.
11558
11559 * config.in: Add HAVE_XPM.
11560
11561 * xfns.c (xbm_draw): Removed.
11562 (x_draw_image): Default implementation for drawing images.
11563 (xbm_keyword_index): Remove XBM_DEPTH.
11564 (xbm_format): Remove `:depth'.
11565 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11566 (xbm_load_image_from_file): Added for the same reason.
26901792 11567
427ec082 11568 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11569 glyph string.
11570 (x_draw_image_glyph_string): Pass ybase to image draw function.
11571
11572 * xfns.c (make_image): Set default baseline.
11573
11574 * xterm.c (x_produce_image_glyph): Compute ascent of image
11575 from its height and baseline percentage.
11576
11577 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11578 (xbm_format): Add description for `:baseline'.
11579 (xbm_image_spec_from_file): Add keywords from original spec to
11580 result.
11581 (xbm_load): Set baseline of image.
11582 (xbm_image_p): Check range for baseline.
11583
11584 * dispextern.h (struct image): Add member baseline.
11585
11586 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11587
11588 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11589
11590 * xdisp.c (get_next_display_element): Do character translations
11591 only if delivering characters.
11592
115931998-05-03 Gerd Moellmann <gerd@gnu.org>
11594
427ec082 11595 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11596 DISP_CHARACTER.
11597
11598 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11599 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11600
116011998-05-02 Gerd Moellmann <gerd@gnu.org>
11602
11603 * xfns.c (prepare_image_for_display): Set image timestamp.
11604 (clear_image_cache): Clear images if image's timestamp +
11605 Vimage_eviction_seconds is > now.
11606 (syms_of_xfns): New variables image-eviction-seconds, and
11607 image-types.
11608 (add_image_format): Add to image-types.
11609 (xbm_load): Support new image spec format.
11610 (x_alloc_image_color): Allocate a color for an image.
11611
11612 * dispextern.h (struct image): Add timestamp.
11613
11614 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11615 vectors of bool-vectors.
11616 (xbm_lisp_object_from_file): Build new format image spec.
11617
116181998-05-01 Gerd Moellmann <gerd@gnu.org>
11619
11620 * xfaces.c (init_frame_faces): Initialize image cache.
11621 (free_frame_faces): Free it.
11622
11623 * xterm.c (x_delete_display): Don't free image cache.
11624
11625 * emacs.c (main): Call init_xfns.
11626
116271998-04-30 Gerd Moellmann <gerd@gnu.org>
11628
11629 * alloc.c (mark_object): Mark objects in image cache.
11630
427ec082 11631 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11632 widget_store_internal_border_width.
11633
11634 * widget.c (widget_store_internal_border): Return void.
11635
11636 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11637 void.
11638 (init_x_parm_symbols): Return void.
11639 (x_report_frame_params): Ditto.
11640 (x_set_border_pixel): Ditto.
11641 (syms_of_xfns): Ditto.
11642 (x_destroy_all_bitmaps): Use xfree instead of free.
11643
11644 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11645
11646 * xterm.c (x_term_init): Initialize image_cache of display info.
11647 (x_delete_display): Free image cache.
11648
11649 * xterm.h (struct x_display_info): Add image_cache.
11650
11651 * xfns.c (make_image_cache): Allocate a new image cache.
11652 (free_image_cache): Free an image cache.
11653 (make_image): Allocate an image.
11654 (free_image): Free an image.
11655
11656 * dispextern.h (struct image): Structure describing an image.
11657 (struct image_cache): Structure describing an image cache.
11658
116591998-04-29 Gerd Moellmann <gerd@gnu.org>
11660
11661 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11662 non-zero if iterator is filled with something to return.
11663 (next_element_from_buffer): Immediately return if
11664 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11665 (next_element_from_string): Likewise.
11666
11667 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11668
11669 * dispextern.h (struct glyph): Add pixmap_id.
11670 (display_element_type): Add DISP_PIXMAP.
11671
11672 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11673 malloc/free.
11674
11675 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11676 (clear_face_cache): Call it.
11677
11678 * xterm.c (x_query_font): Don't look at empty font table slots.
11679 (x_compute_min_glyph_bounds): Likewise.
11680 (x_term_init): Initialize font_table to null.
11681 (x_load_font): Change allocation of font_info structures so
11682 that it is possible to free fonts.
11683
427ec082 11684 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11685 Only free fonts from filled font table entries.
11686
11687 * xfaces.c (best_matching_font): Support use of scalable fonts.
11688 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11689
11690 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11691 and resy.
11692 * xterm.c (x_term_init): Compute resx and resy.
11693
11694 * xfaces.c (split_font_name): Don't reject scalable fonts.
11695
427ec082 11696 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11697 in #if 0.
11698
11699 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11700 point size cannot be determined.
11701
11702 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11703 width over all fonts on a frame.
11704 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11705 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11706 macros.
11707
11708 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11709 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11710 (x_load_font): Use x_compute_min_char_bounds.
11711
11712 * xterm.h (struct x_display_info): New members smallest_char_width
11713 and smallest_font_height.
11714
117151998-04-28 Gerd Moellmann <gerd@gnu.org>
11716
11717 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11718 the same name if GC of face is zero.
11719
11720 * dispextern.h (struct face): Member non_ascii_gc removed.
11721
11722 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11723 for characters < 0177 in default face. Prepare face for
26901792
DL
11724 display before returning it.
11725 (x_produce_glyphs): Use it->charset.
11726 (x_get_char_font_and_encoding): Simplified.
11727 (x_encode_char): Remove parameter `font'.
11728
11729 * xfaces.c (choose_face_font): If registry from charset symbol
11730 doesn't contain a `-', make it a pattern by appending "*-*".
11731
11732 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11733 glyph_check_pos computation to character boundary.
11734
117351998-04-27 Gerd Moellmann <gerd@gnu.org>
11736
11737 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11738
11739 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11740 ASCII face for a given Lisp face id.
11741
11742 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11743 account.
427ec082 11744 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11745 new position is < original position.
11746 (check_iterator_glyph_property): Handle glyph property in strings.
11747 (next_element_from_string): Call above function.
11748 (next_element_from_display_vector): Handle faces in glyphs.
11749 (get_next_display_element): Set face_id of glyphs for
11750 control chars to zero.
11751
11752 * Makefile.in (term.o): Add dependency on dispextern.h.
11753
11754 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11755 (display_line): Handle marginal areas.
11756 (move_iterator_in_display_line_to): Likewise.
11757
11758 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11759
11760 * xfaces.c (face_at_buffer_position): Don't merge with nil
11761 text property.
11762 (face_at_string_position): Ditto.
11763
11764 * dispextern.h (struct display_iterator): Use a stack of saved
11765 values instead of saving check positions etc. individually.
11766
11767 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11768 maybe pop the iterator's stack.
11769 (save_iterator_settings): Push a value on iterator's stack.
11770 (get_overlay_strings_at_iterator_position): Use it.
11771 (restore_iterator_settings): Pop the stack.
11772 (set_iterator_to_next_overlay_string): Use it.
11773
11774 * xfaces.c (try_font_list): Use alternative font families.
11775
117761998-04-26 Gerd Moellmann <gerd@gnu.org>
11777
11778 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11779 font selection matches fonts.
11780 (Fface_font_sort_order): Return the font sort order.
11781 (best_matching_font): Find best matching font based on sort order.
11782 (cmp_font_names): Sort by given sort order.
11783
11784 * dispextern.h (struct display_iterator): New member faces_p.
11785 * xdisp.c (init_iterator): Initialize it->faces_p.
11786 (compute_face_at_iterator_string_position): Use it.
11787 (compute_face_at_iterator_position): Use it.
11788 (init_iterator): Use it.
11789 (display_mode_line): Ditto.
11790
11791 * xdisp.c (get_next_display_element): Put code choosing a face
11792 when the charset changes in #ifdef HAVE_FACES.
11793
427ec082 11794 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11795 lookup_face_for_charset.
11796
11797 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11798 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11799
118001998-04-25 Gerd Moellmann <gerd@gnu.org>
11801
11802 * xfaces.c (best_matching_font): Return the name of the best
11803 matching font in an array of font_name structures.
11804 (choose_face_font): Use it.
11805 (choose_face_fontset_font): Use it.
11806 (find_best_weight_font): If final font found has same weight as
11807 the font we started with, return the original font because it is a
11808 better match for the resolution of the display.
11809 (find_best_slant_font): Likewise.
11810 (merge_face_vector_with_property): Check more invalid attribute
11811 values.
11812 (lface_suitable_for_charset_p): Replaced by a macro with the same
11813 name in upper-case.
11814
118151998-04-24 Gerd Moellmann <gerd@gnu.org>
11816
11817 * dispextern.h (struct face): Member
11818 fontset_chosen_for_realization_p removed.
11819
11820 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11821 end of the collision list, so that we find more specific faces
11822 first.
11823 (lookup_face_for_charset): Look up a new face if face->fontset >=
11824 0, and charset != CHARSET_COMPOSITION.
11825
11826 * xfaces.c (split_font_name): Return zero if point size of font
11827 couldn't be computed.
11828 (realize_default_face): Use ASCII font of a fontset to determine
11829 font-related attributes of the default face.
11830 (face_fontset): Return fontset id for face family.
11831 (font_list): Additional parameter font_pattern. If non-nil,
11832 return fonts matching that pattern.
11833
118341998-04-23 Gerd Moellmann <gerd@gnu.org>
11835
11836 * xfaces.c (choose_face_fontset): If new fontset cannot be
11837 constructed, or fontset name cannot be split, return the id of the
11838 standard fontset.
11839
11840 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11841 When Emacs starts, it may be called for the initial frame which
11842 isn't an X frame.
11843
11844 * dispextern.h (struct face): New members foreground_defaulted_p,
11845 background_defaulted_p.
11846 (struct face): Members `mask' and `cache' removed.
11847
11848 * xfaces.c (load_color): Set them.
11849 (free_face_colors): Check them.
427ec082 11850 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11851 font unknown.
11852
11853 * xfaces.c (free_font): Removed.
11854 (load_face_font_or_fontset): Renamed from load_font.
11855 (load_face_font_or_fontset): Use message2 instead of signalling.
11856 (load_color): Likewise.
11857 (load_pixmap): Likewise.
11858
11859 * xterm.h (struct x_display_info): Add screen_dpi.
11860 * xterm.c (x_term_init): Initialize it.
11861 * xfaces.c (xlfd_point_size): Use it.
11862 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11863 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11864 similar to that of the frame appear first in the result.
11865
11866 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11867 is set for the face to cache, add it to the end of the collision
11868 list.
11869 (try_font_list): If fonts for given family and registry cannot
11870 be found, first try to keep the registry, and choose a different
11871 family.
11872 (choose_face_font): Allow nfonts == 0.
11873 (try_font_list): Give up if no font matches given registry.
11874
118751998-04-22 Gerd Moellmann <gerd@gnu.org>
11876
11877 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11878 font info id of the face.
11879
11880 * xfaces.c (load_font): Set font_info_id.
11881 (realize_face): Ditto.
11882
11883 * dispextern.h (struct face): Change member font_info to
11884 font_info_id.
11885
11886 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11887 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11888
11889 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11890 isn't ASCII, get the ASCII face before adding a space.
11891 (append_space): Likewise.
11892 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11893 to -1 so that it will compute the right face for the truncation
11894 glyphs.
11895
11896 * xfaces.c (realize_face): Set
11897 face->fontset_chosen_for_realization_p.
11898 (lookup_face_for_charset): If fontset wasn't specified originally
11899 and new charset != CHARSET_COMPOSITION, get a new face for that
11900 charset.
11901
11902 * dispextern.h (struct face): New member
11903 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11904 realize_face has chosen a fontset to display composite characters
11905 for a Lisp face not specifying a fontset.
11906
11907 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11908 face and line already filled here. Don't do anything if current
11909 face hasn't a relief or has a background equal to the frame
11910 background.
11911
11912 * xfaces.c (split_font_name): Additional parameter numeric_p.
11913 Don't compute numeric values if it is non-zero.
11914 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11915 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11916 font whose name cannot be split into fields.
11917
119181998-04-21 Gerd Moellmann <gerd@gnu.org>
11919
427ec082 11920 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11921 possibly using less restrictive patterns.
11922 (choose_face_font): Use it.
11923
11924 * xterm.c (x_get_char_font_and_encoding): For charset !=
11925 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11926
11927 * dispextern.h (struct face): New member font_info.
11928
11929 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11930 specifying a fontset as well as those not having a fontset.
11931 (free_font): Make it empty.
11932 (realize_face): Use changed load_font.
11933
11934 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11935 fit for charset, get the right one.
11936
11937 * xfaces.c (load_font): Take frame and name parameter, return
11938 font.
11939 (free_font): Likewise.
11940 (split_font_name): Compute numeric values for height, swidth etc.
11941 (cmp_font_names): Use them.
11942 (find_best_width_font): Ditto.
11943 (find_best_height_font): Ditto.
11944 (find_best_weight_font): Ditto.
11945 (find_best_slant_font): Ditto.
11946 (lface_hash): Add weight, slant, swidth and relief to hash value.
11947 (lface_equal_p): Make it faster.
11948 (lface_from_symbol): Use assq_no_quit.
11949 (Fnote_default_face_changed): Removed.
11950 (cmp_font_names): Use strcmp instead of xstricmp.
11951 (face_charset_registries): Removed.
11952
119531998-04-20 Gerd Moellmann <gerd@gnu.org>
11954
11955 * frame.h (CHECK_FRAME): Give this macro a statement form.
11956 (CHECK_LIVE_FRAME): Ditto.
11957
11958 * xfaces.c (find_best_width_font): Find the best matching font
11959 for a given width.
11960 (find_best_height_font): Likewise for height.
11961 (find_best_weight_font): Likewise for weight.
11962 (find_best_slant_font): Likewise for slant.
11963 (choose_face_font): Use them.
11964 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11965 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11966 global face attributes.
11967
11968 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11969 Lisp face attributes.
11970
119711998-04-19 Gerd Moellmann <gerd@gnu.org>
11972
11973 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11974 and :italic for compatibility.
11975 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11976 :bold and :italic. Handle boolean resource values for
26901792
DL
11977 :underline and :italic.
11978
11979 * xfns.c (display_x_get_resource): Make it externally visible.
11980
11981 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11982 If that frame is non-null, return the frame-local face.
11983 (Finternal_make_lisp_face): Additional frame argument.
11984 (lface_attributes): Get face attributes from global and frame-local
11985 definitions.
11986 (Finternal_lisp_face_equal_p): Additional frame argument.
11987 (merge_lisp_face_vector_with_property): Ditto.
11988 (Frealize_basic_faces): Removed.
11989 (Finternal_get_lisp_face_attribute): Additional frame argument.
11990 (Finternal_lisp_face_p): Ditto.
11991 (load_color) [MSDOS]: Removed because it isn't clear how
11992 to do this for MS-DOS.
11993
11994 * xfaces.c (lface_from_symbol): Get global face definition
11995 from face-global-alist.
11996
11997 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11998 as values for :underline and :inverse-video.
11999 (Finternal_set_lisp_face_attribute): Allow nil values.
12000
120011998-04-17 Gerd Moellmann <gerd@gnu.org>
12002
12003 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
12004
12005 * xfaces.c (syms_of_xfaces): Add Vall_faces.
12006 (Finternal_make_lisp_face): Add new face to Vall_faces.
12007
12008 * xdisp.c (echo_area_display): Remove code recomputing faces.
12009 (redisplay_internal): Ditto.
12010 (init_iterator): Do it here.
12011
12012 * xfaces.c (choose_face_font): Check that swidth doesn't change
12013 for subusequent attributes.
12014 (xlfd_point_size): Return int.
12015
12016 * xdisp.c (redisplay_internal, echo_area-display): If realized
12017 faces have been cleared, call recompute_basic_faces.
12018
12019 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
12020 face_attributes_changed_p.
427ec082 12021 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
12022 all frames.
12023 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
12024
12025 * xdisp.c (redisplay_internal): If face attributes have been
12026 changed since the last redisplay, recompute basic faces.
12027 (echo_area_display): Ditto.
12028
12029 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
12030
12031 * xfaces.c (min_char_bounds): If face cache not yet present,
12032 don't try to get font dimensions from faces.
12033
12034 * xterm.c (x_frame_mode_line_height): If face cache not present
12035 set, return default height.
12036
12037 * alloc.c (mark_face_cache): Check for null faces. Correct
12038 index bug.
12039
12040 * dispextern.h (struct face): Renamed from struct rface. Member
12041 underline renamed underline_p. Make it a bit-field.
12042
12043 * xfaces.c (init_frame_faces): Allocate face cache.
12044 (free_frame_faces): Free face cache.
12045 (recompute_basic_faces): Realize basic faces only if face cache is
12046 allocated, i.e. after init_frame_faces has been called.
12047
12048 * frame.c (make_frame): Initialze face cache with null.
12049
12050 * xfaces.c (same_size_fonts): Removed.
12051
427ec082 12052 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
12053 s->gc != 0.
12054 (x_set_mouse_face_gc): Ditto.
12055 (x_set_mode_line_face_gc): Ditto.
12056
427ec082
SS
12057 * xfaces.c (realize_default_face): Return int. Value is
12058 zero if frame params don't contain enough information to
26901792
DL
12059 realize the default face.
12060 (realize_basic_faces): Ditto.
12061 (init_frame_faces): Realize basic faces.
12062
12063 * xfns.c (x_set_font): First store real font name in frame
12064 parameters, then call recompute_basic_faces.
12065
12066 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12067
120681998-04-16 Gerd Moellmann <gerd@gnu.org>
12069
12070 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12071
12072 * xfns.c (Fx_face_fixed_p): Removed.
12073 (Fx_list_fonts): Moved to xfaces.c.
12074
12075 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12076 face_at_buffer_position. Parameter charset removed; always
12077 compute face for CHARSET_ASCII.
12078 (face_at_string_position): Renamed from
12079 compute_face_at_string_pos. Parameter charset removed; always
12080 compute for CHARSET_ASCII.
427ec082 12081 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12082 face_cache.
12083 (lookup_face): Ditto.
12084 (compute_char_face): Renamed from compute_glyph_face.
12085
12086 * xdisp.c (init_iterator): Initialize charset member.
12087 (reseat_iterator_to_string): Ditto.
12088 (get_charset_at_buffer_position): Determine charset at
12089 buffer position in current_buffer.
12090 (reseat_iterator): Call above function.
12091 (compute_face_at_iterator_position): Call
12092 compute_face_at_buffer_pos.
12093 (compute_face_at_iterator_string_position): Call
12094 compute_face_at_string_pos.
12095 (get_face_from_id): Removed.
12096 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12097 Call get_charset_at_buffer_position.
12098 (reseat_iterator): Determine face if charset at pos differs
12099 from iterator's charset.
12100 (reseat_iterator_to_glyph_pos): Removed.
12101
12102 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12103 Determine charset from buffer position.
12104 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12105 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12106
12107 * dispextern.h (struct display_iterator): Add member charset.
12108
121091998-04-15 Gerd Moellmann <gerd@gnu.org>
12110
12111 * xfaces.c (compute_char_face): Removed.
12112
12113 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12114 with new parameter list.
12115
12116 * xfaces.c (region_face): Removed.
12117 (allocate_face): Removed.
12118 (copy_face): Ditto.
12119 (face_eql): Removed.
12120 (intern_face): Removed.
12121 (clear_face_cache): Removed.
12122 (load_font): Ditto.
12123 (unload_font): Ditto.
12124 (load_color): Ditto.
12125 (unload_color): Ditto.
12126 (new_computed_face): Ditto.
12127 (intern_computed_face): Ditto.
12128 (ensure_face_ready): Ditto.
12129 (merge_faces): Ditto.
12130 (compute_base_face): Ditto.
12131 (merge_face_list): Ditto.
12132 (Fmake_face_internal): Removed.
12133 (Fset_face_attribute_internal): Ditto.
12134 (face_name_id_number): Removed.
12135 (Fframe_face_alist): Ditto.
12136 (Fset_frame_face_alist): Ditto.
12137 (Finternal_next_face_id): Ditto.
12138
12139 * xterm.h (struct x_output): Remove computed_faces, and
12140 param_faces. Remove macros accessing them.
12141
12142 * xfaces.c: Entirely new face implementation added.
12143
121441998-04-11 Gerd Moellmann <gerd@gnu.org>
12145
12146 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12147 `charpos'.
12148
121491998-04-10 Gerd Moellmann <gerd@gnu.org>
12150
12151 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12152 scroll bar window to reduce flickering. Clear entire height.
12153
12154 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12155 current_x and hpos to zero after moving to previous line
12156 start.
12157
121581998-04-03 Gerd Moellmann <gerd@gnu.org>
12159
12160 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12161
12162 * xfaces.c (xlfd_point_size): Compute relative point size of
12163 fonts from font and frame resolution.
12164 (sort_fonts): New function to sort fonts, temporarily setting
12165 font_frame to the frame in effect.
12166 (xlfd_point_size): Take additional frame parameter to be able
12167 to get at the display's resolution.
12168
12169 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12170 BLACK_PIX_DEFAULT.
12171 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12172 screen of display.
12173
121741998-03-31 Gerd Moellmann <gerd@gnu.org>
12175
12176 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12177
12178 * fontset.h: Add external declarations for Vfontset_alias_alist
12179 and Vglobal_fontset_alist.
12180
12181 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12182 (realize_default_face): If frame parameters contain an artificial
12183 font name naming a fontset, set the family of the default face to
12184 the fontset name given by the registry.
12185
12186 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12187
121881998-03-22 Gerd Moellmann <gerd@gnu.org>
12189
12190 * alloc.c (mark_object): Add function prototype. Add cast to
12191 Lisp_Object pointer in call to mark_object for symbol names
12192 because this otherwise gives a warning from gcc 2.8.1.
12193 (mark_face_cache): Mark Lisp objects in realized faces.
12194
121951998-03-19 Gerd Moellmann <gerd@gnu.org>
12196
12197 * frame.h (struct frame): Add member face_cache.
12198
12199 * alloc.c (mark_object): Mark face cache.
12200 (mark_face_cache): Mark Lisp faces in face cache of frame.
12201
12202 * frame.c (make_frame): Initialize face_cache.
12203 (Fdelete_frame): Free it.
12204
122051998-03-18 Gerd Moellmann <gerd@gnu.org>
12206
12207 * xfaces.c: Very first skeleton of functions for face realization,
12208 face merging, face cache etc.
12209
12210 * dispextern.h (struct rface): Realized faces. Will replace
12211 struct face when tested.
12212 (struct face_cache): Realized face caches.
12213
12214 * xdisp.c (init_iterator): Initialize area member of display
12215 iterator.
12216
122171998-03-17 Gerd Moellmann <gerd@gnu.org>
12218
12219 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12220
12221 * dispextern.h (struct display_iterator): New member area.
12222
12223 * xterm.c (note_overwritten_text_cursor): Note when the text
12224 cursor of a window is overwritten.
12225
12226 * xdisp.c (set_cursor_from_row): If PT is not found in the
12227 row, display the cursor at the start of the row.
12228
12229 * dispnew.c (direct_output_forward_char): Call
12230 set_cursor_from_row.
12231
12232 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12233 position is not in an overlay string, set iterator's position and
12234 method explicitly so.
427ec082 12235 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12236 Make it externally visible.
12237 (redisplay_window): Call set_cursor_from_row so that there is only
12238 one place where the cursor position is calculated from a current
12239 row.
12240
12241 * dispextern.h (struct display_iterator): New member
12242 overlay_strings_at_end_processed_p.
12243
12244 * xdisp.c (check_iterator): Perform sanity checks on
12245 display_iterators.
12246 (next_element_from_buffer): Check for overlay strings at ZV.
12247
122481998-03-16 Gerd Moellmann <gerd@gnu.org>
12249
12250 * buffer.c (init_buffer_once): Add left_margin_width and
12251 right_margin_width to buffer_local_flags.
12252
12253 * dispnew.c (margin_glyphs_to_reserve): Function computing
12254 number of glyphs to reserve for a marginal area.
12255 (adjust_glyph_matrix): Call it.
12256 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12257 is not alive.
12258
12259 * window.c (Fset_window_margins): Allow floats.
12260
12261 * buffer.c (syms_of_buffer): Add buffer-local variables
12262 left-margin-width and right-margin-width. Add defaults
12263 default-left-margin-width and default-right-margin-width.
12264
12265 * buffer.h (struct buffer): New members left_margin_width
12266 and right_margin_width.
12267
12268 * window.c (Fset_window_margins): Make window the last and
12269 optional argument.
12270
12271 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12272 flag no_marginal_areas_p differently.
12273 (x_clear_end_of_line): Ditto.
12274 (x_draw_glyph_string_relief): Compute width of relief differently
12275 for rows with flag no_marginal_areas_p.
12276
12277 * dispnew.c (update_window_line): Update marginal areas only
12278 for rows that don't have no_marginal_areas_p set.
12279
12280 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12281 (display_menu_bar): Ditto.
12282
12283 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12284
12285 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12286 marginal areas in window-based redisplay.
12287
12288 * dispextern.h (struct glyph_matrix): New members
12289 left_margin_glyphs and right_margin_glyphs.
12290
122911998-03-15 Gerd Moellmann <gerd@gnu.org>
12292
12293 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12294
12295 * charset.c (non_ascii_char_to_string): Use char type parameters
12296 because the function is used that way from outside. Use unsigned
12297 char internally.
12298
12299 * window.c (change_window_height): Return void.
12300 (make_dummy_parent): Return void.
12301 (init_window_once): Return void.
12302 (syms_of_window): Ditto.
12303 (keys_of_window): Ditto.
12304 (delete_window): Correct return with and without value.
12305
12306 * buffer.c (record_buffer): Return void.
12307
12308 * marker.c (unchain_marker): Return void.
12309
12310 * window.c (unshow_buffer): Return void.
12311 (replace_window): Ditto.
12312 (delete_window): Ditto.
12313
12314 * term.c (delete_glyphs_hook): Void return type.
12315 (ring_bell_hook): Ditto.
12316 (set_terminal_window_hook): Ditto.
12317
12318 * sysdep.c (init_sigio): Return void.
12319
12320 * xterm.c (x_set_window_size): Return void.
12321 (x_calc_absolute_position): Ditto.
12322 (x_set_offset): Ditto.
12323 (x_focus_on_frame): Ditto.
12324 (x_unfocus_frame): Ditto.
12325 (x_make_frame_visible): Ditto.
12326 (x_make_frame_invisible): Ditto.
12327 (x_iconify_frame): Ditto.
12328 (x_destroy_window): Ditto.
12329 (x_wm_set_window_state): Ditto.
12330 (x_wm_set_icon_pixmap): Ditto.
12331 (x_wm_set_icon_position): Ditto.
12332 (x_initialize): Ditto.
12333 (x_error_quitter): Ditto.
12334 (x_destroy_window): Use xfree instead of free.
12335
12336 * keyboard.c (clear_waiting_for_input): Return void.
12337
12338 * xterm.c (x_wm_set_size_hint): Return void.
12339 (x_raise_frame): Ditto.
12340 (refreshicon): Ditto.
12341 (x_error_catcher): Ditto.
12342 (x_clear_errors): Ditto.
12343
12344 * keyboard.c (record_asynch_buffer_change): Return void.
12345
bb6677a8
GM
12346 The first line of the following paragraph was garbled for an
12347 unknown reason. It couldn't be fully reconstructed.
12348
12349 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12350 (x_lower_frame): Ditto.
12351 (x_scroll_bar_clear): Ditto.
12352 (XTflash): Add default case in switch for -Wall.
12353 (construct_mouse_click): Return Qnil.
12354 (cancel_mouse_face): Return void.
12355 (x_queue_event): Use xmalloc instead of malloc.
12356 (x_unqueue_events): Use xfree instead of free.
12357
12358 * ccl.c (ccl_driver): Return int.
12359
12360 * keyboard.c (stop_polling): Return void.
12361 (start_polling): Ditto.
12362
12363 * term.c (keys): Add braces in initializer list for -Wall.
12364
12365 * sysdep.c (tabs_safe_p): Return int.
12366 (init_baud_rate): Return void.
12367
12368 * xterm.c (x_draw_bitmap): Add default case.
12369 (x_setup_relief_colors): Use DefaultScreen instead of
12370 DefaultScreenOfDisplay.
12371 (x_delete_glyphs): Return void.
12372 (construct_menu_click): Put in #if 0 because it isn't called.
12373
12374 * xdisp.c (load_overlay_strings): Remove extraneous argument
12375 in call to qsort.
12376 (get_overlay_arrow_glyph_row): Add missing return value.
12377
12378 * window.c (set_window_height): Return void.
12379 (set_window_width): Ditto.
12380
12381 * sysdep.c (request_sigio): Return void.
12382 (unrequest_sigio): Ditto.
12383 (get_frame_size): Ditto.
12384
12385 * scroll.c (scroll_cost): Return int.
12386 (do_line_insertion_deletion_costs): Return void.
12387
12388 * frame.c (Fdelete_frame): Use xfree instead of free.
12389
12390 * fileio.c (report_file_error): Return void.
12391
12392 * dispnew.c: Make compilable with -Wall.
12393 * term.c: Ditto.
12394
12395 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12396
123971998-03-14 Gerd Moellmann <gerd@gnu.org>
12398
12399 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12400 increased.
12401 (x_setup_relief_color): Free color only for appropriate visual
12402 classes.
12403
12404 * xterm.c (expose_window): Fix calculation of intersection of mode
12405 line rectangle with exposed rectangle.
12406
12407 * xdisp.c (redisplay_window): Don't do cursor movement based
12408 on current matrix if w->last_point is not valid.
12409
124101998-03-09 Gerd Moellmann <gerd@gnu.org>
12411
12412 * xterm.c (expose_line): Redraw mode line and menu lines
12413 differently because they reach into the scroll bar area.
12414
12415 * xdisp.c (redisplay_window): If redisplaying with same window
12416 start, don't accept cursor on partially visible line.
12417
124181998-03-08 Gerd Moellmann <gerd@gnu.org>
12419
12420 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12421 for wider mode lines.
12422 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12423
12424 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12425 scroll bar width for mode lines.
12426
12427 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12428 vertical scroll bar width in width calculation so that we can
12429 display mode lines wider.
12430
12431 * xdisp.c (redisplay_window): Restore buffers before returning
12432 when fonts have changed.
12433
12434 * dispnew.c (update_window): Mark invisible rows in the current
12435 matrix invalid.
12436
12437 * xdisp.c (try_window_id): Force update of first row displayed
12438 at window end.
12439 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12440
124411998-03-05 Gerd Moellmann <gerd@gnu.org>
12442
12443 * dispextern.h (struct glyph_row): Member max_ascent renamed
12444 ascent. Member max_descent replaced by height.
12445 (struct display_iterator): Member max_descent replaced by height.
12446 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12447
12448 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12449 class makes it unnecessary or dangerous.
12450
12451 * xdisp.c (redisplay_window): Case only point has changed, and
12452 point has moved forward. Move forward over overlay strings.
12453 (display_line): Don't set cursor if first glyph from PT is part of
12454 a continuation line.
12455
124561998-02-21 Gerd Moellmann <gerd@gnu.org>
12457
12458 * xdisp.c (start_display): When computing continuation lines
12459 width, add current_x to the continuation lines width because
12460 move_iterator_to will stop in front of the buffer position moved
12461 to.
12462
124631998-02-20 Gerd Moellmann <gerd@gnu.org>
12464
12465 * xdisp.c (redisplay_window): Don't try try_window_id if
12466 windows_or_buffers_changed.
12467
12468 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12469 determine a color.
12470 (x_setup_relief_color): Allocate/ change one relief.
12471 (x_setup_relief_colors): Call above function.
12472
12473 * xterm.h (struct relief): New structure type holding relief info:
12474 GCs, colors, and whether colors are allocated.
12475
427ec082 12476 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12477 produces the same color, try adding a delta to RGB values.
12478 (x_setup_relief_colors): Free color cells.
12479
427ec082 12480 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12481 black_relief_pixel holding the foreground colors allocated for
12482 relief GCs. New members white_allocated_p, black_allocated_p.
12483
12484 * xterm.c (x_scroll_run): Don't set updated_window to null.
12485 This resets updated_window when called from scrolling_window.
12486
12487 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12488
26901792
DL
12489 * xterm.c (x_scroll_run): Additional window parameter. Set
12490 and reset updated_window.
12491
12492 * dispnew.c (line_dance_hook): Additional window parameter.
12493
12494 * xdisp.c (try_window_reusing_current_matrix): Don't call
12495 update_window_begin/end here. The end function would display the
12496 cursor on a wrong position and the additional functionality of
12497 update_window_begin is not needed anyway. Just set
12498 updated_window.
12499 (try_window_id): Ditto.
12500
12501 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12502 Don't redraw cursor during redisplay.
12503
12504 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12505
12506 * xdisp.c (redisplay_window): For window-based redisplay, alway
12507 try try_window_id.
12508
12509 * xterm.c (struct glyph_string): New member two_byte_p that is
12510 non-zero if 16-bit drawing functions must be used.
12511 (x_fill_composite_glyph_string): Set it.
12512 (x_fill_glyph_string): Set it.
12513 (x_draw_glyph_string_foreground): Use it.
12514 (x_draw_vertical_border): Make line 1 pixel less tall.
12515 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12516 side by 1 pixel if window is not right-most hasn't vertical scroll
12517 bars.
12518 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12519 out of bounds.
12520 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12521 hl == DRAW_CURSOR.
12522
12523 * xdisp.c (start_display): Check that window start is at line
12524 start if GLYPH_DEBUG != 0.
12525
12526 * window.c (window_scroll_pixel_based): Move assertion to
12527 start_display.
12528
125291998-02-19 Gerd Moellmann <gerd@gnu.org>
12530
427ec082 12531 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
12532 frame hasn't the focus.
12533
12534 * window.c (make_window): Initialize dy.
12535 (replace_window): Ditto.
12536
12537 * window.h (window): New member dy specifying the amount by which
12538 a window is scrolled "smoothly".
12539
12540 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 12541 y-position because it can be negative.
26901792
DL
12542 (x_draw_row_bitmaps): Don't clear with negative y-position like
12543 above.
12544 (x_clear_end_of_line): Same theme as above.
12545
12546 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
12547 exact match exists, the nearest existing color. Patterned after
12548 defined_color.
12549 (x_alloc_lighter_color): Allocate a color that is lighter or
12550 darker than a given color by a specified factor.
427ec082 12551 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
12552 the background color of a glyph string face.
12553 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
12554
12555 * xfns.c (x_make_gc): Don't allocate relief GCs.
12556 * widget.c (create_frame_gcs): Don't allocate relief GCs.
12557 (setup_frame_gcs): Don't change relief GCs.
12558
12559 * xterm.h (struct x_output): New member relief_background giving
12560 the background pixel color for which relief GCs can be used.
12561 Set by x_setup_relief_colors.
12562
12563 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
12564 for mode and menu lines.
12565
12566 * xdisp.c (set_next_iterator_stop_pos): No longer static.
12567
12568 * dispnew.c (direct_output_for_insert): Call
12569 set_next_iterator_stop_pos after having changed it2.endpos.
12570
125711998-02-17 Gerd Moellmann <gerd@gnu.org>
12572
12573 * dispnew.c (update_window): Work on selected_window, only.
12574
12575 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
12576 hpos is >= number of glyphs in the cursor row.
12577
12578 * xdisp.c (try_window_id): Bug fix; update_window_end was not
12579 called.
12580
125811998-02-16 Gerd Moellmann <gerd@gnu.org>
12582
12583 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
12584 and menu lines.
12585
12586 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
12587 enough glyphs to display a mode line or menu line which draws over
12588 flags areas.
12589
12590 * xterm.c (XTset_vertical_scroll_bar): Use
12591 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
12592 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 12593 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
12594 or menu.
12595 (x_set_glyph_string_clipping): Set clipping differently if drawing
12596 a mode line or menu line.
12597
12598 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
12599
12600 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
12601 menu lines.
12602 (x_scroll_bar_create): Don't clear flags areas.
12603 (x_draw_row_bitmaps): Clear visible row height, only.
12604
12605 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
12606
126071998-02-15 Gerd Moellmann <gerd@gnu.org>
12608
12609 * dispnew.c (direct_output_for_insert): When checking for tabs in
12610 the line, set it2.endpos to ZV.
427ec082 12611
26901792
DL
12612 * window.h (struct window): New member cursor_off_p.
12613 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
12614 for X.
12615 * dispnew.c (redraw_cursor_hook): If non-null, function that can
12616 be called to display or erase the cursor.
12617 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
12618 or selected_window.
12619
12620 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
12621
12622 * dispnew.c (update_window_line): Special handling of inverse
12623 lines in #if 0 removed.
12624
12625 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
12626 (x_insert_glyphs): Renamed from XTinsert_glyphs.
12627 (x_clear_frame): Renamed from XTclear_frame.
12628 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
12629 (x_ins_del_lines): Renamed from XTins_del_lines.
12630 (x_change_line_height): Renamed from XTchange_line_height.
12631 (x_delete_glyphs): Renamed from XTdelete_glyphs.
12632 (x_clear_cursor): Renamed from clear_cursor.
12633 (x_update_begin): Renamed from XTupdate_begin.
12634 (x_update_end): Renamed from XTupdate_end.
12635 (x_update_window_begin): Renamed from XTupdate_window_begin.
12636 (x_update_window_end): Renamed from XTupdate_window_end.
12637 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
12638 (x_produce_glyphs): Renamed from XTproduce_glyphs.
12639 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
12640 (x_produce_special_glyphs): Implementation in #if 0 removed.
12641
12642 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
12643 flag in the dump.
12644
12645 * dispnew.c (update_text_area): Handling of glyphs with pixel
12646 width zero removed. Decrement desired stop pos if desired row
12647 fills its line.
12648
12649 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
12650 width zero removed.
12651 (BUILD_GLYPH_STRINGS): Set glyph string flag
12652 extends_to_end_of_line_p based on row's flag fill_line_p and face
12653 background and stipple. Make sure it works for composite characters.
12654
12655 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
12656 fill_line_p. For window-based redisplay, add a space only if
12657 the row is empty so that we know the face to draw.
12658
12659 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
12660 means draw the face of the last glyph in the text area to the
12661 right end of the text area.
12662
12663 * xdisp.c (init_iterator): Show region in window mini-buffer
12664 window refers to.
12665
427ec082 12666 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
12667 region_showing_p removed. Test for region_beg > 0 instead.
12668
12669 * dispnew.c (update_text_area): Clear to end of line if cursor is
12670 beyond the end of the desired line. Necessary because we don't
12671 have a phys_cursor_glyph with which to erase the cursor. We don't
12672 have one because this method of drawing a cursor doesn't work with
12673 lbearing/rbearing.
12674
12675 * xterm.c (XTinsert_glyphs): Block input.
12676
126771998-02-14 Gerd Moellmann <gerd@gnu.org>
12678
12679 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
12680 glyph strings.
12681 (x_draw_glyph_string_background): Fill background with background
12682 pixel for the first glyph of a composite character.
12683
12684 * xdisp.c (try_window): Change return type to int. Value is zero
12685 if fonts were loaded during redisplay.
12686 (redisplay_window): Return if fonts have been loaded during
12687 redisplay.
12688 (append_space): New parameter default_face_p.
12689
126901998-02-13 Gerd Moellmann <gerd@gnu.org>
12691
12692 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
12693 don't let a partially visible line in a current matrix stay
12694 enabled.
12695
126961998-02-09 Gerd Moellmann <gerd@gnu.org>
12697
12698 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
12699 in #if PROMPT_IN_BUFFER.
12700
12701 * xdisp.c (display_line): If row ends in ZV, make the space
12702 that is added to place the cursor on it appear in default face.
12703
427ec082 12704 * xterm.c (expose_area): New function redrawing a single
26901792
DL
12705 glyph row area.
12706 (expose_line): Use it to redraw all areas of a row.
12707
12708 * dispextern.h (move_operation_enum): New enum
12709 move_operation_enum.
12710
12711 * window.c (window_scroll_pixel_based): Remove now unnecessary
12712 code that made sure that it->current_y doesn't become negative.
12713
12714 * xdisp.c (move_iterator_in_display_line_to): New parameter
12715 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
12716 (move_iterator_to): Ditto.
12717
12718 * dispextern.h (struct glyph_matrix): New member window_width.
12719
12720 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
12721 case of changing window height.
12722
12723 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 12724 border to the left.
26901792
DL
12725
12726 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
12727 says this aspect of Emacs is currently redesigned.
12728
12729 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
12730 have to draw a vertical border.
12731
12732 * window.c (window_scroll_pixel_based): When scrolling down by
12733 screen-fulls, make sure it.current_y doesn't get negative because
12734 this would confuse move_iterator_vertically.
12735
12736 * xdisp.c (move_iterator_vertically_backward): Bug fix for
12737 the case continuation lines are involved.
12738 (try_window_id): Don't set the cursor into scroll margins.
12739
127401998-02-08 Gerd Moellmann <gerd@gnu.org>
12741
12742 * xterm.c (x_append_glyph): Don't compute left_overhang and
12743 right_overhang.
12744 (XTproduce_glyphs): left_overhang and right_overhang removed.
12745 Set it->glyph_row->contains_overlapping_glyphs_p.
12746
12747 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
12748 and right_overhang removed.
12749
12750 * dispextern.h (struct glyph_row): New member
12751 contains_overlapping_glyphs_p used to optimize glyph drawing.
12752 (struct display_iterator): left_overhang and right_overhang
12753 removed.
12754 (struct glyph): Ditto.
12755
12756 * xterm.c (x_draw_relief): Removed.
12757 (x_draw_bitmap): Renamed from draw_bitmap.
12758 (x_draw_glyphs): Completely new implementation of draw_glyphs
12759 capable of handling arbitrary lbearing and rbearing values.
12760 Several sub-functions not mentioned here.
12761
127621998-01-30 Gerd Moellmann <gerd@gnu.org>
12763
12764 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 12765 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
12766 other cases.
12767 (draw_glyphs): Move start to the left and end to the right if they
427ec082 12768 overlap with previous or following characters.
26901792 12769 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 12770 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
12771 character under the cursor would be invisible.
12772 (x_draw_bar_cursor): Don't draw over previous character if it
12773 has right_overhang.
12774
12775 * window.c (get_phys_cursor_glyph): Return the glyph under a
12776 window's physical cursor.
427ec082 12777
26901792
DL
12778 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
12779 (x_draw_bar_cursor): Ditto.
12780 (x_erase_phys_cursor): Ditto.
12781 (x_phys_cursor_in_rect_p): Ditto.
12782 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
12783
12784 * window.c (make_window): Remove reference to phys_cursor_glyph.
12785 (replace_window): Ditto.
12786
12787 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 12788 now always a glyph present for placing the cursor on it in
26901792
DL
12789 each glyph row, even at the end of a line.
12790
12791 * xdisp.c (append_space): Function to add a space to an iterators
12792 glyph row.
12793 (display_line): Add spaces at the end of lines that are used to
12794 place the cursor on them.
12795 (compute_line_metrics): If row consists of a space only that was
427ec082 12796 added to place the cursor on it, use that space's height as the
26901792
DL
12797 line height.
12798
127991998-01-29 Gerd Moellmann <gerd@gnu.org>
12800
12801 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
12802 glyphs.
12803
128041998-01-28 Gerd Moellmann <gerd@gnu.org>
12805
12806 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
12807 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
12808
12809 * dispextern.h (struct glyph): Add left_overhang and
427ec082 12810 right_overhang.
26901792
DL
12811 (struct display_iterator): Ditto.
12812
12813 * dispnew.c (direct_output_for_insert): Give up if newly inserted
12814 glyphs have different ascent or descent than original row.
12815
12816 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
12817 row->max_descent only if unknown.
12818 (display_line): Compute row->max_ascent and row->max_descent.
12819 (display_string): Ditto.
12820
12821 * window.h (struct window): New members phys_cursor_ascent and
427ec082 12822 phys_cursor_descent.
26901792
DL
12823
12824 * xterm.c (x_phys_cursor_in_rect_p): Use them.
12825 (x_draw_hollow_cursor): Ditto.
12826 (x_erase_phys_cursor): Ditto.
12827 (x_display_and_set_cursor): Set them.
12828 (x_append_glyph): Don't set glyph members that were removed.
12829
12830 * dispextern.h (struct glyph): Members ascent, descent,
12831 contributes_to_line_height_p removed.
12832
128331998-01-25 Gerd Moellmann <gerd@gnu.org>
12834
12835 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
12836 names for face ids of frame default face and mode line face.
12837
12838 * xdisp.c (compute_face_at_iterator_string_position): If
12839 displaying a mode line use MODE_LINE_FACE_ID instead of
12840 DEFAULT_FACE_ID.
12841
12842 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
12843 (display_string): Ditto, additional parameter lisp_string.
12844 (display_line): Call display_string with Lisp mini-buffer prompt
12845 string.
12846 (display_menu_bar): Call display_string with Lisp string.
12847 (display_mode_element): Ditto.
12848 (next_element_from_string): Make it work for non-overlay Lisp
12849 strings with field width and precision.
12850
12851 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
12852 PROMPT_IN_BUFFER.
12853
12854 * xfaces.c (compute_string_char_face): Fix face computation
12855 for overlay strings.
12856
12857 * xdisp.c (struct overlay_entry): Add member after_string_p.
12858 (load_overlay_strings): Simplify.
12859
12860 * window.c (delete_window): Defer glyph matrix adjustment.
12861 (Fsplit_window): Ditto.
12862 (change_window_height): Ditto.
12863 (Fset_window_configuration): Ditto.
12864 (Fset_window_margins): Ditto.
12865 * frame.c (set_menu_bar_lines): Ditto.
12866 (Fmake_terminal_frame): Ditto.
12867 * dispnew.c (change_frame_size_1): Ditto.
12868
128691998-01-24 Gerd Moellmann <gerd@gnu.org>
12870
12871 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
12872
427ec082 12873 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
12874 position has overlay strings.
12875
12876 * xdisp.c (display_line): Don't set cursor if row ends in middle
12877 of overlay string.
12878 (Fdump_redisplay_state): Print complete row start and end
12879 position.
12880 (redisplay_window): Cursor movement when matrix hasn't changed---
12881 if PT < last_point, maybe move forward if row ends at PT and
12882 in middle of char.
12883
12884 * minibuf.c (read_minibuf): Save the value of
12885 minibuffer_prompt_length in minibuf_save_list.
12886 (read_minibuf_unwind): Restore minibuffer_prompt_length.
12887
12888 * xdisp.c (redisplay_window): Add assertion for cursor movement
12889 case, PT < last_point.
12890 (move_iterator_in_display_line_to): If to_pos specified, move
12891 over before-strings.
12892
12893 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
12894 start.string_index > 0.
12895
12896 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
12897 is set. Retry redisplay if fonts_changed_p is set before update.
12898
12899 * xterm.c (x_load_font): Set fonts_changed_p.
12900
12901 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
12902
12903 * dispnew.c (adjust_glyphs_for_font_change): Removed.
12904
12905 * xdisp.c (try_window): Check fonts_changed_p.
12906 (try_window_reusing_current_matrix): Ditto.
12907 (try_window_id): Ditto.
12908
12909 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
12910 (fonts_changed_p): Flag indicating a font change since the last
12911 glyph matrix adjustment.
12912
12913 * xterm.c (x_per_char_metric): Use font->max_bounds as
12914 char metric of the font's default char if the default char
12915 hasn't per char metric itself.
12916
12917 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
12918 for font change.
12919 (min_char_bounds): Check face->font != NULL.
427ec082 12920 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
12921 case of invalid min_bounds contents.
12922 (min_char_bounds): Call font_min_bounds.
12923
129241998-01-22 Gerd Moellmann <gerd@gnu.org>
12925
12926 * xdisp.c (start_display): Don't set it->prompt_width if
12927 PROMPT_IN_BUFFER.
12928 (move_iterator_in_display_line_to): Ditto.
12929 (display_line): Don't display prompt via display_string if
12930 PROMPT_IN_BUFFER.
12931
12932 * minibuf.c (Fminibuffer_prompt_width): Return value from
12933 current_buffer if PROMPT_IN_BUFFER.
427ec082 12934 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
12935 mini-buffer and make it read-only.
12936 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
12937 minibuffer_prompt_length instead of BEGV.
12938 (Fminibuffer_complete_word): Ditto.
12939 (Fminibuffer_complete_word): Ditto.
12940
12941 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
12942 is less than mini-buffer prompt width, use prompt width as start.
12943
12944 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
12945 position is less than mini-buffer prompt width, use the prompt
12946 width as start.
12947
12948 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
12949 end of prompt if applied to a mini-buffer and BEG reached.
12950
129511998-01-21 Gerd Moellmann <gerd@gnu.org>
12952
12953 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
12954 length to start position.
12955
12956 * buffer.c (Fget_buffer_create): Initialize
12957 minibuffer_prompt_length.
12958 (Fmake_indirect_buffer): Ditto.
12959 (Fkill_buffer): Ditto.
12960
12961 * buffer.h (struct buffer): Add member minibuffer_prompt_length
12962 if PROMPT_IN_BUFFER.
12963
129641998-01-19 Gerd Moellmann <gerd@gnu.org>
12965
12966 * xdisp.c (next_element_from_string): Make it work for arbitrary
12967 Lisp strings.
12968 (set_iterator_to_next): Advance to next overlay string only
12969 if it->string is an overlay string.
12970
12971 * dispextern.h (struct display_iterator):
12972 next_ovstr_face_check_pos renamed next_string_face_check_pos.
12973
427ec082 12974 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
12975 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
12976
12977 * xdisp.c (next_element_from_string): Renamed from
12978 next_element_from_overlay_string.
427ec082 12979 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
12980 compute_face_at_iterator_overlay_string_position.
12981
12982 * dispextern.h (struct display_iterator): Member overlay_string
12983 renamed string.
12984
12985 * xdisp.c (next_element_from_c_string): Renamed from
12986 next_element_from_string.
12987
12988 * dispextern.h (struct glyph_pos): Reversed meaning of
12989 overlay_string_index and string_index.
12990
12991 * xdisp.c (next_element_from_overlay_string): Fix bug that made
12992 this function always return the first character of an overlay
12993 string.
12994
129951998-01-18 Gerd Moellmann <gerd@gnu.org>
12996
12997 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
12998 forced or new pos > next_invisible_check_pos.
12999 (redisplay_window): Don't try same window start if PT < window
13000 start.
13001 (move_iterator_vertically): Bug fix satisfying post-condition
13002 when ZV is reached and no newline in front.
13003 (move_iterator_vertically_backward): New implementation.
13004 (move_iterator_vertically_backward): Bug fixes.
13005
13006 * xterm.c (XTmouse_position): Change call to min_char_bounds.
13007 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13008 (adjust_glyphs_for_font_change): Always adjust.
13009
13010 * dispnew.c (struct dim): Use int.
13011
13012 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
13013 (allocate_face): Initialize it.
13014 (load_font): Use XLoadQueryFont again instead of x_load_font.
13015 (unload_font): Use XFreeFont again.
13016 (min_char_bounds): Iterate over fonts of faces. Use frame's
13017 font sizes as default. Remove parameter except_last_font_p.
13018
13019 * dispextern.h (struct face): Add font_name.
13020
130211998-01-17 Gerd Moellmann <gerd@gnu.org>
13022
13023 * xdisp.c (move_iterator_vertically): Check post-condition. Move
13024 to start of line if ending at ZV and no newline in front.
13025 (move_iterator_to): If to_y specified, always first move to x = 0,
13026 so that move stops at line start instead of line end. This is
13027 probably what callers would expect to happen.
13028
13029 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
13030 can handle different line heights.
13031 (window_scroll_line_based): Formerly window_scroll.
13032 (window_scroll): Call both.
13033
13034 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
13035 (move_iterator_in_display_line_to): Ditto.
13036 (display_line): Ditto.
13037
13038 * minibuf.c (read_minibuf): Conditionally insert prompt into
13039 buffer instead of handling prompts specially. Change other
13040 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
13041
13042 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
13043 upper window. Optimize calls to xrealloc if same width.
13044
13045 * xdisp.c (redisplay_window): Don't use
13046 try_window_reusing_current_matrix if window scroll functions
13047 exist.
13048
13049 * dispextern.h (struct display_iterator): Member
13050 redisplay_end_trigger_p removed.
13051
13052 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
13053 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
13054
130551998-01-16 Gerd Moellmann <gerd@gnu.org>
13056
13057 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
13058 nil. Optimize truncate-lines t and moving backward.
13059 (move_iterator_to_previous_visible_line_start): Contains the heart
13060 of the previous set_iterator_to_previous_visible_line_end. Don't
13061 reseat the iterator. Used by move_iterator_by_lines.
13062 (set_iterator_to_previous_visible_line_start): Call function
13063 above.
13064 (move_iterator_in_display_line_to): Check TO_POS before doing
13065 anything else. Otherwise to_pos == PT would move to x of PT+1.
13066
13067 * indent.c (Fvertical_motion): Use display_iterator.
13068
13069 * xdisp.c (move_iterator_by_lines): New function moving by screen
13070 lines.
13071 (redisplay_window): Use it.
13072 (move_iterator_to): Correct branch of to_vpos specified.
13073 (move_iterator_vertically_backward): Increment nlines after having
13074 backed up over some lines because the last line was not backed up
13075 over.
13076 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13077 calculate it->vpos and it->current_y relative to this row.
427ec082 13078 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13079 have a big effect and it is complex.
13080 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13081
130821998-01-15 Gerd Moellmann <gerd@gnu.org>
13083
13084 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13085 join nicely. Lines with widths > 2 don't join nicely under X.
13086 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13087 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13088 width 1; remove references to relief_gc_line_width.
13089 * xfns.c (x_make_gc): Ditto.
13090
13091 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13092 if relief changes.
13093 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13094 to get a relief because they can be negative.
13095
13096 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13097 positions are for the middle of lines under X.
13098
13099 * xdisp.c (try_window_id): Always search for the cursor by setting
13100 w->cursor.vpos = -1. Search in unchanged rows at the top and
13101 bottom if cursor not found in displayed lines.
427ec082 13102 (display_mode_line): First extend face, then set right shadow
26901792
DL
13103 flag. Otherwise the wrong glyph gets the right shadow.
13104
13105 * dispnew.c (direct_output_for_insert): Give up if line contains
13106 a tab. The number of spaces inserted for a tab changes if we
13107 insert glyphs in front of it.
13108
13109 * xterm.c (x_list_fonts): Changes undone because the Lisp
13110 implementation for make-face-smaller, make-face-larger, and
13111 make-face-fixed can do without them.
13112
13113 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13114 inserted.
13115
13116 * xdisp.c (try_window_id): First compute beg_unchanged, then
13117 compare with window start pos.
13118
13119 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13120 fixed-width font.
13121 (syms_of_xfns): defsubr for x-face-fixed-p.
13122
13123 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13124 enabled, don't do anything because this row will be newly drawn
13125 anyway and because we can additionally no longer determine the row
13126 height.
13127
13128 * xdisp.c (display_line): Bug fix cursor positioning.
13129
13130 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13131 removed. x-list-fonts.c is now obsolete.
13132 (Qfixed, Qvariable): Moved here from xfaces.c.
13133
131341998-01-14 Gerd Moellmann <gerd@gnu.org>
13135
13136 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13137 FETCH_BYTE for truncated lines.
13138 (display_line): Set cursor differently.
13139 (display_line): Fixed bug setting last_pos_on_this_line wrong
13140 for truncated lines.
13141
13142 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13143 redisplay.
13144
13145 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13146
13147 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13148 assertion that character dimensions are not zero.
13149
13150 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13151 input is blocked.
13152
13153 * xdisp.c (decode_mode_spec): Faster implementation of line number
13154 display.
13155
13156 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13157 bitmaps if bitmaps don't fill the entire area.
13158 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13159
427ec082 13160 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13161 pixel height of flags bitmaps.
13162
13163 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13164 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13165
13166 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13167 in pixels of a flags area of a frame.
13168 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13169 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13170 occupied by a flags area.
13171
131721998-01-13 Gerd Moellmann <gerd@gnu.org>
13173
13174 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13175 window_end_valid.
13176
13177 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13178 GLYPH_DEBUG != 0.
13179
13180 * xdisp.c (display_line): Correct wrong calculation of row->x for
13181 the case of nglyphs == 1.
13182 (hscroll_window_tree): Renamed from hscroll_windows.
13183 (hscroll_windows): New function calling hscroll_window_tree that
13184 clears desired matrices on a frame when hscroll has been changed.
13185 (redisplay_p): Global flag set during redisplay.
13186 (redisplay_internal): Set and clear redisplay_p.
13187
13188 * xfaces.c (min_char_bounds): Add assertion that width and height
13189 are not zero at the end. Initialize *height and *width to -1,
13190 instead of using BITS_PER_SHORT. If font has min_bounds.width
13191 zero, use its max_bounds.width.
13192
13193 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13194 width and height.
13195
131961998-01-12 Gerd Moellmann <gerd@acm.org>
13197
13198 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13199 changed. Don't clear desired matrices.
13200
13201 * xdisp.c (hscroll_windows): Compute pt after setting
13202 current_buffer.
13203 (redisplay_window): Don't do cursor movement based on current
13204 matrix if just_this_one_p is zero.
13205
13206 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13207 specifying that fixed-width, variable-width fonts or both
26901792
DL
13208 should be returned.
13209
13210 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13211 (syms_of_xfaces): Initialize them.
13212
13213 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13214 cached information.
13215
132161998-01-11 Gerd Moellmann <gerd@acm.org>
13217
13218 * xdisp.c (display_mode_line): Extend face to end of line.
13219
13220 * xdisp.c (echo_area_display): Don't call display_string with
13221 echo_area_glyphs_length == 0 which would mean infinite precision.
13222 (redisplay_internal): Adjust window_end_vpos if necessary.
13223
132241998-01-07 Gerd Moellmann <gerd@acm.org>
13225
13226 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13227
132281998-01-05 Gerd Moellmann <gerd@acm.org>
13229
13230 * xdisp.c (get_row_start_continuation_line_width): Removed.
13231 (init_iterator_to_row_start): Set it.current_x from row.
13232 (try_window_id): Set it.continuation_lines_width directly from
13233 row.
13234
13235 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13236 selected_window.
13237 (hscroll_windows): Center cursor in window.
13238 (hscroll_windows): Call move_iterator_in_display_line_to.
13239
132401998-01-04 Gerd Moellmann <gerd@acm.org>
13241
13242 * xdisp.c (hscroll_windows): Check hscroll < 0.
13243 (redisplay_window): Allow quick cursor movement if overlay arrow
13244 but frame uses window-based redisplay.
13245 (display_line): Take special case for nglyphs == 1 out of #if 0.
13246 (display_line): Set row->ends_at_zv_p after the loop displaying
13247 glyphs because ZV can be in truncated text.
13248 (hscroll_windows): Use init_iterator_to_row_start.
13249
13250 * dispnew.c (scrolling_window): Calculation of overlapping
13251 runs fixed.
13252 (row_equal_p): Compare continued_p and continuation_line_p.
13253
132541998-01-02 Gerd Moellmann <gerd@acm.org>
13255
13256 * xterm.c (x_get_mode_line_face_gc): Renamed from
13257 x_get_modeline_face_gc.
13258
13259 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13260 buffer position to look for text properties.
13261 (get_face_from_cursor_pos): Use it.
13262 (compute_face_at_iterator_position): Use it.
13263 (next_element_from_buffer): Use it.
13264
13265 * dispnew.c (scrolling_window): Decrement run's y-position
13266 when extending it backwards.
13267
13268 * xterm.c (do_line_dance): Don't ever copy more than window height.
13269
132701998-01-01 Gerd Moellmann <gerd@acm.org>
13271
13272 * xdisp.c (redisplay_window): Cursor motion in unchanged
13273 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13274 (init_iterator_to_next_row_start): Special handling of lines
13275 ending in middle of char removed.
13276 (hscroll_windows): Hscroll windows only if window_end_valid is not
13277 nil.
13278 (try_window_reusing_current_matrix): Call hscroll_windows.
13279 (init_iterator_to_row_start): Initialize iterator for display
13280 starting at a position given by a glyph_row->start.
13281 (redisplay_window): Don't use vmotion because it gives wrong
13282 results if lines are continued and variable width fonts are used.
13283
427ec082 13284 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13285 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13286 the middle of a character.
427ec082 13287 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13288 the middle of a character.
13289
13290 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13291 it.
13292 (next_element_from_display_vector): Use it->dpvec_index.
13293 (reseat_iterator): Reset it.
13294 (init_iterator): Reset it.
13295 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13296 it->pos.dpvec_index from a glyph_pos structure.
13297 (init_iterator_from_glyph_pos): Call the function above.
13298 (reseat_iterator_to_glyph_pos): Ditto.
13299
13300 * dispnew.c (direct_output_forward_char): Don't use this method at
13301 overlay boundaries or near invisible text.
13302 (direct_output_forward_char): Step through glyph row to find
13303 cursor position.
13304
427ec082 13305 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13306 frame font if line height differs from font height.
13307
13308 * xdisp.c (set_iterator_to_next): Renamed from
13309 move_iterator_forward to avoid confusion with other move_.*
13310 functions.
13311
13312 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13313
133141997-12-31 Gerd Moellmann <gerd@acm.org>
13315
13316 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13317 same naming convention as for other GC functions.
13318 (draw_glyphs): Don't fill background when drawing a cursor and
13319 font height is less than line height.
13320
133211997-12-30 Gerd Moellmann <gerd@acm.org>
13322
13323 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13324 init_iterator_.*.
13325
13326 * xdisp.c (move_iterator_forward): Restore it->len from
13327 it->dpvec_char_len if dpend reached.
13328 (get_next_display_element): Don't consume translated char
13329 prematurely.
13330 (display_line): Don't set this_.* variables if row is continued.
13331 (start_display): Move to start of continuation line if ending
13332 up at end of continued line.
13333
13334 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13335
13336 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13337 checking TO_X and continuation lines.
13338 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13339 of a continued line, don't consider this line as unchanged because
13340 it may no longer be continued.
13341
133421997-12-29 Gerd Moellmann <gerd@acm.org>
13343
13344 * xdisp.c (try_window_id): Catch the case that moving over
13345 continuation lines moves first_unchanged_at_end_row to a row not
13346 displaying text.
13347
13348 * dispextern.h (struct glyph_row): New member
13349 continuation_lines_width. Member continuation_line_p removed.
427ec082 13350 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13351 continuation line.
13352 * xdisp.c (display_line): Set row->continuation_lines_width.
13353 (get_row_start_continuation_line_width): Set continuation lines
13354 width of iterator from continuation lines width of glyph row.
13355 (get_row_start_continuation_line_width): Make it inline.
13356 (set_window_cursor): Make it inline.
13357 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13358 (Fdump_redisplay_state): Ditto.
427ec082 13359
26901792
DL
13360 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13361 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13362
13363 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13364 after determining the continuation lines width for
13365 last_unchanged_at_beg_row.
13366
13367 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13368
13369 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13370 which support faces.
13371 (init_display_iterator): Ditto.
13372 (move_iterator_via_matrix): Skip over truncation glyph at the row
13373 start on terminal frames.
13374 (hscroll_windows): Choose hscroll margin differently for window
13375 system and terminal frames.
13376
133771997-12-28 Gerd Moellmann <gerd@acm.org>
13378
13379 * xdisp.c (hscroll_windows): Change hscroll of windows.
13380 (redisplay_internal): Call it.
13381
427ec082 13382 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13383 doesn't fit completely on the line.
13384 (direct_output_forward_char): Give up for non-ASCII chars.
13385 (direct_output_forward_char): Set redisplay_performed_directly_p.
13386
13387 * dispextern.h (struct display_iterator): Make first_visible_x
13388 and last_visible_x ints; this is for very long truncated lines.
13389
13390 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13391 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13392 positioning problems with the mouse.
13393 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13394 >= it->last_visible_x instead of >.
13395 (display_line): Ditto.
13396
13397 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13398 loaded.
13399 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13400 non-ASCII chars differently. Always produce 1 glyph for composite
13401 chars. If font not found, use CHARSET_WIDTH to calculate width of
13402 non-ASCII chars.
13403 (x_get_char_font_and_encoding): Return null if font could not be
13404 loaded. Reset font to null if fontset could not be loaded.
13405 (draw_glyphs): Fill background if font not found.
13406 (draw_glyphs): Unused parameter just_foreground_p removed. New
13407 parameter composite_glyph.
13408 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13409 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13410 draw_glyphs when calling it recursively for composite chars.
13411
134121997-12-27 Gerd Moellmann <gerd@acm.org>
13413
13414 * xterm.c: Patches from handa.etl.go.jp integrated.
13415 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13416 find a font_info.
13417
13418 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13419 for nglyphs == 1.
13420
13421 * xterm.c (x_draw_relief): Draw relief lines.
13422 (draw_glyphs): Call x_draw_relief.
13423
134241997-12-26 Gerd Moellmann <gerd@acm.org>
13425
13426 * xfns.c (x_make_gc): Create relief GC's.
13427
13428 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13429 (setup_frame_gcs): Initialize them.
13430 (EmacsFrameDestroy): Free them.
13431
427ec082 13432 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13433 last_unchanged_at_beg_row is continued or a continuation line.
13434 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13435 (redisplay_window): Case point has changed, and it has not
26901792
DL
13436 moved off the frame. Don't increment row if PT equals the row
13437 end if the row ends in ZV.
13438
13439 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13440 (expose_line): Call it.
13441 (x_after_update_window_line): Call it.
13442
13443 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13444 reached.
13445
13446 * xterm.c (x_after_update_window_line): Draw continuation line
13447 bitmap.
13448
13449 * dispnew.c (update_window_line): Call
13450 after_update_window_line_hook when row's continuation_line_p
13451 changes.
13452
13453 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13454
13455 * xdisp.c (display_line): Handle continued lines on window system
13456 frames differently since continuation glyphs are not displayed.
13457 (move_iterator_in_display_line_to): Ditto.
13458 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13459 into account.
13460 (move_iterator_vertically_backward): Handle dy == 0 specially.
13461 (redisplay_window): Catch the case of small windows when
13462 recentering where moving back window_height/2 moves us beyond the
13463 top of the display area of the window.
13464
134651997-12-18 Gerd Moellmann <gerd@acm.org>
13466
13467 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13468 dvpos removed.
13469
134701997-12-17 Gerd Moellmann <gerd@acm.org>
13471
13472 * dispnew.c (direct_output_forward_char): Correct new cursor
13473 x-position.
13474
134751997-12-16 Gerd Moellmann <gerd@acm.org>
13476
13477 * xterm.c (x_after_update_window_line): Remove unused parameters.
13478 (XTclear_end_of_line): Clear to display_height instead of
13479 display_height - 1.
13480
13481 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13482 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13483 rows have different y-positions, or different height.
13484
134851997-12-14 Gerd Moellmann <gerd@acm.org>
13486
13487 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13488
13489 * window.c (coordinates_in_window): Call frame_mode_line_height.
13490
13491 * xterm.c (x_draw_3d_border): Removed.
13492 (x_draw_row_borders): Removed.
13493
13494 * dispnew.c (update_window): References to
13495 FRAME_MODE_LINE_BORDER_WIDTH removed.
13496
13497 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13498 (FRAME_MODE_LINE_HEIGHT): Removed.
13499
13500 * xterm.c (draw_3d_borders_p): Removed.
13501 (draw_glyphs): Ditto.
13502 (XTwrite_glyphs): Ditto.
13503 (expose_line): Ditto.
13504 (x_initialize): Ditto.
13505
13506 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13507 frame_mode_line_height.
13508
13509 * term.c (frame_mode_line_height): Get the pixel height of a
13510 frame's mode line.
13511 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13512 versions.
13513
26901792
DL
13514 * xterm.c (x_initialize): Set the hook.
13515 (XTframe_mode_line_height): X version of frame_mode_line_height.
13516
13517 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13518 output buffer.
13519 (display_string): Don't add right truncation mark if line ends in
13520 padding space.
13521 (init_display_iterator): If called with modeline_p non-zero, set
13522 face_id to 1, which is the id of the mode line face.
13523
13524 * keyboard.c (cmd_error_internal): Write to stderr if selected
13525 frame is Vterminal_frame under X. This is the case when a font
13526 cannot be loaded when Emacs starts. Replace test for
13527 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
13528
13529 * xfaces.c (compute_overlay_string_char_face): Compute the
13530 face of a character in an overlay string.
13531 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 13532 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
13533 Use it.
13534
13535 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
13536 set_iterator_to_next_overlay.
13537 (struct overlay_entry): Structure used to sort overlay strings.
13538 (compare_overlay_entries): Compare overlay strings.
13539 (load_iterator_with_overlay_strings): Load a chunk of overlay
13540 strings.
13541 (get_overlay_strings_at_iterator_position): Call it.
13542 (next_element_from_overlay_string): Set it->object to the overlay
13543 string. Prepare for setting it->position to a string position.
13544 (get_overlay_strings_at_iterator_position): Renamed from
13545 get_overlays_at_iterator_position.
13546 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
13547 chunks of overlay strings.
13548 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
13549
13550 * dispextern.h (struct display_iterator): New vector
13551 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
13552 overlays and n_overlays.
13553 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
13554 renamed to string_index.
13555
135561997-12-13 Gerd Moellmann <gerd@acm.org>
13557
13558 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
13559 when allocating a vector.
13560 (release_iterator): Removed.
13561 (restore_iterator): Removed.
13562 (copy_iterator): Removed.
13563
135641997-12-08 Gerd Moellmann <gerd@acm.org>
13565
13566 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
13567 clearing a mini-buffer window that is not active.
13568 (redisplay_window): Do not scroll one line too early when last
13569 window line is completely visible.
13570 (init_display_iterator): Leave some room to display the cursor
13571 after the last glyph on a continued line.
13572
13573 * xterm.h (struct x_output): trunc_area_extra renamed
13574 flags_areas_extra.
13575 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
13576
13577 * dispnew.c (update_window_line): Call
13578 after_update_window_line_hook when current row is not enabled
13579 which is the case after a frame has been cleared.
13580
13581 * xdisp.c (display_mode_line): Reset row flags for truncation
13582 on right side for the mode line.
13583
13584 * xterm.c (bitmap_type): Type of bitmap to display in flags
13585 area of frame.
13586 (x_after_update_window_line): Use the enum.
13587 (draw_bitmap): Ditto.
13588
135891997-12-07 Gerd Moellmann <gerd@acm.org>
13590
13591 * xterm.c (x_clip_to_row): Include width of both flag areas.
13592 (do_line_dance): Ditto.
13593 (expose_window_tree): Ditto.
13594 * dispnew.c (update_window_line): Call
13595 after_update_window_line_hook for right truncation and continuation.
13596 * xdisp.c (init_display_iterator): Don't subtract width of
13597 continuation glyphs for window-based redisplay.
13598 * xterm.c (draw_bitmap): Draw continuation bitmap.
13599 * widget.c (set_frame_size): Double trunc_area_extra.
13600 (EmacsFrameSetCharSize): Ditto.
13601 * xfns.c (x_figure_window_size): Ditto.
13602 * xterm.c (x_set_window_size): Ditto.
13603 (x_after_update_window_line): Draw right truncation mark.
13604
13605 * xterm.c (draw_glyphs): Bug fix buffer overrun.
13606
13607 * window.h: Include blocker around dispextern.h removed.
13608
13609 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 13610
26901792
DL
13611 * dispextern.h (struct display_iterator): Former ovstr made a
13612 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
13613 next_ovstr_invisble_check_pos; check at these positions for
13614 face changes and changes in invisible text property.
13615 (struct glyph_pos): Former ovlen now overlay_string_index.
13616
13617 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
13618 overlay_string.
13619 (set_iterator_to_next_overlay_string): Set overlay_string and
13620 pos.overlay_string_index.
13621 (get_overlays_at_iterator_position): Use overlay_string and
13622 overlay_string_index.
13623 (next_element_from_overlay_string): Use overlay_string and
13624 overlay_string_index.
13625 (move_iterator_forward): Increment overlay_string_index.
13626 (try_window_id): Use overlay_string and overlay_string_index.
13627 (move_iterator_forward): At end of dpvec, maybe use method
13628 next_element_from_overlay_string for the case a character from an
13629 overlay string was translated via a display table.
13630 (reseat_iterator_to_string): Take a Lisp string.
13631 (display_string): Pass a Lisp string to reseat_iterator_to_string.
13632 (compute_face_at_iterator_overlay_string_position): Compute face
13633 based on text properties for an overlay string.
13634 (next_element_from_overlay_string): Check invisible and face text
13635 properties.
bb6677a8 13636
26901792
DL
13637 (set_iterator_to_next_overlay_string): Restore face id before
13638 overlay strings when no more overlay strings are found to return.
13639 Initialize next_ovstr_.*check_pos for each new overlay string
bb6677a8
GM
13640
13641 A line in the following paragraph was garbled for an unknown
13642 reason. It couldn't be fully reconstructed.
13643
13644 (compute_base_face): Made public.
26901792
DL
13645 (merge_face_list): Ditto.
13646 (intern_computed_face): Ditto.
13647
427ec082 13648 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
13649 window if PT > w->last_point. Goto try_to_scroll if bottom Y
13650 of row is > instead of >= last_y.
13651
13652 * buffer.h (overlays_at): Function prototype.
13653
13654 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
13655 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
13656
427ec082 13657 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
13658 memory of a display_iterator.
13659 (copy_iterator): Copy an iterator.
13660 (restore_iterator): Restore an iterator from a backup copy.
13661 (global): Use the functions above.
13662 * window.c (Fpos_visible_in_window_p): Call release_iterator.
13663 * dispnew.c (direct_output_for_insert): Call release_iterator.
13664
13665 * dispextern.h (struct display_iterator): Allocate overlays
13666 vector dynamically.
13667
136681997-12-06 Gerd Moellmann <gerd@acm.org>
13669
13670 * Makefile.in (window.o): Depends on dispextern.h.
13671
13672 * buffer.c (overlays_at): Make it work when extending vectors
13673 and an initial vector of zero size.
13674
13675 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
13676 from set_cursor_to_previous_visible_line_end.
13677 (set_iterator_to_next_visible_line_start): Renamed from
13678 set_cursor_to_next_visible_line_end.
13679 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
13680 (compute_face_at_iterator_position): Renamed from
13681 compute_cursor_face.
13682 (set_iterator_to_next_overlay_string): Renamed from
13683 cursor_to_next_overlay_string.
13684 (get_overlays_at_iterator_position): Renamed from
13685 get_overlays_for_cursor.
13686 (reseat_iterator): Renamed from reseat_cursor.
13687 (setup_iterator_overlays_from_glyph_pos): Renamed from
13688 setup_overlays_from_pos.
13689 (init_string_iterator): Renamed from init_string_cursor.
13690 (get_next_display_element): Renamed from next_display_element.
13691 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 13692 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
13693 dynamically.
13694
13695 * xdisp.c: display_cursor renamed display_iterator.
13696 * dispextern.h: Ditto.
13697 * dispnew.c: Ditto.
13698
136991997-12-01 Gerd Moellmann <gerd@acm.org>
13700
13701 * window.c (mark_window_cursors_off): Function comment added.
13702 (window_topmost_p, window_rightmost_p): Removed because not used.
13703
137041997-11-30 Gerd Moellmann <gerd@acm.org>
13705
13706 * emacs.c (main): Function prototypes removed in profiling code.
13707 Use safe_bcopy as start of text.
13708
13709 * dispnew.c (update_frame_line): update_line -> update_frame_line;
13710 mirrored_make_current -> make_current.
13711
13712 * xdisp.c: (store_frame_title_char): New function to store a
13713 single character for the frame title with re-allocation of
13714 frame_title_buf.
13715 (init_xdisp): Intialize frame_title_.* variables to null.
13716
13717 * dispnew.c (quit_error_check): Removed.
13718
13719 * eval.c (Fsignal): Call to quit_error_check removed.
13720 * keyboard.c (quit_throw_to_read_char): Ditto.
13721
137221997-11-23 Gerd Moellmann <gerd@acm.org>
13723
13724 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
13725 to mean a zero relief.
13726
26901792
DL
137271997-11-19 Gerd Moellmann <gerd@acm.org>
13728
13729 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
13730 unconditionally.
13731 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
13732 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
13733 (check_glyph_memory): Define function body unconditionally.
13734
137351997-11-17 Gerd Moellmann <gerd@acm.org>
13736
13737 * dispnew.c (scrolling_window): Alternative version of this
13738 function removed.
13739
137401997-11-16 Gerd Moellmann <gerd@acm.org>
13741
13742 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
13743 of height CANON_Y_UNIT.
13744 * dispextern.h: Prototype for that function.
427ec082 13745 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
13746 produce empty rows. Use make_empty_enabled_row instead.
13747
13748 * dispnew.c (scrolling_window): New version using diff-like
13749 algorithm activated.
427ec082 13750
26901792
DL
137511997-11-15 Gerd Moellmann <gerd@acm.org>
13752
13753 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
13754 (clear_desired_matrices): Ditto.
13755 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
13756 for menu_bar_window.
13757
13758 * alloc.c (mark_object): Mark menu_bar_window of frames.
13759
13760 * xterm.c (XTupdate_window_end): Don't display cursor if
13761 pseudo_window_p.
13762
13763 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
13764 set mini_p.
13765 (update_window): Don't set cursor if pseudo_window_p.
13766
13767 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
13768
13769 * window.h (struct window): New flag pseudo_window_p set to
13770 1 for windows that aren't really part of the window tree, like
13771 menu_bar_window's of frames.
13772 * window.c (make_window): Initialize it.
13773 (replace_window): Ditto.
13774 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13775
13776 * frame.c (make_frame): Initialize menu_bar_window to nil.
13777
13778 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
13779 FACE_RELIEF
13780
13781 * xfaces.c (copy_face): shadow_thickness -> relief.
13782 (face_eql): Ditto.
13783 (merge_faces): Ditto.
13784 (compute_base_face): Ditto.
13785 (Fset_face_attribute_internal): Ditto.
13786 * dispextern.h (struct face): Ditto.
13787
13788 * dispnew.c (update_frame): Update menu_bar_window of the frame if
13789 it is non-nil.
13790
13791 * xdisp.c (display_menu_bar): Display the menu bar in
13792 f->menu_bar_window if appropriate.
13793 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
13794
13795 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
13796 dummy window and window matrices for f->menu_bar_window.
13797 (free_glyphs): Free the dummy window and its glyph matrices.
13798
13799 * frame.h (struct frame): New member menu_bar_window.
13800
138011997-11-09 Gerd Moellmann <gerd@acm.org>
13802
13803 * dispnew.c (scrolling_window): New version with diff-like
13804 algorithm.
13805
13806 * xdisp.c (try_window_reusing_current_matrix): If new_start >
13807 old_start always start displaying at start of
13808 first_row_to_display. The previous scheme failed if the last row
13809 was fully visible.
13810
13811 * dispnew.c (update_window): Remove cost calculations. Remove
13812 redundant preempt_count calculations.
13813
13814 * xterm.c (x_clip_to_row): Set clipping for non-text rows
13815 differently.
13816
13817 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
13818
427ec082 13819 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
13820 WITH_MARGINAL_AREAS is defined.
13821
427ec082 13822 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
13823 removed.
13824
13825 * dispnew.c (scrolling): Call line_hash_code because hash values
13826 are not set in the frame matrix.
13827
13828 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
13829 (redisplay_window): Check line_ins_del_ok before calling
13830 try_window_id.
13831 (try_window_reusing_current_matrix): Give up for terminal frames
13832 if window is not full width or we cannot insert/delete lines.
13833 (try_window_reusing_current_matrix): Fixed scrolling for terminal
13834 frames.
13835
13836 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
13837 Lisp_Object to mark_object.
13838
13839 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
13840 window rows have the same glyph pointers.
13841 (try_window_id): Call it.
13842
13843 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
13844 a glyph matrix.
13845 (mark_object): Call it.
13846
13847 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
13848 truncations.
13849 (display_line): Ditto.
13850 (display_line): Ditto for DISP_CONTINUATION.
13851 (display_line): Truncation on right: test current_x >
13852 last_visible_x.
13853 (skip_in_display_line_to): Ditto.
13854 (skip_via_matrix): Stop skipping in glyph row at face extending
13855 glyphs or at padding spaces.
13856
13857 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
13858
13859 * xdisp.c (display_line): Use glyph->object == 0 for padding
13860 glyphs.
13861 (redisplay_window): Don't let cursor move over padding
13862 spaces.
13863
13864 * dispextern.h (struct glyph): Fix comment for object.
13865
138661997-11-08 Gerd Moellmann <gerd@acm.org>
13867
13868 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
13869 has a mode line.
13870 * xdisp.c (redisplay_window): Use it.
13871 (display_mode_line): Check that window wants mode line.
13872
138731997-11-03 Gerd Moellmann <gerd@acm.org>
13874
13875 * xdisp.c (display_menu_bar): Enable menu bar rows.
13876
13877 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
13878 (x_erase_phys_cursor): Ditto.
13879 (x_draw_bar_cursor): Ditto.
13880
138811997-11-02 Gerd Moellmann <gerd@acm.org>
13882
13883 * dispnew.c (update_marginal_area): Update a marginal area.
13884 (update_text_area): Update text area.
13885 (update_window_line): Call both.
13886
13887 * xterm.c (XTclear_end_of_line): Translate coordinates area
13888 dependent.
13889
13890 * dispnew.c (updated_area): Row area being updated in
13891 update_window_line.
13892 (update_window_line): Set it.
13893 (update_marginal_area): Clear to end of line if not in text area.
13894
13895 * window.c (Fset_window_margins): Increment
13896 windows_or_buffer_changed. Adjust glyphs.
13897
13898 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
13899 area X coordinates to frame coordinates.
427ec082 13900 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
13901 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
13902 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
13903
13904 * xterm.c (draw_glyphs): Use text area width as display width.
13905
13906 * xdisp.c (init_display_info): Subtract widths of marginal areas
13907 from last_visible_x.
13908
13909 * alloc.c (mark_object): Mark objects in glyphs only if they are
13910 overlays. Mark only if current_matrix != 0. Activate the code.
13911
13912 * window.c (Fset_window_margins): Set margins.
13913 (Fwindow_margins): Return margin area widths.
13914 (syms_of_window): Add defsubr's.
13915
13916 * window.h (struct window): left_margin_width, right_margin_width.
13917
13918 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
13919 and cols.
13920
13921 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
13922 truncation/overlay arrow area.
13923 (struct frame): trunc_area_pixel_width, and _cols.
13924
13925 * window.c (Fsplit_window): Use it.
13926
13927 * window.c (Fsplit_window): Set cursor vpos to -1 after
13928 splitting.
13929 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
13930 split windows.
13931
13932 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 13933 of bounds cursor positions.
26901792
DL
13934
13935 * xdisp.c (redisplay_internal): Check that after cursor motion
13936 within line, PT is on same line.
13937
13938 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
13939 FRAME_TRUNC_WIDTH.
13940
13941 * xterm.h (struct x_output): trunc_area_extra.
13942 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
13943 (PIXEL_TO_CHAR_WIDTH): Subtract it.
13944 * widget.c (set_frame_size): Set it.
13945 (EmacsFrameSetCharSize): Ditto.
13946 * xfns.c (x_figure_window_size): Ditto.
13947 * xterm.c (x_set_window_size): Ditto.
13948
13949 * dispnew.c (check_matrix_invariants): First try to check window
13950 ends (in #if 0).
13951
13952 * xdisp.c (try_window_reusing_current_matrix): Try window
13953 redisplay with different window start.
13954
139551997-11-01 Gerd Moellmann <gerd@acm.org>
13956
13957 * window.c (make_window): Set window_end_pos/vpos.
13958 (Fsplit_window): Zero last_cursor, window_end_valid.
13959 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
13960
13961 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
13962
139631997-10-31 Gerd Moellmann <gerd@acm.org>
13964
13965 * window.c (make_window): Initialize last_cursor.
13966 (replace_window): Ditto.
13967
139681997-10-29 Gerd Moellmann <gerd@acm.org>
13969
13970 * window.h: New member last_cursor.
13971 * dispnew.c (direct_output_for_insert): Set it.
13972 (direct_output_forward_char): Ditto.
13973 * xdisp.c (redisplay_internal): Ditto.
13974
139751997-10-28 Gerd Moellmann <gerd@acm.org>
13976
13977 * xdisp.c (redisplay_internal): Optimization 1 change partially
13978 reverted. Check this again later.
13979 (skip_via_matrix): Remove redundent test for
427ec082 13980 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
13981
139821997-10-27 Gerd Moellmann <gerd@acm.org>
13983
13984 * dispnew.c (update_window_line): Call
13985 after_update_window_line_hook only for interesting constellations.
13986 (free_glyph_matrix): Fix memory leak.
13987
13988 * window.h: Include blocker WINDOW_H_INCLUDED, include
13989 dispextern.h.
13990 (struct window): phys_cursor_glyph as struct glyph. * window.c
13991 (make_window): Initialize it.
427ec082 13992 (replace_window): Ditto.
26901792
DL
13993 * dispnew.c (free_window_matrices): Remove freeing of
13994 phys_cursor_glyph.
13995 (check_matrix_invariants): Renamed from check_current_matrix_...
13996 * xterm.c: All references to phys_cursor_glyph changed.
13997
13998 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
13999
14000 * xfaces.c: Comment update.
14001
14002 * window.h (struct window): Make phys_cursor_glyph a struct glyph
14003 pointer. Remove phys_cursor_ascent, descent, etc.
14004 * dispnew.c (free_window_matrices): Free it.
14005 * window.c (make_window): Allocate it.
14006 (replace_window): Ditto.
14007 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
14008 (x_display_and_set_cursor): Fill it.
14009 (x_phys_cursor_in_rect_p): Use it.
14010 (x_draw_hollow_cursor): Ditto.
14011 (x_draw_bar_cursor): Ditto.
14012 (x_erase_phys_cursor): Ditto.
14013
14014 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
14015
14016 * xterm.c (XTget_display_info): Handle 3D facess.
14017 (draw_glyphs): Ditto.
14018
14019 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
14020
14021 * xfaces.c (Fset_face_attribute_internal): New face attribute
14022 shadow-thickness.
14023 (copy_face): Handle shadow_thickness.
14024 (face_eql): Ditto.
14025 (merge_faces): Ditto.
14026 (compute_base_face): Ditto.
14027
14028 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
14029 (struct display_info): Ditto.
14030 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
14031 * xdisp.c (compute_cursor_face): Set it.
14032 (advance_display_cursor): Clear it.
14033
14034 * xdisp.c (init_string_cursor): Initialize face_id to -1.
14035 (init_string_cursor): Init face_id to zero.
14036
14037 * dispextern.h (struct face): New member shadow_thickness.
14038
427ec082 14039 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
14040 search to 100.
14041
14042 * dispnew.c (update_window_line): Try to resynch with current line
14043 to prevent mode line flickering.
14044
140451997-10-26 Gerd Moellmann <gerd@acm.org>
14046
427ec082 14047 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
14048 on cursor_in_echo_area >= 0.
14049
14050 * xdisp.c (echo_area_display): Clear desired matrix before
14051 displaying into it.
14052 (display_menu_bar): Clear glyph row instead of hoping it is not
14053 enabled. This is safer.
14054
14055 * dispnew.c (check_current_matrix_invariants): Check only
14056 visible rows.
14057
14058 * xdisp.c (try_window_id): Handle window end setting in case of
14059 display to end of window, but only non-text lines displayed.
14060
14061 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
14062 (check_current_matrix_invariants): Check used counts.
14063
14064 * Revisiob v114.
14065
14066 * dispnew.c (scrolling): Use hash codes from rows.
14067
14068 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14069
14070 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14071
140721997-10-25 Gerd Moellmann <gerd@acm.org>
14073
14074 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14075 * dispnew.c (update_window): Use it.
14076 (clear_glyph_matrix): Clear it.
14077 * xdisp.c (try_window_id): Set it.
14078
14079 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14080
14081 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14082
14083 * dispextern.h: More comments etc.
14084
140851997-10-24 Gerd Moellmann <gerd@acm.org>
14086
14087 * dispnew.c (set_window_cursor_after_update): Set cursor
14088 for cursor_in_echo_area == 0 to (0, 0).
14089
14090 * dispextern.h (struct glyph_row): New flags continuation_line_p
14091 and displays_text_p.
14092 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14093 * xdisp.c (display_line): Set them.
14094 (try_window_id): Move to start of continuation line to find out
14095 continuation_line_width.
14096 (first_unchanged_current_row): Don't retract row if continued,
14097 truncated etc.
14098
14099 * xterm.c: Map X coordinates.
14100
141011997-10-23 Gerd Moellmann <gerd@acm.org>
14102
14103 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14104 left text.
14105
14106 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14107
14108 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14109
f28eba7b 14110 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14111
14112 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14113
14114 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14115 Set this to functions to be called before/after window updates.
14116 (direct_output_for_insert): Call them.
14117 (update_window): Ditto.
14118 (update_frame): Call update_begin/ update_end for windows.
14119
14120 * xterm.c (XTupdate_window_begin): Called before window updates.
14121 (XTupdate_end): Called after window updates.
14122 (x_initialize): Set hooks to above.
14123
14124 * xdisp.c (init_display_info): Initialize c and len of
14125 display_info.
14126
14127 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14128 fonts more than once.
14129
141301997-10-22 Gerd Moellmann <gerd@acm.org>
14131
14132 * xdisp.c (display_line): Handle most common case of current_x <
14133 last_visible_x separately.
14134
14135 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14136
14137 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14138 so that face extending space doesn't compare equal to normal space
14139 with same face.
14140
14141 * xdisp.c (display_line): Make sure we have a position for
14142 a line end in an otherwise blank line if face is extended.
14143
14144 * dispnew.c (direct_output_for_insert): Increment row end position.
14145
427ec082 14146 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14147 window_end_pos.
14148
14149 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14150
14151 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14152
14153 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14154 start and end positions in rows.
14155 (increment_glyph_row_buffer_positions): Stop adjusting at
14156 glyphs with positions <= 0.
14157
14158 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14159 position including position in overlay.
26901792
DL
14160 (struct glyph_row): Use it for start and end positions.
14161 (struct display_cursor): Use it.
14162 * xdisp.c: Use it.
14163 (display_line): Set row start and end positions.
14164
14165 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14166 assignment.
14167
141681997-10-21 Gerd Moellmann <gerd@acm.org>
14169
14170 * dispnew.c (update_window): Add scrolling_window again. It's
14171 necessary for scroll_step != 0.
14172
14173 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14174 scrolling.
14175
14176 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14177
14178 * xterm.c (XTupdate_end): Flush only for messages.
14179
14180 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14181 first_unchanged_row.
14182
14183 * xterm.c (XTupdate_end): Flush if miniwindow.
14184
14185 * dispnew.c (matrix_row_last_pos): New function.
14186 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14187 Large comment moved to xdisp.c.
26901792
DL
14188
14189 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14190 (skip_via_matrix): Check window_end_valid instead of
14191 display_completed.
14192
14193 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14194 (update_window): scrolling_window commented out. It has negative
14195 effect most of the time.
14196
14197 * xdisp.c (try_window_id): Correct parameters to
14198 scroll_glyph_matrix_range.
14199
427ec082 14200 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14201
14202 * window.h: Comments for window_end_pos/vpos.
14203
f28eba7b 14204 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14205 of the window in which we are skipping.
14206
14207 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14208
14209 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14210 reached.
14211
142121997-10-20 Gerd Moellmann <gerd@acm.org>
14213
14214 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14215 a face extending glyph.
14216
427ec082 14217 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14218 (set_cursor_from_row): Set cursor position from a glyph row.
14219
14220 * dispnew.c (update_window_line): Write entire line if hash
14221 codes of lines differ.
14222
14223 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14224 if glyph row has an infinite width glyph at its end.
14225
14226 * xdisp.c (last_unchanged_current_row): Respect partially visible
14227 lines when looking for the last row displaying text.
14228 (try_window_id): Handle partially visible lines better.
14229
142301997-10-19 Gerd Moellmann <gerd@acm.org>
14231
14232 * dispnew.c (update_window): Remove unused variable.
14233 (update_window_line): Simplified.
14234
14235 * xterm.c (x_get_char_font_and_encoding): Handle most common
14236 case at the beginning.
14237
14238 * xdisp.c (advance_display_cursor): Dispatch on method and
14239 order if statements by expected call frequency. Fixed unclosed
14240 comment.
14241
14242 * xdisp.c (try_window_id): New implementation.
14243
14244 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14245 rows displaying a line end, only.
14246
142471997-10-18 Gerd Moellmann <gerd@acm.org>
14248
14249 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14250
142511997-10-14 Gerd Moellmann <gerd@acm.org>
14252
14253 * xdisp.c (display_line): Mark empty lines not corresponding to
14254 text with position -1.
14255
14256 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14257 not within window matrix bounds.
14258
14259 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14260 (struct display_info): NGLYPHS_TO_IGNORE removed.
14261 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14262 * term.c: Ditto.
14263 * xterm.c: Ditto.
14264
14265 * xdisp.c (init_display_cursor): Set it.
14266 (display_line): Use it to set W->REGION_SHOWING.
14267
14268 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14269
14270 * region-cache.h: functino prototypes with PROTO.
14271
14272 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14273
14274 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14275 a position.
14276
427ec082 14277 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14278 rectangle based on minimum character bounds.
14279
f28eba7b 14280 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14281 glyph position calculations.
14282 (make_lispy_movement): Use buffer_posn_from_coords and window
14283 relative coordinates.
14284
14285 * xterm.c (construct_mouse_click): Remove #if 0 case.
14286
14287 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14288 given row.
14289
427ec082
SS
14290 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14291 date.
26901792
DL
14292 (skip_to): Use it.
14293 (redisplay_window): Remove code skipping using current matrix.
14294
142951997-10-13 Gerd Moellmann <gerd@acm.org>
14296
14297 * xdisp.c (redisplay_window): Use available current matrix to
14298 skip faster when only point is moved withing the window.
14299
427ec082 14300 * intervals.c: Include stdio.h.
26901792
DL
14301 (find_interval): Trace to stderr to catch some nasty error
14302 that did not yet occur again with tracing.
14303 (set_point): Ditto.
14304
14305 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14306 cursor positioning on partially visible lines.
14307 (set_window_cursor_after_update): Ditto.
14308
f28eba7b 14309 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14310
14311 * window.h (struct window): start_y removed.
14312
14313 * window.c (make_window): start_y removed.
14314 (replace_window): Ditto.
14315
427ec082 14316 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14317 descent values of the last line processed by skip_to.
14318 (redisplay_window): Use them.
14319 (skip_to): Set them.
14320
14321 * dispextern.h (struct display_cursor): New member METHOD.
14322
14323 * xdisp.c: Use function member METHOD.
14324
14325 * xdisp.c (set_next_stop_pos): Determine next position at which to
14326 check for face properties, invisible text properties, and overlays.
14327 (compute_cursor_face): Use it.
14328 (get_overlays_for_cursor): Ditto.
14329 (reseat_cursor): Ditto.
14330 (next_display_element): Ditto.
14331
14332Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14333
14334 * termhooks.h: Some hooks with prototypes.
14335
14336 * term.c: Some hooks with function prototypes.
427ec082 14337
26901792
DL
14338 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14339 computing face if possible.
14340
14341 * xdisp.c (next_display_element): Use face from glyph from display
14342 table only if != 0.
14343
14344 * emacs.c: FreeBSD headers for profiling removed.
14345
427ec082
SS
14346 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14347 display cursor, use DEC_POS instread.
26901792
DL
14348
14349 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14350 all fonts are in the font table.
26901792
DL
14351 (unload_font): Don't XFreeFont.
14352
14353 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14354 row height.
14355
14356 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14357 (x_erase_phys_cursor): Clear only visible part of row.
14358 (x_draw_bar_cursor): Set clipping.
14359 (x_draw_hollow_cursor): Ditto.
14360 (x_display_and_set_cursor): Remove clipping.
14361 (expose_window_tree): Take trunc border into account.
14362 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14363 (expose_window): Use it.
14364
14365 * xdisp.c (display_string): Catch case that we are called with
14366 current_x already beyond max_x.
14367 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14368 (init_display_info): Subtract vertical border glyph from
14369 last_visible_x.
14370
14371 * scroll.c (scrolling_window_1): Removed.
14372
14373 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14374 based on redisplay method used.
14375 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14376 based redisplay.
14377 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14378 window based redisplay.
14379
14380 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14381 on data structures.
14382
14383 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14384 Handle own storage for purely window based redisplay.
14385 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14386 allocate_matrices.
26901792
DL
14387 (allocate_matrices_for_window_redisplay): Ditto.
14388
14389 * dispextern.h (struct glyph_matrix): window_top_y,
14390 window_height.
14391
14392 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14393 and optimize some common cases of window changes.
14394
14395 * emacs.c (main): Remove own profiling code because 0.95 now
14396 has it in.
14397
14398Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14399
14400 * xterm.c (XTupdate_end): Draw horizontal border at right
14401 position.
14402 (expose_window): Draw vertical border.
14403 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14404 don't do anything.
14405
14406 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14407 for non full width windows only if not window redisplay.
14408
14409 * dispnew.c (update_window_tree): Or paused_p return of called
14410 functions.
14411
14412 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14413 of window.
14414
14415 * window.c (Fset_window_configuration): adjust_glyphs being
14416 called twice.
14417 (Fset_window_configuration): Set frame garbaged if not all
14418 leaf windows reused.
14419
144201997-08-21 Gerd Moellmann <gerd@acm.org>
14421
14422 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14423 that rows should really be cleared. Used for current matrices.
14424
14425 * dispnew.c (scrolling_window): Bug fix.
427ec082 14426 (line_dance_hook): Formerly line_dance_fn, take only one
26901792
DL
14427 parameter.
14428
14429 * dispextern.h (struct run): Remove current_vpos.
14430
14431 * xterm.c (do_line_dance): Only one parameter.
14432
f28eba7b 14433 * xdisp.c (display_line): Set continued_p.
26901792
DL
14434
14435 * dispextern.h (struct glyph_row): New flag continued_p.
14436 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14437 (struct glyph_row):
26901792
DL
14438
14439Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14440
14441 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14442 when calling skip_to for continued lines.
14443
14444 * dispnew.c (change_frame_size_1): Set frame garbaged.
14445
14446 * xterm.c (expose_window): Check enabled_p of rows.
14447
14448 * xdisp.c (redisplay_internal): Compare line heights before and
14449 now for redisplay optimization 2 (hit).
14450 (display_line): Set this_line_pixel_height.
14451
14452 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14453 value.
14454 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14455 (do_line_dance): Simplified and pixel corrected.
14456
14457 * dispnew.c (scrolling_window): Simplified.
14458
14459 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14460
14461 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14462 to mode line row->x.
14463
14464Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14465
14466 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14467 override font of face.
14468 (draw_glyphs): Correct return value.
14469 (XTclear_end_of_line): Compare differently with output cursor
14470 position.
14471 (x_draw_hollow_cursor): 2 parameters, window and row.
14472
14473 * dispnew.c (update_window_line): If rows have different height
14474 or y, write entire line.
14475
f28eba7b 14476 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14477 of info struct.
14478
427ec082 14479 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14480 frame_update_line_height.
14481 (merge_faces): Don't use default font if new font has different
14482 size.
14483
14484Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14485
14486 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
14487 unknown. Some fonts have min_width zero.
14488 (draw_glyphs): Don't draw underlines to the end of the display
14489 line if face is merely extended to that point.
14490 (draw_glyphs): Don't assume background is filled if
14491 just_foreground_p but extending to end of line.
14492
14493 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14494 for partially visible last lines.
14495 (x_clip_to_row): Ditto.
14496 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14497 display_height since line_height is really a line distance.
14498 (x_display_and_set_cursor): If cursor on padding glyph, use
14499 min_bounds pixel width.
14500
14501Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14502
14503 * xterm.c (x_clip_to_row): Height value was 1 too large.
14504 (XTclear_end_of_line): Clip to display area.
14505
14506 * xfns.c (x_figure_window_sizes): Add trunc border width
14507 to frame pixel width.
14508
14509 * xdisp.c (next_display_element): Don't display overlay strings
14510 within invisible text.
427ec082 14511 (skip_vertically_backward): Skip display lines.
26901792
DL
14512
14513Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14514
14515 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14516
14517 * xdisp.c (next_display_element): Next invisible
14518 text check position computed differently.
14519
14520 * dispextern.h (struct display_cursor): last_invisible_text_pos
14521 and display_ellipsis_for_invisible_p removed.
14522
14523 * xdisp.c (next_display_element): Set last_invisible_text_pos
14524 to the last position at which invisible text was found. Don't
14525 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14526 dpvec for `...' due to invisible text directly.
26901792
DL
14527 (redisplay_internal): Don't assert that cursor is at PT after
14528 skip_to. It may be in invisible text.
14529
427ec082 14530 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
14531 x_y_to_hpos_vpos.
14532
427ec082 14533 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
14534 next_overlay_pos is reached. Use limit cursor.pos + 100 when
14535 checking for invisible text.
14536
14537 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
14538
14539 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
14540
14541 * xfns.c (x_contour_region): Use pixel coordinates from window
14542 cursor instead of WINDOW_TO_FRAME_H/VPOS.
14543
14544 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
14545 Removed.
14546
14547 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
14548
14549 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
14550 pixel coordinates.
14551 (note_mouse_highlight): Use it.
14552
14553 * xdisp.c (echo_area_display): Ignore calls for terminal frames
14554 under a window system.
14555
427ec082 14556 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 14557 necessary.
427ec082 14558 (update_window_line): Add width of face padding glyph to
26901792
DL
14559 displayed widths of rows.
14560
14561 * xterm.c (x_display_and_set_cursor): Set clipping after
14562 erasing cursor.
427ec082
SS
14563
14564 * window.c (Fset_window_configuration): Free only those
26901792
DL
14565 window matrices not reused.
14566 (get_leaf_windows): Build vector of leaf windows.
14567 Corrupted archive restored from v77.
14568
f28eba7b 14569 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
14570 like display_line does.
14571
14572 * xdisp.c (display_mode_line): Don't hscroll mode line.
14573
14574 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
14575 windows.
14576 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
14577 garbage between mode lines when splitting windows horiz.
14578
14579 * dispnew.c (direct_output_for_insert): Bug fix.
14580
14581 * dispextern.h (struct display_cursor): New member string_length.
14582
14583 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 14584 (init_string_cursor): Take precision and field_width
26901792
DL
14585 (display_string): Use string cursor, skip over invisible text.
14586
14587Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
14588
14589 * xterm.c (x_clip_to_row): Clip to partially visible lines.
14590 (x_display_and_set_cursor): Call it.
14591 (draw_glyphs): Call it
14592 (draw_bitmap): Call it.
14593
427ec082 14594 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
14595 (allocate_leaf_matrix): Return flags.
14596 (row_equal_p): Compare enabled_p.
14597
14598 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
14599 for type == -1.
14600
14601 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 14602 (draw_glyphs): Clip height one pixel taller.
26901792 14603
427ec082 14604 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
14605 mini window.
14606
f28eba7b 14607 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 14608
427ec082
SS
14609 * xdisp.c (echo_area_display): Call update_single_window if
14610 possible.
26901792
DL
14611
14612 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 14613 (scrolling_window): Work on enabled desired lines only.
26901792
DL
14614 (update_single_window): Update a single window like update_frame
14615 does for all windows.
427ec082 14616 (update_window, update_window_tree): Additional argument
26901792
DL
14617 no_scrolling_p.
14618 (update_frame): Pass no_scrolling_p to update_window_tree.
14619 (update_window): Don't call scrolling_window if no_scrolling_p.
14620
14621 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
14622 Erase under hollow cursor.
14623 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
14624 not enabled. Draw bar cursor 1 pixel smaller.
14625
f28eba7b 14626 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
14627 since update will follow soon.
14628
14629 * xdisp.c (echo_area_display): Unitialized variable.
14630
f28eba7b 14631 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
14632 overlay arrow bitmap.
14633
f28eba7b 14634 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 14635 up to the final \n as part of the line for cursor positioning.
26901792 14636
f28eba7b
SM
14637 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
14638 (x_after_update_window_line): Clear trunc marks.
26901792
DL
14639
14640 * xterm.h (FRAME_X_TRUNC_WIDTH).
14641
f28eba7b 14642 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
14643 of a window reserved for truncation mark.
14644
427ec082 14645 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
14646
14647 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 14648 hook.
26901792
DL
14649
14650 * xdisp.c (display_line): Set overlay_arrow_p in row.
14651
14652 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
14653
14654 * xterm.c (x_after_update_window_line): Draw truncation marks.
14655
14656 * xdisp.c (display_line): Insert truncation for lines with
14657 current_x > 0.
14658
14659 * xterm.c (x_draw_row_borders): Convert y to frame coords.
14660 Correct y by 1.
14661 (x_display_cursor): Use default font width if width not
427ec082 14662 known.
26901792 14663
f28eba7b 14664 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
14665
14666 * dispnew.c (set_window_cursor_after_update): Don't assume
14667 all rows are enabled.
14668
14669 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
14670 of cursor.pos.
14671 (skip_in_display_line_to): Check cursor.position after call to
14672 next_display_element.
14673
427ec082 14674 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
14675 buffer position.
14676
14677 * xdisp.c (display_line): Set row->y here.
14678 (skip_in_display_line_to): Test for to_pos after all glyphs
14679 have been added to hpos so that hpos is at the end of all
14680 glyphs for to_pos.
14681 (start_display): Remove assertion.
14682
14683 * dispnew.c (direct_output_forward_char): Bug fix, = instead of
14684 ==.
14685 (update_window): Don't set row->y here.
14686
14687 * xdisp.c (next_display_element): Don't translate control chars
14688 from display table entries.
14689
427ec082 14690 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
14691 update end to prevent cursor flickering. Revert changes to
14692 setting cursor.endpos.
14693
14694Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
14695
14696 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
14697 to PT because this prevents multi-byte characters from being
14698 recognized.
14699
427ec082
SS
14700 * xdisp.c (skip_to, display_line): Advance cursor at end of
14701 truncated line.
26901792
DL
14702
14703 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
14704 replaced by XRectangle.
14705
14706 * dispnew.c (scrolling_window): New method.
14707
14708 * xterm.c (do_line_dance): New implementation, new method.
427ec082 14709
26901792
DL
14710 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
14711 visible part of line.
14712
14713 * dispnew.c (update_window_line): Fill inverse video lines
14714 with infinite width space.
14715 (update_window): Handle completely empty matrices.
14716 (set_window_cursor_after_update): Bug fix.
14717
427ec082 14718 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
14719
14720 * dispnew.c (update_window_line): Don't ignore spaces, don't
14721 fill with spaces.
14722
14723 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
14724 the first glyph having width 0.
14725
14726 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 14727 a glyph that extends to the end of the line.
26901792
DL
14728
14729 * xdisp.c (display_line): Insert one padding glyph
14730
14731 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
14732 amount from info.current_x.
14733 (display_line): Ditto.
14734
14735 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
14736 (change_frame_size_1): Correct cursor.x if frame gets too small.
14737 (update_window_line): Start at row->x.
14738
14739 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
14740 in xdisp.c).
14741
14742 * xterm.c (set_output_cursor): Use window relative X/Y.
14743 (global): Use window relative output cursor x/y.
14744 (draw_glyphs): Remove y param. Pass window relative x/y.
14745
14746 * dispnew.c (update_window): Start rows at start_y.
14747 (update_window): Don't try scrolling because it wouldn't work
14748 with variable height lines, anyway.
14749
14750 * dispextern.h (struct glyph_row): Remove shift_left_by,
14751 add x.
14752
14753 * window.h: (struct window): New member start_y.
14754
14755 * window.c (replace_window): Initialize start_y.
14756 (make_window): Ditto.
14757
14758Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
14759
14760 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 14761 the mode line.
26901792 14762
427ec082
SS
14763 * dispnew.c (update_window): Take mode line border into
14764 account.
26901792
DL
14765
14766 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 14767 of border around mode line.
26901792
DL
14768
14769 * xterm.c (x_draw_row_borders): Bug fix.
14770 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
14771 drawing functions.
14772
14773 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 14774 around modeline instead of inverting it.
26901792 14775
427ec082 14776 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
14777
14778 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
14779 window relative pixel coordinates as arguments.
14780
14781 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
14782 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
14783 COORDS mit new arguments.
14784
14785Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
14786
14787 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 14788 DISPLAY_LINE.
26901792
DL
14789
14790 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
14791 pixel coords.
14792 (make_lispy_movement): Same.
14793
14794 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
14795 with new parameter meaning.
14796
14797 * window.c (Fcoordinates_in_window_p): Convert Lisp params
14798 from canon units to pixels.
14799 (coordinates_in_window): Pixel based.
14800 (Fcoordinates_in_window_p): Convert result pixel values back
14801 to canonical units.
14802
14803 * window.h: phys_cursor_ascent + descent instead of height.
14804
14805 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
14806 chars with charset width 1.
14807
14808 * dispnew.c (direct_output_for_insert): Set updated_row.
14809
14810Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
14811
14812 * dispextern.h (struct glyph): Padding flag removed.
14813
14814Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
14815
14816 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
14817
14818 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
14819
14820 * dispnew.c (update_window_line): Use pixels.
14821
14822 * xdisp.c (compute_line_metrics): Correct pixel_width by
14823 shift_left_by.
14824
14825 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 14826 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
14827 glyph_row -> right_to_left_p. Change references to it.
14828
14829Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
14830
14831 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
14832
14833 * xterm.c (XTinsert_glyphs): Implement it.
14834
14835 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
14836 of a call from DIRECT_OUTPUT_FOR_INSERT.
14837
14838 * window.h (struct cursor_pos): Keeps both matrix positions
14839 and pixel positions.
14840 (struct window): Use it.
14841
14842 * dispnew.c (direct_output_for_insert): New version.
14843
14844 * xdisp.c (redisplay_internal): Don't do anything if it has
14845 already be done directly.
14846
14847 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
14848 for any character.
14849
14850Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
14851
14852 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
14853
14854Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
14855
14856 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
14857 (struct glyph): ASCENT, DESCENT.
14858 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
14859 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
14860
14861 * xterm.c (XTget_display_info): Correct tab computation.
14862
14863 * term.c (get_display_info): Correct tab computation.
14864
14865 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
14866 Renamed from CHAR_CURSOR.
14867
14868Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
14869
14870 * xdisp.c (display_text_line): Mostly pixel oriented.
14871
14872 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
14873
14874 * term.c (append_intermediate_glyph): Generate padding glyphs.
14875
14876 * xdisp.c (display_text_line): More into final direction.
14877
14878 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
14879 (XTget_char_info): Use tabs as multiples of spaces.
14880
14881 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
14882 Use tabs as multiples of spaces.
14883
14884 * dispextern.h (struct char_info ): WHAT field.
14885
14886 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
14887 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
14888
14889Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
14890
14891 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
14892 value.
14893 (init_char_info): Initialize with glyph row.
14894
14895 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
14896
14897 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
14898
14899 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
14900 glyphs.
14901
14902 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
14903 moved to xdisp.c.
14904
14905 * xdisp.c (display_text_line): Use CHAR_CURSOR.
14906
14907 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
14908 generation.
14909 (XTget_char_info): Ditto.
14910
14911 * term.c (get_char_info): Intermediate glyph generation.
14912 (append_intermediate_glyph): Ditto.
14913
14914Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
14915
427ec082 14916 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
14917 CHAR_CURSOR.
14918 (init_char_cursor): Initialize a CHAR_CURSOR.
14919 (get_char_and_advance): Get next character to display.
14920
14921 * dispextern.h (struct char_cursor): Cursor for iterating over
14922 display text of CURRENT_BUFFER.
14923
14924Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
14925
14926 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
14927
14928 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
14929 New member MAX_PIXEL_HEIGHT.
14930
14931 * xterm.c (x_per_char_metric): Get per character metrics.
14932 (XTget_char_info): More cases covered.
14933
14934 * term.c (get_char_and_info): Get next character and character
14935 display information.
14936 (get_char_info): Get character display information.
14937
14938 * dispextern.h: Character display information.
14939
427ec082 14940 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
14941 encode character.
14942 (XTget_char_info): Get display information about a character.
14943
14944Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
14945
14946 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
14947 zero if window is mini-window.
14948
14949 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
14950 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
14951
427ec082 14952 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
14953 (clear_glyph_row): Clear pixel height.
14954 (update_window): Use PIXEL_HEIGHT.
14955
14956 * xdisp.c (display_string): Set row pixel height temporarily.
14957 (display_text_line): Ditto.
14958
427ec082 14959 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
14960 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
14961
427ec082 14962 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
14963 line in default font.
14964 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
14965 in default font.
14966 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
14967
14968 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
14969 in pixels.
14970
14971 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
14972
14973 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
14974 (WINDOW_DISPLAY_PIXEL_HEIGHT):
14975 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
14976 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
14977 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
14978 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
14979 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
14980 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
14981 pixel values related to windows.
14982
14983Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
14984
14985 * xterm.c (XTflash): Flash last line of frame.
14986
14987 * dispextern.h (cursor_in_echo_area): Extern declaration.
14988
14989 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
14990 freezes stem from 16-bit functions.
14991
14992 * xterm.c (x_display_and_set_cursor): Don't display hollow
14993 cursor in mini windows.
14994
14995 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
14996 (make_window): Ditto.
14997
14998 * xterm.c (x_erase_phys_cursor): Erase cursor image.
14999 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
15000 and X_DISPLAY_BAR_CURSOR.
15001 (x_display_cursor): Use it.
15002 (x_update_window_cursor): Use it.
15003
15004 * xdisp.c (display_text_line): Set cursor for window even if not
15005 selected.
15006
15007 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
15008 of X and Y to denote matrix positions.
15009 (x_display_cursor): Ditto.
15010
15011 * dispnew.c (scrolling_window): Scrolling for windows.
15012
15013Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
15014
15015 * dispnew.c (build_frame_matrix): Work on windows with update
15016 flag set.
15017 (build_frame_matrix_from_window_tree): Ditto.
15018 (build_frame_matrix_from_leaf_window): Ditto.
15019
15020 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
15021 building frame matrix.
427ec082 15022 (redisplay_internal): Set window update flags instead of
26901792
DL
15023 building frame matrix.
15024
15025 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
15026 building frame matrix.
15027
15028 * window.c (make_window): Initialize new members.
15029 (replace_window): Ditto.
15030
15031 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
15032 I don't believe this is really necessary.
15033
15034 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 15035 border glyph once.
26901792
DL
15036
15037Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
15038
427ec082 15039 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
15040 window tree off.
15041
427ec082 15042 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
15043 window matrix.
15044 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
15045 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
15046 (x_update_cursor): Work on windows.
15047 (x_display_bar_cursor): Ditto.
15048 (x_draw_single_glyph): Ditto.
15049
15050 * xterm.h: Prototype for X_DISPLAY_CURSOR.
15051
15052 * xterm.c (XTcursor_to): Void return type. Test for
15053 UPDATED_WINDOW. Call x_display_cursor with window.
15054 (x_display_cursor): Void return type. Window instead of frame
15055 parameter.
15056
15057 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions
15058 below.
15059
15060 * window.c (window_rightmost_p, window_topmost_p): Based on
15061 window tree.
15062
15063 * dispnew.c (adjust_frame_message_buffer): Allocate with
15064 FRAME_MESSAGE_BUF_SIZE.
15065
15066 * window.h: PHYS_CURSOR_.* added.
15067
15068 * frame.h (struct frame): Cursor information removed.
15069
15070 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15071 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15072
15073 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15074
15075 * window.c (window_internal_width): Scroll bars no longer
15076 part of window.
15077
15078 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH
15079 removed.
15080
15081 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH
15082 removed.
15083
15084 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15085 (redisplay_internal): Ditto.
15086 (redisplay_window): Ditto.
15087 (redisplay_window): Ditto.
15088 (display_text_line): Ditto.
15089 (display_mode_line): Ditto.
15090
15091 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15092
15093 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15094 (direct_output_for_insert): Ditto.
15095 (direct_output_forward_char): Ditto.
15096 (update_frame_1): Ditto.
15097
15098Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15099
15100 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
15101 being updated.
15102 (update_window): Set and clear it.
15103
15104 * dispnew.c (update_window_line, update_window, scrolling_window):
15105 First versions.
15106
15107 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15108 bar for window borders.
15109 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15110 with spaces.
15111 (fill_up_glyph_row_with_spaces): Call above function.
15112
15113 * xdisp.c (display_text_line): Don't add vertical bar for
15114 window borders.
15115 (display_string): Ditto.
15116
15117 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15118 (replace_window): Ditto.
15119
15120 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15121
15122 * xfns.c (Fx_contour_region): Use selected window cursor position.
15123 (Fx_uncontour_region): Ditto.
15124 (Fx_select_region): Ditto.
15125
15126 * frame.c (make_frame): Remove CURSOR_X/Y.
15127
15128 * xdisp.c (redisplay_internal): Use window cursor position.
15129
15130 * dispnew.c (update_frame_1): Use cursor position of selected
15131 window.
15132 (change_frame_size_1): Ditto.
15133
15134 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15135 (XTwrite_glyphs): Use cursor position of selected window.
15136
15137 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected
15138 window.
15139
15140 * dispnew.c (set_cursor_to): Set window cursor position.
15141 (direct_output_for_insert): Use window cursor position.
15142 (init_display): Don't use frame cursor position.
15143
15144 * window.h: CURSOR_VPOS/HPOS added.
15145
15146 * frame.h (struct frame): CURSOR_X/Y removed.
15147 (FRAME_CURSOR_X): Removed.
15148 (FRAME_CURSOR_Y): Ditto.
15149
15150 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15151 (direct_output_forward_char): Ditto.
15152
15153 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y
15154 removed.
15155
15156 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15157
15158 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15159
15160Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15161
15162 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15163 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15164
15165 * dispextern.h: Changed function names.
15166
15167 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15168 < 2.
15169 (clear_window_matrices): Formerly two functions for desired
15170 and current matrix.
15171 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15172 (update_frame): Return return value from UPDATE_FRAME_1.
15173
15174Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15175
15176 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15177 LAST_TEXT_VPOS.
15178
15179 * frame.c (set_menu_bar_lines): Adjust matrices.
15180
15181 * dispnew.c (set_cursor_to): Set cursor position.
15182
15183 * minibuf.c (read_minibuf): Build frame matrix.
15184
15185 * xdisp.c (this_line_start_hpos): Renamed to
15186 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15187 relative.
15188 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15189 reason.
15190
427ec082 15191 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15192 menu bar.
15193 (clear_window_records): Clear window rows.
15194 (clear_frame_records): Clear window and frame rows.
15195 (clear_glyph_matrix): Set all rows of a matrix to empty.
15196
15197 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P. Update
15198 frame if set.
15199 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15200 removed.
15201 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15202 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15203
15204 * dispnew.c (assign_row): Assign one glyph row to another.
15205 (mirrored_make_current): Use it.
15206 (mirror_make_current): Use it.
15207 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15208 used counters for the current glyph row.
427ec082 15209
26901792
DL
15210
15211Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15212
15213 * lisp.h: Prototype for SCAN_BUFFER.
15214
15215 * xdisp.c (redisplay_windows): Simplified.
15216
15217 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15218 with debug checks.
15219 (window_to_frame_hpos): Convert window to frame hpos with checks.
15220 (frame_to_window_vpos): Convert frame to window vpos with checks.
15221 (frame_to_window_hpos): Convert frame to window hpos with checks.
15222
15223 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15224
15225 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15226
15227 * xdisp.c (redisplay_internal): Another instance of
15228 DISPLAY_TEXT_LINE with window relative VPOS.
15229 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15230
15231 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15232 only.
15233
15234 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15235 (redisplay_internal): Ditto.
15236
15237 * dispnew.c (cancel_window_line): Use window matrix. Changed
15238 name to CANCEL_WINDOW_LINE.
15239
15240 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15241 relative VPOS.
15242
427ec082
SS
15243 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15244 to frame vpos.
26901792
DL
15245 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15246 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15247 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15248
15249 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15250 window relative VPOS.
15251 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15252 relative VPOS.
15253
15254 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15255 MATRIX_BUFFER_POSITIONS.
15256
15257 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15258
15259 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15260
427ec082 15261 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15262 matrix. Change name to scroll_full_width_window.
15263
15264 * xdisp.c (message2_nolog): Don't fwrite NULL message If
15265 NONINTERACTIVE.
15266
15267Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15268
15269 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15270 and window matrices.
26901792
DL
15271 (adjust_window_charstarts): Use window matrix.
15272 (cancel_my_columns): Use window matrix.
15273 (direct_output_for_insert): Use window matrix, only.
15274
15275 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15276 (display_string): Call display_glyphs.
15277 (display_menu_bar_string): Display a string in a menu bar line.
15278 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15279 (display_text_line): Use window matrix.
15280 (try_window): Use window relative positions.
15281
15282Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15283
15284 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
15285 (0, 0).
15286 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
15287 top-most windows.
15288
15289 * window.h (WINDOW_TOPMOST_P): Added.
15290
15291 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15292 (redisplay_window): Ditto.
15293 (display_text_line): Ditto.
15294 (display_menu_bar): Ditto.
15295 (display_mode_line): Ditto.
15296 (display_mode_line): Use window matrix.
15297 (display_string): Use window matrix.
15298 (display_mode_element): Ditto.
15299 (echo_area_display): Don't display if frame has no pools yet.
15300 (echo_area_display): Work with window matrix for mini window.
15301 (redisplay_window): Use window marix for mini window.
15302 (display_text_line): Assume HPOS and VPOS are window relative and
15303 use that for DISPLAY_STRING.
15304
15305 * dispextern.h: Prototype for prepare_desired_row.
15306
15307 * dispnew.c (prepare_desired_row): Replacement for
15308 GET_DISPLAY_LINE.
15309
15310 * dispnew.c (adjust_window_charstarts): Always allocate window
15311 matrices.
15312 (clear_glyph_row): Only reset used counters and flags.
15313
15314Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15315
15316 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15317 line is non-empty.
26901792
DL
15318 (realloc_glyph_pool): Don't add 1 to the pool size.
15319 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15320
15321 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15322 (line_draw_cost): Ditto.
15323 (update_line): Ditto.
15324 (update_line): Use SPACE_GLYPH.
15325 (count_blanks): Additional parameter LEN.
15326
15327 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15328 (display_text_line): Don't add null-glyph end marker.
15329 (display_string): Use SPACE_GLYPH.
15330 (display_string): Don't use null-glyph end marker.
15331
15332 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15333
15334 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15335 (fill_up_glyph_row_with_spaces): Ditto.
15336 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15337 rows, instead of null-glyphs.
15338 (direct_output_for_insert): Don't add null-glyph end marker.
15339
15340 * scroll.c (do_direct_scrolling): Change algorithm to construct
15341 vector of lines assigned. Call MIRRORED_LINE_DANCE:
15342 (do_scrolling): Ditto.
15343
15344 * dispnew.c (mirror_line_dance): Mirror line assignments in a
15345 frame matrix in window matrices.
15346 (mirrored_line_dance): Do line assignments during scrolling.
15347 Maybe do corresponding assignments in window matrices.
15348 (check_window_matrix_pointers): Check that window rows and frame
15349 rows agree about glyph pointers.
15350 (check_matrix_pointers): Ditto.
15351 (mirrored_make_current): Make a row of a desired matrix current;
15352 maybe mirror the operation in window matrices.
15353 (mirror_make_current): Make window desired matrix row current when
15354 frame matrix row was made current.
15355
15356Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15357
15358 * dispnew.c (check_matrix_pointer_lossage): Check against
15359 pointer lossage in matrices.
15360 (get_glyph_matrix_row): Removed.
15361
15362 * scroll.c (do_scrolling): Simplified.
15363 (do_direct_scrolling): Simplified.
15364 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
15365 DO_.*SCROLLING.
427ec082 15366
26901792
DL
15367
15368 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15369 (rotate_vector): Removed.
15370 (rotate_pointers): Removed.
15371 (scroll_frame_lines): Simplified.
15372
15373Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15374
15375 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15376
15377 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15378 what the name says.
15379 (clear_glyph_row): Make a glyph row structure empty.
15380 (make_matrix_row_current): Make a glyph row current.
15381 (make_window_matrix_row_current): Perform analogous row swaps
15382 for window matrices.
15383 (update_line): Call make_matrix_row_current.
15384
15385Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15386
15387 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15388 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15389 INVERSE_P.
15390 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15391 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15392
15393 * all files: use above new names.
15394
15395 * dispnew.c (scroll_frame_lines): Simplified. Use
15396 SCROLL_GLYPH_MATRIX.
15397 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15398 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15399 buffer positions in a glyph row.
15400 (increment_glyph_matrix_buffer_positions): Increment buffer
15401 positions in a range of rows.
15402 (scroll_glyph_matrix): Scroll a glyph matrix.
15403 (swap_glyphs_in_rows): Swap glyphs between rows.
15404 (swap_glyph_pointers): Swap pointers between rows.
15405 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15406 (init_display): Initialize SPACE_GLYPH.
15407 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15408 spaces.
26901792
DL
15409
15410Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15411
15412 * xterm.c (dumprectangle): Use vectors in glyph rows.
15413
15414 * xdisp.c (display_text_line): Use vectors in glyph rows.
15415 (display_string): Ditto.
15416
15417 * scroll.c (do_scrolling): Use vectors in glyph rows.
15418 (do_direct_scrolling): Ditto.
15419
15420 * alloc.c (mark_object): Use vectors in glyph rows.
15421 Mark for all frame types.
15422
15423 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15424 glyph rows.
15425 (get_glyph_matrix_row): Ditto.
15426 (matrix_row): Ditto.
15427 (rotate_pointers): Ditto.
15428 (scroll_frame_lines): Ditto.
15429 (preserve_other_columns): Ditto.
15430 (cancel_my_columns): Ditto.
15431 (update_line): Ditto.
15432 (direct_output_for_insert): Ditto.
15433
15434 * dispextern.h (struct glyph_row): Use a vector of pointers
15435 instead of individual members. Use a vector of used counters.
15436 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15437 (MATRIX_ROW_GLYPH_START): Ditto.
15438 (MATRIX_ROW_GLYPH_END): Ditto.
15439 (MATRIX_ROW_USED): Ditto.
15440 (MATRIX_ROW_SET_USED): Ditto.
15441
15442 * dispnew.c (line_hash_code): Simplified.
15443
15444Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15445
15446 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15447 CHANGE_FRAME_SIZE_1
15448 (preserve_other_columns): Void return.
15449 (cancel_my_columns): Void return type.
15450 (scrolling): Int return type.
15451 (do_pending_window_change): Void return type.
15452 (change_frame_size): Ditto.
15453 (bitch_at_user): Ditto.
15454 (init_display): Ditto.
15455 (syms_of_display): Ditto.
15456
15457 * dispextern.h: add prototypes for REDRAW_FRAME,
15458 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15459 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15460 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15461 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15462 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15463 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
15464 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15465
26901792
DL
15466 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
15467 void.
15468 (cancel_line): Return void.
15469 (clear_frame_records): Return void.
427ec082 15470
26901792
DL
15471 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15472 (SET_CHAR_GLYPH): Fill a character glyph.
15473 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15474 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15475 glyph.
26901792
DL
15476 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15477 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15478 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15479 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15480 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15481 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15482 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15483 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15484 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15485
15486 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15487
15488 * window.h (struct window): Add comment that no Lisp data may
15489 come below CURRENT_MATRIX.
15490
15491 * alloc.c (mark_object): Change window mark code to stop with
15492 member CURRENT_MATRIX.
15493
15494Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15495
15496 * scroll.c (do_scrolling): Change algorithm to use pointers.
15497 (do_direct_scrolling): Ditto.
15498
15499 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15500 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15501 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15502 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
15503 Returns 1 if pool changed.
15504 (matrix_row): Additional check for lost pointers to glyph rows.
15505 (compute_matrices): Additional parameter DIM_P set means that no
15506 allocation should take place. Addtional parameter
15507 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
15508 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
15509 when window matrix changes. Additional parameter DIM_ONLY_P set
15510 to 1 to indicate that no allocation should take place.
15511 (adjust_frame_glyphs): Construct new glyph pools and glyph
15512 matrices. Optimize frame redraws.
15513 (free_glyphs): Free pools.
15514 (check_glyph_memory): Check pools not freed.
15515 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15516 (scroll_frame_lines): Change algorithm to use pointers.
15517 (update_line): Ditto.
15518
15519 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15520 (global): All macro names changed from prefix FRAME_MATRIX to
15521 MATRIX.
15522
15523Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15524
15525 * dispextern.h (struct glyph_pool): Replacement for former
15526 FRAME_GLYPH_MATRIX.
15527 (struct glyph_matrix): No longer contains sizes of allocated
15528 areas.
15529
15530 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15531 no glyph pools.
15532
15533 * frame.c (make_frame): Initialize pools.
15534
15535Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
15536
427ec082 15537 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
15538 line moving algorithm has no intermediate steps.
15539 (do_scrolling): Ditto.
15540
15541 * Makefile.in (alloc.o): Add dependency dispextern.h.
15542
15543 * alloc.c: Include dispextern.h for glyph definitions.
15544
15545 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
15546 is legal, return 0 otherwise.
15547
15548 * window.h: Add comment that windows are marked specially.
15549
15550 * alloc.c (mark_object): Mark windows specially.
15551
15552
15553Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
15554
15555 * dispextern.h (struct glyph): Add member OBJECT
15556 referencing a Lisp object from which a glyph was drawn.
15557 Member TEXT_POSITION renamed POSITION.
15558 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
15559
15560 * alloc.c: Include dispextern.h
15561 (mark_object): Mark objects referenced from glyphs.
15562
f28eba7b 15563 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
15564
15565 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
15566 (do_scrolling): Ditto.
15567
427ec082 15568 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
15569 DECODE_MODE_SPEC_BUFFER added.
15570
15571 * window.h: TEMP_MATRIX removed.
15572
15573 * scroll.c: OPHYS_LINES removed.
15574
15575 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
15576 FRAME_PTR -> struct frame *.
15577
15578 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
15579 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15580
15581 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
15582 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15583
15584 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
15585 (do_verify_charstarts): Removed.
15586
15587 * frame.c (Fmake_terminal_frame): Adjust glyphs.
15588 (Fdelete_frame): Free glyphs.
15589 (make_frame): Initialize matrix fields in frame.
15590
f28eba7b 15591 * config.in (PROTO): Added.
26901792 15592
f28eba7b 15593 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
15594
15595 * window.c (Fdelete_window): Free window matrices.
15596 (Fset_window_configuration): Ditto.
15597 (Fdelete_window): Adjust glyphs.
15598 (Fsplit_window): Ditto.
15599 (change_window_height): Ditto.
15600 (Fset_window_configuration): Ditto.
15601 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
15602 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
15603
15604 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
15605
15606 * window.c: Include dispextern.h
15607
15608 * scroll.c (do_scrolling): Use new glyphs.
15609 (do_direct_scrolling): Ditto.
15610
15611 * xdisp.c: Some function prototypes.
15612 (redisplay_internal): Don't do anything if matrices not yet set.
15613 (redisplay_internal): Use new glyphs.
15614 (try_window_id): Ditto.
15615 (copy_part_of_rope): Ditto.
15616 (display_text_line): Ditto.
15617 (display_menu_bar): Ditto.
15618 (display_mode_line): Ditto.
15619 (display_string): Ditto.
15620
15621 * xterm.c: Prototypes for some local functions.
15622 (dumpglyphs): Use new glyphs.
15623 (XTwrite_glyphs): Ditto.
15624 (dumprectangle): Ditto.
15625 (note_mouse_highlight): Ditto.
15626 (fast_find_position): Ditto.
15627 (show_mouse_face): Ditto.
15628 (x_draw_single_glyph): Ditto.
15629 (x_display_bar_cursor): Ditto.
15630 (x_display_box_cursor): Ditto.
15631 (x_new_font): Adjust glyphs when font change.
15632
15633 * term.c (clear_end_of_line): Use new glyphs.
15634 (write_glyphs): Ditto.
15635 (insert_glyphs): Ditto.
15636
15637 * Makefile.in (term.o): term.c depends on dispextern.h
15638
15639 * term.c: Include dispextern.h
15640
15641 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 15642 removed, new inserted.
26901792
DL
15643 (line_hash_code): Use new glyphs.
15644 (line_draw_cost): Ditto
15645 (cancel_line): Ditto
15646 (clear_frame_records): Ditto.
15647 (init_desired_glyphs): Ditto.
15648 (get_display_line): Ditto
15649 (scroll_frame_lines): Ditto.
15650 (preserve_other_columns): Ditto.
15651 (adjust_window_charstarts): Ditto.
15652 (cancel_my_columns): Ditto.
15653 (direct_output_for_insert): Ditto.
15654 (update_frame): Ditto.
15655 (quit_error_check): Made empty.
15656 (scrolling): Use new glyphs.
15657 (count_blanks): Ditto.
15658 (count_match): Ditto.
15659 (update_line): Ditto.
15660 (init_display): Adjust glyphs initially.
15661 (change_frame_size_1): Adjust glyphs.
15662
15663 * dispextern.h: Old glyphs removed, new added.
15664
15665 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
15666
15667 * xterm.h: Prototype for min_char_bounds.
15668
15669 * window.h (struct window): Remove old glyphs, add new.
15670
15671 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 15672
26901792
DL
156731999-07-20 Dave Love <fx@gnu.org>
15674
15675 * buffer.c (syms_of_buffer): Make
15676 default-enable-multibyte-characters a user variable.
15677
156781999-07-14 Richard Stallman <rms@gnu.org>
15679
15680 * Version 20.4 released.
15681
156821999-07-14 Richard Stallman <rms@gnu.org>
15683
15684 * filelock.c (lock_file): Do nothing if purifying.
15685
156861999-07-10 Richard Stallman <rms@gnu.org>
15687
15688 * xterm.c (x_display_bar_cursor): Use the cursor-color
15689 to display the bar, not the cursor foreground pixel.
15690
156911999-07-09 Andrew Innes <andrewi@gnu.org>
15692
15693 * w32console.c (w32_use_full_screen_buffer): New variable.
15694 (syms_of_ntterm): Register it.
15695 (initialize_w32_display): Set initial frame size accordingly,
15696 respecting the LINES and COLUMNS environment variables if set.
15697
15698 * w32inevt.c (w32_console_read_socket): Use it.
15699
157001999-07-07 Kenichi Handa <handa@etl.go.jp>
15701
15702 * callproc.c (Fcall_process): Decide coding system for decoding
15703 after we set to the target buffer. If the output goes to a
15704 unibyte buffer, suppress character code conversion.
15705
15706 * fileio.c (Finsert_file_contents): If reading into a unibyte
15707 buffer, suppress character code conversion.
15708
15709 * process.c (create_process): If the output goes to a unibyte
15710 buffer, suppress character code conversion.p
15711
157121999-07-07 Andreas Schwab <schwab@gnu.org>
15713
15714 * xdisp.c (line-number-display-limit): Doc fix.
15715
157161999-07-05 Richard Stallman <rms@gnu.org>
15717
15718 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
15719 (Fcall_process_region): Likewise.
15720
157211999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
15722
15723 * callproc.c (init_callproc): Set exec_directory if
15724 installation_directory is non-nil, without a test of exec_path.
15725
157261999-07-01 Andrew Innes <andrewi@gnu.org>
15727
15728 * w32xfns.c (drain_message_queue): New function.
15729
15730 * w32term.h (drain_message_queue): Add extern.
15731
15732 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
15733 of WaitForMultipleObjects when user input is allowed, so we can
15734 handle incoming window messages. Call drain_message_queue when
15735 there are messages waiting; this ensures that windows created
15736 indirectly from the lisp thread get processed properly, and don't
15737 hang other applications by failing to respond to broadcasts.
15738
157391999-07-01 Andreas Schwab <schwab@gnu.org>
15740
15741 * callint.c (Fcall_interactively): Ignore first element of
15742 event-symbol-elements property.
15743
157441999-07-01 Richard Stallman <rms@gnu.org>
15745
15746 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
15747
157481999-07-01 Kenichi Handa <handa@etl.go.jp>
15749
15750 * minibuf.c (read_minibuf): Set the multibyteness of the
15751 minibuffer before inserting `initial' string.
15752
157531999-06-30 Richard Stallman <rms@gnu.org>
15754
15755 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
15756
157571999-06-29 Richard M. Stallman <rms@gnu.org>
15758
15759 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
15760 Move the handling of MALLOC_CHECK_ envvar here.
15761 (main): Moved from here.
15762
157631999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
15764
15765 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
15766 function, assigned to the global __malloc_initialize_hook pointer.
15767 (main): Move malloc_set_state call into malloc_initialize_hook
15768 so that it happens as early as possible.
15769
157701999-06-27 Richard M. Stallman <rms@gnu.org>
15771
15772 * keyboard.c (read_key_sequence): Properly reinitialize
15773 fkey_map after translating thru Vkey_translation_map.
15774 After translating thru Vfunction_key_map, don't reset
15775 keytrans-start to 0.
15776
157771999-06-24 Geoff Voelker <voelker@cs.washington.edu>
15778
15779 * w32.c (get_emacs_configuration): Use GetVersionEx to
15780 handle NT5.0 correctly. Include build number in configuration.
15781 w32heap.c (osinfo_cache): New variable.
15782 (cache_system_info): Initialize osinfo_cache.
15783 w32heap.h (osinfo_cache): Declare.
15784
157851999-06-24 Richard M. Stallman <rms@gnu.org>
15786
15787 * casefiddle.c (casify_object): Use make_multibyte_string
15788 if we casify a multibyte string.
15789
157901999-06-22 Ken'ichi Handa <handa@gnu.org>
15791
15792 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
15793 del_range_byte instead of del_range_1, set `inserted' to the
15794 number of characters actually inserted.
15795
157961999-06-17 Dave Love <fx@gnu.org>
15797
15798 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
15799
158001999-06-18 Paul Eggert <eggert@twinsun.com>
15801
15802 * filelock.c (BOOT_TIME_FILE): New macro.
15803 (get_boot_time): Use it instead of hardwiring the file name.
15804 Check BOOT_TIME_FILE only after inspecting the kernel directly.
15805
158061999-06-17 Dave Love <fx@gnu.org>
15807
15808 * xdisp.c (invalid_eol_type): Make it unsigned.
15809
158101999-06-17 Karl Heuer <kwzh@gnu.org>
15811
15812 * process.c (send_process): Delete unsafe/redundant assignment.
15813
158141999-06-17 Jason Rumney <jasonr@gnu.org>
15815
15816 * w32term.c (dumprectangle): Handle wide characters properly.
15817
158181999-06-16 Andrew Innes <andrewi@gnu.org>
15819
15820 * s/ms-w32.h (strerror): Override the default implementation of
15821 strerror, so we can map winsock error codes.
15822
15823 * w32.c (sys_strerror): New function.
15824
15825 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
15826
158271999-06-15 Ken'ichi Handa <handa@gnu.org>
15828
15829 * buffer.c (syms_of_buffer): Don't make
15830 enable-multibyte-characters customizable.
15831
158321999-06-15 Richard M. Stallman <rms@gnu.org>
15833
15834 * editfns.c (Fuser_full_name): Doc fix.
15835
158361999-06-14 Tak Ota <ota@atc.sel.sony.com>
15837
15838 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
15839 (get_bitmap_with_cache): Check if CreateBitmap failed.
15840 Adjust cache size dynamically so cache is never larger than the
15841 system limit of GDI resources.
15842 Do cache clearing inline. Move global variables to local scope.
15843
15844
158451999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
15846
15847 * unexsgi.c (unexec): Dump the .rodata section from memory
15848 under IRIX6.5 in order to be able to unexec with gcc.
15849
158501999-06-11 Greg Hudson <ghudson@MIT.EDU>
15851
15852 * indent.c (compute_motion): Fix boundary case.
15853
158541999-06-11 Jason Rumney <jasonr@altavista.net>
15855
15856 * w32term.c (cancel_mouse_face): New function. See equiv
15857 changes to xterm.c on 1996-10-31.
15858 (x_set_window_size): Use cancel_mouse_face.
15859 (w32_read_socket): Use cancel_mouse_face.
15860 Update frame position when size is restored.
15861
158621999-06-04 Richard M. Stallman <rms@gnu.org>
15863
15864 * lread.c (Vuser_init_file): New variable.
15865 (syms_of_lread): Set up Lisp variable.
15866 (Fload): Store the file name there, if var was t before.
15867
158681999-06-04 Paul Eggert <eggert@twinsun.com>
15869
15870 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
15871 doesn't work if the system date is changed, or if the system
15872 is suspended. Look at the last-modified time of
15873 /var/run/random-seed instead.
15874
158751999-06-03 Ken'ichi Handa <handa@gnu.org>
15876
15877 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15878 japanese-jisx0208-1978 correctly.
15879
158801999-06-03 Andrew Innes <andrewi@gnu.org>
15881
15882 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
15883 as possible to be dumped, for safety.
15884
158851999-06-02 Ken'ichi Handa <handa@gnu.org>
15886
15887 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15888 latin-jisx0201 correctly.
15889
158901999-05-26 Ken'ichi Handa <handa@gnu.org>
15891
15892 * charset.h (Vcharset_table): Comment fixed.
15893
158941999-05-24 Richard Stallman <rms@gnu.org>
15895
15896 * coding.c (syms_of_coding): Doc fix.
15897
15898 * buffer.c (syms_of_buffer): Doc fix.
15899
15900 * filelock.c (lock_if_free): After deleting a stale lock,
15901 try again to lock the file.
15902
159031999-05-22 Andrew Innes <andrewi@gnu.org>
15904
15905 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
15906 console window size.
15907 (w32_console_read_socket): Call maybe_generate_resize_event
15908 whenever input events are received, since we don't get told when
15909 the window size changes (as opposed to the buffer size, which we
15910 don't care about).
15911
15912 * w32console.c (clear_frame): Remember that the window width might
15913 be smaller than the screen buffer width.
15914 (write_glyphs): Remove redundant variable attrs. Use
15915 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
15916
159171999-05-20 Andrew Innes <andrewi@gnu.org>
15918
15919 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
15920 loses focus.
15921
15922 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
15923 frame loses focus, and that mouse button state is reset. Ditto
15924 when the menu bar is activated.
15925
159261999-05-18 Richard Stallman <rms@gnu.org>
15927
15928 * abbrev.c (Fdefine_abbrev): Doc fix.
15929
159301999-05-13 Paul Eggert <eggert@twinsun.com>
15931
15932 * filelock.c: Fix performance bug on hosts with large
15933 /var/adm/wtmp files with no boot records.
15934
15935 (boot_time_initialized): New var.
15936 (init_filelock): Initialize it.
15937 (get_boot_time): Use it, instead of nonzero boot_time,
15938 to test whether boot_time is initialized.
15939 Don't invoke utmp routines when dumping.
15940
15941 (get_boot_time): First, try to get the boot time from the
15942 current utmp file, as this can be much faster. Don't try to
15943 get the boot time from utmp and/or wtmp more than once.
15944
15945 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
15946 New arg LATEST. All uses changed.
15947
159481999-05-15 Andrew Innes <andrewi@gnu.org>
15949
15950 * w32term.c (dumpglyphs): Use correct colours for drawing
15951 rectangles in place of missing fonts, and make them the right
15952 size.
15953
159541999-05-14 Dave Love <fx@gnu.org>
15955
15956 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
15957 non-nil.
15958
159591999-05-11 Andrew Innes <andrewi@gnu.org>
15960
15961 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
15962 definition.
15963 (w32_wnd_proc): Reinstall debugging output.
15964 (w32_wnd_proc): Reinstall SetForegroundWindow change.
15965 (syms_of_w32fns): Reinstall new initializer for
15966 Vw32_phantom_key_code.
15967
15968 * w32fns.c (x_to_w32_charset): Do partial matching of charset
15969 names for most non-European charsets, to cope with wildcards or
15970 missing spec dates.
15971 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
15972 to avoid deadlock when activating the menu bar.
15973
159741999-05-10 Ken'ichi Handa <handa@gnu.org>
15975
15976 * search.c (boyer_moore): Get charset base value of `untranslated'
15977 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
15978
159791999-05-10 Andreas Schwab <schwab@gnu.org>
15980
15981 * fileio.c (Fread_file_name): Correct handling of dollars in file
15982 names. Protect dollars in strings put on the file-name-history.
15983 Substitute homedir by `~' also in default_filename.
15984
15985 * xdisp.c (try_window_id): Fix computation of tab_offset when
15986 backing up over a character that is splitted across lines.
15987
159881999-05-08 Kenichi HANDA <handa@etl.go.jp>
15989
15990 * coding.c (code_convert_region): If eol format is inconsistent,
15991 change coding->symbol to the sibling coding system of Unix like
15992 eol format.
15993
159941999-05-09 Richard M. Stallman <rms@gnu.org>
15995
15996 * s/irix5-2.h (NO_WTMP_FILE): Define it.
15997
15998 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
15999
160001999-05-05 Andrew Innes <andrewi@gnu.org>
16001
16002 * w32fns.c (w32_strict_painting): New variable.
16003 (w32_wnd_proc): Use it to select repaint rules.
16004 (syms_of_w32fns): Defvar it.
16005
160061999-05-04 Andrew Innes <andrewi@gnu.org>
16007
16008 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
16009 charsets to the standard Windows charset for Japanese.
16010
160111999-05-04 Ken'ichi Handa <handa@gnu.org>
16012
16013 * xterm.c (x_load_font): Fix typo (`>' -> `=').
16014
16015 * ccl.h (struct ccl_program): New member stack_idx.
16016
16017 * ccl.c (ccl_prog_stack_struct): Declare it as static.
16018 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
16019 before returing.
16020 (setup_ccl_program): Initialize ccl->stack_idx to 0.
16021
160221999-05-03 Jason Rumney <jasonr@altavista.net>
16023
16024 * w32term.c (dumpglyphs): Always fill background for italic fonts.
16025
160261999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
16027
16028 * dired.c (make_time): Make argument type be time_t.
16029
160301999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
16031
16032 * msdos.c (unibyte_display_via_language_environment): Add extern.
16033
83c8f461 160341999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
16035
16036 * xdisp.c (display_text_line): Convert unibyte char to multibyte
16037 if unibyte_display_via_language_environment is set.
16038 (unibyte_display_via_language_environment):
16039 Variable moved from xfns.c and elsewhere.
16040 (syms_of_xfns): Set up Lisp var.
16041
16042 * xfns.c (unibyte_display_via_language_environment):
16043 Variable moved to xdisp.c.
16044 (syms_of_xfns): Don't set up Lisp var here.
16045
16046 * msdos.c (unibyte_display_via_language_environment):
16047 Variable moved to xdisp.c.
16048 (syms_of_msdos): Don't set up Lisp var here.
16049
16050 * w32fns.c (unibyte_display_via_language_environment):
16051 Variable moved to xdisp.c.
16052 (syms_of_w32fns): Don't set up Lisp var here.
16053
160541999-05-02 Andrew Innes <andrewi@gnu.org>
16055
16056 * s/ms-w32.h (HAVE_FSYNC): New macro.
16057 (fsync): Map to _commit.
16058 (ftruncate): Map to _chsize.
16059
16060 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
16061 for ASCII, if enabled, to avoid memory allocation overhead for
16062 implicit Unicode conversion. Also, recognize that ASCII and
16063 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
16064 already contains the Unicode characters in that case.
16065 (construct_drag_n_drop): Remove old code that was
16066 trashing the drop location.
16067
16068 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16069 nlines to encoding_buffer_size (real bug was in a ccl program in
16070 lisp/international/coding.el).
16071
16072 * w32reg.c (w32_get_string_resource): Check for name in current
16073 user area, and if not found look in the local machine area.
16074
16075 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16076 (Fw32_shell_execute): New function; used to support browse-url.
16077 (syms_of_w32fns): Register it.
16078 (w32_load_system_font): Force max width to be average
16079 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16080 slowdown.
16081 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16082 already defined.
16083 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16084
16085 * unexw32.c (get_section_info): Dump back the entire EMDATA
16086 section if we can put Emacs' initialized data in a separate
16087 section, otherwise use the my_begdata/my_edata method.
16088
16089 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16090
16091 * coding.c (decode_eol): Set produced/consumed values to zero if
16092 src_bytes is <= 0 on entry.
16093
160941999-05-02 Jason Rumney <jasonr@altavista.net>
16095
16096 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16097 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16098 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16099 field in frame.
16100 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16101 (dumprectangle): Take into account the width of a left-side
16102 scroll bar.
16103
16104 * w32proc.c (sys_kill): Attach to current foreground thread
16105 when grabbing focus; necessary on NT 5.0.
16106
16107 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16108 GetUpdateRect rather than BeginPaint.
16109 (w32_wnd_proc): Attach to current foreground thread
16110 when grabbing focus; necessary on NT 5.0.
16111 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16112 debugging display messages.
16113 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16114 false matching.
16115
161161999-05-02 Kenichi HANDA <handa@etl.go.jp>
16117
16118 * coding.c (setup_raw_text_coding_system): Call
16119 setup_coding_system to initialize the fields of struct
16120 coding_system correctly.
427ec082 16121
26901792
DL
161221999-04-26 Kenichi HANDA <handa@etl.go.jp>
16123
16124 * xterm.c (x_list_fonts): Fix previous change.
16125
161261999-04-26 Richard Stallman <rms@gnu.org>
16127
16128 * config.in (HAVE_LIBXP): Add #undef.
16129 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16130
161311999-04-12 Ken'ichi Handa <handa@gnu.org>
16132
16133 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16134 by them.
16135
161361999-04-12 Karl Heuer <kwzh@gnu.org>
16137
16138 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16139
161401999-04-11 Ken'ichi Handa <handa@gnu.org>
16141
16142 * fontset.c (Fset_fontset_font): Fix previous change.
16143
161441999-04-09 Ken'ichi Handa <handa@gnu.org>
16145
16146 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16147 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16148
161491999-04-08 Richard Stallman <rms@gnu.org>
16150
16151 * process.c (Faccept_process_output): Check validity of PROCESS.
16152
161531999-04-08 Eli Zaretskii <eliz@gnu.org>
16154
16155 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16156
161571999-04-07 Richard Stallman <rms@gnu.org>
16158
16159 * xfns.c (x_set_font): Fix error message.
16160
16161 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16162 (Fnew_fontset, Fset_fontset_font): Check for them here.
16163 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16164 Fix error message syntax.
16165
16166 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16167 from the base buffer.
16168 (Fset_buffer_multibyte): Copy new multibyte status
16169 into the buffer's indirect buffers.
16170
161711999-04-07 Ken'ichi Handa <handa@gnu.org>
16172
16173 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16174 tail.
16175
161761999-04-06 Richard Stallman <rms@gnu.org>
16177
16178 * dired.c (Ffile_attributes): Doc fix.
16179
16180 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16181 Convert 0200 to meta only in a unibyte string.
16182 (Fkey_description): Likewise.
16183
16184 * eval.c (do_autoload): Preserve match data.
16185
161861999-04-06 Kenichi HANDA <handa@etl.go.jp>
16187
16188 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16189 encode_coding to avoid carryover.
16190
16191 * coding.c: Add comments for decode_coding and encode_coding.
16192
16193 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16194 a composite character by skipping its leading code.
16195 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16196 correctly.
16197
16198 * coding.c: Add comments for decode_coding and encode_coding.
16199
16200 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16201 a composite character by skipping its leading code.
16202 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16203 correctly.
16204
162051999-04-06 Eli Zaretskii <eliz@gnu.org>
16206
16207 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16208 table was used.
16209 (jp_kbd_translate_table): Support C-\.
16210 (it_kbd_translate_table): Map `>' correctly.
16211 (it_keyboard): Add `>'.
16212
162131999-04-06 Richard Stallman <rms@gnu.org>
16214
16215 * intervals.c (graft_intervals_into_buffer): Turn off
16216 inhibit_modification_hooks around calling Fset_text_properties.
16217
162181999-04-05 Kenichi HANDA <handa@etl.go.jp>
16219
16220 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16221 glyphs.
16222
162231999-04-05 Eli Zaretskii <eliz@gnu.org>
16224
16225 * msdos.c (jp_kbd_translate_table): Fix last change.
16226
162271999-04-04 Eli Zaretskii <eliz@gnu.org>
16228
16229 * msdos.c (struct kbd_translate): New struct, for key translation
16230 tables private to certain national keyboard layouts.
16231 (struct dos_keyboard_map): Add a pointer to a private translation
16232 table.
16233 (jp_kbd_translate_table): Private table for the Japanese
16234 keyboard.
16235 (jp_keyboard): Japanese keyboard layout.
16236 (it_kbd_translate_table): Private table for the Italian keyboard.
16237 (it_keyboard): Use it_kbd_translate_table.
16238 (keyboard_layout_list): Add the Japanese keyboard.
16239 (dos_rawgetc): Use the keyboard-private translation table, if
16240 available.
16241 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16242
162431999-04-02 Kenichi HANDA <handa@etl.go.jp>
16244
16245 * xdisp.c (redisplay_window): When we call compute_motion with
16246 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16247 (display_text_line): Stop the loop for processing overlay strings
16248 when we reach the right edge of the window.
16249
83c8f461 162501999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16251
16252 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16253 let the data control whether string is unibyte.
16254
162551999-03-30 Richard M. Stallman <rms@gnu.org>
16256
16257 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16258 (pop_kbd_macro): Restore the saved real_this_command.
16259 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16260
162611999-03-26 Richard M. Stallman <rms@gnu.org>
16262
16263 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16264 if buffer-file-name is nil.
16265
162661999-03-25 Jason Rumney <jasonr@altavista.net>
16267
16268 * w32select.c (Fw32_set_clipboard_data): Take into account line
16269 ends when calculating clipboard storage needed for non-ASCII text.
16270
162711999-03-25 Andrew Innes <andrewi@gnu.org>
16272
16273 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16274 (epaths.h): Renamed from paths.h.
427ec082
SS
16275 (clean):
16276 ($(BLD)\filelock.obj):
16277 ($(BLD)\lread.obj):
26901792
DL
16278 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16279
162801999-03-23 Ken'ichi Handa <handa@gnu.org>
16281
16282 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16283 ENCODE_ISO_CHARACTER for the previous change on this macro.
16284
162851999-03-23 Kenichi Handa <handa@etl.go.jp>
16286
16287 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16288 eoltype correctly for backward compatibility.
16289
162901999-03-20 Kenichi HANDA <handa@etl.go.jp>
16291
16292 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16293 invalid, produce the buffer internal byte sequence without encoding.
16294
162951999-03-19 Karl Heuer <kwzh@gnu.org>
16296
16297 * editfns.c (Fformat): Accept %i format.
16298
162991999-03-17 Karl Heuer <kwzh@gnu.org>
16300
16301 * filelock.c (get_boot_time): Test tempname, not filename.
16302
163031999-03-17 Jason Rumney <jasonr@altavista.net>
16304
e5619f6b
JR
16305 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16306 speed display.
16307
16308 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16309 speed display.
16310 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16311 New functions.
16312 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16313 Use bitmap cache.
26901792
DL
16314
16315 * w32fns.c (enum_font_cb2): Set the font height to be the
16316 character height, not the cell height.
16317 (Fw32_select_font): Initialize font dialog with current default font.
16318 (Vw32_system_coding_system): New variable.
16319 (w32_strict_filenames): Add comment.
16320 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16321 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16322 (syms_of_w32fns): Add w32-system-coding-system.
16323
163241999-03-15 Richard M. Stallman <rms@gnu.org>
16325
16326 * xterm.c (XTread_socket) <ConfigureNotify>:
16327 If cursor pos is outside the new frame size, mark cursor as off.
16328
163291999-03-14 Ken'ichi Handa <handa@gnu.org>
16330
16331 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16332
16333 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16334 by them.
16335
163361999-03-14 Richard M. Stallman <rms@gnu.org>
16337
16338 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16339 at beginning.
16340
163411999-03-14 Jason Rumney <jasonr@altavista.net>
16342
16343 * w32fns.c (w32_strict_fontnames): New variable.
16344 (Fx_create_frame): Formatting fix.
16345 (w32_load_system_font): Keep trying to load non-existant font
16346 if w32_strict_fontnames is nil. Formatting fix.
16347 (syms_of_w32fns): Add w32-strict-fontnames.
16348
16349 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16350 (dumpglyphs): Formatting fixes.
16351
163521999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16353
16354 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16355
163561999-03-10 Karl Heuer <kwzh@gnu.org>
16357
16358 * puresize.h (BASE_PURESIZE): Increase to 505000.
16359
163601999-03-09 Richard M. Stallman <rms@gnu.org>
16361
16362 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16363
16364 * filelock.c (init_filelock): New function.
16365
163661999-03-09 Dave Love <fx@gnu.org>
16367
16368 * fileio.c (Ffile_directory_p): Doc fix.
16369
83c8f461 163701999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16371
16372 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16373
163741999-03-08 Richard M. Stallman <rms@gnu.org>
16375
16376 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16377 to only the part that uses get_boot_time_1.
16378
163791999-03-07 Dave Love <fx@gnu.org>
16380
16381 * fileio.c (Finsert_file_contents): Use xfree.
16382
163831999-03-06 Kenichi Handa <handa@etl.go.jp>
16384
16385 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16386 term.o, xselect.o): Depend on ccl.h.
16387
163881999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16389
16390 * makefile.nt: Remove common multiple file compilation commands.
16391
163921999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16393
16394 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16395 newlines added when the arg NO-LINE-BREAK is nil.
16396
163971999-03-04 Karl Heuer <kwzh@gnu.org>
16398
16399 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16400
16401 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16402
164031999-03-04 Dave Love <fx@gnu.org>
16404
16405 * term.c (term_init): Use xmalloc, not malloc.
16406
16407 * callproc.c (Fcall_process): Use xmalloc, xfree.
16408
164091999-03-03 Andreas Schwab <schwab@gnu.org>
16410
16411 * eval.c (Fdefconst): Doc fix.
16412
164131999-03-01 Kenichi Handa <handa@etl.go.jp>
16414
16415 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16416
164171999-03-01 Eli Zaretskii <eliz@gnu.org>
16418
16419 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16420
164211999-02-28 Richard M. Stallman <rms@gnu.org>
16422
16423 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16424
16425 * cmds.c (internal_self_insert): Calculate column properly
16426 in overwrite-of-tab case.
16427
164281999-02-27 Andreas Schwab <schwab@gnu.org>
16429
16430 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16431 malloc in glibc 2.1.
16432
164331999-02-26 Richard Stallman <rms@gnu.org>
16434
16435 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16436
16437 * epaths.in: Renamed from paths.in.
16438 This avoids a conflict with a system header file paths.h on GNU/Linux.
16439
16440 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16441 Use epaths.h istead of paths.h.
16442
164431999-02-26 Andreas Schwab <schwab@gnu.org>
16444
16445 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16446 malloc.
16447
164481999-02-25 Dave Love <fx@gnu.org>
16449
16450 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16451
164521999-02-25 Richard Stallman <rms@gnu.org>
16453
16454 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16455 (WTMP_FILE): Default definition in case not defined.
16456 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16457
26901792
DL
164581999-02-25 Ken'ichi Handa <handa@gnu.org>
16459
16460 * keymap.c (push_key_description): If enable-multibyte-characters
16461 is nil and C is single byte, push C as is.
16462
164631999-02-24 Kenichi Handa <handa@etl.go.jp>
16464
16465 * keymap.c (push_key_description): If enable-multibyte-characters
16466 is non-nil, try to convert unibyte character to multibyte. For
16467 invalid multibyte character, show all bits by octal form.
16468 (Fsingle_key_description): Check the validity of charset for a
16469 generic character.
16470
164711999-02-23 Richard M. Stallman <rms@gnu.org>
16472
16473 * fileio.c (Ffile_regular_p): Undo previous change.
16474
16475 * eval.c (Fdefconst): Doc fix.
16476
16477 * filelock.c (get_boot_time): Don't use BUFSIZ.
16478
164791999-02-22 Andrew Innes <andrewi@gnu.org>
16480
16481 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16482 (EXTRA_LINK): Do version test with strings.
16483
164841999-02-22 Andreas Schwab <schwab@gnu.org>
16485
16486 * fns.c (Fbase64_encode_string): Fix last change.
16487
16488 * termhooks.h (event_kind): Add user_signal.
16489
16490 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16491 (syms_of_keyboard): Initialize them.
16492 (lispy_user_signals): New variable.
16493 (make_lispy_event): Handle user_signal event type.
16494
16495 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16496 (syms_of_emacs): Don't initialize them.
16497 (handle_USR1_signal, handle_USR2_signal): Set event type to
16498 user_signal instead of non_ascii_keystroke, and use plain integers
16499 as code instead of Lisp symbols.
16500
165011999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16502
16503 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16504
165051999-02-21 Richard Stallman <rms@gnu.org>
16506
16507 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16508
16509 * print.c (print_error_message): Don't crash if (cdr data)
16510 is not a list.
16511
165121999-02-21 Eli Zaretskii <eliz@gnu.org>
16513
16514 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16515
165161999-02-20 Andrew Innes <andrewi@gnu.org>
16517
16518 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16519 run, since size can vary from run to run.
16520
16521 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16522 data is included, to enable profiling.
16523 ($(EMACS)): Map file not needed for emacs.exe.
16524
16525 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16526 as malloc before calling uninterrupt_malloc, for consistency.
16527 This also enables profiling to work on WINDOWSNT.
16528
165291999-02-18 Richard Stallman <rms@gnu.org>
16530
16531 * Makefile.in (emacs.o): Depend on termhooks.h.
16532 (filelock.o): Depend on systime.h.
16533
165341999-02-18 Ken'ichi Handa <handa@gnu.org>
16535
16536 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
16537 (Fdecode_big5_char): Likewise.
16538
165391999-02-17 Richard Stallman <rms@gnu.org>
16540
16541 * insdel.c (adjust_markers_for_replace): When doing an insertion
16542 (replacing a region of zero length), handle markers at the
16543 insertion point properly.
16544
165451999-02-17 Andrew Innes <andrewi@gnu.org>
16546
16547 * w32fns.c (Vw32_quit_key): New variable.
16548 (post_character_message): Use it.
16549 (syms_of_w32fns): DEFVAR it.
16550
165511999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
16552
16553 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
16554
165551999-02-16 Richard Stallman <rms@gnu.org>
16556
16557 * filelock.c (within_one_second): New function.
16558 (current_lock_owner): Use that.
16559 (get_boot_time): Use /proc/uptime if available.
16560 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
16561 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 16562
26901792
DL
165631999-02-16 Richard Stallman <rms@gnu.org>
16564
16565 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16566 (syms_of_emacs): Init and staticpro them.
16567 (handle_USR1_signal): Don't run any code, just queue up an event.
16568 (handle_USR2_signal): Likewise.
16569
165701999-02-16 Eli Zaretskii <eliz@gnu.org>
16571
16572 * dired.c (Ffile_attributes): If the file's size doesn't fit in
16573 an integer, return it as a float. Doc string fixed.
16574
165751999-02-16 Richard Stallman <rms@gnu.org>
16576
16577 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16578 (syms_of_emacs): Init and staticpro them.
16579 (handle_USR1_signal): Don't run any code, just queue up an event.
16580 (handle_USR2_signal): Likewise.
16581
165821999-02-15 Kenichi Handa <handa@etl.go.jp>
16583
16584 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
16585 ASCII correctly. Signal error on invalid characters.
16586 (Fdecode_big5_char, Fencode_big5_char): Likewise.
16587
165881999-02-15 Eli Zaretskii <eliz@gnu.org>
16589
16590 * w16select.c (get_clipboard_data): Work around a bug in Windows95
16591 DOS box which doubles the reported size of text in the clipboard.
16592
165931999-02-15 Kenichi Handa <handa@etl.go.jp>
16594
16595 * coding.c (decode_coding_iso2022): Don't set
16596 coding->composed_chars to 0 here.
16597 (setup_coding_system): Set coding->composed_chars to 0 here.
16598
165991999-02-10 Richard Stallman <rms@gnu.org>
16600
16601 * fileio.c (Ffile_regular_p): Use lstat.
16602
166031999-02-09 Richard Stallman <rms@gnu.org>
16604
16605 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
16606 (unexec): Test this instead of specific systems.
16607
16608 * m/macppc.h: New file.
16609
166101999-02-08 Dave Love <fx@gnu.org>
16611
16612 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
16613
166141999-02-08 Ken'ichi Handa <handa@gnu.org>
16615
16616 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
16617 should be set to coding->produced.
16618
166191999-02-07 Paul Fisher <rao@gnu.org>
16620
16621 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
16622 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
16623
166241999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16625
16626 * editfns.c (Fformat): Doc fix.
16627
166281999-02-06 Richard Stallman <rms@gnu.org>
16629
16630 * process.c (syms_of_process): defsubr it.
16631 (Fprocess_running_child_p): New function.
16632
166331999-02-05 Andrew Innes <andrewi@gnu.org>
16634
16635 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
16636 recording drop position.
16637
166381999-02-05 Ken'ichi Handa <handa@gnu.org>
16639
16640 * coding.c (encode_coding_iso2022): Before writing out an invalid
16641 code, reset graphic planes and registers if necessary.
16642
16643 * term.c (encode_terminal_code): Fix previous change.
16644
166451999-02-04 Eli Zaretskii <eliz@gnu.org>
16646
16647 * w16select.c (last_clipboard_text, clipboard_storage_size): New
16648 static variables.
16649 (set_clipboard_data): Save a copy of the text we put into
16650 clipboard in last_clipboard_text.
16651 (get_clipboard_data): If the clipboard text is identical to what
16652 last_clipboard_text holds, pretend there's no data in the clipboard.
16653
166541999-02-03 Richard Stallman <rms@gnu.org>
16655
16656 * s/gnu.h (NLIST_STRUCT): Add #undef.
16657
166581999-02-03 Eli Zaretskii <eliz@gnu.org>
16659
16660 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
16661 encoded, set its pointer and size as returned by encode_coding.
16662
166631999-02-02 Ken'ichi Handa <handa@gnu.org>
16664
16665 * fns.c (Fset_char_table_default): To handle the case that CH is
16666 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
16667
166681999-02-02 Andrew Innes <andrewi@gnu.org>
16669
16670 * w32fns.c (syms_of_w32fns): Change default value of
16671 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
16672 some mice works properly.
16673
166741999-02-02 Eli Zaretskii <eliz@gnu.org>
16675
16676 * w16select.c (set_clipboard_data): Correctly null-terminate the
16677 string to be put into the Windows clipboard. Use xbuf_addr.
16678
166791999-02-01 Richard Stallman <rms@gnu.org>
16680
16681 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
16682
166831999-01-31 Richard Stallman <rms@gnu.org>
16684
16685 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
16686 then don't send the signal if the shell owns the terminal.
16687 (Finterrupt_process): Doc change.
427ec082 16688
26901792
DL
166891999-01-31 Andrew Innes <andrewi@gnu.org>
16690
16691 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
16692 (copy_executable_and_dump_data): Use it to ensure alignment slop
16693 is zeroed.
16694
166951999-01-30 Andrew Innes <andrewi@gnu.org>
16696
16697 * w32.c (init_environment): Change argv[0] to contain the full
16698 path to Emacs.
16699
16700 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
16701
167021999-01-29 Ken'ichi Handa <handa@gnu.org>
16703
16704 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
16705 returned by x_new_font (the resolved one) but use the font name
16706 set in the fontset specification.
16707 (x_load_font): For the height of font, if normarl ascent and
16708 descent value are larger than those in max_bounds field, use the
16709 former.
16710
167111999-01-28 Eli Zaretskii <eliz@gnu.org>
16712
16713 * xdisp.c (decode_mode_spec_coding): Fix previous change.
16714
167151999-01-27 Geoff Voelker <voelker@cs.washington.edu>
16716
16717 * makefile.nt: Use full path to temacs.exe when dumping.
16718
167191999-01-27 Jason Rumney <jasonr@altavista.net>
16720
16721 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
16722 list was reliable.
16723 (enum_fontex_cb1, enum_fontex_cb2): New functions.
16724 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
16725 (w32_list_synthesized_fonts): New function.
16726 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
16727 available instead of EnumFontFamilies. List synthesized fonts if
16728 Vw32_enable_italics is non-nil.
427ec082 16729
26901792
DL
167301999-01-27 Richard Stallman <rms@gnu.org>
16731
16732 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
16733 Don't complain if ttcompat does not exist.
16734
16735 * w32fns.c (x_set_frame_parameters): gcpro as needed.
16736
167371999-01-27 Andrew Innes <andrewi@gnu.org>
16738
16739 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
16740 the lwindow, rwindow and apps keys could not be used as function
16741 keys, because they were being passed to TranslateMessage which
16742 ignores them. Also, key was being changed to SPC.
16743
16744 * makefile.nt: Do make version comparison as strings.
16745
167461999-01-27 Eli Zaretskii <eliz@gnu.org>
16747
16748 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
16749 strings, not characters.
16750
16751 * coding.h: Likewise.
16752
16753 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
16754 string.
16755
167561999-01-26 Dave Love <fx@gnu.org>
16757
16758 * emacs.c (main): Up-date copyright.
16759
167601999-01-25 Dave Love <fx@gnu.org>
16761
16762 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16763
167641999-01-25 Andreas Schwab <schwab@gnu.org>
16765
16766 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
16767
167681999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
16769
16770 * xfns.c (x_set_frame_parameters): gcpro as needed.
16771
16772 * window.c (Fset_window_point): If WINDOW is selected but the
16773 current buffer is not its buffer, don't use Fgoto_char.
16774
167751999-01-22 Richard M. Stallman <rms@gnu.org>
16776
16777 * syntax.c (scan_sexps_forward): Delete duplicate code
16778 to set prev_from_syntax, above start of main loop.
16779 At startinstring, check syntax when checking for a match.
16780
167811999-01-22 Jason Rumney <jasonr@altavista.net>
16782
16783 * w32bdf.c: New file.
16784 * w32bdf.h: New file.
16785 * makefile.nt: Add w32bdf.c and w32bdf.h.
16786
16787 * w32gui.h: Include w32bdf.h.
16788 (W32FontStruct) Add bdf element.
16789
16790 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
16791 Support BDF fonts.
16792
16793 * w32term.c (W32_TEXTOUT): New macro.
16794 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
16795 Simplify baseline calculation. Detect SJIS by font, not glyph.
16796 Call SetTextAlign.
16797 (syms_of_w32term): Remove "jisx0212-sjis" from
16798 w32-charset-to-codepage-alist.
16799 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
16800 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 16801
26901792
DL
16802 * w32fns.c (Vw32_bdf_filename_alist): New variable.
16803 (x_destroy_bitmap): Returns void not int.
16804 (x_set_border_pixel): Returns void.
16805 (w32_load_bdf_font): New function.
16806 (w32_load_system_font): New function, was w32_load_font. List
16807 fonts before loading. Explicitly set encoding for SJIS fonts.
16808 Set default_ascent to 0 as comment indicates.
16809 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
16810 (w32_unload_font): Support BDF fonts.
16811 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
16812 Autodetect whether to use koi8-r instead of iso8859-5.
16813 Associate "ksc5601.1987" with HANGUEL_CHARSET.
16814 Associate "ksc5601.1992" with JOHAB_CHARSET.
16815 (x_to_w32_charset): Make consistent with w32_to_x_charset.
16816 (w32_to_x_font): Add resolution.
16817 (x_to_w32_font): Use font resolution to calculate height if supplied.
16818 (w32_font_match): Handle wildcards anywhere within field.
16819 (enumfont_t): Remove unused head pointer.
16820 (enum_font_cb2): Dereference elfLogFont.
16821 (w32_list_bdf_fonts): New function.
16822 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
16823 valid frame. Remove MessageBox. Support BDF fonts.
16824 (Fw32_find_bdf_fonts): New function.
16825 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
16826 Sw32_find_bdf_fonts.
16827
168281999-01-21 Andrew Innes <andrewi@gnu.org>
16829
16830 * makefile.nt (temacs): Use del to delete file, not rm.
16831
168321999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
16833
16834 * keyboard.c (read_key_sequence): Fix previous change.
16835
16836 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
16837 as the same. Treat "myname:0" as the same as those two.
16838
168391999-01-19 Jason Rumney <jasonr@altavista.net>
16840
16841 * w32fns.c (x_to_w32_charset): Add iso8859-9.
16842 (w32_to_x_charset): Fix charset mappings.
16843
16844 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
16845 (dumpglyphs): Move definitions out of block containing goto.
16846 Remove redundant code for BIG5.
16847 Use w32_codepage_for_font instead of
16848 w32_codepage_for_charset. Add cast to int where float
16849 operation is assigned to int.
16850 (Vw32_charset_to_codepage_alist): New variable.
16851 (w32_codepage_for_charset): Removed.
427ec082
SS
16852 (w32_codepage_for_font): New function, replacing
16853 w32_codepage_for_charset.
26901792
DL
16854 (syms_of_w32term): Add and initialize
16855 w32-charset-to-codepage-alist.
16856
168571999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
16858
16859 * xselect.c (x_handle_selection_clear): Don't clear the
16860 selection if Emacs still owns it through a different display.
16861
168621999-01-17 Andrew Innes <andrewi@gnu.org>
16863
16864 * w32proc.c: (w32_executable_type): Relax the check to identify
16865 cygwin-compiled applications, because the exact dll name varies
16866 with release. Now only require the name to start "cygwin".
16867
16868 * w32heap.h: (ROUND_UP):
16869 (ROUND_DOWN): New macros.
16870 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16871 (init_heap): New extern.
16872 (data_region_size):
16873 (recreate_heap):
16874 (read_in_bss):
16875 (map_in_heap):
16876 (round_to_next):
16877 (w32_fatal_reload_error):
16878 (get_section_size): Obsolete externs removed.
16879
16880 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
16881 current process.
16882 (round_to_next): Obsolete function removed.
16883 (preload_heap_section): New variable.
16884 (data_region_size): Obsolete variable removed.
16885 (allocate_heap): Modified to determine end of static heap section
16886 used during preload, and use that as initial base address for
16887 dynamic heap instead of hard-coded value.
16888 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
16889 calls to commit or decommit pages when allocating from static heap
16890 section during preload.
16891 (recreate_heap): Obsolete function removed.
16892 (init_heap): New function to initialize internal sbrk heap
16893 variables. Uses static heap section during preload, otherwise
16894 calls allocate_heap to reserve a heap region dynamically.
16895 (round_heap): Use ROUND_UP macro instead of round_to_next.
16896
16897 * unexw32.c: Major rewrite to support cleaner method of dumping; a
16898 static "bss" section is used for heap space during preload, and
16899 bss data is now written to the proper section area when dumping.
16900 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16901 (heap_index_in_executable): Obsolete variable removed.
16902 (data_section): New variable.
16903 (data_start_va): Renamed to data_start.
16904 (data_start_file): Obsolete variable removed.
16905 (bss_section):
16906 (extra_bss_size):
16907 (bss_section_static):
16908 (bss_start_static):
16909 (bss_size_static):
16910 (extra_bss_size_static):
16911 (heap_section): New variables.
16912 (_start): Remove code based on old unexec method. Call init_heap
16913 to initialize sbrk heap.
16914 (close_file_data): Update size of file when closing, so that
16915 unexec doesn't have to work out exact size in advance.
16916 (get_bss_info_from_map_file):
16917 (get_section_size): Obsolete functions removed.
16918 (rva_to_section): Fix minor bug, and add a work-around for a bug
16919 in very old linkers.
16920 (offset_to_section):
16921 (relocate_offset): New functions.
16922 (OFFSET_TO_RVA):
16923 (RVA_TO_OFFSET):
16924 (RVA_TO_SECTION_OFFSET):
16925 (PTR_TO_RVA):
16926 (PTR_TO_OFFSET):
16927 (OFFSET_TO_PTR): New macros.
16928 (get_section_info): Modify to support new unexec method;
16929 determines address ranges in process that need dumping, and COFF
16930 sections where data will be dumped. Allows for static and global
16931 bss data to be in separate ranges. No longer relies on knowledge
16932 of section names.
16933 (copy_executable_and_dump_data_section): Renamed
16934 copy_executable_and_dump_data. Completely rewritten to copy
16935 executable section by section, so that raw data areas can be
16936 expanded to hold dumped data as necessary. Allows for bss data to
16937 be in same section as initialized data. Reduces size of static
16938 heap section to that used during preload.
16939 (dump_bss_and_heap):
16940 (w32_fatal_reload_error):
16941 (read_in_bss):
16942 (map_in_heap): Obsolete functions removed.
16943 (unexec): Rounds off preload heap to nearest page rather than
16944 virtual allocation unit. Modified to match other changes.
16945
16946 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
16947 data_region_size.
16948
16949 * makefile.nt: (TEMACS_TMP): New macro.
16950 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
16951 processor to add static heap section in support of new unexec.
16952
16953 * lastfile.c: Include config.h to pick up data layout pragmas.
16954 [WINDOWSNT]: Remove explicit pragma.
16955
169561999-01-12 Kenichi Handa <handa@etl.go.jp>
16957
16958 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
16959 correctly.
16960 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
16961
169621999-01-11 Dave Love <fx@gnu.org>
16963
16964 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16965
169661999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
16967
16968 * keyboard.c (read_key_sequence): In key-translation-map and
16969 function-key-map, handle symbol with array as fn def.
16970 In function-key-map, handle symbol with keymap as fn def,
16971 and autoloaded definitions.
427ec082 16972
26901792
DL
16973 * puresize.h (BASE_PURESIZE): Increment to 500000.
16974
16975 * print.c (Qtemp_buffer_setup_hook): New variable.
16976 (syms_of_print): Init and staticpro that.
16977 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
16978
169791999-01-11 Kenichi Handa <handa@etl.go.jp>
16980
16981 * insdel.c (del_range_1): Call signal_after_change.
16982 (del_range_byte): Likewise.
16983 (del_range_both): Likewise.
16984 (del_range_2): Don't call signal_after_change.
16985
16986 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
16987 Lisp code here.
16988
169891999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
16990
16991 * eval.c (find_handler_clause): If SIG is nil (memory full error),
16992 never run the debugger, and don't bother checking the args
16993 to see whether the debugger should be run.
16994
169951999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
16996
16997 * keyboard.c (read_key_sequence):
16998 Tell get_keyelt to look handle autoloads.
16999 Handle symbols defined as keymaps, and autoloaded keymaps.
17000
170011999-01-06 Kenichi Handa <handa@etl.go.jp>
17002
17003 * search.c (search_buffer): Fix previous change.
17004
170051999-01-06 Eli Zaretskii <eliz@gnu.org>
17006
17007 * w16select.c (set_clipboard_data): Terminate the text with a null
17008 character. Don't allow to put binary data into the clipboard.
17009 Return zero in case of success, 1 or 2 otherwise.
17010 (get_clipboard_data): Only bail out if the null character is in
17011 the last 32-byte chunk of clipboard data
17012 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
17013 they save binary data, print a message in the echo area saying the
17014 text was not put into the clipboard.
17015
17016 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
17017
170181999-01-06 Andreas Schwab <schwab@gnu.org>
17019
17020 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
17021 _BSD_SOURCE, the latter is always defined.
17022
170231999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
17024
17025 * fns.c (Frequire): Don't fail to unbind bindings.
17026
170271999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
17028
17029 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
17030
17031 * charset.c (Ffind_charset_region): Fix doc typo.
17032
170331998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
17034
17035 * msdos.c (IT_write_glyphs): Convert unibyte characters to
17036 multibyte in unibyte buffers only.
17037
17038 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
17039 and pass it to Fmake_sparse_keymap.
17040
170411998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
17042
17043 * alloc.c (MMAP_MAX_AREAS): New macro.
17044 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
17045 (init_alloc_once): Use that.
17046
17047 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
17048
17049 * alloc.c (lisp_malloc, lisp_free): New functions.
17050 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
17051 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
17052 (n_interval_blocks, n_float_blocks): New variable.
17053 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
17054 (n_marker_blocks, n_string_blocks): New variable.
17055 (init_intervals, make_interval): Set a count variable.
17056 Use lisp_malloc instead of setting allocating_for_lisp.
17057 (init_float, make_float, init_cons, Fcons): Likewise.
17058 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
17059 (init_marker, allocate_misc, init_strings): Likewise.
17060 (make_uninit_multibyte_string): Likewise.
17061 (gc_sweep, compact_strings): Decrement the count variables.
17062
17063 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
17064 into the old_..._hook variables.
17065
170661998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17067
17068 * keyboard.c: In each active map, for each menu bar item, use only
17069 the first submap.
17070 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17071 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17072 (syms_of_keyboard): Staticpro and init it.
17073
427ec082 17074 * xmenu.c (single_keymap_panes):
26901792
DL
17075
170761998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17077
17078 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17079 by complete_deferred_msg.
17080 (post_character_message): Cancel all deferred messages when
17081 quit_char is typed, in order to break out of potential deadlocks.
17082 (cancel_all_deferred_msgs): New function.
17083 (complete_deferred_msg): Don't abort if msg not found; may have
17084 been cancelled.
17085 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17086 (Fw32_send_sys_command): Wait for system command to
17087 complete before returning.
427ec082 17088
26901792
DL
17089 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17090 not set async_iconified flag though.
17091
17092 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17093 (create_child): Use it.
17094 (syms_of_ntproc): Defvar it. Also fix docstrings for
17095 w32-start-process-share-console and w32-start-process-show-window.
17096
17097 * unexw32.c (_start): Force system calls accessing unmounted
17098 devices to fail without prompting.
17099
171001998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17101
17102 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17103 even when starting the dumped Emacs.
17104
17105 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17106 (Fkey_description): Handle lists like vectors.
17107
171081998-12-21 Kenichi Handa <handa@etl.go.jp>
17109
17110 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17111 because of the change of the second argument of Fread_char.
17112
17113 * charset.c (Fcharset_after): Check range. If POS is out of
17114 range, return nil.
17115
17116 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17117
17118 * lread.c (Fread_char): Change the meaning of the second argument.
17119 (Fread_event): Likewise.
17120 (Fread_char_exclusive): Likewise.
17121
17122 * print.c (printchar): Fix previous change.
17123
17124 * process.c (read_process_output): Decide the multibyteness of
17125 string given to a process filter by a coding system used for
17126 decoding the process output.
17127
171281998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17129
17130 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17131 nonascii-translation-table.
17132 * msdos.c (IT_write_glyphs): Likewise.
17133 * fns.c (concat): Likewise.
17134 * charset.c (unibyte_char_to_multibyte): Likewise.
17135 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17136
171371998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17138
17139 * doc.c (Fdocumentation): Change the doc string for prefix
17140 commands to make it a complete sentence in one line.
17141
171421998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17143
17144 * s/irix6-5.h: New file.
17145 * s/irix6-0.h (IRIX6): Define this symbol.
17146 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17147 (bcopy, bcmp, bzero): Likewise.
17148 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17149 (C_SWITCH_MACHINE): New value for irix6.5.
17150
171511998-12-15 Richard Stallman <rms@gnu.org>
17152
17153 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17154 Do free malloc'd memory even in case of failure. Use xfree, not free.
17155 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17156 (base64_decode_1): Don't fail for short lines.
17157
17158 * print.c (printchar): Outputting multibyte characters
17159 to echo area always makes it multibyte.
17160
17161 * search.c (search_buffer): Don't use Boyer-Moore
17162 to search for an invalid multibyte code.
17163 In unibyte case, no need to check whether there are translations
17164 in more than one charset; just set charset_base to 0.
17165
171661998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17167
17168 * print.c (printchar): Cancel previous change.
17169
171701998-12-15 Kenichi Handa <handa@etl.go.jp>
17171
17172 * callproc.c: Include "ccl.h".
17173 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17174 bit in argument_coding.mode to tell encoding procedure to flush
17175 data. While encoding arguments, if argument_coding uses CCL
17176 program, initialize it again after encoding.
17177 (Fcall_process_region): Doc-string modified. Handle the case that
17178 NARGS is 3.
17179
17180 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17181 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17182 Set `ic' to the head of this command.
17183 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17184 code for an invalid code.
17185 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17186 based on VEC.
17187
17188 * charset.c (Qunknown): New variable.
17189 (init_charset_once): Intern and staticpro Qunknown. Initialize
17190 all elements of Vcharset_symbol_table to Qunknown.
17191 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17192 unibyte characters only. For an invalid composition sequence, set
17193 CHARSETS[1] to 1.
17194 (Ffind_charset_region): Call find_charset_in_str with an
17195 appropriate MULTIBYTE arg. If undefined charsets are found,
17196 include `unknown' is the return value.
17197 (Ffind_charset_string): Likewise.
17198 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17199 (str_cmpchar_id): Max composite character code should be less than
17200 GENERIC_COMPOSITION_CHAR.
17201
17202 * charset.h (find_charset_in_str): Update declaration.
17203
17204 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17205 final_char is invalid.
17206 (decode_coding): If coding->type is coding_type_ccl, call
17207 ccl_coding_driver even if SRC_BYTES is zero.
17208 (code_convert_region): Update `inserted' correctly after calling
17209 coding->post_read_conversion. Even after the code converter
17210 consumed all source text, call it once more if it is
17211 coding_type_ccl to flush out data.
17212
17213 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17214 CODING is handled by CCL program, call code_convert_region.
17215
17216 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17217 correctly.
17218 (string_byte_to_char): Likesize.
17219
17220 * print.c (printchar): When outputting a multibyte character to
17221 echo area, always set message_enable_multibyte to 1.
17222
17223 * process.c (read_process_output): If NBYTES is zero and
17224 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17225 and try decoding again.
17226 (Fprocess_send_eof): If the coding system of PROCESS
17227 requires flushing, call send_process with null-string at first.
17228
17229 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17230 with MULTIBYTE arg 0.
17231 * w32select.c (Fw32_set_clipboard_data): Likewise.
17232 * xselect.c (lisp_data_to_selection_data): Likewise.
17233
172341998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17235
17236 * search.c (Freplace_match): Set OPOINT clearly for the case
17237 where point is in the middle of the text to be replaced.
17238
17239 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17240 if compute_motion fails to advance at all, don't back it up.
17241
172421998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17243
17244 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17245
427ec082 17246 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17247
172481998-12-09 Richard Stallman <rms@gnu.org>
17249
17250 * insdel.c (insert_from_buffer_1): Properly count the size
17251 of output from conversion to multibyte even when input
17252 is split across the gap.
17253
172541998-12-09 Karl Heuer <kwzh@gnu.org>
17255
17256 * keyboard.c: Doc fixes.
17257
17258 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17259
172601998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17261
17262 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17263 characters, only convert CRLF to LF.
17264
172651998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17266
17267 * makefile.nt: Do string comparision of _NMAKE_VER.
17268
172691998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17270
17271 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17272 coding.h, and disptab.h
17273
17274 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17275 (syms_of_msdos): DEFVAR_LISP it.
17276 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17277 (internal_terminal_init): Set up insert_glyphs_hook and
17278 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17279 (unibyte_display_via_language_environment): New variable.
17280 (syms_of_msdos): Devfar it.
17281 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17282 Encode the character codes of the glyphs according to the
17283 terminal_coding in effect.
17284
172851998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17286
17287 * fns.c (Fstring_as_unibyte): Doc fix.
17288
172891998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17290
17291 * charset.h: Declare char_valid_p.
17292
172931998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17294
17295 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17296
17297 * msdos.c (init_environment): Record the time we started up.
17298 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17299 fast after startup (aka crash).
17300
173011998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17302
17303 * w32.c (check_windows_init_file): Use decode_env_path when
17304 using EMACSLOADPATH.
17305
173061998-12-02 Jason Rumney <jasonr@altavista.net>
17307
17308 * w32term.c (dumpglyphs): Use unsigned char arrays.
17309 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17310 for various languages.
17311 Compensate for fonts that have underhangs (e.g., Thai).
17312
17313 * w32term.h (FONT_MAX_WIDTH): New macro.
17314
173151998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17316
17317 * keyboard.c (Qlanguage_change): New variable.
17318 (syms_of_keyboard): Init it.
17319 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17320 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17321 keys; add name for Escape key; extend to 256 elements.
17322 (parse_modifiers): Make non-static.
17323
17324 * keyboard.h (parse_modifiers): Declare prototype.
17325
17326 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17327
17328 * w32fns.c (w32_last_error): Fix cut+paste error.
17329 (Vw32_phantom_key_code): New variable.
17330 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17331 (syms_of_w32fns): Init and register them.
17332 (reset_modifiers): Use a more precise test for whether Emacs has
17333 keyboard focus. Synchronize state of all keys that can be used as
17334 modifiers, to overcome problems arising from hot-keys.
17335 (w32_key_to_modifier): Be careful not to call intern() to avoid
17336 requiring thread synchronization.
17337 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17338 (w32_wnd_proc): Ensure lock key indicator lights are updated
17339 promptly on Windows 9x, by passing key events on to the system.
17340 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17341 responding to Windows key events when not wanted.
17342 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17343 Ctrl-NumLock into pause by the system.
17344 (w32_wnd_proc): Don't translate key combinations containing any
17345 modifiers other than shift (and capslock).
17346 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17347 can't determine the key states until we have keyboard focus).
17348 (Fw32_toggle_lock_key): New function.
17349 (syms_of_w32fns): Defsubr it.
17350
17351 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17352 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17353 (w32_console_toggle_lock_key): New function.
17354
17355 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17356
173571998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17358
17359 * search.c (Freplace_match): Set OPOINT clearly for the case
17360 where point is in the middle of the text to be replaced.
17361
17362 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17363 if compute_motion fails to advance at all, don't back it up.
17364
173651998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17366
17367 * xfns.c (Qouter_window_id): New variable.
17368 (syms_of_xfns): Initialize it.
17369 (x_report_frame_params): Set up outer-window-id parameter.
17370
17371 * keymap.c (Fsingle_key_description): Fix previous change.
17372
173731998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17374
17375 * lisp.h (Frequire): Update declaration.
17376
173771998-11-26 Kenichi Handa <handa@etl.go.jp>
17378
17379 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17380 if the charset is ascii.
17381 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17382
17383 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17384 make an appropriate one byte string.
17385 (char_bytes): Handle the case that C is a single byte char or has
17386 modifier bits.
17387
17388 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17389
17390 * cmds.c (internal_self_insert): If C has modifier bits, insert
17391 appropriate one byte char.
17392
173931998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17394
17395 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17396 Clear text properties in the new string.
17397
173981998-11-24 Felix Lee <flee@cygnus.com>
17399
17400 * process.c (read_process_output): Call signal_after_change.
17401
174021998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17403
17404 * buffer.c (syms_of_buffer): Doc fix.
17405
17406 * keyboard.c (syms_of_keyboard): Doc fix.
17407
174081998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17409
17410 * frame.c (Fset_mouse_position): Doc fix.
17411
174121998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17413
17414 * keymap.c (Fmake_keymap): Doc fix.
17415
174161998-11-17 Kenichi Handa <handa@etl.go.jp>
17417
17418 * category.c (word_boundary_p): If C1 or C2 are composite
17419 characters, test their first components.
17420
174211998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17422
17423 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17424 don't do save-excursion, just restore selected window.
17425
17426 * window.c (window_loop): For UNSHOW_BUFFER,
17427 always do consider minibuffer windows.
427ec082 17428
26901792
DL
174291998-11-16 Kenichi Handa <handa@etl.go.jp>
17430
17431 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17432
17433 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17434
17435 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17436
17437 * s/bsdos4.h: New file.
17438
174391998-11-16 Kenichi Handa <handa@etl.go.jp>
17440
17441 * Makefile.in (abbrev.o): Depend on charset.h
17442 (bytecode.o): Depend on charset.h.
17443
17444 * bytecode.c: Include charset.h.
17445
17446 * abbrev.c: Include charset.h.
17447
17448 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17449 the first component.
17450
174511998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17452
17453 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17454
174551998-11-11 Richard Stallman <rms@gnu.org>
17456
17457 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17458
17459 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17460
17461 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17462 (INTERRUPT_INPUT): #define commented out.
17463
17464 * m/aviion-intel.h: New file.
17465
174661998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17467
17468 * fns.c (MAX_ALLOCA): New macro.
17469 (Fbase64_encode_region, Fbase64_encode_string,
17470 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17471 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17472
174731998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17474
17475 * insdel.c (byte_combining_error): Error message improved.
17476
17477 * charset.c (char_valid_p): Handle a composite character correctly.
17478
174791998-11-11 Kenichi Handa <handa@etl.go.jp>
17480
17481 * charset.c (str_cmpchar_id): Check the byte sequence for
17482 composition more rigidly.
17483 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17484 contains an invalid multibyte sequence.
17485
17486 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17487
174881998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17489
17490 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17491 (WM_EMACS_SETKEYBOARDLAYOUT):
17492 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17493 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17494 (LEFT_WIN_PRESSED):
17495 (RIGHT_WIN_PRESSED):
26901792
DL
17496 (APPS_PRESSED): New console keyboard modifier flags.
17497
17498 * w32term.c (convert_to_key_event): Removed.
17499 (is_dead_key): Copied to w32fns.c.
17500 (w32_read_socket): Generate language_change_event. Modify to work
17501 with keyboard handling changes in w32_wnd_proc.
17502
17503 * w32proc.c (sys_kill): Set extended key flag when faking
17504 Ctrl-Break keystrokes.
17505 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17506 arbitrary locale property using a numerical index.
17507 (Vw32_valid_codepages): New variable.
427ec082
SS
17508 (enum_codepage_fn):
17509 (Fw32_get_valid_codepages):
17510 (Fw32_get_console_codepage):
17511 (Fw32_set_console_codepage):
17512 (Fw32_get_console_output_codepage):
17513 (Fw32_set_console_output_codepage):
17514 (Fw32_get_codepage_charset):
17515 (Fw32_get_valid_keyboard_layouts):
17516 (Fw32_get_keyboard_layout):
26901792
DL
17517 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17518 handling functions.
17519 (syms_of_ntproc): Register them.
17520
17521 * w32inevt.c: Include w32term.h and w32heap.h.
17522 (map_keypad_keys):
17523 (Vw32_enable_caps_lock):
17524 (Vw32_enable_num_lock):
17525 (Vw32_pass_lwindow_to_system):
17526 (Vw32_pass_rwindow_to_system):
17527 (Vw32_lwindow_modifier):
17528 (Vw32_rwindow_modifier):
17529 (Vw32_apps_modifier):
17530 (Vw32_scroll_lock_modifier):
17531 (w32_key_to_modifier): Add externs.
17532 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17533 Scroll Lock as potential modifiers; exclude numpad keys from
17534 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
17535 code.
17536 (is_dead_key): Copy from w32fns.c.
17537 (w32_kbd_patch_key): Comment attempt to improve handling of
17538 dead-keys, and system bug relating to same on Windows NT. Work
17539 around the bug by calling ToUnicode and then converting to the
17540 correct codepage.
17541 (map_virt_key): Removed obsolete variable.
17542 (lispy_function_keys): Add extern.
17543 (key_event): Major rework of keyboard input handling: optionally
17544 recognize Windows keys and Apps key as modifiers; optionally treat
17545 NumLock, CapsLock and ScrollLock as function keys; let system
17546 translate keystrokes to characters to avoid system bugs relating
17547 to dead-key handling; preserve shift distinction for control
17548 characters. Remove some obsolete code.
17549
17550 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
17551 and w32heap.h.
17552
17553 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
17554 (Vw32_pass_lwindow_to_system):
17555 (Vw32_pass_rwindow_to_system):
17556 (Vw32_lwindow_modifier):
17557 (Vw32_rwindow_modifier):
17558 (Vw32_apps_modifier):
17559 (Vw32_enable_num_lock):
17560 (Vw32_enable_caps_lock):
17561 (Vw32_scroll_lock_modifier): New variables.
17562 (modifier_set): Return toggle state for Scroll Lock.
17563 (w32_key_to_modifier): New function. Returns chosen modifier bit
17564 for given key.
17565 (w32_get_modifiers): Returns modifier flags for
17566 non-keyboard input events.
17567 (construct_console_modifiers): Renamed from construct_modifiers;
17568 recognize Windows and Apps keys as modifiers.
17569 (w32_get_key_modifiers): New function. Returns modifier flags for
17570 keyboard input events.
17571 (map_keypad_keys): Make non-static. Use second arg as extended
17572 flag.
17573 (w32_grabbed_keys): New variable.
17574 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
17575 (register_hot_keys):
17576 (unregister_hot_keys):
17577 (lookup_vk_code):
17578 (w32_parse_hot_key):
17579 (Fw32_register_hot_key):
17580 (Fw32_unregister_hot_key):
17581 (Fw32_registered_hot_keys):
17582 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
17583 (post_character_message): New function.
17584 (w32_msg_pump): Handle new messages for using hotkeys and changing
17585 keyboard layout/language.
17586 (w32_wnd_proc): Major rework of keyboard input handling:
17587 optionally recognize Windows keys and Apps key as modifiers;
17588 optionally treat NumLock, CapsLock and ScrollLock as function
17589 keys; let system translate keystrokes to characters to avoid
17590 system bugs relating to dead-key handling; preserve shift
17591 distinction for control characters; forward keyboard
17592 layout/language changes to lisp; detect and convert hot-key events
17593 to normal keystrokes.
17594 (syms_of_w32fns): Register new functions and variables.
17595 (w32_last_error): New function for use in debugging.
17596
175971998-11-10 Kenichi Handa <handa@etl.go.jp>
17598
17599 * category.h (CATEGORY_SET): Adjusted for the change of
17600 cmpchar_component.
17601 (CATEGORY_SET): Likewise.
17602
17603 * charset.c (cmpchar_component): New arg NOERROR. Check
17604 composition char ID more strictly.
17605 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
17606 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
17607 return 255.
17608 (Fcompose_string): Signal error if STR contains a rule-based
17609 composition character.
17610
17611 * charset.h (cmpchar_component): Proto-type adjusted.
17612
176131998-11-09 Kenichi Handa <handa@etl.go.jp>
17614
17615 * charset.c (string_to_non_ascii_char): Return correct length for
17616 a charset of dimension 2 and composition character.
17617
176181998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17619
17620 * keymap.c (Fsingle_key_description): Handle generic characters.
17621
17622 * process.c (Fprocess_status): Doc fix.
17623
176241998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
17625
17626 * charset.c (init_charset_once): Fix previous change.
17627
176281998-11-06 Kenichi Handa <handa@etl.go.jp>
17629
17630 * charset.c (string_to_non_ascii_char): Fix previous change.
17631 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
17632
17633 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
17634 character correctly.
17635 (STRING_CHAR): Handle an invalid charater correctly.
17636
176371998-11-05 Kenichi Handa <handa@etl.go.jp>
17638
17639 * charset.c (string_to_non_ascii_char): Fix previous change.
17640
17641 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
17642
17643 * editfns.c (Fstring_to_char): Don't return a multibyte character
17644 if STRING is a unibyte string.
17645
17646 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
17647 character.
17648
17649 * xdisp.c (display_text_line): Check validity of a multibyte character.
17650 (display_string): Likewise. Handle an invalid character correctly.
17651
176521998-11-05 Karl Heuer <kwzh@gnu.org>
17653
17654 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
17655 If nothing to do, return immediately.
17656 (syms_of_insdel): Initialize combine_after_change_buffer.
17657
176581998-11-05 Richard Stallman <rms@gnu.org>
17659
17660 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
17661
176621998-11-04 Geoff Voelker <voelker@cs.washington.edu>
17663
17664 * w32term.c (w32_enable_unicode_output): Rename from
17665 w32_no_unicode_output.
17666 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
17667 and new semantics.
17668
176691998-11-04 Jason Rumney <jasonr@altavista.net>
17670
17671 * w32fns.c (w32_list_fonts): Report an error if a frame has not
17672 been created yet.
17673
17674 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
17675
176761998-11-04 Kenichi Handa <handa@etl.go.jp>
17677
17678 * charset.c (string_to_non_ascii_char): Change the check for the
17679 varidity of multibyte form.
17680 (update_charset_table): Check validity of BYTES. Don't set
17681 bytes_by_char_head here.
17682 (init_charset_once): Set bytes_by_char_head completely.
17683
17684 * frame.c (do_switch_frame): Cancel previous change.
17685
17686 * print.c (print_string): Check validity of a character.
17687 (print): Likewise.
17688
17689 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
17690
17691 * m/ews4800.h, s/ux4800.h: New files.
17692
176931998-11-03 Theodore Jump <tjump@tertius.com>
17694
17695 * makefile.nt: Compile multiple source files when possible.
17696
17697 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 17698
26901792
DL
176991998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
17700
17701 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
17702 so don't rely on it succeeding.
17703
17704 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
17705 LOGFONT struct if x font doesn't specify the charset.
17706 (x_to_w32_charset): Change >= to == when testing results of
17707 stricmp.
17708
177091998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
17710
17711 * fns.c (Frequire): New arg NOERROR.
17712
177131998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
17714
17715 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
17716
177171998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
17718
17719 * xfaces.c (Qmouse_face): Replace definition with extern decl.
17720 (syms_of_xfaces): Initialization deleted.
17721
17722 * textprop.c (Qmouse_face): Variable definition moved here.
17723 (syms_of_textprop): Initialize it.
17724
17725 * data.c (set_internal): For built-in maybe-local vars,
17726 when BINDFLAG is set, do not mark them as local.
17727
177281998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
17729
17730 * insdel.c (replace_range): Fix previous change.
17731
177321998-10-31 Kenichi Handa <handa@etl.go.jp>
17733
17734 * editfns.c (Fsubst_char_in_region): Fix previous change.
17735 (Ftranslate_region): Fix previous change.
17736
17737 * fns.c (Fbase64_decode_region): Fix previous change.
17738
17739 * frame.c (do_switch_frame): Update minibuf_window if necessary.
17740
17741 * insdel.c (byte_combining_error): New function.
17742 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
17743 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
17744 CHECK_BYTE_COMBINING_FOR_INSERT.
17745 (insert_from_buffer_1): Likewise.
17746 (adjust_after_replace): Check the posibility of inhibitted byte
17747 combining correctly.
17748 (replace_range): Before signaling an error for inhibitted byte
17749 combining, recover the buffer in a safe state.
17750 (del_range_2): Check the posibility of inhibitted byte combining
17751 correctly.
17752
177531998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
17754
17755 * xselect.c (Vselection_coding_system): Doc fix.
17756
17757 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
17758 when we have both char and byte position. Fix type clashes.
17759
17760 * eval.c (Fsignal): Use a separate format string when passing
17761 error message string to fatal, in case it contains %'s.
17762
17763 * editfns.c (Fchar_after): Fix type clashes.
17764
17765 * charset.c (Fchar_bytes): Doc fix.
17766 (char_bytes): Fix returned value to match returned type.
17767 (syms_of_charset): Fix type clash in initialisation of
17768 Vauto_fill_chars.
17769
177701998-10-29 Geoff Voelker <voelker@cs.washington.edu>
17771
17772 * w32console.c (initialize_w32_display): Use buffer coords
17773 instead of buffer size (which may be larger than the window).
17774
17775 * fileio.c (init_fileio_once): New function.
17776
17777 * emacs.c (main): Invoke init_fileio_once.
17778
177791998-10-28 Paul Eggert <eggert@twinsun.com>
17780
17781 * xterm.c (XTread_socket): Check the returned value of
17782 XmbLookupString more carefully.
17783
177841998-10-28 Kenichi Handa <handa@etl.go.jp>
17785
17786 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
17787 (DECODE_CHARACTER_DIMENSION1): Likewise.
17788 (DECODE_CHARACTER_DIMENSION2): Likewise.
17789 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
17790
17791 * editfns.c (Fsubst_char_in_region): Fix previous change.
17792 (Ftranslate_region): Fix previous change.
17793
17794 * insdel.c (check_markers): Check if markers are at character boundry.
17795 (adjust_markers_for_insert): Fix previous change.
17796 (count_combining_before): Don't limit the check at BEGV.
17797 (count_combining_after): Don't limit the check at ZV.
17798 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
17799 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
17800 (insert_from_string_1): Likewise.
17801 (insert_from_buffer_1): Likewise.
17802 (adjust_after_replace): Inhibit bytes combined across region
17803 boundary. Update end_unchanged correctly.
17804 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
17805 end_unchanged correctly.
17806 (del_range_2): Inhibit bytes combined across region boundary.
17807 Update end_unchanged correctly.
17808
178091998-10-27 Geoff Voelker <voelker@cs.washington.edu>
17810
17811 * w32.c (check_windows_init_file): Also look in load path specified
17812 in environment.
17813
17814 * w32console.c (Fset_message_beep): Recognize 'silent.
17815 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 17816
26901792
DL
17817 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
17818
17819 * w32select.c (Vnext_selection_coding_system): New variable.
17820 (syms_of_w32select): DEFVAR_LISP it.
17821 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
17822 non-nil. Always convert multibyte strings.
17823 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
17824 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 17825
26901792
DL
178261998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
17827
17828 * fns.c (Fbase64_decode_string): Doc fix.
17829 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
17830 Likewise.
17831
178321998-10-27 Dave Love <fx@gnu.org>
17833
17834 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
17835 newline in doc string.
17836
178371998-10-27 Kenichi Handa <handa@etl.go.jp>
17838
17839 * editfns.c (Fsubst_char_in_region): Correctly handle the case
17840 that byte combining before happens.
17841 (Ftranslate_region): Likewise.
17842
17843 * insdel.c (adjust_after_replace): Correctly handle the case that
17844 both byte combining before and byte combining after happen.
17845 (replace_range): Likewise.
17846
178471998-10-26 Kenichi Handa <handa@etl.go.jp>
17848
17849 * category.c (syms_of_category): Doc-string modified.
17850
17851 * coding.c (code_convert_region): Kill the work buffer created by
17852 pre-write-conversion.
17853
178541998-10-25 Jason Rumney <jasonr@altavista.net>
17855
17856 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
17857
178581998-10-23 Kenichi Handa <handa@etl.go.jp>
17859
17860 * coding.c (code_convert_region): While preserving the orignal
17861 point, pay attention to the byte combining problem.
17862
17863 * fns.c (Fbase64_decode_region): Pay attention to the byte
17864 combining problem.
17865
17866 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
17867 combined_before_bytes and combined_after_bytes into account.
17868 (count_combining_after): Handle the case that LENGTH is zero.
17869 (adjust_after_replace): Record deletion at correct buffer
17870 position. Handle the case that LEN is zero.
17871 (replace_range): Record deletion at correct buffer position.
17872 (del_range_2): Call adjust_makers_for_replace to adjust makers for
17873 combined bytes.
17874
178751998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
17876
17877 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 17878
26901792
DL
178791998-10-21 Kenichi Handa <handa@etl.go.jp>
17880
17881 * coding.c (setup_coding_system): Fix setting up
17882 coding->spec.ccl.valid_codes for CCL based coding system.
17883 (code_convert_region): Set point to FROM before inserting the
17884 result of pre-write-funciton. Preserve original point.
17885 (code_convert_string): If coding->type is coding_type_ccl, do
17886 conversion even if the length of conversion region is zero.
17887
17888 * fontset.c: Include frame.h before fontset.h.
427ec082 17889 (list_fonts_func): Fix prototype.
26901792
DL
17890
17891 * frame.c: Include frame.h before fontset.h.
17892
17893 * xterm.c: Likewise.
17894
178951998-10-21 Jason Rumney <jasonr@altavista.net>
17896
17897 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
17898 general macros. Don't call x_list_font directory, instead call a
17899 function set in list_fonts_func.
17900
17901 * fontset.h (list_fonts_func): Fix prototype.
17902
179031998-10-20 Jason Rumney <jasonr@altavista.net>
17904
17905 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
17906
17907 * w32faces.c: Update comments referring to obsolete structs.
17908 (allocate_face, copy_face, face_eql, load_font,
17909 Fpixmap_spec_p, free_frame_faces, new_computed_face,
17910 frame_update_line_height, merge_faces, compute_base_face,
17911 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
17912
17913 * w32fns.c: (Vx_pixel_size_width): New global variable.
17914 (unibyte_display_via_language_environment): New global variable.
17915 (x_set_font): Add support for setting fontsets.
17916 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
17917 font names to match xlfd-tight-regexp.
17918 (w32_load_font): Rewrite based on x_load_font.
17919 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
17920 `iso8859-1' rather than `ansi'.
17921 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
17922 end. Move charset into `charset registry' field.
17923 (enum_font_cb2): Check charsets match. Include width in font list.
17924 (w32_list_fonts): Rewrite based on x_list_fonts.
17925 Moved from w32term.c to have access to enumfont_t struct.
17926 (Fx_list_fonts): w32 specific version eliminated. Include
17927 `x-list-fonts.c'.
17928 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
17929 functions for fontset support - adapted from x_ equivalents.
17930 (syms_of_w32fns): New lisp variables initialised. Function
17931 pointers for fontset.c set up.
17932
427ec082 17933 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
17934 Add ENCODE_BIG5 macro from coding.c.
17935 (w32_no_unicode_output): New variable.
17936 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
17937 functions.
17938 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
17939 (dumpglyphs): Rewrite based on xterm.c equivalent.
17940 (x_new_font): Use functionality provided in fontset.c.
17941 (x_new_fontset): New function based on the one in xterm.c.
17942 (syms_of_w32term): Add w32-no-unicode-output flag.
17943
427ec082 17944 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
17945 (Vx_pixel_size_width_font_regexp,
17946 unibyte_display_via_language_environment): Declare variables.
427ec082 17947 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
17948 Declare functions.
17949 (w32_output): New fields font_baseline and fontset.
17950 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
17951
17952 * w32xfns.c: Include charset.h and fontset.h.
17953
179541998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17955
17956 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
17957
179581998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
17959
17960 * msdos.c (mouse_init): Reset the button press/release info of the
17961 mouse driver.
17962 (mouse_preempted): New variable.
17963 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
17964 (XMenuActivate): Preempt the mouse during menu-handling loop.
17965 Release the current time slice while idling in the menu-handling
17966 loop. Leave the loop only if the user pressed, then released the
17967 same button. Discard all mouse events that are pending in the
17968 event queue before exiting.
17969
179701998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17971
17972 * editfns.c (Fformat): Increase buffer size for floating format.
17973
179741998-10-17 Kenichi Handa <handa@etl.go.jp>
17975
17976 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
17977 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
17978 Declare auto-fill-chars as a Lisp variable and initialize it.
17979
17980 * charset.h (Vauto_fill_chars): Extern it.
17981
17982 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
17983
179841998-10-16 Kenichi Handa <handa@etl.go.jp>
17985
17986 * casefiddle.c (casify_object): Use make_string instead of
17987 make_specified_string to cope with byte-combining situation.
17988
17989 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
17990 1 when encountered with a code of the range 0x80..0x9F.
17991
179921998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
17993
17994 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
17995 trying $TMP and $TEMP, since the former is always set in msdos.c.
17996 (Fcall_process_region) [DOS_NT]: When looking for a place to put
17997 the temporary files, check $TMPDIR as well.
17998
179991998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
18000
427ec082 18001 * process.c (exec_sentinel, read_process_output):
26901792
DL
18002 Restore waiting_for_user_input_p after running Lisp code.
18003
18004 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
18005 (command_loop): Likewise.
18006
180071998-10-14 Kenichi HANDA <handa@etl.go.jp>
18008
18009 * data.c (Faset): Fix previous change.
18010
18011 * fns.c (Ffillarray): Fix previous change.
18012
18013 * insdel.c (adjust_markers_for_combining): This function deleted.
18014 (adjust_markers_for_replace): Correctly adjust marker positions.
18015 Don't record these adjustment because they were recorded already.
18016 (combine_bytes): Don't adjust markers here.
18017
180181998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
18019
18020 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
18021
180221998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
18023
18024 * keyboard.c (Fclear_this_command_keys): New function.
18025 (syms_of_keyboard): defsubr it.
18026
18027 * macros.c (Fexecute_kbd_macro): Set real_this_command.
18028
180291998-10-12 Kenichi Handa <handa@etl.go.jp>
18030
18031 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
18032
18033 * charset.c (Fstring): Call make_string instead of
18034 make_string_from_bytes.
18035 (Ffind_charset_region): Include `composition' in the returned list
18036 if the region contains any composite characters.
18037 (Ffind_charset_string): Include `composition' in the returned list
18038 if the string contains any composite characters.
18039 (find_charset_in_str): Handle CMPCHARP arg correctly.
18040
18041 * coding.c (shrink_decoding_region): If a charset other than ascii
18042 is initially designated to G0, don't shrink the region.
18043 (shrink_encoding_region): Likewise.
18044
18045 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
18046 byte-combining situation.
18047
18048 * fns.c (clear_string_char_byte_cache): New function.
18049 (Ffillarray): Handle multibyte string correctly.
18050
18051 * lisp.h (clear_string_char_byte_cache): Extern it.
18052
18053 * xselect.c (lisp_data_to_selection_data): Call
18054 find_charset_in_str with CMPCHARP arg 0.
18055 * w16select.c (Fw16_set_clipboard_data): Likewise.
18056 * w32select.c (Fw32_set_clipboard_data): Likewise.
18057
180581998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
18059
18060 * keyboard.c (parse_menu_item): For top level of menu bar,
18061 accept ordinary commands, and treat them just like a keymap.
18062
180631998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
18064
18065 * xdisp.c (redisplay_window): Clear w->window_end_valid
18066 before running the window-scroll-functions hook, if appropriate.
18067
180681998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18069
18070 * data.c (Fstring_to_number): Don't recognize floating point
18071 if base is not 10.
18072
18073 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18074 (check_all_windows): New function for debugging tests.
18075 (syms_of_window): Initialize it.
18076
18077 * window.c (Qwindow_configuration_p): New variable.
18078 (Fwindow_configuration_frame): New function.
18079 (syms_of_window): defsubr it.
18080 (Fset_window_configuration): Return t if frame is live.
18081 Use Qwindow_configuration_p.
18082
18083 * xfns.c (check_x_display_info): Don't use selected_frame
18084 if it is dead.
18085
180861998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18087
18088 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18089
180901998-10-08 Kenichi Handa <handa@etl.go.jp>
18091
18092 * buffer.h (inhibit_modification_hooks): Extern it.
18093
18094 * buffer.c (inhibit_modification_hooks): New variable.
18095 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18096
18097 * charset.c (invalid_character): Prepend `0' to octal
18098 representation. Give error sufficient args.
18099
18100 * coding.c (code_convert_region): Set inhibit_modification_hooks
18101 to 1 before calling Fset_text_properties.
18102
18103 * insdel.c (signal_before_change): If inhibit_modification_hooks
18104 is nonzero, do nothing.
18105 (signal_after_change): Likewise.
18106
181071998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18108
18109 * process.c: Doc fixes.
18110
181111998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18112
18113 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18114
181151998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18116
18117 * w32.c (init_ntproc): Check for Windows init file.
18118 (term_ntproc): Do not check for it here.
18119
181201998-09-28 Kenichi Handa <handa@etl.go.jp>
18121
18122 * coding.c (check_composing_code): Fix previous change. Now it
18123 alwasy returns 0 or -1.
18124 (decode_coding_iso2022): Adjusted for the above change.
18125 (encode_coding_iso2022): When encoding the last block, flush out
18126 tailing garbage bytes.
18127 (setup_coding_system): Delete unnecessary code.
18128 (shrink_decoding_region): Check translation table. If ASCII
18129 should be translated, give up shrinking.
18130 (shrink_encoding_region): Likewise.
18131 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18132 (SHRINK_CONVERSION_REGION): New macro.
18133 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18134 properties here.
18135 (code_convert_region): In the case of encoding, always calulate
18136 correct character number.
18137 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18138 (code_convert_region1): Don't delete text properties here.
18139
18140 * insdel.c (adjust_after_replace): Don't delete text properties here.
18141
18142 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18143
181441998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18145
18146 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18147
181481998-09-26 Kenichi Handa <handa@etl.go.jp>
18149
18150 * coding.h (struct coding_system): New member composed_chars.
18151
18152 * coding.c (check_composing_code): If the current composing
18153 sequence doesn't end properly, return -1.
18154 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18155 (DECODE_CHARACTER_DIMENSION1): Likewise.
18156 (decode_coding_iso2022): Check validity of a composing sequence.
18157 (code_convert_string): If the length of text to be converted is
18158 shrunk to zero, don't perform code conversion.
18159 (shrink_decoding_region): Fix previous change.
18160
18161 * editfns.c (Fformat): Check format control characters.
18162
181631998-09-25 Kenichi Handa <handa@etl.go.jp>
18164
18165 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18166 single CR code correctly.
18167 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18168 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18169
181701998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18171
18172 * w32fns.c (w32_color_map_lookup): New function.
18173 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18174
181751998-09-22 Kenichi Handa <handa@etl.go.jp>
18176
18177 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18178
18179 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18180 strings unibyte.
18181 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18182
181831998-09-22 Kenichi Handa <handa@etl.go.jp>
18184
18185 * callint.c (Fcall_interactively): Don't use input method when
18186 reading a character in the case of `c' code letter.
18187
181881998-09-21 Dave Love <fx@gnu.org>
18189
18190 * editfns.c (Fsave_restriction): Doc fix.
18191
181921998-09-21 Richard Stallman <rms@gnu.org>
18193
18194 * lread.c (build_load_history): Do add to Vload_history
18195 even when dumping Emacs.
18196
181971998-09-18 Kenichi Handa <handa@etl.go.jp>
18198
18199 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18200 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18201 cause error if the program is going to output some bytes. When
18202 outputing a string to notify an error, check the case that
18203 DST_BYTES is zero.
18204
427ec082 18205 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18206
18207 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18208 user or the CCL program executed an invalid command, return
18209 CODING_FINISH_INTERRUPT.
18210 (code_convert_region): Pay attention to the converters return
18211 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18212
182131998-09-16 Kenichi Handa <handa@etl.go.jp>
18214
18215 * coding.c (code_convert_region): Update beg_unchanged and
18216 end_unchanged after we delete the source text.
18217
18218 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18219 position if it is FROM.
18220 (adjust_markers_for_combining): New function.
18221 (combine_bytes): Call adjust_markers_for_combining instead of
18222 adjust_markers_for_replace.
18223 (adjust_after_replace): Record deletion of combining after bytes
18224 with the correct position.
18225 (replace_range): Likewise. Record the actual deletion after
18226 recoding deletions of combining bytes.
18227
18228 * xdisp.c (message_log_check_duplicate): Count byte length of the
18229 latest message correctly.
18230
182311998-09-12 Richard Stallman <rms@gnu.org>
18232
18233 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18234 instead of SET_PT_BOTH.
18235 (try_window_id, display_text_line): Likewise.
18236
182371998-09-12 Karl Heuer <kwzh@gnu.org>
18238
18239 * data.c (Fmake_local_variable): Doc fix.
18240
182411998-09-10 Dave Love <fx@gnu.org>
18242
18243 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18244
182451998-09-10 Richard Stallman <rms@gnu.org>
18246
18247 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18248 (bcopy, bcmp, bzero): Add #undef.
18249
18250 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18251 first exit if selected frame is dead (no live frames remain).
18252 (read_key_sequence): Likewise.
18253
182541998-09-10 Karl Heuer <kwzh@gnu.org>
18255
18256 * emacs.c (main): Mention --display and --eval in help.
18257
182581998-09-07 Paul Eggert <eggert@twinsun.com>
18259
18260 * editfns.c (emacs_memftime): New function.
18261 (Fformat_time_string): Use it to handle null bytes in formats
18262 correctly.
18263
182641998-09-08 Kenichi Handa <handa@etl.go.jp>
18265
18266 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18267 (Ffind_charset_string): For unibyte string, return (ascii).
18268
18269 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18270 arg MARKERS 1.
18271
18272 * insdel.c (adjust_after_replace): Don't add combining bytes to
18273 the args given to adjust_point. Handle correctly the case that
18274 there are both before and after combining bytes.
18275 (replace_range): Likewise.
18276
182771998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18278
18279 * fns.c (base64_decode_1, base64_encode_1): New functions.
18280 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18281 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18282
182831998-09-07 Karl Heuer <kwzh@gnu.org>
18284
18285 * eval.c (error): After enlarging buffer, write to it, not to buf.
18286
18287 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18288
182891998-09-07 Kenichi Handa <handa@etl.go.jp>
18290
18291 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18292 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18293 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18294
18295 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18296 chars in produced byte sequence.
18297 (Ffind_operation_coding_system): Doc-string fixed.
18298
18299 * insdel.c (count_combining_after): Check also preceding bytes at
18300 POS if all characters in STRING are not character head.
18301
183021998-09-06 Paul Eggert <eggert@twinsun.com>
18303
18304 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18305 Don't assume that localtime and gmtime return non-NULL.
18306
183071998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18308
18309 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18310 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18311 New functions.
18312
183131998-09-06 Richard Stallman <rms@gnu.org>
18314
18315 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18316
18317 * lread.c (Fload): Handle case where openp finds a magic file
18318 but it has no `load' handler or that handler calls `load'.
18319 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18320
183211998-09-04 Dave Love <fx@gnu.org>
18322
18323 * buffer.c (enable-multibyte-characters): Doc fix.
18324
183251998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18326
18327 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18328
183291998-09-01 Kenichi Handa <handa@etl.go.jp>
18330
18331 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18332 address in buffer from byte-position.
18333
183341998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18335
18336 * w16select.c (Vnext_selection_coding_system): New variable.
18337 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18338 Vselection_coding_system.
18339 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18340 Vnext_selection_coding_system if non-nil.
18341 (Fw16_get_clipboard_data): Always convert a string that includes
18342 non-ASCII characters. Use Vnext_selection_coding_system if
18343 non-nil.
18344
183451998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18346
18347 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18348 mouse capture.
18349
183501998-08-31 Kenichi Handa <handa@etl.go.jp>
18351
18352 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18353 x_list_font returns.
18354
183551998-08-31 Paul Eggert <eggert@twinsun.com>
18356
18357 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18358 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18359
183601998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18361
18362 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18363 cursor, save and restore previous cursor position in the
18364 minibuffer.
18365
183661998-08-31 Kenichi Handa <handa@etl.go.jp>
18367
18368 * charset.c (unibyte_char_to_multibyte):
18369 Vnonacii_translation_table will convert a 7-bit charcater.
18370 (multibyte_char_to_unibyte): Handle the case that
18371 Vnonacii_translation_table converts a multibyte charcater to a
18372 unibyte charcter of less than 128.
18373 (init_charset_once): Initialize nonascii_insert_offset and
18374 Vnonacii_translation_table.
18375
18376 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18377 processing if CODING requires flushing.
18378 (encode_coding): Likewise.
18379 (code_convert_region): Likewise.
18380 (code_convert_string): Likewise.
18381
18382 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18383 to convert a character less than 160 to multibyte.
18384 * insdel.c (copy_text): Likewise.
18385 (count_size_as_multibyte): Likewise.
18386 * xterm.c (dumpglyphs): Likewise.
18387
183881998-08-29 Paul Eggert <eggert@twinsun.com>
18389
18390 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18391 using negation, not subtraction; this makes a difference with
18392 IEEE floating point arithmetic (and also if integer arithmetic
18393 is ones' complement or signed-magnitude!).
18394
183951998-08-29 Karl Heuer <kwzh@gnu.org>
18396
18397 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18398
183991998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18400
18401 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18402
184031998-08-28 Paul Eggert <eggert@twinsun.com>
18404
18405 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18406 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18407 path only if we're not building with Motif.
18408
184091998-08-28 Kenichi Handa <handa@etl.go.jp>
18410
18411 * insdel.c (adjust_after_replace): Fix the code to record undo
18412 information for the case that `before combining' happens. Remove
18413 text properties which are added to the new text by
18414 offset_intervals.
18415
18416 * coding.c (code_convert_region1): Remove all text properties of
18417 the region.
18418
184191998-08-28 Kenichi Handa <handa@etl.go.jp>
18420
18421 * charset.h (CHAR_BYTES): New macro.
18422
18423 * charset.c (Fchar_bytes): Now always return 1.
18424 (char_bytes): New function.
18425
18426 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18427 range, return nil.
18428 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18429 nil.
18430
18431 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18432 * fns.c (concat): Likewise.
18433 * insdel.c (count_size_as_multibyte): Likewise.
18434 * xdisp.c (message_dolog): Likewise.
18435
184361998-08-27 Kenichi Handa <handa@etl.go.jp>
18437
18438 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18439 correctly. They are for SS2 and SS3 respectively.
18440 (ccl_coding_driver): Fix previous change.
18441
184421998-08-26 Paul Eggert <eggert@twinsun.com>
18443
18444 * xterm.c (fixup_locale): New function. For now, it resets
18445 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18446 resets LC_MESSAGES to "C".
18447 (x_term_init): Use it to fix up the locale after setlocale
18448 (LC_ALL, "").
18449
184501998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18451
18452 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18453 case it was prototyped the old way.
18454
184551998-08-25 Kenichi Handa <handa@etl.go.jp>
18456
18457 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18458 returns a null string. This happens when dxpc 3.7 is being used.
18459
184601998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18461
18462 * keyboard.c (input-method-previous-message): Doc fix.
18463
18464 * coding.c (file-coding-system-alist,
18465 select-safe-coding-system-function): Doc fix.
18466
184671998-08-23 Kenichi HANDA <handa@etl.go.jp>
18468
18469 * coding.c (detect_coding_iso2022): Don't check the byte length of
18470 succeeding codes (0xa0..0xFF) if the codes follows single shift
18471 code (SS2 or SS3).
18472
184731998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18474
18475 * coding.c (detect_coding_system): If detect_eol_type returns
18476 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18477 correctly.
18478
18479See ChangeLog.7 for earlier changes.