(w32_menu_display_help): Call show_help_echo with
[bpt/emacs.git] / src / ChangeLog
CommitLineData
df75b1a3
GM
12000-07-10 Gerd Moellmann <gerd@gnu.org>
2
4b92c49a
GM
3 * xdisp.c (try_window_id): If changes are all below what is
4 displayed in the window, and point is in the window, we still
5 might have to find point on the display.
6
7 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
8 glyphs instead of a single one.
9 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
10 with new argument list.
11 (x_set_glyph_string_gc): Make sure the face's GC is valid.
12
df75b1a3
GM
13 * keymap.c (get_keymap_1): Add comment that this function can GC.
14 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
15 comment that functions can GC.
16 (Fset_keymap_parent): GCPRO arg KEYMAP.
17
4314cf3e
EZ
182000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
19
20 * msdos.c (XMenuActivate): After exiting the menu, restore the
21 echo area message and erase it.
22
ab49ce15
KH
232000-07-10 Kenichi Handa <handa@etl.go.jp>
24
25 * fontset.c (Ffontset_info): Make the return value more compatible
26 with that of Emacs 20.
27
090a072f
GM
282000-07-07 Gerd Moellmann <gerd@gnu.org>
29
30 * eval.c (Fsignal): Handle case that backtrace_list is null.
31
f92de4a6
KH
322000-07-07 Kenichi Handa <handa@etl.go.jp>
33
34 * ccl.c (Fccl_execute): Typo fixed.
35
dd8888a1
GM
362000-07-06 Gerd Moellmann <gerd@gnu.org>
37
e5c81191
GM
38 * window.c (window_loop): Add missing gcpro1 local variable.
39
dd8888a1
GM
40 * window.c (Fwindow_list): Reverse list at the end.
41 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
42 means allow windows on OWINDOW's frame, only.
43 (window_loop): Simplified; use Fwindow_list.
44
45 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
46
485266d0
GM
472000-07-05 Gerd Moellmann <gerd@gnu.org>
48
49 * xterm.c (XTread_socket): Increment handling_signal at the start,
50 decrement it at the end.
51
52 * eval.c (handling_signal): New variable.
53 (Fsignal): Abort if handling_signal is non-zero.
54
55 * lisp.h (handling_signal): External declaration.
56
57 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
58
80fcd514
KR
592000-07-05 Ken Raeburn <raeburn@gnu.org>
60
61 Sound support for NetBSD through "Linux emulation" support:
62 * config.in (HAVE_SOUNDCARD_H): Undef.
63 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
64 * Makefile.in (LIBSOUND): New variable.
65 (LIBES): Include it.
66 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
67 <soundcard.h>.
68 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
69 elsewhere.
70 (vox_open): Use DEFAULT_SOUND_DEVICE.
71 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
72
d5c5cddd
GM
732000-07-05 Gerd Moellmann <gerd@gnu.org>
74
75 * print.c (print_error_message): If Vsignaling_function is set,
76 show it in *Messages*.
77
78 * lisp.h (Vsignaling_function): External declaration.
79
80 * eval.c (Vsignaling_function): New variable.
81 (Fsignal): Compute it.
82 (syms_of_eval): Staticpro it.
83
65171e3a
DL
842000-07-05 Dave Love <fx@gnu.org>
85
86 * syswait.h: Use the autoconf recommended approach. Old code
87 #if'd out in case we need to revert.
88
89 * config.in (HAVE_SYS_WAIT_H): Added.
90
e2c46326
AI
912000-07-05 Andrew Innes <andrewi@gnu.org>
92
93 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
94 when non-NULL instead of __morecore, to take account of buffer
95 memory. This also solves a problem with spurious memory warnings
96 on Windows.
97
98 * ralloc.c: Make real_morecore non-static.
99
100 * eval.c (internal_condition_case): Comment out abort if
101 interrupt_input_blocked is not zero.
102
103 * makefile.nt: Add support for `bootstrap' and related targets.
104 Include minimal debug info in emacs.exe in release build.
105 Remove all dependencies on lisp.h, and fixup some others.
106
107 * w32.c (init_environment): Install code from 20.7 for providing
108 default values for environment variables, based on the
109 executable's own location.
110 (map_w32_filename): Handle filenames that are longer than
111 MAX_PATH.
112 (sys_socket): Install socket inheritance bug fix from 20.7.
113
114 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
115 here via blockinput.h).
116
a027a91b
SM
1172000-07-05 Stefan Monnier <monnier@cs.yale.edu>
118
e4b31601
SM
119 * w32menu.c (w32_menu_display_help):
120 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
121
122 * keyboard.h (show_help_echo): Declare.
123
124 * keyboard.c (show_help_echo): New function, extracted from read_char.
125 Feval its `msg' argument if it's a cons cell.
126 (read_char): Use it.
4cf8d9d5 127 (follow_key): Pass `autoload' to get_keyelt.
a027a91b
SM
128
129 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
130 (note_tool_bar_highlight, XTread_socket):
131 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
132 (dos_rawgetc):
133 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
134 (note_tool_bar_highlight, w32_read_socket):
135 Do not gratuitously ignore non-string `help-echo' properties.
136
88d75730
GM
1372000-07-05 Gerd Moellmann <gerd@gnu.org>
138
969f7e79
GM
139 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
140
71201b00
GM
141 * window.c (delete_all_subwindows): Reset Vwindow_list.
142
88d75730
GM
143 * xterm.c (x_append_glyph, x_append_composite_glyph)
144 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
145 changes in struct glyph starting 1999-12-27. Some bit-fields of
146 struct glyph were not set, which made glyphs unequal when compared
147 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
148 effects were the result. This also depended on the contents of
149 memory returned by xmalloc. If flickering happens again, activate
150 the code in clear_glyph_row that's in #if 0. If the flickering is
151 gone with that, chances are that it is caused by something
152 similar.
153
154 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
155
156 * dispextern.h: Add some comments.
157
158 * window.c (add_window_to_list): Add parameter LIST.
159 (window_list): Order list so that, for each frame, windows are
160 in canonical order, and so that frames appear in the list in
161 the order given by Vframe_list.
162 (next_window): Reverse the handling of NEXT_P.
163
53654733
GM
1642000-07-04 Gerd Moellmann <gerd@gnu.org>
165
87efd256
GM
166 * window.c (Vwindow_list): New variable.
167 (make_window, delete_window): Set Vwindow_list to nil.
168 (check_window_containing): New function.
169 (window_from_coordinates): Rewritten.
170 (add_window_to_list, window_list, candidate_window_p)
171 (decode_next_window_args, next_window): New functions.
172 (Fnext_window, Fprevious_window): Rewritten in terms of
173 next_window.
174 (Fwindow_list): New function.
175 (Fother_window): Cleaned up.
176 (foreach_window): Add a longer "variable argument list". Let
177 callback function return 0 to indicate that cycling over windows
178 should stop.
179 (foreach_window_1): Likewise.
180 (freeze_window_start): Return int.
181 (init_window): New function.
182 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
183
184 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
185 input_event with bzero.
186 (main): Call init_window.
187
53654733
GM
188 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
189 a menu filter.
190
4a8c194f
KH
1912000-07-04 Kenichi Handa <handa@etl.go.jp>
192
193 * composite.h (make_composition_value_copy): Extern it.
194
195 * composite.c (make_composition_value_copy): New function.
196
197 * editfns.c (Fformat): While copying text properties, make each
198 composition property value a copy.
199
200 * fns.c (concat): While copying text properties, make each
201 composition property value a copy.
202
831a6cb0
GM
2032000-07-03 Gerd Moellmann <gerd@gnu.org>
204
2f516940
GM
205 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
206
aee625fa
GM
207 * fns.c (sweep_weak_table): Mark only objects that are not
208 marked already.
209
831a6cb0
GM
210 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
211 include those frames as candidates which have their focus
212 redirected to the minibuffer frame.
213
d9c4f922
SM
2142000-07-03 Stefan Monnier <monnier@cs.yale.edu>
215
216 * fns.c (Fputhash): Return `value' rather than nil.
217
3780bc22
GM
2182000-06-30 Gerd Moellmann <gerd@gnu.org>
219
97d176db
GM
220 * frame.c (next_frame): Don't check focus redirection in case
221 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
222 unless their focus is redirected, which contradicts the
223 specification of next-frame, and leads to infinite loops in
224 certain situations when cycling through windows with next-window.
225
dca9961d
KH
2262000-06-30 Kenichi Handa <handa@etl.go.jp>
227
228 * coding.c (code_convert_region): Even if the length of text is
229 zero, try to convert it if coding->type is coding_type_ccl.
230 (decode_coding_string, encode_coding_string): Likewise.
231
d5483ab1
GM
2322000-06-28 Gerd Moellmann <gerd@gnu.org>
233
af5c25e1 234 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 235 the display if windows_or_buffers_changed.
af5c25e1
GM
236
237 * dispnew.c (struct row_entry): New structure.
238 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
239 (row_table_size, old_lines, new_lines, old_lines_size)
240 (new_lines_size, run_pool, runs_size, runs): New variables.
241 (add_row_entry): New function.
242 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 243 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
244 holding them in local variables. Use a larger hash table whose
245 size depends on glyph matrix sizes. Don't use bzero to clear the
246 hash table; instead, clear used slots only.
247
248 * fns.c (next_almost_prime): Make it externally visible.
249
250 * lisp.h (next_almost_prime): Add prototype.
251
d5483ab1
GM
252 * s/isc4-0.h (sigunblock): Define.
253
254 * s/sco5.h (sigunblock): Define.
255
93e40f40
DL
2562000-06-27 Dave Love <fx@gnu.org>
257
258 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
259 (moved to osf5-0.h).
260 [!NOT_C_CODE]: Protect string.h stuff.
261
262 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
263 (sys_siglist, NSIG): Definitions moved here from osf1.h.
264
3c4b7685
GM
2652000-06-27 Gerd Moellmann <gerd@gnu.org>
266
97d176db 267 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
268 below the last line from the needed window height.
269
32cad0aa
SM
2702000-06-26 Stefan Monnier <monnier@cs.yale.edu>
271
272 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
273 (Fwidget_get): Use it.
274 (syms_of_fns): Defsubr it.
275
2c69ced2
GM
2762000-06-26 Gerd Moellmann <gerd@gnu.org>
277
1d36487c
GM
278 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
279 display info for XIM.
280 (xim_open_dpy): Likewise.
281 (xim_close_dpy): Don't free the display info's XIM.
282
283 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
284
285 * config.in (USE_XIM): New define.
286
3fc720e4
GM
287 * keymap.c (get_keyelt): For menu-items containing a `:filter
288 FILTER', apply FILTER to the menu-item's definition to get the
289 real definition to use.
290
291 * lisp.h (QCfilter): External declaration.
292
2c69ced2
GM
293 * xfns.c (Fimage_size): New function.
294 (syms_of_xfns): Defsubr it.
295
f978b2a2
AS
2962000-06-26 Andreas Schwab <schwab@suse.de>
297
298 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
299 Fstring_as_unibyte.
300
94cc7892
DL
3012000-06-25 Dave Love <fx@gnu.org>
302
303 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
304 tgetnum.
305
306 * Makefile.in (blockinput.h): Depend on atimer.h.
307 (atimer.h): Depend on systime.h.
308
309 * blockinput.h: Protect against multiple inclusion. Include
310 atimer.h.
311
312 * atimer.h: Protect against multiple inclusion. Include
313 systime.h.
314
315 * lisp.h (swap_in_global_binding): Declare.
316
b8c24556
KR
3172000-06-24 Ken Raeburn <raeburn@gnu.org>
318
319 * process.c (Fopen_network_stream): Turn off atimers for duration
320 of call to connect. (Patch from Gerd.)
321
8cf8560b
DL
3222000-06-23 Dave Love <fx@gnu.org>
323
511c7541
DL
324 * ralloc.c: Maybe include unistd.h
325
8cf8560b
DL
326 * emacs.c (setgrp): Undefine before defining.
327 (malloc_warning, set_time_zone_rule, index): Prototype.
328
329 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
330 HAVE_STRUCT_TIMEZONE.
331
332 * s/osf1.h: Move string.h hack here from alpha.h and make it
333 conditional.
334 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
335 _XOPEN_SOURCE.
336 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
337 (SOCKLEN_TYPE): Don't define.
338
339 * m/alpha.h: Remove string.h hack.
340
341 * s/osf5-0.h: New file.
342
343 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
344 include time.h, done by systime.h.
345 [__FreeBSD__]: Remove redundant includes.
346
3fc720e4 347 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
348 (delete_temp_file): Return Qnil to avoid warning.
349
350 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
351
352 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
353 HAVE_X_WINDOWS.
354
355 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
356
357 * composite.h (compose_text): Declare.
358
359 * xterm.c: Don't include sys/types.h unconditionally. Don't
360 protect its inclusion with !USG (following xmenu.c).
361
ea055732
GM
3622000-06-23 Gerd Moellmann <gerd@gnu.org>
363
364 * xfns.c (x_create_tip_frame): Initialize frame's colors like
365 in x_create_frame.
366
74b01b80
EZ
3672000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
368
369 * coding.c (decode_eol_post_ccl): Special handling for undecided
370 and inconsistent EOL types.
371
64f3a166
GM
3722000-06-22 Gerd Moellmann <gerd@gnu.org>
373
16cf31f7
GM
374 * xrdb.c (x_load_resources): Add default resource for scroll bar's
375 trough color and main window's background color.
376
377 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
378 differently.
379
380 * xterm.h (Xt_app_con): External declaration.
381
382 * widget.c (EmacsFrameRealize): Fix typo.
383
486a103d
GM
384 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
385
64f3a166
GM
386 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
387 (handle_invisible_prop): Record the start of invisible text in
388 it->add_overlay_start.
389 (struct overlay_entry): Add member `overlay'.
390 (handle_overlay_change): Simplify.
391 (next_overlay_string): After having processed overlay strings at the
392 end of the buffer, record that fact in
393 it->overlay_strings_at_end_processed_p.
394 (compare_overlay_entries): If before- and after-strings come
395 from the same overlay, let before-strings come first.
396 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
397 (load_overlay_strings): Take it->add_overlay_start into account
398 when adding overlay strings.
399
400 * dispextern.h (struct it): Add member add_overlay_start.
401
bb746ea6
DL
4022000-06-22 Dave Love <fx@gnu.org>
403
404 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
405
406 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
407
a8f573f3
KH
4082000-06-22 Kenichi Handa <handa@etl.go.jp>
409
410 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
411 is greater than 0.
412
9f2bbc92
DL
4132000-06-21 Dave Love <fx@gnu.org>
414
415 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
416
3ee5041c
SM
4172000-06-21 Stefan Monnier <monnier@cs.yale.edu>
418
419 * syntax.c (back_comment): Simplify string-parity counting (with
420 the added benefit of handling multiple string-styles as long as
421 they are not intertwined).
422 Jump to the slow code as soon as a comment starter is found in
423 a "string_lossage" position. Fixes the case: " /* " /* " */.
424
4c343001
DL
4252000-06-21 Dave Love <fx@gnu.org>
426
427 * Makefile.in: Use GETLOADAVG_LIBS.
428
429 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
430 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
431
e6365855
SM
4322000-06-20 Stefan Monnier <monnier@cs.yale.edu>
433
434 * syntax.c (describe_syntax): Recognize the `n'estable bit.
435 (Fforward_comment, scan_lists):
436 Check the comstyle of single-char comment-starters.
437 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
438 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
439 Check the comstyle of single-char comment-starters.
440 Clarify control-flow around the Scomment case.
e6365855 441
5700d2cc
DL
4422000-06-20 Dave Love <fx@gnu.org>
443
d355bd8a
SM
444 * fns.c (make_hash_table, maybe_resize_hash_table):
445 Cast arg of next_almost_prime.
5700d2cc
DL
446
447 * tparam.c [emacs]: Include lisp.h.
448
449 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
450 and unistd.h.
451
4a27bdfb
GM
4522000-06-20 Gerd Moellmann <gerd@gnu.org>
453
a61d762c
GM
454 * keyboard.c (adjust_point_for_property): Check if display
455 property should be treated as intangible by looking at its
456 value.
457
458 * xdisp.c (single_display_prop_intangible_p)
459 (display_prop_intangible_p): New functions.
460
461 * dispextern.h (display_prop_intangible_p): Add prototype.
462
463 * xdisp.c (dump_glyph_row): Show type of glyph->object.
464
4a27bdfb
GM
465 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
466 argument to sigprocmask.
467
468 * s/sco5.h (sigblock): Redefined to pass a pointer as second
469 argument to sigprocmask.
470
471 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
472 sigprocmask_set, and pass a pointer to it to sigprocmask.
473
474 * sysdep.c (sigprocmask_set): New variable.
475
476 * fileio.c (make_temp_name): Don't use `%s' in string passed to
477 report_file_error.
478
427ec082
SS
4792000-06-20 Sam Steingold <sds@gnu.org>
480
481 * xrdb.c: Don't declare xmalloc, xrealloc.
482
8972fe79 4832000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
484
485 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
486 (re_comp): Cast gettext return value to avoid complaints when
487 !HAVE_LIBINTL.
488
074b6efe
DL
4892000-06-20 Dave Love <fx@gnu.org>
490
f85c008a
DL
491 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
492 HAVE_GETTIMEOFDAY.
493
5700d2cc 494 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 495
d355bd8a 496 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
497
498 * m/alpha.h: Don't declare xmalloc, xrealloc.
499
0af4f205
DL
500 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
501
502 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
503
504 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
505
506 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
507 HAVE_GETWD.
508
074b6efe
DL
509 * keyboard.h (poll_for_input_1): Declare.
510
511 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
512
513 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
514
515 * doprnt.c: Don't declare xmalloc, xrealloc.
516
517 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
518 (getenv, ctime, getwd): Removed.
519 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
520
521 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
522 x_set_tool_bar_lines.
523
524 * config.in: Add HAVE_GETWD. Move some definitions above
525 machine/system includes.
526
68a5e97b
KH
5272000-06-20 Kenichi Handa <handa@etl.go.jp>
528
95417e1e
KH
529 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
530
68a5e97b
KH
531 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
532 contain information about ENCODING.
533
534 * fontset.c (FONTSET_ASCII): Use the first element of char table
535 for an ASCII font, not defalt slot.
536 (fontset_ref_via_base): If FONTSET doesn't contain information for
537 C, try the default fontset.
538 (make_fontset): Don't copy the default fontset.
539 (fontset_font_pattern): Likewise.
540 (accumulate_font_info): If ELT is nil, use the corresponding
541 element in the default fontset.
542
3b4fa1b2
DL
5432000-06-19 Dave Love <fx@gnu.org>
544
943e731c
DL
545 * syntax.c (Fparse_partial_sexp): Doc fix.
546
547 * regex.h: Test PROTOTYPES as well as __STDC__.
548
3b4fa1b2
DL
549 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
550 errno, strerror. Put text after #endif in comment.
551
552 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
553 pcc).
554
555 * xterm.c (x_frame_of_widget): Likewise.
556
cdf0357b
GM
5572000-06-19 Gerd Moellmann <gerd@gnu.org>
558
559 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
560 to Vfundamental_mode_abbrev_table.
561
562 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
563 bogus objects are marked. This slows down GC by ~80 percent, but
564 it might be worth trying when debugging GC-related problems.
565 This feature requires conservative stack marking to be enabled.
566
567 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
568 returns XLookupChars, reset `modifiers' to zero.
569
998e9f8c
DL
5702000-06-19 Dave Love <fx@gnu.org>
571
572 * mktime.c: Unprotoized.
573
d1504184
GM
5742000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
575
576 * data.c (set_internal): If variable is frame-local,
577 store the new value immediately into the frame parameter alist.
578
140c4ac6
KR
5792000-06-19 Ken Raeburn <raeburn@gnu.org>
580
14358466
KR
581 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
582 in the custom handler pointer.
583
140c4ac6
KR
584 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
585 value, or checks for CHAR_META can fail when Lisp_Object is a
586 union type.
587 * keymap.c (get_keyelt): Likewise.
588
10d7bf84
KH
5892000-06-19 Kenichi Handa <handa@etl.go.jp>
590
591 * ccl.h (struct ccl_program): New member eol_type.
592 (struct ccl_spec): New member cr_carryover.
593
594 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
595 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
596
597 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
598 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
599 (decode_eol_post_ccl): New function.
600 (decode_coding): Don't detect EOL format here for CCL based coding
601 systems.
602 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
603 decode_eol_post_ccl after running the CCL program.
604 (code_convert_region): Don't detect EOL format here for CCL based
605 coding systems.
606 (decode_coding_string): Likewise.
607
52e386c2
KR
6082000-06-18 Ken Raeburn <raeburn@gnu.org>
609
610 * charset.c (update_charset_table): Use XINT on "iso_final_char"
611 when treating it as an integer.
612
613 * coding.h (encode_coding_string): Declare.
614
615 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
616 it as an integer.
617
618 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
619 "xkeymap" to avoid shadowing the "enum map_type" value that needs
620 to be passed to get_local_map.
621
622 * sound.c (Fplay_sound): Don't call make_number on
623 Frun_hook_with_args count argument.
624
625 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
626 for lisp objects in X event structure data field, when lisp
627 objects are represented with unions.
628 (x_scroll_bar_to_input_event): Ditto.
629
b357b9d4
KR
6302000-06-16 Ken Raeburn <raeburn@gnu.org>
631
632 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
633 termination of string. Fix sense of test whether
634 Vline_number_display_limit is an integer.
b357b9d4 635
a871441d
GM
6362000-06-16 Gerd Moellmann <gerd@gnu.org>
637
a9021acd
GM
638 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
639 only if HAVE_X_WINDOWS.
640
6344985d
GM
641 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
642 of titles.
643
427ec082 644 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
645 out of bounds.
646
228b083e
EZ
6472000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
648
649 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
650 of its headers.
651
c25b53a2
KH
6522000-06-15 Kenichi Handa <handa@etl.go.jp>
653
654 * coding.c (decode_coding_emacs_mule): Always set src_base at the
655 start of the while loop.
656
a6981b11
GM
6572000-06-15 Gerd Moellmann <gerd@gnu.org>
658
e9924e52
GM
659 * atimer.c (alarm_signal_handler): Add forward declaration.
660
a6981b11
GM
661 * data.c (set_internal): Remove debug code.
662
25fa6deb
GM
6632000-06-14 Gerd Moellmann <gerd@gnu.org>
664
dce6b995
GM
665 * Makefile.in (bootstrap-temacs): Add `-I../src'.
666
9f817ea4
GM
667 * unexec.c (toplevel) [COFF]: Include coff.h.
668
669 * s/lynxos.h: New file.
670
671 * keymap.c (Fsingle_key_description): Enclose function key and
672 event symbol names in angle brackets.
673
8a4e3c0c
GM
674 * xdisp.c (setup_echo_area_for_printing): Call
675 message_log_maybe_newline if message_buf_print is not set.
676
677 * print.c (printchar, strout): Don't check message_buf_print
427ec082 678 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
679 function does something useful even when message_buf_print is
680 already set.
681
25fa6deb
GM
682 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
683 variables.
684 (ensure_echo_area_buffers): Initialize echo buffer's
685 truncate lines setting to nil.
686 (with_echo_area_buffer): Don't set the echo buffer's truncate
687 lines setting here.
8a4e3c0c 688 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
689 of message_truncate_lines.
690 (resize_mini_window): Handle case that lines are truncated.
691 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
692 message-truncate-lines.
693
694 * keyboard.c (read_char): Bind message-truncate-lines to t
695 while displaying a help-echo.
696
697 * lisp.h (Qmessage_truncate_lines): External declaration.
698
163dcff3
GM
6992000-06-13 Gerd Moellmann <gerd@gnu.org>
700
1681ead6
GM
701 * xdisp.c (Vline_number_display_limit): Renamed from
702 line_number_display_limit.
703 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
704 Extend documentation string. Initialize
705 Vline_number_display_limit to nil meaning no limit.
706 (decode_mode_spec): Use Vline_number_display_limit with its new
707 meaning.
708
163dcff3
GM
709 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
710
7112000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
712
713 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 714
163dcff3
GM
715 * xfns.c (x_set_frame_parameters): Comment fix.
716
717 * frame.c (store_frame_param): Call swap_in_global_binding if the
718 variable's current binding was chosen based on this frame.
719
720 * data.c (swap_in_global_binding): New function.
721
a704139d
EZ
7222000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
723
724 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
725 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
726
9b6610db
EZ
7272000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
728
729 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
730
c68833d2
JR
7312000-06-12 Jason Rumney <jasonr@gnu.org>
732
733 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
734
735 * w32.h (EMACS_W32_H): Renamed from _NT_H_
736
737 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
738
739 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
740
ed1056b3
GM
7412000-06-12 Gerd Moellmann <gerd@gnu.org>
742
743 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
744 (syms_of_xfaces): Defsubr Sdump_colors.
745 (x_free_colors): Don't treat b&w specially on default visual.
746 (x_free_dpy_colors): New function.
747 (free_face_colors): Don't check visual class; it's done
748 in x_free_colors.
749
750 * xterm.c (x_frame_of_widget): New function.
751 (x_alloc_nearest_color_for_widget): Use it.
752 (x_copy_dpy_color): New function.
753 (x_destroy_window): Free various colors.
754
5050a2ef
KH
7552000-06-12 Kenichi Handa <handa@etl.go.jp>
756
757 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
758
759 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
760
761 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
762
763 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
764
765 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
766
fb1b041d
DL
7672000-06-11 Dave Love <fx@gnu.org>
768
769 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
770
ff96b5f4
EZ
7712000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
772
773 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
774
db8eeecd
GM
7752000-06-11 Gerd Moellmann <gerd@gnu.org>
776
ed1056b3 777 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
778 to `XEvent *'.
779
49b71c5f
KH
7802000-06-10 Kenichi Handa <handa@etl.go.jp>
781
c479bd55
KH
782 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
783 (regex_compile): Fix the code for handling the case of single byte
784 char and multibyte char being mixed in a range within [...].
785
ff6a65c2
KH
786 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
787 and dst_multibyte members of coding.
788
49b71c5f
KH
789 * charset.c (update_charset_table): Update the table
790 bytes_by_char_head.
791 (init_charset_once): Initialize elements of bytes_by_char_head to
792 1 except for leading codes for private charases.
793
794 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
795 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
796 sequence.
797
9e80b57d
KR
7982000-06-09 Ken Raeburn <raeburn@gnu.org>
799
800 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
801 access the data it doesn't point to.
802
f83fe4b4
GM
8032000-06-08 Gerd Moellmann <gerd@gnu.org>
804
805 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 806 will be translated to a switch-frame event when reading the
f83fe4b4
GM
807 event queue. This is necessary because Emacs otherwise won't
808 perform a switch-frame to a new frame until some other event, for
809 example a keystroke event, forces it to do so. This has various
810 effects, one visible being that the cursor of a frame created with
811 C-x 5 2 or switched to with a window manager key binding like
812 A-TAB stays hollow because selected_window isn't on the newly
813 focused frame until the switch-frame is performed.
814
815 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
816 generating a switch-frame event if necessary.
817
818 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
819
820 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
821 it's an integer.
822
0890801b
KH
8232000-06-08 Kenichi Handa <handa@etl.go.jp>
824
825 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
826 charset.
827
173cbca8
GM
8282000-06-07 Gerd Moellmann <gerd@gnu.org>
829
3091c2a6
GM
830 * window.c (displayed_window_lines): Take empty lines at
831 the bottom of a window into account.
427ec082 832
f38952fe
GM
833 * window.c (displayed_window_lines): New function.
834 (Fmove_to_window_line): Use displayed_window_lines to determine
835 the number of lines to move, instead of using the window's height.
836
837 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
838 to stop reading, even if the form read sets point to a different
839 value when evaluated.
840
427ec082 841 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
842 put the cursor.
843
6ba6c818
KH
8442000-06-07 Kenichi Handa <handa@etl.go.jp>
845
846 * fileio.c (e_write): Free composition data if stored in
847 coding->cmp_data.
848
5f1aea9a
GM
8492000-06-06 Gerd Moellmann <gerd@gnu.org>
850
666852af
GM
851 * xdisp.c (display_line): Set row's and iterator's
852 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
853 Set cursor even if row ends in the middle of a character.
854 (dump_glyph_row): Print values of new flags.
855 (redisplay_window) <cursor movement in unchanged window>: When
856 point has been moved forward, and PT is at the end of the cursor
857 row, don't place the cursor in the next row if the cursor row ends
858 in the middle of a character or at ZV.
859
860 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
861 (struct glyph_row): Add starts_in_middle_of_char_p and
862 ends_in_middle_of_char_p.
863 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
864 ends_in_middle_of_char_p flag.
865 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
866
d13f3e2e
GM
867 * term.c (append_glyph): Revert change of 2000-06-06.
868
869 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
870 padding glyph not fitting on line as whole character not
871 fitting on line.
872
5f1aea9a
GM
873 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
874 this isn't true for images with `:ascent 100'.
875
10cda9b0
KH
8762000-06-06 Kenichi Handa <handa@etl.go.jp>
877
ed00559d
KH
878 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
879 as modified if it is originally unmodified.
880
10cda9b0
KH
881 * term.c (encode_terminal_code): Change the way to check if
882 terminal coding does any conversion.
883 (append_glyph): Set glyph->pixel_width correctly.
884
885 * xdisp.c (display_line): While checking line continuation, pay
886 attention to a padding glyph.
887
1969fae2
GM
8882000-06-05 Gerd Moellmann <gerd@gnu.org>
889
890 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
891
162ccef4
DL
8922000-06-05 Dave Love <fx@gnu.org>
893
f19f32dd
DL
894 * xdisp.c: Include fontset.h.
895
896 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
897
898 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
899
900 * dispnew.c: Conditionally include term.h.
901
902 * coding.h: Declare code_convert_string_norecord.
903
904 * frame.h (struct frame): Use volatile unconditionally.
905
906 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
907
908 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
909
910 * systime.h: Protect against multiple inclusion.
911 (timezone) [USG5_4]: Define as time_t.
912
913 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
914 (Foptimize_char_table, make_temp_name): Declare.
915
916 * Makefile.in (xdisp.o): Depend on fontset.h.
917
918 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
919
920 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
921 (Foptimize_char_table, make_temp_name): Declare.
922
427ec082 923 * s/irix4-0.h:
162ccef4
DL
924 * s/irix5-0.h:
925 * s/netbsd.h: Don't define autoconfiscated MATHERR.
926
2082fe81
DL
9272000-06-02 Dave Love <fx@gnu.org>
928
929 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
930
dcf671d2
GM
9312000-06-02 Gerd Moellmann <gerd@gnu.org>
932
933 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 934 result face, set flags in that face indicating that colors may not
dcf671d2
GM
935 be freed.
936
937 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
938 glyph, use the ASCII NUL character to determine the face.
939
d42122a3
DL
9402000-06-02 Dave Love <fx@gnu.org>
941
942 * sysdep.c: Conditionally include stdlib.h, unistd.h.
943 (VFORK_RETURN_TYPE): Remove.
427ec082 944
d42122a3
DL
945 * config.in: Add NO_MATHERR.
946
dd432f16
DL
9472000-06-01 Dave Love <fx@gnu.org>
948
90aa4ea8
DL
949 * cmds.c (internal_self_insert): Don't check
950 Vbefore_change_function, Vafter_change_function.
951
952 * insdel.c (signal_before_change, signal_after_change): Likewise.
953
954 * buffer.c (Vbefore_change_function, Vafter_change_function):
955 Variables and their initializations deleted.
956
2330c9d4
DL
957 * callint.c (Fcall_interactively): Doc fix.
958
dd432f16
DL
959 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
960
bf9e8804
DL
9612000-05-31 Dave Love <fx@gnu.org>
962
963 * textprop.c: Revert last change -- duplicated.
964
3694b4ab
GM
9652000-05-31 Gerd Moellmann <gerd@gnu.org>
966
967 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
968 in #if 0.
969
970 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
971
f14156cd
JR
9722000-05-31 Jason Rumney <jasonr@gnu.org>
973
8119aab8
JR
974 * search.c (Fre_search_forward, Fre_search_backward)
975 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
976
f14156cd
JR
977 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
978
4aab9be3
JR
9792000-05-30 Jason Rumney <jasonr@gnu.org>
980
981 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
982 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
983
984 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
985 member.
986
987 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
988 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
989 expand a nil default_filename.
990
991 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
992 pointer to glyph_to_pixel_coords, not a frame.
993
994 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
995 coding.h to dependencies.
996
997 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
998
999 * w32console.c (glyph_to_pixel_coords): Change first parameter to
1000 window pointer to be consistent with w32term.c and xterm.c.
1001
1002 * w32fns.c: Format and doc changes to bring closer to xfns.c.
1003 (VIETNAMESE_CHARSET): Define if not defined in system headers.
1004 (Qline_spacing, Qcenter): New variables.
1005 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
1006 (x_set_line_spacing): New function.
1007 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
1008 macros.
1009 (x_specified_cursor_type): New function.
1010 (x_set_cursor_type): Use it.
1011 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
1012 and icon strings.
1013 (validate_x_resource_name, x_get_resource_string): Measure lengths
1014 of external strings in bytes.
1015 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
1016 GetTextExtentPoint32 with NULL title.
1017 (Fx_create_frame): Initialize Qline_spacing.
1018 (w32_load_system_font): Initialize font->double_byte_p.
1019 (x_to_w32_charset): Use Vw32_charset_info_alist.
1020 (Image, busy cursor, tooltip functions): Merged changes from
1021 xfns.c. Not yet functional on Windows.
1022
1023 * w32gui.h (W32FontStruct): Add double_byte_p member.
1024
1025 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
1026 (emacs_button_translation): Use it.
1027 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1028 in `mask' to be set.
1029
1030 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1031 menu strings.
1032
1033 * w32term.c: Format and doc changes to bring closer to xterm.c.
1034 (w32_char_font_type): New enum.
1035 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1036 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1037 (w32_encode_char): New function.
1038 (x_encode_char): Removed.
1039 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1040 x_encode_char and w32_font_is_double_byte.
1041 (x_produce_image_glyph): Use image_ascent.
1042 (x_produce_glyphs): Use new version of w32_per_char_metric and
1043 handle NULL return value. Allow extra line spacing.
1044 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1045 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1046 w32_font_type member of glyph instead.
1047 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1048 (fast_find_position): Make sure not to consider rows not visible
1049 in the window.
1050 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1051 w32_menu_display_help with input blocked, as it can abort.
1052 (x_display_and_set_cursor): Choose cursor depending
1053 on buffer-local value of cursor_type.
1054 (x_draw_bar_cursor): Add parameter WIDTH.
1055
1056 * w32term.h (CP_DEFAULT): Define.
1057 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1058
10fc3187
GM
10592000-05-30 Gerd Moellmann <gerd@gnu.org>
1060
1061 * search.c (Fre_search_forward, Fre_search_backward)
1062 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1063
d0555360
KH
10642000-05-30 Kenichi Handa <handa@etl.go.jp>
1065
1066 * coding.c (detect_coding_iso2022): Fix code for checking
1067 CODING_CATEGORY_MASK_ISO_8_2.
1068
f1ad044f
SM
10692000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1070
1071 * regex.c (PREFETCH_NOLIMIT): New function.
1072 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1073
84ec3b4b
GM
10742000-05-29 Gerd Moellmann <gerd@gnu.org>
1075
66254a13
GM
1076 * syntax.c (find_defun_start): Move test for
1077 open_paren_in_column_0_is_defun_start outside of the loop.
1078
49e70dec
GM
1079 * xdisp.c (redisplay_window): Really switch buffers when
1080 displaying mode lines, and temporarily set selected_frame to the
1081 frame of the window that's redisplayed.
1082
84ec3b4b
GM
1083 * xfaces.c (free_realized_faces): Block/unblock input.
1084 (free_realized_multibyte_face): Ditto.
1085
869a3a14
DL
10862000-05-29 Dave Love <fx@gnu.org>
1087
1088 * textprop.c (Qkeymap): New variable.
1089 (syms_of_textprop): Intern it.
1090
1091 * keymap.c: Include intervals.h.
1092 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1093
1094 * Makefile.in (keymap.o): Depend on intervals.h.
1095
1096 * keyboard.c (menu_bar_items, tool_bar_items)
1097 (Fexecute_extended_command): Deal with `keymap' property.
1098 (read_key_sequence): Track map from `keymap' property as well as
1099 `local_map'.
1100
1101 * intervals.c (get_local_map): Extra arg to allow looking for
1102 `keymap' too.
1103
1104 * intervals.h (map_property): New enum.
1105 (get_local_map): Extra arg using it.
1106 (Qkeymap): Declare.
1107
84ec3b4b 1108 * lisp.h (get_local_map): Don't declare here.
869a3a14 1109
89d0c844
KH
11102000-05-29 Kenichi Handa <handa@etl.go.jp>
1111
1112 * Makefile.in (callproc.o): Depend on composite.h.
1113
1114 * callproc.c: Include composite.h.
1115 (Fcall_process): Handle composition correctly.
1116
1117 * coding.h (coding_allocate_composition_data): Extern it.
1118 (coding_restore_composition): Likewise.
1119
1120 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1121 yet allocated, finish decoding with result
1122 CODING_FINISH_INSUFFICIENT_CMP.
1123 (coding_allocate_composition_data): Make it non-static.
1124 (coding_restore_composition): Likewise.
1125
797a084a
EZ
11262000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1127
1128 * charset.c (syms_of_charset): Revert last change.
1129
cf872af5
EZ
11302000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1131
1132 * term.c (produce_glyphs): Treat characters from the eight-bit-*
1133 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1134 Handa.
1135
5b1ae051
EZ
11362000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1137
1138 * charset.c (syms_of_charset): Set width of character sets
1139 eight-bit-control and eight-bit-graphic to 1 column.
1140
34ec9ebe
GM
11412000-05-26 Gerd Moellmann <gerd@gnu.org>
1142
1143 * config.in (HAVE_SPEED_T): New define.
1144
1145 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1146 `extern speed_t'.
1147
dd854dc2
DL
11482000-05-26 Dave Love <fx@gnu.org>
1149
1150 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1151
1152 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1153 (Fsubr_arity): New function.
1154 (syms_of_data): Install them.
1155
ba9f8f95
KH
11562000-05-26 Kenichi Handa <handa@etl.go.jp>
1157
0f3e0672
KH
1158 * charset.c (init_charset_once): Set the table bytes_by_char_head
1159 correctly.
1160
cebefb44
KH
1161 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1162 the default fontset to what Emacs uses by default.
0f3e0672
KH
1163 (check_registry_encoding): This function deleted.
1164 (Fset_fontset_font): Remove the adhoc condition for the default
1165 fontset. Allow cons in FONTNAME.
cebefb44 1166
0f3e0672
KH
1167 * fns.c (map_char_table): Ignore char-table entries for
1168 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1169
7a18af49
KR
11702000-05-25 Ken Raeburn <raeburn@gnu.org>
1171
1172 * emacs.c (main): Initialize keyboard syms before initializing
1173 window code, so face names are available.
1174
d2af47df
SM
11752000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1176
1177 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1178 of an anchor at the beginning of a shy-group.
1179
fc6a6a4e
GM
11802000-05-25 Gerd Moellmann <gerd@gnu.org>
1181
1182 * xdisp.c (handle_invisible_prop): Don't try to skip over
1183 invisible text if end of text is already reached.
1184
005f0d35
DL
11852000-05-25 Dave Love <fx@gnu.org>
1186
02513cdd
DL
1187 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1188
005f0d35
DL
1189 * coding.c (encode_eol): Add null statement after label.
1190
89f6ca4e
EZ
11912000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1192
1193 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1194 2000-05-20.
1195
a4e1759e
KH
11962000-05-25 Kenichi Handa <handa@etl.go.jp>
1197
1198 * ccl.c (ccl_driver): Fix previous change.
1199
eacfd7fe
KH
12002000-05-25 Kenichi Handa <handa@etl.go.jp>
1201
46ab33a9
KH
1202 * coding.c (run_pre_post_conversion_on_str): Set point to the
1203 beginning of buffer before calling coding->post_read_conversion.
1204 (decode_coding_string): Give correct args to
1205 run_pre_post_conversion_on_str.
1206 (encode_coding_string): Likewise.
1207
eacfd7fe
KH
1208 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1209 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1210 eight-bit-graphic correctly.
1211
f8569325
DL
12122000-05-24 Kenichi HANDA <handa@etl.go.jp>
1213
1214 * fileio.c (Finsert_file_contents): Even if a file is not found,
1215 execute codes for setting up coding system. Call
1216 after-insert-file-functions unconditionally.
1217
04545643
GM
12182000-05-24 Gerd Moellmann <gerd@gnu.org>
1219
1220 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1221 BSD_PGRPS are not defined.
1222
747d90ea
KH
12232000-05-24 Kenichi Handa <handa@etl.go.jp>
1224
1225 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1226 DESCRIPTION.
1227 (syms_of_charset): Avoid building same strings.
1228
716e3b88
GM
12292000-05-23 Gerd Moellmann <gerd@gnu.org>
1230
1231 * lread.c (Fload): Add a comment about the meaning of
1232 Vuser_init_file being t.
1233
1234 * puresize.h (BASE_PURESIZE): Increase to 675000.
1235
1236 * s/gnu-linux.h (setpgrp): Don't define it here because this
1237 prevents compilation on GNU/Linux systems with glib 2.2.
1238
1239 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1240 as setpgid.
427ec082 1241
9aeb39fa
EZ
12422000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1243
1244 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1245 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1246 version.
1247 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1248
29ced61b
KH
12492000-05-23 Kenichi Handa <handa@etl.go.jp>
1250
0574a2ed
KH
1251 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1252 unconditionally.
1253
3d80f24d
KH
1254 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1255
1256 * term.c (encode_terminal_code): Set coding->src_multibyte
1257 properly.
1258
29ced61b
KH
1259 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1260
d7e00792
KH
12612000-05-22 Kenichi Handa <handa@etl.go.jp>
1262
c9d80d38
KH
1263 * keyboard.c (read_char): Allow character codes 128..255 to be
1264 handled by input-method-function.
1265
d7e00792
KH
1266 * insdel.c (adjust_markers_for_replace): Fix previous change.
1267 (adjust_after_replace): If PREV_TEXT is nil, call
1268 adjust_markers_for_insert, not adjust_markers_for_replace.
1269
087121cc 12702000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1271
087121cc
GM
1272 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1273 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1274 [HAVE_GRANDPT]: Define.
1275 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1276
1277 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1278 like SYSV_PTYS.
1279
1280 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1281
1282 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1283
c9671f81
KH
12842000-05-20 Kenichi Handa <handa@etl.go.jp>
1285
1286 The following changes are to handle 8-bit characters in a
1287 multibyte buffer/string without facing with byte combining
1288 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1289 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1290
1291 * Makefile.in (fns.o): Depend on charset.h.
1292
1293 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1294 convert it to unibyte.
1295 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1296
1297 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1298 apparent char boundary.
1299 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1300 0x80..0x9F to/from multibyte form.
1301
1302 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1303 to unibyte.
1304
1305 * callproc.c (Fcall_process): Always encode an argument string if
1306 it is multibyte. Setup src_multibyte and dst_multibyte members of
1307 process_coding properly.
ce75fd23 1308
c9671f81
KH
1309 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1310 SPLIT_NON_ASCII_CHAR.
1311
1312 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1313 as is.
1314 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1315
1316 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1317 variables.
1318 (SPLIT_CHARACTER_SEQ): This macro deleted.
1319 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1320 valid.
1321 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1322 and eight-bit-graphic.
1323 (char_to_string): Likewise. Signal an error for too large
1324 character code.
1325 (char_printable_p): Return 0 for 8-bit characters.
1326 (update_charset_table): Update iso_charset_table only when a final
1327 character is non-negative.
1328 (find_charset_in_text): Renamed from find_charset_in_str.
1329 Arguments and return value changed. Callers changed.
1330 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1331 be -1 if CHARSET is used only internally.
1332 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1333 eight-bit-graphic.
1334 (Fcharset_after): Simplified.
1335 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1336 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1337 (multibyte_chars_in_text): Simplified by assuming there's no
1338 invalid multibyte sequence.
1339 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1340 str_as_unibyte): New functions.
1341 (Fstring): Simpified by assuming that byte combining never
1342 happens.
1343 (init_charset_once): Initialization for
1344 LEADING_CODE_8_BIT_CONTROL.
1345 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1346 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1347 eight-bit-control and eight-bit-graphic.
1348
1349 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1350 CHARSET_8_BIT_GRAPHIC): New macros.
1351 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1352 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1353 (CHARSET_REVERSE_CHARSET): Likewise.
1354 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1355 eight-bit-graphic.
1356 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1357 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1358 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1359 encounter an invalid multibyte sequence.
1360 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1361 sequence is always valid.
1362 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1363 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1364 macros.
1365 (CHAR_STRING): For 8-bit characters, call char_to_string.
1366 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1367 multibyte sequence is always valid.
1368 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1369 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1370 str_as_unibyte): Extern them.
1371 (BCOPY_SHORT): Fix a bug.
1372 (CHAR_LEN): This macro deleted. Callers changed to use
1373 CHAR_BYTES.
1374 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1375 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1376 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1377
bd4bde7f 1378 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1379 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1380 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1381 EMIT_BYTES): New macros.
1382 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1383 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1384 macros deleted.
1385 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1386 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1387 check the validity of multibyte sequence.
1388 (decode_coding_emacs_mule): New function.
1389 (encode_coding_emacs_mule): New macro.
1390 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1391 the source.
1392 (DECODE_ISO_CHARACTER): Just return a character code.
1393 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1394 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1395 EMIT_CHAR to produced decoded characters. Exit the loop only by
1396 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1397 block here.
1398 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1399 only position codes for an invalid character.
1400 (encode_designation_at_bol): Return new destination pointer. 5th
1401 arg DSTP is changed to DST.
1402 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1403 from the source by ONE_MORE_CHAR. Don't handle the case of last
1404 block here.
1405 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1406 macros deleted.
1407 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1408 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1409 TWO_MORE_BYTES to fetch a byte from the source.
1410 (encode_eol): Pay attention to coding->src_multibyte.
1411 (detect_coding, detect_eol): Preserve members src_multibyte and
1412 dst_multibyte.
1413 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1414 (encoding_buffer_size): Set magnification to 3 for all coding
1415 systems that require encoding.
1416 (ccl_coding_driver): For decoding, be sure that the result is
1417 valid multibyte sequence.
1418 (decode_coding): Initialize coding->errors and coding->result.
1419 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1420 and raw-text, always call decode_eol. Handle the case of last
1421 block here. If not coding->dst_multibyte, convert the resulting
1422 sequence to unibyte.
1423 (encode_coding): Initialize coding->errors and coding->result.
1424 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1425 and raw-text, always call encode_eol. Handle the case of last
1426 block here.
1427 (shrink_decoding_region, shrink_encoding_region): Detect cases
1428 that we can't skip data more rigidly.
1429 (code_convert_region): Setup src_multibyte and dst_multibyte
1430 members of coding. For decoding, if the buffer is multibyte,
1431 convert the source sequence to unibyte in advance. For encoding,
1432 if the buffer is multibyte, convert the resulting sequence to
1433 multibyte afterward.
1434 (run_pre_post_conversion_on_str): New function.
1435 (code_convert_string): Deleted and divided into the following two.
1436 (decode_coding_string, encode_coding_string): New functions.
1437 (code_convert_string1, code_convert_string_norecord): Call one of
1438 above.
1439 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1440 MAKE_NON_ASCII_CHAR.
1441 (Fset_terminal_coding_system_internal,
1442 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1443 and dst_multibyte members.
1444 (init_coding_once): Initialize iso_code_class with new enum
1445 ISO_control_0 and ISO_control_1.
1446
1447 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1448 devided into ISO_control_0 and ISO_control_1.
1449 (struct coding_system): New members src_multibyte, dst_multibyte,
1450 errors, and result. Delete member fake_multibyte.
1451 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1452 nonzero.
1453 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1454 nonzero.
1455
1456 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1457 (Faset): Likewise.
1458
1459 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1460 multibyte form.
1461 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1462 combining occurs.
1463 (Ftranspose_region): Delete codes for handling byte combining.
1464
1465 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1466 dst_multibyte members of coding. On handling REPLACE on unibyte
1467 buffer, convert the result of decode_coding to unibyte. On
1468 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1469 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1470 multibyteness of the source (buffer or string).
1471
1472 * fns.c (concat): Handle 8-bit characters correctly.
1473 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1474 unibyte in the result.
1475 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1476 valid multibyte form in the result.
1477 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1478 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1479 return -1, signal an error.
1480 (base64_encode_1): New arg MULTIBYTE. Get each character by
1481 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1482 character is found, return -1.
1483 (Fbase64_decode_region): Delete codes for handling byte-combining.
1484 Treat each decoded byte as a unibyte character.
1485 (Fbase64_decode_string): Return unibyte string.
1486 (Fcompare_strings, concat, string_byte_to_char): Use
1487 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1488 FETCH_STRING_CHAR_ADVANCE.
1489 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1490 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1491
1492 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1493 SPLIT_NON_ASCII_CHAR.
1494 (fontset_ref_via_base, fontset_set): Likewise
1495
1496 * insdel.c (adjust_markers_for_record_delete): Deleted.
1497 (adjust_markers_for_insert): Argument changed. Caller changed.
1498 (adjust_markers_for_replace): Likewise.
1499 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1500 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1501 (copy_text): Delete unused local varialbe c_save. For converting
1502 to multibyte, be sure to make all 8-bit characters in valid
1503 multibyte form.
1504 (count_size_as_multibyte): Handle 8-bit characters correctly.
1505 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1506 adjust_after_replace, replace_range, del_range_2)
1507 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1508 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1509 adjust_after_replace, replace_range, del_range_2) Delete codes for
1510 handling byte combining.
1511 (adjust_before_replace): Deleted.
427ec082 1512
c9671f81
KH
1513 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1514 SPLIT_NON_ASCII_CHAR.
1515 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1516 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1517 unconditionally.
1518 (Fkey_description): Likewise.
1519
1520 * lread.c (read1): On reading multibyte string, be sure to make
1521 all 8-bit chararacters in valid multibyte form.
1522 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1523
1524 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1525 unconditionally.
1526
1527 * process.c (Fstart_process): GCPRO current_dir before calling
1528 Ffind_operation_coding_system. Encode arguments here.
1529 (create_process): Don't encode arguments here. Setup
1530 src_multibyte and dst_multibyte members of struct coding.
1531 (read_process_output): Setup src_multibyte and dst_multibyte
1532 members of struct coding. If the output is to multibyte buffer,
1533 always decode the output of the process. Adjust the
1534 representation of 8-bit characters to the multibyteness of the
1535 output.
1536 (send_process): Setup coding->src_multibyte according to the
1537 multibyteness of the source.
1538
1539 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1540 unconditionally.
1541 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1542 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1543
1544 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1545 CHAR_LEN.
1546
1547 * w16select.c (Fw16_set_clipboard_data): Setup members
1548 src_multibyte and dst_multibyte of coding. Adjusted for the
1549 change for find_charset_in_str.
1550 (Fw16_get_clipboard_data): Likewise.
1551
1552 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1553 dst_multibyte of coding.
1554 (x_to_w32_font): Likewise.
1555
1556 * w32select.c (Fw32_set_clipboard_data): Setup members
1557 src_multibyte and dst_multibyte of coding. Adjusted for the
1558 change for find_charset_in_str.
1559 (Fw32_get_clipboard_data): Likewise.
1560
1561 * xdisp.c (get_next_display_element): Handle 8-bit characters
1562 correctly.
1563 (next_element_from_display_vector): Use CHAR_BYTES instead of
1564 CHAR_LEN.
1565 (disp_char_vector): Use SPLIT_CHAR instead of
1566 SPLIT_NON_ASCII_CHAR.
1567
1568 * xselect.c (selection_data_to_lisp_data): Setup members
1569 src_multibyte and dst_multibyte of coding. Adjusted for the
1570 change for find_charset_in_str.
1571 (lisp_data_to_selection_data): Likewise.
1572
5f64c9e0
GM
15732000-05-19 Gerd Moellmann <gerd@gnu.org>
1574
2b63d473
GM
1575 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1576 buffer.
1577
5f64c9e0
GM
1578 * dispextern.h (Vimage_types): Add extern declaration.
1579
1580 * xdisp.c (Vimage_types): Moved here from xfns.c.
1581 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1582
1583 * xfns.c (Vimages_types): Moved to xdisp.c.
1584 (syms_of_xfns): Move `image-types' to xdisp.c.
1585
1586 * w32fns.c (Vimage_types): Removed.
1587 (syms_of_w32fns): Remove `image-types'.
1588
813086ea
KH
15892000-05-18 Kenichi Handa <handa@etl.go.jp>
1590
1591 * fns.c (map_char_table): Pay attention to character number of
1592 charset. Check the validity of charset at the first level. For
1593 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1594 the default value.
1595
1596 * fontset.c: Include "buffer.h".
1597 (fs_load_font): If the face has fontset, record the face ID in
1598 that fontset.
1599 (Finternal_char_font): New function.
1600 (accumulate_font_info): New function.
1601 (Ffontset_info): Rewritten for the new fontset implementation.
1602 (syms_of_fontset): Register Vdefault_fontset in the first element
1603 of Vfontset_table. Include Vdefault_fontset in
1604 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1605 function.
1606
bdaebbf0
DL
16072000-05-16 Dave Love <fx@gnu.org>
1608
1609 * m/iris5d.h: Deleted -- unused.
1610
cb613bb8
GM
16112000-05-16 Gerd Moellmann <gerd@gnu.org>
1612
b15f3b77
GM
1613 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1614 `invalid' instead of `illegal'.
1615
1616 * indent.c (Fmove_to_column): When ending within a tab, insert
1617 spaces first so that markers at the end of the tab get adjusted.
1618
835c1b36
GM
1619 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1620 buffer list that wasn't selected in that frame.
1621
cb613bb8
GM
1622 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1623 is needed on mescaline, use a 2 char prefix, and call
1624 make_temp_name with second arg non-zero.
1625
1626 * fileio.c (make_temp_name): New function, extracted from
1627 Fmake_temp_name.
1628 (Fmake_temp_name): Use it.
1629
f685bea9
EZ
16302000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1631
1632 * window.c (coordinates_in_window): Subtract 1 when computing
1633 right_x.
1634
a1b8d58b
GM
16352000-05-15 Gerd Moellmann <gerd@gnu.org>
1636
1637 * Makefile.in (lisp): Add env.elc.
1638
1639 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1640
a265079f
GM
16412000-05-12 Gerd Moellmann <gerd@gnu.org>
1642
1643 * search.c (Freplace_match): Handle case of `\N' in the
1644 replacement when there's no group N.
1645
da4496b6
GM
16462000-05-11 Gerd Moellmann <gerd@gnu.org>
1647
0ace421a
GM
1648 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1649 of the message to message_dolog.
1650
1172eb8d
GM
1651 * keyboard.c (read_char): Don't clear current message for help
1652 events; let the code handling help events handle this. Change
1653 code detecting help events that should be ignored.
1654
da4496b6
GM
1655 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1656 we're interating over a string.
1657
0623e40f
DL
16582000-05-09 Dave Love <fx@gnu.org>
1659
1660 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1661 that offset before writing. Move gcpro region past call of
1662 Ffile_regular_p.
1663
bae2503b
DL
16642000-05-04 Dave Love <fx@gnu.org>
1665
1666 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1667
ec82fb2f
GM
16682000-05-04 Gerd Moellmann <gerd@gnu.org>
1669
1670 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1671 of inserted characters when BUF equals the current buffer, and PT
1672 is in front of or equal to FROM.
1673
cbf18892
GM
16742000-05-03 Gerd Moellmann <gerd@gnu.org>
1675
4ff40dd0
GM
1676 * xdisp.c (handle_single_display_prop): If display property value
1677 is invalid, or something not supported on the frame, restore
1678 iterator's position to what it was initially. Make sure to return
1679 0 for invalid and unsupported property values.
1680
cbf18892
GM
1681 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1682 that x_per_char_metric returns null.
1683
1b0672c3
GM
16842000-05-02 Gerd Moellmann <gerd@gnu.org>
1685
576da55d
GM
1686 * xterm.h (struct face): Add forward declaration.
1687 (struct image): Ditto.
1688 (image_ascent): Add prototype.
1689
1690 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1691 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1692 image_ascent instead of using IMAGE_ASCENT.
1693
1694 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1695 (IMAGE_ASCENT): Removed.
1696
1697 * xfns.c (Qcenter): New variable.
1698 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1699 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1700 (image_ascent): New function.
1701 (lookup_image): Recognize `:ascent center'.
1702 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1703 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1704 (xbm_load): Don't set image's ascent here.
1705 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1706 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1707 check ascent values here.
1708 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1709 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1710 (syms_of_xfns): Initialize Qcenter.
1711
1b0672c3
GM
1712 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1713 to the limits, increase the limits.
1714
0d7811ed
KH
17152000-05-01 Kenichi Handa <handa@etl.go.jp>
1716
1717 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1718 Check Vfont_encoding_alist against the full name of the opened
1719 font.
1720
a943a5ca
GM
17212000-04-28 Gerd Moellmann <gerd@gnu.org>
1722
1723 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1724 taller than the window.
1725
5dba1e29
KH
17262000-04-28 Kenichi Handa <handa@etl.go.jp>
1727
1728 * xfaces.c (realize_x_face): Fix the argument of the second
1729 xassert. BASE_FACE may not be a face for ASCII.
1730
353964e3
GM
17312000-04-27 Gerd Moellmann <gerd@gnu.org>
1732
c76e04a8
GM
1733 * print.c (print_object): Treat print-length < 0 as nil.
1734
1735 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1736
1737 * s/freebsd.h (TERMCAP_OBJ): Removed.
1738 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1739
1740 * lread.c (read1): Don't treat period followed by certain
1741 characters as symbol start.
1742
1743 * xfns.c (slurp_file): New function.
1744 (xbm_image_p): Handle case of in-memory XBM files.
1745 (xbm_scan): Rewritten to work on memory buffers instead of files.
1746 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1747 Work on memory buffers instead of files. If DATA is null test
1748 if buffer looks like an in-memory XBM file.
1749 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1750 memory buffers instead of files.
1751 (xbm_file_p): New function.
1752 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1753
353964e3
GM
1754 * lread.c (end_of_file_error): New function.
1755 (read1): Call it instead of signaling `end-of-file' directly.
1756
427ec082 1757 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1758 with Fprinc instead of Fprin1.
1759
24d744ac
KR
17602000-04-26 Ken Raeburn <raeburn@gnu.org>
1761
1762 * window.c (freeze_window_start): Check that minibuffer scroll
1763 window isn't nil before extracting the window structure pointer
1764 from it.
1765
1766 * undo.c (record_delete): If we hit the end of the undo list, stop
1767 picking elements apart.
1768
7464346d
GM
17692000-04-26 Gerd Moellmann <gerd@gnu.org>
1770
1771 * xdisp.c (display_line): If lines are continued, restore
1772 iterator's ascent/descent information to the values before the
1773 first glyph not fitting on the line.
1774
612839b6
GM
17752000-04-25 Gerd Moellmann <gerd@gnu.org>
1776
1777 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1778 positions in glyph matrix. Don't compute new window end
1779 positions.
1780
1781 * dispnew.c (increment_matrix_positions): Renamed from
1782 increment_glyph_matrix_buffer_positions.
1783 (increment_row_positions): Renamed from
1784 increment_glyph_row_buffer_positions.
1785
1786 * dispextern.h: Change names of renamed functions from dispnew.c
1787 in prototypes.
1788
cc181e95
GM
17892000-04-24 Gerd Moellmann <gerd@gnu.org>
1790
abfcc168
GM
1791 * fileio.c (Fdo_auto_save): Create directories for auto-save
1792 list file if necessary.
1793
cc181e95
GM
1794 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1795 from buffer or frame.
1796 (automatic_hscrolling_p): New variable.
1797 (hscroll_windows): Scroll windows horizontally only if automatic
1798 hscrolling is allowed.
1799 (syms_of_xdisp): New variable `automatic-hscrolling'.
1800
1801 * frame.h (struct frame): Add member extra_line_spacing.
1802
1803 * xfns.c (x_set_line_spacing): New function.
1804 (Fx_create_frame): Set line spacing from resources.
1805 (Qline_spacing): New variable.
1806 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1807
cc181e95
GM
1808 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1809
1810 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1811 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1812 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1813 extra_line_spacing from default value.
1814 (init_buffer_once): Initialize default value of extra_line_spacing.
1815
1816 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1817 and extra3.
1818
1819 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1820 prompt_width. Add extra line spacing.
1821
1822 * term.c (produce_glyphs): Remove reference to struct it's
1823 prompt_width.
1824
1825 * dispextern.h (struct it): Remove member prompt_width, add
1826 extra_line_spacing.
1827
58827478
GM
18282000-04-22 Gerd Moellmann <gerd@gnu.org>
1829
1830 * dispnew.c (update_frame_line): When writing a whole line, make
1831 sure cursor is in the right row afterwards, otherwise a use of
1832 capability `ch' in cmgoto might leave the cursor in the row below.
1833
25a87f42
GM
18342000-04-21 Gerd Moellmann <gerd@gnu.org>
1835
1836 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1837
1838 * keyboard.c (timer_check): Fix typo in comment.
1839
54edf5c2
KH
18402000-04-21 Kenichi Handa <handa@etl.go.jp>
1841
1842 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1843 name change: ch -> character.
1844
3a64eef5
GM
18452000-04-20 Gerd Moellmann <gerd@gnu.org>
1846
1847 * keyboard.c (echo_message_buffer): New variable.
1848 (echo_now): Set echo_message_buffer to the echo area buffer used
1849 to display the echo.
1850 (cancel_echoing): Reset echo_message_buffer to nil.
1851 (read_char): Code rewritten that handles canceling an echo or
1852 echoing a dash, respectively.
1853
1854 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1855 directory doesn't exist.
1856
6142fdcb
DL
18572000-04-19 Dave Love <fx@gnu.org>
1858
1859 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1860 (concat): Don't allow numeric args.
1861 (Fconcat): Doc change.
6142fdcb 1862
ac6b5352
SM
18632000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1864
1865 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1866 instead define end_match(1|2) more carefully.
1867 Use GET_CHAR_BEFORE_2 for `begline'.
1868
cb9215e4
GM
18692000-04-19 Gerd Moellmann <gerd@gnu.org>
1870
5e3dac3f
GM
1871 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1872 on 64-bit systems where NULL is defined as `0'.
1873
1874 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1875 the `variable argument list' to make it work on Alpha.
1876
cb9215e4
GM
1877 * m/alpha.h (_LP64) [!_LP64]: Define.
1878 (ORDINARY_LINK): Define for NetBSD.
1879
1880 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1881
f532dca0
DL
18822000-04-19 Dave Love <fx@gnu.org>
1883
c750667e
DL
1884 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1885 change.
1886
1887 * Makefile.in (LIBS): Don't use.
1888 (GETLOADAVG_OBJ): Define again.
1889 (otherobj): Add GETLOADAVG_OBJ.
1890
f532dca0
DL
1891 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1892
1c7e22fd
GM
18932000-04-18 Gerd Moellmann <gerd@gnu.org>
1894
f6d3257b
GM
1895 * lread.c (read_filtered_event): Cancel and start busy cursor.
1896
427ec082 1897 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1898 that the per-character metrics may be null.
1899
e10f64e7
GM
19002000-04-17 Gerd Moellmann <gerd@gnu.org>
1901
0daee095
GM
1902 * buffer.c (clone_per_buffer_values): New function.
1903 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1904 clone_per_buffer_values if CLONE is not nil.
1905
e10f64e7
GM
1906 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1907
38687d43
DL
19082000-04-16 Dave Love <fx@gnu.org>
1909
1910 * Makefile.in: Remove obsolete localcpp stuff.
1911 (GETLOADAVG_OBJ): Don't define.
1912 (obj): Move LIBOBJS...
1913 (otherobj): ... to here.
1914 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1915 whitespace-only lines after the continuation (Irix).
1916
c21c7262
GM
19172000-04-14 Gerd Moellmann <gerd@gnu.org>
1918
1919 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1920
1921 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1922
314767c0
DL
19232000-04-14 Dave Love <fx@gnu.org>
1924
1925 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1926 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1927 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1928 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1929 NLIST_STRUCT.
1930
1931 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1932 autoconfiscated HAVE_GETLOADAVG.
1933
1934 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1935 BROKEN_MKTIME.
1936
a2522dca
GM
19372000-04-14 Gerd Moellmann <gerd@gnu.org>
1938
1939 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1940 (fill_in_lock_file_name): Avoid existing files that aren't
1941 links.
1942
33744b5d
DL
19432000-04-14 Dave Love <fx@gnu.org>
1944
c21c7262 1945 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1946 (INTERVAL_SRC): Convert to make variable.
1947 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1948 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1949 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1950 add LIBOBJS.
1951 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1952 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1953 (shortlisp): Add facemenu, float-sup, frame.
1954 (SOME_MACHINE_LISP): Remove them from here.
1955 (LIBES): Change unused LDLIBS to autoconf LIBS.
1956
1957 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1958
9d3d5916
KH
19592000-04-14 Kenichi Handa <handa@etl.go.jp>
1960
1961 * composite.c (update_compositions): If FROM and TO are not in a
1962 valid range, do nothing.
1963
198e3c7a
GM
19642000-04-13 Gerd Moellmann <gerd@gnu.org>
1965
1966 * tparam.c (tparam1): Abort when encountering an unknown
1967 `%'-specifier.
1968
1969 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1970 terminfo.o.
1971
1972 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1973 as TERMCAP_OBJ.
1974
055a28c9
EZ
19752000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1976
1977 * fileio.c (a_write): Remove redundant semi-colons.
1978 (e_write): Return -1 if failed to write all the data.
1979 This fixes the changes made at 1999-12-15.
1980
f5c75033
DL
19812000-04-12 Dave Love <fx@gnu.org>
1982
1983 * fns.c (mapcar1): Test for null vals to support mapc.
1984 (Fmapc): New function.
1985
0c3cfc51
EZ
19862000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1987
1988 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1989 (IT_frame_up_to_date): Support the buffer local value of
1990 cursor-type, if defined.
1991
33465a31
DL
19922000-04-10 Dave Love <fx@gnu.org>
1993
1994 * editfns.c (preceding-char, following-char): Doc fix.
1995
6ed56568
KR
19962000-04-10 Ken Raeburn <raeburn@gnu.org>
1997
1998 * Makefile.in (temacs): Revert 2000-03-12 change.
1999
7cf80d4e
JR
20002000-04-10 Jason Rumney <jasonr@gnu.org>
2001
2002 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
2003
34f3f342
GM
20042000-04-10 Gerd Moellmann <gerd@gnu.org>
2005
1a1b1895
GM
2006 * xdisp.c (setup_echo_area_for_printing): Choose an echo
2007 area buffer, if it's not set up yet.
2008
34f3f342
GM
2009 * indent.c (compute_motion): Set immediate_quit.
2010
be0dbdab
GM
20112000-04-09 Gerd Moellmann <gerd@gnu.org>
2012
c45be9ac
GM
2013 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
2014 variable.
2015 (realize_tty_face): Suppress boldness if colors are the inverse of
2016 the default colors, and tty_suppress_bold_inverse_default_colors_p
2017 is set.
2018 (Ftty_suppress_bold_inverse_default_colors): New function.
2019 (syms_of_xfaces): Defsubr it.
2020
be0dbdab
GM
2021 * buffer.c (Frestore_buffer_modified_p): New function.
2022 (syms_of_buffer): Defsubr it.
2023
e8413c3b
KR
20242000-04-08 Ken Raeburn <raeburn@gnu.org>
2025
87f67317
KR
2026 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2027 charset id (int) argument, not a charset (Lisp_Object).
2028
e8413c3b
KR
2029 * coding.h (code_convert_string): Declare.
2030 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2031 object, as the fourth argument to code_convert_string.
2032
2033 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2034 value.
2035 (Fset_fontset_font): Use EQ to compare lisp objects.
2036
7c752c80
KR
20372000-04-05 Ken Raeburn <raeburn@gnu.org>
2038
c0333abc
KR
2039 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2040 a pointer that looks like a lisp object.
2041 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2042 zero, instead see whether it's an integer object, since they can't
2043 have intervals.
2044 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2045
7c752c80
KR
2046 * dispnew.c (allocate_matrices_for_frame_redisplay,
2047 direct_output_forward_char): Use X(U)INT and make_number as needed
2048 to convert between (unsigned) int values and lisp integers.
2049 * keyboard.c (read_key_sequence): Likewise.
2050 * lread.c (substitute_object_recurse): Likewise.
2051 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2052 * minibuf.c (do_completion, Fminibuffer_complete_word,
2053 Fminibuffer_completion_help): Likewise.
2054 * term.c (produce_special_glyphs): Likewise.
2055
2056 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2057 * print.c (print_preprocess, print_object): Likewise.
2058
2059 * search.c (compile_pattern): Use NILP when checking for nil.
2060
74e49b38
KR
2061 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2062 __OPTIMIZE__]: Provide a GNU C macro version that handles
2063 lisp-object unions.
2064 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2065 field, to better cope with ENABLE_CHECKING and calls that modify a
2066 Lisp_Object using its old value.
2067
685e5ed2
GM
20682000-04-04 Gerd Moellmann <gerd@gnu.org>
2069
c407c570
GM
2070 * window.c (compare_window_configurations): Signal an error
2071 if parameters C1 or C2 aren't window configurations.
2072
685e5ed2
GM
2073 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2074 AFTER_POTENTIAL_GC calls around calls to functions that can
2075 signal an error and thus invoke the debugger.
2076
587a49ab
GM
20772000-04-03 Gerd Moellmann <gerd@gnu.org>
2078
62f20204
GM
2079 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2080 an error if decoding fails.
2081
587a49ab
GM
2082 * keyboard.c (lispy_mouse_names): Variable removed.
2083 (Vlispy_mouse_stem): New variable.
2084 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2085 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2086 for any mouse button number. Increase size of mouse_syms and
2087 button_down_location as needed. Call modify_event_symbol with
2088 different arguments.
2089 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2090 Call modify_event_symbol with different arguments.
2091 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2092 for any button number. Call modify_event_symbol with different
2093 arguments.
2094 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2095 Accept a string for NAME_ALIST_OR_STEM.
2096
2097 * lisp.h (larger_vector): Add prototype.
2098
2099 * fns.c (larger_vector): Make externally visible.
2100
2101 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2102
2d1675e4
SM
21032000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2104
2105 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2106 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2107 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2108 we are between str1 and str2.
2109 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2110 (PATFETCH): Use `TRANSLATE'.
2111 (PATFETCH_RAW): Fetch multibyte char if applicable.
2112 (PATUNFETCH): Remove.
2113 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2114 When writing a char, write it directly into the pattern buffer rather
2115 than going needlessly through a temp char-array.
2116 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2117 multibyte magic and remove the useless `#ifdef emacs'.
2118 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2119 buffer.
2120
2121 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2122 conditional on `emacs'.
2123
2124 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2125
cc2d8c6b
KR
21262000-04-01 Ken Raeburn <raeburn@gnu.org>
2127
2128 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2129 non-union-type versions of XMARK and friends here, because XMARK
2130 and friends won't work on an integer field if NO_UNION_TYPE is not
2131 defined.
2132 (make_number): Define as a function if it's not defined as a
2133 macro.
2134
09654086
KR
2135 * composite.c (run_composite_function): Use NILP when checking for
2136 nil.
2137 (syms_of_composite): Delete local var NARGS, pass an int as first
2138 argument to Fmake_hash_table.
2139
2387b382
KR
2140 * editfns.c (text_property_stickiness): Use NILP to test
2141 Lisp_Object boolean value.
2142 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2143 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2144 problems reading from and changing the same lisp value in an
2145 XSETSTRING call.
2146
27660e89
GM
21472000-04-01 Gerd Moellmann <gerd@gnu.org>
2148
2149 * term.c (TN_no_color_video): New variable.
2150 (term_init): Intitialize TN_no_color_video.
2151 (enum no_color_bit): New enumeration.
2152 (MAY_USE_WITH_COLORS_P): New macro.
2153 (turn_on_face): Use it to determine if attributes may be used
2154 combined with colors.
2155
3578db3c
KR
21562000-04-01 Ken Raeburn <raeburn@gnu.org>
2157
2158 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2159 with int lvalues via casts; instead, just yield lisp object
2160 lvalues.
2161 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2162 proper accessor macros.
2163 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2164 (grow_mini_window): Fix typo getting int value of root->height.
2165
6fc556fd
KR
2166 * xdisp.c (compute_string_pos): Fix order of arguments to
2167 string_pos_nchars_ahead.
2168 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2169 count arg to variable-arg routines like Frun_hook_with_args and
2170 Fformat.
587a49ab
GM
2171 (back_to_previous_visible_line_start)
2172 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2173 fixed-arg routines like Fget_char_property and Fmake_string.
2174 (reconsider_clip_changes): Use XINT when comparing integer lisp
2175 objects, or passing them as int arguments.
587a49ab
GM
2176 (mark_window_display_accurate, insert_left_trunc_glyphs)
2177 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2178 storing or passing integer values as lisp objects.
2179 (set_cursor_from_row, highlight_trailing_whitespace): Use
2180 INTEGERP, not implicit test against zero, for glyph object.
2181 (try_window_id): Don't use make_number when we want an int value.
2182
2183 * xfaces.c (xlfd_symbolic_value): Make last argument a
2184 Lisp_Object, to be consistent with callers.
2185 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2186 (lface_hash): Apply XFASTINT to lisp values before folding in.
2187
2188 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2189 fill in window width and height. Pass an int, not a lisp object,
2190 as first arg to Finsert.
2191
6e7b2457
GM
21922000-04-01 Gerd Moellmann <gerd@gnu.org>
2193
610d841e
GM
2194 * xfaces.c (realize_basic_faces): Block input while realizing
2195 the faces.
2196
6e7b2457
GM
2197 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2198
2199 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2200
aa110c0c
GM
22012000-03-31 Gerd Moellmann <gerd@gnu.org>
2202
2203 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2204 or ASCII, handle case that per-char metric is null.
aa110c0c 2205
8801a864
KR
22062000-03-30 Ken Raeburn <raeburn@gnu.org>
2207
c6129d7e
KR
2208 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2209
8801a864
KR
2210 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2211 XSUBR, XBUFFER): Verify correct object type before returning
2212 pointer, using eassert.
2213 * frame.h (XFRAME): Likewise.
2214
2215 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2216 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2217 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2218 type.
2219 * data.c (set_internal): Likewise.
2220 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2221 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2222 * fileio.c (auto_save_1): Likewise.
2223 * insdel.c (check_markers): Likewise.
2224 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2225 * undo.c (record_insert): Likewise.
2226 * vmsproc.c (child_sig): Likewise.
2227 * window.c (unshow_buffer, window_loop): Likewise.
2228 * xterm.c (x_erase_phys_cursor): Likewise.
2229
8e7af858
GM
22302000-03-30 Gerd Moellmann <gerd@gnu.org>
2231
2232 * xfns.c (free_image_cache): Free the cache structure itself
2233 last, after all its members have been freed.
2234
2235 * lisp.h (xstrdup): Add prototype.
2236
2237 * alloc.c (xstrdup): Moved here from xfaces.c.
2238 (allocating_for_lisp): Variable removed.
2239 (lisp_malloc): Block input around the calls to malloc and
2240 mem_insert.
2241
2242 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2243 of Fsymbol_value.
2244 (xstrdup): Moved to alloc.c.
2245
e0b8c689
KR
22462000-03-29 Ken Raeburn <raeburn@gnu.org>
2247
b96f9fb7
KR
2248 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2249
2250 * emacs.c (main): Fix sense of no-loadup test.
2251
e0b8c689
KR
2252 * config.in (ENABLE_CHECKING): Undef.
2253
2254 * lisp.h (struct interval): Replace "parent" field with a union of
2255 interval pointer and Lisp_Object; add new bitfield to use as
2256 discriminant. Change other flag fields to bitfields.
2257 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2258 is defined and the supplied test fails, print a message and
2259 abort.
2260 (eassert): New macro. Use CHECK to provide an assert-like
2261 facility.
2262
2263 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2264 pointers; abort if the value looks like a lisp object.
2265 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2266 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2267 Modify for new interval parent definition.
2268
2269 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2270 UNMARK_BALANCE_INTERVALS): Update references that need an
2271 addressable lisp object in the interval structure.
2272 (die): New function.
2273 (suppress_checking): New variable.
2274
2275 * intervals.c (interval_start_pos): Just return 0 if there's no
2276 parent object.
2277
f83c5440
GM
22782000-03-29 Gerd Moellmann <gerd@gnu.org>
2279
2280 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2281 and earlier Emacs versions.
2282
2283 * keyboard.c (Ftop_level): Cancel busy-cursor.
2284
2285 * eval.c (call_debugger): Cancel busy-cursor.
2286
fdce64ff
KH
22872000-03-29 Kenichi Handa <handa@etl.go.jp>
2288
2289 * search.c (Freplace_match): Adjust multibyteness of the current
2290 buffer and NEWTEXT. Free allocated memory before signaling an
2291 error.
2292
f6a3f532
SM
22932000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2294
2295 * regex.c (analyse_first): New function obtained by ripping out most
2296 of re_compile_fastmap and generalizing it a little bit so that it
2297 can also just return whether a given (sub)pattern can match the empty
2298 string or not.
2299 (regex_compile): Use `analyse_first' to decide whether the loop-check
2300 needs to be done or not for *, +, *? and +? (the loop check is costly
2301 for non-greedy repetition).
2302 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2303
e9b309ac
DL
23042000-03-28 Dave Love <fx@gnu.org>
2305
bb15bd9a
DL
2306 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2307 alpha.
2308
e9b309ac
DL
2309 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2310
ed0767d8
SM
23112000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2312
2313 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2314 an expression.
2315 (enum re_opcode_t): Update description of succeed_n.
2316 (PATFETCH): Always define.
2317 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2318 operators, char classes, shy-groups and intervals).
2319 Optimize special cases of intervals so as to only use succeed_n and
2320 jump_n when really needed.
2321 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2322 that we don't have to handle the special cases any more.
2323 Simplify on_failure_jump handling as well.
2324
e11e7e46
JR
23252000-03-28 Jason Rumney <jasonr@gnu.org>
2326
2327 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2328
88faab89
GM
23292000-03-27 Gerd Moellmann <gerd@gnu.org>
2330
182ff242
GM
2331 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2332
2333 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2334
182ff242
GM
2335 * alloc.c (mark_maybe_object): New function.
2336 (mark_memory): Use it.
2337 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2338 (setjmp_tested_p, longjmp_done): New variables.
2339 (test_setjmp): New function.
2340 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2341 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2342
c1005d06
GM
2343 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2344 to DEC_TEXT_POS and INC_TEXT_POS.
2345
2346 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2347 with parameter MULTIBYTE_P.
2348
427ec082 2349 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2350 MULTIBYTE_P.
2351
7439e5b9 2352 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2353 buffers because it looks for multibyte character byte sequences
2354 which don't exist in unibyte text.
7439e5b9 2355
d9c545da
GM
2356 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2357
11fd416e 2358 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2359 [DEBUG_X_COLORS]: New functions.
2360 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2361
2362 * xfns.c (x_set_cursor_color): Get color reference counts right.
2363
2364 * xterm.c (x_copy_color): New function.
2365 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2366
2367 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2368 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2369 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2370 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2371 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2372 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2373 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2374 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2375 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2376 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2377
11fd416e
GM
2378 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2379 names for handling per-buffer variables.
d9c545da
GM
2380
2381 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2382 instead of MAX_BUFFER_LOCAL_VARS.
2383 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2384
2385 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2386
88faab89
GM
2387 * xfns.c (x_specified_cursor_type): New function.
2388 (x_set_cursor_type): Use it.
2389
2390 * buffer.h (struct buffer): Add cursor_type.
2391
d80f42b7
SM
23922000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2393
2394 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2395 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2396 opcode.
d80f42b7
SM
2397 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2398 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2399 executing it as well as when popping it off the stack to find infinite
2400 loops in non-greedy repetition operators.
2401
89e80928
GM
24022000-03-26 Gerd Moellmann <gerd@gnu.org>
2403
3d4ff2dd
GM
2404 * doc.c (Qfunction_documentation): New variable.
2405 (syms_of_doc): Initialize Qfunction_documentation.
2406 (Fdocumentation): If FUNCTION is a symbol with non-nil
2407 `function-documentation' property, return a documentation derived
2408 from that.
2409
bd96bd79
GM
2410 * buffer.c (syms_of_buffer): Add default-cursor-type.
2411 (init_buffer_once): Don't let cursor_type have a local value
2412 in every buffer.
2413
19d1bc27
GM
2414 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2415 on buffer-local value of cursor_type.
2416 (x_draw_bar_cursor): Add parameter WIDTH.
2417
2418 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2419 (init_buffer_once): Set default cursor_type value to t.
2420 Mark cursor_type as local everywhere.
2421 (syms_of_buffer): New per-buffer variable cursor-type.
2422
89e80928
GM
2423 * buffer.h (struct buffer): Remove member local_var_flags,
2424 add local_flags.
2425 (MAX_BUFFER_LOCAL_VARS): New macro.
2426 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2427 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2428 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2429 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2430
2431 * print.c (print_object): Use new macros for per-buffer
2432 variables.
2433
2434 * category.c (Fset_category_table): Use new macros for per-buffer
2435 variables.
2436
2437 * buffer.c (buffer_permanent_local_flags): Make a char array.
2438 (max_buffer_local_idx): New variable.
2439 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2440 for new handling of per-buffer variables.
2441 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2442 (init_buffer_once): Initialize per-buffer vars differently.
2443 Set max_buffer_local_idx.
2444
2445 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2446 variables.
2447
2448 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2449 variables.
2450
2451 * data.c (do_symval_forwarding, store_symval_forwarding)
2452 (find_symbol_value, set_internal, default_value, Fset_default)
2453 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2454 per-buffer variables.
2455
2456 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2457
9a0dd3dc
GM
24582000-03-24 Gerd Moellmann <gerd@gnu.org>
2459
b68c375f
GM
2460 * xterm.c (x_term_init): Unblock input around call1 of
2461 Qvendor_specific_keysyms.
2462
9a0dd3dc
GM
2463 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2464 (find_defun_start): Consider an open parenthesis in column 0
2465 a defun start only if open_paren_in_column_0_is_defun_start is set.
2466 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2467
7973e637
SM
24682000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2469
2470 * eval.c (Fautoload): Add entry in load-history (if after dump).
2471 * lread.c (load-history): Update docstring.
2472
39210e90
GM
24732000-03-24 Gerd Moellmann <gerd@gnu.org>
2474
2475 * indent.c (Fvertical_motion): Always use the current buffer.
2476 Temporarily change the window's buffer, if necessary.
2477
72db3ab5
GM
24782000-03-23 Gerd Moellmann <gerd@gnu.org>
2479
2480 * xterm.c (fast_find_position): Make sure not to consider rows
2481 not visible in the window.
2482
990b2375
SM
24832000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2484
2485 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2486 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2487
ff4df011
JR
24882000-03-22 Jason Rumney <jasonr@gnu.org>
2489
2490 * w32menu.c (single_submenu): Set help string to NULL if none.
2491 (w32_menu_show): Set help string correctly.
2492 (add-menu-item): Set help string in MIIM_DATA for menu item.
2493 Load SetMenuItemInfoA explicitly.
2494 (w32_menu_display_help): New function.
427ec082 2495
ff4df011
JR
2496 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2497 (QCdata): Moved to xdisp.c.
2498
2499 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2500 (Vw32_charset_to_codepage_alist): Removed.
2501 (Vw32_charset_info_alist): New variable.
2502 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2503 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2504 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2505 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2506 with TODO comment.
2507 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2508 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2509 Define Vw32_charset_info_alist and w32_charset symbols.
2510
25112000-03-22 Jason Rumney <jasonr@gnu.org>
2512
2513 * makefile.nt (w32bdf.obj): Update dependencies.
2514
2515 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2516
2517 * w32fns.c: Include fontset.h after dispextern.h.
2518 (Fx_create_frame): Do not create fontset.
2519 (w32_load_system_font): Doc fix.
2520 (Fx_close_connection): Free full_name if it is not shared.
2521
2522 * w32term.c: Include fontset.h after dispextern.h.
2523 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2524 updated.
2525 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2526 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2527 (w32_font_is_double_byte): New function, needs body.
2528 (x_append_glyph): Set glyph->glyph_not_available_p.
2529 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2530 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2531 character, convert it to a unibyte character.
2532 (struct glyph_string): Delete member `charset'.
2533 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2534 calculating it is found.
2535 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2536 the case that per char metric is not available correctly.
2537 (x_fill_glyph_string): Handle the case that the specific glyph is
2538 not available correctly.
2539 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2540 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2541 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2542 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2543 fontset. Don't call FS_LOAD_FONT.
2544
439d5cb4
KR
25452000-03-22 Ken Raeburn <raeburn@gnu.org>
2546
2547 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2548 (INT_LISPLIKE): New macro.
2549 (NULL_INTERVAL_P): Use it.
2550 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2551 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2552 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2553
2554 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2555 explicit references to "parent" field of struct interval and
2556 associated unclean type conversions.
2557 * intervals.c (create_root_interval, root_interval, rotate_right,
2558 rotate_left, balance_possible_root_interval, split_interval_right,
2559 split_interval_left, interval_start_pos, find_interval,
2560 next_interval, previous_interval, update_interval,
2561 adjust_intervals_for_insertion, delete_node, delete_interval,
2562 adjust_intervals_for_deletion, merge_interval_right,
2563 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2564 copy_intervals_to_string): Likewise.
2565 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2566 Likewise.
2567 * syntax.c (update_syntax_table): Likewise.
2568
2569 * intervals.c (reproduce_tree_obj): New function, like
2570 reproduce_tree but takes a Lisp_Object for the parent. Declare
2571 with prototype.
2572 (graft_intervals_into_buffer): Use it when appropriate.
2573 (reproduce_tree): Declare with prototype.
2574 (balance_possible_root_interval): Check that the parent is a lisp
2575 object before trying to examine its type.
2576
ee1c5b21
GM
25772000-03-22 Gerd Moellmann <gerd@gnu.org>
2578
2579 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2580 as strings only if both are known to be strings.
2581
2582 * s/openbsd.h (LIBS_TERMCAP): Undef.
2583
1fb352e0
SM
25842000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2585
2586 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2587 definitions for non-Emacs compilation.
2588 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2589 outside of `#ifdef emacs'.
2590 (print_partial_compiled_pattern): Update.
2591 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2592 (re_compile_fastmap): Merge handling of charset and charset_not (for
2593 emacs and non-emacs compilation as well).
2594 Similarly for (not)categoryspec and (not)syntaxspec.
2595 Don't use the fastmap when reaching `anychar' since the added
2596 complexity is not justified.
2597 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2598 and (not)syntaxspec. Merge (not)categoryspec.
2599
fdaa1f77
KH
26002000-03-22 Kenichi Handa <handa@etl.go.jp>
2601
ff1a0d8e
KH
2602 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2603 FACE_FOR_CHAR): Define them differently for the configuration of
2604 --without-x.
fdaa1f77 2605
d152fb46
DL
26062000-03-21 Dave Love <fx@gnu.org>
2607
2608 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2609 doc string.
2610
d2cafc8c
GM
26112000-03-21 Gerd Moellmann <gerd@gnu.org>
2612
2613 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2614 (lface_fully_specified_p): Don't check contents of
2615 LFACE_FONT_INDEX because that attribute is optional.
2616 (realize_x_face): Remove now unwarranted xassert.
2617
9111d4b5
KH
26182000-03-21 Kenichi HANDA <handa@etl.go.jp>
2619
2620 The following changes are to make font selection based on
2621 characters, not charset. In addition, they recover fontset
2622 facilities while utilizing the new font selection mechanism.
2623
6c4bfdc0
KH
2624 * Makefile.in (fontset.o): Depend on dispextern.h.
2625
2626 * alloc.c (mark_face_cache): Don't mark face->registry.
2627
9111d4b5
KH
2628 * dispextern.h (struct glyph): New member glyph_not_available_p.
2629 Use 22 bits for face_id.
2630 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2631 (struct face): Delete member registry, new member ascii_face.
2632 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2633 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2634 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2635 (struct it): Delete member charset, new member
2636 glyph_not_available_p.
2637
2638 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2639 (struct fontset_info, struct fontset_data): Structs removed.
2640 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2641 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2642 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2643 (fs_free_face_fontset, fontset_font_pattern,
2644 face_suitable_for_char_p, face_for_char,
2645 make_fontset_for_ascii_face): Extern them.
2646 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2647 (FS_LOAD_FACE_FONT): New macro.
2648
2649 * fontset.c: All codes rewritten or adjusted for the change of
2650 fontset implementation. Now fontset is represented by char table.
2651 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2652 removed.
2653 (my_strcasecmp): Function removed.
2654 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2655 variables.
2656 (AREF, ASIZE): New macros.
2657 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2658 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2659 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2660 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2661 fontset_id_valid_p, font_family_registry, fontset_name,
2662 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2663 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2664 New functions.
2665 (fs_load_font): New arg FACE. Caller changed.
2666 (fs_query_fontset): Argument changed. Caller changed.
2667 (Fquery_fontset): call fs_query_fontset.
2668 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2669 Functions removed.
2670 (clear_fontset_elements, check_registry_encoding,
2671 check_fontset_name): New functions.
2672 (syms_of_fontset): Set char-table-extra-slots property of fontset
2673 to 3. Staticpro and initialize Vfontset_table and
2674 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2675
2676 * frame.h (struct frame): Member `fontset_data' removed.
2677 (FRAME_FONTSET_DATA): Macro removed.
2678
2679 * frame.c (make_frame): Don't allocate f->fontset_data.
2680 (Fdelete_frame): Don't free f->fontset_data.
2681
6c4bfdc0
KH
2682 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2683
9111d4b5
KH
2684 * xdisp.c (charset_at_position): Function removed.
2685 (init_iterator): Don't set member charset of struct `it'.
2686 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2687 next_element_from_display_vector, insert_left_trunc_glyphs):
2688 Likewise.
2689 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2690 FACE_FOR_CHARSET.
2691 (get_next_display_element, append_space,
2692 extend_face_to_end_of_line): Likewise.
2693
2694 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2695 Variables removed.
2696 (clear_font_table, frame_update_line_height, load_face_font):
2697 Adjusted for the change of fontset implementation.
2698 (load_face_fontset_font): Function removed.
2699 (pixel_point_size): New function.
2700 (font_list): Argument type changed. Caller changed.
2701 (LFACE_FONT): New macro.
2702 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2703 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2704 Lisp_Object. Determine the font name by actually loading a font
2705 by the specified pattern. Set LFACE_FONT (lface) to the specified
2706 pattern. Even if a font is not found, don't try alternatives.
2707 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2708 (set_font_frame_param): If `font' is specified in lface, use it.
2709 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2710 (lface_same_font_attributes_p): Likewise.
2711 (make_realized_face): Arguent changed. Caller changed. Set
2712 face->ascii_face to face itself.
2713 (free_realized_face): Free face->fontset if face is for ASCII.
2714 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2715 deduce_unibyte_registry, x_charset_registry): Functions removed.
2716 (free_realized_multibyte_face): New function.
2717 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2718 changed. Caller changed.
2719 (try_font_list): Argument type changed.
2720 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2721 (choose_face_font): Argument changed. Handle fontset properly.
2722 (choose_face_fontset_font): Function removed.
2723 (realize_default_face, realize_named_face): Don't remove the
2724 former face here.
2725 (realize_face): Argument changed. Caller changed. Remove face
2726 with the arg former_face_id in advance. Load font for the new
2727 face.
2728 (realize_x_face): Argument changed. Caller changed. For a
2729 multibyte character, share fontset with base_face. For a single
2730 byte character, make a new realized fontset. Don't load a font
2731 here.
2732 (realize_tty_face): Argument changed. Caller changed.
2733 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2734 (face_at_buffer_position): Don't check multibyte_p for returning
2735 DEFAULT_FACE_ID.
2736 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2737 FACE_SUITABLE_FOR_CHARSET_P.
2738 (syms_of_xfaces): Remove code for Qx_charset_registry and
2739 Vface_default_registry.
2740
6c4bfdc0
KH
2741 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2742 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2743 (x_per_char_metric): Don't try FONT->default_char. Even if
2744 pcm->width is zero, glyph bits may exist.
2745 (x_encode_char): Always initialize char2b->byte1.
2746 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2747 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2748 changed.
2749 (x_append_glyph): Set glyph->glyph_not_available_p.
2750 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2751 it->charset. Handle the case that per char metric is not
2752 available. If it->multibyte_p is zero and it->c is a multibyte
2753 character, convert it to a unibyte character.
2754 (struct glyph_string): Delete member `charset'.
2755 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2756 the case that per char metric is not available correctly.
2757 (x_fill_glyph_string): Handle the case that the specific glyph is
2758 not available correctly.
2759 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2760 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2761 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2762 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2763 fontset. Don't call FS_LOAD_FONT.
2764
2765 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2766 (x_create_tip_frame): Likewise.
2767 (Fx_close_connection): Free full_name of font_info.
2768
2769 * fns.c (optimize_sub_char_table): New function.
2770 (Foptimize_char_table): New function.
2771 (syms_of_fns): Defsubr Soptimize_char_table.
2772
b33dd3b0
GM
27732000-03-20 Gerd Moellmann <gerd@gnu.org>
2774
2775 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2776 only if buffer is displayed in some window.
2777
2778 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2779 (try_window_reusing_current_matrix): Don't call scroll run
2780 function if run's current and desired position are the same;
2781 this prevents cursor flickering.
2782
4e8a9132
SM
27832000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2784
2785 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2786
2787 * regex.c (RE_STRING_CHAR): New macro.
2788 (GET_CHAR_AFER_2): Remove.
2789 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2790 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2791 (print_partial_compiled_pattern, re_compile_fastmap)
2792 (re_match_2_internal): Remove on_failure_jump_exclusive.
2793 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2794 optimization only need to work for * (ie. can use of_keep_string_jump).
2795 Remove the special case for .*\n since it is now covered by the general
2796 optimization.
2797 (re_search_2): Don't bother with `room'.
2798 (skip_one_char): New function.
2799 (skip_noops): Simplify since `memory' is not needed any more.
2800 (mutually_exclusive_p): Restructure slightly to use `switch' and
2801 add handling for "all" remaining cases.
2802 (re_match_2_internal): Change on_failure_jump_smart to use
2803 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2804 rather than on_failure_jump_exclusive.
2805
2136fdd4
GM
28062000-03-19 Gerd Moellmann <gerd@gnu.org>
2807
2808 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2809 number of bits per RGB because it's everywhere used as the depth
2810 of the visual.
2811
2812 * term.c (calculate_costs): Remove code dealing with X frames.
2813
e53ae11c
RS
28142000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2815
2816 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2817
d7b511c4
GM
28182000-03-18 Gerd Moellmann <gerd@gnu.org>
2819
2820 * lread.c (read_integer): Unread the last char not consumed.
2821
16b5d424
GM
28222000-03-17 Gerd Moellmann <gerd@gnu.org>
2823
2824 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2825 which are in the process of being deleted.
16b5d424 2826
1fa28578
GM
28272000-03-16 Gerd Moellmann <gerd@gnu.org>
2828
83488cce
GM
2829 * Makefile.in (mostlyclean): Add `*.core'.
2830 (clean): Add `bootstrap-emacs'.
2831
1fa28578
GM
2832 * lread.c (read_integer): New function.
2833 (read1): Support read syntax #o, #x, #b, #r.
2834
99633e97
SM
28352000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2836
1fa28578
GM
2837 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2838 make sure POINTER_TO_OFFSET gives the same value before and after
2839 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2840 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2841 (debug): Now only active if > 0 rather than if != 0.
2842 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2843 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2844 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2845 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2846 (store_op1, store_op2, insert_op1, insert_op2)
2847 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2848 (group_in_compile_stack): Move to after its arg's types are
2849 declared and add a prototype.
99633e97 2850 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2851 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2852 wrapper.
99633e97 2853 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2854 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2855 indentation of the greedy-op and shy-group code.
99633e97
SM
2856 (at_(beg|end)line_loc_p): Fix argument's types.
2857 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2858 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2859 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2860 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2861 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2862 QUIT unconditionally.
99633e97 2863
699238d9
GM
28642000-03-15 Gerd Moellmann <gerd@gnu.org>
2865
2866 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2867 a sole completion.
2868
2869 * process.c (send_process): Add a hint that the function
2870 can call Lisp code to its comment.
2871
2872 * lread.c (load_dangerous_libraries): New variable.
2873 (Vbytecomp_version_regexp): New variable.
2874 (safe_to_load_p): New function.
2875 (Fload): Handle files not compiled with Emacs specially.
2876 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2877
34e23e5a
GM
28782000-03-14 Gerd Moellmann <gerd@gnu.org>
2879
9c763cca
GM
2880 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2881
2882 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2883 support functions only if HAVE_X11R6_XIM is defined.
2884 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2885
2886 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2887
2888 * xfns.c (X_I18N_INHIBITED): Don't define.
2889 (create_frame_xic): Remove conditional compilation on
2890 X_I18N_INHIBITED.
2891 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2892
2893 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2894 (HAVE_X11R6_XIM): Define.
2895
2896 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2897
34e23e5a
GM
2898 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2899 If set, call XSynchronize.
2900
66f0296e
SM
29012000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2902
34e23e5a
GM
2903 * regex.c: Declare a new type `re_char' used throughout the code
2904 for the string char type. It's `const unsigned char' to match the
2905 rest of Emacs. Consistently make sure all pointers to strings use
2906 it and make sure all pointers into the pattern use `unsigned
2907 char'.
66f0296e 2908 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2909 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2910 code duplication.
66f0296e
SM
2911
2912 * charset.h (GET_CHAR_AFTER_2): Remove.
2913 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2914
854a025c
KR
29152000-03-12 Ken Raeburn <raeburn@gnu.org>
2916
2917 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2918 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2919 of them try to use backquotes.
2920
b9d2c7e2
DL
29212000-03-12 Dave Love <fx@gnu.org>
2922
2923 * unexelf.c: Restore changes of 1999-10-19.
2924 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2925 fix its type and alignment; copy it from current process.
2926
5e5dff44
GM
29272000-03-12 Gerd Moellmann <gerd@gnu.org>
2928
9b2f3c38
GM
2929 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2930 has been found. Fix bug not computing timer's predecessor.
2931
427ec082 2932 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
2933 file name.
2934
e1cff360
GM
2935 * window.c (Fsave_window_excursion): Doc fix.
2936
5e5dff44
GM
2937 * xfns.c (x_defined_color): Rewritten to use
2938 x_allocate_nearest_color.
2939
e411ce4b
EZ
29402000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2941
2942 * msdos.c (vga_installed): New function, code moved from
2943 dos_set_window_size.
2944 (Qbar, Qcursor_type, outside_cursor): New variables.
2945 (syms_of_msdos): Intern and staticpro them.
2946 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2947 shape used outside Emacs when called for the first time.
2948 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2949 cursor shape used outside Emacs.
2950 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2951 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2952 type has changed.
2953 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2954 parameters specify the cursor. Make qreverse a global
2955 variable (renamed to Qreverse).
2956
80460654
GM
29572000-03-09 Gerd Moellmann <gerd@gnu.org>
2958
2959 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2960
95cd4c40
SM
29612000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2962
2963 This is a big redesign of failure-stack and register handling, prompted
2964 by bugs revealed when trying to add shy-groups. Overall, what happened
2965 is that loops are now structured a little differently, groups can be
2966 shy and the code is a little simpler.
2967
2968 * regex.h: Update the copyright.
2969 (RE_SHY_GROUPS): New value.
2970 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2971 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2972
80460654
GM
2973 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2974 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2975 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2976 for (start|stop)_memory since they now only take one argument (the
2977 second has becomes unnecessary).
2978 (print_partial_compiled_pattern): Adjust for changes in
2979 re_opcode_t.
2980 (print_compiled_pattern): Use %ld to printf long ints and flush to
2981 make debugging a little easier.
95cd4c40
SM
2982 (union fail_stack_elt): Make the integer unsigned.
2983 (struct fail_stack_type): Add a `frame' element.
2984 (INIT_FAIL_STACK): Init `frame' as well.
2985 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2986 (DEBUG_PUSH, DEBUG_POP): Remove.
2987 (NUM_REG_ITEMS): Remove.
2988 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2989 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2990 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2991 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2992 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2993 macros.
2994 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2995 address pushed is not the destination of the jump but the source
2996 of it instead.
95cd4c40
SM
2997 (NUM_FAILURE_ITEMS): Remove.
2998 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2999 registers before the actual failure point). Don't hardcode any
3000 meaning for str==NULL anymore.
95cd4c40 3001 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
3002 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
3003 Remove.
95cd4c40
SM
3004 (REG_UNSET_VALUE): Use NULL (why not?).
3005 (compile_range): Remove declaration since it doesn't exist.
3006 (struct compile_stack_elt_t): Remove inner_group_offset.
3007 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
3008 (regex_grow_registers): Remove dead code.
3009 (FIXUP_ALT_JUMP): New macro.
80460654
GM
3010 (regex_compile): Add shy-groups Change loops to use
3011 on_failure_jump_smart&jump instead of
3012 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
3013 initial (dummy_failure_)jump. Remove c1_base (looks like unused
3014 variable to me). Use `jump' instead of `jump_past_alt' and don't
3015 bother with push_dummy_failure in alternatives since it is now
3016 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
3017 emacs' for (re)allocating the stack.
3018 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
3019 from loop when bufp->can_be_null rather than jumping to `done'.
3020 Avoid jumping backwards so as to ensure termination. Use
3021 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
3022 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 3023 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
3024 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
3025 improve mutually_exclusive_p to handle ".+\n".
3026 (lowest_active_reg, highest_active_reg,
3027 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3028 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3029 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3030 variables. Push register (in `start_memory') on the stack rather
3031 than storing it in old_reg(start|end). Remove the cycle detection
3032 from `stop_memory', replaced by the use of on_failure_jump_loop
3033 for greedy loops. Add code for the new on_failure_jump_<foo>.
3034 Remove ad-hoc code in `on_failure_jump' to push more registers in
3035 the case of a loop. Take out code from `maybe_pop_jump' into
3036 separate functions and adapt it to the semantics of
3037 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3038 and push_dummy_failure. Remove dummy_failure handling and
3039 handling of `failures to jump to on_failure_jump' (this last one
3040 was already dead code, it seems).
3041 (group_match_null_string_p, alt_match_null_string_p)
3042 (common_op_match_null_string_p): Remove.
95cd4c40 3043
7397acc4
DL
30442000-03-08 Dave Love <fx@gnu.org>
3045
3046 * config.in: Don't depend on __STDC__ for volatile.
3047 Add POINTER_TYPE, PTR, PROTOTYPES.
3048
3049 * hftctl.c, strftime.c: Use PROTOTYPES.
3050 * eval.c (find_handler_clause): Likewise.
3051
3052 * mem-limits.h: Use POINTER_TYPE.
3053
3054 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3055 (memory_warnings): Declare using POINTER_TYPE.
3056
5e91ff9e
GM
30572000-03-08 Gerd Moellmann <gerd@gnu.org>
3058
feab4fba
GM
3059 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3060
25edb08f
GM
3061 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3062 collection.
3063
5e91ff9e
GM
3064 * xfns.c: Remove obsolete code in #if 0.
3065 (Fx_focus_frame): New function.
3066
a735b7e1
KH
30672000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3068
3069 * coding.c (coding_category_name): Add coding-category-utf-8,
3070 coding-category-utf-16-be, coding-category-utf-16-le.
3071 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3072 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3073 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3074 (detect_coding_utf_8): New function.
3075 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3076 UTF_16_LOW_SURROGATE_P): New macros.
3077 (detect_coding_utf_16): New function
3078 (detect_coding_mask): When priorities are specified, skip any
3079 categories that have `nil' coding-system. Fix bug of returning
3080 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3081 returns a mask not set in PRIORITIES.
3082 (detect_eol_type_in_2_octet_form): New function.
3083 (detect_eol): selects detect_eol_type_XXX to call according to
3084 cooding->category_idx.
3085 (detect_coding_system): Remove `nil' coding-system in the result.
3086 (Fupdate_coding_systems_internal): Update all coding-categories.
3087
3088 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3089 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3090 macros.
3091 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3092 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3093 CODING_CATEGORY_IDX_UTF_16_LE.
3094 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3095 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3096 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3097 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3098
9994cc69
GM
30992000-03-07 Gerd Moellmann <gerd@gnu.org>
3100
e9b4e5ff
GM
3101 * doc.c (Fdocumentation_property): If value is not a string,
3102 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3103
f7daf1e1
GM
3104 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3105 close the display with XtCloseDisplay. This caused a bus error
3106 on OpenWindows.
3107
9994cc69
GM
3108 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3109 complete but not unique.
3110
4336c705
GM
31112000-03-06 Gerd Moellmann <gerd@gnu.org>
3112
18bb0684
GM
3113 * process.c (send_process): Remove local variable `procname' that
3114 might become invalid when a GC happens. Instead, access the
3115 process name slot directly.
3116
4336c705
GM
3117 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3118 orig_height if set.
3119
3120 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3121 orig_height if set.
3122
515d0d0e
EZ
31232000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3124
3125 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3126 glyph matrices have been freed.
3127
100b3cbb
GM
31282000-03-05 Gerd Moellmann <gerd@gnu.org>
3129
50df5e5a 3130 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3131 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3132
3133 * xfns.c (QCdata): Moved to xdisp.c.
3134
3135 * xdisp.c (QCdata): Moved here from xfns.c.
3136 (syms_of_xdisp): Initialize QCdata.
3137
3138 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3139
3140 * window.c (coordinates_in_window): Use
3141 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3142 FRAME_INTERNAL_BORDER_WIDTH.
3143
100b3cbb 3144 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3145 it is obviously invalid.
100b3cbb
GM
3146
3147 * xterm.c (x_term_init): Create a colormap if not using the
3148 default visual.
3149
3150 * xterm.h (select_visual): Change prototype.
3151
3152 * xfns.c (select_visual): Rewritten. Recognize user-specified
3153 visual classes.
3154 (visual_classes): New variable.
3155
64d739c4
GM
31562000-03-04 Gerd Moellmann <gerd@gnu.org>
3157
3158 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3159 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3160 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3161 (x_decode_color): Don't handle allocation of white and black
3162 specially.
3163 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3164 XtNcolormap resources.
3165 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3166 (Fx_create_frame): Initialize color members of x_output structure.
3167 (xpm_load): Pass colormap to XPM lib.
3168
3169 * xfaces.c (x_free_colors): Access colormap of frame using
3170 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3171 when default colormap is used.
3172
3173 * xterm.c (x_term_init): Set Colormap member of x_display_info
3174 structure. Copy colormap if resource `privateColormap' is
3175 specified (PseudoColor only).
3176 (x_setup_relief_color): Access colormap of frame using
3177 FRAME_X_COLORMAP.
3178
3179 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3180 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3181
c3cee013
JR
31822000-03-04 Jason Rumney <jasonr@gnu.org>
3183
3184 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3185 other non-platform-specific equivalents.
64d739c4 3186 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3187 specific functions and macros as their w32 equivalents where
3188 non-platform-specifics are not available.
3189 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3190 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3191 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3192 (frame_update_line_height): Use macros to access f->output_data.
3193 (defined_color): Remove FIXME comments; fixed.
3194 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3195 into #ifdef blocks. Add WINDOWSNT blocks.
3196 (Fx_list_fonts): Use macros for accessing font data.
3197 (set_lface_from_font_name): Different default fonts for X and
3198 WINDOWSNT.
3199 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3200 scalable for backward compatibility.
64d739c4 3201 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3202 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3203
64d739c4 3204 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3205 syms_of_w32faces.
3206
3207 * makefile.nt (w32faces.obj): Remove.
3208 (xfaces.obj): Add.
3209
807cc41c
JR
32102000-03-03 Jason Rumney <jasonr@gnu.org>
3211
3212 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3213 correct parameters.
3214
0007072a
KR
32152000-03-03 Ken Raeburn <raeburn@gnu.org>
3216
3217 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3218 standard ELF definitions here if the system header does not.
3219
71a6ba55
GM
32202000-03-03 Gerd Moellmann <gerd@gnu.org>
3221
3222 * xterm.c (PER_CHAR_METRIC): Removed.
3223 (x_per_char_metric_1, x_default_char): New functions.
3224 (x_per_char_metric): If font's default char is invalid, return
3225 metrics of a suitably chosen usable default char.
3226 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3227 char, replace occurrences of unprintable chars with a suitably
3228 chosen usable default char.
71a6ba55 3229
900fa1f1
GM
32302000-03-02 Gerd Moellmann <gerd@gnu.org>
3231
42f55fe0
GM
3232 * xterm.c (note_mouse_highlight): Return quickly if frame's
3233 glyph matrices have been freed.
3234
3235 * dispnew.c (free_glyphs): Block input while freeing matrices.
3236
900fa1f1
GM
3237 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3238
3239 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3240 x_free_colors.
3241
3242 * dispextern.h (x_free_colors): Add prototype.
3243
3244 * xfaces.c (x_free_colors): New function.
3245 (unload_color, free_face_colors): Use it.
3246
2f950292
EZ
32472000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3248
3249 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3250
3251 * window.c [MSDOS]: Include msdos.h.
3252
54d04320
DL
32532000-03-02 Dave Love <fx@gnu.org>
3254
3255 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3256
3257 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3258 set C_OPTIMIZE_SWITCH for gcc.
3259
0ba93ac4
KH
32602000-03-02 Kenichi Handa <handa@etl.go.jp>
3261
3262 * coding.c (coding_save_composition): Be sure to allocate
3263 composition data area in coding even if there's no composition in
3264 the current run.
3265
a2bc11d4
JR
32662000-03-01 Jason Rumney <jasonr@gnu.org>
3267
3268 * w32term.c: Equivalent changes to those made to xterm.c on
3269 2000-02-25 and 2000-02-24.
3270
3271 * w32fns.c: Equivalent changes to those made to xfns.c on
3272 2000-02-25 and 2000-02-21.
3273
3274 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3275 correct line-end convention is followed.
3276
3277 * w32menu.c [HAVE_BOXES]: Remove #undef.
3278 (single_keymap_panes): Remove code for simulating checkmarks.
3279 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3280 Remove code for drawing simulated checkmarks.
3281 (w32_menu_show): make unibyte help string correctly.
3282 (add_menu_item): draw standard Windows checkmarks. Draw radio
3283 buttons as radio buttons if possible.
3284
72d19d75
GM
32852000-03-01 Gerd Moellmann <gerd@gnu.org>
3286
2df636f4
GM
3287 * sysdep.c (start_of_text): Don't define this function for NetBSD
3288 with ELF.
3289
427ec082 3290 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3291 Don't define.
3292 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3293 (LINKER): Don't undef if __NetBSD__ is defined.
3294
3295 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3296
3297 * fileio.c [__NetBSD__]: Define `unix'.
3298
72d19d75
GM
3299 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3300
ed4d0512
GM
33012000-02-29 Gerd Moellmann <gerd@gnu.org>
3302
50b1039f
GM
3303 * atimer.c (start_atimer): Don't abort when timers are stopped.
3304 (append_atimer_lists): New function.
3305 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3306 arbitrary lists of stopped and running atimers.
3307
ed4d0512
GM
3308 * atimer.c (cancel_atimer): Handle canceling an atimer when
3309 some timers are stopped.
3310
3311 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3312 after canceling it.
3313
3314 * fns.c (maybe_resize_hash_table): Handle case of new size
3315 coming out as being the same as old size.
3316
387023ee
JR
33172000-02-27 Jason Rumney <jasonr@gnu.org>
3318
3319 * makefile.nt: Add atimer.h to dependencies.
3320 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3321 * w32console.c: Only disable window system features for dispextern.h
3322 (initialize_w32_display): Build a display info for the console.
3323 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3324 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3325 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3326 as 2 button mice.
3327 * w32gui.h (struct W32FontStruct): Revert last change after change
3328 to xdisp.c.
3329 * w32menu.c (single_submenu): Set up help string.
3330 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3331 (w32_dialog_show): Set up help string.
3332 * w32term.c (w32_display_info_for_display): Remove unused function.
3333 (w32_draw_bitmap): Use pre-built bitmaps.
3334 (w32_initialize_display_info): New function to initialize parts of
3335 display info that are common to both GUI and console frames.
3336 (w32_term_init): Use w32_initialize_display_info. Do not set
3337 Vw32_num_mouse_buttons here, as it is not called for console
3338 frames. Build bitmaps for indicating truncated lines etc.
3339 (x_delete_display): Destroy pre-built bitmaps.
3340 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3341 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3342
4516715a
DL
33432000-02-27 Dave Love <fx@gnu.org>
3344
3345 * lisp.h: Add a bunch of prototypes.
3346
171ca836
KH
33472000-02-26 Kenichi Handa <handa@etl.go.jp>
3348
3349 * keyboard.c (read_char): Set `usec' correctly.
3350
4013921d
KH
33512000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3352
3353 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3354 `lambda', set reg[RRR] to the map index.
3355 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3356 reg[RRR] to 0. Otherwise, set it to -1.
3357
9244a058
GM
33582000-02-25 Gerd Moellmann <gerd@gnu.org>
3359
2df636f4 3360 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3361
f43d79c1 33622000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3363
f43d79c1
GM
3364 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3365 and contains a `:', prepend `/:'.
3366
3367 * window.c (select_window_1): If selected_window is nil,
3368 don't "swap out" the buffer's point.
3369 (Fset_window_configuration): Set selected_window to nil
3370 before calling Fselect_window.
3371 (unshow_buffer): Don't set point in buffer from window's point
3372 if another more recently selected window also shows the buffer.
3373
bed0c171
GM
33742000-02-25 Gerd Moellmann <gerd@gnu.org>
3375
449c3c52
GM
3376 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3377
f5b58615
GM
3378 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3379 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3380 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3381 variables.
3382 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3383 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3384 (hide_busy_cursor): New functions.
3385 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3386
3387 * minibuf.c (read_minibuf): Cancel busy-cursor.
3388
3389 * keyboard.c (command_loop_1): Call start_busy_cursor before
3390 Fcommand_execute and cancel_busy_cursor after it.
3391 (timer_check): Remove busy-cursor code.
3392 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3393 cursor timer.
3394
3395 * process.c (wait_reading_process_input): Remove busy-cursor code.
3396
3397 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3398 Fx_hide_busy_cursor.
3399
3400 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3401 Remove prototyoes.
3402 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3403
3404 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3405
3406 * xterm.c (XTread_socket): Remove busy-cursor code.
3407
4eb8436f
GM
3408 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3409 (build_frame_matrix_from_leaf_window): Put code handling
3410 glyph row's not being a slice of a frame row in #if 0.
3411 (sync_window_with_frame_matrix_rows): New function.
3412 (frame_row_to_window): New function.
3413 (mirror_line_dance): Handle copies between windows.
3414
3cb65b0e
GM
3415 * lread.c (Fload): Use `xfree' instead of `free'.
3416 (init_obarray): Use `xmalloc' instead of `malloc'.
3417
bed0c171
GM
3418 * window.c (Fset_window_buffer): Set WINDOW to the window
3419 after decoding.
2add4349
GM
3420 (coordinates_in_window): Take frame's internal border width
3421 into account.
bed0c171 3422
42088c12
GM
34232000-02-24 Gerd Moellmann <gerd@gnu.org>
3424
3425 * xterm.c (x_display_and_set_cursor): Display cursor of
3426 non-selected windows depending on the setting of
3427 cursor_in_non_selected_windows.
3428
3429 * xdisp.c (cursor_in_non_selected_windows): New variable.
3430 (syms_of_xdisp): DEFVAR_BOOL it.
3431
d1e103b2
GM
34322000-02-23 Gerd Moellmann <gerd@gnu.org>
3433
723e779c
GM
3434 * data.c (Fstring_to_number): If number is greater than what
3435 fits into an integer, return a float.
3436
d1e103b2
GM
3437 * eval.c (specbind): Remove references to
3438 keyword_symbols_constant_flag.
3439
3440 * data.c (keyword_symbols_constant_flag): Removed.
3441 (Fmakunbound, set_internal, syms_of_data): Remove references to
3442 keyword_symbols_constant_flag.
3443
3444 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3445
214f877f
KH
34462000-02-23 Kenichi Handa <handa@etl.go.jp>
3447
3448 * syntax.c (multibyte_syntax_as_symbol): New variable.
3449 (syms_of_syntax): Declare it as a Lisp variable.
3450 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3451 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3452 nonzero, treat all multibyte characters as symbol.
42088c12 3453 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3454 characters.
3455
130adcb7
EZ
34562000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3457
3cb65b0e 3458 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3459 a deleted frame.
3460
17cbbf95
GM
34612000-02-21 Gerd Moellmann <gerd@gnu.org>
3462
3463 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3464
3465 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3466 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3467
beb0bc36
DL
34682000-02-21 Dave Love <fx@gnu.org>
3469
3470 * frame.c (Vmouse_position_function): New variable.
3471 (Fmouse_position): Use it.
3472 (syms_of_frame): Install it.
3473
3474 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3475
1d92afcd
GM
34762000-02-20 Gerd Moellmann <gerd@gnu.org>
3477
3478 * fileio.c (Finsert_file_contents): Unbind the binding of
3479 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3480
3481 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3482 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3483 (specbind, unbind_to): Handle most common case of non-constant
3484 symbol with trivial value specially.
3485
3486 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3487
2d06696f
RS
34882000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3489
3490 * data.c (Fmake_variable_buffer_local): Doc fix.
3491 Init found_for_buffer to 0.
3492 (Fmake_variable_frame_local): If the variable has already
3493 been buffer-local, set the check_frame field.
3494
1d4311c3
EZ
34952000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3496
3497 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3498 produced for CODING_MODE_LAST_BLOCK requires.
3499
2dc95ddd
DL
35002000-02-18 Dave Love <fx@gnu.org>
3501
3502 * keyboard.c (echo_keystrokes): Remove declaration.
3503 (Vecho_keystrokes) New variable.
3504 (read_char, record_menu_key, read_key_sequence): Use it to allow
3505 use of float value.
3506 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3507
3508 * lread.c: Undef feature selection macros before defining.
3509
f0930f35
GM
35102000-02-18 Gerd Moellmann <gerd@gnu.org>
3511
3512 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3513 for symbols other than the symbol in question.
3514
e3d4de90
DL
35152000-02-17 Dave Love <fx@gnu.org>
3516
3517 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3518
0b378936
GM
35192000-02-17 Gerd Moellmann <gerd@gnu.org>
3520
d621caf7
GM
3521 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3522
0b378936
GM
3523 * alloc.c (enum mem_type): Compile unconditionally.
3524
3b451f74
EZ
35252000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3526
3527 * xfaces.c (tty_defined_color): Don't return faulire indication
3528 for unspecified-fg and unspecified-bg pseudo-colors.
3529
10689a01
GM
35302000-02-17 Gerd Moellmann <gerd@gnu.org>
3531
1216f5e4
GM
3532 * alloc.c (mark_object): Don't mark symbol names in pure space.
3533 (gc_sweep): Don't unmark symbol names in pure space.
3534
3535 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3536 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3537 [GC_MARK_STACK]: New defines.
427ec082 3538 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3539 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3540
3541 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3542
3543 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3544 allocate_buffer instead of xmalloc.
3545
3546 * alloc.c (toplevel): Include setjmp.h.
3547 (PURE_POINTER_P): New define.
3548 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3549 (Vdead) [GC_MARK_STACK]: New variable.
3550 (lisp_malloc): Add parameter TYPE, call mem_insert if
3551 GC_MARK_STACK is defined.
3552 (allocate_buffer): New function.
427ec082 3553 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3554 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3555 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3556 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3557 (MEM_NIL) [GC_MARK_STACK]: New define.
3558 (struct mem_node) [GC_MARK_STACK]: New structure.
3559 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3560 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3561 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3562 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3563 (mark_stack) [GC_MARK_STACK]: New functions.
3564 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3565 (clear_marks): Removed.
3566 (gc_sweep): Set free conses' car, free floats' type, free
3567 symbols' function to Vdead. Use lisp_free to free buffers.
3568 (init_alloc_once): Initialize Vdead.
3569 (survives_gc_p): Return non-zero for pure objects.
3570
3571 * alloc.c: Add comments throughout the file.
3572
2503c8b1
GM
3573 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3574 that unblocks alarms.
3575
8389e1e2
GM
3576 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3577 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3578 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3579
10689a01 3580 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3581
bfc17d18
KH
35822000-02-17 Kenichi Handa <handa@etl.go.jp>
3583
4a09dee0
KH
3584 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3585 avoid infinite error signaling. Allocate sufficient memory for
3586 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3587
2b927d02
SM
35882000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3589
3590 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3591 depends on the previous behavior.
3592
b49cb764
GM
35932000-02-16 Gerd Moellmann <gerd@gnu.org>
3594
3595 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3596
99e95407
GM
35972000-02-15 Gerd Moellmann <gerd@gnu.org>
3598
3599 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3600
3601 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3602 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3603 write(2).
3604
6ffd3cf7
RS
36052000-02-15 Richard M. Stallman <rms@gnu.org>
3606
3607 * data.c (set_internal): Don't make variable buffer-local
3608 if within a let-binding for the same buffer.
3609 (let_shadows_buffer_binding_p): New function.
3610
3611 * eval.c (specbind): For buffer-local value,
3612 record the current buffer also.
3613 (unbind_to): Cope with that change.
3614
cad53475
GM
36152000-02-15 Gerd Moellmann <gerd@gnu.org>
3616
3617 * window.c (Fsave_window_excursion): Doc fix.
3618
1aa963c8
SM
36192000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3620
3621 * syntax.c (back_comment): Make sure we only consider comment-starters
3622 of the relevant style and return -1 in case of a failure to find the
3623 beginning of the comment.
3624 (Fforward_comment): If back_comment fails, go back to the position just
3625 after the comment-end.
3626 (scan_lists): Add comment describing a very minor bug.
3627
b9b84fd3
SM
36282000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3629
3630 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3631 `completion-regexp-list' in the docstring.
3632
3a28db80
DL
36332000-02-14 Dave Love <fx@gnu.org>
3634
3635 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3636
fb4a568d
SM
36372000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3638
3639 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3640 to Emacs' syntax. Also fix the comment about set/not-set meanings
3641 since Emacs syntax is not the value 0 any more.
3642 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3643 since it's now part of RE_SYNTAX_EMACS.
3644
1063ebb5
DL
36452000-02-12 Dave Love <fx@gnu.org>
3646
3647 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3648 Alpha.
3649
fb07a302
GM
36502000-02-12 Gerd Moellmann <gerd@gnu.org>
3651
3652 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3653
aaf2320c
DL
36542000-02-12 Dave Love <fx@gnu.org>
3655
3656 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3657
3658 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3659 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3660 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3661
3662 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3663
3664 * s/nextstep.h: Don't define HAVE_ALLOCA.
3665
3666 * config.in: Add vfork bits.
3667
eedf8bde
GM
36682000-02-12 Gerd Moellmann <gerd@gnu.org>
3669
3670 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3671 unwind function to undo the effect of stopping atimers.
3672
3673 * keyboard.c (bind_polling_period): Stop all timers except
3674 poll_timer.
3675
3676 * atimer.c (stopped_atimers): New variable.
3677 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3678 New functions.
3679
3680 * atimer.h (stop_other_atimers, run_all_atimers)
3681 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3682
eedf8bde
GM
3683 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3684
8476c2f8
KR
36852000-02-11 Ken Raeburn <raeburn@gnu.org>
3686
3687 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3688 library may depend on jpeg.
3689 (atimer.o): Depends on atimer.c.
3690
0e85e4a3
KH
36912000-02-11 Kenichi Handa <handa@etl.go.jp>
3692
3693 * insdel.c (del_range_1): Call update_compositions.
3694 (del_range_both): Call update_compositions just once..
3695
97fa0cc8
DL
36962000-02-10 Dave Love <fx@gnu.org>
3697
3698 * xfns.c (create_frame_xic): Fix initialization of automatic
3699 aggregates for pcc.
3700
25566a3c
KH
37012000-02-09 Kenichi Handa <handa@etl.go.jp>
3702
3703 * ccl.c (CCL_MAKE_CHAR): New macro.
3704 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3705 registers by CCL_MAKE_CHAR before calling translate_char.
3706 <CCL_TranslateCharacterConstTbl> Likewise.
3707
69da54ba
DL
37082000-02-08 Dave Love <fx@gnu.org>
3709
3710 * lread.c (__EXTENSIONS__): Define.
3711
f7136ee8
GM
37122000-02-08 Gerd Moellmann <gerd@gnu.org>
3713
3714 * puresize.h (BASE_PURESIZE): Increase to 650000.
3715
7768790b
EZ
37162000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3717
3718 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3719 the help message.
3720
38fd211b
EZ
37212000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3722
3723 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3724 md, mh, mb, mr, and me to the fake termcap entry.
3725
66e4690f
KR
37262000-02-06 Ken Raeburn <raeburn@gnu.org>
3727
3728 * sound.c (sound_cleanup): Don't call device close routine if the
3729 function pointer is null.
3730
a75dfea0
AI
37312000-02-06 Andrew Innes <andrewi@gnu.org>
3732
3733 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3734 around image definitions and prototypes.
3735 (gamma_correct) [WINDOWSNT]: New prototype.
3736
3737 * w32term.c (x_make_frame_visible): Replace call to
3738 input_poll_signal with poll_for_input.
3739
3740 * window.c [WINDOWSNT]: Include w32term.h.
3741
3742 * xdisp.c [WINDOWSNT]: Include w32term.h.
3743
3744 * makefile.nt: Add dependencies on w32gui.h.
3745 (OBJ1): Include atimer.obj.
3746 ($(BLD)\atimer.obj): New dependency rule.
3747
3748 * w32.c (sigmask): New function (does nothing).
3749 (sigunblock): Ditto.
3750
3751 * frame.c [WINDOWSNT]: Include w32term.h.
3752
3753 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3754
3755 * lread.c (syms_of_lread): Fix literal newlines.
3756
3757 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3758 the string constant limit (2048 bytes) in MSVC.
3759 (main): Ditto.
3760
59ddecde
GM
37612000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3762
3763 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3764 area.
3765 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3766 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3767 dispatch the event.
3768
07590973
DL
37692000-02-04 Dave Love <fx@gnu.org>
3770
3771 * fileio.c: Remove some unused vars.
3772 (_GNU_SOURCE): Define (for euidaccess).
3773
3774 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3775
3776 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3777 gcpro1, gcpro2.
3778 (read_minibuf): Deal with allow_props correctly.
3779
649351f9
EZ
37802000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3781
3782 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3783
66e4690f 37842000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3785
3786 * search.c (compile_pattern): If a cache entry has a nil regexp,
3787 fill in that entry instead of clobbering a previously cached
3788 string regexp.
3789
66e4690f 37902000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3791
3792 * puresize.h (BASE_PURESIZE): Increase to 610000.
3793
d240a249
GM
37942000-02-02 Gerd Moellmann <gerd@gnu.org>
3795
3796 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3797 can GC.
3798
ca91fb26
KH
37992000-02-02 Kenichi Handa <handa@etl.go.jp>
3800
25660570
KH
3801 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3802 instead of incrementing ic directly.
3803 <CCL_WriteExprConst> Likewise.
3804 <ccl_set_expr>: Set ic to jump_address.
3805
ca91fb26
KH
3806 * fileio.c (e_write): Fix the handling of
3807 CODING_FINISH_INSUFFICIENT_SRC.
3808
2ede9689
DL
38092000-02-01 Dave Love <fx@gnu.org>
3810
3811 * editfns.c (Fpropertize): Doc fix.
3812
3813 * process.c (Fstart_process): Doc fix.
3814
3815 * eval.c: Fix various doc strings not to duplicate information
3816 from help-manyarg-func-alist.
3817
3818 * window.c (Fset_window_margins): Don't make interactive. Doc
3819 fix.
3820
3821 * doc.c (Vhelp_manyarg_func_alist): New variable.
3822 (Fdocumentation): Use it.
3823 (syms_of_doc): Define it.
3824
b6680a0e
GM
38252000-01-31 Gerd Moellmann <gerd@gnu.org>
3826
2cb750ba
GM
3827 * xterm.c (xim_open_dpy): Remove unused local variable.
3828
74e9213b
GM
3829 * emacs.c (USAGE): Use term `display options' instead of `X
3830 options'.
3831
3832 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3833 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3834
b6680a0e
GM
3835 * fns.c (sweep_weak_table): New function.
3836 (sweep_weak_hash_tables): Use it. Keep on marking until there
3837 is no more change.
3838
994c5afe
GM
38392000-01-30 Gerd Moellmann <gerd@gnu.org>
3840
3841 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3842 that XTread_socket does not crash by trying to call XNoOp on a
3843 closed display.
427ec082 3844
f00276e3
JR
38452000-01-30 Jason Rumney <jasonr@gnu.org>
3846
3847 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3848 Change selected_frame to SELECTED_FRAME ().
3849 (w32_console_mouse_position): Remove #ifndef MULE from around
3850 `insist' parameter.
3851
3852 * makefile.nt: Remove dosfns.obj.
3853
3854 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3855
3856 * w32fns.c (w32_defined_color): Check for valid frame before
3857 applying gamma correction. Eliminate dependency on frame elsewhere.
3858 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3859 (w32_to_x_font): Use resx and resy not height_in and width_in.
3860 (x_to_w32_font): Doc fix.
3861 (xlfd_strip_height): New function to strip and return font height.
3862 (w32_font_match): Compare height separately from rest of xlfd
3863 spec, using xlfd_strip_height.
3864
3865 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3866 width_in. Use w32_defined_color in place of defined_color.
3867
3868 * w32faces.c: Merge more of DOS and X specifics in preparation for
3869 merge with xfaces.c.
3870 (defined_color): Remove FIXME comment.
3871 (tty_color_name): Provide w32-specific function.
3872 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3873
3874 * w32console.c (turn_on_face, turn_off_face): Removed.
3875 (w32_face_attributes): New function.
3876 (Global_variables): Reduce scope where possible.
3877 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3878 fill attribute.
3879 (hl_mode): Don't modify text attributes.
3880 (write_glyphs): Don't do anything if len <= 0. Use
3881 w32_face_attributes to get attributes for drawing. Write
3882 terminating codes using char_attr_normal.
3883 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3884 (update_begin, update_end): Likewise.
3885 (vga_stdcolor_name): New function.
3886 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3887 (Fset_screen_color): Remove char_attr_reverse.
3888
b08e8bb2
GM
38892000-01-29 Gerd Moellmann <gerd@gnu.org>
3890
3891 * xfns.c (xic_set_preeditarea): Take window parameter and
3892 window-relative pixel-positions.
3893
3894 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3895 is its frame's selected window.
3896 (xim_instantiate_callback): Likewise.
3897
3898 * xfns.c (x_create_im): Removed.
3899 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3900 (supported_xim_styles): Renamed from supported_styles.
3901 (best_xim_style): Renamed from best_style.
3902 (create_frame_xic): Renamed from xic_create_frame.
3903 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3904
b08e8bb2
GM
39052000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3906
3907 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3908 our frames, call XFilterEvent with 2nd parameter `None'.
3909 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3910 returning XBufferOverflow.
3911 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3912 area.
3913 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3914 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3915 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3916 (xim_initialize, xim_close)
3917 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3918 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3919 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3920 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3921
3922 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3923 and `xim_styles'.
3924 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3925 `xic_style' and `xic_xfs'.
3926 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3927 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3928 (FRAME_XIM): Removed.
3929
3930 * xfns.c (supported_styles): New variable.
3931 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3932 (xic_create_xfontset, best_style, xic_create_frame)
3933 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3934 (xic_set_xfontset): New functions.
3935
142e109c
DL
39362000-01-28 Dave Love <fx@gnu.org>
3937
3938 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3939
3940 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3941
b02786f9
GM
39422000-01-28 Gerd Moellmann <gerd@gnu.org>
3943
d060bc9f
GM
3944 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3945 for *scratch* if it already existed.
3946
b02786f9
GM
3947 * emacs.c (USAGE): New macro.
3948 (main): Use it to display usage information.
3949
2c52d7e4
EZ
39502000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3951
3952 Support for the menu-help feature:
3953
3954 * msdos.h: Change prototypes of XMenuAddSelection and
3955 XMenuActivate.
3956
3957 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3958 part of the line to the termscript file.
3959 (IT_clear_to_end): Clear the entire line, not just its beginning.
3960 (menu_help_message, prev_menu_help_message): New variables.
3961 (IT_menu_make_room): Make room for the help_text member.
3962 (IT_menu_display): New argument disp_help; all callers changed.
3963 If disp_help is non-zero, store the help text of the active menu
3964 item in menu_help_message.
3965 (XMenuAddPane): Initialize the help_text member to NULL.
3966 (XMenuAddSelection): New argument help_text. Store it in the
3967 XMenu structure.
3968 (XMenuActivate): New argument help_callback. If the value of
3969 menu_help_message has changed since the last time, display the
3970 menu help message text while waiting for the mouse to move. Clear
3971 the echo area before exiting.
3972 (XMenuDestroy): Free the help_text member.
3973
ffe0bcd1
GM
39742000-01-27 Gerd Moellmann <gerd@gnu.org>
3975
3976 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3977 XMenuAddSelection. Pass help callback to XMenuActivate.
3978 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3979
50dbd23f
EZ
39802000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3981
3982 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3983 and EMACS_SET_USECS.
3984
f5941bf8
GM
39852000-01-26 Dave Love <fx@gnu.org>
3986
6c67ddee
DL
3987 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3988
f5941bf8
GM
3989 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3990 an error may be signalled.
3991
9e49c990
GM
39922000-01-26 Gerd Moellmann <gerd@gnu.org>
3993
fc3cb460
GM
3994 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3995 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3996
9e49c990
GM
3997 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3998
d0c037d8
GM
39992000-01-25 Gerd Moellmann <gerd@gnu.org>
4000
4001 * charset.c (Fstring): If there is a multibyte char among
4002 the args, always return a multibyte string.
4003
e12489f9
GM
40042000-01-25 Gerd Moellmann <gerd@gnu.org>
4005
4006 * sysdep.c (sys_select): Turn atimers off and on instead of
4007 recording and restoring old alarm handler
4008
4009 * process.c (toplevel): Include atimer.h.
4010 (create_process_1): Rewritten.
4011 (create_process): Use atimers instead of alarm.
4012 (wait_reading_process_input) [hpux]: Turn atimers off instead
4013 of turning off SIGALRM.
4014 (wait_reading_process_input): Turn off atimers instead off
4015 calling stop_polling.
4016
4017 * emacs.c (main): Call init_atimer.
4018
4019 * keyboard.c (toplevel): Include systime.h and atimer.h.
4020 (polling_for_input): Removed because unused.
4021 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
4022 (poll_timer): New variable.
4023 (poll_for_input, poll_for_input_1): New functions.
4024 (start_polling, stop_polling): Rewritten.
4025
4026 * keyboard.h (polling_for_input): Removed.
427ec082 4027
e12489f9
GM
4028 * atimer.h, atimer.c: New files.
4029
4030 * Makefile.in (obj): Add atimer.o.
4031 (atimer.o): New target.
4032
4033 * blockinput.h (pending_atimers): Add extern declaration.
4034 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4035
4036 * lisp.h (popup_activated_flag): Add extern declaration.
4037
4038 * xmenu.c (popup_activated_flag): Make externally visible.
4039 (popup_activate_callback) [USE_MOTIF]: Increment
4040 popup_activated_flag.
4041 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4042
4043 * xterm.c (toplevel): Include atimer.h.
4044 (toolkit_scroll_bar_interaction): New variable.
4045 (Fxt_process_timeouts): Removed.
4046 (x_process_timeouts): New function.
4047 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4048 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4049 (x_make_frame_visible): Call poll_for_input_1 instead of
4050 input_poll_signal. Don't call alarm.
4051 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4052
1e5279b9
DL
40532000-01-24 Dave Love <fx@gnu.org>
4054
6c67ddee 4055 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4056 Don't use -cckr -- apparently not now necessary.
4057
edf6aeb8
EZ
40582000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4059
4060 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4061 screen boundary.
4062
9badad41
JR
40632000-01-23 Jason Rumney <jasonr@gnu.org>
4064
4065 * w32fns.c (w32_defined_color): Apply gamma correction before
4066 trying to map to the palette.
4067 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4068 to w32_clear_rect.
4069
4070 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4071 here. Callers changed to always pass real device context.
4072 (w32_draw_bitmap): Likewise.
4073 (w32_get_glyph_overhangs): Likewise.
4074 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4075 one.
4076 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4077 pfnSetScrollInfo and SetScrollRange.
4078 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4079 back into MULE characters after decoding them.
4080 (x_get_glyph_face_and_encoding): Likewise.
4081 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4082 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4083 (x_produce_glyphs): Calculate per char metrics for a character
4084 that we know exists in default font when font_not_found_p is true.
4085
63bd786b
JR
40862000-01-22 Jason Rumney <jasonr@gnu.org>
4087
4088 * makefile.nt (intervals.obj, composite.obj): New modules.
4089 (composite.h): Added as dependency where appropriate.
4090
4091 * w32gui.h (XGCValue): New struct for emulating X GCs.
4092
4093 * w32term.h (XCharStruct): New struct for emulating X.
4094
4095 * w32console.c (turn_on_face, turn_off_face): New functions.
4096 (change_line_highlight): New prototype for new redisplay.
4097 (write_glyphs): Support multibyte text. Support faces.
4098
4099 * w32faces.c: Complete rewrite for new redisplay based on new
4100 xfaces.c.
4101
4102 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4103 throughout. struct frame * in place of FRAME_PTR.
4104 Skeleton support for images, toolbars, tooltips from xfns.c.
4105 (Fx_create_frame): Use system default for default scroll bar
4106 width.
4107 (w32_get_arg): Renamed from x_get_arg.
4108 (Fx_file_dialog): New function.
4109 (w32_list_fonts): Check cache before asking system.
4110 (Vw32_enable_synthesized_fonts): New variable.
4111 (Vw32_enable_italics): Obsolete, removed.
4112
4113 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4114 Use SELECTED_FRAME macro.
4115
4116 * w32menu.c: Add skeleton support for help strings on menus.
4117 (add_menu_item): Native checkbox and radio support added, but not
4118 yet enabled due to bugs.
4119 (push_menu_item): Add parameters type, selection and help.
4120 Callers updated.
4121 Formatting changes to reduce unnecessary diffs with xmenu.c.
4122
4123 * w32select.c (Fw32_set_clipboard_data): Update call to
4124 find_charset_in_str.
4125
4126 * w32term.c: Complete rewrite for new redisplay based on new
4127 xterm.c with necessary sections merged back in from old w32term.c.
4128
6ffd3cf7 41292000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4130
4131 * data.c (set_internal): Further fix in same criterion.
4132
6ffd3cf7 41332000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4134
4135 * data.c (set_internal): Fix the criteria for whether
4136 to swap out the old cached binding.
4137
60af03f1
DL
41382000-01-19 Dave Love <fx@gnu.org>
4139
4140 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4141
f9be074f
KH
41422000-01-18 Kenichi Handa <handa@etl.go.jp>
4143
4144 * regex.c (re_compile_fastmap): While checking a range table for
4145 `charset', skip flag bits for a character class correctly.
4146
52b8dbf9
GM
41472000-01-17 Gerd Moellmann <gerd@gnu.org>
4148
d36100c9
GM
4149 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4150
52b8dbf9
GM
4151 * xfns.c (x_window): Call lw_create_widget with new parameter
4152 list.
4153
4154 * widget.c (EmacsFrameSetCharSize): Change size of children first
4155 because of problems with main window geometry management under
4156 Lesstif.
4157
4158 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4159 MENU_ITEMS_ITEM_.*.
4160 (MENU_ITEMS_ITEM_HELP): New enumerator.
4161 (push_menu_item): Add parameter HELP. Record help in menu_items.
4162 (single_menu_item, single_submenu, list_of_items): Call
4163 push_menu_item with new parameter.
4164 (single_submenu): Set help string in widget value.
4165 (menu_highlight_callback): New function.
4166 (set_frame_menubar): Call lw_create_widget with new
4167 parameter list.
4168 (xmenu_show, xdialog_show): Ditto.
4169
3139018f
GM
41702000-01-13 Gerd Moellmann <gerd@gnu.org>
4171
4172 * sound.c (Fplay_sound): Improve doc string.
4173
83c8f461
RS
41742000-01-11 Richard M. Stallman <rms@gnu.org>
4175
4176 * lisp.h (set_internal): Enter the new arg.
4177
4178 * eval.c (specbind): Record buffer-local variables specially,
4179 indicating which buffer's binding was saved.
4180 (unbind_to): Restore buffer-local variables specially
4181 in the proper buffer.
4182
4183 * data.c (set_internal): New arg BUF.
427ec082 4184
83c8f461
RS
4185 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4186 * data.c (Fset): Pass new arg to set_internal.
4187 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4188
1fab1775
GM
41892000-01-11 Gerd Moellmann <gerd@gnu.org>
4190
4191 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4192 xprintsym.
4193
83c8f461 41942000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4195
4196 * minibuf.c (Ftry_completion): Doc fix.
4197
7a85e4df
GM
41982000-01-11 Gerd Moellmann <gerd@gnu.org>
4199
4200 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4201 vector, too.
4202
a970dae4
AS
42032000-01-11 Andreas Schwab <schwab@suse.de>
4204
4205 * coding.c (code_convert_region): Initialize total_skip.
4206
c65d14ee
DL
42072000-01-08 Dave Love <fx@gnu.org>
4208
4209 * eval.c (Fuser_variable_p): Check customizability too.
4210
834938d2
GM
42112000-01-07 Gerd Moellmann <gerd@gnu.org>
4212
4213 * minibuf.c (Fcompleting_read): Doc fix.
4214
e0303cd6
GM
42152000-01-05 Gerd Moellmann <gerd@gnu.org>
4216
8a26744b
GM
4217 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4218 -L /usr/local/lib.
4219
e0303cd6
GM
4220 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4221 Check that input style is supported before trying to create an
4222 IC for it.
4223 (x_window): Call x_create_im.
427ec082 4224
2e471eb5
GM
42252000-01-04 Gerd Moellmann <gerd@gnu.org>
4226
560a7bd2
GM
4227 * xfns.c (current_gif_memory_src): New variable.
4228 (gif_load): Record the address of the current memory source
4229 in current_gif_memory_src.
4230 (gif_read_from_memory): Use current_gif_memory_src.
4231
f9ee84a3
GM
4232 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4233 macros statement form.
4234
d1299cde
GM
4235 * sound.c (struct sound): Renamed from struct sound_file.
4236 (struct sound): Add members `data' and `header_size'.
4237 (enum sound_attr): Add SOUND_DATA.
4238 (current_sound, current_sound_device): Variables renamed from
4239 sound_file and sound_device.
4240 (parse_sound): Parse :data.
4241 (parse_sound): Handle sound data in strings.
4242 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4243 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4244 needed header size.
4245 (wav_play, au_play): Play sounds from string data.
4246
2e471eb5
GM
4247 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4248
4249 * lisp.h: Add prototype for allocate_string_data.
4250
4251 * alloc.c (Fgarbage_collect): Return number of live and free
4252 strings.
4253
4254 * alloc.c (mark_buffer): Remove code in #if 0.
4255 (gc_sweep): Ditto.
4256 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4257 (strings_consed): New variable.
4258 (allocate_string): Set it.
4259 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4260 (Fmemory_use_counts): Return strings_consed. Use Flist.
4261
4262 * alloc.c: General cleanup in comments etc. Remove conditional
4263 compilation for `standalone'.
4264
4265 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4266
4267 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4268 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4269 (DONT_COPY_FLAG): Removed.
4270 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4271 (struct sdata, struct sblock): New
4272 (struct string_block): Rewritten.
4273 (STRINGS_IN_STRING_BLOCK): New macro.
4274 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4275 (large_sblocks, string_blocks, string_free_list): New variables.
4276 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4277 (init_strings): Rewritten.
4278 (allocate_string, allocate_string_data, compact_small_strings)
4279 (free_large_strings, sweep_strings): New functions.
4280 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4281 (struct string_block_head, current_string_block)
4282 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4283 (STRING_PAD): Removed.
4284 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4285 (Fgarbage_collect): Don't set mark bit in large strings.
4286 (mark_object): Mark strings differently. Mark symbol names
4287 differently.
4288 (survives_gc_p): Test marked strings differently.
427ec082 4289 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4290 symbol names.
4291 (compact_strings): Removed.
4292
42608ba8
EZ
42932000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4294
4295 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4296 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4297
e0a09e1a
KH
42982000-01-04 Kenichi Handa <handa@etl.go.jp>
4299
dd9f0750 4300 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4301 in a non-empty buffer.
dd9f0750 4302
3c0f3b15 4303 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4304
44cd3ae5
GM
43052000-01-03 Gerd Moellmann <gerd@gnu.org>
4306
4307 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4308 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4309
4310 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4311
c182a70f
EZ
43122000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4313
4314 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4315 need to test for MSDOS frames.
4316
24480d5b
EZ
43172000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4318
4319 * dosfns.c (unspecified_colors): Remove.
4320 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4321 unspecified_bg.
4322 (msdos_stdcolor_name): Return strings for unspecified fore- and
4323 back-ground colors.
4324
4325 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4326 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4327 (tty_color_name): Return Lisp strings for unspecified fore- and
4328 back-ground colors.
4329 (Finternal_set_lisp_face_attribute): Remove the special treatment
4330 for Qunspecified_{f,b}g.
4331 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4332 string.
4333
047f434a
GM
43342000-01-03 Gerd Moellmann <gerd@gnu.org>
4335
4336 * xdisp.c (reseat_at_next_visible_line_start): Position before
4337 newline only if ending up on a newline.
4338 (next_element_from_ellipsis): Return success. Handle case of
4339 displaying no ellipsis. Fix case of ellipsis defined in display
4340 table.
4341 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4342 returns 0.
4343
d684c676
EZ
43442000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4345
4346 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4347 (Fcolor_supported_p): Renamed from face-color-supported-p.
4348
5fe1d139
EZ
43492000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4350
4351 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4352 list of colors renamed to tty-defined-color-alist.
4353 (tty_color_name): Pass the frame to tty-color-by-index.
4354 (realize_tty_face): tty-color-alist is now a function which
4355 accepts the frame as argument.
4356
4357 * term.c (Ftty_display_color_p): Accept an optional argument
4358 FRAME.
4359
816be8b8
EZ
43602000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4361
4362 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4363 encode_terminal_code.
4364
b635321e
EZ
43652000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4366
4367 * dispnew.c (mode_line_string): Support termcap frames as well.
4368
9b784e96
GM
43692000-01-01 Gerd Moellmann <gerd@gnu.org>
4370
27189709
GM
4371 * syntax.c (Fforward_word): Undo previous change.
4372
4373 * editfns.c (Fconstrain_to_field): Don't constrain if
4374 inhibit-field-text-motion is non-nil.
4375 (Fline_beginning_position): Undo previous change.
4376 (Fline_end_position): Ditto.
4377
4378 * syntax.c (Fforward_word): Notice field boundaries only if
4379 inhibit-field-text-motion is nil.
4380
4381 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4382
4383 * editfns.c (Vinhibit_field_text_motion): New variable.
4384 (inhibit-field-text-motion): New DEFVAR_LISP.
4385 (Fline_beginning_position, Fline_end_position): Notice field
4386 boundaries only if inhibit-field-text-motion is nil.
4387
45158a91
GM
4388 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4389 All calls adjusted.
4390 (x_build_heuristic_mask): Likewise.
4391 (xbm_load_image_from_file): Change error output.
4392 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4393 (gif_load, gs_load, x_kill_gs_process): Ditto.
4394
9b784e96
GM
4395 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4396 color indices when accessing raster pixels.
63cec32f
GM
4397 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4398 one of :file or :data.
4399 (enum pbm_keyword_index): Add PBM_DATA.
4400 (pbm_format): Add :data.
4401 (pbm_image_p): Allow either :file or :data.
4402 (pbm_read_file): New function.
4403 (pbm_scan_number): Rewritten to read from string.
4404 (pbm_load): Support :data.
9b784e96 4405
5ad6a5fb
GM
44061999-12-31 Gerd Moellmann <gerd@gnu.org>
4407
4408 * xfns.c: New image functions adapted to Emacs conventions.
4409 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4410 variable `file'.
4411
63448a4d
WP
44121999-12-31 William M. Perry <wmperry@aventail.com>
4413
4414 * xfns.c (jpeg_format): Added the :data keyword
4415 (jpeg_image_p): JPEG is valid with :file _or_ :data
4416 (jpeg_memory_src): Defined new JPEG image source to read from a
4417 memory buffer.
4418 (jpeg_load): Pay attention to the :data keyword if specified.
4419 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4420 found.
4421 (png_format): Added the :data keyword
4422 (png_image_p): PNG is valid with :file _or_ :data
4423 (png_read_from_memory): New PNG read function to read from a
4424 memory buffer.
4425 (png_load): Pay attention to the :data keyword if specified. Uses
4426 png_set_read_fn() instead of png_init_io() if specified.
4427 (tiff_format): Added the :data keyword for TIFF images.
4428 (tiff_image_p): TIFF is valid with :file _or_ :data
4429 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4430 from a memory buffer.
4431 (tiff_load): Pay attention to the :data keyword if specified.
4432 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4433 (gif_format): Added the :data keyword
4434 (gif_image_p): GIF is valid with :file _or_ :data
4435 (gif_read_from_memory): New GIF input function to read from a
4436 memory buffer.
c65d14ee 4437 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4438 instead of DGifOpenFileName() if specified.
4439
c880678e
GM
44401999-12-31 Gerd Moellmann <gerd@gnu.org>
4441
4442 * xdisp.c (next_element_from_buffer): Change assertion at the end
4443 because it doesn't hold when there's an overlay string at the end
4444 from which we deliver an image.
4445
8ccb9a54
EZ
44461999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4447
4448 * msdos.c (IT_update_begin): Don't dereference members of struct
4449 window for deleted windows.
4450
12ce2351
GM
44511999-12-30 Gerd Moellmann <gerd@gnu.org>
4452
a915c648
GM
4453 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4454 a hook, and the hook has a non-nil `no-self-insert' property, let
4455 the return value of the hook specify whether an expansion took
4456 place. If it returns nil, no expansion has been performed.
4457
12ce2351
GM
4458 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4459 differently.
4460
04ee4f45
EZ
44611999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4462
4463 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4464
7f4bc0c3
EZ
44651999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4466
4467 * dispnew.c (mode_line_string): Support MS-DOS frames.
4468
dac204bc
GM
44691999-12-29 Gerd Moellmann <gerd@gnu.org>
4470
4471 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4472
7b712ad8
KH
44731999-12-29 Kenichi Handa <handa@etl.go.jp>
4474
4475 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4476 to signal_after_change.
4477
adb9900f
EZ
44781999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4479
41ad069b
EZ
4480 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4481 dimensions changed, invalidate the mouse highlight info.
4482 (disable_mouse_highlight, help_echo, previous_help_echo): New
4483 variables.
4484 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4485 (fast_find_position, IT_note_mode_line_highlight)
4486 (IT_note_mouse_highlight): New functions.
4487 (IT_update_begin): If the redisplay affects the window where the
4488 mouse highlight is, clear the highlight. If the frame where the
4489 highlight was displayed was killed, invalidate the highlight
4490 info.
4491 (IT_update_end): Reset the highlight flag. Reset the mouse
4492 highlight-defer flag.
4493 (IT_frame_up_to_date): New function, if mouse highlight was
4494 deferred due to GC, do it now.
4495 (internal_terminal_init): Initialize mouse-highlight related
4496 members of the_only_x_display. Assign IT_frame_up_to_date to
4497 frame_up_to_date_hook.
4498 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4499 help_echo changed value, generate a HELP_EVENT event.
4500 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4501
adb9900f
EZ
4502 * msdos.h (struct display_info): New.
4503 (struct x_output): Add the display_info member.
4504 (FRAME_X_DISPLAY_INFO): New macro.
4505
481b5054
GM
45061999-12-28 Gerd Moellmann <gerd@gnu.org>
4507
4508 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4509 if MODIFF > 1.
6448a6b3 4510 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4511
4512 * buffer.c (modify_overlay): Always compute unchanged info.
4513
a2882b0d
KH
45141999-12-27 Kenichi Handa <handa@etl.go.jp>
4515
4516 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4517
89ba5b5f
KH
45181999-12-27 Kenichi Handa <handa@etl.go.jp>
4519
4520 The following changes are to use more bits for face IDs.
4521
4522 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4523 lowest 8 bits are single byte character code, the bits above are
4524 face ID.
481b5054 4525 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4526 above.
481b5054
GM
4527 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4528 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4529
4530 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4531 of GLYPH_MASK_CHAR.
4532
4533 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4534 of GLYPH_MASK_CHAR.
4535
4536 * dispextern.h (struct glyph): Make face_id and padding_p the top
4537 level members. Change members in union `u'.
4538 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4539 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4540 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4541 (CHAR_GLYPH_PADDING_P): Likewise.
4542 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4543 characters.
4544
481b5054 4545 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4546 for the change of struct glyph.
4547 (line_draw_cost): Adjusted for the change of
4548 GLYPH_FROM_CHAR_GLYPH.
4549 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4550
4551 * term.c (encode_terminal_code): Adjusted for the change of struct
4552 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4553 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4554 change of struct glyph.
4555
4556 * xdisp.c: All codes adjusted for the change of struct glyph.
4557
4558 * xterm.c: All codes adjusted for the change of struct glyph.
4559
5bcd116c
KH
45601999-12-27 Kenichi Handa <handa@etl.go.jp>
4561
4562 * composite.h (struct composition): Change the order of declaring
4563 members to reduce the byte size of the structure.
4564
f21b06b7
GM
45651999-12-25 Gerd Moellmann <gerd@gnu.org>
4566
4567 * search.c (looking_at_1): Reset immediate_quit before modifying
4568 global data.
4569
e36557c9
KH
45701999-12-24 Kenichi Handa <handa@etl.go.jp>
4571
4572 * process.c (read_process_output): Fix the arg FROM to
4573 update_compositions.
4574
83c8f461 45751999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4576
4577 * search.c (Freplace_match): For nonliteral replacement in buffer,
4578 construct all the new text first, then insert all at once.
4579
0b863bd9
DL
45801999-12-22 Dave Love <fx@gnu.org>
4581
4582 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4583
6d8e8ef3
GM
45841999-12-22 Gerd Moellmann <gerd@gnu.org>
4585
28d7281d
GM
4586 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4587 lead to size changes to after the X window has been created.
4588
e22ef6eb 4589 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4590 variable in xassert.
4591
8affcced
KH
45921999-12-22 Kenichi Handa <handa@etl.go.jp>
4593
4594 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4595 only when the frame is not for a window system.
8affcced 4596
f2be1146
GM
45971999-12-22 Gerd Moellmann <gerd@gnu.org>
4598
deca1348
GM
4599 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4600 redisplay after changing the multibyteness of a buffer.
4601
f2be1146
GM
4602 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4603 frame's X window to XFilterEvent instead of None because that's
4604 the X window for which the IC was created. This makes dead
4605 accents work when the pointer is not in Emacs' frame.
4606 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4607
a744a2ec
DL
46081999-12-20 Dave Love <fx@gnu.org>
4609
4610 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4611
9e6985ed
GM
46121999-12-19 Gerd Moellmann <gerd@gnu.org>
4613
4614 * eval.c (debugger_may_continue): New variable.
4615 (syms_of_eval): Add a DEFVAR_BOOL for it.
4616 (call_debugger): Bind it.
4617
3b620731
EZ
46181999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4619
4620 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4621 fp->tty_reverse_p is set, unless the computed colors are identical
4622 to frame colors. Print both original and computed colors to
4623 termscript file.
4624 (IT_write_glyphs): Track the changes in handling of composite
4625 characters.
4626 (IT_set_frame_parameters): Don't set frame colors from
4627 unspecified-fg and unspecified-bg pseudo-colors.
4628
0f9a51c4
DL
46291999-12-17 Dave Love <fx@gnu.org>
4630
4631 * data.c (Fkeywordp): New function.
4632 (syms_of_data): Install it.
4633
363e4e42
EZ
46341999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4635
4636 * xfaces.c (tty_defined_color): Fix last change.
4637
cfad01b4
GM
46381999-12-15 Gerd Moellmann <gerd@gnu.org>
4639
4640 * xdisp.c (redisplay_window) <optional new window start>: Check
4641 that window start is in [BEGV..ZV].
4642
f9d2fdc4
EZ
46431999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4644
4645 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4646 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4647
4648 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4649 (syms_of_xfaces): Initialize and staticpro them.
4650 (tty_defined_color): If the color name is unspecified-fg or
4651 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4652 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4653 (tty_color_name): If the color pixel value is either
4654 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4655 Qunspecified_fg or Qunspecified_bg, respectively.
4656 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4657 and Qunspecified_bg for foreground and background colors.
4658 (realize_default_face): If the foreground and background colors
4659 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4660 (realize_tty_face): By default, set the face colors to
4661 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4662 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4663 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4664 Reverse the colors if the default colors were reversed.
4665
4666 * dispnew.c (init_display): Initialize the frame pixels of the
4667 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4668 FACE_TTY_DEFAULT_BG_COLOR.
4669
4670 * term.c (turn_on_face): If the default fore- and background
4671 colors are reversed, enter inverse video mode. Don't send color
4672 escape sequences for unspecified foreground and background colors.
4673 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4674
4675 * dosfns.c (unspecified_colors): New variable.
4676 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4677 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4678 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4679 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4680 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4681 Qunspecified_bg, respectively.
4682
4683 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4684 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4685
e19539f1
KH
46861999-12-15 Kenichi Handa <handa@etl.go.jp>
4687
4688 * coding.c (code_convert_region): Fix the secoding arg to
4689 update_compositions.
4690
5ec14d3c
KH
46911999-12-15 Kenichi Handa <handa@etl.go.jp>
4692
4693 The following changes are for the new composition mechanism. We
4694 have deleted `composition' charset and composite characters,
4695 instead introduced a special text property `composition'.
4696
4697 * Makefile.in (INTERVAL_SRC): Include composite.h.
4698 (INTERVAL_OBJ): Include composite.o.
4699 (SOME_MACHINE_OBJECTS): Include composite.o.
4700 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4701 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4702 Depend on composite.h.
4703 (doc.o): Depend on charset.h.
4704 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4705 (composite.o): New target.
427ec082 4706
5ec14d3c
KH
4707 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4708
4709 * callproc.c (Fcall_process): Call code_convert_string to encode
4710 arguments. Use CODING_REQUIRE_DECODING to check if the process
4711 output should be decoded.
4712
4713 * casefiddle.c: Include composite.h.
4714 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4715 multibyte character. Adjusted for the change of CHAR_STRING.
4716 (casify_region): Likewise. Call update_compositions.
4717
4718 * category.h (CATEGORY_SET): Delete codes for a composite
4719 character.
4720
4721 * category.c (word_boundary_p): Delete codes for a composite
4722 character.
4723 (Fmake_category_table): New function.
4724 (syms_of_category): Defsubr it.
4725
4726 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4727 (ccl_driver): Delete codes for a composite character.
4728
4729 * charset.h: In this entry, just `Modified' means that codes for a
4730 composite character is deleted.
4731 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4732 (charset_composition) (MIN_CHAR_COMPOSITION)
4733 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4734 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4735 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4736 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4737 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4738 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4739 Modified.
4740 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4741 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4742 non_ascii_char_to_string.
4743 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4744 (STRING_CHAR_AND_LENGTH): Likewise.
4745 (FETCH_CHAR_ADVANCE): New macro.
4746 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4747 (MAX_MULTIBYTE_LENGTH): New macro.
4748 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4749 (find_charset_in_str): Argument adjusted.
4750 (CHAR_LEN): Modified.
427ec082 4751
5ec14d3c
KH
4752 * charset.c: In this entry, just `Modified' means that codes for a
4753 composite character is deleted.
4754 (Qcomposition) (leading_code_composition)
4755 (charset_composition) (min_composite_char) (cmpchar_table)
4756 (cmpchar_table_size) (n_cmpchars): Deleted.
4757 (SPLIT_COMPOSITE_SEQ): Deleted.
4758 (SPLIT_MULTIBYTE_SEQ): Modified.
4759 (char_to_string): Renamed from non_ascii_char_to_string.
4760 Modified.
4761 (string_to_char): Renamed from string_to_non_ascii_char.
4762 (split_string): Renamed from split_non_ascii_string.
4763 (char_printable_p) (Fsplit_char)
4764 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4765 (char_bytes) (Fchar_width) (strwidth): Modified.
4766 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4767 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4768 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4769 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4770 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4771 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4772 (Fcmpchar_cmp_count): Deleted.
4773 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4774 (init_charset_once): Modified.
4775 (syms_of_charset): Modified.
4776
4777 * cmds.c (internal_self_insert): Adjusted for the change of
4778 CHAR_STRING.
4779
4780 * coding.h (emacs_code_class_type): Delete the member
4781 EMACS_leading_code_composition.
4782 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4783 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4784 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4785 (COMPOSING_WITH_RULE_P): Macros deleted.
4786 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4787 macros.
4788 (struct composition_data): New structure.
4789 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4790 (struct coding_system): New members composition_rule_follows,
4791 cmp_data, cmp_data_start, cmp_data_index.
4792 (coding_save_composition) (coding_free_composition_data)
4793 (coding_adjust_composition_offset): Extern them.
4794
4795 * coding.c: Include composite.h.
4796 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4797 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4798 of multibyte code here.
4799 (DECODE_CHARACTER_DIMENSION2): Likewise.
4800 (detect_coding_emacs_mule): Change the case label from
4801 EMACS_leading_code_composition to 0x80.
4802 (detect_coding_iso2022): Handle new composition sequence.
4803 (DECODE_ISO_CHARACTER): Likewise.
4804 (check_composing_code): Deleted.
4805 (coding_allocate_composition_data): New function.
4806 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4807 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4808 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4809 (decode_coding_iso2022): Handle new composition sequence.
4810 (ENCODE_ISO_CHARACTER): Don't check composition here.
4811 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4812 (ENCODE_COMPOSITION_NO_RULE_START)
4813 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4814 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4815 (ENCODE_COMPOSITION_FAKE_START): New macro.
4816 (encode_coding_iso2022): Handle new composition sequence.
4817 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4818 (encode_coding_sjis_big5): Ignore composition.
4819 (setup_coding_system): Initialize new members of struct
4820 coding_system. Enable composition only when the coding system has
4821 `composition' property t.
4822 (coding_free_composition_data) (coding_adjust_composition_offset)
4823 (coding_save_composition) (coding_restore_composition): New
4824 functions.
4825 (code_convert_region): Call coding_save_composition for encoding
4826 and coding_allocate_composition_data for decoding. Don't skip
4827 ASCII characters if we handle composition on encoding. Call
4828 signal_after_change with Check_BORDER.
4829 (code_convert_string): Call coding_save_composition for encoding
4830 and coding_allocate_composition_data for decoding. Don't skip
4831 ASCII characters if we handle composition on encoding.
4832 (code_convert_string1): Set Vlast_coding_system_used after calling
4833 code_convert_string.
4834 (code_convert_string_norecord): Disable composition.
4835 (Fset_terminal_coding_system_internal): Likewise.
4836 (Fset_safe_terminal_coding_system_internal): Likewise.
4837 (Fset_keyboard_coding_system_internal): Likewise.
4838 (init_coding_once): Set emacs_code_class[0x80] to
4839 EMACS_invalid_code.
4840
4841 * composite.h: New file.
4842
4843 * composite.c: New file.
4844
4845 * data.c (Faref): Delete codes for a composite character..
4846 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4847
4848 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4849 (struct glyph): Add new sub-structure cmp to the union `u'.
4850 (enum display_element_type): New member IT_COMPOSITION.
4851 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4852 (struct it): New members cmp_id, cmp_len.
4853
4854 * dispnew.c (direct_output_forward_char): Check point moving into
4855 or out of a composition. If so, give up direct method.
4856
4857 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4858
4859 * editfns.c (Fchar_to_string): Adjusted for the change of
4860 CHAR_STRING.
4861 (general_insert_function): Likewise.
4862 (Finsert_char): Likewise.
4863 (Fsubst_char_in_region): Likewise. Call update_compositions.
4864 (Ftranslate_region): Call update_compositions.
4865 (Ftranspose_regions): Call update_compositions.
4866
4867 * emacs.c (main): Call syms_of_composite.
4868
4869 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4870 CHAR_STRING.
4871 (Finsert_file_contents): Set Vlast_coding_system_used before
4872 calling signal_after_change. Call update_compositions if some
4873 texts are inserted..
4874 (Fwrite_region): Adjusted for the change of a_write and e_write.
4875 (a_write): Argument changed. Work based on character position,
4876 not byte position.
4877 (e_write): Argument changed. Handle new way of composition.
4878
4879 * fns.c (Flength): The length of char-table is MAX_CHAR.
4880 (concat): Adjusted for the change of CHAR_STRING.
4881 (Ffillarray): Adjusted for the change of CHAR_STRING.
4882 (Fset_char_table_default): Delete codes for a composite character.
4883 (hash_put): Return hash index.
4884
4885 * fontset.h (struct font_info): New member vertical_centering.
4886 (Vvertical_centering_font_regexp): Extern it.
4887
4888 * fontset.c (Vvertical_centering_font_regexp): New variable.
4889 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4890 Set Vignore_relative_composition to nil.
4891 (fs_load_font): Initialize `vertical_centering' of struct
4892 font_info.
4893
4894 * indent.c (check_composition): New function.
4895 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4896 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4897 (current_column_1): Handle new way of composition.
4898 (Fmove_to_column): Likewise.
4899 (compute_motion): Likewise.
4900
4901 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4902 (insert_char): Likewise.
4903 (insert): Call update_compositions.
4904 (insert_and_inherit): Likewise.
4905 (insert_before_markers): Likewise.
4906 (insert_before_markers_and_inherit): Likewise.
4907 (insert_from_string): Likewise.
4908 (insert_from_string_before_markers): Likewise.
4909 (insert_from_buffer): Likewise.
4910 (replace_range): Likewise.
4911 (count_combining_composition): Deleted.
4912 (count_combining_before): Delete codes for a composite character.
4913 (count_combining_after): Likewise.
4914 (del_range_1): Call update_compositions.
4915 (del_range_byte): Likewise.
4916 (del_range_both): Likewise.
4917 (Fcombine_after_change_execute): Likewise.
4918
4919 * intervals.h: Include composite.h.
4920 (get_property_and_range): Extern it.
4921 (Vtext_property_default_nonsticky): Extern it.
427ec082 4922
5ec14d3c
KH
4923 * intervals.c (adjust_intervals_for_insertion): To check stickines
4924 of properties, pay attention to text-property-default-nonsticky.
4925 (merge_properties_sticky): Likewise.
4926 (get_property_and_range): New function.
4927
4928 * keyboard.c (Vdisable_point_adjustment): New variable.
4929 (Vglobal_disable_point_adjustment): New variable.
4930 (syms_of_keyboard): Declare them as Lisp variables.
4931 (command_loop_1): Check them and call adjust_point_for_property if
4932 necessary.
4933 (adjust_point_for_property): New function.
4934
4935 * keymap.c (push_key_description): Adjusted for the change of
4936 CHAR_STRING.
4937 (Ftext_char_description): Likewise.
4938
4939 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4940 (hash_put): Adjusted for the change of the definition.
4941 (signal_after_change): Likewise.
4942 (check_point_in_composition): Extern it.
4943
4944 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4945 Delete a code that handles an invalid too-long multibyte sequence
4946 because we are now sure that we never encounter with such a
4947 sequence.
4948 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4949 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4950 (init_obarray): Likewise.
4951 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4952
4953 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4954
4955 * process.c: Include composite.h.
4956 (read_process_output): Call update_compositions.
4957
4958 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4959
4960 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4961
4962 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4963 character.
4964
4965 * term.c (encode_terminal_code): Delete codes for a composite
4966 character. Adjusted for the change of CHAR_STRING.
4967 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4968 Delete codes for a composite character.
4969
4970 * textprop.c (Vtext_property_default_nonsticky): New variable
4971 (syms_of_textprop): Declare it as a Lisp variable.
4972
4973 * window.c (Frecenter): Clear all caches of compositions.
4974
4975 * xdisp.c (it_props): Add an entry for composition.
4976 (face_before_or_after_it_pos): For composition, check face of a
4977 character after the composition.
4978 (handle_composition_prop): New function.
4979 (get_next_display_element): Adjusted for the change of
4980 CHAR_STRING.
4981 (set_iterator_to_next): Handle the case that it->method ==
4982 next_element_from_composition.
4983 (next_element_from_composition): New function.
4984 (message_dolog): Adjusted for the change of CHAR_STRING.
4985 (set_message_1): Likewise.
4986 (check_point_in_composition): New function.
4987 (reconsider_clip_changes): If point moved into or out of
4988 composition, set b->clip_changed to 1 to force updating of the
4989 screen.
4990 (disp_char_vector): Delete codes for a composite character.
4991 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4992
4993 * xfaces.c (choose_face_fontset_font): Delete codes for a
4994 composite character.
4995 (realize_x_face): Likewise. Change a place to set local variable
4996 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4997
4998 * xfns.c: Include intervals.h.
4999 (syms_of_xfns): Make `display' property nonsticky by default.
5000
5001 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
5002 for find_charset_in_str.
5003
5004 * xterm.h (struct x_output): Change member font_baseline to
5005 baseline_offset.
5006
5007 * xterm.c (x_append_glyph): Setup members of struct glyph properly
5008 for composition.
5009 (x_append_composite_glyph): New function.
5010 (VCENTER_BASELINE_OFFSET): New macro.
5011 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
5012 of struct it for the composition. Cache pixel offsets in the
5013 struct composition. Delete codes for a composite character.
5014 Handle Vignore_relative_composition in composition code.
5015 (struct glyph_string): Delete member cmpcharp, add new member cmp.
5016 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
5017 (x_compute_glyph_string_overhangs): Likewise.
5018 (x_get_glyph_overhangs): Delete codes for a composite character.
5019 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
5020 (x_draw_glyph_string_background): Likewise. Delete codes for
5021 checking s->gidx for a composition.
5022 (x_draw_glyph_string_foreground): Delete code for a composite
5023 character.
5024 (x_draw_composite_glyph_string_foreground): New function.
5025 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
5026 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5027 (struct work): Deleted.
5028 (x_fill_composite_glyph_string): Argument changed. Mostly
5029 rewritten for that.
5030 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5031 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5032 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5033 (BUILD_GLYPH_STRINGS): For composition, call
5034 BUILD_COMPOSITE_GLYPH_STRING.
5035 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5036 f->output_data.x->font_baseline.
5037
c3c60f13
GM
50381999-12-14 Gerd Moellmann <gerd@gnu.org>
5039
5040 * xterm.c (show_mouse_face): Don't use updated_area, use
5041 TEXT_AREA.
5042
83c8f461 50431999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5044
5045 * minibuf.c (Fall_completions): Doc fix.
5046
83c8f461 50471999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5048
5049 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5050 has been changed by the Lisp code.
5051
d8eccf12
GM
50521999-12-12 Gerd Moellmann <gerd@gnu.org>
5053
5054 * xfns.c: Indentation fixes.
5055
ae56feae
SM
50561999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5057
5058 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5059
dfa1c6ae
GM
50601999-12-10 Gerd Moellmann <gerd@gnu.org>
5061
5062 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5063 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5064
5065 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5066 to frame.h.
5067
ec18280f
SM
50681999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5069
5070 * keyboard.c (Qratio): New symbol.
5071 (scroll_bar_parts): Add `Qratio' to it.
5072 (syms_of_keyboard): Init `Qratio'.
5073 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5074 * xterm.c (#includes): Allow compilation with only Xaw.
5075 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5076 (xt_action_hook): Replace XAW3D by XAW.
5077 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5078 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5079 Determine epsilon dynamically and don't try to be too clever.
5080 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5081 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5082 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5083 scrollbar (using `ratio').
5084 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5085 scrollbar we have so as to set it up more optimally and to fix
5086 xaw3d_arrow_scroll and xaw3d_pick_top.
5087 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5088 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5089 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5090 is not ignored, using a major gross hack.
5091 (x_initialize): Init default values for xaw3d_arrow_scroll and
5092 xaw3d_pick_top.
5093
83b6d970
DL
50941999-12-09 Dave Love <fx@gnu.org>
5095
5096 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5097
3648c842
GM
50981999-12-08 Gerd Moellmann <gerd@gnu.org>
5099
5100 * eval.c: Remove conditional compilation on `standalone'.
5101 (call_debugger): When entering the debugger while redisplaying,
5102 reset redisplaying_p, and go back to the top-level if the debugger
5103 returns.
5104
05e71564
GM
51051999-12-07 Gerd Moellmann <gerd@gnu.org>
5106
5107 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5108 basic faces are realized before trying to use face `menu'.
5109
5110 * window.c (delete_window): Block input for the time window
5111 matrices are being changed.
5112
b46cd536
DL
51131999-12-07 Dave Love <fx@gnu.org>
5114
5115 * lread.c (Fintern_soft): Fix newlines in doc string.
5116
96acb1f7
GM
51171999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5118
5119 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5120 duplicate definition of ElfW.
5121 (find_section): Copied from unexsgi.c.
5122 (unexec): Use find_section. Adjust whitespace. Initialize
5123 new_data2_offset based on old_data, not sbss (this fixes a bug on
5124 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5125 Adjust test for presence of .mdebug section to the new return
5126 value of find_section.
427ec082 5127
96acb1f7
GM
51281999-12-07 Gerd Moellmann <gerd@gnu.org>
5129
5130 * unexelf.c: Merge changes from 20.5.
5131 (unexec): Handle .lit4 and .lit8 unconditionally.
5132
5133 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5134 unexsgi.o again.
427ec082 5135
96acb1f7
GM
5136 * m/iris5d.h (UNEXEC): Likewise.
5137
7dae4502
SM
51381999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5139
5140 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5141 (syms_of_editfns): Register it.
5142 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5143 (del_range_1, del_range_2): Add a ret_string argument to
5144 request that the deleted text be returned.
5145 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5146 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5147 * casefiddle.c (casify_region): Update del_range_1 call.
5148 * coding.c (code_convert_region): Update del_range_2 call.
5149 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5150
397e4fae
GM
51511999-12-06 Gerd Moellmann <gerd@gnu.org>
5152
5153 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5154
3d973f71
GM
51551999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5156
5157 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5158
740e985f
EZ
51591999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5160
5161 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5162
5163 * insdel.c (adjust_markers_for_delete): Fix last change.
5164
2d764c78
EZ
51651999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5166
5167 Changes for automatic remapping of X colors on terminal frames:
5168
5169 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5170 frames.
5171 (Vface_tty_color_alist): Remove.
5172 (tty_defined_color): New function.
5173 (defined_color): Rewrite to support any type of frame.
5174 (tty_color_name): New function.
5175 (face_color_supported_p, Fface_color_gray_p,
5176 Fface_color_supported_p): Support non-X frames.
5177 (load_color): Enclose the color name in quotes, in the log
5178 messages. Remove DOS-specific version of load_color.
5179 (realize_tty_face): Take the supported colors from
5180 tty-color-alist. Support translation of X colors to the closest
5181 tty color, for both MSDOS and tty frames.
5182 [MSDOS]: Don't invert face colors if they were taken from the
5183 frame colors.
5184 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5185
5186 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5187 Define a mostly empty surrogate.
5188 (tty_display): Declare.
5189
5190 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5191 tty_display.
5192 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5193 frames when the frame's param_alist includes 'reverse.
5194 (tty_display): Define.
5195 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5196 output_data.x member.
5197 (Fframe_parameters): Return foreground and background color names
5198 on tty frames as well, in addition to MSDOS frames.
5199
5200 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5201 selected_frame.
5202 (struct x_output): Remove unused members; document who uses each
5203 member.
5204 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5205 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5206 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5207 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5208 unused macro definintions.
5209
5210 * msdos.c (IT_set_frame_parameters): Don't call
5211 recompute_basic_faces, the next redisplay will, anyway.
5212 (x_current_display): Remove unused variable.
5213 Many functions: changes for Lisp_object selected_frame.
5214 (IT_set_face): If the tty_reverse_p flag is set for the face,
5215 reverse the foreground and background colors.
5216 (Fmsdos_remember_default_colors): New function.
5217 (syms_of_msdos): Defsubr it.
5218 (IT_set_frame_parameters): Use initial_screen_colors[] when
5219 creating a new frame. If the frame parameters include 'reverse,
5220 swap the foreground and background colors.
5221 (internal_terminal_init): Initialize initial_screen_colors to -1.
5222 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5223 cus-start.el.
5224
5225 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5226
5227 * xfns.c (x_defined_color): Rename from defined_color. All
5228 callers changed.
5229 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5230 all callers changed.
5231 (Fxw_color_values): Renamed from Fx_color_values; all callers
5232 changed.
5233 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5234 callers changed.
5235 (x_window_to_frame, x_any_window_to_frame,
5236 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5237 x_top_window_to_frame): Use !FRAME_X_P instead of
5238 f->output_data.nothing.
5239 * xterm.h (x_defined_color): Rename from defined_color.
5240
5241 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5242 f->output_data.nothing.
5243 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5244 all callers changed.
5245 (Fxw_color_values): Renamed from Fx_color_values; all callers
5246 changed.
5247 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5248 callers changed.
5249
5250 * dispextern.h (tty_color_name): Add prototype.
5251
5252 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5253 f->output_data.nothing.
5254 * w32menu.c (menubar_id_to_frame): Likewise.
5255 * w32term.h (w32_output): Declare.
5256
5257 * dosfns.c (Qmsdos_color_translate): Remove.
5258 (msdos_stdcolor_name): Now returns a Lisp_Object.
5259 * dosfns.h (Qmsdos_color_translate): Remove.
5260
5261 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5262
b3e5232e
KH
52631999-12-06 Kenichi Handa <handa@etl.go.jp>
5264
5265 * fileio.c (decide_coding_unwind): Renamed from
5266 set_auto_coding_unwind.
5267 (Finsert_file_contents): Make single unwind protect to call both
5268 Vset_auto_coding_function and Ffind_operation_coding_system.
5269
5270 * insdel.c (adjust_markers_for_delete): Make it non-static.
5271
db0e466c
SM
52721999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5273
5274 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5275 operators and handle them properly.
5276 * regex.h (RE_ALL_GREEDY): New option.
5277 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5278 sorting would put it.
5279 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5280 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5281
22afa6e8
DL
52821999-12-04 Dave Love <d.love@dl.ac.uk>
5283
5284 * m/arm.h: New file.
5285
40afb967
DL
52861999-12-03 Dave Love <fx@gnu.org>
5287
5288 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5289
ddf8eff5
GM
52901999-12-02 Gerd Moellmann <gerd@gnu.org>
5291
5292 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5293 for building with Motif.
5294
5295 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5296 unexelf.o.
427ec082 5297
ddf8eff5
GM
5298 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5299
fa09a82d
DL
53001999-12-01 Dave Love <fx@gnu.org>
5301
5302 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5303
ddf8eff5
GM
53041999-11-28 Gerd Moellmann <gerd@gnu.org>
5305
5306 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5307 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5308 macros.
5309
5310 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5311
fa09a82d
DL
53121999-11-28 eliz <eliz@dlpx1>
5313
5314 * emacs.c (synchronize_locale): Avoid compiler warnings about
5315 pointer type mismatch.
5316
f9632fc8
GM
53171999-11-28 Gerd Moellmann <gerd@gnu.org>
5318
717d0121
GM
5319 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5320 out of range position.
5321
427ec082 5322 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5323 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5324
59c65f1e
EZ
53251999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5326
613a8346
EZ
5327 * charset.c (Fmake_char_internal): Print the charset ID when
5328 signalling an error.
5329
59c65f1e
EZ
5330 * emacs.c (synchronize_locale): Avoid compiler warnings about
5331 pointer type mismatch.
5332
83c8f461 53331999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5334
5335 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5336
18df9369
GM
53371999-11-26 Gerd Moellmann <gerd@gnu.org>
5338
65a3ccf7
GM
5339 * puresize.h (BASE_PURESIZE): Increase to 550000.
5340
b3b98592
GM
5341 * textprop.c (set_text_properties): New function. Like
5342 Fset_text_properties, but with additional parameter
5343 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5344 changes.
5345 (Fset_text_properties): Use it.
5346
5347 * insdel.c (insert_1_both): Call set_text_properties with last
5348 parameter nil so that no after changes will be signaled.
5349
5350 * lisp.h: Add prototype for set_text_properties.
5351
18df9369
GM
5352 * xfaces.c (set_lface_from_font_name): Fix previous change.
5353 (recompute_basic_faces): Change assert to abort.
5354
71a8e74b
DL
53551999-11-25 Dave Love <fx@gnu.org>
5356
5357 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5358 (Fmember, Fdelq, Fdelete): Inline car.
5359 (Fy_or_n_p): Doc fix.
5360
bc6a5782
GM
53611999-11-25 Gerd Moellmann <gerd@gnu.org>
5362
3221576b 5363 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5364 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5365 is not set, try to use a reasonable default.
5366
bc6a5782
GM
5367 * dispnew.c (direct_output_for_insert): Set glyph row's
5368 displays_text_p flag. Correct window's window_end_vpos if
5369 necessary.
5370
0c8559bb
PE
53711999-11-25 Paul Eggert <eggert@twinsun.com>
5372
5373 * emacs.c (fixup_locale): Don't bother to record initial locale.
5374 (synchronize_locale): If the desired locale is nil,
5375 treat it as if it were the empty string,
5376 so that we set the locale from the environment.
5377
35737351
KH
53781999-11-25 Kenichi Handa <handa@etl.go.jp>
5379
5380 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5381 of the current buffer via Fset.
5382
5562b47f
DL
53831999-11-24 Dave Love <fx@gnu.org>
5384
5562b47f
DL
5385 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5386
5387 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5388
00da0e4a
GM
53891999-11-24 Gerd Moellmann <gerd@gnu.org>
5390
5391 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5392
5393 * emacs.c (PVEC_FLAG): New variable.
5394
b1775dc1
GM
53951999-11-23 Gerd Moellmann <gerd@gnu.org>
5396
5397 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5398 that fails on IBM PowerPC, AIX 4.2.
427ec082 5399
08de6200
EZ
54001999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5401
5402 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5403 string of mode-line-format. Remove the obsolete %t.
5404
02fda8ff
GM
54051999-11-22 Gerd Moellmann <gerd@gnu.org>
5406
f2fa858f
GM
5407 * dispnew.c (direct_output_for_insert): Increment glyph positions
5408 for glyphs from buffer text only.
5409
02fda8ff
GM
5410 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5411 (gdb_data_seg_bits): New variables.
427ec082 5412
02fda8ff
GM
5413 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5414 work on systems not allowing enumerators > INT_MAX, and it
5415 won't work if EMACS_INT is long long.
5416
1b0d24e7
PE
54171999-11-22 Paul Eggert <eggert@twinsun.com>
5418
5419 Port to SunOS 4.1.x again. Help out with Alpha port.
5420 Rename messages-locale to system-messages-locale,
5421 and likewise for time-locale.
427ec082 5422
1b0d24e7
PE
5423 * callproc.c (strerror): Remove decl.
5424 * fileio.c (strerror): Likewise.
5425 * process.c (strerror): Likewise.
5426 * emacs.c (strerror): Likewise.
5427 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5428 All uses changed.
5429 (Vprevious_system_messages_locale): Likewise, from
5430 Vprevious_messages_locale.
5431 (Vsystem_time_locale): Likewise, from Vtime_locale.
5432 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5433 (ABORT_RETURN_TYPE): New macro.
5434 (abort): Return type is now ABORT_RETURN_TYPE.
5435 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5436 defined.
5437 (syms_of_emacs): messages-locale -> system-messages-locale,
5438 previous-messages-locale -> previous-system-messages-locale,
5439 time-locale -> system-time-locale,
5440 previous-time-locale -> previous-system-time-locale.
5441
5442 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5443 (const): Do not define; that's config.h's job.
5444 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5445 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5446 (<stddef.h>): Include if STDC_HEADERS is defined.
5447 (FREE_RETURN_TYPE): New macro.
5448 (free): Return type is now FREE_RETURN_TYPE.
5449
5450 * lisp.h (synchronize_system_time_locale): Renamed from
5451 synchronize_time_locale. All uses changed.
5452 (synchronize_system_messages_locale): Likewise, from
5453 synchronize_messages_locale.
5454
5455 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5456 stdlib.h now does this.
5457
5458 * process.c (sys_siglist): Remove.
5459
5460 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5461 New macros.
5462
5463 * syntax.c (scan_sexps_forward): Use abort, not assert.
5464
5465 * sysdep.c (my_sys_siglist): New var.
5466 (sys_siglist): New macro. Remove old initialized vars of same name.
5467 (init_signals): Initialize sys_siglist.
5468
5469 * xfns.c (abort): Remove decl; stdlib.h now does this.
5470
0dcd5b54
DL
54711999-11-18 Dave Love <fx@gnu.org>
5472
946173ad
DL
5473 * filelock.c: Add forward declaration for get_boot_time_1.
5474
0dcd5b54
DL
5475 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5476
71447e8f
GM
54771999-11-18 Gerd Moellmann <gerd@gnu.org>
5478
5479 * buffer.h (struct buffer_text): Add comment about moving
5480 buffer text if REL_ALLOC is defined.
5481
eeedff63
KH
54821999-11-18 Kenichi Handa <handa@etl.go.jp>
5483
5484 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5485
5486 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5487 memory for push_key_description.
5488
5489 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5490 allocate memory for push_key_description.
5491 (describe_buffer_bindings): Likewise.
5492
5d7e4a2c
GM
54931999-11-17 Gerd Moellmann <gerd@gnu.org>
5494
5495 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5496 (Fx_hide_busy_cursor): Ditto.
5497
54981999-11-17 Marco Walther <walther@siemens-pyramid.com>
5499
5500 * unexsni.c (unexec): Handle .rel.dyn section.
5501
b5b41e02
DL
55021999-11-16 Dave Love <fx@gnu.org>
5503
5504 * doc.c (Fdocumentation): Remove gcpro here too.
5505
e35b6123
GM
55061999-11-16 Gerd Moellmann <gerd@gnu.org>
5507
5508 * keyboard.c (command_loop_1): Remove no_redisplay.
5509
83c8f461 55101999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5511
5512 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5513 in noninteractive.
5514
b05d3bee
GM
55151999-11-14 Gerd Moellmann <gerd@gnu.org>
5516
5bcfeb49
GM
5517 * xdisp.c (ensure_echo_area_buffers): New.
5518 (with_echo_area_buffer): Use it.
5519 (setup_echo_area_for_printing): Ditto.
5520
b05d3bee
GM
5521 * buffer.c (indicate-empty-lines): Doc-fix.
5522
9b2e6e4c
GM
55231999-11-12 Gerd Moellmann <gerd@gnu.org>
5524
e7f90eab
GM
5525 * term.c (term_init): If "op" isn't available, don't support color
5526 because we can't switch back to the default foreground and
5527 background.
5528
9b2e6e4c
GM
5529 * doc.c (Fdocumentation_property): Remove GCPRO because
5530 Fsubstitute_command_keys gcpro's the string.
5531
1bf21027
KH
55321999-11-12 Kenichi Handa <handa@etl.go.jp>
5533
5534 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5535
3bc6df53
GM
55361999-11-11 Gerd Moellmann <gerd@gnu.org>
5537
5538 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5539 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5540 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5541
35a5514b
GM
55421999-11-10 Gerd Moellmann <gerd@gnu.org>
5543
5544 * xfns.c (QCuser_data): Removed.
5545 (syms_of_xfns): Initialization of QCuser_data removed.
5546 (parse_image_spec): Don't handle :user-data specially. Allow
5547 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5548 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5549 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5550 parse_image_spec accordingly.
5551
83c8f461 55521999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5553
5554 * cmds.c (Fbeginning_of_line): Doc fix.
5555 (Fend_of_line): Doc fix.
5556
5557 * editfns.c (Fline_beginning_position): If N is not 1,
5558 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5559
5560 * syntax.c (Fforward_word): Handle fields even if would have hit
5561 an edge of the buffer. Return nil if affected by fields.
5562
83c8f461 55631999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5564
5565 * editfns.c (preceding_pos): Function deleted.
5566 (text_property_stickiness): Decrement POS directly.
5567 Fix a confusion that used PT instead of POS.
5568
5569 * editfns.c (find_field): Properly handle the case
5570 of a field boundary where `field' inherits from neither side.
5571
5572 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5573 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5574
fa9aabf6
GM
55751999-11-08 Gerd Moellmann <gerd@gnu.org>
5576
5577 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5578 BEFORE_POTENTIAL_GC before DISCARD.
5579
4015b3c0
GM
55801999-11-07 Gerd Moellmann <gerd@gnu.org>
5581
033a5fa3
GM
5582 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5583
5584 * lisp.h: Add prototype for unmark_byte_stack.
5585
5586 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5587 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5588 XUNMARK.
5589
55b064bd
GM
5590 * xdisp.c (resize_mini_window): Fix computation of needed
5591 mini-window height.
5592
5593 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5594 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5595
4015b3c0 5596 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5597 locally there. Rearrange case statements so that those most
4015b3c0
GM
5598 frequently executed come first. Avoid goto's in frequently
5599 executed cases.
5600
fe512f27
GM
56011999-11-05 Gerd Moellmann <gerd@gnu.org>
5602
dd59e217
GM
5603 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5604 AFTER_POTENTIAL_GC around internal_catch.
5605
bcf28080
GM
5606 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5607 relocate_byte_pcs.
5608 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5609
5610 * eval.c (struct catchtag): Add member byte_stack.
5611 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5612 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5613 catchtag.
5614 (unwind_to_catch): Restore byte_stack_list from catchtag.
5615
5616 * lisp.h: Add prototypes for new functions in bytecode.c.
5617 Add extern declaration for byte_stack_list.
5618
5619 * bytecode.c (struct byte_stack): New.
5620 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5621 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5622 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5623 (HANDLE_RELOCATION): Removed.
5624 (Fbyte_code): Use byte_stack structures.
5625
4d59c34c
GM
5626 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5627
fe512f27
GM
5628 * buffer.c (syms_of_buffer): Extend documentation of
5629 mode-line-format.
5630
60b64cd6
GM
56311999-11-04 Gerd Moellmann <gerd@gnu.org>
5632
5633 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5634
5635 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5636 Ferase_field instead of Fdelete_field.
5637
b51b619b
GM
56381999-11-03 Gerd Moellmann <gerd@gnu.org>
5639
5640 * dispnew.c (Finternal_show_cursor): Change it to set the
5641 cursor on/off, not toggle its state.
5642 (Finternal_show_cursor_p): New.
5643 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5644
5865af0d
DL
56451999-11-03 Dave Love <fx@gnu.org>
5646
5647 * charset.c (split_non_ascii_string): Define return value.
5648
82a700f3
GM
56491999-11-03 Gerd Moellmann <gerd@gnu.org>
5650
edfef199
GM
5651 * minibuf.c (string_to_object): New.
5652 (read_minibuf_noninteractive): New.
5653 (read_minibuf): Call read_minibuf_noninteractive if
5654 noninteractive. Use string_to_object.
5655
82a700f3
GM
5656 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5657
b5540f0d
DL
56581999-11-02 Dave Love <fx@gnu.org>
5659
e69dcd60
DL
5660 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5661
827a1788
DL
5662 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5663 declared with glibc2.
b5540f0d 5664
a69a6e61
GM
56651999-11-02 Gerd Moellmann <gerd@gnu.org>
5666
5667 * lisp.h (QUIT): Give it statement form.
5668
87e21fbd
DL
56691999-11-02 Dave Love <fx@gnu.org>
5670
5671 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5672
1b335865
GM
56731999-11-02 Gerd Moellmann <gerd@gnu.org>
5674
9fb5e03d
GM
5675 * xfns.c (QCuser_data): New.
5676 (syms_of_xfns): Initialize QCuser_data.
5677 (parse_image_spec): Ignore :user-data DATA properties.
5678
1b335865
GM
5679 * xdisp.c (display_line): Set charpos of first glyph in blank
5680 lines not corresponding to any text to -1, even if no glyphs are
5681 filled in in that line.
5682
e76f1c44
GM
56831999-11-01 Gerd Moellmann <gerd@gnu.org>
5684
427ec082 5685 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5686 png_get_sRGB in #ifdef.
5687
111259b4
GM
5688 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5689 (syms_of_display): Use the new name.
5690
dd5c96e8
GM
5691 * textprop.c (verify_interval_modification): Signal text-read-only
5692 instead of calling error.
5693
db8878fb
GM
5694 * data.c (Qtext_read_only): New built-in error.
5695 (syms_of_data): Initialize it.
5696
5697 * lisp.h: Add extern declaration for Qtext_read_only.
5698
e76f1c44
GM
5699 * syntax.c: Remove whitespace after open or in front of closing
5700 parentheses.
5701
83c8f461 57021999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5703
5704 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5705
7843e09c
GM
57061999-10-31 Gerd Moellmann <gerd@gnu.org>
5707
575ed805
GM
5708 * xdisp.c (resize_mini_window): Compute needed height differently.
5709
7843e09c
GM
5710 * fns.c (Flength): Unroll loop over lists.
5711
5712 * xdisp.c (append_space): Return non-zero if space was appended.
5713 (display_line): Set charpos of first glyph to -1 only if that
5714 glyph is the space added by append_glyph.
5715
83c8f461 57161999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5717
5718 * print.c (strout): Consider `noninteractive' and use stdout
5719 only when PRINTCHARFUN is t.
5720
5721 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5722 (gcpro_level): Declare it extern.
5723 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5724 Alternate definitions that set `level' and increment `gcpro_level'.
5725 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5726
5727 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5728 (init_eval) [DEBUG_GCPRO]: Initialize it.
5729 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5730 from remaining gcprolist.
5731
3636f7a3
KH
57321999-10-29 Kenichi Handa <handa@etl.go.jp>
5733
5734 * coding.c (code_convert_region): Update `dst' correctly.
5735
a2ad7096
GM
57361999-10-28 Gerd Moellmann <gerd@gnu.org>
5737
5738 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5739 (Frassoc): Rewritten.
5740
1e3196e8
GM
57411999-10-27 Noah Friedman <friedman@splode.com>
5742
5743 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5744 Define PTY_NAME_SPRINTF.
5745 Redefine PTY_TTY_NAME_SPRINTF.
5746 * config.in: Add undef for HAVE_DEV_PTMX.
5747
83c8f461 57481999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5749
5750 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5751 as arg to DEBUG_POP and DEBUG_PRINT.
5752
83c8f461 57531999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5754
5755 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5756 (Ffset): Call Qad_activate_internal.
5757 (syms_of_data): Initialize Qad_activate_internal.
5758
26922151
GM
57591999-10-27 Gerd Moellmann <gerd@gnu.org>
5760
5761 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5762 Vterminal_frame is selected and Vwindow_system is non-nil.
5763
67a5596f
GM
57641999-10-26 Gerd Moellmann <gerd@gnu.org>
5765
2bea706b
GM
5766 * xdisp.c (echo_area_display): Put previous change in #if 0.
5767
67a5596f
GM
5768 * emacs.c (standard_args): Add `file' as synonym for `visit',
5769 `execute' as synonym for `eval'.
5770 (main): Add new options to usage message.
5771
81dc5de5
GM
57721999-10-25 Gerd Moellmann <gerd@gnu.org>
5773
5774 * data.c (Qhash_table): New.
5775 (Ftype_of): Return it for hash tables.
5776 (syms_of_data): Initialize Qhash_table.
5777
83c8f461 57781999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5779
5780 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5781
66e4690f 57821999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5783
7539e11f
KR
5784 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5785 lisp.h.
5786
5787 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5788 Fbuffer_local_variables, Fother_buffer, record_buffer,
5789 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5790 swap_out_buffer_local_variables, overlays_at, overlays_in,
5791 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5792 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5793 Foverlay_put, report_overlay_modification, evaporate_overlays):
5794 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5795 references.
5796 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5797 swap_in_symval_forwarding, set_internal, default_value,
5798 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5799 Fmake_variable_frame_local, Flocal_variable_p,
5800 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5801 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5802 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5803 * emacs.c (main): Likewise.
5804 * fontset.c (fs_load_font, fs_register_fontset,
5805 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5806 Fnew_fontset, Fset_fontset_font): Likewise.
5807 * frame.c (do_switch_frame, next_frame, prev_frame,
5808 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5809 Likewise.
5810 * keyboard.c (read_char, help_char_p, event_to_kboard,
5811 kbd_buffer_get_event, timer_start_idle, timer_check,
5812 make_lispy_event, apply_modifiers, reorder_modifiers,
5813 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5814 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5815 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5816 Fcommand_execute, Fexecute_extended_command): Likewise.
5817 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5818 Fall_completions): Likewise.
5819 * window.c (Fset_window_margins): Likewise.
5820
5821 * callint.c (quotify_args): Don't explicitly use struct
5822 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5823
3a7093d8
KR
5824 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5825 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5826 if __ELF__ is defined.
5827
2a3d7146
GM
58281999-10-24 Gerd Moellmann <gerd@gnu.org>
5829
5830 * window.c (Fnext_window): Add a QUIT in the loop.
5831
8ac52782
GM
58321999-10-23 Gerd Moellmann <gerd@gnu.org>
5833
427ec082 5834 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5835 New targets.
5836
05f0d15a
DL
58371999-10-22 Dave Love <fx@gnu.org>
5838
5839 * emacs.c (main): Enable profiling conditional on __linux also.
5840
882fb0e6
GM
58411999-10-20 Gerd Moellmann <gerd@gnu.org>
5842
5843 * xrdb.c (x_load_resources): Set default resources for resource
5844 classes instead of for the specific Emacs.
5845
b5f5bc31
GM
58461999-10-19 Gerd Moellmann <gerd@gnu.org>
5847
66f4dd69
GM
5848 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5849 defines it that way.
427ec082 5850
b5f5bc31
GM
5851 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5852 if selected_frame is equal to Vterminal_frame.
5853
68c45bf0 58541999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5855
68c45bf0 5856 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5857
68c45bf0
PE
5858 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5859 when dumping, so that the dumped Emacs doesn't have stray locale info.
5860 (dired.o): Depend on systime.h.
5861 (editfns.o): Depend on coding.h.
5862
5863 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5864 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5865 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5866 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5867 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5868 Include <config.h> before any system include files.
5869
5870 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5871 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5872 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5873 xmenu.c, xterm.c:
5874 Do not include <stdlib.h>, as <config.h> does this now.
5875
5876 * callproc.c (Fcall_process):
5877 Synchronize messages locale before invoking strerror.
5878 Decode resulting string with locale-coding-system.
5879
5880 * coding.c (Vlocale_coding_system): New var.
5881 (syms_of_coding): Adjust to above change.
5882 (emacs_strerror): New function.
5883
5884 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5885
68c45bf0
PE
5886 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5887 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5888 HAVE_STRSIGNAL): New macros.
5889 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5890 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5891
5892 * dired.c: Include "systime.h".
5893 (Ffile_attributes): Do not cast s.st_size to int; this loses
5894 information if int is 32 bits but st_size and EMACS_INT are larger.
5895 Treat large device numbers like large inode numbers.
5896
5897 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5898
5899 * editfns.c: Include coding.h.
5900 (emacs_strftime): Remove decl.
5901 (emacs_strftimeu): New decl.
5902 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5903 Use emacs_strftimeu instead of emacs_strftime.
5904 (Fformat_time_string): Convert format string using
5905 Vlocale_coding_system, and convert result back. Synchronize time
5906 locale before invoking lower level function. Invoke
5907 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5908
68c45bf0
PE
5909 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5910 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5911 Vprevious_time_locale): New variables.
5912 (main): Invoke setlocale early, so that initial error messages are
5913 localized properly. But skip locale-setting if LC_ALL is "C".
5914 Fix up locale when it's safe to do so.
5915 (fixup_locale): Moved here from xterm.c.
5916 (synchronize_locale, synchronize_time_locale,
5917 synchronize_messages_locale): New functions.
5918 (syms_of_emacs): Accommodate above changes.
5919
5920 * fileio.c (report_file_error): Convert strerror output according
5921 to Vlocale_coding_system.
5922 (Finsert_file_contents): Check for arithmetic overflow in
5923 computations that depend on file size. Report IO errors
5924 with emacs_strerror, not strerror.
5925
5926 * fns.c (Fgethash): Declare dflt parameter.
5927
5928 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5929 is defined; that's config.h's job.
5930
5931 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5932 default these values to long, BITS_PER_LONG, and unsigned long.
5933 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5934 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5935 (code_convert_string_norecord, fixup_locale,
5936 synchronize_messages_locale, synchronize_time_locale,
5937 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5938 All Emacs callers of open, close, read, write changed to use
5939 emacs_open, emacs_close, emacs_read, emacs_write.
5940
5941 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5942 changed to file_tell.
5943 (saved_doc_string_position, prev_saved_doc_string_position): Now
5944 of type file_offset.
5945 (init_lread): Do not fix locale here; fixup_locale now does this.
5946
5947 * m/amdahl.h, s/usg5-4.h:
5948 (NSIG): Remove.
5949 (NSIG_MINIMUM): New macro.
5950
5951 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5952 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5953 s/umips.h, s/usg5-4.h:
5954 (SIGIO): Do not undef.
5955 (BROKEN_SIGIO): New macro.
5956
5957 * m/ustation.h:
5958 (SIGTSTP): Do not undef.
5959 (BROKEN_SIGTSTP): New macro.
5960
5961 * s/gnu-linux.h:
5962 (SIGPOLL, SIGURG): Do not undef.
5963 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5964
5965 * s/ptx4.h:
5966 (SIGINFO): Do not undef.
5967 (BROKEN_SIGINFO): New macros.
427ec082 5968
68c45bf0
PE
5969 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5970
5971 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5972 some Emacs-related changes merged.
5973
5974 * print.c (float_to_string): Prepend "-" to representation of a
5975 NaN if the NaN is negative.
5976
5977 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5978 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 5979
68c45bf0
PE
5980 * process.c (status_message, sigchld_handler): Synchronize locale,
5981 then use strsignal istead of sys_siglist.
5982 * w32proc.c (sys_wait): Likewise.
427ec082 5983
68c45bf0
PE
5984 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5985 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5986 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5987 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5988 (open, close, read, write, INTERRUPTIBLE_OPEN,
5989 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5990
5991 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5992
5993 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5994 sys_open, open): Remove.
5995 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5996 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5997 macros are no longer used.
5998 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5999 (emacs_close): Renamed from sys_close.
6000 (emacs_read): Renamed from sys_read.
6001 (emacs_write): Renamed from sys_write.
6002 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
6003 (dup2): Do not print error on failure; the real dup2 doesn't.
6004 (strsignal): New function, defined if !HAVE_STRSIGNAL.
6005
6006 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
6007 is defined.
6008 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
6009 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
6010 (strsignal): Declare if !HAVE_STRSIGNAL.
6011
6012 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
6013 (ElfW): Define in terms of ElfExpandBitsW.
6014
6015 * w32proc.c (sys_siglist): Remove decl.
6016
6017 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
6018 with ANSI C.
6019 (display_string): Declare face_string_pos arg.
6020
6021 * xfns.c (Fx_show_tip): Declare timeout param.
6022
6023 * xterm.c: No need to include locale.h.
6024 (x_alloc_lighter_color, x_setup_relief_color):
6025 Pass arg as double, not float, for compatibility with ANSI C.
6026 (fixup_locale): Move to emacs.c.
6027 (x_term_init): Do not setlocale or fixup locale; the main program
6028 does this now.
6029
2f0b74ea
DL
60301999-10-18 Dave Love <fx@gnu.org>
6031
6032 * doc.c (Fdocumentation_property): Gcpro `tem'.
6033
471aa4a0
KH
60341999-10-18 Kenichi Handa <handa@etl.go.jp>
6035
6036 * lread.c (Fload): Calculate bytes of filename correctly.
6037 (openp): Likewise.
6038
aca2020b
KH
60391999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6040
6041 * print.c (print_preprocess): In case print-circle is nil,
6042 add OBJ to Vprint_number_table only when OBJ is a symbol.
6043
1f5fe392 60441999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6045
6046 * coding.c (code_convert_string): Add record_unwind_protect to
6047 assure setting inhibit_pre_post_conversion back to zero. Take
6048 care of the multibyteness of the working buffer.
6049
6050 * coding.c (inhibit_pre_post_conversion): New variable.
6051 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6052 ignore post-read-conversion and pre-write-conversion property of
6053 the coding system.
6054 (code_convert_region_unwind): New function.
6055 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6056 running pre-write-conversion and post-read-conversion.
6057 (code_convert_string): Likewise.
6058
cd876a91
GM
60591999-10-17 Miles Bader <miles@gnu.org>
6060
6061 * editfns.c: Doc fix.
6062
60631999-10-17 Miles Bader <miles@gnu.org>
6064
6065 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6066 argument preconditions of find_before_next_newline in the case
6067 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6068 was indeed at the edge.
6069
60701999-10-17 Miles Bader <miles@gnu.org>
6071
6072 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6073 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6074
6075 * editfns.c (text_property_eq, text_property_stickiness): Don't
6076 use initializers for auto variables of type Lisp_Object.
6077 (find_field): Likewise. Use braces around nested ifs.
6078 (Fline_end_position): Store the raw eol in a variable, so that the
6079 final expression doesn't look so ugly.
6080 (Fconstrain_to_field): Doc fix.
6081 (preceding_pos): Renamed from `preceeding_pos'.
6082 (text_property_stickiness, find_field): Call preceding_pos,
6083 not preceeding_pos.
6084
60851999-10-17 Miles Bader <miles@gnu.org>
6086
6087 * editfns.c (Ffield_string_no_properties): New function.
6088 (text_property_stickiness, preceeding_pos): New functions.
6089 (Ffield_string): Remove PROPS parameter.
6090 (find_field): Add MERGE_AT_BOUNDARY parameter.
6091 Rewrite to use stickiness of `field' property to resolve
6092 ambiguous cases.
6093 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6094 (Fconstrain_to_field): Likewise.
6095 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6096 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6097 Supply new MERGE_AT_BOUNDARY argument to find_field.
6098 (Fline_beginning_position, Fline_end_position): Supply new
6099 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6100 Pass a value of Qt for the ONLY_IN_LINE argument to
6101 Fconstrain_to_field (only matters if N != 1).
6102 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6103 to Fconstrain_to_field.
6104
6105 * minibuf.c (Fminibuffer_complete_word): Use
6106 Ffield_beginning to find the prompt end.
6107
61081999-10-17 Miles Bader <miles@gnu.org>
6109
6110 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6111 behavior when NEW_POS is nil.
6112 (find_field): Use XSETFASTINT instead of make_number.
6113 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6114 input string by seeing where the field begins, instead of
6115 looking at text-properties.
6116
61171999-10-17 Miles Bader <miles@gnu.org>
6118
6119 * editfns.c (Qfield): New variable.
6120 (find_field, Ferase_field, Ffield_string,
6121 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6122 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6123 (make_buffer_string_both): Remove minibuffer-prompt hack.
6124 (syms_of_editfns): Initialize Qfield, and subr entries for
6125 field functions above.
6126 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6127 minibuf_save_list.
6128 Don't initialize minibuffer prompt length.
6129 Wrap prompt text-properties around the entire prompt.
6130 Add 'prompt text-property to prompt.
6131 Get final value with Ffield_string instead of make_buffer_string.
6132 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6133 minibuf_save_list.
6134 (do_completion): Get minibuffer input with Ffield_string
6135 instead of Fbuffer_string.
6136 Erase minibuffer input with Ferase_field instead of erase_buffer.
6137 (Fminibuffer_complete_and_exit): Likewise.
6138 Test whether buffer is empty by looking for the 'prompt text
6139 property at the end.
6140 Set prompt length by looking for the end of the prompt text property,
6141 and save prompt length for later use (since there is no longer a
6142 buffer variable to get it from).
6143 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6144 (syms_of_minibuf): Remove initializations of
6145 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6146 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6147 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6148 Don't initialize prompt_end_charpos field.
6149 * syntax.c (Fforward_word): Likewise.
6150 Constrain to any field.
6151
3f6f7508
GM
61521999-10-16 Gerd Moellmann <gerd@gnu.org>
6153
6154 * window.c (enum save_restore_action): New.
6155 (save_restore_orig_size): Change parameter list. Add
6156 functionality to check for valid orig_top and orig_height members
6157 in a window tree.
6158 (grow_mini_window): Call save_restore_orig_size with new parameter
6159 list.
6160 (shrink_mini_window): Restore old window sizes only if old
6161 size information is valid in all windows in a window tree.
427ec082 6162
06482119
GM
61631999-10-15 Gerd Moellmann <gerd@gnu.org>
6164
2710454d
GM
6165 * xmenu.c (set_frame_menubar): Don't call
6166 x_set_menu_resources_from_menu_face here.
6167 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6168
06482119
GM
6169 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6170
17fa2837
DL
61711999-10-14 Dave Love <fx@gnu.org>
6172
6173 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6174
45f93416
GM
61751999-10-14 Gerd Moellmann <gerd@gnu.org>
6176
6177 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6178 fails and h_errno is TRY_AGAIN.
6179
c765b723
DL
61801999-10-13 Dave Love <fx@gnu.org>
6181
6182 * filelock.c (lock_file): Move gcpro of `fn'.
6183
dace7f4e
GM
61841999-10-10 Gerd Moellmann <gerd@gnu.org>
6185
6186 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6187
83c8f461 61881999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6189
6190 * print.c (print): When removing objects from Vprint_number_table,
6191 only scan the newly added objects.
6192 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6193 unconditionally force it to stay in the table.
6194
85177c86
GM
61951999-10-09 Gerd Moellmann <gerd@gnu.org>
6196
6197 * xfns.c (prepare_image_for_display): Don't try to load image if
6198 loading it failed before.
6199 (lookup_image, prepare_image_for_display): Remember if loading the
6200 image failed.
6201 (xpm_load): Add missing UNBLOCK_INPUT.
6202
6203 * dispextern.h (struct image): New member load_failed_p.
6204
11e4de5d
SM
62051999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6206
f28eba7b 6207 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6208 in the docstring.
6209
f1da8f06
GM
62101999-10-08 Gerd Moellmann <gerd@gnu.org>
6211
6212 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6213 Don't call XSetInputFocus because that can generate additional
6214 FocusIn events.
427ec082 6215
c37bbd4f
GM
62161999-10-07 Jeffrey C Honig <jch@bsdi.com>
6217
6218 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6219
83c8f461 62201999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6221
6222 * process.c (wait_reading_process_input): When trying to suck
6223 input from one process, for accept-process-output,
6224 exit that loop if we get EAGAIN or EWOULDBLOCK.
6225
577d9e2f
GM
62261999-10-07 Gerd Moellmann <gerd@gnu.org>
6227
6228 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6229 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6230 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6231 Fpixmap_spec_p and Qpixmap_spec_p.
6232 (load_face_colors, check_lface_attrs,
6233 merge_face_vector_with_property,
6234 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6235 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6236 Fbitmap_spec_p.
6237
f5737ad2
GM
62381999-10-07 Gerd Moellmann <gerd@gnu.org>
6239
6240 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6241 MODE_LINE_FACE_ID.
6242
6243 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6244 (struct x_resources) [USE_X_TOOLKIT]: New.
6245 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6246 [USE_MOTIF]: New.
6247 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6248 [USE_LUCID]: New.
6249 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6250 (Qmenu): New.
6251 (syms_of_xfaces): Initialize Qmenu.
6252 (realize_basic_faces): Realize face `menu'.
6253 (resolve_face_name): New.
6254 (lface_from_face_name): Use it.
6255 (Finternal_set_lisp_face_attribute): Ditto.
6256 (Fpixmap_spec_p): Rewritten. Extend doc string.
6257
6258 * xmenu.c (set_frame_menubar, xmenu_show): Call
6259 x_set_menu_resources_from_menu_face.
6260
6261 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6262 (toplevel): Include X11/Intrinsic.h.
6263
6a1aa823
DL
62641999-10-03 Ken'ichi Handa <handa@gnu.org>
6265
6266 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6267 correctly.
6268
26901792
DL
62691999-09-30 Kenichi Handa <handa@etl.go.jp>
6270
6271 * category.c (modify_lower_category_set): Set default value of
6272 TABLE correctly.
6273
6274 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6275 size correctly.
6276
62771999-09-29 Gerd Moellmann <gerd@gnu.org>
6278
6279 * editfns.c (Fpropertize): Renamed from Fproperties.
6280
62811999-09-29 Gerd Moellmann <gerd@gnu.org>
6282
6283 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6284 frame that hasn't been initialized yet.
6285
83c8f461 62861999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6287
6288 * keymap.c (Fsingle_key_description): Make tem big enough.
6289 (describe_buffer_bindings): Make buf big enough.
6290
83c8f461 62911999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6292
6293 * intervals.c (get_local_map): Use indirect_function,
6294 not Findirect_function.
6295
26901792
DL
62961999-09-27 Dave Love <fx@gnu.org>
6297
6298 * cm.h: Remove unneeded declaration of ospeed.
6299
63001999-09-26 Gerd Moellmann <gerd@gnu.org>
6301
6302 * lisp.h (toplevel): Add prototype for
6303 next_single_char_property_change.
6304
6305 * textprop.c (next_single_char_property_change): New.
6306
6307 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6308 next_single_char_property_change.
6309
63101999-09-25 Gerd Moellmann <gerd@gnu.org>
6311
6312 * editfns.c (Fproperties): New.
6313 (syms_of_editfns): Defsubr it.
6314
6315 * xfns.c (lookup_image): Set image's timestamp because it's
6316 used when we look it up.
6317
63181999-09-23 Gerd Moellmann <gerd@gnu.org>
6319
6320 * window.c (enlarge_window): Add window parameter instead of using
6321 selected_window.
6322 (Fdisplay_buffer): Call it with window parameter instead of
6323 setting selected_window.
6324 (Fenlarge_window, Fshrink_window): Ditto.
6325 (shrink_mini_window): If there is no recorded height and position
6326 info, resize mini-window to height 1.
6327
6328 * xfns.c (image_error): Use add_to_log.
6329
6330 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6331 (load_face_font_or_fontset, load_color,
6332 merge_face_vector_with_property): Ditto.
6333
6334 * dispextern.h: Add prototype for add_to_log.
6335
6336 * xfaces.c (add_to_log): Move to xdisp.c.
6337
6338 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6339 parameter.
6340
63411999-09-23 Gerd Moellmann <gerd@gnu.org>
6342
6343 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6344 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6345
6346 * xdisp.c (resize_mini_window): Use grow_mini_window and
6347 shrink_mini_window.
6348
6349 * window.c (window_min_size): Add parameter ignore_fixed_p.
6350 (change_window_height): Call window_min_size with new parameter.
6351 (shrink_window_lowest_first, save_restore_orig_size,
6352 grow_mini_window, shrink_mini_window): New.
6353 (make_window, replace_window): Initialize orig_top and
6354 orig_height.
6355 (enlarge_window): Renamed from change_window_height. Make it
6356 static.
6357 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6358 enlarge_window instead of change_window_height.
6359
6360 * window.h (struct window): New members orig_top, orig_height.
6361 (toplevel): Add prototypes for grow_mini_window and
6362 shrink_mini_window. Remove prototype for change_window_height.
6363
63641999-09-21 Eli Zaretskii <eliz@gnu.org>
6365
6366 * frame.c (frame_name_fnn_p): Fix previous change.
6367
63681999-09-20 Gerd Moellmann <gerd@gnu.org>
6369
6370 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6371
6372 * dispnew.c (direct_output_for_insert): Cast arguments to
6373 safe_bcopy to char *.
6374
6375 * lread.c (readchar): Remove unused variables.
6376 (read_filtered_event, read1, Fmapatoms): Ditto.
6377 (toplevel): Include intervals.h.
6378
6379 * eval.c (Fsignal): Remove unused variables.
6380 (Fcommandp, do_autoload): Ditto.
6381
6382 * lisp.h: Add prototype for safe_bcopy, fatal.
6383
6384 * editfns.c (init_editfns): Remove unused variables.
6385 (Fgoto_char, Fchar_after, Fformat): Ditto.
6386 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6387
6388 * data.c (find_symbol_value): Remove unused variables.
6389 (Faref, Fstring_to_number): Ditto.
6390 (toplevel): Include stdio.h.
6391 (Fnumber_to_string): Cast XINT to long for %ld.
6392
6393 * casefiddle.c (casify_object): Remove unused variables.
6394 (casify_region): Ditto.
6395
427ec082 6396 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6397 conditinally compiled section in #ifdef.
6398 (toplevel): Include stdio.h.
6399
6400 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6401 keys_of_keymap, syms_of_keymap): Remove unused variables.
6402
64031999-09-20 Gerd Moellmann <gerd@gnu.org>
6404
6405 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6406 whose corresponding window rows have been disabled in
6407 try_window_id.
6408
64091999-09-20 Gerd Moellmann <gerd@gnu.org>
6410
6411 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6412 that window start is out of range.
6413 (handle_display_prop, handle_single_display_prop): Replace
6414 marginal area specifications like `left-margin' with `(margin
6415 left-margin)'.
6416 (Qmargin): New.
6417 (syms_of_xdisp): Initialize Qmargin.
6418
64191999-09-19 Gerd Moellmann <gerd@gnu.org>
6420
6421 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6422 describe_syntax, skip_chars): Remove unused variables.
6423 (back_comment, forw_comment): Add braces to if-statement with
6424 if-else as dependent statement.
6425
6426 * process.c (list_processes_1): Remove unused variables.
6427 (Fopen_network_stream, create_process): Add parentheses to
6428 conditional expressions.
6429 (create_process): Put declaration of sigchld in #if 0.
6430 (Fopen_network_stream): Removed unused variables.
6431 (Fopen_network_stream, wait_reading_process_input,
6432 wait_reading_process_input, send_process, send_process): Ditto.
6433 (toplevel): Add prototypes for set_waiting_for_input and
6434 keyboard_bit_set.
6435
6436 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6437
6438 * textprop.c (Fset_text_properties): Remove unused variables.
6439 (text_property_list, verify_interval_modification,
6440 interval_has_all_properties): Ditto.
6441
6442 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6443 (Fcall_process): Remove unused variable.
6444
6445 * keyboard.c (Frecursive_edit): Remove unused variable.
6446 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6447 timer_check, make_lispy_event, menu_bar_items,
6448 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6449 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6450 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6451 read_key_sequence): Ditto. Fread_key_sequence,
6452 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6453 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6454 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6455 (Fexecute_extended_command): Cast XINT to long for %ld.
6456 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6457 (toplevel): Include sys/types.h.
6458
6459 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6460 (toplevel): Add prototypes for stuff_char, and
6461 code_convert_string_norecord.
6462
64631999-09-19 Gerd Moellmann <gerd@gnu.org>
6464
6465 * buffer.h: Add prototype for r_re_alloc.
6466
6467 * insdel.c (copy_text): Removed unused variables.
6468 (count_combining_after, count_combining_after, insert_1_both,
6469 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6470 (adjust_after_replace, replace_range): Add parentheses to logical
6471 expressions. Remove unused variables.
6472 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6473 expression.
6474
6475 * alloc.c (Fgarbage_collect): Remove unused variable.
6476 (compact_strings): Add parentheses around assignments in
6477 conditional context.
6478 (toplevel): Put declaration of unused function clear_marks
6479 in #if 0 like its definition.
6480
6481 * lisp.h: Add prototype for shrink_regexp_cache,
6482 sweep_weak_hash_tables.
6483
64841999-09-19 Dave Love <fx@gnu.org>
6485
6486 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6487
6488 * doc.c (read_bytecode_char): Declare arg.
6489
6490 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6491 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6492
64931999-09-18 Richard Stallman <rms@gnu.org>
6494
6495 * xdisp.c (echo_area_display): Turn off code that returned
6496 without doing anything when using a terminal frame.
6497
83c8f461 64981999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6499
6500 * unexelf.c (unexec): Don't get confused by a short section
6501 just before the bss section.
6502
26901792
DL
65031999-09-16 Gerd Moellmann <gerd@gnu.org>
6504
6505 * emacs.c (main): Remove unused variables.
6506 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6507
6508 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6509 init_fileio_once, syms_of_sound, init_xfns, init_fns
6510 init_sound, check_message_stack.
6511
6512 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6513
6514 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6515 ambiguous else warning.
6516 (split_interval_left): Remove unused variables.
6517 (previous_interval, adjust_intervals_for_deletion,
6518 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6519 (icount, idepth, zero_length): Move into #if 0 section below
6520 original position where these are used.
6521
6522 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6523
6524 * buffer.c (Fkill_buffer): Remove unused variables.
6525 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6526 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6527 init_buffer_once, (syms_of_buffer): Ditto.
6528
6529 * xrdb.c (get_fallback): Remove unused variable.
6530 (x_load_resources): Ditto. Put local variable used for Motif only
6531 in #ifdef USE_MOTIF.
6532
65331999-09-16 Gerd Moellmann <gerd@gnu.org>
6534
6535 * minibuf.c (read_minibuf): Remove unused variables.
6536 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6537 (do_completion): Move assignment out of conditional context.
6538 (Fdisplay_completion_list): Add parentheses to conditional expression.
6539
6540 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6541
6542 * lisp.h: Add prototype for no_switch_window.
6543
6544 * window.c (Fset_window_buffer): Remove unused variables.
6545 (Fset_window_margins): Ditto.
6546
6547 * xdisp.c (resize_mini_window): Temporarily set the selected
6548 window's or Vminibuf_scroll_window's height to "fixed" around
6549 the call the change_window_height.
6550
6551 * window.c (window_fixed_size_p): Check window's height_fixed_p
6552 flag.
6553
6554 * window.h (struct window): New member height_fixed_p.
6555
6556 * dispnew.c (direct_output_forward_char): Don't use this method
6557 if showing a message or a message was just cleared because we
6558 might need to resize the mini-window.
6559
65601999-09-16 Gerd Moellmann <gerd@gnu.org>
6561
6562 * frame.c (Fdelete_frame): Correct local variable pointing to
6563 selected frame after selecting new frame.
6564
65651999-09-15 Richard Stallman <rms@gnu.org>
6566
6567 * puresize.h (BASE_PURESIZE): Increase to 525000.
6568
6569 * filelock.c (Vtemporary_file_directory): New variable.
6570 (syms_of_filelock): Set up Lisp variable.
6571
65721999-09-15 Gerd Moellmann <gerd@gnu.org>
6573
6574 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6575 (encode_terminal_code): Remove unused variables.
6576 (turn_off_face): Ditto.
6577 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6578
6579 * dispnew.c (update_frame_line): If writing whole desired line,
6580 don't clear to end of line if already at the end.
6581
65821999-09-15 Gerd Moellmann <gerd@gnu.org>
6583
6584 * xdisp.c (resize_mini_window): Don't report changed window
6585 height if it actually hasn't changed.
6586
427ec082 6587 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6588 unused variables.
6589 (mark_shell_size_user_specified): Put in #if 0 because not used.
6590 (create_frame_gcs): Put in #if 0 because currently unused.
6591 (first_frame_p): Ditto.
6592
6593 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6594 single_submenu, update_frame_menubar, set_frame_menubar,
6595 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6596 variables.
6597
6598 * print.c (PRINTFULLP): Removed because it is no longer used and
6599 is misleading.
6600 (Ferror_message_string): Remove unused variables.
6601 (print_object): Cast argument of sprintf to long for `%ld'
6602 specifier. Remove unused variable.
6603
66041999-09-14 Gerd Moellmann <gerd@gnu.org>
6605
6606 * sound.c (Fplay_sound): Remove usused variables.
6607 (be2hs): Put in #if 0 because it's currently not used.
6608
66091999-09-14 Ken Raeburn <raeburn@gnu.org>
6610
6611 * print.c (Ferror_message_string, print_error_message,
6612 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6613 member access.
6614
66151999-09-14 Gerd Moellmann <gerd@gnu.org>
6616
6617 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6618
6619 * frame.c (Fnext_frame): Remove unused variable(s).
6620 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6621 (store_frame_param): Add parentheses to conditional expression.
6622 (Fmodify_frame_parameters): Remove unused variables.
6623 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6624 Ditto.
6625
6626 * xfns.c (x_set_background_color): Remove unused variable(s).
6627 (x_set_border_pixel): Ditto.
6628 (x_set_menu_bar_lines): Put local variable used only for
6629 non-toolkit case in #ifdef/#endif.
6630 (x_figure_window_size): Remove unused variable(s).
427ec082 6631 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6632 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6633 png_load, jpeg_load, gif_load, x_create_tip_frame,
6634 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6635
6636 * xterm.c (x_scroll_bar_handle_click): Compile only if
6637 not USE_TOOLKIT_SCROLL_BARS.
6638 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6639
6640 * dispextern.h: Add prototypes for gamma_correct and
6641 x_kill_gs_process.
6642
6643 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6644 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6645 x_set_toolkit_scroll_bar_thumb): Ditto.
6646 (x_scroll_bar_create): Move local variable to the
6647 conditionally compiled section of code where it is used.
6648 (x_scroll_bar_create): Remove unused variable(s).
6649 (x_scroll_bar_remove, XTread_socket): Ditto.
6650 (XTread_socket) <ConfigureNotify>: Move variables used for
6651 non-toolkit case into conditionally compiled section of code.
6652
6653 * window.h (freeze_window_starts): Fix typo in prototype.
6654
6655 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6656 variable(s).
6657
6658 * lisp.h: Add prototype for debug_print.
6659
6660 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6661 to use do-while.
6662
6663 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6664 (Fchar_table_range, Fset_char_table_default, mapcar1,
6665 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6666
6667 * lisp.h: Add prototype for getloadavg.
6668
66691999-09-14 Andreas Schwab <schwab@gnu.org>
6670
6671 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6672
6673 * lisp.h: Declare close_file_unwind.
6674
66751999-09-14 Richard Stallman <rms@gnu.org>
6676
6677 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6678
66791999-09-13 Gerd Moellmann <gerd@gnu.org>
6680
6681 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6682 is always set correctly.
6683
66841999-09-13 Dave Love <fx@gnu.org>
6685
6686 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6687 declaration.
6688
66891999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6690
6691 * xdisp.c (QCfile): Move here from xfns.c.
6692 (syms_of_xdisp): Initialize it.
6693 (message2_nolog): Change for Lisp_Object selected_frame.
6694 (message3_nolog, message_with_string, message,
6695 setup_echo_area_for_printing, truncate_echo_area,
6696 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6697
66981999-09-13 Dave Love <fx@gnu.org>
6699
6700 * xterm.c: Don't continue #define args for benefit of old cc.
6701 (xt_action_hook): Indent #error for benefit of K&R cc.
6702
67031999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6704
6705 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6706 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6707 (XRINGBELL): Removed.
6708
67091999-09-13 Dave Love <fx@gnu.org>
6710
6711 * xfns.c (x_put_x_image): Make type consistent with declaration.
6712
6713 * fns.c (Fmake_hash_table): Fix string continuation.
6714
67151999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6716
6717 * xfns.c (QCfile): Moved to xdisp.c.
6718 (syms_of_xfns): Don't initialize QCfile.
6719 (check_x_frame): Change for Lisp_Object selected_frame.
6720 (check_x_display_info, x_get_resource_string): Ditto.
6721
67221999-09-13 Gerd Moellmann <gerd@gnu.org>
6723
6724 * minibuf.c (choose_minibuf_frame): Don't try to set the
6725 mini-buffer window's buffer, if the buffer is invalid.
6726
6727 * xfns.c (QCfile): Moved to xdisp.c.
6728 (syms_of_xfns): Don't initialize QCfile.
6729
6730 * xdisp.c (QCfile): Move here from xfns.c.
6731 (syms_of_xdisp): Initialize it.
6732
6733 * lisp.h (selected_frame): Add external declaration.
6734
6735 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6736 (Fx_store_cut_buffer_internal): Ditto.
6737 (Fx_rotate_cut_buffers_internal): Ditto.
6738
6739 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6740 selected_frame.
6741 (Finternal_set_lisp_face_attribute): Ditto.
6742 (Finternal_get_lisp_face_attribute): Ditto.
6743 (Finternal_lisp_face_empty_p): Ditto.
6744 (Fdump_face): Ditto.
6745
6746 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6747 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6748 set_terminal_window, set_scroll_region, reassert_line_highlight,
6749 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6750 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6751 encode_terminal_code, write_glyphs, term_init): Ditto.
6752
6753 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6754 (kbd_input_ast, read_input_waiting): Ditto.
6755
6756 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6757 selected_frame.
6758 (read_minibuf): Ditto.
6759
6760 * keyboard.c (command_loop_1): Change for Lisp_Object
6761 selected_frame.
6762 (cmd_error_internal, command_loop_1, read_char,
6763 kbd_buffer_get_event, read_avail_input,
6764 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6765 interrupt_signal, quit_throw_to_read_char): Ditto.
6766
6767 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6768 (Ffontset_info): DItto.
6769
6770 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6771
6772 * dispnew.c (selected_frame): Make it a Lisp_Object.
6773 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6774 (direct_output_for_insert, direct_output_forward_char,
6775 init_display): Ditto.
6776
6777 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6778 selected_frame.
6779 (set_internal): Ditto.
6780
6781 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6782 (record_buffer): Ditto.
6783
6784 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6785 (do_switch_frame): Change for Lisp_Object selected_frame.
6786 (Fselected_frame): Ditto.
6787 (Fframe_first_window): Use SELECTED_FRAME.
6788 (Fframe_root_window): Change for Lisp_Object selected_frame.
6789 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6790 Fprevious_frame, other_visible_frames, Fdelete_frame,
6791 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6792 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6793 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6794 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6795 Fset_frame_height, Fset_frame_width): Ditto.
6796
67971999-09-13 Gerd Moellmann <gerd@gnu.org>
6798
6799 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6800 (message3_nolog, message_with_string, message,
6801 setup_echo_area_for_printing, truncate_echo_area,
6802 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6803
6804 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6805 (Fx_popup_dialog): Ditto.
6806
6807 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6808 (check_x_display_info, x_get_resource_string): Ditto.
6809
6810 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6811 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6812 (XRINGBELL): Removed.
6813
6814 * window.c (Fminibuffer_window): Change for Lisp_Object
6815 selected_frame.
6816 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6817 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6818 Fcurrent_window_configuration, init_window_once): Ditto.
6819
6820 * frame.h (SELECTED_FRAME): New.
6821
68221999-09-12 Ken Raeburn <raeburn@gnu.org>
6823
6824 * category.c (word_boundary_p): Use XCAR and XCDR.
6825 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6826 Fregister_code_conversion_map): Likewise.
6827 * coding.c (setup_coding_system, detect_coding_system,
6828 Ffind_operation_coding_system, Fset_coding_priority_internal):
6829 Likewise.
6830 * doc.c (get_doc_string, Fdocumentation,
6831 store_function_docstring): Likewise.
6832 * editfns.c (save_restriction_restore): Likewise.
6833 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6834 skip_debugger, find_handler_clause, Fautoload, Fapply,
6835 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6836 Likewise.
6837 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6838 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6839 Fread_file_name): Likewise.
6840 * filelock.c (unlock_all_files): Likewise.
6841 * insdel.c (Fcombine_after_change_execute): Likewise.
6842 * intervals.c (adjust_intervals_for_insertion): Likewise.
6843 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6844 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6845 store_in_keymap, Fcopy_keymap, define_as_prefix,
6846 current_minor_maps, Faccessible_keymaps,
6847 accessible_keymaps_char_table, Fkey_description,
6848 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6849 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6850 describe_map): Likewise.
6851 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6852 read_list, init_lread): Likewise.
6853 * search.c (Fmatch_data): Likewise.
6854 * sunfns.c (Fsun_menu_internal): Likewise.
6855 * syntax.c (describe_syntax): Likewise.
6856 * undo.c (record_insert, record_delete, Fundo_boundary,
6857 truncate_undo_list): Likewise.
6858 * vmsproc.c (child_sig): Likewise.
6859
6860 * editfns.c (Fformat): Use XFLOAT_DATA.
6861
68621999-09-12 Gerd Moellmann <gerd@gnu.org>
6863
6864 * keyboard.c (command_loop_1): Resize mini-window to the
6865 exact size of a message displayed, if any.
6866
6867 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6868 to exact size if exact_p is non-zero.
6869 (display_echo_area_1): Call resize_mini_window with
6870 new parameter.
6871 (redisplay_internal): Ditto.
6872 (resize_echo_area_axactly): New.
6873
6874 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6875 new parameter.
6876
6877 * dispextern.h: Change prototype of resize_mini_window.
6878 Add prototype for resize_echo_area_axactly.
6879
6880 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6881 (syms_of_xfaces): Defsubr accordingly.
6882
6883 * xdisp.c (hscroll_window_tree): Choose cursor row from
6884 desired or current matrix.
6885 (redisplay_internal): Hscroll before updating.
6886
68871999-09-12 Gerd Moellmann <gerd@gnu.org>
6888
6889 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6890 of minibuffer_prompt_length.
6891
6892 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6893 of minibuffer_prompt_length.
6894 (read_minibuf_unwind): Ditto.
6895 (Fminibuffer_complete_and_exit): Ditto.
6896 (Fminibuffer_complete_word): Ditto.
6897 (Fminibuffer_prompt_end): Ditto.
6898
6899 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6900 of minibuffer_prompt_length.
6901 (Fline_beginning_position): Ditto.
6902
6903 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6904 of minibuffer_prompt_length.
6905 (Fmake_indirect_buffer): Ditto.
6906 (Fkill_buffer): Ditto.
6907 (Ferase_buffer): Ditto.
6908
6909 * buffer.h (prompt_end_charpos): Replaces
6910 minibuffer_prompt_length.
6911
427ec082 6912 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6913 without the prompt.
6914
6915 * editfns.c (make_buffer_string_both): Take out the code
6916 to handle mini-buffer prompts.
6917 (Fbuffer_string): Handle the prompt here, instead.
6918
6919 * xfaces.c (lface_from_face_name): Resolve face aliases.
6920 (Qmode_line): Replaces Qmodeline.
6921 (realize_basic_faces): Use Qmode_line.
6922 (syms_of_xfaces): Initialize Qmode_line.
6923
69241999-09-12 Gerd Moellmann <gerd@gnu.org>
6925
6926 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6927 current column after inserting prompt.
6928 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6929
6930 * xfaces.c (Qframe_update_face_colors): New.
6931 (syms_of_xfaces): Initialize call.
6932 (update_face_from_frame_parameter): Call that function when
6933 the frame's background changes.
6934
69351999-09-12 Richard Stallman <rms@gnu.org>
6936
6937 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6938
69391999-09-12 Ken Raeburn <raeburn@gnu.org>
6940
6941 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6942 mark_object, mark_buffer): Use XCAR and XCDR.
6943 * bytecode.c (Fbyte_code): Likewise.
6944 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6945 Likewise.
6946 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6947 getenv_internal): Likewise.
6948 * dired.c (file_name_completion): Likewise.
6949 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6950 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6951 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6952 * indent.c (Fcompute_motion): Likewise.
6953 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6954 list_processes_1, Fstart_process, Fopen_network_stream,
6955 wait_reading_process_input, read_process_output_call,
6956 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6957 status_notify, wait_reading_process_input): Likewise.
6958 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6959 extend_property_ranges): Likewise.
6960 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6961 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6962 x_report_frame_params, x_set_cursor_type, x_icon_type,
6963 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6964 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6965 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6966 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6967 x_display_info_for_name, Fx_display_list): Likewise.
6968 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6969 Fx_popup_menu, Fx_popup_dialog): Likewise.
6970 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6971 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6972 w32_term_init, x_delete_display): Likewise.
6973 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6974 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6975 x_top_window_to_frame, x_set_frame_parameters,
6976 x_report_frame_params, x_set_cursor_type, x_icon_type,
6977 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6978 Fx_display_list, x_create_tip_frame): Likewise.
6979 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6980 Fx_popup_menu, Fx_popup_dialog): Likewise.
6981 * xselect.c (x_own_selection, x_get_local_selection,
6982 x_handle_selection_request, x_handle_selection_clear,
6983 x_clear_frame_selections, wait_for_property_change_unwind,
6984 wait_for_property_change, x_handle_property_notify,
6985 copy_multiple_data, x_get_foreign_selection,
6986 lisp_data_to_selection_data, clean_local_selection_data,
6987 x_handle_selection_notify, Fx_get_selection_internal,
6988 x_disown_buffer_selections): Likewise.
6989 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6990 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6991 Likewise.
6992
6993 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6994 XFLOAT_DATA.
6995 * bytecode.c (Fbyte_code): Likewise.
6996 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6997 fmod_float): Likewise.
6998
69991999-09-11 Richard Stallman <rms@gnu.org>
7000
7001 * xdisp.c (run_window_scroll_functions): If hook functions switch
7002 buffers, switch back after.
7003
70041999-09-11 Ken Raeburn <raeburn@gnu.org>
7005
7006 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
7007 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
7008 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
7009 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
7010 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
7011 XCDR.
7012 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
7013 XCDR.
7014
70151999-09-10 Richard Stallman <rms@gnu.org>
7016
7017 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
7018 not RevertToPointerRoot.
7019 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7020 Fix the code to clear around the scroll bar.
7021
70221999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
7023
7024 * print.c: Support print-circle and related features.
7025 (Vprint_gensym_alist): Removed.
7026 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7027 Vprint_number_table): New variables.
7028 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7029 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7030 (print, print_preprocess, print_preprocess_string, print_object):
7031 New/modified functions with print-circle feature. Use
7032 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7033 (syms_of_print): Defined new Lisp variables `print-circle',
7034 `print-continuous-numbering', `print-number-table'.
7035
70361999-09-10 Gerd Moellmann <gerd@gnu.org>
7037
7038 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7039 as background color specification instead of an integer.
7040 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7041 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7042 (clear_image_cache, syms_of_xfns): Use it.
7043 (Qpostscript): Replaces Qghostscript.
7044 (gs_type): Use it.
7045 (gs_image_p): Ditto.
7046 (syms_of_xfns): Initialize Qpostscript.
7047
70481999-09-10 Richard Stallman <rms@gnu.org>
7049
7050 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7051
70521999-09-09 Richard Stallman <rms@gnu.org>
7053
7054 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7055
7056 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7057
70581999-09-09 Gerd Moellmann <gerd@gnu.org>
7059
7060 * fns.c (Fmakehash): Accept just one optional argument TEST.
7061
7062 * xfns.c (QCindex): New.
7063 (syms_of_xfns): Initialize QCindex.
7064 (gif_load): Use it instead of `:image'.
7065
70661999-09-09 Richard Stallman <rms@gnu.org>
7067
7068 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7069 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7070
70711999-09-08 Gerd Moellmann <gerd@gnu.org>
7072
7073 * xdisp.c (Qwhen): Replaces QCwhen.
7074 (syms_of_xdisp): Initialized it instead of QCwhen.
7075 (handle_single_display_prop): Use it instead of QCwhen.
7076
70771999-09-08 Ken'ichi Handa <handa@gnu.org>
7078
7079 * charset.c (translate_char): Reset MSBs of arguments of
7080 MAKE_CHAR.
7081 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7082
70831999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7084
7085 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7086
7087 * fns.c (Fbase64_decode_region): Don't place point outside of the
7088 current accessible portion.
7089
70901999-09-07 Richard Stallman <rms@gnu.org>
7091
7092 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7093 parent is an ancestor of SUBMAP; otherwise, add it as the
7094 ultimate ancestor.
7095
70961999-09-07 Gerd Moellmann <gerd@gnu.org>
7097
7098 * xdisp.c (handle_single_display_prop): Change conditional
7099 display property to `:when FORM . VALUE'.
7100
71011999-09-07 Richard Stallman <rms@gnu.org>
7102
7103 * fileio.c (Fwrite_region): Doc fix.
7104
71051999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7106
7107 * fileio.c (Qexcl): New variable.
7108 (report_file_error): Handle EEXIST specially.
7109 (Fwrite_region): Special handling for CONFIRM = `excl'.
7110 (syms_of_fileio): Initialize Qexcl.
7111
71121999-09-07 Gerd Moellmann <gerd@gnu.org>
7113
7114 * xfns.c (x_set_foreground_color): Call
7115 update_face_from_frame_parameter.
7116 (x_set_background_color): Ditto.
7117 (x_set_mouse_color): Ditto.
7118 (x_set_cursor_color): Ditto.
7119 (x_set_border_color): Ditto.
7120 (x_set_scroll_bar_foreground): Ditto.
7121 (x_set_scroll_bar_background): Ditto.
7122
7123 * xfaces.c (recompute_basic_faces): Clear face cache.
7124 (Finternal_set_lisp_face_attribute): Modify frame parameters
7125 if attributes of certain faces are changed.
7126 (update_face_from_frame_parameter): New.
7127
7128 * xfaces.c (realize_basic_faces): Realize new basic faces.
7129
7130 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7131 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7132
7133 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7134 (syms_of_xfaces): Intialize new symbols.
7135
7136 * fns.c (Fmakehash): Take one argument, test, make all the
7137 rest keyword arguments.
7138
7139 * window.c (Fset_window_margins): Make window the first argument.
7140 (set_window_buffer): Call Fset_window_margins with window as first
7141 argument.
7142
71431999-09-07 Gerd Moellmann <gerd@gnu.org>
7144
7145 * xfaces.c (Qfringe): Replaces Qmargin.
7146
71471999-09-07 Kenichi Handa <handa@etl.go.jp>
7148
7149 * charset.h: Lots of comments fixed.
7150 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7151 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7152
7153 * charset.c : Lots of comments fixed.
7154 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7155 (CHAR_COMPONENTS_VALID_P): Name changed from
7156 CHAR_COMPONENT_VALID_P. Caller changed.
7157
71581999-09-06 Richard Stallman <rms@gnu.org>
7159
7160 * insdel.c (syms_of_insdel): Define Lisp variable
7161 inhibit-modification-hooks.
7162
71631999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7164
7165 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7166 unexaix.c.
7167
7168 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7169
71701999-09-06 Dave Love <fx@gnu.org>
7171
7172 * unexaix.c: New version incorporating Michael Sperber's changes
7173 from XEmacs. Should solve problems on AIX 4.3.
7174
7175 * lread.c (Vbyte_boolean_vars): New variable.
7176 (defvar_bool, syms_of_lread): Use it.
7177
71781999-09-05 Richard Stallman <rms@gnu.org>
7179
7180 * minibuf.c (read_minibuf): Put all three properties on the
7181 same range, the whole prompt.
7182
71831999-09-05 Gerd Moellmann <gerd@gnu.org>
7184
7185 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7186 (Fplay_sound, syms_of_sound): Use it.
7187 (parse_sound): Allow float volume values in the range [0, 1].
7188 (Fplay_sound): Ditto.
7189
7190 * window.c (Fset_window_vscroll): Make window the first argument,
7191 amount to scroll the second. Take non-negative vscroll as
7192 argument.
7193 (Fwindow_vscroll): Return non-negative vscroll.
7194
7195 * xfns.c (Fx_show_tip): Improve documentation.
7196
71971999-09-05 Gerd Moellmann <gerd@gnu.org>
7198
7199 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7200 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7201 `top-line' and `top_line' to `header-line' and `header_line'.
7202 Likewise for similar spellings.
7203
72041999-09-05 Gerd Moellmann <gerd@gnu.org>
7205
7206 * xdisp.c (row_containing_pos): New.
7207 (try_window_id): Use it.
7208
7209 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7210 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7211 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7212 Likewise for upper-case etc.
7213
72141999-09-05 Gerd Moellmann <gerd@gnu.org>
7215
7216 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7217 Fix reference to renamed variable.
7218
72191999-09-04 Gerd Moellmann <gerd@gnu.org>
7220
7221 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7222 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7223 Qfixed_window_size.
7224 (syms_of_window): Ditto.
7225
7226 * fns.c (Fmakehash): Exchange optional test and size arguments.
7227
72281999-09-03 Gerd Moellmann <gerd@gnu.org>
7229
7230 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7231 under newly created scroll bar.
7232 (expose_window): If window is not yet fully initialized, do
7233 nothing. This can happen when toolkit scroll bars are used and a
7234 window is split. Reconfiguring the scroll bars will generate an
7235 expose for a newly created window.
7236
7237 * frame.h (struct frame): New member `gamma'.
7238
7239 * xfns.c: Include math.h. Add extern declaration for atof in case
7240 we don't see one.
7241 (Qscreen_gamma): New.
7242 (struct x_frame_parm_table): Add prototypes, add
7243 x_set_screen_gamma.
7244 (gamma_correct): New function.
7245 (defined_color): Call it.
7246 (x_set_screen_gamma): New.
7247 (x_set_title): Add parameter old_value.
7248 (RES_TYPE_FLOAT): New.
7249 (x_get_arg): Handle RES_TYPE_FLOAT.
7250 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7251 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7252 new prototype.
7253 (lookup_rgb_color): Ditto.
7254 (syms_of_xfns): Initialize Qscreen_gamma.
7255
7256 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7257 New. Allocate color for lwlib widgets.
7258 (x_alloc_nearest_color): Change parameter list include the
7259 frame on which to allocate colors. Gamma-correct colors.
7260 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7261 parameter list.
7262
7263 * xterm.h: Change protorype of x_alloc_nearest_color.
7264
72651999-09-03 Richard Stallman <rms@gnu.org>
7266
7267 * callproc.c: Delete the system-independent include of stdlib.h
7268 (leaving only the one in the WINDOWSNT conditional).
7269
72701999-09-03 Andrew Choi <choi@cs.hku.hk>
7271
7272 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7273 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7274
26901792
DL
7275 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7276 Window types and macros.
7277
7278 * frame.h: Do nothing if included a second time.
7279 (enum output_method): Add mac_output frame type.
7280 (union output_data): Add new alternative `mac'.
7281 (FRAME_MAC_P): New macro.
427ec082 7282
26901792
DL
7283 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7284 (syms_of_frame_1): Initialize Qmac.
7285 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7286 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7287 (Fmodify_frame_parameters) [macintosh]: Call
7288 mac_set_frame_parameter in macterm.c.
427ec082 7289
26901792
DL
7290 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7291 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7292
26901792
DL
7293 * make-docfiles.c: Correctly handle input files with Mac-style
7294 eol's.
427ec082 7295
26901792 7296 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7297
26901792
DL
7298 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7299 file of an X Window environment.
427ec082 7300
26901792
DL
7301 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7302 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7303
26901792
DL
7304 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7305 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7306 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7307 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7308 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7309 New functions, replacing POSIX features.
427ec082 7310
26901792
DL
7311 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7312 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7313 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7314
7315 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7316 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7317 (myPasswdDir, TempDirName, sys_siglist): New variables.
7318
7319 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7320 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7321 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7322 Define empty stubs so Emacs will link.
7323
73241999-09-03 Gerd Moellmann <gerd@gnu.org>
7325
7326 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7327
7328 * window.h: New member frozen_window_start_p.
7329
7330 * window.c (foreach_window, foreach_window_1): New.
7331 (freeze_window_start, freeze_window_starts): New.
7332 (make_window): Initialize frozen_window_start_p.
7333 (replace_window): Ditto.
7334 (Fset_window_point): Remove references to deleted variables.
7335 (Fset_window_start): Ditto.
7336
7337 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7338 resize_mini_initial_height): Removed.
7339 (syms_of_xdisp): Remove references to these variables.
7340 (resize_mini_window): Don't save window configuration, freeze
7341 window starts instead. Enlarge window until displaying an empty
7342 buffer, then shrink it. Make the function externally visible.
7343 (redisplay_window): Treat frozen window start like forced start,
7344 but accept point outside of the window.
7345
7346 * dispextern.h: Add function prototype for resize_mini_window.
7347
7348 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7349 reaching minibuf_level 0.
7350
7351 * lisp.h: Remove extern declarations for variables deleted from
7352 xdisp.c.
7353
7354 * dispnew.c (adjust_frame_glyphs): Remove reference to
7355 Vresize_mini_config.
7356
73571999-09-03 Gerd Moellmann <gerd@gnu.org>
7358
7359 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7360 to USE_TOOLKIT_SCROLL_BARS.
7361
7362 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7363 here.
7364 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7365 under newly created scroll bar. Put toolkit scroll bars in the
7366 middle of the area reserved for the scroll bar.
7367
73681999-09-03 Kenichi Handa <handa@etl.go.jp>
7369
7370 The following changes are for the new handling of mulitbyte
7371 sequence. Now, except for a composite character, no multibyte
7372 character in string/buffer has trailing garbage bytes. For
7373 instance, the length of string "\201\300\300" is now 2, the first
7374 character is Latin-1 A-grave, the second is raw \300.
7375
7376 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7377 are negative.
7378 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7379 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7380 (PARSE_COMPOSITE_SEQ): New macro.
7381 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7382 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7383 (CHAR_PRINTABLE_P): New macro.
7384 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7385 (STRING_CHAR_AND_LENGTH): Likewise.
7386 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7387 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7388 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7389
7390 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7391 (SPLIT_CHARACTER_SEQ): New macro.
7392 (SPLIT_MULTIBYTE_SEQ): New macro.
7393 (CHAR_COMPONENT_VALID_P): New macro.
7394 (non_ascii_char_to_string): Generate a multibyte sequence as far
7395 as possible.
7396 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7397 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7398 (split_non_ascii_string): Likewise.
7399 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7400 (char_printable_p): New function.
7401 (translate_char): Check character by NATNUMP instead of INTEGERP.
7402 (unibyte_char_to_multibyte): Call char_valid_p instead of
7403 VALID_MULTIBYTE_CHAR_P.
7404 (Fmake_char_internal): Check the arguments more rigidly.
7405 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7406 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7407 (Fmultibyte_char_to_unibyte): Check the validity of character by
7408 CHAR_VALID_P.
7409 (chars_in_text): Call multibyte_chars_in_text.
7410 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7411 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7412 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7413
7414 * data.c (Faset): Adjust the way to check byte-combining
7415 possibility for the new handling of multibyte sequence.
7416
7417 * editfns.c (Fsubst_char_in_region): Likewise.
7418
7419 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7420 (string_char_to_byte): Likewise.
7421 (string_byte_to_char): Likewise.
7422
7423 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7424 macro STRING_CHAR_AND_LENGTH. Caller changed.
7425
7426 * insdel.c (count_combining_composition): New function.
7427 (count_combining_before): Adjust the way to check byte-combining
7428 possibility for the new handling of multibyte sequence. Call
7429 count_combining_composition for a composite character.
7430 (count_combining_after): Likewise.
7431
7432 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7433 (print): Likewise.
7434
7435 * dispextern.h (struct it): Change the size of the member
7436 `ctl_chars'.
7437
7438 * xdisp.c (get_next_display_element): Display incomplete multibyte
7439 sequence (e.g. \222\300) by octal form.
7440
74411999-09-02 Gerd Moellmann <gerd@gnu.org>
7442
7443 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7444
7445 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7446 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7447
74481999-09-02 Gerd Moellmann <gerd@gnu.org>
7449
7450 * buffer.c (set_buffer_internal): Never set
7451 windows_or_buffers_changed.
7452
7453 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7454 if we have displayed to the bottom of the window.
7455
7456 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7457 in both directions. Extend documentation.
7458
74591999-09-01 Gerd Moellmann <gerd@gnu.org>
7460
7461 * minibuf.c (read_minibuf): Flush display after setting cursor to
7462 column 0.
7463
74641999-08-31 Gerd Moellmann <gerd@gnu.org>
7465
7466 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7467 already defined. This avoids a warning from buffer.c.
7468
74691999-08-30 Gerd Moellmann <gerd@gnu.org>
7470
7471 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7472 of both margins.
7473 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7474 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7475 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7476
7477 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7478 once instead of twice.
7479 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7480
7481 * xterm.c: Remove unused bitmaps.
7482 (continued_bits, continuation_bits, overlay_bits): Change images.
7483 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7484 instead of FRAME_X_FLAGS_AREA_WIDTH.
7485 (x_after_update_window_line): Ditto.
7486 (x_draw_bitmap): Likewise.
7487 (x_draw_row_bitmaps): Likewise.
7488 (x_draw_glyph_string_box): Likewise.
7489 (x_draw_glyphs): Likewise.
7490 (x_scroll_run): Likewise.
7491 (expose_window_tree): Likewise.
7492 (note_mode_line_highlight): Likewise.
7493 (XTset_vertical_scroll_bar): Likewise.
7494 (x_clip_to_row): Likewise.
7495 (x_set_window_size): Likewise.
7496
7497 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7498 of 2 * that value.
7499
7500 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7501 2 * that value.
7502 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7503 FRAME_FLAGS_AREA_WIDTH.
7504
7505 * window.c (coordinates_in_window): Use
7506 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7507 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7508 instead of twice.
7509
427ec082 7510 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7511 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7512 (EmacsFrameSetCharSize): Ditto.
7513
7514 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7515 instead of FRAME_FLAGS_AREA_WIDTH.
7516
7517 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7518 FRAME_FLAGS_AREA_COLS once.
7519 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7520 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7521
75221999-08-30 Gerd Moellmann <gerd@gnu.org>
7523
7524 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7525 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7526
75271999-08-30 Gerd Moellmann <gerd@gnu.org>
7528
7529 * fns.c (QCweakness): Replaces QCweak.
7530 (Fmake_hash_table): Ditto.
7531 (Fmakehash): Ditto.
7532 (syms_of_fns): Ditto.
7533
75341999-08-29 Richard Stallman <rms@gnu.org>
7535
7536 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7537
7538 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7539
7540 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7541 Add support for nested comments.
7542
863476d1
SM
7543 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7544 Consolidate the forward comment code into the new `forw_comment'.
7545 (forw_comment): New subroutine. Added support for nested comments.
7546 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7547 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7548
75491999-08-28 Ken Raeburn <raeburn@gnu.org>
7550
7551 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7552 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7553 defined, to help detect code that uses knowledge of the Lisp
7554 internals that it shouldn't have.
7555 (XFLOAT_DATA): New macro.
7556
75571999-08-25 Gerd Moellmann <gerd@gnu.org>
7558
7559 * syntax.c (Fforward_word): If in a mini-buffer and moving
7560 backwards, stop in front of the prompt to prevent accidentially
7561 moving into the read-only prompt.
7562
7563 * window.c (Frecenter): Clear frame if called with nil or no arg.
7564
7565 * xdisp.c (resize_mini_window): Don't resize if
7566 Vmax_mini_window_height is nil. Otherwise, use a default if
7567 Vmax_mini_window_height is not ot a number.
7568 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7569
75701999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7571
7572 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7573 * m/iris4d.h: Use unexelf for IRIX 5.*.
7574 * m/iris5d.h: Use unexelf for IRIX 6.*.
7575 * unexsgi.c: Deleted.
7576
7577 * unexelf.c: Auto-detect .sbss section.
7578 (round_up): Make it static.
7579 (unexec): Declare alignment as Elf Word. Skip ``Program
7580 segment above .bss'' test on MIPS without .sbss.
7581 Copy sections .got and .sdata1 sections. Adjust offsets in
7582 sections .sdata, .lit4, .lit8, .got and .sdata1.
7583
75841999-08-25 Gerd Moellmann <gerd@gnu.org>
7585
7586 * xdisp.c (try_window_id): Remove typo.
7587
75881999-08-24 Gerd Moellmann <gerd@gnu.org>
7589
7590 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7591 unchanged text at the bottom when computing the cursor position.
7592 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7593 set.
7594
7595 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7596
75971999-08-24 Gerd Moellmann <gerd@gnu.org>
7598
7599 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7600 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7601 (syms_of_xfaces): Ditto.
7602
7603 * window.c (Fset_window_point): Reset Vresize_mini_config.
7604 (Fset_window_start): Ditto.
7605 (set_window_buffer): Ditto.
7606
7607 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7608
7609 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7610 before calling try_window.
7611 (echo_area_display): If height has changed, update other windows.
7612 (resize_mini_frame, resize_mini_initial_height): New.
7613 (resize_mini_window): Save/restore window configuration
7614 differently.
7615
427ec082 7616 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7617 resize_mini_initial_height): Add extern declarations.
7618
7619 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7620 CANON_X_UNIT.
7621
7622 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7623 being redefined in jconfig.h.
7624
76251999-08-23 Ken'ichi Handa <handa@gnu.org>
7626
7627 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7628
76291999-08-22 Gerd Moellmann <gerd@gnu.org>
7630
7631 * alloc.c (mark_glyph_matrix): Mark strings only.
7632
7633 * xdisp.c (redisplay_internal): Clear garbaged frames after
7634 resizing mini-window.
7635
76361999-08-22 Gerd Moellmann <gerd@gnu.org>
7637
7638 * xdisp.c (unwind_with_echo_area_buffer): Use
7639 set_buffer_internal_1 instead of set_buffer_internal.
7640 (with_echo_area_buffer): Ditto.
7641
7642 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7643 only if buffer is displayed somewhere.
7644
7645 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7646
7647 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7648 (gap_right): Ditto.
7649 (modify_region): Ditto.
7650
7651 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7652
7653 * xdisp.c (Vresize_mini_config): New.
7654 (resize_mini_window): Use it to save restore original window
7655 configuration
7656 (syms_of_xdisp): Initialize it.
7657
7658 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7659
7660 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7661
7662 * xdisp.c (reconsider_clip_changes): New.
7663 (redisplay_internal, redisplay_window): Call it.
7664 (mark_window_display_accurate, redisplay_internal): Set current
7665 matrix' buffer, begv, zv.
7666
7667 * window.c (Fset_window_hscroll): Set
7668 prevent_redisplay_optimizations_p instead of clip_changed.
7669 (Fset_window_hscroll): Ditto.
7670 (temp_output_buffer_show): Ditto.
7671 (Fset_window_vscroll): Ditto.
7672
7673 * buffer.c (reset_buffer): Set clip_changed to 0 and
7674 prevent_redisplay_optimizations_p to 1.
7675 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7676
7677 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7678 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7679 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7680 END_UNCHANGED): New.
7681 (struct buffer_text): Add beg_unchanged, end_unchanged,
7682 unchanged_modified, overlay_unchanged_modified.
7683
7684 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7685 overlay_unchanged_modified): Removed.
7686 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7687 (unwind_with_echo_area_buffer): Don't restore them.
7688 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7689 (text_outside_line_unchanged_p, redisplay_internal,
7690 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7691 (redisplay_window): Let try_window_id be called if more than one
7692 window is displayed. Use/set buffer-specific beg/end_unchanged.
7693 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7694 try_window_id):
7695 Use buffer-specific beg/end_unchanged.
7696
7697 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7698 overlay_unchanged_modified): Remove extern declarations.
7699
7700 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7701 buffer.
7702
7703 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7704 (gap_right): Ditto.
7705 (adjust_after_replace): Likewise.
7706 (replace_range, del_range_2, modify_region): Likewise.
7707
7708 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7709 and unchanged_modified per buffer.
7710
7711 * coding.c (code_convert_region): Compute beg/end_unchanged per
7712 buffer.
7713
7714 * buffer.c (modify_overlay): Compute beg/end_unchanged
7715 per buffer.
427ec082 7716 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7717 structure.
7718
77191999-08-22 Gerd Moellmann <gerd@gnu.org>
7720
7721 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7722
7723 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7724 (Qkey_value_weak): Removed.
7725 (make_hash_table): Use nil, `key', `value', t for weakness.
7726 (Fmake_hash_table): Ditto.
7727 (copy_hash_table): New.
7728 (Fcopy_hash_table): New.
7729
77301999-08-22 Gerd Moellmann <gerd@gnu.org>
7731
7732 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7733 new parameter.
26901792
DL
7734
77351999-08-21 Gerd Moellmann <gerd@gnu.org>
7736
7737 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7738 well.
427ec082 7739 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7740 have changed.
7741 (display_echo_area): Reset displayed echo_area_buffer to nil
7742 at the end if we're displaying a nil message.
7743
77441999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7745
26901792
DL
7746 * fns.c (hash_lookup): Test with EQ before calling key comparion
7747 function.
7748 (hash_remove): Ditto.
7749 (cmpfn_eq): Removed.
7750 (cmpfn_eql): Don't test with EQ.
7751 (cmpfn_equal): Ditto.
7752 (make_hash_table): Set comparison function for `eq' to null.
7753
7754 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7755 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7756
7757 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7758
7759 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7760 xterm.c: Call change_frame_size and do_pending_window_change with
7761 new parameter.
7762
7763 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7764 (change_frame_size): Ditto.
7765 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7766 and not called from a safe place.
7767 (window_change_signal): Call change_frame_size with new parameter.
7768
7769 * dispextern.h: Change prototypes for do_pending_window_change
7770 and change_frame_size.
7771
7772 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7773 window's buffers equals current_buffer; this is not the
26901792
DL
7774 case during echo area display.
7775
77761999-08-21 Gerd Moellmann <gerd@gnu.org>
7777
7778 * xdisp.c, minibuf.c: Remove conditional compilation on
7779 NO_PROMPT_IN_BUFFER.
7780
7781 * minibuf.c (Fminibuffer_prompt_end): New.
7782 (syms_of_minibuf): Defsubr it. Remove
7783 minibuffer-prompt-in-buffer.
7784 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7785 Extend documentation.
7786
7787 * xdisp.c (get_next_display_element): Display \r as ^M.
7788
7789 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7790 under scroll bar widget.
7791
77921999-08-21 Gerd Moellmann <gerd@gnu.org>
7793
7794 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7795 anywhere.
7796 (unwind_redisplay): Return nil.
7797 (clear_garbaged_frames): New.
7798 (redisplay_internal): Use it.
7799 (echo_area_display): Ditto.
7800 (resize_mini_window): Mew.
7801 (display_echo_area_1): Use it to resize echo area window.
7802 (redisplay_internal): Use it to resize active mini-window.
7803
7804 * dispextern.h, lisp.h: Add function prototypes.
7805
427ec082 7806 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7807 cursor_in_echo_area case only for a mini-window showing
7808 a message. Don't let cursor end up after the end of a row.
7809
7810 * xdisp.c (echo_area_glyphs, echo_area_message,
7811 echo_area_glyphs_length, previous_echo_glyphs,
7812 previous_echo_area_message, previous_echo_area_glyphs_length):
7813 Removed.
7814 (Vmessage_stack, echo_area_buffer, echo_buffer,
7815 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7816 (message2_nolog): Use set_message and clear_message.
7817 (message3): Rename parameter len to nbytes to make clear what
7818 it is.
7819 (message3_nolog): Ditto. Use set_message and clear_message.
7820 (update_echo_area): Rewritten.
7821 (with_echo_area_buffer): New.
7822 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7823 (setup_echo_area_for_printing): New.
7824 (display_echo_area, display_echo_area_1): New.
7825
7826 (current_message, current_message_1): New.
427ec082 7827 (push_message, restore_message, pop_message,
26901792
DL
7828 check_message_stack): New.
7829 (truncate_echo_area): Rewritten.
7830 (truncate_message_1): New.
7831 (set_message, set_message_1, clear_message): New.
7832 (echo_area_display): Rewritten.
7833 (redisplay_internal): Check for needed echo area update
7834 differently.
7835 (redisplay_preserve_echo_area): Rewritten.
427ec082 7836 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7837 message differently.
7838 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7839 Remove initialzation of removed variables.
7840 (init_xdisp): Remove references to removed variables.
7841
7842 * dispnew.c (adjust_frame_message_buffer): Removed references
7843 to echo_area_glyphs and previous_echo_glyphs.
7844 (direct_output_for_insert): Check for mini-window displaying
7845 echo area message differently.
7846 (update_frame): Likewise.
7847 (set_window_cursor_after_update): Likewise. In echo area,
7848 don't try to set cursor on rows that aren't enabled.
7849
7850 * print.c: Remove conditional compilation on `standalone'.
7851 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7852 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7853 longer used in that way.
7854 (PRINTDECLARE): Add multibyte.
7855 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7856 (printbufidx): Removed.
7857 (printchar, strout): Rewritten.
7858
7859 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7860 a struct kboard.
7861 (echo_kboard): New.
7862 (echo_now): Set echo_kboard to the current kboard.
7863 (cancel_echoing): Set echo_kboard to null.
7864 (cmd_error_internal): Use clear_message, remove references
7865 to echo_area_glyphs and echo_area_message.
7866 (command_loop_1): Check for echo area messages differently.
7867 (read_char): Likewise.
7868 (record_menu_key): Use clear_message.
7869 (Fexecute_extended_command): Check for echo area messages
7870 differently. Use push_message, restore_message, pop_message.
7871
7872 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7873 pop_message.
7874
7875 * emacs.c (shut_down_emacs): Call check_message_stack.
7876
7877 * lisp.h: Add function prototypes and extern declarations for
7878 new functions and variables.
7879
7880 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7881 pop_message.
7882
427ec082 7883 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7884 setting echo_area_glyphs.
7885 (Fminibuffer_completion_help): Ditto.
7886
7887 * editfns.c (Fcurrent_message): Rewritten.
7888
7889 * frame.c, window.h: Remove references to echo_area_glyphs
7890 and previous_echo_glyphs.
7891
78921999-08-21 Dave Love <fx@gnu.org>
7893
7894 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7895 * aix4-1.h: Likewise.
7896
7897 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7898
78991999-08-20 Gerd Moellmann <gerd@gnu.org>
7900
7901 * xfns.c: Remove tiff34 prefix from include.
7902
79031999-08-20 Dave Love <fx@gnu.org>
7904
7905 * cm.c: Revert previous change.
7906
79071999-08-19 Gerd Moellmann <gerd@gnu.org>
7908
7909 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7910 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7911
79121999-08-18 Dave Love <fx@gnu.org>
7913
7914 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7915 stdlib.h.
7916
7917 * doprnt.c: Use stdlib.h, unistd.h.
7918
7919 * config.in: Add HAVE_TERMCAP_H.
7920
7921 * cm.c: Use termcap.h.
7922
79231999-08-18 Gerd Moellmann <gerd@gnu.org>
7924
7925 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7926 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7927 cannot be created we will already have crashed earlier. Call
7928 lw_set_main_areas with a null menu-bar widget, so that we have
7929 a reasonable default.
7930 (Fx_create_frame): Rearranged so that Lisp errors during frame
7931 initialization cause less damage. Initialize menu bar widget
7932 here.
7933
79341999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 7935
26901792
DL
7936 * dispnew.c (update_frame_line): Fix previous change. If writing
7937 whole line clear to end of frame.
7938
79391999-08-17 Gerd Moellmann <gerd@gnu.org>
7940
7941 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7942 and `right-bitmap-area' if position is in the bitmap areas. This
7943 avoids an error when clicking on the bitmap areas. Instead, they
7944 are currently treated like clicks inside the window.
7945 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7946 (Qleft_bitmap_area, Qright_bitmap_area): New.
7947 (syms_of_window): Initialize new symbols.
7948
7949 * dispnew.c (update_frame_line): If writing whole line,
7950 don't write trailing spaces unless we must.
7951
7952 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7953 (redisplay_internal): Register unwind_redisplay with
7954 register_unwind_protect.
7955 (try_window_reusing_current_matrix): If new start > old start,
7956 give up if start pos of first reusable row is not equal to new
7957 start.
7958
7959 * eval.c (Fsignal): Don't reset redisplaying_p here.
7960
7961 * xterm.c (expose_area): If row extends face to end of line,
7962 write the whole line.
7963
79641999-08-16 Gerd Moellmann <gerd@gnu.org>
7965
7966 * dispextern.h (struct it): Remove member
7967 show_trailing_whitespace_p.
7968
7969 * dispnew.c (direct_output_for_insert): Use
7970 Vshow_trailing_whitespace instead of former iterator member
7971 show_trailing_whitespace_p.
7972 (direct_output_forward_char): Don't do it if hightlighting
7973 trailing whitespace.
7974
7975 * xdisp.c (Qshow_trailing_whitespace): Removed.
7976 (Vshow_trailing_whitespace): Added.
7977 (init_iterator): Remove initialization code for
7978 show_trailing_whitespace_p.
7979 (redisplay_internal): Don't try cursor movement in this_line
7980 if showing trailing whitespace.
7981 (redisplay_window): Likewise for cursor movement in current
7982 matrix and try_window_id.
7983 (try_window_reusing_current_matrix): Likewise.
7984 (trailing_whitespace_p): Return 0 if trailing whitespace is
7985 in front of point.
7986 (display_line): Use Vshow_trailing_whitespace instead of
7987 former iterator member show_trailing_whitespace_p.
7988 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7989
79901999-08-16 Gerd Moellmann <gerd@gnu.org>
7991
7992 * window.c (Fpos_visible_in_window_p): Rewritten.
7993
7994 * xfaces.c (add_to_log): Renamed from display_message.
7995 Don't display messages in echo area.
7996
7997 * xterm.c (x_draw_glyph_string_box): Use the background width
7998 of the glyph string for the width of the box.
7999
80001999-08-16 Stefan Monnier <monnier@cs.yale.edu>
8001
8002 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
8003
80041999-08-16 Geoff Voelker <voelker@cs.washington.edu>
8005
8006 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
8007 background first, and then set other parameters that might
8008 depend upon their new values.
8009
80101999-08-15 Gerd Moellmann <gerd@gnu.org>
8011
8012 * xfaces.c (Vfont_list_limit): New.
8013 (syms_of_xfaces): Make it a user-variable.
8014 (DEFAULT_FONT_LIST_LIMIT): New.
8015 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
8016 maximally that number of fonts, otherwise use
8017 DEFAULT_FONT_LIST_LIMIT.
427ec082 8018 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
8019 until we have all fonts.
8020 (Fxfont_list): Additionally return the full names of fonts and
8021 their registry and encoding.
8022
427ec082 8023 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
8024 Simplify clearing "under" scroll bar.
8025
8026 * window.c (Qfixed_window_size): New.
8027 (syms_of_window): Initialiaze it.
8028 (check_all_windows): Add return type void.
8029 (window_fixed_size_p): New. Return non-zero if window
8030 is fixed-size.
8031 (window_min_size_1): New.
8032 (window_min_size): Handle fixed-size windows.
8033 (size_window): New. Rewritten combination of set_window_height and
8034 set_window_width that handles fixed-size windows.
8035 (set_window_height): Call it.
8036 (set_window_width): Call it.
8037 (Fsplit_window): Give an error on attempt to split a fixed-size
8038 window.
8039 (change_window_height): Partly rewritten to handle fixed-size
8040 windows.
8041
80421999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8043
8044 * process.c (Fopen_network_stream): Fix previous change.
8045
80461999-08-13 Karl Heuer <kwzh@gnu.org>
8047
8048 * xdisp.c (line_number_display_limit_width): New var.
8049 (decode_mode_spec): Use it instead of hardcoded value.
8050 (syms_of_xdisp): Defvar it.
8051
80521999-08-13 Richard M. Stallman <rms@gnu.org>
8053
8054 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8055 (run_hook_with_args): Likewise.
8056
8057 * window.h (struct window): New field too_small_ok.
8058
427ec082 8059 * window.c (set_window_height, set_window_width):
26901792
DL
8060 If window starts out "too small", set its too_small_ok flag.
8061 If window's too_small_ok flag is set, don't delete it
8062 unless it is so small it would cause a crash.
8063
80641999-08-13 Gerd Moellmann <gerd@gnu.org>
8065
8066 * window.c (MINSIZE): Removed.
8067 (window_min_size): New.
8068 (set_window_height): Use window_min_size.
8069 (change_window_height): Ditto.
8070
80711999-08-12 Gerd Moellmann <gerd@gnu.org>
8072
8073 * indent.c (vmotion): Don't add in mini-buffer prompt width
8074 if prompts are inserted into mini-buffer.
8075
80761999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8077
8078 * config.in: Add HAVE_GETADDRINFO.
8079 * process.c (Fopen_network_stream): Use getaddrinfo.
8080
80811999-08-11 Gerd Moellmann <gerd@gnu.org>
8082
8083 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8084 glyphs to -1.
8085
8086 * xdisp.c (face_before_or_after_it_pos): If position after
8087 or before iterator's current position in the buffer is out
8088 of bounds, return the iterator's original face id.
8089
8090 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8091 just swap glyphs pointers between current and desired row.
8092 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8093 desired matrix method string to current matrix.
8094
80951999-08-11 Kenichi Handa <handa@etl.go.jp>
8096
8097 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8098
8099 * lread.c (read_escape): For Control modifier, pay attention to
8100 multibyte character.
8101 (read1): Likewise. Singal error or a multibyte character which
8102 has a modifer bit. Check validity of Shift modifer.
8103
8104 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8105 the same as Lisp reader.
8106
81071999-08-10 Richard M. Stallman <rms@gnu.org>
8108
8109 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8110
81111999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8112
8113 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8114
81151999-08-10 Eli Zaretskii <eliz@gnu.org>
8116
8117 * msdos.c (IT_set_face): Abort if the default face is not realized
8118 and cached.
8119 (IT_write_glyphs): Reset the screen face to the default face
8120 before writing glyphs.
8121
8122 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8123 colors from the frame here.
8124 (realize_tty_face) [MSDOS]: Do it here. Update the face
8125 attributes with the actual name of the color taken from the
8126 frame.
8127
8128 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8129 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8130
8131 * frame.c (Fframe_parameters): Swap foreground and background
8132 colors returned in frame parameters if the frame has reverse in
8133 its parameter alist.
8134 (Fmake_terminal_frame): Make a unique copy of face_alist for
8135 each frame.
8136
81371999-08-07 Richard Stallman <rms@gnu.org>
8138
8139 * buffer.c (Fprevious_overlay_change): Just return
8140 the answer obtained from overlays_at.
8141
8142 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8143 Use XpmCloseness and attrs.closeness instead.
8144
81451999-08-06 Richard Stallman <rms@gnu.org>
8146
8147 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8148
81491999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8150
427ec082 8151 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8152 Ffile_attributes_lessp): New functions.
8153 (Fdirectory_files): Use directory_files_internal.
8154 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8155 Ffile_attributes_lessp.
8156
8157 * w32.c (stat): Check for directory ending in separator when
8158 doing readdir fast path.
8159
8160 * w32fns.c (x_set_icon_type): Support setting frame icons.
8161 * w32term.c (x_bitmap_icon): New function.
8162 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8163
26901792
DL
81641999-08-06 Gerd Moellmann <gerd@gnu.org>
8165
8166 * xdisp.c (set_iterator_to_next): After delivering a character
8167 from a display vector, restore face and charset to what they were
8168 before the display vector was processed.
8169
81701999-08-06 Gerd Moellmann <gerd@gnu.org>
8171
8172 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8173 on_newline_p.
8174 (set_iterator_to_next): After delivering last char
427ec082 8175 from display vector, reseat on next visible line start if
26901792
DL
8176 dpvec_char_len < 0.
8177 (next_element_from_buffer): Set dpvec_char_len to -1 for
8178 selective display.
8179
81801999-08-06 Gerd Moellmann <gerd@gnu.org>
8181
8182 * xdisp.c (compute_line_metrics): If first line's physical ascent
8183 is larger than its logical ascent, use the physical ascent, and
8184 make the row taller. Set row's overlapping_p flag.
8185
8186 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8187 (direct_output_for_insert): Ditto.
8188
8189 * dispextern.h (struct glyph_row): Add overlapping_p.
8190
8191 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8192
8193 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8194 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8195
8196 * dispnew.c (direct_output_for_insert): Don't use this method if
8197 row is overlapped by others.
8198 (update_text_area): Write full line if current line is overlapped.
8199 (redraw_overlapped_rows): New.
8200 (update_window): Call it.
8201 (redraw_overlapping_rows): New.
8202 (update_window): Call it.
8203 (scrolling_window): Make sure overlapped_p flag in current rows is
8204 unchanged.
8205 (row_equal_p): Take rows overlapped_p flag into account.
8206
8207 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8208
8209 * xterm.c (x_fix_overlapping_area): New.
8210 (x_redisplay_interface): Add x_fix_overlapping_area.
8211
8212 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8213
82141999-08-06 Gerd Moellmann <gerd@gnu.org>
8215
8216 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8217 (struct glyph_string): Add member for_overlaps_p.
8218 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8219 of overlapping rows, clip to window bottom.
8220 (x_fill_glyph_string): Add parameter overlaps_p.
8221 (x_fill_composite_glyph_string): Ditto.
8222 (BUILD_GLYPH_STRINGS): Ditto.
8223 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8224 (x_draw_glyph_string): Don't draw anything but the foreground
8225 if glyph string draws row overlaps.
8226
8227 * dispnew.c (direct_output_for_insert): Don't use this
8228 optimization for rows that overlap others.
8229 (update_window_line): Return non-zero if display has changed.
8230 (update_text_area): Ditto.
8231 (update_window): Record if display has been changed.
8232
8233 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8234
8235 * dispextern.h (struct redisplay_interface): Add
8236 fix_overlapping_area.
8237
8238 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8239
8240 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8241
8242 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8243 ascent and descent.
8244 (x_produce_stretch_glyph): Ditto.
8245 (x_produce_glyphs): Ditto.
8246
8247 * xdisp.c (init_iterator): Reset physical line height info
8248 after producing special glyphs.
8249 (display_toolbar_line): Set physical line height info.
8250 (compute_line_metrics): Ditto.
8251 (display_line): Ditto.
8252 (display_string): Ditto.
8253
8254 * term.c (produce_glyphs): Set iterator's physical height
8255 information.
8256
8257 * dispnew.c (blank_row): Compute glyph row's physical height.
8258 (row_equal_p): Take physical row heights into account.
8259 (direct_output_for_insert): Ditto.
8260 (update_text_area): Ditto.
8261
8262 * dispextern.h (struct glyph_row): Add phys_ascent and
8263 phys_height.
8264 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8265 max_phys_descent.
8266
82671999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8268
8269 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8270 Fswitch_to_buffer.
8271 (no_switch_buffer): New function.
8272 (Fswitch_to_buffer): Call them. Don't get confused
8273 by "same-window" buffers in a dedicated frame.
8274
8275 * window.c (display-buffer): Don't get confused
8276 by "same-window" buffers in a dedicated frame.
8277
82781999-08-04 Andreas Schwab <schwab@gnu.org>
8279
8280 * insdel.c (insert_from_string_1): Check gap size against number
8281 of outgoing bytes, not incoming bytes.
8282
82831999-08-03 Tom Breton <tob@world.std.com>
8284
8285 * lread.c (read1): Added circular reading code to #N=.
8286 (SUBSTITUTE): New macro.
8287 (seen_list): New variable.
8288 (substitute_object_in_subtree): New function.
8289 (substitute_object_recurse): New function.
8290 (substitute_in_interval): New function.
8291
82921999-08-02 Eli Zaretskii <eliz@gnu.org>
8293
8294 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8295
8296 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8297 noninteractive, for termcap frames as well.
8298
8299 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8300 frames.
8301
83021999-08-01 Richard Stallman <rms@gnu.org>
8303
8304 * fns.c (internal_equal): Correct overlay comparison.
8305
83c8f461 83061999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8307
427ec082 8308 * xfns.c (x_set_internal_border_width):
26901792
DL
8309 Call do_pending_window_change. Don't block input, don't call XFlush.
8310 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8311 (x_set_scroll_bar_width, x_set_font): Likewise.
8312
8313 * frame.c (Fset_frame_height): Call do_pending_window_change.
8314 (Fset_frame_width, Fset_frame_size): Likewise.
8315
8316 * xterm.c (x_set_window_size): When calling change_frame_size,
8317 specify 1 for DELAY.
8318
8319 * widget.c (EmacsFrameSetCharSize): Don't call
8320 do_pending_window_change here.
8321
83221999-07-30 Dave Love <fx@gnu.org>
8323
8324 * config.in: Add HAVE_STDLIB_H.
8325
83261999-07-30 Richard M. Stallman <rms@gnu.org>
8327
8328 * process.c (create_process): Detect failure of `pipe'.
8329
83301999-07-30 Keisuke Nishida <kei@psn.net>
8331
8332 * alloc.c (allocate_vectorlike): Add missing increment.
8333
8334 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8335
8336 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8337 before calling indirect_function.
8338
83391999-07-30 Eli Zaretskii <eliz@gnu.org>
8340
8341 * dispextern.h (load_color, lookup_derived_face): Declare
8342 prototypes.
8343
8344 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8345 it will be done later.
8346
8347 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8348 init_frame_faces if non-interactive.
8349 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8350 array with a call to msdos_stdcolor_name. The font name is now
8351 "ms-dos", consistent with realize_tty_face.
8352
8353 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8354 MSDOS frame.
8355
8356 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8357 x_set_toolbar_lines.
8358
8359 * xfaces.c (load_color): Remove static from definition and remove
8360 prototype.
8361 [MSDOS]: Add a DOS-specific version of load_color.
8362 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8363 (lookup_derived_face): New function.
8364 (realize_default_face): Support MSDOS frames.
8365 [MSDOS]: If fore/background colors are unspecified, inherit them
8366 from the frame.
8367 (realize_face): Support MSDOS frames.
8368 (realize_tty_face): Support MSDOS frames.
8369 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8370 load_color to try to find a suitable approximation. If the face
8371 is inverse-video, swap the foreground and background colors.
8372
8373 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8374 functions.
8375
8376 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8377
8378 * msdos.h: Remove redundant declarations (most of them are now in
8379 dispextern.h).
8380
8381 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8382 Use default frame colors if the face doesn't specify them; invert
8383 the colors if highlight is ON.
8384 (IT_write_glyphs): Rewritten for the new redisplay engine.
8385 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8386 how the hook is called by term.c.
8387 (IT_copy_glyphs): New function, copies an area of the display in
8388 video RAM.
8389 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8390 redisplay now calls it even if char_ins_del_ok is zero.
8391 (IT_set_frame_parameters): Prototype changed. Calls the new
8392 load_color. Puts the new fore/background colors into the default
8393 face on current frame.
8394 (IT_menu_display): Rewritten to handle the new struct glyph
8395 instead of a char array.
8396 (XMenuActivate): Call lookup_derived_face to create and use
8397 special faces for the pop-up and drop-down menus.
8398
83991999-07-29 Gerd Moellmann <gerd@gnu.org>
8400
8401 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8402 XawScrollbarSetThumb if thumb parameters haven't changed because
8403 that function apparently isn't optimized for this case.
8404
84051999-07-29 Eli Zaretskii <eliz@gnu.org>
8406
8407 * msdos.c (getdefdir): Don't return failure indication when
8408 _fixpath sets errno to ENOSYS.
8409
84101999-07-28 Gerd Moellmann <gerd@gnu.org>
8411
8412 * xdisp.c (string_char_and_length): New. Use it everywhere
8413 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8414
84151999-07-28 Kenichi Handa <handa@etl.go.jp>
8416
8417 * fns.c (count_combining): New function.
8418 (struct textprop_rec): New structure.
8419 (concat): Copy text properties correctly when byte combining
8420 occurs.
8421
84221999-07-28 Gerd Moellmann <gerd@gnu.org>
8423
8424 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8425 if display is mono.
8426 (x_draw_row_bitmaps): If face has stipple, don't switch
8427 to foreground color for clearing areas, and set the fill style.
8428
8429 * xfaces.c (load_face_colors): Load background color if setting
8430 stipple, too.
427ec082 8431 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8432 FillStippled.
8433
84341999-07-26 Ken'ichi Handa <handa@gnu.org>
8435
8436 * xterm.c (x_find_ccl_program): Add casting.
8437
8438 * w32fns.c (w32_find_ccl_program): Add casting.
8439
84401999-07-27 Gerd Moellmann <gerd@gnu.org>
8441
8442 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8443
8444 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8445 because this will try to access a nonexisting widget.
8446
84471999-07-26 Markus Rost <rost@gnu.org>
8448
427ec082 8449 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8450 (Fputhash): Ditto.
8451 (Fremhash): Ditto.
8452
84531999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8454
26901792
DL
8455 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8456 value to frame width and height.
8457
8458 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8459 into account for full-width windows. Don't add scroll bar width
8460 to width of clip rect.
8461 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8462 (x_set_glyph_string_background_width): Add 1 to background width.
8463 (x_draw_glyphs): Take internal border into account for full-width
8464 lines.
8465
84661999-07-26 Richard M. Stallman <rms@gnu.org>
8467
8468 * xfns.c (x_set_mouse_color): Always unload the old color.
8469 Don't allow nil as color value.
427ec082 8470 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8471 Always unload the old color.
8472
8473 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8474
84751999-07-26 Karl Heuer <kwzh@gnu.org>
8476
8477 * fns.c (Fy_or_n_p): Doc fix.
8478
84791999-07-26 Kenichi Handa <handa@etl.go.jp>
8480
8481 * ccl.h (setup_ccl_program): The type is changed to `int'.
8482
8483 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8484 stored in the following CCL code. Adjusted for the change of
8485 Vccl_program_table.
8486 (resolve_symbol_ccl_program): Adjusted for the new style of
8487 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8488 is resolving failed.
8489 (ccl_get_compiled_code): New function.
8490 (setup_ccl_program): Function type changed from `void' to `int'.
8491 Resolve symbols in CCL_PROG.
8492 (Fccl_program_p): New function.
8493 (Fccl_execute): Get compiled CCL code by just calling
8494 setup_ccl_program.
8495 (Fccl_execute_on_string): Likewise.
8496 (Fregister_ccl_program): Adjusted for the change of
8497 Vccl_program_table.
8498
8499 * coding.c (setup_coding_system): Get compiled CCL code by just
8500 calling setup_ccl_program.
8501
8502 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8503 calling setup_ccl_program.
8504
8505 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8506 calling setup_ccl_program.
8507
85081999-07-23 Gerd Moellmann <gerd@gnu.org>
8509
8510 * xfaces.c (frame_update_line_height): Just use the height of the
8511 frame's fontset or font, instead of taking face fonts into
8512 account.
8513
8514 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8515
85161999-07-23 Richard M. Stallman <rms@gnu.org>
8517
8518 * window.c (Fsplit_window): For default size, round up for left window.
8519
85201999-07-21 Joe Ramey <ramey@ti.com>
8521
8522 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8523 has returned -1 (lockfile exists but is not a symlink?).
8524
85251999-07-20 Gerd Moellmann <gerd@gnu.org>
8526
8527 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8528 because of a change in cursor_gc made in 20.4.
8529
85301999-07-19 Gerd Moellmann <gerd@gnu.org>
8531
8532 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8533 for YNegative, if using X toolkit.
8534
427ec082 8535 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8536 from positions returned.
8537
85381999-07-17 Gerd Moellmann <gerd@gnu.org>
8539
8540 * xrdb.c (x_load_resources): Set double-click time defaults
8541 for Motif list boxes from double-click-time.
8542
8543 * fns.c (Vhash_table_tests): Remvoed.
8544 (Qhash_table_test): New.
8545 (syms_of_fns): Initialize Qhash_table_test.
8546 (Fmake_hash_table): Look up user-defined tests in symbol prop
8547 `hash-table-test'.
8548 (Fdefine_hash_table_test): Store test and hash function as
8549 symbol prop `hash-table-test'.
8550 (make_hash_table): Add parameters user_test and user_hash.
8551
8552 * window.c (set_window_buffer): Set window margins for tty
8553 frames, too.
8554 (Fset_window_margins): Ditto.
8555
8556 * term.c (append_glyph): Use glyph area of iterator instead of
8557 always TEXT_AREA.
8558
8559 * dispnew.c (update_frame_1): Add left margin width to cursor
8560 hpos.
8561 (direct_output_for_insert): Ditto.
8562 (direct_output_forward_char): Ditto.
8563
8564 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8565
8566 * dispextern.h (struct glyph_matrix): Add top_line_p.
8567
85681999-07-16 Gerd Moellmann <gerd@gnu.org>
8569
8570 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8571 instead.
8572
8573 * fns.c (cmpfn_eq): Add hash code parameters.
8574 (cmpfn_eql): Ditto.
8575 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8576 (cmpfn_user_defined): Likewise.
8577
85781999-07-15 Gerd Moellmann <gerd@gnu.org>
8579
8580 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8581
8582 * fns.c (maybe_resize_hash_table): Correct computation of
8583 index vector size.
8584 (make_hash_table): Ditto.
8585 (Fmakehash): New.
8586
8587 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8588
8589 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8590 (survives_gc_p): Make it externally visible.
8591 (mark_object): Ditto.
8592
8593 * fns.c (remove_hash_entry): Removed.
8594 (sweep_weak_hash_tables): New.
8595
8596 * print.c (print): Print more information about hash tables.
8597
8598 * xfns.c (image_spec_hash): Removed.
8599 (lookup_image): Use sxhash instead of image_spec_hash.
8600 (image_spec_equal_p): Removed.
8601 (lookup_image): Use Fequal instead of image_spec_equal_p.
8602
86031999-07-14 Gerd Moellmann <gerd@gnu.org>
8604
8605 * lisp.h (P_): Moved to top of file.
8606
8607 * fns.c (make_hash_table): Set new members.
8608
8609 * alloc.c (mark_object): Mark hash table's user_hash_function.
8610 Mark index vector for weak hash tables.
8611
8612 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8613 user_hash_function, cmpfn, and hashfn.
8614
8615 * fns.c (build_hash): Removed.
8616 (hash_test): Removed.
8617 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8618 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8619
86201999-07-13 Gerd Moellmann <gerd@gnu.org>
8621
8622 * alloc.c (survives_gc_p): New.
8623
8624 * print.c (print): Add hash table handling.
8625
8626 * alloc.c (mark_object): Add code to mark hash tables.
8627
8628 * lisp.h (GC_HASH_TABLE_P): New.
8629
8630 * emacs.c (main): Call init_fns.
8631
8632 * fns.c (init_fns): New.
8633
8634 * fns.c: Add hash table implementation.
8635
8636 * lisp.h (PVEC_HASH_TABLE): New.
8637 (struct Lisp_Hash_Table): New.
8638 (XHASH_TABLE): New.
8639 (XSET_HASH_TABLE): New.
8640 (HASH_TABLE_P): New.
8641 (CHECK_HASH_TABLE): New.
8642 (DEFAULT_HASH_SIZE): New.
8643 (DEFAULT_REHASH_THRESHOLD): New.
8644 (DEFAULT_REHASH_SIZE): New.
8645
8646 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8647 (x_write_glyphs): Compute overwritten cursor using real start
8648 and end positions of display.
8649 (x_insert_glyphs): Ditto.
8650
86511999-07-10 Gerd Moellmann <gerd@gnu.org>
8652
8653 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8654
8655 * dispnew.c (blank_row): Add y-position as parameter. Compute
8656 visible height.
8657
8658 * xdisp.c (next_element_from_string): Give padding spaces
8659 a position of -1.
8660
427ec082 8661 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8662 marginals areas on tty frames in a future version.
8663 (allocate_matrices_for_frame_redisplay): Ditto.
8664
8665 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8666 to zero if number of glyphs in the row is <= 1.
8667
86681999-07-09 Gerd Moellmann <gerd@gnu.org>
8669
8670 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8671 into account.
8672
8673 * xdisp.c (handle_display_prop): Don't reset area if handing
8674 a property from a string that came from a `display' property.
8675 (handle_single_display_prop): Don't handle recursive `display'
8676 properties.
8677 (handle_single_display_prop): Handle some display property
8678 forms for terminal frames.
8679 (Qimage): Moved here from xfns.c.
8680
8681 * dispextern.h (struct it): New field string_from_display_prop_p.
8682
8683 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8684 line.
8685
86861999-07-08 Gerd Moellmann <gerd@gnu.org>
8687
8688 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8689
8690 * window.c (set_window_buffer): Set window's vscroll to zero.
8691
8692 * xdisp.c (QCwhen): New.
8693 (display_prop_end): New.
8694 (handle_single_display_prop): Use it.
8695 (debug_method_add): Print buffer name if tracing.
8696 (try_window_reusing_current_matrix): Compute visible height
8697 of reused rows. Fix cursor position calculation in case of
8698 top-line.
8699
8700 * dispextern.h (struct redisplay_interface): Add parameter
8701 cursor_on_p to update_window_end_hook.
8702
8703 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8704
87051999-07-07 Gerd Moellmann <gerd@gnu.org>
8706
427ec082 8707 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8708 doesn't become negative when decrementing it.
8709
8710 * eval.c (Fsignal): Reset redisplaying_p to zero.
8711
8712 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8713 for window update.
8714 (try_window_id): Ditto.
8715
8716 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8717 (x_scroll_run): Ditto.
8718 (any_help_event_p): New.
8719 (x_initialize): Set it to zero.
8720 (XTread_socket): Clear help echo only if any_help_event_p.
8721
8722 * xdisp.c (init_iterator): Set top_line_p.
8723 (start_display): Use correct initial y if top-line is present.
8724 (make_cursor_line_fully_visible): Bug fixes for top-line.
8725 (try_scrolling): Ditto.
8726 (try_window_reusing_current_matrix): Ditto.
8727
8728 * dispextern.h (struct it): Add top_line_p.
8729
8730 * dispnew.c (shift_glyph_matrix): Move some computations out
8731 of the loop.
8732
427ec082 8733 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8734 XFLOATINT.
8735
87361999-07-06 Gerd Moellmann <gerd@gnu.org>
8737
8738 * dispnew.c (update_frame_1): When setting cursor in echo area,
8739 skip only over padding spaces at the end.
8740
8741 * xfaces.c (realize_tty_face): Set face's font_name field to
8742 "tty".
8743
8744 * term.c (update_end): Turn cursor on only if selected window's
8745 cursor_off_p flag is not set.
8746
87471999-07-05 Gerd Moellmann <gerd@gnu.org>
8748
8749 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8750 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8751 (TS_cursor_invisible): New.
8752 (term_init): Initialize TS_cursor_invisible.
8753 (tty_hide_cursor): New.
8754 (tty_show_cursor): New.
8755 (update_end): Show tty cursor.
8756 (update_begin): Hide tty cursor to prevent cursor flickering
8757 during redisplays triggered by timers (stealth fontification).
8758
8759 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8760
8761 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8762 in scroll bars.
8763 (x_handle_toolbar_click): Set modifier bits.
8764
87651999-07-04 Gerd Moellmann <gerd@gnu.org>
8766
8767 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8768 instead of a pointer to a volatile input_event.
427ec082 8769 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8770 declaration of local variable `sp'.
8771 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8772 to kbd_fetch_ptr.
8773
87741999-07-03 Gerd Moellmann <gerd@gnu.org>
8775
8776 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8777 only if buffer is modified. Return quickly if changes are
8778 above window start.
8779
87801999-07-02 Gerd Moellmann <gerd@gnu.org>
8781
8782 * dispextern.h (HSCROLL_WINDOWS): Removed.
8783
8784 * xdisp.c (mark_window_display_accurate): Don't set
8785 w->region_showing.
8786 (redisplay_internal): Don't call redraw_garbaged_frames.
8787
87881999-07-01 Gerd Moellmann <gerd@gnu.org>
8789
8790 * xdisp.c (echo_area_display): Don't display truncation marks
8791 for messages because 20.4 doesn't do it either.
8792 (redisplay_window): Case same window start. Instead of giving
8793 up when cursor is partially visible, make it fully visible.
8794 (mark_window_display_accurate): Some cleanup. Record window's
8795 last cursor information.
8796 (debug_method_add): Improved.
8797 (redisplay_internal): Record last cursor info only if not
8798 consider_all_windows_p.
8799
8800 * dispnew.c (update_window): Update top line after scrolling.
8801 (blank_row): Renamed from make_empty_enabled_row.
8802 (increment_glyph_row_buffer_positions): Increment positions
8803 in buffers, only.
8804
8805 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8806 string.
8807
88081999-06-30 Gerd Moellmann <gerd@gnu.org>
8809
8810 * dispnew.c (update_window): Check that updated row is visible.
8811
8812 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8813 top of window differently.
8814
8815 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8816 if region is showing.
8817
8818 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8819 avoiding matrix reallocation. Set window_vscroll in matrix.
8820
8821 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8822
26901792
DL
8823 * xdisp.c (debug_method_add): New.
8824 (debug_redisplay_method): Removed.
8825 (try_window_reusing_current_matrix): Handle case where old
8826 window start is the same as new window start.
8827
8828 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8829 an array instead of a pointer.
8830
26901792
DL
8831 * xfns.c (Fx_show_tip): Undo previous change.
8832
8833 * xterm.c (x_append_glyph): Clear glyph->u.val.
8834
8835 * dispextern.h (struct glyph): Increase size of face_id bit-field
8836 for CHAR_GLYPH to 12.
8837
88381999-06-29 Gerd Moellmann <gerd@gnu.org>
8839
8840 * xfaces.c (x_charset_registry): Make it externally visible.
8841
88421999-06-28 Gerd Moellmann <gerd@gnu.org>
8843
427ec082 8844 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8845 instead of WINDOW_WANTS_MODELINE_P.
8846
8847 * xterm.c (clear_mouse_face): Make externally visible.
8848
8849 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8850
8851 * xterm.c (expose_line): Handle exposure of top-lines.
8852
8853 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8854 if mouse_face_mouse_frame is null.
8855
8856 * xdisp.c (redisplay_window): If window is echo_area_window,
8857 and update_mode_line is set, update menubar and toolbar.
8858
8859 * dispnew.c (space_glyph): Set its charpos to -1.
8860 (update_frame_1): Ignore trailing padding spaces.
8861
8862 * xdisp.c (next_element_from_c_string): Set position of padding
8863 glyphs to -1.
8864
88651999-06-27 Gerd Moellmann <gerd@gnu.org>
8866
8867 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8868 XQueryColor.
8869
8870 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8871 (set_cursor_from_row): Skip over glyphs having a null object at
8872 the start of rows.
8873 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8874 glyphs.
8875 (handle_invisible_prop): Compute next change only when needed.
8876 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8877 line.
8878
88791999-06-26 Gerd Moellmann <gerd@gnu.org>
8880
8881 * xrdb.c (x_load_resources): Don't set resource for double-click
8882 time.
8883
8884 * xdisp.c (try_window_id): Return quickly if all changes are
8885 below the window's current matrix end.
8886
8887 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8888 parameter.
8889
8890 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8891 in desired not in current matrix.
8892 (try_window_reusing_current_matrix): Rotate matrices starting
8893 at start_vpos instead of 0.
8894
8895 * xterm.c (expose_window): Use window_text_bottom_y.
8896 (fast_find_position): Ditto.
8897
8898 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8899 (try_window_reusing_current_matrix): Ditto.
8900 (get_last_unchanged_at_beg_row): Ditto.
8901 (init_iterator): Ditto.
8902
8903 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8904 more row.
8905 (check_matrix_invariants): Use window_text_bottom_y.
8906 (update_window): Ditto.
8907 (scrolling_window): Ditto.
8908
8909 * xdisp.c (window_text_bottom_y): New.
8910
89111999-06-25 Gerd Moellmann <gerd@gnu.org>
8912
8913 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8914 clearing mouse face.
8915 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8916 event.xcrossing.focus is not set, and focus is in the menu bar,
8917 set focus frame as if event.xcrossing.focus were set.
8918
89191999-06-24 Gerd Moellmann <gerd@gnu.org>
8920
8921 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8922 * keyboard.c (make_lispy_movement): Ditto.
8923
8924 * window.c (coordinates_in_window): Return 4 if on top line.
8925 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8926
8927 * xdisp.c (window_box_height): Subtract top line height.
8928 (window_box): Add top line height to top y position if top line
8929 exists.
8930 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8931 the top line row of the window. Set initial y-position to
8932 window's top line height plus delta.
8933 (start_display): Choose start glyph row depending on whether
8934 window has a top line.
8935 (try_scrolling): Take top line height into account for aggressive
8936 scrolling.
8937 (compute_window_start_on_continuation_line): Take top line into
8938 account.
427ec082 8939 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
8940 trigger a new redisplay.
8941 (try_window_reusing_current_matrix): Take top line into account.
8942 (find_last_row_displaying_text): Ditto.
8943 (get_last_unchanged_at_beg_row): DItto.
8944 (try_window_id): Ditto.
8945 (compute_line_metrics): Ditto.
8946
8947 * dispnew.c (shift_glyph_matrix): Compute visible row height
8948 taking top line of window into account.
8949 (update_window): Update top line. If scrolling_window detects
8950 that all rows are equal, only set cursor.
8951 (update_window_line): Call after_update_window_line_hook if
8952 mode_line_p flag of rows has changed.
8953 (scrolling_window): Add parameter top_line_p. Return -1 if
8954 all rows are equal.
8955 (mode_line_string): Add parameter mode_line_p. Handle strings
8956 in top lines.
8957
8958 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8959 (MATRIX_FIRST_TEXT_ROW): New.
8960 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8961 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8962 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8963 (MATRIX_TOP_LINE_HEIGHT): New.
8964 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8965 (CURRENT_TOP_LINE_HEIGHT): New.
8966 (DESIRED_TOP_LINE_HEIGHT): New.
8967 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8968 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8969 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8970 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8971
8972 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8973 lines.
8974 (x_draw_row_bitmaps): Take top line into account when clearing
8975 bitmap area.
8976 (x_estimate_mode_line_height): Replacement for
8977 x_frame_mode_line_height.
8978 (x_get_glyph_string_clip_rect): Take top line into account.
8979 (x_clear_end_of_line): Ditto.
8980 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8981 top lines.
8982 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8983 (x_erase_phys_cursor): Take top line into account.
8984
8985 * xdisp.c (window_box_height): Subtract top line height if
8986 window wants a top line.
8987 (display_mode_lines): New.
8988 (redisplay_window): Call it.
8989 (display_mode_line): Add parameters face_id and format.
8990
8991 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8992 (MATRIX_TOP_LINE_HEIGHT): New.
8993
8994 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8995
8996 * term.c (estimate_mode_line_height): Renamed from
8997 frame_mode_line_height. Add parameter face_id.
8998 (estimate_mode_line_height_hook): Renamed from
8999 frame_mode_line_height_hook.
9000 (produce_special_glyphs_hook): Removed.
9001 (produce_glyphs_hook): Removed.
9002
90031999-06-23 Gerd Moellmann <gerd@gnu.org>
9004
9005 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
9006 (struct glyph_row): Add mode_line_p.
9007
9008 * xfaces.c (realize_basic_faces): Realize face `top-line'.
9009 (Qtop_line): New.
9010 (syms_of_xfaces): Initialize Qtop_line.
9011
9012 * dispextern.h (TOP_LINE_FACE_ID): New.
9013
9014 * buffer.c (init_buffer_once): Set default for
9015 top_line_format to nil.
9016 (init_buffer_once): Init top_line_format.
9017 (default-top-line-format): New.
9018 (top-line-format): New buffer-local variable.
9019
9020 * buffer.h: Add top_line_format.
9021
9022 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
9023
90241999-06-17 Dave Love <fx@gnu.org>
9025
9026 * xfns.c: Move the PNG section before the JPEG one to avoid
9027 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9028
26901792
DL
90291999-06-17 Gerd Moellmann <gerd@gnu.org>
9030
9031 * xfns.c (x_kill_gs_process): Don't free colors.
9032
90331999-06-17 Dave Love <fx@gnu.org>
9034
9035 * s/gnu-linux.h: Zap spurious ~.
9036
90371999-06-16 Gerd Moellmann <gerd@gnu.org>
9038
9039 * xfns.c (gif_load): Improve multi-image support.
9040
90411999-06-15 Gerd Moellmann <gerd@gnu.org>
9042
9043 * xfns.c (gif_load): Support multi-image files.
9044
9045 * Makefile.in (LIBGIF): Use libungif.
9046
9047 * configure.in (HAVE_GIF): Use libungif instead of libgif
9048 because the former doesn't contain patented compression code.
9049
9050 * xdisp.c (compute_window_start_on_continuation_line): Don't
9051 do it if line start is too far away from window start.
9052
90531999-06-14 Gerd Moellmann <gerd@gnu.org>
9054
9055 * buffer.c (init_buffer_once): Set buffer_local_flags for
9056 scroll_*_aggressively.
9057 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9058 (init_buffer_once): Set defaults for these variables.
9059 (syms_of_buffer): Add default-scroll-*-aggressively.
9060
9061 * buffer.h (scroll_up_aggressively): New.
9062 (scroll_down_aggressively): New.
9063
9064 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9065 a static PNG library.
9066
9067 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9068 in case it's a static library.
9069
9070 * Makefile.in (ctagsfiles): Split so that files starting
9071 with an `x' are found before files starting with `w32'.
9072 (ctagsfiles1): New.
9073 (ctagsfiles2): New.
9074 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9075
9076 * xdisp.c (compute_window_start_on_continuation_line): New.
9077 (redisplay_window): Use it.
9078 (INFINITY): New.
9079 (reseat_to_string): Use it.
9080 (hscroll_window_tree): Ditto.
9081 (compute_window_start_on_continuation_line): Ditto.
9082 (redisplay_window): Don't force display with a new window start.
9083
90841999-06-06 Gerd Moellmann <gerd@gnu.org>
9085
9086 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9087 if widget not present.
9088
9089 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9090
90911999-06-04 Gerd Moellmann <gerd@gnu.org>
9092
9093 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9094 value of realize_basic_faces.
9095 (load_face_font_or_fontset): Store full font name in face.
9096 (realize_default_face): Use full font name.
9097
26901792
DL
9098 * xterm.c (x_produce_glyphs): Set member char_to_display.
9099 (x_append_glyph): Store char_to_display in glyphs.
9100
9101 * dispextern.h (struct it): Add char_to_display.
9102
9103 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9104 if faces haven't been initialized.
9105 (Fx_create_frame): Call face-set-after-frame-default after
9106 faces have been initialized, and widget has been created.
9107
9108 * puresize.h (BASE_PURESIZE): Increased.
9109
91101999-06-01 Gerd Moellmann <gerd@gnu.org>
9111
9112 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9113 (Finternal_set_lisp_face_attribute): If frame is t when
9114 :font attribute is set, use the selected frame.
9115 (clear_face_cache): Add parameter clear_fonts_p.
9116 (Fclear_face_cache): Add optional parameter thorougly.
9117
9118 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9119 in table.
9120 (Fclear_face_cache): New.
9121 (choose_face_fontset_font): If fontset doesn't contain font
9122 pattern for the given charset, use CHARSET_ASCII.
9123 (Finternal_set_lisp_face_attribute): Fix handling of nil
9124 stipple attribute.
9125 (Finternal_set_lisp_face_attribute): Fix handling of changing
9126 font-related face attributes of the default face.
9127 (set_lface_from_font_name): Set only attributes that aren't
9128 specified.
9129
91301999-05-31 Gerd Moellmann <gerd@gnu.org>
9131
9132 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9133 font support.
9134 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9135 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9136 scalable fonts depending on the setting of SCALABLE_FONTS.
9137 (first_font_matching): List more than one font to find the
9138 first non-scalable matching font.
9139 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9140 depending on SCALABLE_FONTS.
9141 (better_font_p): New parameter compare_pt_p. If zero, don't
9142 compare point sizes of fonts.
9143 (exact_face_match_p) [SCALABLE_FONTS]: New.
9144 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9145 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9146 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9147 (syms_of_xfaces): Add scalable-fonts-allowed.
9148
91491999-05-26 Gerd Moellmann <gerd@gnu.org>
9150
9151 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9152 mask only if image contains simple transparency information.
9153 Otherwise, combine image with frame background color.
9154
9155 * configure.in (--with-png, HAVE_PNG): New.
9156
9157 * config.in (HAVE_PNG): New.
9158
9159 * Makefile.in: Add PNG library.
9160
9161 * xfns.c: Add PNG support.
9162
91631999-05-25 Gerd Moellmann <gerd@gnu.org>
9164
9165 * xdisp.c (init_xdisp): Initialize echo_area_message and
9166 previous_echo_area_message to nil.
9167
9168 * keyboard.c (read_char): Rename local variable echo_area_message
9169 because it shadows the global one.
9170
91711999-05-05 Gerd Moellmann <gerd@gnu.org>
9172
9173 * xterm.c (note_mode_line_highlight): Restructured.
9174
9175 * window.c (coordinates_in_window): Handle windows that don't have
9176 a mode line because their buffer's mode-line-format is nil.
9177 Recognize the mode line under x positions that correspond to
9178 flags areas and left scroll bar.
9179
91801999-05-02 Dave Love <fx@gnu.org>
9181
9182 * xterm.c (note_mouse_highlight): Separate help-echo processing
9183 from check on mouse-face so that it works generally.
9184
91851999-04-21 Gerd Moellmann <gerd@gnu.org>
9186
9187 * sound.c (Fplay_sound): Run hook play-sound-hook.
9188 (Qplay_sound_hook): New.
9189
91901999-04-20 Gerd Moellmann <gerd@gnu.org>
9191
9192 * xdisp.c (update_echo_area): Handle echo_area_message.
9193
91941999-04-19 Gerd Moellmann <gerd@gnu.org>
9195
9196 * editfns.c (Fmessage): Use message3.
9197
9198 * print.c (printchar): Set echo_area_message to nil.
9199 (strout): Ditto.
9200
9201 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9202 (Fminibuffer_completion_help): Ditto.
9203
9204 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9205 (command_loop_1): Test echo_areA_message.
9206 (read_char): Ditto.
9207 (record_menu_key): Set echo_area_message to nil.
9208 (Fexecute_extended_command): Test echo_area_message.
9209 (Fexecute_extended_command): Handle echo_area_message.
9210
9211 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9212 is set.
9213
9214 * editfns.c (Fcurrent_message): If echo_area_message is set,
9215 return a substring of that string.
9216
9217 * dispnew.c (direct_output_for_insert): Test echo_area_message
9218 in addition to echo_area_glyphs.
9219 (set_window_cursor_after_update): Ditto.
9220 (update_frame_1): Ditto.
9221
9222 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9223 old Lisp message string.
9224
9225 * xdisp.c (echo_area_message): New.
9226 (previous_echo_area_message): New.
9227 (syms_of_xdisp): Initialize and staticpro new variables.
9228 (echo_area_display): Display echo_area_message if set.
9229 (message2_nolog): Set echo_area_message and
9230 previous_echo_area_message.
9231 (echo_area_display): Set previous_echo_area_message.
9232 (redisplay_internal): Display echo area if echo_area_message
9233 or previous_echo_area_message are set.
9234 (redisplay_preserve_echo_area): Test/set echo_area_message and
9235 previous_echo_area_message.
9236 (redisplay_window): Test echo_area_message.
9237 (message3_nolog): New.
9238 (message3): New.
9239
9240 * editfns.c (Fformat): Add text properties to the result string
9241 from properties of the format string and properties of string
9242 arguments.
9243
9244 * textprop.c (text_property_list): New.
9245 (add_text_properties_from_list): New.
9246 (extend_property_ranges): New.
9247
92481999-03-29 Gerd Moellmann <gerd@gnu.org>
9249
9250 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9251 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9252 Use these symbols for the box face attribute instead of the
9253 removed ones.
9254
92551999-03-12 Gerd Moellmann <gerd@gnu.org>
9256
9257 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9258 Correct wrong test for slant.
9259
92601999-03-10 Gerd Moellmann <gerd@gnu.org>
9261
9262 * xfaces.c: Use `unspecified' for unspecified face attributes,
9263 use t and nil for on/off.
9264
92651999-03-06 Gerd Moellmann <gerd@gnu.org>
9266
9267 * buffer.c (syms_of_buffer): Extend doc string of
9268 mode-line-format.
9269
9270 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9271 (first_font_matching): New.
9272 (set_lface_from_font_name): Use it if font name is a pattern.
9273 (font_field_wildcard_p): Removed.
9274
9275 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9276 Recompute visible height of rows.
9277
9278 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9279 Don't accept non-strings for help-echo from overlays.
9280
92811999-03-04 Dave Love <fx@gnu.org>
9282
9283 * xterm.c (note_mouse_highlight): Check overlays for help-text
9284 property.
9285 (XTread_socket): Fix compiler warning.
427ec082 9286
26901792
DL
92871999-03-05 Gerd Moellmann <gerd@gnu.org>
9288
427ec082 9289 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9290 overlay to 10. Call overlays_at so that it doesn't try to
9291 extend the vector.
9292
9293 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9294 height.
9295
9296 * dispnew.c (row_equal_p): Compare visible row height, only.
9297 (update_text_area): Draw whole line if visible heights of
9298 rows differ.
9299 (update_window_line): Call after_update_window_line_hook
9300 if visible row height has changed.
9301
9302 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9303 (struct glyph_row): New member visible_height.
9304
9305 * xfaces.c (font_field_wildcard_p): New.
9306 (set_lface_from_font_name): Remove parameter force_p. Accept
9307 font names containing wildcards.
9308
93091999-03-04 Gerd Moellmann <gerd@gnu.org>
9310
9311 * xterm.c (x_after_update_window_line): Clear internal border
9312 when windows_or_buffers_changed.
9313
9314 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9315 buffer has a nil mode_line_format.
9316
93171999-03-03 Gerd Moellmann <gerd@gnu.org>
9318
9319 * xterm.c (x_setup_relief_colors): Use either background color
9320 or specified color.
9321
9322 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9323
9324 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9325
9326 * xterm.c (x_draw_box_rect): New.
9327 (x_draw_glyph_string_box): Renamed from
9328 x_draw_glyph_string_relief. Call x_draw_box_rect.
9329
9330 * xfns.c (QCrelief): New.
9331 (syms_of_xfns): Initialize it.
9332
9333 * dispextern.h (struct glyph): Rename left_shadow_p to
9334 left_box_line_p, right_shadow_p to right_box_line_p.
9335 (MAX_RELIEF_THICKNESS): Removed.
9336 (struct it): Rename members having `relief' in their names
9337 to contain `box' instead.
9338
9339 * xfaces.c (realize_x_face): Handle new box attribute values.
9340 (QCrelief, Qbox): Removed.
9341 (QCshadow, QCcolor, Qraised, Qsunken): New.
9342 (syms_of_xfaces): Initialize new symbols.
9343
93441999-03-02 Gerd Moellmann <gerd@gnu.org>
9345
9346 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9347
9348 * xfaces.c (LFACE_RELIEF): Removed.
9349 (merge_face_vector_with_property): Remove handling of `:relief'.
9350 (Finternal_set_lisp_face_attribute): Ditto.
9351 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9352 (Finternal_get_lisp_face_attribute): Ditto.
9353 (realize_default_face): Ditto.
9354 (lface_hash): Don't compute hash from relief.
9355
9356 * dispextern.h (struct face): Replace member `relief' by
9357 `box_line_width'. Add member `box'.
9358 (face_box_type): New.
9359
9360 * xterm.c (x_produce_glyphs): If face has overline, add overline
9361 thickness + 1 to ascent.
9362
93631999-03-01 Gerd Moellmann <gerd@gnu.org>
9364
9365 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9366 strike-through, and boxes.
9367 (x_draw_glyph_string_underline): Removed.
9368
9369 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9370 (Qoverline, Qstrike_through, Qbox): New.
9371 (syms_of_xfaces): Define these symbols.
9372 (check_lface_attrs): Add checks for overline, strike-through,
9373 and box.
9374 (Finternal_set_lisp_face_attribute): Set new attributes.
9375 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9376 (load_color): Handle new attributes.
9377 (realize_x_face): Ditto.
9378 (merge_face_vector_with_property): Ditto.
9379 (free_face_colors): Ditto.
9380 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9381 (Finternal_get_lisp_face_attribute): Ditto.
9382 (Finternal_lisp_face_attribute_values): Ditto.
9383
9384 * dispextern.h (lface_attribute_index): Add enumerators for
9385 overstrike, strike-through, and box.
9386 (struct face): Add members for overline, strike-through, and
9387 box.
9388
93891999-02-17 Dave Love <fx@gnu.org>
9390
9391 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9392 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9393 files.
9394
93951999-02-16 Gerd Moellmann <gerd@gnu.org>
9396
9397 * keyboard.c (toolbar_items): Call access_keymap with third
9398 parameter 1, so that we don't get inherited toolbar item
9399 definitions.
9400
9401 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9402 the window end vpos when in empty first line of window.
9403
94041999-02-15 Gerd Moellmann <gerd@gnu.org>
9405
9406 * xfaces.c (set_font_frame_param): New.
9407 (Finternal_set_lisp_face_attribute): Call it.
9408
9409Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9410
9411 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9412 Accept specifications of color for underline.
9413
94141999-02-13 Gerd Moellmann <gerd@gnu.org>
9415
9416 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9417 `frame' is t, operate on face defaults for new frames. If it
9418 is nil, operate on the selected frame.
9419
94201999-02-12 Gerd Moellmann <gerd@gnu.org>
9421
9422 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9423 (update_window): Put the call to check_matrix_invariants in #if 0.
9424
9425Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9426
9427 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9428 Remove definition of UNDERLINE_COLOR.
9429
9430Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9431
9432 * xfaces.c (free_face_colors): Free the color for underline.
9433
9434 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9435 to the GC.
9436
9437Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9438
9439 * dispextern.h (UNDERLINE_COLOR): Defined.
9440 (struct face): Added two new members.
9441 underline_color, underline_defaulted_p.
9442
427ec082 9443 * xfaces.c (merge_face_vector_with_property):
26901792 9444 (check_lface_attrs): Accept the string value for underline.
427ec082 9445 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9446
9447 * xfaces.c (load_color): Change the last argument type to enum
9448 lface_attribute_index from int. And addec code for underling coloring.
9449 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9450
26901792
DL
94511999-02-12 Gerd Moellmann <gerd@gnu.org>
9452
9453 * xfns.c (Fx_image_header): Removed.
9454
94551999-02-07 Gerd Moellmann <gerd@gnu.org>
9456
9457 * xterm.c: Don't include <bitmaps/gray>.
9458 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9459
9460 * xfns.c (Fx_image_header): Add missing `\n\'.
9461 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9462
94631999-02-01 Gerd Moellmann <gerd@gnu.org>
9464
9465 * xterm.c (x_scroll_bar_create): Set background pixel from
9466 specified scroll bar color.
9467 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9468
9469 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9470 (x_set_scroll_bar_background): Ditto.
9471
9472 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9473
9474 * xfns.c (x_default_scroll_bar_color_parameter): New.
9475 (Fx_create_frame): Call it.
9476
94771999-01-31 Gerd Moellmann <gerd@gnu.org>
9478
9479 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9480 values in x_output structure.
26901792
DL
9481 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9482 (syms_of_xfns): Initialize these symbols.
9483
9484 * xterm.h (struct x_output): Add scroll bar pixel colors.
9485
9486 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9487 (x_set_scroll_bar_foreground): New.
9488 (x_set_scroll_bar_background): New.
9489
26901792
DL
94901999-01-12 Gerd Moellmann <gerd@gnu.org>
9491
9492 * xdisp.c (handle_single_display_prop): New.
9493 (handle_display_prop): Call it.
9494 (handle_raise_prop): Removed.
9495 (handle_height_prop): Removed.
9496 (handle_space_width_prop): Removed.
9497 (handle_face_prop): Remove handling of raised text.
9498 (handle_display_prop): Do it here.
9499
9500 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9501 (RAISE_PROP_IDX): Removed.
9502 (HEIGHT_PROP_IDX): Removed.
9503 (SPACE_WIDTH_PROP_IDX): Removed.
9504
9505 * xdisp.c (Qdisplay): Replaces Qglyph.
9506 (handle_display_prop): Formerly handle_glyph_prop.
9507
95081999-01-11 Gerd Moellmann <gerd@gnu.org>
9509
9510 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9511 (handle_stop): Set position in display vector to -1. Don't
9512 check overlay strings when set up to deliver characters from a
9513 display vector.
9514 (set_iterator_to_next): At the end of a run of characters from a
9515 display vector, check whether the display vector display replaces
9516 the display of a character.
9517
95181999-01-05 Gerd Moellmann <gerd@gnu.org>
9519
9520 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9521 X window hasn't been created yet.
9522
95231998-12-06 Gerd Moellmann <gerd@gnu.org>
9524
9525 * sound.c: New.
9526
95271998-12-04 Gerd Moellmann <gerd@gnu.org>
9528
9529 * config.in (HAVE_SOUND): New.
9530
9531 * emacs.c (main): Call syms_of_sound and init_sound.
9532
9533 * Makefile.in (obj): Add sound.o.
9534
9535 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9536
9537 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9538 (HAVE_SYS_SOUNDCARD_H): New.
9539
95401998-12-03 Gerd Moellmann <gerd@gnu.org>
9541
9542 * buffer.h (struct buffer): indicate_empty_lines renamed from
9543 indicate_zv_lines.
9544
9545 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9546 (default-indicate-zv-lines): Likewise.
9547
9548 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9549 to indicate_empty_line_p.
9550
9551 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9552 to next_element_from_buffer.
9553
9554 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9555
9556 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9557 and `N-'.
9558
9559 * xfns.c (xbm_scan): New.
9560 (xbm_read_hexint): Removed.
9561 (xbm_read_bitmap_file_data): Use xbm_scan.
9562
9563 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9564
95651998-12-02 Gerd Moellmann <gerd@gnu.org>
9566
9567 * xfns.c (xbm_read_hexint): New.
9568 (xbm_read_bitmap_file_data): New.
9569 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9570 instead of XReadBitmapFileData.
9571
9572 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9573
9574 * xfaces.c (face_with_height): New.
9575
9576 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9577 (eval_form): Renamed from eval_mode_element.
9578 (handle_face_prop): Use it.
9579 (Qheight): Replaces Qsmaller.
9580 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9581 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9582 integer, evaluate it to get the font height to use.
9583
9584 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9585 (struct it): Use `font_height' instead of `smaller'.
9586
95871998-12-01 Gerd Moellmann <gerd@gnu.org>
9588
9589 * xdisp.c (reseat_1): New.
9590 (reseat): Call it.
9591 (move_it_vertically_backward): Ditto.
9592 (redisplay_window): Don't abort when cursor not found in recenter.
9593
95941998-11-30 Gerd Moellmann <gerd@gnu.org>
9595
9596 * xdisp.c (reseat_at_next_visible_line_start): When not
9597 currently delivering display elements from the current buffer,
9598 restore buffer position first.
9599 (init_from_display_pos): Don't set IT's position from the
9600 position passed to this function.
9601
96021998-11-28 Gerd Moellmann <gerd@gnu.org>
9603
9604 * config.in (PROTO): Removed.
9605
9606 * xterm.h: Change PROTO to P_.
9607
96081998-11-26 Gerd Moellmann <gerd@gnu.org>
9609
9610 * xterm.c (take_vertical_position_into_account): New.
9611 (x_produce_image_glyph): Call it.
9612 (x_produce_stretch_glyph): Ditto.
9613 (x_produce_glyphs): Ditto.
9614 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9615 (x_fill_composite_glyph_string): Ditto.
9616 (x_fill_image_glyph_string): Ditto.
9617 (x_fill_stretch_glyph_string): Ditto.
9618
9619 * xdisp.c (display_line): Always compute row height from
9620 max_ascent and max_descent.
9621
9622 * dispextern.h (struct glyph): Add voffset.
9623 (struct it): Replace height by descent, max_height by max_descent.
9624
9625 * xterm.c (x_append_glyph): Set voffset
9626 (x_append_stretch_glyph): Ditto.
9627 (x_produce_image_glyph): Ditto.
9628 (x_produce_glyphs): Take voffset into account.
9629 (x_produce_image_glyph): Ditto.
9630 (x_produce_stretch_glyph): Ditto.
9631
9632 * dispextern.h (struct it): Add voffset.
9633 * xdisp.c (push_it): Save voffset.
9634 (pop_it): Restore it.
9635
9636 * xdisp.c (it_props): Add entry for `raise'.
9637 (handle_raise_prop): New.
9638
9639 * dispextern.h (RAISE_PROP_IDX): New.
9640
9641 * xdisp.c (Qraise): New.
9642 (syms_of_xdisp): Define Qraised.
9643
9644 * xterm.c (x_scroll_bar_move): Clear to the left and right
9645 of toolkit scroll bars differently.
9646 (x_scroll_bar_move): Removed.
9647 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9648
9649 * dispextern.h: Make it compilable --with-x=no.
9650 * alloc.c: Ditto.
9651 * emacs.c: Ditto.
9652 * dispnew.c: Ditto.
9653 * keyboard.c: Ditto.
9654 * term.c: Ditto.
9655 * xdisp.c: Ditto.
9656 * xfaces.c: Ditto.
9657 * xfns.c: Ditto.
9658 * xmenu.c: Ditto.
9659
96601998-11-25 Gerd Moellmann <gerd@gnu.org>
9661
9662 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9663
96641998-11-24 Gerd Moellmann <gerd@gnu.org>
9665
9666 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9667 update slider size, only.
9668 (xm_scroll_callback): Set dragging member of the scroll bar.
9669 (xt_action_hook): Reset last_scroll_bar_part.
9670 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9671
26901792
DL
9672 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9673 window on newly created frames that don't have one.
9674
96751998-11-23 Gerd Moellmann <gerd@gnu.org>
9676
9677 * xdisp.c (restore_overlay_strings): Removed.
9678 (restore_dpvec): Removed.
9679 (init_from_display_pos): Inline both functions above.
9680
9681 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9682 (parse_image_spec): Handle it.
9683 (xbm_format): Use it.
9684 (xpm_format): Ditto.
9685 (pbm_format): Ditto.
9686 (jpeg_format): Ditto.
9687 (tiff_format): Ditto.
9688 (gif_format): Ditto.
9689 (gs_format): Ditto.
9690
9691 * xdisp.c (set_window_cursor): Removed.
9692 (redisplay_internal): Case cursor motion in cursor line of
9693 selected window; use set_cursor_from_row.
9694
96951998-11-22 Gerd Moellmann <gerd@gnu.org>
9696
9697 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9698 into account.
9699
97001998-11-21 Gerd Moellmann <gerd@gnu.org>
9701
9702 * xterm.c (expose_frame): Redraw menu bar window.
9703
9704 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9705 in menu item.
9706
9707 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9708 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9709
9710 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9711 to determine vertical_scroll_bar_extra.
9712 (EmacsFrameSetCharSize): Ditto.
9713 * xfns.c (x_figure_window_size): Ditto.
9714
9715 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9716 (x_draw_bitmap): Ditto.
9717
9718 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9719 * xfaces.c (realize_basic_faces): Realize it.
9720
97211998-11-20 Gerd Moellmann <gerd@gnu.org>
9722
9723 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9724 under LessTif Use the widget of the frame as parent for the
26901792
DL
9725 menu, again.
9726
97271998-11-19 Gerd Moellmann <gerd@gnu.org>
9728
9729 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9730 When EnterNotify, don't generate a mouse movement event if
9731 notification is from a busy-cursor child window.
9732
9733 * xterm.h (struct x_output): Add busy_window, remove cursor.
9734
9735 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9736 Use a transparent window to display the busy-cursor.
9737 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9738
97391998-11-17 Gerd Moellmann <gerd@gnu.org>
9740
9741 * xdisp.c (check_window_end): New, for debugging.
9742 (CHECK_WINDOW_END): New.
9743 (try_window_id): Use it.
9744
9745 * xterm.c (process_expose_from_menu): Return int.
9746
9747 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9748 TOOLBAR_EVENT events in last_nonmenu_event.
9749
97501998-11-16 Gerd Moellmann <gerd@gnu.org>
9751
9752 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9753 window end isn't reliable, so set window_end_valid to nil.
9754 (redisplay_internal): If overlay arrow has changed, set
9755 windows_or_buffers_changed to redisplay thoroughly.
9756
9757 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9758 necessary.
9759
9760 * xfns.c (file_dialog_cb): New.
9761 (Fx_file_dialog): New.
9762 * fileio.c (Fread_file_name): Call it.
9763
427ec082 9764 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9765 selection dialog.
9766
97671998-11-14 Gerd Moellmann <gerd@gnu.org>
9768
9769 * xterm.c (note_mouse_highlight): Don't highlight when popup
9770 is active.
9771
26901792
DL
9772 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9773 timer-event-handler. This busy cursor tends to be anoying if
9774 fontifying stealthily.
9775
9776 * dispnew.c (direct_output_for_insert): Give up if current row
9777 contains trailing whitespace.
9778
97791998-11-13 Gerd Moellmann <gerd@gnu.org>
9780
9781 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9782
9783 * xdisp.c (handle_fontified_prop): New.
9784 (Vfontification_functions): New.
9785 (Qfontification_functions): New.
9786 (it_props): Add handle_fontified_prop.
9787
97881998-11-12 Gerd Moellmann <gerd@gnu.org>
9789
9790 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9791 Otherwise, under LessTif, after the popup has gone, all button
9792 press events come in for the frame's widget, and release events
9793 come in for the edit_widget.
9794 * xterm.c (XTread_socket): Remove workaround for that problem.
9795 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9796 XmScrollBarSetValues.
9797 (SET_SAVED_MENU_EVENT): Give it statement form.
9798
26901792
DL
9799 * xfaces.c (display_message): If waiting_for_input, don't display
9800 the message.
9801
9802 * window.c (scroll_command): If not acting on current_buffer,
9803 make redisplay consider all windows.
9804
9805 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9806
9807 * xdisp.c (handle_glyph_prop): Set it->object for images to
9808 the object having the glyph property.
9809
9810 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9811 invisible.
9812
98131998-11-11 Gerd Moellmann <gerd@gnu.org>
9814
9815 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9816 (x_term_init): Create the gray pixmap.
9817 (x_setup_relief_color): Use it.
9818 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9819 internal border at the top of a frame.
9820 (x_init_glyph_string): Likewise.
427ec082 9821 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9822 full-width lines.
9823 (XTflash): Don't flash the toolbar window.
9824
9825 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9826 in case of ButtonPress events.
9827
98281998-11-10 Gerd Moellmann <gerd@gnu.org>
9829
9830 * xrdb.c (x_load_resources): Add grey background colors as
9831 defaults for menus, scroll bars, and dialogs.
9832
9833 * insdel.c (prepare_to_modify_buffer): Move setting
9834 windows_or_buffers_changed from modify_region here.
9835
9836 * xfns.c (Fx_show_tip): Inhibit redisplay.
9837 (Fx_hide_tip): Ditto.
9838 (Fx_image_header): New.
9839
98401998-11-09 Gerd Moellmann <gerd@gnu.org>
9841
9842 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9843 when clearing current window matrices.
9844
98451998-11-08 Gerd Moellmann <gerd@gnu.org>
9846
9847 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9848 position from a string position. Use the right end position
9849 if the property spans a whole overlay string.
9850
98511998-11-07 Gerd Moellmann <gerd@gnu.org>
9852
9853 * xmenu.c (menubar_selection_callback): Remove workaround for
9854 Lesstif not calling XmNpopdownCallback because it doesn't
9855 handle the case where users don't select any menu item.
9856
26901792
DL
9857 * insdel.c (modify_region): Set windows_or_buffers_changed.
9858
9859 * buffer.c (set_buffer_internal): Don't set
9860 windows_or_buffers_changed.
9861
26901792
DL
9862 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9863
26901792
DL
9864 * xmenu.c (menubar_selection_callback): Add workaround for
9865 Lesstif not calling XmNpopdownCallback.
9866
9867 * xdisp.c (eval_mode_element): New.
9868 (eval_mode_handler): New.
9869 (display_mode_element): Use eval_mode_element.
9870
9871 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9872 Remove code looking at text props of default value.
9873
9874 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9875
26901792
DL
98761998-11-06 Gerd Moellmann <gerd@gnu.org>
9877
427ec082 9878 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9879 BUTTON_TYPE_NONE.
9880 (single_submenu): Likewise for panes and menu items.
9881 (set_frame_menubar): Set button_type of menu bar to none.
9882 (xmenu_show): Likewise.
9883 (single_submenu): Set widget values selected slot.
9884 (xmenu_show): Likewise.
9885
26901792
DL
9886 * xmenu.c (push_menu_item): Add parameters `type' and
9887 `selected'. Store it in menu_items.
9888 (MENU_ITEMS_ITEM_TYPE): New.
9889 (MENU_ITEMS_ITEM_SELECTED): New.
9890 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9891
9892 * xfns.c (clear_image_cache): Get the current time, before
9893 doing anything.
9894 (cache_image): Set prev pointer of next image.
9895 (clear_image_cache): Clear current matrices if any image was
9896 freed.
9897
9898 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9899
9900 * xfns.c (x_set_cursor): New.
9901 (Fx_display_busy_cursor): New.
9902 (Fx_undisplay_busy_cursor): New.
9903
9904 * xterm.h (struct x_output): Add busy_cursor.
9905
9906 * xfns.c (Vx_busy_pointer_shape): New.
9907 (x_set_mouse_color): Create busy cursor.
9908
9909 * process.c (wait_reading_process_input): Show and hide busy
9910 cursor.
9911
9912 * keyboard.c (command_loop_1): Display busy cursor.
9913
9914 * eval.c (Fsignal): Hide busy cursor.
9915
9916 * buffer.c (set_buffer_internal): Don't set
9917 windows_or_buffers_changed.
9918
9919 * xterm.c (redo_mouse_highlight): New.
9920
99211998-11-04 Gerd Moellmann <gerd@gnu.org>
9922
26901792
DL
9923 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9924 (x_build_heuritic_mask): New.
9925 (lookup_image): Call it.
9926
9927 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9928 (previous_help_echo): New.
9929 (XTread_socket): Generate help event with nil message when
9930 leaving a region with help-echo.
9931 (note_mouse_highlight): Handle `help-echo' over text.
9932 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9933 CirculateRequest.
9934 (clear_mouse_face): Don't clear if tooltip is shown.
9935 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9936 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9937
9938 * keyboard.c (Vshow_help_function): New.
9939 (read_char): Use it.
9940
99411998-11-03 Gerd Moellmann <gerd@gnu.org>
9942
9943 * xfns.c (x_create_tip_frame): New.
9944 (Fx_show_tip): New.
9945 (Fx_hide_tip): New.
9946
427ec082 9947 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
9948 a widget.
9949
9950 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9951 to full_width_p. Add internal_border_p.
9952
99531998-11-02 Gerd Moellmann <gerd@gnu.org>
9954
9955 * xterm.c (note_mode_line_highlight): Check the charpos of
9956 the glyph under the mouse pointer before accessing text
9957 properties at that position.
9958
99591998-11-01 Gerd Moellmann <gerd@gnu.org>
9960
9961 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9962
9963 * xdisp.c (auto-raise-toolbar-buttons): New.
9964 (build_desired_toolbar_string): Handle the flag.
9965 (toolbar-button-margin): New.
9966 (toolbar-button-relief): New.
9967 (build_desired_toolbar_string): Use margin and relief.
9968
9969 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9970 for FreeBSD.
9971 (note_mode_line_highlight): New.
9972 (note_mouse_highlight): Call it.
9973
99741998-10-31 Gerd Moellmann <gerd@gnu.org>
9975
9976 * s/freebsd.h (NARROWPROTO): New.
9977
9978 * xdisp.c (display_string): New parameter face_string.
9979 (display_mode_element): When displaying a symbol with a string
9980 value, use text properties from the symbol's default value, maybe.
9981
9982 * xrdb.c (x_load_resources): Add font defaults for menus and
9983 dialogs.
9984
99851998-10-30 Gerd Moellmann <gerd@gnu.org>
9986
9987 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9988
99891998-10-29 Gerd Moellmann <gerd@gnu.org>
9990
9991 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9992 produced for characters with codes < 32 under certain
9993 circumstances.
9994
9995 * xdisp.c (redisplay_window): Handle values of PT in front
9996 of invisible, intangible text.
427ec082 9997 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
9998 displaying lines.
9999 (display_mode_element): Assign to glyphs written for a mode
10000 line spec `%x' as object the Lisp format string, as position
10001 the position of the `%' in that string.
10002 (display_string): If displaying a C string, optionally get
10003 the face to use from a Lisp string.
10004
10005 * xterm.c (expose_window_tree): Include mode line height.
10006
10007 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
10008
100091998-10-27 Gerd Moellmann <gerd@gnu.org>
10010
10011 * xterm.c (note_mouse_highlight): Change mouse pointer shape
10012 over mode line.
10013
100141998-10-26 Gerd Moellmann <gerd@gnu.org>
10015
10016 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
10017
10018 * xdisp.c (redisplay_window): If mode line height has changed,
10019 arrange for a thorough immediate redisplay using the correct mode
10020 line height.
10021 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
10022
10023 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
10024 (CURRENT_MODE_LINE_HEIGHT): New.
10025 (DESIRED_MODE_LINE_HEIGHT): New.
10026
10027 * keyboard.c (make_lispy_event): Add string and string position
10028 info to mouse-click events.
10029 (read_key_sequence): Handle `local-map' property of mode line
10030 strings.
10031
10032 * keyboard.h (POSN_STRING): New.
10033
100341998-10-25 Gerd Moellmann <gerd@gnu.org>
10035
10036 * dispnew.c (mode_line_string): Mew.
10037
10038 * xterm.c (xt_action_hook): New.
10039 (x_create_toolkit_scroll_bar): Add action hook.
10040 (xm_scroll_callback): Implement dragging.
10041
10042 * keyboard.c (Qend_scroll): New.
10043 (scroll_bar_parts): Add it.
10044
10045 * termhooks.h (scroll_bar_end_scroll): New.
10046
10047 * xterm.c (XTread_socket): Bug fix.
10048
100491998-10-24 Gerd Moellmann <gerd@gnu.org>
10050
10051 * xdisp.c (redisplay_window): Finish scroll bars after
10052 redisplaying toolbar.
10053
10054 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10055 (syms_of_keyboard): Add Qbottom.
10056
10057 * termhooks.h (scroll_bar_to_top): New.
10058 (scroll_bar_to_bottom): New.
10059
10060 * xdisp.c (redisplay_window): Always resize toolbar window if
10061 auto_resize_toolbar_p is non-zero.
10062 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10063 (window_box): New.
10064 (window_box_height): New.
10065 (window_box_width): New.
10066 (window_box_left): New.
10067 (window_box_right): New.
10068 (window_box_edges): New.
10069
100701998-10-23 Gerd Moellmann <gerd@gnu.org>
10071
10072 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10073 XawScrollbarSetThumb in FreeBSD.
10074 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10075 to true.
10076
10077 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10078 is out of range.
10079
10080 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10081 (x_term_init): Initialize it.
10082
10083 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10084
10085 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10086 cursor.
10087
100881998-10-22 Gerd Moellmann <gerd@gnu.org>
10089
10090 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10091 differently when using toolkit scroll bars.
10092
10093 * xterm.c (x_send_scroll_bar_event): New.
10094 (x_scroll_bar_to_input_event): New.
10095 (xaw3d_scroll_callback): New.
10096 (xaw3d_jump_callback): New.
10097 (xm_scroll_callback): New.
10098 (x_toolkit_scroll_p): New.
10099 (XTread_socket): Handle scroll bar client message.
10100 (x_term_init): Initialize Xatom_Scrollbar.
10101 (x_scroll_bar_create): Set cursor.
10102 (xm_scroll_callback):
10103 (x_create_toolkit_scroll_bar): New.
10104 (x_set_toolkit_scroll_bar_thumb): New.
10105 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10106 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10107
10108 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10109
101101998-10-21 Gerd Moellmann <gerd@gnu.org>
10111
10112 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10113 (XTread_socket): Don't handle mouse button events for scroll bars
10114 if using toolkit scroll bars.
10115 (XTset_vertical_scroll_bar): Set thumb size and position for
10116 Athena scroll bar.
10117
10118 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10119
10120 * xterm.c (XTread_socket): Dispatch expose event to widget
10121 if using toolkit scroll bars.
10122 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10123 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10124 if using toolkit scroll bars.
10125 (x_scroll_bar_move): Handle tookit scroll bars.
10126
10127 * Makefile.in (LIBW): Use Xaw3d if present.
10128
10129 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10130 (HAVE_XAW3D): New.
427ec082 10131
26901792
DL
10132 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10133 (HAVE_XAW3D): New.
10134
427ec082 10135 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10136 right vertical scroll bar.
10137
101381998-10-20 Gerd Moellmann <gerd@gnu.org>
10139
10140 * xfns.c (xpm_load): Support reading XPM images from string
10141 buffers containing data in the same format as an XPM file.
10142 Support `:color-symbols'.
10143 (xpm_format): Add `:data'.
10144 (xpm_keyword_index): Add XPM_DATA.
10145 (syms_of_xfns): Add `:color-symbols'.
10146 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10147 (xpm_valid_color_symbols_p): New.
10148 (xpm_image_p): Call it.
10149
10150 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10151 attribute to the image if item is not enabled.
10152
10153 * xfns.c (x_laplace): New.
10154 (x_laplace_read_row): New.
10155 (x_laplace_write_row): New.
10156 (lookup_image): Handle common image attributes here. New
10157 attribute `:algorithm'.
10158
10159 * xfaces.c (clear_face_cache): Call clear_image_cache.
10160
10161 * xterm.c (x_inverted_image_mask): Removed.
10162 (x_draw_image_foreground_1): New.
10163 (x_draw_image_glyph_string): Draw images with mask to a temporary
10164 pixmap to reduce flickering.
10165
10166 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10167 (display_toolbar_line): Remove parameter `margin'.
10168
101691998-10-19 Gerd Moellmann <gerd@gnu.org>
10170
10171 * xdisp.c (toolbar_lines_needed): New.
10172 (auto-resize-toolbars): New.
10173
10174 * xfns.c (cache_image): Correct call to xrealloc.
10175
10176 * dispnew.c (Fset_toolbar_height): Removed.
10177
10178 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10179 FRAME_MENU_BAR_LINES.
10180
10181 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10182 instead of FRAME_MENU_BAR_LINES.
10183 (check_frame_size): Ditto.
10184
10185 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10186 instead of FRAME_MENU_BAR_LINES.
10187 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10188 (build_frame_matrix): Ditto.
10189 (change_frame_size_1): Ditto.
10190
10191 * frame.h (FRAME_TOOLBAR_LINES): New.
10192 (FRAME_TOP_MARGIN): New.
10193
10194 * window.c (struct save_window_data): Add frame_toolbar_lines.
10195 (Fset_window_configuration): Handle toolbar lines.
10196 (Fcurrent_window_configuration): Save toolbar lines.
10197
10198 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10199
10200 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10201
10202 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10203
10204 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10205 (x_set_toolbar_lines): New.
10206
10207 * keyboard.c (cmd_error_internal): Bug fix.
10208
10209 * xterm.c: Remove double include of syssignal.h.
10210
102111998-10-18 Gerd Moellmann <gerd@gnu.org>
10212
10213 * xterm.c (x_toolbar_item): New.
10214 (x_handle_toolbar_click): Use it.
10215 (note_toolbar_highlight): Use it.
10216
10217 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10218 and toolbar_items_vectors.
10219
10220 * xterm.c (help_echo): New.
10221 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10222 (x_set_glyph_string_gc): Handle them.
10223 (x_after_update_window_line): Don't do anything in pseudo-windows.
10224 (x_produce_image_glyph): Take image margin and face relief into
10225 account.
10226 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10227 (x_draw_glyph_string_background): Optimize case when face has
10228 relief.
10229 (x_setup_relief_color): Take frame instead of glyph string
10230 parameter.
10231 (x_draw_relief_rect): New.
10232 (x_draw_glyph_string_relief): Call it.
10233 (x_draw_image_glyph_string_foreground): Handle margin and image
10234 relief.
10235 (x_draw_image_glyph_string_background): Ditto.
10236 (expose_frame): Redraw toolbar window.
10237 (expose_window): Don't draw cursor for pseudo-windows.
10238 (x_y_to_hpos_vpos): Handle pseudo-windows.
10239 (frame_to_window_pixel_xy): New.
10240 (note_mouse_highlight): Call note_toolbar_highlight.
10241 (x_handle_toolbar_click): New.
10242 (note_toolbar_highlight): New.
10243 (show_mouse_face): Change int parameter `hl' to parameter of
10244 type enum draw_glyphs_face. Handle image highlighting.
10245 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10246 non-nil. Use x_handle_toolbar_click.
10247
10248 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10249
10250 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10251 IMAGE_BOOL_VALUE.
10252 (parse_image_spec): Handle them.
10253 (image_spec_value): Additional parameter found.
427ec082 10254 (free_image): Remove image from the vector `images' of the
26901792
DL
10255 image cache.
10256 (clear_image_cache): Additional parameter force_p.
10257 (Fclear_image_cache): New.
10258 (x_find_image_file): New.
10259 (xbm_load): Handle `:margin' and `:relief'. Use
10260 x_find_image_file.
10261 (xpm_load): Likewise.
10262 (pbm_load): Likewise.
10263 (jpeg_load): Likewise.
10264 (tiff_load): Likewise.
10265 (gif_load): Likewise.
10266
10267 * keyboard.c (Qhelp_echo): New symbol.
10268 (read_char): Handle `toolbar' and `help_echo' events.
10269 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10270 (make_lispy_event): Handle TOOLBAR_EVENT.
10271 (toolbar_items): New.
10272 (process_toolbar_item): New.
10273 (PROP): New.
10274 (init_toolbar_items): New.
10275 (append_toolbar_item): New.
10276 (read_char_x_menu_prompt): Handle `toolbar' event.
10277 (read_key_sequence): Ditto.
10278
10279 * xfaces.c (Qtoolbar): New.
10280 (realize_basic_faces): Realize `toolbar' face.
10281 (face_at_string_position): Remove parameter modeline_p, add
10282 base_face_id.
10283
10284 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10285 to read data.
10286
102871998-10-17 Gerd Moellmann <gerd@gnu.org>
10288
10289 * xdisp.c (init_iterator): Replace parameter modeline_p with
10290 base_face_id.
10291 (next_element_from_string): Call get_next_display_element
10292 recursively after handling text properties.
10293 (prepare_menu_bars): Call update_toolbar.
10294 (update_toolbar): New.
10295 (build_desired_toolbar_string): New.
10296 (display_toolbar_line): New.
10297 (redisplay_toolbar): New.
10298 (toolbar_item_info): New.
10299 (redisplay_window): Call redisplay_toolbar.
10300 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10301
10302 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10303 window.
10304 (clear_desired_matrices): Ditto.
10305 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10306 (free_glyphs): Free matrices of toolbar window.
10307 (update_frame): Update toolbar window.
10308 (change_frame_size_1): Take toolbar into account.
10309 (Fset_toolbar_height): New.
10310
10311 * dispextern.h (struct it): Remove member modeline_p, add
10312 base_face_id.
10313 (struct image): Add members relief and margin.
10314 (IMAGE_ASCENT): Include margin in height.
10315
103161998-10-14 Gerd Moellmann <gerd@gnu.org>
10317
10318 * xfns.c (Fclear_image_cache): New.
10319
10320 * xfaces.c (realize_basic_faces): Realize toolbar face.
10321 (face_at_string_position): Remove parameter modeline_p, add
10322 base_face_id.
10323
10324 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10325
103261998-10-13 Gerd Moellmann <gerd@gnu.org>
10327
10328 * keyboard.c (syms_of_keyboard): Intern `:help'.
10329
103301998-10-12 Gerd Moellmann <gerd@gnu.org>
10331
10332 * xterm.c (note_toolbar_highlight): New.
10333 (note_mouse_highlight): Call it.
10334
10335 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10336 (coordinates_in_window): Handle toolbar window.
10337
10338 * keyboard.c (toolbar_items): New.
10339 (process_toolbar_item): New.
10340 (parse_toolbar_item): New.
10341 (init_toolbar_items): New.
10342 (append_toolbar_item): New.
10343
10344 * dispextern.h (enum toolbar_item_idx): New.
10345 (enum toolbar_item_image): New.
10346
10347 * frame.h (struct frame): Add toolbar-related members.
10348
10349 * xfaces.c (face_at_string_position): Remove assertion that
10350 current_buffer == window's buffer. This is not the case when
10351 called for the toolbar window.
10352
10353 * frame.c (make_frame): Initialize toolbar members.
10354
10355 * alloc.c (mark_object): Mark toolbar data of frames.
10356
10357 * frame.h (struct frame): Add toolbar-related members
10358 toolbar_window, desired_toolbar_items, current_toolbar_items,
10359 desired_toolbar_string, current_toolbar_string,
10360 n_desired_toolbar_items, n_current_toolbar_items. Add
10361 window_height.
10362
10363 * xterm.c (x_after_update_window_line): Don't draw bitmap
10364 areas for pseudo-windows.
10365 (expose_frame): Handle toolbar window.
10366 (expose_window): Don't do cursor stuff for pseudo-windows.
10367
10368 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10369
103701998-10-11 Gerd Moellmann <gerd@gnu.org>
10371
10372 * frame.c (make_frame): Initialize toolbar_window.
10373
10374 * alloc.c (mark_object): Make the toolbar window.
10375
10376 * dispnew.c (update_frame): Update frame's toolbar_window.
10377 (clear_current_matrices): Likewise.
10378 (clear_desired_matrices): Likewise.
10379 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10380 (free_glyphs): Free the toolbar window and its matrices.
10381
10382 * frame.h (struct frame): Add toolbar_window.
10383
10384 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10385 with relief.
10386
103871998-10-10 Gerd Moellmann <gerd@gnu.org>
10388
427ec082 10389 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10390 window start is not in the range BEGV..ZV.
10391
103921998-10-09 Gerd Moellmann <gerd@gnu.org>
10393
10394 * xdisp.c (try_scrolling): Experimentally handle the case
10395 that scroll-preserve-screen-position is set to `always'.
10396
10397 * window.c (Vscroll_preserve_screen_position): Replacement for
10398 scroll_preserve_screen_position.
10399
104001998-10-08 Gerd Moellmann <gerd@gnu.org>
10401
10402 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10403 doesn't like it.
10404 * xdisp.c: Ditto.
10405
10406 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10407
104081998-10-06 Gerd Moellmann <gerd@gnu.org>
10409
427ec082 10410 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10411 i_byte when prompts are inserted into minibuffers.
10412
10413 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10414 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10415 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10416
104171998-10-04 Gerd Moellmann <gerd@gnu.org>
10418
10419 * xdisp.c (make_cursor_line_fully_visible): New.
10420 (try_scrolling): New.
10421 (redisplay_window): Move scrolling code to try_scrolling.
10422 (make_cursor_line_fully_visible): Handle case of window too small
10423 to show a single line.
10424 (redisplay_window): Case forced window start---use
10425 make_cursor_line_fully_visible.
10426 (redisplay_window): Case cursor movement via current matrix.
10427 If ending up on a partially visible line, make it fully visible
10428 instead of recentering.
10429 (try_scrolling): Additional parameter scroll_smoothly.
10430
10431 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10432
104331998-09-28 Gerd Moellmann <gerd@gnu.org>
10434
10435 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10436 instead of y-position for scroll-preserved-screen-position.
10437
104381998-09-07 Gerd Moellmann <gerd@gnu.org>
10439
10440 * dispnew.c (update_frame_line): If current row is not enabled,
10441 write the whole line.
10442
104431998-09-06 Gerd Moellmann <gerd@gnu.org>
10444
10445 * lisp.h (HAVE_FACES): Removed.
10446
10447 * dispextern.h (HAVE_FACES): Removed.
10448
10449 * config.in (HAVE_FACES): Removed.
10450
10451 * dispnew.c (HAVE_FACES): Removed.
10452
10453 * xdisp.c (HAVE_FACES): Removed.
10454
10455 * xfaces.c (HAVE_FACES): Removed.
10456
104571998-09-05 Gerd Moellmann <gerd@gnu.org>
10458
10459 * xdisp.c (init_iterator): If face_change_count is non-zero,
10460 free realized faces.
10461
10462 * xfaces.c (free_all_realized_faces): Make it externally visible.
10463 (Finternal_set_lisp_face_attribute): Increment
10464 windows_or_buffers_changed.
10465
10466 * dispnew.c (direct_output_for_insert): Give up if
10467 face_change_count is non-zero.
10468 (direct_output_forward_char): Ditto.
10469
10470 * xfaces.c (face_change_count): New.
10471
104721998-09-04 Gerd Moellmann <gerd@gnu.org>
10473
10474 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10475 of range.
10476
104771998-09-03 Gerd Moellmann <gerd@gnu.org>
10478
10479 * term.c (Ftty_display_color_p): New.
10480
104811998-09-02 Gerd Moellmann <gerd@gnu.org>
10482
10483 * xfaces.c (Ftty_defined_colors): New.
10484
10485 * xterm.c (x_produce_glyphs): Fix computation of
10486 contains_overlapping_glyphs_p for ASCII.
10487
10488 * dispnew.c (Fshow_cursor): Don't change cursor state while
10489 redisplaying.
10490 (direct_output_for_insert): If a glyph with lbearing or rbearing
10491 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10492
104931998-09-01 Gerd Moellmann <gerd@gnu.org>
10494
10495 * term.c (OUTPUT_IF): Make replacement text have statement form.
10496 (OUTPUT1_IF): Ditto.
10497 (TS_italic_mode, TS_end_italic_mode): Removed.
10498 (TS_bold_mode): Removed.
10499 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10500 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10501 (TS_enter_reverse_mode): New.
10502 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10503 (TN_magic_cookie_glitch_ul): New.
10504 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10505 (TS_exit_attribute_mode): New.
10506 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10507 (TS_set_foreground, TS_set_background): New.
10508 (reset_terminal_modes): Switch colors back to default.
10509 (write_glyphs): Turn face on before writing text, turn it off
10510 afterwards.
10511 (insert_glyphs): Ditto.
10512 (term_init): Initialize new terminal capability variables.
10513 (turn_on_face): Turn a face on.
10514 (turn_off_face): Turn a face off.
10515
10516 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10517 (GLYPH_CHAR): Ditto.
10518 (GLYPH_FACE): Ditto.
10519
10520 * xfaces.c (Vface_tty_color_alist): New.
10521 (face-register-tty-color): New.
10522 (face-clear-tty-colors): New.
10523
10524 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10525 (struct it): Remove member faces_p since we now always have faces.
10526
105271998-08-31 Gerd Moellmann <gerd@gnu.org>
10528
10529 * dispextern.h (struct face): Add tty appearance flags.
10530
10531 * xdisp.c (init_iterator): Always handle faces.
10532 (extend_face_to_end_of_line): Handle tty frames.
10533
10534 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10535 passed in.
10536
105371998-08-30 Gerd Moellmann <gerd@gnu.org>
10538
10539 * xfaces.c (realize_default_face): Use empty strings to indicate
10540 that the face should use the default foreground/background
427ec082 10541 color of the terminal. Fill font-related attributes with
26901792
DL
10542 appropriate values for tty frames.
10543
10544 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10545
10546 * xfaces.c (realize_default_face): If face `default' is not
10547 yet known, create it.
10548
10549 * frame.c (make_terminal_frame): Call init_frame_faces
10550 unconditionally.
10551
10552 * xfaces.c (init_frame_faces): Make it work for tty frames.
10553 (free_frame_faces): Ditto.
10554 (clear_face_cache): Ditto.
10555 (recompute_basic_faces): Ditto.
10556 (Fframe_face_alist): Ditto.
10557 (free_realized_face): Ditto.
10558 (prepare_face_for_display): Ditto.
10559 (clear_face_gcs): Ditto.
10560 (lookup_face): Ditto.
10561 (smaller_face): Ditto.
10562 (realize_default_face): Ditto.
10563 (realize_face): Ditto.
10564 (realize_face): Dispatch to functions depending on the frame type.
10565 (realize_x_face): X way of realizing faces.
10566 (realize_tty_face): TTY way of realizing faces.
10567
105681998-08-29 Gerd Moellmann <gerd@gnu.org>
10569
10570 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10571 compute it instead.
10572 (lookup_face): Remove local variable unibyte_registry.
10573
105741998-08-22 Gerd Moellmann <gerd@gnu.org>
10575
10576 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10577 1 pixel longer.
10578
427ec082 10579 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10580 of face in buffer.
10581
10582 * editfns.c (make_buffer_string_both): If prompt in buffer,
10583 prevent start > end.
10584
10585 * indent.c (Fvertical_motion): Set current_buffer to window's
10586 buffer if it isn't already.
10587
105881998-08-21 Gerd Moellmann <gerd@gnu.org>
10589
10590 * dispextern.h (GLYPH_DEBUG): Use default 0.
10591
10592 * xdisp.c (it_props): New member `smaller'.
10593 (init_iterator): Initialize it.
10594 (Qsmaller): New.
10595 (push_it): Save value of `smaller' value on the stack.
10596 (pop_it): Restore `smaller' from the stack.
10597 (handle_smaller_prop): New.
10598 (handle_face_prop): Use `smaller' text property to select a
10599 suitable face.
10600
10601 * dispextern.h (SMALLER_PROP_IDX): New.
10602 (struct it): Add member `smaller'.
10603
10604 * xfaces.c (smaller_face): New.
10605
10606 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10607
10608 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10609 total pixel width of window differently.
10610
10611 * xdisp.c (init_iterator): Compute width of mode line differently.
10612
10613 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10614 of bitmap areas.
10615
10616 * window.c (Fsplit_window): Include width of bitmap areas in
10617 window width.
10618 (window_internal_width): Subtract width of bitmap areas from
10619 total width.
10620
106211998-08-18 Gerd Moellmann <gerd@gnu.org>
10622
10623 * xdisp.c: Functions reordered for better readability.
10624
10625 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10626 lbearing.
10627 (update_window_tree): Parameter no_scrolling_p removed.
10628 (update_single_window): Ditto.
10629
10630 * xterm.c (x_get_char_font_and_encoding): Renamed to
10631 x_get_char_face_and_encoding.
10632
10633 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10634 if end of current row reached.
10635
10636 * xterm.c (x_get_glyph_face_and_encoding): New.
10637 (x_get_glyph_overhangs): Call it.
10638
10639 * xdisp.c (Qshow_trailing_whitespace): New.
10640 (Qtrailing_whitespace): New.
10641 (enum prop_handled): New.
10642 (struct props, it_props): New.
10643 (next_overlay_change): New. Works like Fnext_overlay_change
10644 but doesn't use xmalloc.
10645 (handle_stop): Restructured.
10646 (face_before_or_after_it_pos): Case iteration over a string: fix
10647 handling of face before current position.
10648
106491998-08-16 Gerd Moellmann <gerd@gnu.org>
10650
10651 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10652 reallocation matrix if fonts_changed_p.
10653 (update_text_area): Handle glyphs with lbearing.
10654
106551998-08-14 Gerd Moellmann <gerd@gnu.org>
10656
10657 * xdisp.c (struct props): New.
10658 (it_props): New.
10659 (compute_prop_info): New.
10660 (handle_stop): New.
10661
10662 * textprop.c (validate_interval_range): Make it externally
10663 visible.
10664
10665 * dispnew.c (direct_output_for_insert): Remove calls
10666 to compute_stop_pos.
10667
10668 * dispextern.h (struct it): Remove check_charpos,
10669 next_overlay_pos. Add what_changes.
10670
106711998-08-10 Gerd Moellmann <gerd@gnu.org>
10672
10673 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10674
10675 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10676 face_default_registry instead.
10677
10678 * syntax.c (scan_sexps_forward): Set up syntax table before
10679 jumping to initial state label.
10680
106811998-08-09 Gerd Moellmann <gerd@gnu.org>
10682
10683 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10684 >= ZV specially.
10685
106861998-08-08 Gerd Moellmann <gerd@gnu.org>
10687
10688 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10689 ends up in partially visible row, try to scroll. Case forced
10690 window start---handle windows not tall enough to show a single
10691 line.
10692
10693 * window.h (struct window): Member dy renamed vscroll.
10694
10695 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10696 fonts.
10697 (x_draw_stretch_glyph_string): Set clipping if using GC that
10698 hasn't set it yet.
10699
10700 * xdisp.c (redisplay_window): Case forced window start -
10701 don't let cursor end on partially visible row. Use desired
10702 matrix to find a suitable PT if it doesn't appear.
10703 (decode_mode_spec): Merged with 20.2.97.
10704 (try_window_reusing_current_matrix): Give up if old or
10705 new display is vscrolled.
10706 (redisplay_window): Reset vscrolling if forced window start,
10707 or if recentering.
10708
107091998-08-06 Gerd Moellmann <gerd@gnu.org>
10710
10711 * xfaces.c (realize_default_face): Use the fontset name instead of
10712 the alias for the family attribute of the default face because we
10713 can't easily determine a good alias from fontset-alias-alist.
10714 (face_fontset): Use Fquery_fontset to find the fontset.
10715 (font_list): Additional pattern parameter.
10716 (try_font_list): Ditto.
10717 (set_lface_from_font_name): Set face family from font foundry
10718 and family.
10719 (font_list): If family contains a hyphen, build pattern differently.
10720
107211998-08-05 Gerd Moellmann <gerd@gnu.org>
10722
10723 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10724 changed instead of setting the frame garbaged.
10725
10726 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10727 all attribute values. This is wrong if values are unspecified,
10728 i.e. nil.
10729
10730 * xdisp.c (try_window_id): Give up if window start changed.
10731
10732 * xfaces.c (make_realized_face): Store registry as Lisp object.
10733 (load_face_font_or_fontset): Compute registry of a face
10734 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10735 possible.
10736
10737 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10738 differently.
10739
10740 * alloc.c (mark_face_cache): Mark the registry member of faces.
10741
10742 * dispextern.h (struct face): Make registry a Lisp string.
10743
107441998-08-04 Gerd Moellmann <gerd@gnu.org>
10745
10746 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10747 multibyte_p. Handle unibyte text.
10748 (x_append_glyph): Set the multibyte_p flag of glyphs.
10749 (x_produce_image_glyph): Ditto.
10750 (x_append_stretch_glyph): Ditto.
10751 (x_produce_glyphs): Handle unibyte text like ASCII.
10752
10753 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10754 stack.
10755 (pop_it): Restore it.
10756 (face_before_or_after_it_pos): Handle the case that the string or
10757 buffer is unibyte.
10758 (get_overlay_strings): Set the multibyte flag of the iterator if
10759 the new overlay string is multibyte.
10760 (get_glyph_property): Likewise.
10761 (get_next_display_element): Don't check for charset changes in
10762 unibyte text.
10763 (append_space): Compute face differently for unibyte text.
10764 (extend_face_to_end_of_line): Don't return quickly if face has
10765 stipple.
10766
10767 * xfaces.c (load_face_font_or_fontset): Store registry and
10768 encoding of the font in the registry member of the face.
10769 (make_realized_face): Additional parameter `registry'.
10770 (free_realized_face): Free the registry of a realized face.
10771 (face_suitable_for_charset_p): Function form of the macro
10772 with the same name in uppercase.
10773 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10774 (choose_face_font): New parameter unibyte_registry.
10775 (choose_face_fontset_font): Ditto.
10776 (realize_default_face): Remember the registry and encoding of
10777 the specified frame font in Vx_unibyte_registry_and_encoding.
10778 (face_at_buffer_position): Handle unibyte.
10779 (face_at_string_position): Likewise.
427ec082 10780 (realize_face): New parameter unibyte_registry.
26901792
DL
10781 (compute_char_face): Handle the unibyte case.
10782
10783 * dispextern.h (struct glyph): Add bit multibyte_p.
10784 (struct face): New member registry holding the registry and
10785 encoding of the X font of the face.
10786 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10787 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10788 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10789 text.
10790 (struct iterator_stack_entry): Add multibyte_p.
10791
10792 * xdisp.c (string_pos): Use string_char_to_byte.
10793 (char_charset): Removed.
10794
107951998-08-03 Gerd Moellmann <gerd@gnu.org>
10796
10797 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10798 rectangle for a block cursor over an image without a mask.
10799 (x_stretch_block_cursor): Added. Non-zero means don't draw
10800 a block cursor over a stretch as wide as that stretch.
10801 (x_draw_stretch_glyph_string): Use it.
10802 (x_draw_hollow_cursor): Ditto.
10803
10804 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10805 (read_minibuf): Add front-sticky text property for prompt.
10806
10807 * xdisp.c (char_charset): Return charset of a character,
10808 depending on whether or not multi-byte characters are enabled.
10809
10810 * xfaces.c (Fset_face_charset_registry): Removed.
10811 (x_charset_registry): Determine registry from charset plist.
10812
108131998-08-02 Gerd Moellmann <gerd@gnu.org>
10814
10815 * xdisp.c (get_next_display_element): Don't check for charset
10816 changes if multi-byte characters are not enabled.
427ec082 10817
26901792 10818 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10819 redisplay interface.
26901792
DL
10820 * keyboard.c (detect_input_pending_run_timers): Likewise.
10821
10822 * dispextern.h (produce_*glyphs_hook): Removed.
10823 * term.c (produce_*glyphs): Ditto.
10824 (cursor_to): Remove pixel position parameters.
10825
10826 * dispnew.c: Remove hooks for window-based redisplay, introduce
10827 a redisplay interface structure.
10828
10829 * xterm.c (x_per_char_metric): Return default char metrics if per
10830 char metric exists but contains a zero width. Adobe Courier seems
10831 to contain such characters.
10832
10833 * xdisp.c (compute_line_metrics): Compute the width of rows
10834 without stopping at glyphs with zero width.
10835
108361998-08-01 Gerd Moellmann <gerd@gnu.org>
10837
10838 * xdisp.c (display_mode_line): If nothing was displayed at all,
10839 display a space.
10840 (hscroll_window_tree): Don't subtract 1 from target point if equal
10841 to ZV and window is not the selected window.
10842
10843 * dispnew.c (check_matrix_invariants): Remove check for window
10844 start at BEGV or after newline. This happens in rare cases
10845 intentionally.
10846
108471998-07-31 Gerd Moellmann <gerd@gnu.org>
10848
10849 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10850 (syms_of_xfaces): Add Vface_default_registry.
10851 (x_charset_registry): Use it.
10852
10853 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10854 (redisplay_window): Use it.
10855
10856 * dispnew.c (update_text_area): Handle lbearing of deleted text
10857 by backing up one character.
10858
108591998-07-30 Gerd Moellmann <gerd@gnu.org>
10860
427ec082 10861 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10862 decide to do nothing.
10863
10864 * xfaces.c (face_at_string_position): Additional parameter
10865 mode_line_p. If non-zero, merge with the mode line face
10866 instead of the default face.
10867 * dispextern.h (struct it): Add mode_line_p.
10868 * xdisp.c (init_iterator): Set it.
10869 (compute_face_in_string): Use it.
10870 (face_before_or_after_it_pos): Handle strings.
10871 (get_next_display_element): Don't look for relief end in C strings.
10872 (next_element_from_string): Deliver string position instead of
10873 buffer position.
10874
10875 * xterm.c (x_flush): Flush X output buffer.
10876 (XTflash): Use it.
10877
10878 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10879 Allow strings as face names.
10880
10881 * xfns.c (forall_images_in_image_cache): Check that frame is
10882 alive.
10883
10884 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10885 it's also called from x_destroy_window. Since this function is
10886 called from X, freeing stuff allocated with xmalloc is dangerous
10887 here, anyway.
10888
10889 * xfaces.c (free_realized_faces): Don't clear current matrices
10890 of a frame being destroyed.
10891
427ec082 10892 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10893 Fset_window_buffer.
10894
10895 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10896 with an additional argument specifying whether or not hooks may
10897 be called.
10898 (Fset_window_buffer): Call it.
10899
10900 * dispnew.c (clear_desired_matrices): Check that frame has
10901 a valid root window before clearing matrices in the window tree.
10902 (clear_current_matrices): Ditto.
10903 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10904 vchild are valid windows if not nil.
10905
10906 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10907 for :inverse-video.
10908 (Finternal_set_lisp_face_attribute): Ditto.
10909 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10910 (Finternal_get_lisp_face_attribute): Ditto.
10911 (Finternal_lisp_face_attribute_values): Ditto.
10912 (syms_of_xfaces): Define the symbol `:reverse-video'.
10913
10914 * xdisp.c (get_glyph_property): Renamed from
10915 fill_iterator_from_glyph_property.
10916 (next_element_from_buffer): Handle case that no `glyph' property
10917 was found correctly.
10918 (display_line): Extend face to end of line only if we have faces.
10919
109201998-07-29 Gerd Moellmann <gerd@gnu.org>
10921
10922 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10923 additional window argument.
10924
10925 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10926 set_iterator_to_previous_visible_line_start.
10927 (reseat_at_next_visible_line_start): Likewise.
10928 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10929 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10930 (compute_face_in_buffer): Renamed from
10931 compute_face_at_iterator_position.
10932 (compute_face_in_string): Renamed from
10933 compute_face_at_iterator_string_position.
10934 (get_space_width): Renamed from get_iterator_space_width.
10935 (next_overlay_string): Renamed from
10936 set_iterator_to_next_overlay_string.
10937 (get_overlay_strings): Renamed from
10938 get_overlay_strings_at_iterator_position.
10939 (restore_overlay_strings): Renamed from
10940 setup_overlay_strings_from_glyph_pos.
10941 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10942 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10943 (init_to_row_start): Renamed from init_iterator_to_row_start.
10944 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10945
10946 * xterm.c: Merge with 20.2.97.
10947 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10948
10949 * dispextern.h (struct glyph): Replace text_pos position with
10950 simple charpos.
10951
10952 * xdisp.c (this_line_start_pos): Use struct text_pos.
10953 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10954 (enum move_it_result): Renamed from move_iterator_result.
10955 (string_pos_nchars_ahead): Compute text_pos in a string from a
10956 known text_pos plus a character delta.
10957 (string_pos): Compute text_pos in string from charpos.
10958 (c_string_pos): Likewise for a C string.
10959 (number_of_chars): Return number of characters in a possibly
10960 multi-byte C string.
10961 (check_it): Renamed from check_iterator. Check that charpos and
10962 bytepos are in sync.
10963 (push_it): Renamed from save_iterator_settings.
10964 (pop_it): Renamed from restore_iterator_settings.
10965 (move_it_.*): Renamed from move_iterator_.*.
10966 (charset_at_position): Take charpos/bytepos into account.
10967 (back_to_previous_line_start): Set iterator to previous line start.
10968 (forward_to_next_line_start): Set iterator to next line start.
427ec082 10969 (back_to_previous_visible_line_start): Renamed from
26901792
DL
10970 move_iterator_previous_visible_line_start.
10971 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10972 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10973 Handle charpos/bytepos.
10974 (compute_face_at_iterator_position): Handle charpos/bytepos.
10975 (compute_face_at_iterator_string_position): Likewise.
10976 (get_iterator_space_width): Likewise.
10977 (load_overlay_strings): Likewise.
10978 (get_overlay_strings_at_iterator_position): Likewise.
10979 (reseat_iterator): Take a text_pos position argument.
10980 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10981 bytepos.
10982 (init_iterator): Take additional bytepos parameter.
10983 (reseat_iterator_to_string): Handle charpos/bytepos.
10984 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10985 (next_element_from_string): Handle charpos/bytepos.
10986 (next_element_from_c_string): Likewise.
10987 (fill_iterator_from_glyph_property): Likewise.
10988 (next_element_from_buffer): Likewise.
10989 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10990 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10991 (move_it_to): Likewise.
10992 (move_it_vertically_backward): Likewise.
10993 (move_it_vertically): Likewise.
10994 (move_it_by_lines): Likewise.
10995 (hscroll_window_tree): Likewise.
10996 (redisplay_internal): Likewise.
10997 (set_cursor_from_row): Likewise.
10998 (redisplay_window): Likewise.
10999 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
11000 (try_window_reusing_current_matrix): Handle charpos/bytepos.
11001 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
11002 (try_window_id): Handle charpos/bytepos.
11003 (Ftrace_redisplay_toggle): Return Qnil.
11004 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
11005 (insert_left_trunc_glyphs): Likewise.
11006
11007 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
11008 do a real merge).
11009 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
11010 (increment_glyph_row_buffer_positions): Ditto.
11011 (copy_glyph_row_contents): Ditto.
11012 (check_matrix_invariants): Add additional checks for charpos/
11013 bytepos consistency.
11014 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 11015 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
11016 `direction-reversed' in #if 0.
11017
11018 * xterm.h: Merge with 20.2.97.
427ec082 11019
26901792
DL
11020 * frame.h: Merge with 20.2.97.
11021
11022 * window.h: Merge with 20.2.97. Add window_end_bytepos.
11023
11024 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
11025 start.
11026 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11027 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11028 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11029 (struct it): Various members renamed from .*pos to .*charpos.
11030 (IT_CHARPOS): Access current buffer character position of an
11031 iterator.
11032 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11033 (IT_STRING_CHARPOS): Access current string character position of
11034 an iterator.
11035 (IT_STRING_BYTEPOS): Access current string byte position of
11036 an iterator.
11037 (globally): Add function prototypes from 20.2.97.
11038
11039 * everywhere: Use P_ instead of PROTO for function prototypes
11040 because everyone else seems to use P_.
11041
11042 * dispextern.h (struct text_pos): Structure describing a charpos/
11043 bytepos position in text.
11044 (BYTEPOS): Access the byte position part of a text_pos.
11045 (CHARPOS): Likewise for the character position.
11046 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11047 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11048 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11049 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11050 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11051 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11052 for buffer and string positions.
11053 (struct glyph): Use text_pos.
11054 (struct it): Renamed from display_iterator. Use text_pos.
11055
110561998-07-23 Gerd Moellmann <gerd@gnu.org>
11057
11058 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11059 pixmap.
11060
110611998-07-21 Gerd Moellmann <gerd@gnu.org>
11062
11063 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11064 * xterm.c (x_draw_row_bitmaps): Use it.
11065 * dispnew.c (row_equal_p): Ditto.
11066 (update_window_line): Ditto.
11067
11068 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11069 flag of images.
11070
11071 * dispextern.h (struct image): Removed member loading_failed_p.
11072 It's probably better to have the chance to try to load an image
11073 again.
11074
110751998-07-20 Gerd Moellmann <gerd@gnu.org>
11076
11077 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11078 at ZV if `indicate-zv-lines' is non-nil.
11079 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11080
11081 * dispnew.c (row_equal_p): Compare displays_text_p and
11082 ends_at_zv_p flags of rows.
11083 (update_window_line): Ditto.
11084
11085 * buffer.h (struct buffer): New member indicate_zv_lines.
11086
11087 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11088 (init_buffer_once): New variable `default-indicate-zv-lines'.
11089 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11090
11091 * xdisp.c (redisplay_window): Don't try moving the cursor
11092 if current glyph row w->last_cursor.vpos isn't enabled.
11093
11094 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11095
11096 * window.c (Fset_window_vscroll): Allow only negative scroll
11097 values. Others don't seem to make sense, and this way it's easy
11098 to restore a vscroll of zero.
11099
11100 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11101 allocated.
11102 (x_draw_image_glyph_string_background): Don't clip if pixmap
11103 could not be created.
11104
11105 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11106 be created.
11107 (xbm_load): Ditto.
11108 (gs_load): Ditto.
11109
11110 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11111 glyphs into account.
11112
11113 * xfaces.c (realize_default_face): Don't set font family of
11114 the default face from the fontset alias name for `fontset-startup'.
11115
11116 * xfns.c (gs_load): Pass frame's pixel foreground and background
11117 color to the Lisp loader.
11118
111191998-07-19 Gerd Moellmann <gerd@gnu.org>
11120
11121 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11122 libtiff34.
11123
11124 * configure.in (--with-tiff, HAVE_TIFF): Added.
11125
11126 * config.in (HAVE_TIFF): Added.
11127
11128 * Makefile.in (LIBTIFF): Added.
11129
11130 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11131
11132 * Makefile.in (LIBJPEG): Added.
11133
11134 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11135 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11136 jpeglib.h.
11137
427ec082 11138 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11139 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11140 configure must be run with `--x-includes=/usr/X11R6/include:
11141 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11142
111431998-07-18 Gerd Moellmann <gerd@gnu.org>
11144
11145 * config.in (HAVE_JPEG): Added.
11146
11147 * xfns.c (ct_init): Initialize color table used to map RGB colors
11148 from images to X pixel colors.
11149 (ct_free): Free color table.
11150 (ct_lookup): Look an RGB color up.
11151 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11152 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11153 image specification.
11154 (pbm_scan_number): Scan a decimal ASCII number from a file.
11155 (pbm_load): Load a PPM image.
11156
11157 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11158 necessary. Take canonical character units as parameter.
11159 (Fwindow_vscroll): Return canonical character units.
11160
11161 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11162 w->dy to display height for which glyph rows must be allocated.
11163
111641998-07-17 Gerd Moellmann <gerd@gnu.org>
11165
11166 * xfaces.c (face_at_string_position): Merge in region face
11167 so that it won't overwrite the font in the region.
11168 (face_at_buffer_position): Ditto.
11169 (realize_basic_faces): Don't realize region face.
11170
11171 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11172
11173 * xterm.c (x_set_glyph_string_background_width): Don't let
11174 cursor face extend to end of line.
11175
11176 * xdisp.c (append_space): If adding space of default face,
11177 make sure glyph ist produced with right face.
11178
11179 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11180 background color of a glyph string.
11181 (x_draw_glyph_string_background): Call it.
11182 (x_draw_glyph_string_bg_rect): Ditto.
11183 (x_draw_stretch_glyph_string): Ditto.
11184
111851998-07-15 Gerd Moellmann <gerd@gnu.org>
11186
11187 * xdisp.c (init_iterator): Initialize it->current_y to the
11188 window's vscroll w->dy.
11189
11190 * window.c (Fwindow_vscroll): Return number of pixels window
11191 is vscrolled smoothly.
11192 (Fset_window_vscroll): Set the number.
11193
11194 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11195 to_pos in truncated part of a line.
11196
111971998-07-14 Gerd Moellmann <gerd@gnu.org>
11198
11199 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11200 doesn't fit on the line, truncate it, despite truncate_lines nil.
11201 (display_line): Ditto.
11202
11203 * xfns.c: Experimental support for Ghostscript images.
11204
11205 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11206 (XTread_socket): React on events from Ghostscript.
11207 (expose_frame): If width or height are zero, redraw entire frame.
11208 (XTread_socket): Call expose_frame after receiving event from
11209 Ghostscript.
11210
11211 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11212 for Ghostscript support.
11213
11214 * xdisp.c (redisplay_internal): Return quickly if called
11215 recursively.
11216
11217 * alloc.c (NSTATICS): Increased to 1024.
11218
112191998-07-08 Gerd Moellmann <gerd@gnu.org>
11220
11221 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11222 iterator's glyph row.
11223 (x_produce_stretch_glyph): Call it.
11224 (x_produce_glyphs): Handle `space-width' property; call
11225 x_append_stretch_glyph.
11226
11227 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11228 property.
11229 (get_iterator_space_width): Determine value of `space-width'
11230 property at iterator's position.
11231 (reseat_iterator): Call it.
11232 (next_element_from_string): Ditto.
11233 (next_element_from_buffer): Ditto.
11234 (init_iterator): Initialize space_width of iterator.
11235 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11236 moved, but cursor blinks.
11237 (redisplay_internal): Set w->last_cursor_off_p after update.
11238
11239 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11240 (struct display_iterator): Add new member space_width.
11241
11242 * window.h (struct window): Add last_cursor_off_p.
11243
112441998-07-07 Gerd Moellmann <gerd@gnu.org>
11245
11246 * Saved.
11247
11248 * window.c (Fpos_visible_in_window_p): Case window not up to
11249 date---return nil if iterator hasn't reached position.
11250
112511998-07-06 Gerd Moellmann <gerd@gnu.org>
11252
11253 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11254 overlays have changed.
11255 (redisplay_window): Case cursor movement. Don't try it if
11256 last_cursor.vpos is out of range.
11257
11258 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11259 way, the display optimization for the line containing the cursor
11260 is used more frequently, esp. when we have a blinking cursor.
11261 (display_line): Don't set this_line_.* variables.
11262
11263 * xterm.c (x_redraw_cursor): Removed.
11264 (x_display_and_set_cursor): Set cursor type depending on
11265 cursor_off_p flag of window.
11266
11267 * dispnew.c (redraw_cursor_hook): Removed.
11268 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11269 member of the selected window.
11270
11271 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11272
11273 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11274 Return glyph area under x/y.
11275 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11276
11277 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11278 after redisplaying.
11279
112801998-07-05 Gerd Moellmann <gerd@gnu.org>
11281
11282 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11283 are all outside of a line of text.
11284 (redisplay_internal): Use it.
11285
112861998-06-30 Gerd Moellmann <gerd@gnu.org>
11287
11288 * xdisp.c (next_element_from_buffer): After skipping over
11289 invisible text, look for the `glyph' property.
11290 (set_iterator_stop_pos): Ignore check positions in front
11291 of an iterator's current position.
11292
11293 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11294 anymore or which are marked as not having valid contents.
11295
11296 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11297 realized faces if new attribute value is equal to old value.
11298
112991998-06-29 Gerd Moellmann <gerd@gnu.org>
11300
11301 * xfaces.c (Finternal_make_lisp_face): Increment
11302 lface_id_to_name_size when lface_id_to_name is reallocated.
11303
113041998-06-27 Gerd Moellmann <gerd@gnu.org>
11305
11306 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11307 as minimum of endpos and overlay_pos.
11308 (load_overlay_strings): Set next_overlay_pos of iterator to
11309 -1 if we don't have to check for more overlay strings.
11310
113111998-05-09 Gerd Moellmann <gerd@gnu.org>
11312
11313 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11314 do anything if iterator is at ZV because scan_buffer doesn't
11315 work otherwise.
11316
11317 * xterm.c (x_encode_char): Inline it.
11318 (x_get_char_font_and_encoding): Simplified.
11319 (x_per_char_metric): Inline it.
11320
11321 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11322
11323 * xdisp.c (get_next_display_element): Check for end of relief
11324 face moved here from next_element_from_buffer.
11325
11326 * xterm.c (x_produce_image_glyph): Add relief thickness.
11327 (x_produce_stretch_glyph): Ditto.
11328
113291998-05-08 Gerd Moellmann <gerd@gnu.org>
11330
11331 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11332 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11333
11334 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11335 from a glyph property.
11336 (x_produce_glyphs): Use it.
11337
11338 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11339
427ec082 11340 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11341 in text area.
11342 (x_produce_glyphs): Ditto.
11343
427ec082 11344 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11345 marginal areas.
11346
427ec082 11347 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11348 background of an image glyph string.
427ec082 11349 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11350 the background of a glyph string.
11351 (x_draw_image_glyph_string_foreground): Draw the foreground of
11352 an image glyph string.
11353 (x_inverted_image_mask): Return the inverted mask of an image.
11354
11355 * xfns.c (x_draw_image): Removed.
11356
11357 * dispextern.h (struct image_type): Remove drawing function.
11358
11359 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11360
11361 * xdisp.c (get_next_display_element): In marginal areas, translate
11362 newlines, tabs, etc. like normal control characters.
11363
11364 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11365 and color.
11366 (free_realized_faces): Set frame garbaged.
11367
11368 * xfaces.c (syms_of_xfaces): Add defsubr for
11369 internal-lisp-face-attribute-values.
11370
113711998-05-07 Gerd Moellmann <gerd@gnu.org>
11372
11373 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11374 full.
11375 (x_produce_image_glyph): Set IT->nglyphs to 1.
11376 (x_draw_image_glyph_string): Use inverted mask to draw background.
11377
11378 * dispextern.h (struct image_type): Additional clipping rect
11379 parameters for drawing functions.
11380
427ec082 11381 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11382 a glyph string.
11383 (x_draw_image_glyph_string): Use it and pass the rect to the
11384 image drawing function.
11385
11386 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11387 first character with `glyph' property as image position. Set
11388 iterator back to that position as long as the image hasn't been
11389 consumed with set_iterator_to_next.
11390 (set_cursor_from_row): Accept when glyph with given position is
11391 not found in the row. Set cursor x to end of line in that case,
11392 so that we can hscroll.
11393 (redisplay_internal): Correct computation of delta by which
11394 positions have changed in redisplay optimization for cursor
11395 row of selected window.
11396
11397 * xdisp.c (display_line): Remove start_pos.
427ec082 11398 (display_line): Fix bug preventing display optimization for
26901792
DL
11399 cursor line of selected window.
11400 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11401 instead.
11402
11403 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11404 (update_text_area): Take glyph pixel width into account
11405 when trying to find a resync point.
11406 (row_equal_p): Compare glyphs in all areas.
11407
114081998-05-06 Gerd Moellmann <gerd@gnu.org>
11409
11410 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11411
11412 * dispextern.h (struct glyph_row): Use unsigned hash value.
11413
11414 * xdisp.c (display_line): Simplified and made faster by setting
11415 the cursor with set_cursor_from_row.
11416 (set_cursor_from_row): Handle rows of desired matrix.
11417
114181998-05-05 Gerd Moellmann <gerd@gnu.org>
11419
11420 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11421 with type != CHAR_GLYPH.
11422 (fill_iterator_from_glyph_property): Return void. Set
11423 method to next_element_from_image.
11424 (next_element_from_image): Dummy function for delivering a
11425 single image id.
11426 (set_iterator_to_next): Add method next_element_from_image.
11427 (redisplay_window): When recentering, and cursor vpos is -1
11428 after display, assume middle of window is in first line displayed
11429 in window, and display again.
427ec082 11430 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11431 the position of the first character having the glyph property.
11432
11433 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11434 * xfns.c (x_draw_image): Use it.
11435 * xterm.c (x_produce_image_glyph): Use it.
11436
11437 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11438
11439 * Makefile.in: Extraneous #define of LIBXPM removed.
11440
11441 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11442 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11443 stretch glyph.
11444 (x_compute_glyph_string_overhangs): Compute overhangs only
11445 for text glyph strings.
11446 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11447 (x_draw_glyph_string): Call it.
11448
11449 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11450 (struct glyph): Add sub-structure for stretchable glyphs.
11451 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11452
11453 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11454 #ifdef HAVE_FACES.
11455
11456 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11457
11458 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11459 setup_iterator_from_glyph_property. Don't do it for terminal
11460 frames.
11461
11462 * xterm.c (x_produce_image_glyph): Produce glyph for image
11463 that can't be loaded.
11464
11465 * xfns.c (lookup_image): If image can't be loaded, set its
11466 width and height so that we can draw a rectangle.
11467 (x_draw_image): Draw a rectangle for images that don't have
11468 a pixmap.
11469 (make_image): Set hash value.
11470 (image_spec_equal_p): Use image_spec_value.
11471
11472 * xterm.c (expose_frame): Don't try to redraw if basic faces
11473 haven't benn realized yet.
427ec082 11474 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11475 is not as tall as row.
11476
114771998-05-04 Gerd Moellmann <gerd@gnu.org>
11478
11479 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11480 (LIBX)[HAVE_X11]: Add LIBXPM.
11481
11482 * xfns.c (xpm_image_p): Implementation of image type functions
11483 for XPM.
11484 (xpm_load): Ditto.
11485
11486 * dispextern.h (struct image): Add mask pixmap for XPM.
11487
11488 * xfns.c (x_draw_image): Handle images with masks.
11489
11490 * configure.in: --with-xpm added. Code detecting -lXpm added.
11491
11492 * config.in: Add HAVE_XPM.
11493
11494 * xfns.c (xbm_draw): Removed.
11495 (x_draw_image): Default implementation for drawing images.
11496 (xbm_keyword_index): Remove XBM_DEPTH.
11497 (xbm_format): Remove `:depth'.
11498 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11499 (xbm_load_image_from_file): Added for the same reason.
26901792 11500
427ec082 11501 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11502 glyph string.
11503 (x_draw_image_glyph_string): Pass ybase to image draw function.
11504
11505 * xfns.c (make_image): Set default baseline.
11506
11507 * xterm.c (x_produce_image_glyph): Compute ascent of image
11508 from its height and baseline percentage.
11509
11510 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11511 (xbm_format): Add description for `:baseline'.
11512 (xbm_image_spec_from_file): Add keywords from original spec to
11513 result.
11514 (xbm_load): Set baseline of image.
11515 (xbm_image_p): Check range for baseline.
11516
11517 * dispextern.h (struct image): Add member baseline.
11518
11519 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11520
11521 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11522
11523 * xdisp.c (get_next_display_element): Do character translations
11524 only if delivering characters.
11525
115261998-05-03 Gerd Moellmann <gerd@gnu.org>
11527
427ec082 11528 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11529 DISP_CHARACTER.
11530
11531 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11532 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11533
115341998-05-02 Gerd Moellmann <gerd@gnu.org>
11535
11536 * xfns.c (prepare_image_for_display): Set image timestamp.
11537 (clear_image_cache): Clear images if image's timestamp +
11538 Vimage_eviction_seconds is > now.
11539 (syms_of_xfns): New variables image-eviction-seconds, and
11540 image-types.
11541 (add_image_format): Add to image-types.
11542 (xbm_load): Support new image spec format.
11543 (x_alloc_image_color): Allocate a color for an image.
11544
11545 * dispextern.h (struct image): Add timestamp.
11546
11547 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11548 vectors of bool-vectors.
11549 (xbm_lisp_object_from_file): Build new format image spec.
11550
115511998-05-01 Gerd Moellmann <gerd@gnu.org>
11552
11553 * xfaces.c (init_frame_faces): Initialize image cache.
11554 (free_frame_faces): Free it.
11555
11556 * xterm.c (x_delete_display): Don't free image cache.
11557
11558 * emacs.c (main): Call init_xfns.
11559
115601998-04-30 Gerd Moellmann <gerd@gnu.org>
11561
11562 * alloc.c (mark_object): Mark objects in image cache.
11563
427ec082 11564 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11565 widget_store_internal_border_width.
11566
11567 * widget.c (widget_store_internal_border): Return void.
11568
11569 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11570 void.
11571 (init_x_parm_symbols): Return void.
11572 (x_report_frame_params): Ditto.
11573 (x_set_border_pixel): Ditto.
11574 (syms_of_xfns): Ditto.
11575 (x_destroy_all_bitmaps): Use xfree instead of free.
11576
11577 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11578
11579 * xterm.c (x_term_init): Initialize image_cache of display info.
11580 (x_delete_display): Free image cache.
11581
11582 * xterm.h (struct x_display_info): Add image_cache.
11583
11584 * xfns.c (make_image_cache): Allocate a new image cache.
11585 (free_image_cache): Free an image cache.
11586 (make_image): Allocate an image.
11587 (free_image): Free an image.
11588
11589 * dispextern.h (struct image): Structure describing an image.
11590 (struct image_cache): Structure describing an image cache.
11591
115921998-04-29 Gerd Moellmann <gerd@gnu.org>
11593
11594 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11595 non-zero if iterator is filled with something to return.
11596 (next_element_from_buffer): Immediately return if
11597 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11598 (next_element_from_string): Likewise.
11599
11600 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11601
11602 * dispextern.h (struct glyph): Add pixmap_id.
11603 (display_element_type): Add DISP_PIXMAP.
11604
11605 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11606 malloc/free.
11607
11608 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11609 (clear_face_cache): Call it.
11610
11611 * xterm.c (x_query_font): Don't look at empty font table slots.
11612 (x_compute_min_glyph_bounds): Likewise.
11613 (x_term_init): Initialize font_table to null.
11614 (x_load_font): Change allocation of font_info structures so
11615 that it is possible to free fonts.
11616
427ec082 11617 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11618 Only free fonts from filled font table entries.
11619
11620 * xfaces.c (best_matching_font): Support use of scalable fonts.
11621 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11622
11623 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11624 and resy.
11625 * xterm.c (x_term_init): Compute resx and resy.
11626
11627 * xfaces.c (split_font_name): Don't reject scalable fonts.
11628
427ec082 11629 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11630 in #if 0.
11631
11632 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11633 point size cannot be determined.
11634
11635 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11636 width over all fonts on a frame.
11637 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11638 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11639 macros.
11640
11641 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11642 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11643 (x_load_font): Use x_compute_min_char_bounds.
11644
11645 * xterm.h (struct x_display_info): New members smallest_char_width
11646 and smallest_font_height.
11647
116481998-04-28 Gerd Moellmann <gerd@gnu.org>
11649
11650 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11651 the same name if GC of face is zero.
11652
11653 * dispextern.h (struct face): Member non_ascii_gc removed.
11654
11655 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11656 for characters < 0177 in default face. Prepare face for
26901792
DL
11657 display before returning it.
11658 (x_produce_glyphs): Use it->charset.
11659 (x_get_char_font_and_encoding): Simplified.
11660 (x_encode_char): Remove parameter `font'.
11661
11662 * xfaces.c (choose_face_font): If registry from charset symbol
11663 doesn't contain a `-', make it a pattern by appending "*-*".
11664
11665 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11666 glyph_check_pos computation to character boundary.
11667
116681998-04-27 Gerd Moellmann <gerd@gnu.org>
11669
11670 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11671
11672 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11673 ASCII face for a given Lisp face id.
11674
11675 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11676 account.
427ec082 11677 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11678 new position is < original position.
11679 (check_iterator_glyph_property): Handle glyph property in strings.
11680 (next_element_from_string): Call above function.
11681 (next_element_from_display_vector): Handle faces in glyphs.
11682 (get_next_display_element): Set face_id of glyphs for
11683 control chars to zero.
11684
11685 * Makefile.in (term.o): Add dependency on dispextern.h.
11686
11687 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11688 (display_line): Handle marginal areas.
11689 (move_iterator_in_display_line_to): Likewise.
11690
11691 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11692
11693 * xfaces.c (face_at_buffer_position): Don't merge with nil
11694 text property.
11695 (face_at_string_position): Ditto.
11696
11697 * dispextern.h (struct display_iterator): Use a stack of saved
11698 values instead of saving check positions etc. individually.
11699
11700 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11701 maybe pop the iterator's stack.
11702 (save_iterator_settings): Push a value on iterator's stack.
11703 (get_overlay_strings_at_iterator_position): Use it.
11704 (restore_iterator_settings): Pop the stack.
11705 (set_iterator_to_next_overlay_string): Use it.
11706
11707 * xfaces.c (try_font_list): Use alternative font families.
11708
117091998-04-26 Gerd Moellmann <gerd@gnu.org>
11710
11711 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11712 font selection matches fonts.
11713 (Fface_font_sort_order): Return the font sort order.
11714 (best_matching_font): Find best matching font based on sort order.
11715 (cmp_font_names): Sort by given sort order.
11716
11717 * dispextern.h (struct display_iterator): New member faces_p.
11718 * xdisp.c (init_iterator): Initialize it->faces_p.
11719 (compute_face_at_iterator_string_position): Use it.
11720 (compute_face_at_iterator_position): Use it.
11721 (init_iterator): Use it.
11722 (display_mode_line): Ditto.
11723
11724 * xdisp.c (get_next_display_element): Put code choosing a face
11725 when the charset changes in #ifdef HAVE_FACES.
11726
427ec082 11727 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11728 lookup_face_for_charset.
11729
11730 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11731 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11732
117331998-04-25 Gerd Moellmann <gerd@gnu.org>
11734
11735 * xfaces.c (best_matching_font): Return the name of the best
11736 matching font in an array of font_name structures.
11737 (choose_face_font): Use it.
11738 (choose_face_fontset_font): Use it.
11739 (find_best_weight_font): If final font found has same weight as
11740 the font we started with, return the original font because it is a
11741 better match for the resolution of the display.
11742 (find_best_slant_font): Likewise.
11743 (merge_face_vector_with_property): Check more invalid attribute
11744 values.
11745 (lface_suitable_for_charset_p): Replaced by a macro with the same
11746 name in upper-case.
11747
117481998-04-24 Gerd Moellmann <gerd@gnu.org>
11749
11750 * dispextern.h (struct face): Member
11751 fontset_chosen_for_realization_p removed.
11752
11753 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11754 end of the collision list, so that we find more specific faces
11755 first.
11756 (lookup_face_for_charset): Look up a new face if face->fontset >=
11757 0, and charset != CHARSET_COMPOSITION.
11758
11759 * xfaces.c (split_font_name): Return zero if point size of font
11760 couldn't be computed.
11761 (realize_default_face): Use ASCII font of a fontset to determine
11762 font-related attributes of the default face.
11763 (face_fontset): Return fontset id for face family.
11764 (font_list): Additional parameter font_pattern. If non-nil,
11765 return fonts matching that pattern.
11766
117671998-04-23 Gerd Moellmann <gerd@gnu.org>
11768
11769 * xfaces.c (choose_face_fontset): If new fontset cannot be
11770 constructed, or fontset name cannot be split, return the id of the
11771 standard fontset.
11772
11773 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11774 When Emacs starts, it may be called for the initial frame which
11775 isn't an X frame.
11776
11777 * dispextern.h (struct face): New members foreground_defaulted_p,
11778 background_defaulted_p.
11779 (struct face): Members `mask' and `cache' removed.
11780
11781 * xfaces.c (load_color): Set them.
11782 (free_face_colors): Check them.
427ec082 11783 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11784 font unknown.
11785
11786 * xfaces.c (free_font): Removed.
11787 (load_face_font_or_fontset): Renamed from load_font.
11788 (load_face_font_or_fontset): Use message2 instead of signalling.
11789 (load_color): Likewise.
11790 (load_pixmap): Likewise.
11791
11792 * xterm.h (struct x_display_info): Add screen_dpi.
11793 * xterm.c (x_term_init): Initialize it.
11794 * xfaces.c (xlfd_point_size): Use it.
11795 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11796 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11797 similar to that of the frame appear first in the result.
11798
11799 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11800 is set for the face to cache, add it to the end of the collision
11801 list.
11802 (try_font_list): If fonts for given family and registry cannot
11803 be found, first try to keep the registry, and choose a different
11804 family.
11805 (choose_face_font): Allow nfonts == 0.
11806 (try_font_list): Give up if no font matches given registry.
11807
118081998-04-22 Gerd Moellmann <gerd@gnu.org>
11809
11810 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11811 font info id of the face.
11812
11813 * xfaces.c (load_font): Set font_info_id.
11814 (realize_face): Ditto.
11815
11816 * dispextern.h (struct face): Change member font_info to
11817 font_info_id.
11818
11819 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11820 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11821
11822 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11823 isn't ASCII, get the ASCII face before adding a space.
11824 (append_space): Likewise.
11825 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11826 to -1 so that it will compute the right face for the truncation
11827 glyphs.
11828
11829 * xfaces.c (realize_face): Set
11830 face->fontset_chosen_for_realization_p.
11831 (lookup_face_for_charset): If fontset wasn't specified originally
11832 and new charset != CHARSET_COMPOSITION, get a new face for that
11833 charset.
11834
11835 * dispextern.h (struct face): New member
11836 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11837 realize_face has chosen a fontset to display composite characters
11838 for a Lisp face not specifying a fontset.
11839
11840 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11841 face and line already filled here. Don't do anything if current
11842 face hasn't a relief or has a background equal to the frame
11843 background.
11844
11845 * xfaces.c (split_font_name): Additional parameter numeric_p.
11846 Don't compute numeric values if it is non-zero.
11847 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11848 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11849 font whose name cannot be split into fields.
11850
118511998-04-21 Gerd Moellmann <gerd@gnu.org>
11852
427ec082 11853 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11854 possibly using less restrictive patterns.
11855 (choose_face_font): Use it.
11856
11857 * xterm.c (x_get_char_font_and_encoding): For charset !=
11858 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11859
11860 * dispextern.h (struct face): New member font_info.
11861
11862 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11863 specifying a fontset as well as those not having a fontset.
11864 (free_font): Make it empty.
11865 (realize_face): Use changed load_font.
11866
11867 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11868 fit for charset, get the right one.
11869
11870 * xfaces.c (load_font): Take frame and name parameter, return
11871 font.
11872 (free_font): Likewise.
11873 (split_font_name): Compute numeric values for height, swidth etc.
11874 (cmp_font_names): Use them.
11875 (find_best_width_font): Ditto.
11876 (find_best_height_font): Ditto.
11877 (find_best_weight_font): Ditto.
11878 (find_best_slant_font): Ditto.
11879 (lface_hash): Add weight, slant, swidth and relief to hash value.
11880 (lface_equal_p): Make it faster.
11881 (lface_from_symbol): Use assq_no_quit.
11882 (Fnote_default_face_changed): Removed.
11883 (cmp_font_names): Use strcmp instead of xstricmp.
11884 (face_charset_registries): Removed.
11885
118861998-04-20 Gerd Moellmann <gerd@gnu.org>
11887
11888 * frame.h (CHECK_FRAME): Give this macro a statement form.
11889 (CHECK_LIVE_FRAME): Ditto.
11890
11891 * xfaces.c (find_best_width_font): Find the best matching font
11892 for a given width.
11893 (find_best_height_font): Likewise for height.
11894 (find_best_weight_font): Likewise for weight.
11895 (find_best_slant_font): Likewise for slant.
11896 (choose_face_font): Use them.
11897 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11898 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11899 global face attributes.
11900
11901 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11902 Lisp face attributes.
11903
119041998-04-19 Gerd Moellmann <gerd@gnu.org>
11905
11906 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11907 and :italic for compatibility.
11908 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11909 :bold and :italic. Handle boolean resource values for
26901792
DL
11910 :underline and :italic.
11911
11912 * xfns.c (display_x_get_resource): Make it externally visible.
11913
11914 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11915 If that frame is non-null, return the frame-local face.
11916 (Finternal_make_lisp_face): Additional frame argument.
11917 (lface_attributes): Get face attributes from global and frame-local
11918 definitions.
11919 (Finternal_lisp_face_equal_p): Additional frame argument.
11920 (merge_lisp_face_vector_with_property): Ditto.
11921 (Frealize_basic_faces): Removed.
11922 (Finternal_get_lisp_face_attribute): Additional frame argument.
11923 (Finternal_lisp_face_p): Ditto.
11924 (load_color) [MSDOS]: Removed because it isn't clear how
11925 to do this for MS-DOS.
11926
11927 * xfaces.c (lface_from_symbol): Get global face definition
11928 from face-global-alist.
11929
11930 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11931 as values for :underline and :inverse-video.
11932 (Finternal_set_lisp_face_attribute): Allow nil values.
11933
119341998-04-17 Gerd Moellmann <gerd@gnu.org>
11935
11936 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11937
11938 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11939 (Finternal_make_lisp_face): Add new face to Vall_faces.
11940
11941 * xdisp.c (echo_area_display): Remove code recomputing faces.
11942 (redisplay_internal): Ditto.
11943 (init_iterator): Do it here.
11944
11945 * xfaces.c (choose_face_font): Check that swidth doesn't change
11946 for subusequent attributes.
11947 (xlfd_point_size): Return int.
11948
11949 * xdisp.c (redisplay_internal, echo_area-display): If realized
11950 faces have been cleared, call recompute_basic_faces.
11951
11952 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11953 face_attributes_changed_p.
427ec082 11954 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
11955 all frames.
11956 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11957
11958 * xdisp.c (redisplay_internal): If face attributes have been
11959 changed since the last redisplay, recompute basic faces.
11960 (echo_area_display): Ditto.
11961
11962 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11963
11964 * xfaces.c (min_char_bounds): If face cache not yet present,
11965 don't try to get font dimensions from faces.
11966
11967 * xterm.c (x_frame_mode_line_height): If face cache not present
11968 set, return default height.
11969
11970 * alloc.c (mark_face_cache): Check for null faces. Correct
11971 index bug.
11972
11973 * dispextern.h (struct face): Renamed from struct rface. Member
11974 underline renamed underline_p. Make it a bit-field.
11975
11976 * xfaces.c (init_frame_faces): Allocate face cache.
11977 (free_frame_faces): Free face cache.
11978 (recompute_basic_faces): Realize basic faces only if face cache is
11979 allocated, i.e. after init_frame_faces has been called.
11980
11981 * frame.c (make_frame): Initialze face cache with null.
11982
11983 * xfaces.c (same_size_fonts): Removed.
11984
427ec082 11985 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
11986 s->gc != 0.
11987 (x_set_mouse_face_gc): Ditto.
11988 (x_set_mode_line_face_gc): Ditto.
11989
427ec082
SS
11990 * xfaces.c (realize_default_face): Return int. Value is
11991 zero if frame params don't contain enough information to
26901792
DL
11992 realize the default face.
11993 (realize_basic_faces): Ditto.
11994 (init_frame_faces): Realize basic faces.
11995
11996 * xfns.c (x_set_font): First store real font name in frame
11997 parameters, then call recompute_basic_faces.
11998
11999 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
12000
120011998-04-16 Gerd Moellmann <gerd@gnu.org>
12002
12003 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
12004
12005 * xfns.c (Fx_face_fixed_p): Removed.
12006 (Fx_list_fonts): Moved to xfaces.c.
12007
12008 * xfaces.c (compute_face_at_buffer_pos): Renamed to
12009 face_at_buffer_position. Parameter charset removed; always
12010 compute face for CHARSET_ASCII.
12011 (face_at_string_position): Renamed from
12012 compute_face_at_string_pos. Parameter charset removed; always
12013 compute for CHARSET_ASCII.
427ec082 12014 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
12015 face_cache.
12016 (lookup_face): Ditto.
12017 (compute_char_face): Renamed from compute_glyph_face.
12018
12019 * xdisp.c (init_iterator): Initialize charset member.
12020 (reseat_iterator_to_string): Ditto.
12021 (get_charset_at_buffer_position): Determine charset at
12022 buffer position in current_buffer.
12023 (reseat_iterator): Call above function.
12024 (compute_face_at_iterator_position): Call
12025 compute_face_at_buffer_pos.
12026 (compute_face_at_iterator_string_position): Call
12027 compute_face_at_string_pos.
12028 (get_face_from_id): Removed.
12029 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12030 Call get_charset_at_buffer_position.
12031 (reseat_iterator): Determine face if charset at pos differs
12032 from iterator's charset.
12033 (reseat_iterator_to_glyph_pos): Removed.
12034
12035 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12036 Determine charset from buffer position.
12037 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12038 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12039
12040 * dispextern.h (struct display_iterator): Add member charset.
12041
120421998-04-15 Gerd Moellmann <gerd@gnu.org>
12043
12044 * xfaces.c (compute_char_face): Removed.
12045
12046 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12047 with new parameter list.
12048
12049 * xfaces.c (region_face): Removed.
12050 (allocate_face): Removed.
12051 (copy_face): Ditto.
12052 (face_eql): Removed.
12053 (intern_face): Removed.
12054 (clear_face_cache): Removed.
12055 (load_font): Ditto.
12056 (unload_font): Ditto.
12057 (load_color): Ditto.
12058 (unload_color): Ditto.
12059 (new_computed_face): Ditto.
12060 (intern_computed_face): Ditto.
12061 (ensure_face_ready): Ditto.
12062 (merge_faces): Ditto.
12063 (compute_base_face): Ditto.
12064 (merge_face_list): Ditto.
12065 (Fmake_face_internal): Removed.
12066 (Fset_face_attribute_internal): Ditto.
12067 (face_name_id_number): Removed.
12068 (Fframe_face_alist): Ditto.
12069 (Fset_frame_face_alist): Ditto.
12070 (Finternal_next_face_id): Ditto.
12071
12072 * xterm.h (struct x_output): Remove computed_faces, and
12073 param_faces. Remove macros accessing them.
12074
12075 * xfaces.c: Entirely new face implementation added.
12076
120771998-04-11 Gerd Moellmann <gerd@gnu.org>
12078
12079 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12080 `charpos'.
12081
120821998-04-10 Gerd Moellmann <gerd@gnu.org>
12083
12084 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12085 scroll bar window to reduce flickering. Clear entire height.
12086
12087 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12088 current_x and hpos to zero after moving to previous line
12089 start.
12090
120911998-04-03 Gerd Moellmann <gerd@gnu.org>
12092
12093 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12094
12095 * xfaces.c (xlfd_point_size): Compute relative point size of
12096 fonts from font and frame resolution.
12097 (sort_fonts): New function to sort fonts, temporarily setting
12098 font_frame to the frame in effect.
12099 (xlfd_point_size): Take additional frame parameter to be able
12100 to get at the display's resolution.
12101
12102 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12103 BLACK_PIX_DEFAULT.
12104 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12105 screen of display.
12106
121071998-03-31 Gerd Moellmann <gerd@gnu.org>
12108
12109 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12110
12111 * fontset.h: Add external declarations for Vfontset_alias_alist
12112 and Vglobal_fontset_alist.
12113
12114 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12115 (realize_default_face): If frame parameters contain an artificial
12116 font name naming a fontset, set the family of the default face to
12117 the fontset name given by the registry.
12118
12119 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12120
121211998-03-22 Gerd Moellmann <gerd@gnu.org>
12122
12123 * alloc.c (mark_object): Add function prototype. Add cast to
12124 Lisp_Object pointer in call to mark_object for symbol names
12125 because this otherwise gives a warning from gcc 2.8.1.
12126 (mark_face_cache): Mark Lisp objects in realized faces.
12127
121281998-03-19 Gerd Moellmann <gerd@gnu.org>
12129
12130 * frame.h (struct frame): Add member face_cache.
12131
12132 * alloc.c (mark_object): Mark face cache.
12133 (mark_face_cache): Mark Lisp faces in face cache of frame.
12134
12135 * frame.c (make_frame): Initialize face_cache.
12136 (Fdelete_frame): Free it.
12137
121381998-03-18 Gerd Moellmann <gerd@gnu.org>
12139
12140 * xfaces.c: Very first skeleton of functions for face realization,
12141 face merging, face cache etc.
12142
12143 * dispextern.h (struct rface): Realized faces. Will replace
12144 struct face when tested.
12145 (struct face_cache): Realized face caches.
12146
12147 * xdisp.c (init_iterator): Initialize area member of display
12148 iterator.
12149
121501998-03-17 Gerd Moellmann <gerd@gnu.org>
12151
12152 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12153
12154 * dispextern.h (struct display_iterator): New member area.
12155
12156 * xterm.c (note_overwritten_text_cursor): Note when the text
12157 cursor of a window is overwritten.
12158
12159 * xdisp.c (set_cursor_from_row): If PT is not found in the
12160 row, display the cursor at the start of the row.
12161
12162 * dispnew.c (direct_output_forward_char): Call
12163 set_cursor_from_row.
12164
12165 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12166 position is not in an overlay string, set iterator's position and
12167 method explicitly so.
427ec082 12168 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12169 Make it externally visible.
12170 (redisplay_window): Call set_cursor_from_row so that there is only
12171 one place where the cursor position is calculated from a current
12172 row.
12173
12174 * dispextern.h (struct display_iterator): New member
12175 overlay_strings_at_end_processed_p.
12176
12177 * xdisp.c (check_iterator): Perform sanity checks on
12178 display_iterators.
12179 (next_element_from_buffer): Check for overlay strings at ZV.
12180
121811998-03-16 Gerd Moellmann <gerd@gnu.org>
12182
12183 * buffer.c (init_buffer_once): Add left_margin_width and
12184 right_margin_width to buffer_local_flags.
12185
12186 * dispnew.c (margin_glyphs_to_reserve): Function computing
12187 number of glyphs to reserve for a marginal area.
12188 (adjust_glyph_matrix): Call it.
12189 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12190 is not alive.
12191
12192 * window.c (Fset_window_margins): Allow floats.
12193
12194 * buffer.c (syms_of_buffer): Add buffer-local variables
12195 left-margin-width and right-margin-width. Add defaults
12196 default-left-margin-width and default-right-margin-width.
12197
12198 * buffer.h (struct buffer): New members left_margin_width
12199 and right_margin_width.
12200
12201 * window.c (Fset_window_margins): Make window the last and
12202 optional argument.
12203
12204 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12205 flag no_marginal_areas_p differently.
12206 (x_clear_end_of_line): Ditto.
12207 (x_draw_glyph_string_relief): Compute width of relief differently
12208 for rows with flag no_marginal_areas_p.
12209
12210 * dispnew.c (update_window_line): Update marginal areas only
12211 for rows that don't have no_marginal_areas_p set.
12212
12213 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12214 (display_menu_bar): Ditto.
12215
12216 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12217
12218 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12219 marginal areas in window-based redisplay.
12220
12221 * dispextern.h (struct glyph_matrix): New members
12222 left_margin_glyphs and right_margin_glyphs.
12223
122241998-03-15 Gerd Moellmann <gerd@gnu.org>
12225
12226 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12227
12228 * charset.c (non_ascii_char_to_string): Use char type parameters
12229 because the function is used that way from outside. Use unsigned
12230 char internally.
12231
12232 * window.c (change_window_height): Return void.
12233 (make_dummy_parent): Return void.
12234 (init_window_once): Return void.
12235 (syms_of_window): Ditto.
12236 (keys_of_window): Ditto.
12237 (delete_window): Correct return with and without value.
12238
12239 * buffer.c (record_buffer): Return void.
12240
12241 * marker.c (unchain_marker): Return void.
12242
12243 * window.c (unshow_buffer): Return void.
12244 (replace_window): Ditto.
12245 (delete_window): Ditto.
12246
12247 * term.c (delete_glyphs_hook): Void return type.
12248 (ring_bell_hook): Ditto.
12249 (set_terminal_window_hook): Ditto.
12250
12251 * sysdep.c (init_sigio): Return void.
12252
12253 * xterm.c (x_set_window_size): Return void.
12254 (x_calc_absolute_position): Ditto.
12255 (x_set_offset): Ditto.
12256 (x_focus_on_frame): Ditto.
12257 (x_unfocus_frame): Ditto.
12258 (x_make_frame_visible): Ditto.
12259 (x_make_frame_invisible): Ditto.
12260 (x_iconify_frame): Ditto.
12261 (x_destroy_window): Ditto.
12262 (x_wm_set_window_state): Ditto.
12263 (x_wm_set_icon_pixmap): Ditto.
12264 (x_wm_set_icon_position): Ditto.
12265 (x_initialize): Ditto.
12266 (x_error_quitter): Ditto.
12267 (x_destroy_window): Use xfree instead of free.
12268
12269 * keyboard.c (clear_waiting_for_input): Return void.
12270
12271 * xterm.c (x_wm_set_size_hint): Return void.
12272 (x_raise_frame): Ditto.
12273 (refreshicon): Ditto.
12274 (x_error_catcher): Ditto.
12275 (x_clear_errors): Ditto.
12276
12277 * keyboard.c (record_asynch_buffer_change): Return void.
12278
bb6677a8
GM
12279 The first line of the following paragraph was garbled for an
12280 unknown reason. It couldn't be fully reconstructed.
12281
12282 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12283 (x_lower_frame): Ditto.
12284 (x_scroll_bar_clear): Ditto.
12285 (XTflash): Add default case in switch for -Wall.
12286 (construct_mouse_click): Return Qnil.
12287 (cancel_mouse_face): Return void.
12288 (x_queue_event): Use xmalloc instead of malloc.
12289 (x_unqueue_events): Use xfree instead of free.
12290
12291 * ccl.c (ccl_driver): Return int.
12292
12293 * keyboard.c (stop_polling): Return void.
12294 (start_polling): Ditto.
12295
12296 * term.c (keys): Add braces in initializer list for -Wall.
12297
12298 * sysdep.c (tabs_safe_p): Return int.
12299 (init_baud_rate): Return void.
12300
12301 * xterm.c (x_draw_bitmap): Add default case.
12302 (x_setup_relief_colors): Use DefaultScreen instead of
12303 DefaultScreenOfDisplay.
12304 (x_delete_glyphs): Return void.
12305 (construct_menu_click): Put in #if 0 because it isn't called.
12306
12307 * xdisp.c (load_overlay_strings): Remove extraneous argument
12308 in call to qsort.
12309 (get_overlay_arrow_glyph_row): Add missing return value.
12310
12311 * window.c (set_window_height): Return void.
12312 (set_window_width): Ditto.
12313
12314 * sysdep.c (request_sigio): Return void.
12315 (unrequest_sigio): Ditto.
12316 (get_frame_size): Ditto.
12317
12318 * scroll.c (scroll_cost): Return int.
12319 (do_line_insertion_deletion_costs): Return void.
12320
12321 * frame.c (Fdelete_frame): Use xfree instead of free.
12322
12323 * fileio.c (report_file_error): Return void.
12324
12325 * dispnew.c: Make compilable with -Wall.
12326 * term.c: Ditto.
12327
12328 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12329
123301998-03-14 Gerd Moellmann <gerd@gnu.org>
12331
12332 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12333 increased.
12334 (x_setup_relief_color): Free color only for appropriate visual
12335 classes.
12336
12337 * xterm.c (expose_window): Fix calculation of intersection of mode
12338 line rectangle with exposed rectangle.
12339
12340 * xdisp.c (redisplay_window): Don't do cursor movement based
12341 on current matrix if w->last_point is not valid.
12342
123431998-03-09 Gerd Moellmann <gerd@gnu.org>
12344
12345 * xterm.c (expose_line): Redraw mode line and menu lines
12346 differently because they reach into the scroll bar area.
12347
12348 * xdisp.c (redisplay_window): If redisplaying with same window
12349 start, don't accept cursor on partially visible line.
12350
123511998-03-08 Gerd Moellmann <gerd@gnu.org>
12352
12353 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12354 for wider mode lines.
12355 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12356
12357 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12358 scroll bar width for mode lines.
12359
12360 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12361 vertical scroll bar width in width calculation so that we can
12362 display mode lines wider.
12363
12364 * xdisp.c (redisplay_window): Restore buffers before returning
12365 when fonts have changed.
12366
12367 * dispnew.c (update_window): Mark invisible rows in the current
12368 matrix invalid.
12369
12370 * xdisp.c (try_window_id): Force update of first row displayed
12371 at window end.
12372 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12373
123741998-03-05 Gerd Moellmann <gerd@gnu.org>
12375
12376 * dispextern.h (struct glyph_row): Member max_ascent renamed
12377 ascent. Member max_descent replaced by height.
12378 (struct display_iterator): Member max_descent replaced by height.
12379 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12380
12381 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12382 class makes it unnecessary or dangerous.
12383
12384 * xdisp.c (redisplay_window): Case only point has changed, and
12385 point has moved forward. Move forward over overlay strings.
12386 (display_line): Don't set cursor if first glyph from PT is part of
12387 a continuation line.
12388
123891998-02-21 Gerd Moellmann <gerd@gnu.org>
12390
12391 * xdisp.c (start_display): When computing continuation lines
12392 width, add current_x to the continuation lines width because
12393 move_iterator_to will stop in front of the buffer position moved
12394 to.
12395
123961998-02-20 Gerd Moellmann <gerd@gnu.org>
12397
12398 * xdisp.c (redisplay_window): Don't try try_window_id if
12399 windows_or_buffers_changed.
12400
12401 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12402 determine a color.
12403 (x_setup_relief_color): Allocate/ change one relief.
12404 (x_setup_relief_colors): Call above function.
12405
12406 * xterm.h (struct relief): New structure type holding relief info:
12407 GCs, colors, and whether colors are allocated.
12408
427ec082 12409 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12410 produces the same color, try adding a delta to RGB values.
12411 (x_setup_relief_colors): Free color cells.
12412
427ec082 12413 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12414 black_relief_pixel holding the foreground colors allocated for
12415 relief GCs. New members white_allocated_p, black_allocated_p.
12416
12417 * xterm.c (x_scroll_run): Don't set updated_window to null.
12418 This resets updated_window when called from scrolling_window.
12419
12420 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12421
26901792
DL
12422 * xterm.c (x_scroll_run): Additional window parameter. Set
12423 and reset updated_window.
12424
12425 * dispnew.c (line_dance_hook): Additional window parameter.
12426
12427 * xdisp.c (try_window_reusing_current_matrix): Don't call
12428 update_window_begin/end here. The end function would display the
12429 cursor on a wrong position and the additional functionality of
12430 update_window_begin is not needed anyway. Just set
12431 updated_window.
12432 (try_window_id): Ditto.
12433
12434 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12435 Don't redraw cursor during redisplay.
12436
12437 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12438
12439 * xdisp.c (redisplay_window): For window-based redisplay, alway
12440 try try_window_id.
12441
12442 * xterm.c (struct glyph_string): New member two_byte_p that is
12443 non-zero if 16-bit drawing functions must be used.
12444 (x_fill_composite_glyph_string): Set it.
12445 (x_fill_glyph_string): Set it.
12446 (x_draw_glyph_string_foreground): Use it.
12447 (x_draw_vertical_border): Make line 1 pixel less tall.
12448 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12449 side by 1 pixel if window is not right-most hasn't vertical scroll
12450 bars.
12451 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12452 out of bounds.
12453 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12454 hl == DRAW_CURSOR.
12455
12456 * xdisp.c (start_display): Check that window start is at line
12457 start if GLYPH_DEBUG != 0.
12458
12459 * window.c (window_scroll_pixel_based): Move assertion to
12460 start_display.
12461
124621998-02-19 Gerd Moellmann <gerd@gnu.org>
12463
427ec082 12464 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
12465 frame hasn't the focus.
12466
12467 * window.c (make_window): Initialize dy.
12468 (replace_window): Ditto.
12469
12470 * window.h (window): New member dy specifying the amount by which
12471 a window is scrolled "smoothly".
12472
12473 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 12474 y-position because it can be negative.
26901792
DL
12475 (x_draw_row_bitmaps): Don't clear with negative y-position like
12476 above.
12477 (x_clear_end_of_line): Same theme as above.
12478
12479 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
12480 exact match exists, the nearest existing color. Patterned after
12481 defined_color.
12482 (x_alloc_lighter_color): Allocate a color that is lighter or
12483 darker than a given color by a specified factor.
427ec082 12484 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
12485 the background color of a glyph string face.
12486 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
12487
12488 * xfns.c (x_make_gc): Don't allocate relief GCs.
12489 * widget.c (create_frame_gcs): Don't allocate relief GCs.
12490 (setup_frame_gcs): Don't change relief GCs.
12491
12492 * xterm.h (struct x_output): New member relief_background giving
12493 the background pixel color for which relief GCs can be used.
12494 Set by x_setup_relief_colors.
12495
12496 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
12497 for mode and menu lines.
12498
12499 * xdisp.c (set_next_iterator_stop_pos): No longer static.
12500
12501 * dispnew.c (direct_output_for_insert): Call
12502 set_next_iterator_stop_pos after having changed it2.endpos.
12503
125041998-02-17 Gerd Moellmann <gerd@gnu.org>
12505
12506 * dispnew.c (update_window): Work on selected_window, only.
12507
12508 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
12509 hpos is >= number of glyphs in the cursor row.
12510
12511 * xdisp.c (try_window_id): Bug fix; update_window_end was not
12512 called.
12513
125141998-02-16 Gerd Moellmann <gerd@gnu.org>
12515
12516 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
12517 and menu lines.
12518
12519 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
12520 enough glyphs to display a mode line or menu line which draws over
12521 flags areas.
12522
12523 * xterm.c (XTset_vertical_scroll_bar): Use
12524 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
12525 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 12526 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
12527 or menu.
12528 (x_set_glyph_string_clipping): Set clipping differently if drawing
12529 a mode line or menu line.
12530
12531 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
12532
12533 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
12534 menu lines.
12535 (x_scroll_bar_create): Don't clear flags areas.
12536 (x_draw_row_bitmaps): Clear visible row height, only.
12537
12538 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
12539
125401998-02-15 Gerd Moellmann <gerd@gnu.org>
12541
12542 * dispnew.c (direct_output_for_insert): When checking for tabs in
12543 the line, set it2.endpos to ZV.
427ec082 12544
26901792
DL
12545 * window.h (struct window): New member cursor_off_p.
12546 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
12547 for X.
12548 * dispnew.c (redraw_cursor_hook): If non-null, function that can
12549 be called to display or erase the cursor.
12550 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
12551 or selected_window.
12552
12553 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
12554
12555 * dispnew.c (update_window_line): Special handling of inverse
12556 lines in #if 0 removed.
12557
12558 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
12559 (x_insert_glyphs): Renamed from XTinsert_glyphs.
12560 (x_clear_frame): Renamed from XTclear_frame.
12561 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
12562 (x_ins_del_lines): Renamed from XTins_del_lines.
12563 (x_change_line_height): Renamed from XTchange_line_height.
12564 (x_delete_glyphs): Renamed from XTdelete_glyphs.
12565 (x_clear_cursor): Renamed from clear_cursor.
12566 (x_update_begin): Renamed from XTupdate_begin.
12567 (x_update_end): Renamed from XTupdate_end.
12568 (x_update_window_begin): Renamed from XTupdate_window_begin.
12569 (x_update_window_end): Renamed from XTupdate_window_end.
12570 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
12571 (x_produce_glyphs): Renamed from XTproduce_glyphs.
12572 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
12573 (x_produce_special_glyphs): Implementation in #if 0 removed.
12574
12575 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
12576 flag in the dump.
12577
12578 * dispnew.c (update_text_area): Handling of glyphs with pixel
12579 width zero removed. Decrement desired stop pos if desired row
12580 fills its line.
12581
12582 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
12583 width zero removed.
12584 (BUILD_GLYPH_STRINGS): Set glyph string flag
12585 extends_to_end_of_line_p based on row's flag fill_line_p and face
12586 background and stipple. Make sure it works for composite characters.
12587
12588 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
12589 fill_line_p. For window-based redisplay, add a space only if
12590 the row is empty so that we know the face to draw.
12591
12592 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
12593 means draw the face of the last glyph in the text area to the
12594 right end of the text area.
12595
12596 * xdisp.c (init_iterator): Show region in window mini-buffer
12597 window refers to.
12598
427ec082 12599 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
12600 region_showing_p removed. Test for region_beg > 0 instead.
12601
12602 * dispnew.c (update_text_area): Clear to end of line if cursor is
12603 beyond the end of the desired line. Necessary because we don't
12604 have a phys_cursor_glyph with which to erase the cursor. We don't
12605 have one because this method of drawing a cursor doesn't work with
12606 lbearing/rbearing.
12607
12608 * xterm.c (XTinsert_glyphs): Block input.
12609
126101998-02-14 Gerd Moellmann <gerd@gnu.org>
12611
12612 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
12613 glyph strings.
12614 (x_draw_glyph_string_background): Fill background with background
12615 pixel for the first glyph of a composite character.
12616
12617 * xdisp.c (try_window): Change return type to int. Value is zero
12618 if fonts were loaded during redisplay.
12619 (redisplay_window): Return if fonts have been loaded during
12620 redisplay.
12621 (append_space): New parameter default_face_p.
12622
126231998-02-13 Gerd Moellmann <gerd@gnu.org>
12624
12625 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
12626 don't let a partially visible line in a current matrix stay
12627 enabled.
12628
126291998-02-09 Gerd Moellmann <gerd@gnu.org>
12630
12631 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
12632 in #if PROMPT_IN_BUFFER.
12633
12634 * xdisp.c (display_line): If row ends in ZV, make the space
12635 that is added to place the cursor on it appear in default face.
12636
427ec082 12637 * xterm.c (expose_area): New function redrawing a single
26901792
DL
12638 glyph row area.
12639 (expose_line): Use it to redraw all areas of a row.
12640
12641 * dispextern.h (move_operation_enum): New enum
12642 move_operation_enum.
12643
12644 * window.c (window_scroll_pixel_based): Remove now unnecessary
12645 code that made sure that it->current_y doesn't become negative.
12646
12647 * xdisp.c (move_iterator_in_display_line_to): New parameter
12648 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
12649 (move_iterator_to): Ditto.
12650
12651 * dispextern.h (struct glyph_matrix): New member window_width.
12652
12653 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
12654 case of changing window height.
12655
12656 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 12657 border to the left.
26901792
DL
12658
12659 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
12660 says this aspect of Emacs is currently redesigned.
12661
12662 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
12663 have to draw a vertical border.
12664
12665 * window.c (window_scroll_pixel_based): When scrolling down by
12666 screen-fulls, make sure it.current_y doesn't get negative because
12667 this would confuse move_iterator_vertically.
12668
12669 * xdisp.c (move_iterator_vertically_backward): Bug fix for
12670 the case continuation lines are involved.
12671 (try_window_id): Don't set the cursor into scroll margins.
12672
126731998-02-08 Gerd Moellmann <gerd@gnu.org>
12674
12675 * xterm.c (x_append_glyph): Don't compute left_overhang and
12676 right_overhang.
12677 (XTproduce_glyphs): left_overhang and right_overhang removed.
12678 Set it->glyph_row->contains_overlapping_glyphs_p.
12679
12680 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
12681 and right_overhang removed.
12682
12683 * dispextern.h (struct glyph_row): New member
12684 contains_overlapping_glyphs_p used to optimize glyph drawing.
12685 (struct display_iterator): left_overhang and right_overhang
12686 removed.
12687 (struct glyph): Ditto.
12688
12689 * xterm.c (x_draw_relief): Removed.
12690 (x_draw_bitmap): Renamed from draw_bitmap.
12691 (x_draw_glyphs): Completely new implementation of draw_glyphs
12692 capable of handling arbitrary lbearing and rbearing values.
12693 Several sub-functions not mentioned here.
12694
126951998-01-30 Gerd Moellmann <gerd@gnu.org>
12696
12697 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 12698 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
12699 other cases.
12700 (draw_glyphs): Move start to the left and end to the right if they
427ec082 12701 overlap with previous or following characters.
26901792 12702 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 12703 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
12704 character under the cursor would be invisible.
12705 (x_draw_bar_cursor): Don't draw over previous character if it
12706 has right_overhang.
12707
12708 * window.c (get_phys_cursor_glyph): Return the glyph under a
12709 window's physical cursor.
427ec082 12710
26901792
DL
12711 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
12712 (x_draw_bar_cursor): Ditto.
12713 (x_erase_phys_cursor): Ditto.
12714 (x_phys_cursor_in_rect_p): Ditto.
12715 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
12716
12717 * window.c (make_window): Remove reference to phys_cursor_glyph.
12718 (replace_window): Ditto.
12719
12720 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 12721 now always a glyph present for placing the cursor on it in
26901792
DL
12722 each glyph row, even at the end of a line.
12723
12724 * xdisp.c (append_space): Function to add a space to an iterators
12725 glyph row.
12726 (display_line): Add spaces at the end of lines that are used to
12727 place the cursor on them.
12728 (compute_line_metrics): If row consists of a space only that was
427ec082 12729 added to place the cursor on it, use that space's height as the
26901792
DL
12730 line height.
12731
127321998-01-29 Gerd Moellmann <gerd@gnu.org>
12733
12734 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
12735 glyphs.
12736
127371998-01-28 Gerd Moellmann <gerd@gnu.org>
12738
12739 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
12740 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
12741
12742 * dispextern.h (struct glyph): Add left_overhang and
427ec082 12743 right_overhang.
26901792
DL
12744 (struct display_iterator): Ditto.
12745
12746 * dispnew.c (direct_output_for_insert): Give up if newly inserted
12747 glyphs have different ascent or descent than original row.
12748
12749 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
12750 row->max_descent only if unknown.
12751 (display_line): Compute row->max_ascent and row->max_descent.
12752 (display_string): Ditto.
12753
12754 * window.h (struct window): New members phys_cursor_ascent and
427ec082 12755 phys_cursor_descent.
26901792
DL
12756
12757 * xterm.c (x_phys_cursor_in_rect_p): Use them.
12758 (x_draw_hollow_cursor): Ditto.
12759 (x_erase_phys_cursor): Ditto.
12760 (x_display_and_set_cursor): Set them.
12761 (x_append_glyph): Don't set glyph members that were removed.
12762
12763 * dispextern.h (struct glyph): Members ascent, descent,
12764 contributes_to_line_height_p removed.
12765
127661998-01-25 Gerd Moellmann <gerd@gnu.org>
12767
12768 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
12769 names for face ids of frame default face and mode line face.
12770
12771 * xdisp.c (compute_face_at_iterator_string_position): If
12772 displaying a mode line use MODE_LINE_FACE_ID instead of
12773 DEFAULT_FACE_ID.
12774
12775 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
12776 (display_string): Ditto, additional parameter lisp_string.
12777 (display_line): Call display_string with Lisp mini-buffer prompt
12778 string.
12779 (display_menu_bar): Call display_string with Lisp string.
12780 (display_mode_element): Ditto.
12781 (next_element_from_string): Make it work for non-overlay Lisp
12782 strings with field width and precision.
12783
12784 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
12785 PROMPT_IN_BUFFER.
12786
12787 * xfaces.c (compute_string_char_face): Fix face computation
12788 for overlay strings.
12789
12790 * xdisp.c (struct overlay_entry): Add member after_string_p.
12791 (load_overlay_strings): Simplify.
12792
12793 * window.c (delete_window): Defer glyph matrix adjustment.
12794 (Fsplit_window): Ditto.
12795 (change_window_height): Ditto.
12796 (Fset_window_configuration): Ditto.
12797 (Fset_window_margins): Ditto.
12798 * frame.c (set_menu_bar_lines): Ditto.
12799 (Fmake_terminal_frame): Ditto.
12800 * dispnew.c (change_frame_size_1): Ditto.
12801
128021998-01-24 Gerd Moellmann <gerd@gnu.org>
12803
12804 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
12805
427ec082 12806 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
12807 position has overlay strings.
12808
12809 * xdisp.c (display_line): Don't set cursor if row ends in middle
12810 of overlay string.
12811 (Fdump_redisplay_state): Print complete row start and end
12812 position.
12813 (redisplay_window): Cursor movement when matrix hasn't changed---
12814 if PT < last_point, maybe move forward if row ends at PT and
12815 in middle of char.
12816
12817 * minibuf.c (read_minibuf): Save the value of
12818 minibuffer_prompt_length in minibuf_save_list.
12819 (read_minibuf_unwind): Restore minibuffer_prompt_length.
12820
12821 * xdisp.c (redisplay_window): Add assertion for cursor movement
12822 case, PT < last_point.
12823 (move_iterator_in_display_line_to): If to_pos specified, move
12824 over before-strings.
12825
12826 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
12827 start.string_index > 0.
12828
12829 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
12830 is set. Retry redisplay if fonts_changed_p is set before update.
12831
12832 * xterm.c (x_load_font): Set fonts_changed_p.
12833
12834 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
12835
12836 * dispnew.c (adjust_glyphs_for_font_change): Removed.
12837
12838 * xdisp.c (try_window): Check fonts_changed_p.
12839 (try_window_reusing_current_matrix): Ditto.
12840 (try_window_id): Ditto.
12841
12842 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
12843 (fonts_changed_p): Flag indicating a font change since the last
12844 glyph matrix adjustment.
12845
12846 * xterm.c (x_per_char_metric): Use font->max_bounds as
12847 char metric of the font's default char if the default char
12848 hasn't per char metric itself.
12849
12850 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
12851 for font change.
12852 (min_char_bounds): Check face->font != NULL.
427ec082 12853 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
12854 case of invalid min_bounds contents.
12855 (min_char_bounds): Call font_min_bounds.
12856
128571998-01-22 Gerd Moellmann <gerd@gnu.org>
12858
12859 * xdisp.c (start_display): Don't set it->prompt_width if
12860 PROMPT_IN_BUFFER.
12861 (move_iterator_in_display_line_to): Ditto.
12862 (display_line): Don't display prompt via display_string if
12863 PROMPT_IN_BUFFER.
12864
12865 * minibuf.c (Fminibuffer_prompt_width): Return value from
12866 current_buffer if PROMPT_IN_BUFFER.
427ec082 12867 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
12868 mini-buffer and make it read-only.
12869 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
12870 minibuffer_prompt_length instead of BEGV.
12871 (Fminibuffer_complete_word): Ditto.
12872 (Fminibuffer_complete_word): Ditto.
12873
12874 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
12875 is less than mini-buffer prompt width, use prompt width as start.
12876
12877 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
12878 position is less than mini-buffer prompt width, use the prompt
12879 width as start.
12880
12881 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
12882 end of prompt if applied to a mini-buffer and BEG reached.
12883
128841998-01-21 Gerd Moellmann <gerd@gnu.org>
12885
12886 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
12887 length to start position.
12888
12889 * buffer.c (Fget_buffer_create): Initialize
12890 minibuffer_prompt_length.
12891 (Fmake_indirect_buffer): Ditto.
12892 (Fkill_buffer): Ditto.
12893
12894 * buffer.h (struct buffer): Add member minibuffer_prompt_length
12895 if PROMPT_IN_BUFFER.
12896
128971998-01-19 Gerd Moellmann <gerd@gnu.org>
12898
12899 * xdisp.c (next_element_from_string): Make it work for arbitrary
12900 Lisp strings.
12901 (set_iterator_to_next): Advance to next overlay string only
12902 if it->string is an overlay string.
12903
12904 * dispextern.h (struct display_iterator):
12905 next_ovstr_face_check_pos renamed next_string_face_check_pos.
12906
427ec082 12907 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
12908 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
12909
12910 * xdisp.c (next_element_from_string): Renamed from
12911 next_element_from_overlay_string.
427ec082 12912 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
12913 compute_face_at_iterator_overlay_string_position.
12914
12915 * dispextern.h (struct display_iterator): Member overlay_string
12916 renamed string.
12917
12918 * xdisp.c (next_element_from_c_string): Renamed from
12919 next_element_from_string.
12920
12921 * dispextern.h (struct glyph_pos): Reversed meaning of
12922 overlay_string_index and string_index.
12923
12924 * xdisp.c (next_element_from_overlay_string): Fix bug that made
12925 this function always return the first character of an overlay
12926 string.
12927
129281998-01-18 Gerd Moellmann <gerd@gnu.org>
12929
12930 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
12931 forced or new pos > next_invisible_check_pos.
12932 (redisplay_window): Don't try same window start if PT < window
12933 start.
12934 (move_iterator_vertically): Bug fix satisfying post-condition
12935 when ZV is reached and no newline in front.
12936 (move_iterator_vertically_backward): New implementation.
12937 (move_iterator_vertically_backward): Bug fixes.
12938
12939 * xterm.c (XTmouse_position): Change call to min_char_bounds.
12940 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
12941 (adjust_glyphs_for_font_change): Always adjust.
12942
12943 * dispnew.c (struct dim): Use int.
12944
12945 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
12946 (allocate_face): Initialize it.
12947 (load_font): Use XLoadQueryFont again instead of x_load_font.
12948 (unload_font): Use XFreeFont again.
12949 (min_char_bounds): Iterate over fonts of faces. Use frame's
12950 font sizes as default. Remove parameter except_last_font_p.
12951
12952 * dispextern.h (struct face): Add font_name.
12953
129541998-01-17 Gerd Moellmann <gerd@gnu.org>
12955
12956 * xdisp.c (move_iterator_vertically): Check post-condition. Move
12957 to start of line if ending at ZV and no newline in front.
12958 (move_iterator_to): If to_y specified, always first move to x = 0,
12959 so that move stops at line start instead of line end. This is
12960 probably what callers would expect to happen.
12961
12962 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
12963 can handle different line heights.
12964 (window_scroll_line_based): Formerly window_scroll.
12965 (window_scroll): Call both.
12966
12967 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
12968 (move_iterator_in_display_line_to): Ditto.
12969 (display_line): Ditto.
12970
12971 * minibuf.c (read_minibuf): Conditionally insert prompt into
12972 buffer instead of handling prompts specially. Change other
12973 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
12974
12975 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
12976 upper window. Optimize calls to xrealloc if same width.
12977
12978 * xdisp.c (redisplay_window): Don't use
12979 try_window_reusing_current_matrix if window scroll functions
12980 exist.
12981
12982 * dispextern.h (struct display_iterator): Member
12983 redisplay_end_trigger_p removed.
12984
12985 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
12986 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
12987
129881998-01-16 Gerd Moellmann <gerd@gnu.org>
12989
12990 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
12991 nil. Optimize truncate-lines t and moving backward.
12992 (move_iterator_to_previous_visible_line_start): Contains the heart
12993 of the previous set_iterator_to_previous_visible_line_end. Don't
12994 reseat the iterator. Used by move_iterator_by_lines.
12995 (set_iterator_to_previous_visible_line_start): Call function
12996 above.
12997 (move_iterator_in_display_line_to): Check TO_POS before doing
12998 anything else. Otherwise to_pos == PT would move to x of PT+1.
12999
13000 * indent.c (Fvertical_motion): Use display_iterator.
13001
13002 * xdisp.c (move_iterator_by_lines): New function moving by screen
13003 lines.
13004 (redisplay_window): Use it.
13005 (move_iterator_to): Correct branch of to_vpos specified.
13006 (move_iterator_vertically_backward): Increment nlines after having
13007 backed up over some lines because the last line was not backed up
13008 over.
13009 (move_iterator_via_matrix): Look for it->pos in the matrix, and
13010 calculate it->vpos and it->current_y relative to this row.
427ec082 13011 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
13012 have a big effect and it is complex.
13013 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
13014
130151998-01-15 Gerd Moellmann <gerd@gnu.org>
13016
13017 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
13018 join nicely. Lines with widths > 2 don't join nicely under X.
13019 * xterm.h (struct x_output): Remove member relief_gc_line_width.
13020 * widget.c (setup_frame_gcs): Initialize relief GC's to line
13021 width 1; remove references to relief_gc_line_width.
13022 * xfns.c (x_make_gc): Ditto.
13023
13024 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
13025 if relief changes.
13026 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13027 to get a relief because they can be negative.
13028
13029 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13030 positions are for the middle of lines under X.
13031
13032 * xdisp.c (try_window_id): Always search for the cursor by setting
13033 w->cursor.vpos = -1. Search in unchanged rows at the top and
13034 bottom if cursor not found in displayed lines.
427ec082 13035 (display_mode_line): First extend face, then set right shadow
26901792
DL
13036 flag. Otherwise the wrong glyph gets the right shadow.
13037
13038 * dispnew.c (direct_output_for_insert): Give up if line contains
13039 a tab. The number of spaces inserted for a tab changes if we
13040 insert glyphs in front of it.
13041
13042 * xterm.c (x_list_fonts): Changes undone because the Lisp
13043 implementation for make-face-smaller, make-face-larger, and
13044 make-face-fixed can do without them.
13045
13046 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13047 inserted.
13048
13049 * xdisp.c (try_window_id): First compute beg_unchanged, then
13050 compare with window start pos.
13051
13052 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13053 fixed-width font.
13054 (syms_of_xfns): defsubr for x-face-fixed-p.
13055
13056 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13057 enabled, don't do anything because this row will be newly drawn
13058 anyway and because we can additionally no longer determine the row
13059 height.
13060
13061 * xdisp.c (display_line): Bug fix cursor positioning.
13062
13063 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13064 removed. x-list-fonts.c is now obsolete.
13065 (Qfixed, Qvariable): Moved here from xfaces.c.
13066
130671998-01-14 Gerd Moellmann <gerd@gnu.org>
13068
13069 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13070 FETCH_BYTE for truncated lines.
13071 (display_line): Set cursor differently.
13072 (display_line): Fixed bug setting last_pos_on_this_line wrong
13073 for truncated lines.
13074
13075 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13076 redisplay.
13077
13078 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13079
13080 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13081 assertion that character dimensions are not zero.
13082
13083 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13084 input is blocked.
13085
13086 * xdisp.c (decode_mode_spec): Faster implementation of line number
13087 display.
13088
13089 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13090 bitmaps if bitmaps don't fill the entire area.
13091 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13092
427ec082 13093 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13094 pixel height of flags bitmaps.
13095
13096 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13097 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13098
13099 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13100 in pixels of a flags area of a frame.
13101 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13102 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13103 occupied by a flags area.
13104
131051998-01-13 Gerd Moellmann <gerd@gnu.org>
13106
13107 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13108 window_end_valid.
13109
13110 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13111 GLYPH_DEBUG != 0.
13112
13113 * xdisp.c (display_line): Correct wrong calculation of row->x for
13114 the case of nglyphs == 1.
13115 (hscroll_window_tree): Renamed from hscroll_windows.
13116 (hscroll_windows): New function calling hscroll_window_tree that
13117 clears desired matrices on a frame when hscroll has been changed.
13118 (redisplay_p): Global flag set during redisplay.
13119 (redisplay_internal): Set and clear redisplay_p.
13120
13121 * xfaces.c (min_char_bounds): Add assertion that width and height
13122 are not zero at the end. Initialize *height and *width to -1,
13123 instead of using BITS_PER_SHORT. If font has min_bounds.width
13124 zero, use its max_bounds.width.
13125
13126 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13127 width and height.
13128
131291998-01-12 Gerd Moellmann <gerd@acm.org>
13130
13131 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13132 changed. Don't clear desired matrices.
13133
13134 * xdisp.c (hscroll_windows): Compute pt after setting
13135 current_buffer.
13136 (redisplay_window): Don't do cursor movement based on current
13137 matrix if just_this_one_p is zero.
13138
13139 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13140 specifying that fixed-width, variable-width fonts or both
26901792
DL
13141 should be returned.
13142
13143 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13144 (syms_of_xfaces): Initialize them.
13145
13146 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13147 cached information.
13148
131491998-01-11 Gerd Moellmann <gerd@acm.org>
13150
13151 * xdisp.c (display_mode_line): Extend face to end of line.
13152
13153 * xdisp.c (echo_area_display): Don't call display_string with
13154 echo_area_glyphs_length == 0 which would mean infinite precision.
13155 (redisplay_internal): Adjust window_end_vpos if necessary.
13156
131571998-01-07 Gerd Moellmann <gerd@acm.org>
13158
13159 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13160
131611998-01-05 Gerd Moellmann <gerd@acm.org>
13162
13163 * xdisp.c (get_row_start_continuation_line_width): Removed.
13164 (init_iterator_to_row_start): Set it.current_x from row.
13165 (try_window_id): Set it.continuation_lines_width directly from
13166 row.
13167
13168 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13169 selected_window.
13170 (hscroll_windows): Center cursor in window.
13171 (hscroll_windows): Call move_iterator_in_display_line_to.
13172
131731998-01-04 Gerd Moellmann <gerd@acm.org>
13174
13175 * xdisp.c (hscroll_windows): Check hscroll < 0.
13176 (redisplay_window): Allow quick cursor movement if overlay arrow
13177 but frame uses window-based redisplay.
13178 (display_line): Take special case for nglyphs == 1 out of #if 0.
13179 (display_line): Set row->ends_at_zv_p after the loop displaying
13180 glyphs because ZV can be in truncated text.
13181 (hscroll_windows): Use init_iterator_to_row_start.
13182
13183 * dispnew.c (scrolling_window): Calculation of overlapping
13184 runs fixed.
13185 (row_equal_p): Compare continued_p and continuation_line_p.
13186
131871998-01-02 Gerd Moellmann <gerd@acm.org>
13188
13189 * xterm.c (x_get_mode_line_face_gc): Renamed from
13190 x_get_modeline_face_gc.
13191
13192 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13193 buffer position to look for text properties.
13194 (get_face_from_cursor_pos): Use it.
13195 (compute_face_at_iterator_position): Use it.
13196 (next_element_from_buffer): Use it.
13197
13198 * dispnew.c (scrolling_window): Decrement run's y-position
13199 when extending it backwards.
13200
13201 * xterm.c (do_line_dance): Don't ever copy more than window height.
13202
132031998-01-01 Gerd Moellmann <gerd@acm.org>
13204
13205 * xdisp.c (redisplay_window): Cursor motion in unchanged
13206 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13207 (init_iterator_to_next_row_start): Special handling of lines
13208 ending in middle of char removed.
13209 (hscroll_windows): Hscroll windows only if window_end_valid is not
13210 nil.
13211 (try_window_reusing_current_matrix): Call hscroll_windows.
13212 (init_iterator_to_row_start): Initialize iterator for display
13213 starting at a position given by a glyph_row->start.
13214 (redisplay_window): Don't use vmotion because it gives wrong
13215 results if lines are continued and variable width fonts are used.
13216
427ec082 13217 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13218 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13219 the middle of a character.
427ec082 13220 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13221 the middle of a character.
13222
13223 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13224 it.
13225 (next_element_from_display_vector): Use it->dpvec_index.
13226 (reseat_iterator): Reset it.
13227 (init_iterator): Reset it.
13228 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13229 it->pos.dpvec_index from a glyph_pos structure.
13230 (init_iterator_from_glyph_pos): Call the function above.
13231 (reseat_iterator_to_glyph_pos): Ditto.
13232
13233 * dispnew.c (direct_output_forward_char): Don't use this method at
13234 overlay boundaries or near invisible text.
13235 (direct_output_forward_char): Step through glyph row to find
13236 cursor position.
13237
427ec082 13238 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13239 frame font if line height differs from font height.
13240
13241 * xdisp.c (set_iterator_to_next): Renamed from
13242 move_iterator_forward to avoid confusion with other move_.*
13243 functions.
13244
13245 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13246
132471997-12-31 Gerd Moellmann <gerd@acm.org>
13248
13249 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13250 same naming convention as for other GC functions.
13251 (draw_glyphs): Don't fill background when drawing a cursor and
13252 font height is less than line height.
13253
132541997-12-30 Gerd Moellmann <gerd@acm.org>
13255
13256 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13257 init_iterator_.*.
13258
13259 * xdisp.c (move_iterator_forward): Restore it->len from
13260 it->dpvec_char_len if dpend reached.
13261 (get_next_display_element): Don't consume translated char
13262 prematurely.
13263 (display_line): Don't set this_.* variables if row is continued.
13264 (start_display): Move to start of continuation line if ending
13265 up at end of continued line.
13266
13267 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13268
13269 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13270 checking TO_X and continuation lines.
13271 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13272 of a continued line, don't consider this line as unchanged because
13273 it may no longer be continued.
13274
132751997-12-29 Gerd Moellmann <gerd@acm.org>
13276
13277 * xdisp.c (try_window_id): Catch the case that moving over
13278 continuation lines moves first_unchanged_at_end_row to a row not
13279 displaying text.
13280
13281 * dispextern.h (struct glyph_row): New member
13282 continuation_lines_width. Member continuation_line_p removed.
427ec082 13283 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13284 continuation line.
13285 * xdisp.c (display_line): Set row->continuation_lines_width.
13286 (get_row_start_continuation_line_width): Set continuation lines
13287 width of iterator from continuation lines width of glyph row.
13288 (get_row_start_continuation_line_width): Make it inline.
13289 (set_window_cursor): Make it inline.
13290 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13291 (Fdump_redisplay_state): Ditto.
427ec082 13292
26901792
DL
13293 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13294 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13295
13296 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13297 after determining the continuation lines width for
13298 last_unchanged_at_beg_row.
13299
13300 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13301
13302 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13303 which support faces.
13304 (init_display_iterator): Ditto.
13305 (move_iterator_via_matrix): Skip over truncation glyph at the row
13306 start on terminal frames.
13307 (hscroll_windows): Choose hscroll margin differently for window
13308 system and terminal frames.
13309
133101997-12-28 Gerd Moellmann <gerd@acm.org>
13311
13312 * xdisp.c (hscroll_windows): Change hscroll of windows.
13313 (redisplay_internal): Call it.
13314
427ec082 13315 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13316 doesn't fit completely on the line.
13317 (direct_output_forward_char): Give up for non-ASCII chars.
13318 (direct_output_forward_char): Set redisplay_performed_directly_p.
13319
13320 * dispextern.h (struct display_iterator): Make first_visible_x
13321 and last_visible_x ints; this is for very long truncated lines.
13322
13323 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13324 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13325 positioning problems with the mouse.
13326 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13327 >= it->last_visible_x instead of >.
13328 (display_line): Ditto.
13329
13330 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13331 loaded.
13332 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13333 non-ASCII chars differently. Always produce 1 glyph for composite
13334 chars. If font not found, use CHARSET_WIDTH to calculate width of
13335 non-ASCII chars.
13336 (x_get_char_font_and_encoding): Return null if font could not be
13337 loaded. Reset font to null if fontset could not be loaded.
13338 (draw_glyphs): Fill background if font not found.
13339 (draw_glyphs): Unused parameter just_foreground_p removed. New
13340 parameter composite_glyph.
13341 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13342 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13343 draw_glyphs when calling it recursively for composite chars.
13344
133451997-12-27 Gerd Moellmann <gerd@acm.org>
13346
13347 * xterm.c: Patches from handa.etl.go.jp integrated.
13348 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13349 find a font_info.
13350
13351 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13352 for nglyphs == 1.
13353
13354 * xterm.c (x_draw_relief): Draw relief lines.
13355 (draw_glyphs): Call x_draw_relief.
13356
133571997-12-26 Gerd Moellmann <gerd@acm.org>
13358
13359 * xfns.c (x_make_gc): Create relief GC's.
13360
13361 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13362 (setup_frame_gcs): Initialize them.
13363 (EmacsFrameDestroy): Free them.
13364
427ec082 13365 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13366 last_unchanged_at_beg_row is continued or a continuation line.
13367 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13368 (redisplay_window): Case point has changed, and it has not
26901792
DL
13369 moved off the frame. Don't increment row if PT equals the row
13370 end if the row ends in ZV.
13371
13372 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13373 (expose_line): Call it.
13374 (x_after_update_window_line): Call it.
13375
13376 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13377 reached.
13378
13379 * xterm.c (x_after_update_window_line): Draw continuation line
13380 bitmap.
13381
13382 * dispnew.c (update_window_line): Call
13383 after_update_window_line_hook when row's continuation_line_p
13384 changes.
13385
13386 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13387
13388 * xdisp.c (display_line): Handle continued lines on window system
13389 frames differently since continuation glyphs are not displayed.
13390 (move_iterator_in_display_line_to): Ditto.
13391 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13392 into account.
13393 (move_iterator_vertically_backward): Handle dy == 0 specially.
13394 (redisplay_window): Catch the case of small windows when
13395 recentering where moving back window_height/2 moves us beyond the
13396 top of the display area of the window.
13397
133981997-12-18 Gerd Moellmann <gerd@acm.org>
13399
13400 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13401 dvpos removed.
13402
134031997-12-17 Gerd Moellmann <gerd@acm.org>
13404
13405 * dispnew.c (direct_output_forward_char): Correct new cursor
13406 x-position.
13407
134081997-12-16 Gerd Moellmann <gerd@acm.org>
13409
13410 * xterm.c (x_after_update_window_line): Remove unused parameters.
13411 (XTclear_end_of_line): Clear to display_height instead of
13412 display_height - 1.
13413
13414 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13415 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13416 rows have different y-positions, or different height.
13417
134181997-12-14 Gerd Moellmann <gerd@acm.org>
13419
13420 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13421
13422 * window.c (coordinates_in_window): Call frame_mode_line_height.
13423
13424 * xterm.c (x_draw_3d_border): Removed.
13425 (x_draw_row_borders): Removed.
13426
13427 * dispnew.c (update_window): References to
13428 FRAME_MODE_LINE_BORDER_WIDTH removed.
13429
13430 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13431 (FRAME_MODE_LINE_HEIGHT): Removed.
13432
13433 * xterm.c (draw_3d_borders_p): Removed.
13434 (draw_glyphs): Ditto.
13435 (XTwrite_glyphs): Ditto.
13436 (expose_line): Ditto.
13437 (x_initialize): Ditto.
13438
13439 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13440 frame_mode_line_height.
13441
13442 * term.c (frame_mode_line_height): Get the pixel height of a
13443 frame's mode line.
13444 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13445 versions.
13446
26901792
DL
13447 * xterm.c (x_initialize): Set the hook.
13448 (XTframe_mode_line_height): X version of frame_mode_line_height.
13449
13450 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13451 output buffer.
13452 (display_string): Don't add right truncation mark if line ends in
13453 padding space.
13454 (init_display_iterator): If called with modeline_p non-zero, set
13455 face_id to 1, which is the id of the mode line face.
13456
13457 * keyboard.c (cmd_error_internal): Write to stderr if selected
13458 frame is Vterminal_frame under X. This is the case when a font
13459 cannot be loaded when Emacs starts. Replace test for
13460 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
13461
13462 * xfaces.c (compute_overlay_string_char_face): Compute the
13463 face of a character in an overlay string.
13464 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 13465 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
13466 Use it.
13467
13468 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
13469 set_iterator_to_next_overlay.
13470 (struct overlay_entry): Structure used to sort overlay strings.
13471 (compare_overlay_entries): Compare overlay strings.
13472 (load_iterator_with_overlay_strings): Load a chunk of overlay
13473 strings.
13474 (get_overlay_strings_at_iterator_position): Call it.
13475 (next_element_from_overlay_string): Set it->object to the overlay
13476 string. Prepare for setting it->position to a string position.
13477 (get_overlay_strings_at_iterator_position): Renamed from
13478 get_overlays_at_iterator_position.
13479 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
13480 chunks of overlay strings.
13481 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
13482
13483 * dispextern.h (struct display_iterator): New vector
13484 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
13485 overlays and n_overlays.
13486 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
13487 renamed to string_index.
13488
134891997-12-13 Gerd Moellmann <gerd@acm.org>
13490
13491 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
13492 when allocating a vector.
13493 (release_iterator): Removed.
13494 (restore_iterator): Removed.
13495 (copy_iterator): Removed.
13496
134971997-12-08 Gerd Moellmann <gerd@acm.org>
13498
13499 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
13500 clearing a mini-buffer window that is not active.
13501 (redisplay_window): Do not scroll one line too early when last
13502 window line is completely visible.
13503 (init_display_iterator): Leave some room to display the cursor
13504 after the last glyph on a continued line.
13505
13506 * xterm.h (struct x_output): trunc_area_extra renamed
13507 flags_areas_extra.
13508 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
13509
13510 * dispnew.c (update_window_line): Call
13511 after_update_window_line_hook when current row is not enabled
13512 which is the case after a frame has been cleared.
13513
13514 * xdisp.c (display_mode_line): Reset row flags for truncation
13515 on right side for the mode line.
13516
13517 * xterm.c (bitmap_type): Type of bitmap to display in flags
13518 area of frame.
13519 (x_after_update_window_line): Use the enum.
13520 (draw_bitmap): Ditto.
13521
135221997-12-07 Gerd Moellmann <gerd@acm.org>
13523
13524 * xterm.c (x_clip_to_row): Include width of both flag areas.
13525 (do_line_dance): Ditto.
13526 (expose_window_tree): Ditto.
13527 * dispnew.c (update_window_line): Call
13528 after_update_window_line_hook for right truncation and continuation.
13529 * xdisp.c (init_display_iterator): Don't subtract width of
13530 continuation glyphs for window-based redisplay.
13531 * xterm.c (draw_bitmap): Draw continuation bitmap.
13532 * widget.c (set_frame_size): Double trunc_area_extra.
13533 (EmacsFrameSetCharSize): Ditto.
13534 * xfns.c (x_figure_window_size): Ditto.
13535 * xterm.c (x_set_window_size): Ditto.
13536 (x_after_update_window_line): Draw right truncation mark.
13537
13538 * xterm.c (draw_glyphs): Bug fix buffer overrun.
13539
13540 * window.h: Include blocker around dispextern.h removed.
13541
13542 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 13543
26901792
DL
13544 * dispextern.h (struct display_iterator): Former ovstr made a
13545 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
13546 next_ovstr_invisble_check_pos; check at these positions for
13547 face changes and changes in invisible text property.
13548 (struct glyph_pos): Former ovlen now overlay_string_index.
13549
13550 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
13551 overlay_string.
13552 (set_iterator_to_next_overlay_string): Set overlay_string and
13553 pos.overlay_string_index.
13554 (get_overlays_at_iterator_position): Use overlay_string and
13555 overlay_string_index.
13556 (next_element_from_overlay_string): Use overlay_string and
13557 overlay_string_index.
13558 (move_iterator_forward): Increment overlay_string_index.
13559 (try_window_id): Use overlay_string and overlay_string_index.
13560 (move_iterator_forward): At end of dpvec, maybe use method
13561 next_element_from_overlay_string for the case a character from an
13562 overlay string was translated via a display table.
13563 (reseat_iterator_to_string): Take a Lisp string.
13564 (display_string): Pass a Lisp string to reseat_iterator_to_string.
13565 (compute_face_at_iterator_overlay_string_position): Compute face
13566 based on text properties for an overlay string.
13567 (next_element_from_overlay_string): Check invisible and face text
13568 properties.
bb6677a8 13569
26901792
DL
13570 (set_iterator_to_next_overlay_string): Restore face id before
13571 overlay strings when no more overlay strings are found to return.
13572 Initialize next_ovstr_.*check_pos for each new overlay string
bb6677a8
GM
13573
13574 A line in the following paragraph was garbled for an unknown
13575 reason. It couldn't be fully reconstructed.
13576
13577 (compute_base_face): Made public.
26901792
DL
13578 (merge_face_list): Ditto.
13579 (intern_computed_face): Ditto.
13580
427ec082 13581 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
13582 window if PT > w->last_point. Goto try_to_scroll if bottom Y
13583 of row is > instead of >= last_y.
13584
13585 * buffer.h (overlays_at): Function prototype.
13586
13587 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
13588 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
13589
427ec082 13590 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
13591 memory of a display_iterator.
13592 (copy_iterator): Copy an iterator.
13593 (restore_iterator): Restore an iterator from a backup copy.
13594 (global): Use the functions above.
13595 * window.c (Fpos_visible_in_window_p): Call release_iterator.
13596 * dispnew.c (direct_output_for_insert): Call release_iterator.
13597
13598 * dispextern.h (struct display_iterator): Allocate overlays
13599 vector dynamically.
13600
136011997-12-06 Gerd Moellmann <gerd@acm.org>
13602
13603 * Makefile.in (window.o): Depends on dispextern.h.
13604
13605 * buffer.c (overlays_at): Make it work when extending vectors
13606 and an initial vector of zero size.
13607
13608 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
13609 from set_cursor_to_previous_visible_line_end.
13610 (set_iterator_to_next_visible_line_start): Renamed from
13611 set_cursor_to_next_visible_line_end.
13612 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
13613 (compute_face_at_iterator_position): Renamed from
13614 compute_cursor_face.
13615 (set_iterator_to_next_overlay_string): Renamed from
13616 cursor_to_next_overlay_string.
13617 (get_overlays_at_iterator_position): Renamed from
13618 get_overlays_for_cursor.
13619 (reseat_iterator): Renamed from reseat_cursor.
13620 (setup_iterator_overlays_from_glyph_pos): Renamed from
13621 setup_overlays_from_pos.
13622 (init_string_iterator): Renamed from init_string_cursor.
13623 (get_next_display_element): Renamed from next_display_element.
13624 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 13625 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
13626 dynamically.
13627
13628 * xdisp.c: display_cursor renamed display_iterator.
13629 * dispextern.h: Ditto.
13630 * dispnew.c: Ditto.
13631
136321997-12-01 Gerd Moellmann <gerd@acm.org>
13633
13634 * window.c (mark_window_cursors_off): Function comment added.
13635 (window_topmost_p, window_rightmost_p): Removed because not used.
13636
136371997-11-30 Gerd Moellmann <gerd@acm.org>
13638
13639 * emacs.c (main): Function prototypes removed in profiling code.
13640 Use safe_bcopy as start of text.
13641
13642 * dispnew.c (update_frame_line): update_line -> update_frame_line;
13643 mirrored_make_current -> make_current.
13644
13645 * xdisp.c: (store_frame_title_char): New function to store a
13646 single character for the frame title with re-allocation of
13647 frame_title_buf.
13648 (init_xdisp): Intialize frame_title_.* variables to null.
13649
13650 * dispnew.c (quit_error_check): Removed.
13651
13652 * eval.c (Fsignal): Call to quit_error_check removed.
13653 * keyboard.c (quit_throw_to_read_char): Ditto.
13654
136551997-11-23 Gerd Moellmann <gerd@acm.org>
13656
13657 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
13658 to mean a zero relief.
13659
26901792
DL
136601997-11-19 Gerd Moellmann <gerd@acm.org>
13661
13662 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
13663 unconditionally.
13664 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
13665 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
13666 (check_glyph_memory): Define function body unconditionally.
13667
136681997-11-17 Gerd Moellmann <gerd@acm.org>
13669
13670 * dispnew.c (scrolling_window): Alternative version of this
13671 function removed.
13672
136731997-11-16 Gerd Moellmann <gerd@acm.org>
13674
13675 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
13676 of height CANON_Y_UNIT.
13677 * dispextern.h: Prototype for that function.
427ec082 13678 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
13679 produce empty rows. Use make_empty_enabled_row instead.
13680
13681 * dispnew.c (scrolling_window): New version using diff-like
13682 algorithm activated.
427ec082 13683
26901792
DL
136841997-11-15 Gerd Moellmann <gerd@acm.org>
13685
13686 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
13687 (clear_desired_matrices): Ditto.
13688 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
13689 for menu_bar_window.
13690
13691 * alloc.c (mark_object): Mark menu_bar_window of frames.
13692
13693 * xterm.c (XTupdate_window_end): Don't display cursor if
13694 pseudo_window_p.
13695
13696 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
13697 set mini_p.
13698 (update_window): Don't set cursor if pseudo_window_p.
13699
13700 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
13701
13702 * window.h (struct window): New flag pseudo_window_p set to
13703 1 for windows that aren't really part of the window tree, like
13704 menu_bar_window's of frames.
13705 * window.c (make_window): Initialize it.
13706 (replace_window): Ditto.
13707 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13708
13709 * frame.c (make_frame): Initialize menu_bar_window to nil.
13710
13711 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
13712 FACE_RELIEF
13713
13714 * xfaces.c (copy_face): shadow_thickness -> relief.
13715 (face_eql): Ditto.
13716 (merge_faces): Ditto.
13717 (compute_base_face): Ditto.
13718 (Fset_face_attribute_internal): Ditto.
13719 * dispextern.h (struct face): Ditto.
13720
13721 * dispnew.c (update_frame): Update menu_bar_window of the frame if
13722 it is non-nil.
13723
13724 * xdisp.c (display_menu_bar): Display the menu bar in
13725 f->menu_bar_window if appropriate.
13726 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
13727
13728 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
13729 dummy window and window matrices for f->menu_bar_window.
13730 (free_glyphs): Free the dummy window and its glyph matrices.
13731
13732 * frame.h (struct frame): New member menu_bar_window.
13733
137341997-11-09 Gerd Moellmann <gerd@acm.org>
13735
13736 * dispnew.c (scrolling_window): New version with diff-like
13737 algorithm.
13738
13739 * xdisp.c (try_window_reusing_current_matrix): If new_start >
13740 old_start always start displaying at start of
13741 first_row_to_display. The previous scheme failed if the last row
13742 was fully visible.
13743
13744 * dispnew.c (update_window): Remove cost calculations. Remove
13745 redundant preempt_count calculations.
13746
13747 * xterm.c (x_clip_to_row): Set clipping for non-text rows
13748 differently.
13749
13750 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
13751
427ec082 13752 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
13753 WITH_MARGINAL_AREAS is defined.
13754
427ec082 13755 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
13756 removed.
13757
13758 * dispnew.c (scrolling): Call line_hash_code because hash values
13759 are not set in the frame matrix.
13760
13761 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
13762 (redisplay_window): Check line_ins_del_ok before calling
13763 try_window_id.
13764 (try_window_reusing_current_matrix): Give up for terminal frames
13765 if window is not full width or we cannot insert/delete lines.
13766 (try_window_reusing_current_matrix): Fixed scrolling for terminal
13767 frames.
13768
13769 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
13770 Lisp_Object to mark_object.
13771
13772 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
13773 window rows have the same glyph pointers.
13774 (try_window_id): Call it.
13775
13776 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
13777 a glyph matrix.
13778 (mark_object): Call it.
13779
13780 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
13781 truncations.
13782 (display_line): Ditto.
13783 (display_line): Ditto for DISP_CONTINUATION.
13784 (display_line): Truncation on right: test current_x >
13785 last_visible_x.
13786 (skip_in_display_line_to): Ditto.
13787 (skip_via_matrix): Stop skipping in glyph row at face extending
13788 glyphs or at padding spaces.
13789
13790 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
13791
13792 * xdisp.c (display_line): Use glyph->object == 0 for padding
13793 glyphs.
13794 (redisplay_window): Don't let cursor move over padding
13795 spaces.
13796
13797 * dispextern.h (struct glyph): Fix comment for object.
13798
137991997-11-08 Gerd Moellmann <gerd@acm.org>
13800
13801 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
13802 has a mode line.
13803 * xdisp.c (redisplay_window): Use it.
13804 (display_mode_line): Check that window wants mode line.
13805
138061997-11-03 Gerd Moellmann <gerd@acm.org>
13807
13808 * xdisp.c (display_menu_bar): Enable menu bar rows.
13809
13810 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
13811 (x_erase_phys_cursor): Ditto.
13812 (x_draw_bar_cursor): Ditto.
13813
138141997-11-02 Gerd Moellmann <gerd@acm.org>
13815
13816 * dispnew.c (update_marginal_area): Update a marginal area.
13817 (update_text_area): Update text area.
13818 (update_window_line): Call both.
13819
13820 * xterm.c (XTclear_end_of_line): Translate coordinates area
13821 dependent.
13822
13823 * dispnew.c (updated_area): Row area being updated in
13824 update_window_line.
13825 (update_window_line): Set it.
13826 (update_marginal_area): Clear to end of line if not in text area.
13827
13828 * window.c (Fset_window_margins): Increment
13829 windows_or_buffer_changed. Adjust glyphs.
13830
13831 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
13832 area X coordinates to frame coordinates.
427ec082 13833 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
13834 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
13835 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
13836
13837 * xterm.c (draw_glyphs): Use text area width as display width.
13838
13839 * xdisp.c (init_display_info): Subtract widths of marginal areas
13840 from last_visible_x.
13841
13842 * alloc.c (mark_object): Mark objects in glyphs only if they are
13843 overlays. Mark only if current_matrix != 0. Activate the code.
13844
13845 * window.c (Fset_window_margins): Set margins.
13846 (Fwindow_margins): Return margin area widths.
13847 (syms_of_window): Add defsubr's.
13848
13849 * window.h (struct window): left_margin_width, right_margin_width.
13850
13851 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
13852 and cols.
13853
13854 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
13855 truncation/overlay arrow area.
13856 (struct frame): trunc_area_pixel_width, and _cols.
13857
13858 * window.c (Fsplit_window): Use it.
13859
13860 * window.c (Fsplit_window): Set cursor vpos to -1 after
13861 splitting.
13862 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
13863 split windows.
13864
13865 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 13866 of bounds cursor positions.
26901792
DL
13867
13868 * xdisp.c (redisplay_internal): Check that after cursor motion
13869 within line, PT is on same line.
13870
13871 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
13872 FRAME_TRUNC_WIDTH.
13873
13874 * xterm.h (struct x_output): trunc_area_extra.
13875 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
13876 (PIXEL_TO_CHAR_WIDTH): Subtract it.
13877 * widget.c (set_frame_size): Set it.
13878 (EmacsFrameSetCharSize): Ditto.
13879 * xfns.c (x_figure_window_size): Ditto.
13880 * xterm.c (x_set_window_size): Ditto.
13881
13882 * dispnew.c (check_matrix_invariants): First try to check window
13883 ends (in #if 0).
13884
13885 * xdisp.c (try_window_reusing_current_matrix): Try window
13886 redisplay with different window start.
13887
138881997-11-01 Gerd Moellmann <gerd@acm.org>
13889
13890 * window.c (make_window): Set window_end_pos/vpos.
13891 (Fsplit_window): Zero last_cursor, window_end_valid.
13892 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
13893
13894 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
13895
138961997-10-31 Gerd Moellmann <gerd@acm.org>
13897
13898 * window.c (make_window): Initialize last_cursor.
13899 (replace_window): Ditto.
13900
139011997-10-29 Gerd Moellmann <gerd@acm.org>
13902
13903 * window.h: New member last_cursor.
13904 * dispnew.c (direct_output_for_insert): Set it.
13905 (direct_output_forward_char): Ditto.
13906 * xdisp.c (redisplay_internal): Ditto.
13907
139081997-10-28 Gerd Moellmann <gerd@acm.org>
13909
13910 * xdisp.c (redisplay_internal): Optimization 1 change partially
13911 reverted. Check this again later.
13912 (skip_via_matrix): Remove redundent test for
427ec082 13913 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
13914
139151997-10-27 Gerd Moellmann <gerd@acm.org>
13916
13917 * dispnew.c (update_window_line): Call
13918 after_update_window_line_hook only for interesting constellations.
13919 (free_glyph_matrix): Fix memory leak.
13920
13921 * window.h: Include blocker WINDOW_H_INCLUDED, include
13922 dispextern.h.
13923 (struct window): phys_cursor_glyph as struct glyph. * window.c
13924 (make_window): Initialize it.
427ec082 13925 (replace_window): Ditto.
26901792
DL
13926 * dispnew.c (free_window_matrices): Remove freeing of
13927 phys_cursor_glyph.
13928 (check_matrix_invariants): Renamed from check_current_matrix_...
13929 * xterm.c: All references to phys_cursor_glyph changed.
13930
13931 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
13932
13933 * xfaces.c: Comment update.
13934
13935 * window.h (struct window): Make phys_cursor_glyph a struct glyph
13936 pointer. Remove phys_cursor_ascent, descent, etc.
13937 * dispnew.c (free_window_matrices): Free it.
13938 * window.c (make_window): Allocate it.
13939 (replace_window): Ditto.
13940 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
13941 (x_display_and_set_cursor): Fill it.
13942 (x_phys_cursor_in_rect_p): Use it.
13943 (x_draw_hollow_cursor): Ditto.
13944 (x_draw_bar_cursor): Ditto.
13945 (x_erase_phys_cursor): Ditto.
13946
13947 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
13948
13949 * xterm.c (XTget_display_info): Handle 3D facess.
13950 (draw_glyphs): Ditto.
13951
13952 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
13953
13954 * xfaces.c (Fset_face_attribute_internal): New face attribute
13955 shadow-thickness.
13956 (copy_face): Handle shadow_thickness.
13957 (face_eql): Ditto.
13958 (merge_faces): Ditto.
13959 (compute_base_face): Ditto.
13960
13961 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
13962 (struct display_info): Ditto.
13963 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
13964 * xdisp.c (compute_cursor_face): Set it.
13965 (advance_display_cursor): Clear it.
13966
13967 * xdisp.c (init_string_cursor): Initialize face_id to -1.
13968 (init_string_cursor): Init face_id to zero.
13969
13970 * dispextern.h (struct face): New member shadow_thickness.
13971
427ec082 13972 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
13973 search to 100.
13974
13975 * dispnew.c (update_window_line): Try to resynch with current line
13976 to prevent mode line flickering.
13977
139781997-10-26 Gerd Moellmann <gerd@acm.org>
13979
427ec082 13980 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
13981 on cursor_in_echo_area >= 0.
13982
13983 * xdisp.c (echo_area_display): Clear desired matrix before
13984 displaying into it.
13985 (display_menu_bar): Clear glyph row instead of hoping it is not
13986 enabled. This is safer.
13987
13988 * dispnew.c (check_current_matrix_invariants): Check only
13989 visible rows.
13990
13991 * xdisp.c (try_window_id): Handle window end setting in case of
13992 display to end of window, but only non-text lines displayed.
13993
13994 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
13995 (check_current_matrix_invariants): Check used counts.
13996
13997 * Revisiob v114.
13998
13999 * dispnew.c (scrolling): Use hash codes from rows.
14000
14001 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
14002
14003 * dispnew.c (scrolling_window): Invalidate conflicting runs.
14004
140051997-10-25 Gerd Moellmann <gerd@acm.org>
14006
14007 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
14008 * dispnew.c (update_window): Use it.
14009 (clear_glyph_matrix): Clear it.
14010 * xdisp.c (try_window_id): Set it.
14011
14012 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
14013
14014 * xdisp.c (redisplay_internal): Increment glyph positions differently.
14015
14016 * dispextern.h: More comments etc.
14017
140181997-10-24 Gerd Moellmann <gerd@acm.org>
14019
14020 * dispnew.c (set_window_cursor_after_update): Set cursor
14021 for cursor_in_echo_area == 0 to (0, 0).
14022
14023 * dispextern.h (struct glyph_row): New flags continuation_line_p
14024 and displays_text_p.
14025 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
14026 * xdisp.c (display_line): Set them.
14027 (try_window_id): Move to start of continuation line to find out
14028 continuation_line_width.
14029 (first_unchanged_current_row): Don't retract row if continued,
14030 truncated etc.
14031
14032 * xterm.c: Map X coordinates.
14033
140341997-10-23 Gerd Moellmann <gerd@acm.org>
14035
14036 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14037 left text.
14038
14039 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14040
14041 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14042
f28eba7b 14043 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14044
14045 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14046
14047 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14048 Set this to functions to be called before/after window updates.
14049 (direct_output_for_insert): Call them.
14050 (update_window): Ditto.
14051 (update_frame): Call update_begin/ update_end for windows.
14052
14053 * xterm.c (XTupdate_window_begin): Called before window updates.
14054 (XTupdate_end): Called after window updates.
14055 (x_initialize): Set hooks to above.
14056
14057 * xdisp.c (init_display_info): Initialize c and len of
14058 display_info.
14059
14060 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14061 fonts more than once.
14062
140631997-10-22 Gerd Moellmann <gerd@acm.org>
14064
14065 * xdisp.c (display_line): Handle most common case of current_x <
14066 last_visible_x separately.
14067
14068 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14069
14070 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14071 so that face extending space doesn't compare equal to normal space
14072 with same face.
14073
14074 * xdisp.c (display_line): Make sure we have a position for
14075 a line end in an otherwise blank line if face is extended.
14076
14077 * dispnew.c (direct_output_for_insert): Increment row end position.
14078
427ec082 14079 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14080 window_end_pos.
14081
14082 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14083
14084 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14085
14086 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14087 start and end positions in rows.
14088 (increment_glyph_row_buffer_positions): Stop adjusting at
14089 glyphs with positions <= 0.
14090
14091 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14092 position including position in overlay.
26901792
DL
14093 (struct glyph_row): Use it for start and end positions.
14094 (struct display_cursor): Use it.
14095 * xdisp.c: Use it.
14096 (display_line): Set row start and end positions.
14097
14098 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14099 assignment.
14100
141011997-10-21 Gerd Moellmann <gerd@acm.org>
14102
14103 * dispnew.c (update_window): Add scrolling_window again. It's
14104 necessary for scroll_step != 0.
14105
14106 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14107 scrolling.
14108
14109 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14110
14111 * xterm.c (XTupdate_end): Flush only for messages.
14112
14113 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14114 first_unchanged_row.
14115
14116 * xterm.c (XTupdate_end): Flush if miniwindow.
14117
14118 * dispnew.c (matrix_row_last_pos): New function.
14119 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14120 Large comment moved to xdisp.c.
26901792
DL
14121
14122 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14123 (skip_via_matrix): Check window_end_valid instead of
14124 display_completed.
14125
14126 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14127 (update_window): scrolling_window commented out. It has negative
14128 effect most of the time.
14129
14130 * xdisp.c (try_window_id): Correct parameters to
14131 scroll_glyph_matrix_range.
14132
427ec082 14133 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14134
14135 * window.h: Comments for window_end_pos/vpos.
14136
f28eba7b 14137 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14138 of the window in which we are skipping.
14139
14140 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14141
14142 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14143 reached.
14144
141451997-10-20 Gerd Moellmann <gerd@acm.org>
14146
14147 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14148 a face extending glyph.
14149
427ec082 14150 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14151 (set_cursor_from_row): Set cursor position from a glyph row.
14152
14153 * dispnew.c (update_window_line): Write entire line if hash
14154 codes of lines differ.
14155
14156 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14157 if glyph row has an infinite width glyph at its end.
14158
14159 * xdisp.c (last_unchanged_current_row): Respect partially visible
14160 lines when looking for the last row displaying text.
14161 (try_window_id): Handle partially visible lines better.
14162
141631997-10-19 Gerd Moellmann <gerd@acm.org>
14164
14165 * dispnew.c (update_window): Remove unused variable.
14166 (update_window_line): Simplified.
14167
14168 * xterm.c (x_get_char_font_and_encoding): Handle most common
14169 case at the beginning.
14170
14171 * xdisp.c (advance_display_cursor): Dispatch on method and
14172 order if statements by expected call frequency. Fixed unclosed
14173 comment.
14174
14175 * xdisp.c (try_window_id): New implementation.
14176
14177 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14178 rows displaying a line end, only.
14179
141801997-10-18 Gerd Moellmann <gerd@acm.org>
14181
14182 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14183
141841997-10-14 Gerd Moellmann <gerd@acm.org>
14185
14186 * xdisp.c (display_line): Mark empty lines not corresponding to
14187 text with position -1.
14188
14189 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14190 not within window matrix bounds.
14191
14192 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14193 (struct display_info): NGLYPHS_TO_IGNORE removed.
14194 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14195 * term.c: Ditto.
14196 * xterm.c: Ditto.
14197
14198 * xdisp.c (init_display_cursor): Set it.
14199 (display_line): Use it to set W->REGION_SHOWING.
14200
14201 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14202
14203 * region-cache.h: functino prototypes with PROTO.
14204
14205 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14206
14207 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14208 a position.
14209
427ec082 14210 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14211 rectangle based on minimum character bounds.
14212
f28eba7b 14213 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14214 glyph position calculations.
14215 (make_lispy_movement): Use buffer_posn_from_coords and window
14216 relative coordinates.
14217
14218 * xterm.c (construct_mouse_click): Remove #if 0 case.
14219
14220 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14221 given row.
14222
427ec082
SS
14223 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14224 date.
26901792
DL
14225 (skip_to): Use it.
14226 (redisplay_window): Remove code skipping using current matrix.
14227
142281997-10-13 Gerd Moellmann <gerd@acm.org>
14229
14230 * xdisp.c (redisplay_window): Use available current matrix to
14231 skip faster when only point is moved withing the window.
14232
427ec082 14233 * intervals.c: Include stdio.h.
26901792
DL
14234 (find_interval): Trace to stderr to catch some nasty error
14235 that did not yet occur again with tracing.
14236 (set_point): Ditto.
14237
14238 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14239 cursor positioning on partially visible lines.
14240 (set_window_cursor_after_update): Ditto.
14241
f28eba7b 14242 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14243
14244 * window.h (struct window): start_y removed.
14245
14246 * window.c (make_window): start_y removed.
14247 (replace_window): Ditto.
14248
427ec082 14249 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14250 descent values of the last line processed by skip_to.
14251 (redisplay_window): Use them.
14252 (skip_to): Set them.
14253
14254 * dispextern.h (struct display_cursor): New member METHOD.
14255
14256 * xdisp.c: Use function member METHOD.
14257
14258 * xdisp.c (set_next_stop_pos): Determine next position at which to
14259 check for face properties, invisible text properties, and overlays.
14260 (compute_cursor_face): Use it.
14261 (get_overlays_for_cursor): Ditto.
14262 (reseat_cursor): Ditto.
14263 (next_display_element): Ditto.
14264
14265Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14266
14267 * termhooks.h: Some hooks with prototypes.
14268
14269 * term.c: Some hooks with function prototypes.
427ec082 14270
26901792
DL
14271 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14272 computing face if possible.
14273
14274 * xdisp.c (next_display_element): Use face from glyph from display
14275 table only if != 0.
14276
14277 * emacs.c: FreeBSD headers for profiling removed.
14278
427ec082
SS
14279 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14280 display cursor, use DEC_POS instread.
26901792
DL
14281
14282 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14283 all fonts are in the font table.
26901792
DL
14284 (unload_font): Don't XFreeFont.
14285
14286 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14287 row height.
14288
14289 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14290 (x_erase_phys_cursor): Clear only visible part of row.
14291 (x_draw_bar_cursor): Set clipping.
14292 (x_draw_hollow_cursor): Ditto.
14293 (x_display_and_set_cursor): Remove clipping.
14294 (expose_window_tree): Take trunc border into account.
14295 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14296 (expose_window): Use it.
14297
14298 * xdisp.c (display_string): Catch case that we are called with
14299 current_x already beyond max_x.
14300 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14301 (init_display_info): Subtract vertical border glyph from
14302 last_visible_x.
14303
14304 * scroll.c (scrolling_window_1): Removed.
14305
14306 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14307 based on redisplay method used.
14308 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14309 based redisplay.
14310 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14311 window based redisplay.
14312
14313 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14314 on data structures.
14315
14316 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14317 Handle own storage for purely window based redisplay.
14318 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14319 allocate_matrices.
26901792
DL
14320 (allocate_matrices_for_window_redisplay): Ditto.
14321
14322 * dispextern.h (struct glyph_matrix): window_top_y,
14323 window_height.
14324
14325 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14326 and optimize some common cases of window changes.
14327
14328 * emacs.c (main): Remove own profiling code because 0.95 now
14329 has it in.
14330
14331Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14332
14333 * xterm.c (XTupdate_end): Draw horizontal border at right
14334 position.
14335 (expose_window): Draw vertical border.
14336 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14337 don't do anything.
14338
14339 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14340 for non full width windows only if not window redisplay.
14341
14342 * dispnew.c (update_window_tree): Or paused_p return of called
14343 functions.
14344
14345 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14346 of window.
14347
14348 * window.c (Fset_window_configuration): adjust_glyphs being
14349 called twice.
14350 (Fset_window_configuration): Set frame garbaged if not all
14351 leaf windows reused.
14352
143531997-08-21 Gerd Moellmann <gerd@acm.org>
14354
14355 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14356 that rows should really be cleared. Used for current matrices.
14357
14358 * dispnew.c (scrolling_window): Bug fix.
427ec082 14359 (line_dance_hook): Formerly line_dance_fn, take only one
26901792
DL
14360 parameter.
14361
14362 * dispextern.h (struct run): Remove current_vpos.
14363
14364 * xterm.c (do_line_dance): Only one parameter.
14365
f28eba7b 14366 * xdisp.c (display_line): Set continued_p.
26901792
DL
14367
14368 * dispextern.h (struct glyph_row): New flag continued_p.
14369 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14370 (struct glyph_row):
26901792
DL
14371
14372Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14373
14374 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14375 when calling skip_to for continued lines.
14376
14377 * dispnew.c (change_frame_size_1): Set frame garbaged.
14378
14379 * xterm.c (expose_window): Check enabled_p of rows.
14380
14381 * xdisp.c (redisplay_internal): Compare line heights before and
14382 now for redisplay optimization 2 (hit).
14383 (display_line): Set this_line_pixel_height.
14384
14385 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14386 value.
14387 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14388 (do_line_dance): Simplified and pixel corrected.
14389
14390 * dispnew.c (scrolling_window): Simplified.
14391
14392 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14393
14394 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14395 to mode line row->x.
14396
14397Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14398
14399 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14400 override font of face.
14401 (draw_glyphs): Correct return value.
14402 (XTclear_end_of_line): Compare differently with output cursor
14403 position.
14404 (x_draw_hollow_cursor): 2 parameters, window and row.
14405
14406 * dispnew.c (update_window_line): If rows have different height
14407 or y, write entire line.
14408
f28eba7b 14409 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14410 of info struct.
14411
427ec082 14412 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14413 frame_update_line_height.
14414 (merge_faces): Don't use default font if new font has different
14415 size.
14416
14417Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14418
14419 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
14420 unknown. Some fonts have min_width zero.
14421 (draw_glyphs): Don't draw underlines to the end of the display
14422 line if face is merely extended to that point.
14423 (draw_glyphs): Don't assume background is filled if
14424 just_foreground_p but extending to end of line.
14425
14426 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14427 for partially visible last lines.
14428 (x_clip_to_row): Ditto.
14429 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14430 display_height since line_height is really a line distance.
14431 (x_display_and_set_cursor): If cursor on padding glyph, use
14432 min_bounds pixel width.
14433
14434Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14435
14436 * xterm.c (x_clip_to_row): Height value was 1 too large.
14437 (XTclear_end_of_line): Clip to display area.
14438
14439 * xfns.c (x_figure_window_sizes): Add trunc border width
14440 to frame pixel width.
14441
14442 * xdisp.c (next_display_element): Don't display overlay strings
14443 within invisible text.
427ec082 14444 (skip_vertically_backward): Skip display lines.
26901792
DL
14445
14446Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14447
14448 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14449
14450 * xdisp.c (next_display_element): Next invisible
14451 text check position computed differently.
14452
14453 * dispextern.h (struct display_cursor): last_invisible_text_pos
14454 and display_ellipsis_for_invisible_p removed.
14455
14456 * xdisp.c (next_display_element): Set last_invisible_text_pos
14457 to the last position at which invisible text was found. Don't
14458 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14459 dpvec for `...' due to invisible text directly.
26901792
DL
14460 (redisplay_internal): Don't assert that cursor is at PT after
14461 skip_to. It may be in invisible text.
14462
427ec082 14463 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
14464 x_y_to_hpos_vpos.
14465
427ec082 14466 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
14467 next_overlay_pos is reached. Use limit cursor.pos + 100 when
14468 checking for invisible text.
14469
14470 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
14471
14472 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
14473
14474 * xfns.c (x_contour_region): Use pixel coordinates from window
14475 cursor instead of WINDOW_TO_FRAME_H/VPOS.
14476
14477 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
14478 Removed.
14479
14480 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
14481
14482 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
14483 pixel coordinates.
14484 (note_mouse_highlight): Use it.
14485
14486 * xdisp.c (echo_area_display): Ignore calls for terminal frames
14487 under a window system.
14488
427ec082 14489 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 14490 necessary.
427ec082 14491 (update_window_line): Add width of face padding glyph to
26901792
DL
14492 displayed widths of rows.
14493
14494 * xterm.c (x_display_and_set_cursor): Set clipping after
14495 erasing cursor.
427ec082
SS
14496
14497 * window.c (Fset_window_configuration): Free only those
26901792
DL
14498 window matrices not reused.
14499 (get_leaf_windows): Build vector of leaf windows.
14500 Corrupted archive restored from v77.
14501
f28eba7b 14502 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
14503 like display_line does.
14504
14505 * xdisp.c (display_mode_line): Don't hscroll mode line.
14506
14507 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
14508 windows.
14509 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
14510 garbage between mode lines when splitting windows horiz.
14511
14512 * dispnew.c (direct_output_for_insert): Bug fix.
14513
14514 * dispextern.h (struct display_cursor): New member string_length.
14515
14516 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 14517 (init_string_cursor): Take precision and field_width
26901792
DL
14518 (display_string): Use string cursor, skip over invisible text.
14519
14520Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
14521
14522 * xterm.c (x_clip_to_row): Clip to partially visible lines.
14523 (x_display_and_set_cursor): Call it.
14524 (draw_glyphs): Call it
14525 (draw_bitmap): Call it.
14526
427ec082 14527 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
14528 (allocate_leaf_matrix): Return flags.
14529 (row_equal_p): Compare enabled_p.
14530
14531 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
14532 for type == -1.
14533
14534 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 14535 (draw_glyphs): Clip height one pixel taller.
26901792 14536
427ec082 14537 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
14538 mini window.
14539
f28eba7b 14540 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 14541
427ec082
SS
14542 * xdisp.c (echo_area_display): Call update_single_window if
14543 possible.
26901792
DL
14544
14545 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 14546 (scrolling_window): Work on enabled desired lines only.
26901792
DL
14547 (update_single_window): Update a single window like update_frame
14548 does for all windows.
427ec082 14549 (update_window, update_window_tree): Additional argument
26901792
DL
14550 no_scrolling_p.
14551 (update_frame): Pass no_scrolling_p to update_window_tree.
14552 (update_window): Don't call scrolling_window if no_scrolling_p.
14553
14554 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
14555 Erase under hollow cursor.
14556 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
14557 not enabled. Draw bar cursor 1 pixel smaller.
14558
f28eba7b 14559 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
14560 since update will follow soon.
14561
14562 * xdisp.c (echo_area_display): Unitialized variable.
14563
f28eba7b 14564 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
14565 overlay arrow bitmap.
14566
f28eba7b 14567 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 14568 up to the final \n as part of the line for cursor positioning.
26901792 14569
f28eba7b
SM
14570 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
14571 (x_after_update_window_line): Clear trunc marks.
26901792
DL
14572
14573 * xterm.h (FRAME_X_TRUNC_WIDTH).
14574
f28eba7b 14575 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
14576 of a window reserved for truncation mark.
14577
427ec082 14578 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
14579
14580 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 14581 hook.
26901792
DL
14582
14583 * xdisp.c (display_line): Set overlay_arrow_p in row.
14584
14585 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
14586
14587 * xterm.c (x_after_update_window_line): Draw truncation marks.
14588
14589 * xdisp.c (display_line): Insert truncation for lines with
14590 current_x > 0.
14591
14592 * xterm.c (x_draw_row_borders): Convert y to frame coords.
14593 Correct y by 1.
14594 (x_display_cursor): Use default font width if width not
427ec082 14595 known.
26901792 14596
f28eba7b 14597 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
14598
14599 * dispnew.c (set_window_cursor_after_update): Don't assume
14600 all rows are enabled.
14601
14602 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
14603 of cursor.pos.
14604 (skip_in_display_line_to): Check cursor.position after call to
14605 next_display_element.
14606
427ec082 14607 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
14608 buffer position.
14609
14610 * xdisp.c (display_line): Set row->y here.
14611 (skip_in_display_line_to): Test for to_pos after all glyphs
14612 have been added to hpos so that hpos is at the end of all
14613 glyphs for to_pos.
14614 (start_display): Remove assertion.
14615
14616 * dispnew.c (direct_output_forward_char): Bug fix, = instead of
14617 ==.
14618 (update_window): Don't set row->y here.
14619
14620 * xdisp.c (next_display_element): Don't translate control chars
14621 from display table entries.
14622
427ec082 14623 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
14624 update end to prevent cursor flickering. Revert changes to
14625 setting cursor.endpos.
14626
14627Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
14628
14629 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
14630 to PT because this prevents multi-byte characters from being
14631 recognized.
14632
427ec082
SS
14633 * xdisp.c (skip_to, display_line): Advance cursor at end of
14634 truncated line.
26901792
DL
14635
14636 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
14637 replaced by XRectangle.
14638
14639 * dispnew.c (scrolling_window): New method.
14640
14641 * xterm.c (do_line_dance): New implementation, new method.
427ec082 14642
26901792
DL
14643 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
14644 visible part of line.
14645
14646 * dispnew.c (update_window_line): Fill inverse video lines
14647 with infinite width space.
14648 (update_window): Handle completely empty matrices.
14649 (set_window_cursor_after_update): Bug fix.
14650
427ec082 14651 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
14652
14653 * dispnew.c (update_window_line): Don't ignore spaces, don't
14654 fill with spaces.
14655
14656 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
14657 the first glyph having width 0.
14658
14659 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 14660 a glyph that extends to the end of the line.
26901792
DL
14661
14662 * xdisp.c (display_line): Insert one padding glyph
14663
14664 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
14665 amount from info.current_x.
14666 (display_line): Ditto.
14667
14668 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
14669 (change_frame_size_1): Correct cursor.x if frame gets too small.
14670 (update_window_line): Start at row->x.
14671
14672 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
14673 in xdisp.c).
14674
14675 * xterm.c (set_output_cursor): Use window relative X/Y.
14676 (global): Use window relative output cursor x/y.
14677 (draw_glyphs): Remove y param. Pass window relative x/y.
14678
14679 * dispnew.c (update_window): Start rows at start_y.
14680 (update_window): Don't try scrolling because it wouldn't work
14681 with variable height lines, anyway.
14682
14683 * dispextern.h (struct glyph_row): Remove shift_left_by,
14684 add x.
14685
14686 * window.h: (struct window): New member start_y.
14687
14688 * window.c (replace_window): Initialize start_y.
14689 (make_window): Ditto.
14690
14691Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
14692
14693 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 14694 the mode line.
26901792 14695
427ec082
SS
14696 * dispnew.c (update_window): Take mode line border into
14697 account.
26901792
DL
14698
14699 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 14700 of border around mode line.
26901792
DL
14701
14702 * xterm.c (x_draw_row_borders): Bug fix.
14703 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
14704 drawing functions.
14705
14706 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 14707 around modeline instead of inverting it.
26901792 14708
427ec082 14709 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
14710
14711 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
14712 window relative pixel coordinates as arguments.
14713
14714 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
14715 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
14716 COORDS mit new arguments.
14717
14718Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
14719
14720 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 14721 DISPLAY_LINE.
26901792
DL
14722
14723 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
14724 pixel coords.
14725 (make_lispy_movement): Same.
14726
14727 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
14728 with new parameter meaning.
14729
14730 * window.c (Fcoordinates_in_window_p): Convert Lisp params
14731 from canon units to pixels.
14732 (coordinates_in_window): Pixel based.
14733 (Fcoordinates_in_window_p): Convert result pixel values back
14734 to canonical units.
14735
14736 * window.h: phys_cursor_ascent + descent instead of height.
14737
14738 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
14739 chars with charset width 1.
14740
14741 * dispnew.c (direct_output_for_insert): Set updated_row.
14742
14743Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
14744
14745 * dispextern.h (struct glyph): Padding flag removed.
14746
14747Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
14748
14749 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
14750
14751 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
14752
14753 * dispnew.c (update_window_line): Use pixels.
14754
14755 * xdisp.c (compute_line_metrics): Correct pixel_width by
14756 shift_left_by.
14757
14758 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 14759 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
14760 glyph_row -> right_to_left_p. Change references to it.
14761
14762Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
14763
14764 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
14765
14766 * xterm.c (XTinsert_glyphs): Implement it.
14767
14768 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
14769 of a call from DIRECT_OUTPUT_FOR_INSERT.
14770
14771 * window.h (struct cursor_pos): Keeps both matrix positions
14772 and pixel positions.
14773 (struct window): Use it.
14774
14775 * dispnew.c (direct_output_for_insert): New version.
14776
14777 * xdisp.c (redisplay_internal): Don't do anything if it has
14778 already be done directly.
14779
14780 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
14781 for any character.
14782
14783Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
14784
14785 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
14786
14787Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
14788
14789 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
14790 (struct glyph): ASCENT, DESCENT.
14791 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
14792 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
14793
14794 * xterm.c (XTget_display_info): Correct tab computation.
14795
14796 * term.c (get_display_info): Correct tab computation.
14797
14798 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
14799 Renamed from CHAR_CURSOR.
14800
14801Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
14802
14803 * xdisp.c (display_text_line): Mostly pixel oriented.
14804
14805 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
14806
14807 * term.c (append_intermediate_glyph): Generate padding glyphs.
14808
14809 * xdisp.c (display_text_line): More into final direction.
14810
14811 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
14812 (XTget_char_info): Use tabs as multiples of spaces.
14813
14814 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
14815 Use tabs as multiples of spaces.
14816
14817 * dispextern.h (struct char_info ): WHAT field.
14818
14819 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
14820 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
14821
14822Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
14823
14824 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
14825 value.
14826 (init_char_info): Initialize with glyph row.
14827
14828 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
14829
14830 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
14831
14832 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
14833 glyphs.
14834
14835 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
14836 moved to xdisp.c.
14837
14838 * xdisp.c (display_text_line): Use CHAR_CURSOR.
14839
14840 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
14841 generation.
14842 (XTget_char_info): Ditto.
14843
14844 * term.c (get_char_info): Intermediate glyph generation.
14845 (append_intermediate_glyph): Ditto.
14846
14847Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
14848
427ec082 14849 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
14850 CHAR_CURSOR.
14851 (init_char_cursor): Initialize a CHAR_CURSOR.
14852 (get_char_and_advance): Get next character to display.
14853
14854 * dispextern.h (struct char_cursor): Cursor for iterating over
14855 display text of CURRENT_BUFFER.
14856
14857Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
14858
14859 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
14860
14861 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
14862 New member MAX_PIXEL_HEIGHT.
14863
14864 * xterm.c (x_per_char_metric): Get per character metrics.
14865 (XTget_char_info): More cases covered.
14866
14867 * term.c (get_char_and_info): Get next character and character
14868 display information.
14869 (get_char_info): Get character display information.
14870
14871 * dispextern.h: Character display information.
14872
427ec082 14873 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
14874 encode character.
14875 (XTget_char_info): Get display information about a character.
14876
14877Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
14878
14879 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
14880 zero if window is mini-window.
14881
14882 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
14883 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
14884
427ec082 14885 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
14886 (clear_glyph_row): Clear pixel height.
14887 (update_window): Use PIXEL_HEIGHT.
14888
14889 * xdisp.c (display_string): Set row pixel height temporarily.
14890 (display_text_line): Ditto.
14891
427ec082 14892 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
14893 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
14894
427ec082 14895 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
14896 line in default font.
14897 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
14898 in default font.
14899 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
14900
14901 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
14902 in pixels.
14903
14904 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
14905
14906 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
14907 (WINDOW_DISPLAY_PIXEL_HEIGHT):
14908 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
14909 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
14910 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
14911 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
14912 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
14913 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
14914 pixel values related to windows.
14915
14916Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
14917
14918 * xterm.c (XTflash): Flash last line of frame.
14919
14920 * dispextern.h (cursor_in_echo_area): Extern declaration.
14921
14922 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
14923 freezes stem from 16-bit functions.
14924
14925 * xterm.c (x_display_and_set_cursor): Don't display hollow
14926 cursor in mini windows.
14927
14928 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
14929 (make_window): Ditto.
14930
14931 * xterm.c (x_erase_phys_cursor): Erase cursor image.
14932 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
14933 and X_DISPLAY_BAR_CURSOR.
14934 (x_display_cursor): Use it.
14935 (x_update_window_cursor): Use it.
14936
14937 * xdisp.c (display_text_line): Set cursor for window even if not
14938 selected.
14939
14940 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
14941 of X and Y to denote matrix positions.
14942 (x_display_cursor): Ditto.
14943
14944 * dispnew.c (scrolling_window): Scrolling for windows.
14945
14946Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
14947
14948 * dispnew.c (build_frame_matrix): Work on windows with update
14949 flag set.
14950 (build_frame_matrix_from_window_tree): Ditto.
14951 (build_frame_matrix_from_leaf_window): Ditto.
14952
14953 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
14954 building frame matrix.
427ec082 14955 (redisplay_internal): Set window update flags instead of
26901792
DL
14956 building frame matrix.
14957
14958 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
14959 building frame matrix.
14960
14961 * window.c (make_window): Initialize new members.
14962 (replace_window): Ditto.
14963
14964 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
14965 I don't believe this is really necessary.
14966
14967 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 14968 border glyph once.
26901792
DL
14969
14970Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
14971
427ec082 14972 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
14973 window tree off.
14974
427ec082 14975 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
14976 window matrix.
14977 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
14978 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
14979 (x_update_cursor): Work on windows.
14980 (x_display_bar_cursor): Ditto.
14981 (x_draw_single_glyph): Ditto.
14982
14983 * xterm.h: Prototype for X_DISPLAY_CURSOR.
14984
14985 * xterm.c (XTcursor_to): Void return type. Test for
14986 UPDATED_WINDOW. Call x_display_cursor with window.
14987 (x_display_cursor): Void return type. Window instead of frame
14988 parameter.
14989
14990 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions
14991 below.
14992
14993 * window.c (window_rightmost_p, window_topmost_p): Based on
14994 window tree.
14995
14996 * dispnew.c (adjust_frame_message_buffer): Allocate with
14997 FRAME_MESSAGE_BUF_SIZE.
14998
14999 * window.h: PHYS_CURSOR_.* added.
15000
15001 * frame.h (struct frame): Cursor information removed.
15002
15003 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
15004 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
15005
15006 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
15007
15008 * window.c (window_internal_width): Scroll bars no longer
15009 part of window.
15010
15011 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH
15012 removed.
15013
15014 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH
15015 removed.
15016
15017 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15018 (redisplay_internal): Ditto.
15019 (redisplay_window): Ditto.
15020 (redisplay_window): Ditto.
15021 (display_text_line): Ditto.
15022 (display_mode_line): Ditto.
15023
15024 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15025
15026 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15027 (direct_output_for_insert): Ditto.
15028 (direct_output_forward_char): Ditto.
15029 (update_frame_1): Ditto.
15030
15031Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15032
15033 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
15034 being updated.
15035 (update_window): Set and clear it.
15036
15037 * dispnew.c (update_window_line, update_window, scrolling_window):
15038 First versions.
15039
15040 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15041 bar for window borders.
15042 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15043 with spaces.
15044 (fill_up_glyph_row_with_spaces): Call above function.
15045
15046 * xdisp.c (display_text_line): Don't add vertical bar for
15047 window borders.
15048 (display_string): Ditto.
15049
15050 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15051 (replace_window): Ditto.
15052
15053 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15054
15055 * xfns.c (Fx_contour_region): Use selected window cursor position.
15056 (Fx_uncontour_region): Ditto.
15057 (Fx_select_region): Ditto.
15058
15059 * frame.c (make_frame): Remove CURSOR_X/Y.
15060
15061 * xdisp.c (redisplay_internal): Use window cursor position.
15062
15063 * dispnew.c (update_frame_1): Use cursor position of selected
15064 window.
15065 (change_frame_size_1): Ditto.
15066
15067 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15068 (XTwrite_glyphs): Use cursor position of selected window.
15069
15070 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected
15071 window.
15072
15073 * dispnew.c (set_cursor_to): Set window cursor position.
15074 (direct_output_for_insert): Use window cursor position.
15075 (init_display): Don't use frame cursor position.
15076
15077 * window.h: CURSOR_VPOS/HPOS added.
15078
15079 * frame.h (struct frame): CURSOR_X/Y removed.
15080 (FRAME_CURSOR_X): Removed.
15081 (FRAME_CURSOR_Y): Ditto.
15082
15083 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15084 (direct_output_forward_char): Ditto.
15085
15086 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y
15087 removed.
15088
15089 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15090
15091 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15092
15093Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15094
15095 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15096 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15097
15098 * dispextern.h: Changed function names.
15099
15100 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15101 < 2.
15102 (clear_window_matrices): Formerly two functions for desired
15103 and current matrix.
15104 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15105 (update_frame): Return return value from UPDATE_FRAME_1.
15106
15107Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15108
15109 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15110 LAST_TEXT_VPOS.
15111
15112 * frame.c (set_menu_bar_lines): Adjust matrices.
15113
15114 * dispnew.c (set_cursor_to): Set cursor position.
15115
15116 * minibuf.c (read_minibuf): Build frame matrix.
15117
15118 * xdisp.c (this_line_start_hpos): Renamed to
15119 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15120 relative.
15121 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15122 reason.
15123
427ec082 15124 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15125 menu bar.
15126 (clear_window_records): Clear window rows.
15127 (clear_frame_records): Clear window and frame rows.
15128 (clear_glyph_matrix): Set all rows of a matrix to empty.
15129
15130 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P. Update
15131 frame if set.
15132 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15133 removed.
15134 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15135 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15136
15137 * dispnew.c (assign_row): Assign one glyph row to another.
15138 (mirrored_make_current): Use it.
15139 (mirror_make_current): Use it.
15140 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15141 used counters for the current glyph row.
427ec082 15142
26901792
DL
15143
15144Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15145
15146 * lisp.h: Prototype for SCAN_BUFFER.
15147
15148 * xdisp.c (redisplay_windows): Simplified.
15149
15150 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15151 with debug checks.
15152 (window_to_frame_hpos): Convert window to frame hpos with checks.
15153 (frame_to_window_vpos): Convert frame to window vpos with checks.
15154 (frame_to_window_hpos): Convert frame to window hpos with checks.
15155
15156 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15157
15158 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15159
15160 * xdisp.c (redisplay_internal): Another instance of
15161 DISPLAY_TEXT_LINE with window relative VPOS.
15162 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15163
15164 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15165 only.
15166
15167 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15168 (redisplay_internal): Ditto.
15169
15170 * dispnew.c (cancel_window_line): Use window matrix. Changed
15171 name to CANCEL_WINDOW_LINE.
15172
15173 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15174 relative VPOS.
15175
427ec082
SS
15176 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15177 to frame vpos.
26901792
DL
15178 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15179 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15180 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15181
15182 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15183 window relative VPOS.
15184 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15185 relative VPOS.
15186
15187 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15188 MATRIX_BUFFER_POSITIONS.
15189
15190 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15191
15192 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15193
427ec082 15194 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15195 matrix. Change name to scroll_full_width_window.
15196
15197 * xdisp.c (message2_nolog): Don't fwrite NULL message If
15198 NONINTERACTIVE.
15199
15200Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15201
15202 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15203 and window matrices.
26901792
DL
15204 (adjust_window_charstarts): Use window matrix.
15205 (cancel_my_columns): Use window matrix.
15206 (direct_output_for_insert): Use window matrix, only.
15207
15208 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15209 (display_string): Call display_glyphs.
15210 (display_menu_bar_string): Display a string in a menu bar line.
15211 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15212 (display_text_line): Use window matrix.
15213 (try_window): Use window relative positions.
15214
15215Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15216
15217 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
15218 (0, 0).
15219 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
15220 top-most windows.
15221
15222 * window.h (WINDOW_TOPMOST_P): Added.
15223
15224 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15225 (redisplay_window): Ditto.
15226 (display_text_line): Ditto.
15227 (display_menu_bar): Ditto.
15228 (display_mode_line): Ditto.
15229 (display_mode_line): Use window matrix.
15230 (display_string): Use window matrix.
15231 (display_mode_element): Ditto.
15232 (echo_area_display): Don't display if frame has no pools yet.
15233 (echo_area_display): Work with window matrix for mini window.
15234 (redisplay_window): Use window marix for mini window.
15235 (display_text_line): Assume HPOS and VPOS are window relative and
15236 use that for DISPLAY_STRING.
15237
15238 * dispextern.h: Prototype for prepare_desired_row.
15239
15240 * dispnew.c (prepare_desired_row): Replacement for
15241 GET_DISPLAY_LINE.
15242
15243 * dispnew.c (adjust_window_charstarts): Always allocate window
15244 matrices.
15245 (clear_glyph_row): Only reset used counters and flags.
15246
15247Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15248
15249 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15250 line is non-empty.
26901792
DL
15251 (realloc_glyph_pool): Don't add 1 to the pool size.
15252 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15253
15254 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15255 (line_draw_cost): Ditto.
15256 (update_line): Ditto.
15257 (update_line): Use SPACE_GLYPH.
15258 (count_blanks): Additional parameter LEN.
15259
15260 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15261 (display_text_line): Don't add null-glyph end marker.
15262 (display_string): Use SPACE_GLYPH.
15263 (display_string): Don't use null-glyph end marker.
15264
15265 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15266
15267 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15268 (fill_up_glyph_row_with_spaces): Ditto.
15269 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15270 rows, instead of null-glyphs.
15271 (direct_output_for_insert): Don't add null-glyph end marker.
15272
15273 * scroll.c (do_direct_scrolling): Change algorithm to construct
15274 vector of lines assigned. Call MIRRORED_LINE_DANCE:
15275 (do_scrolling): Ditto.
15276
15277 * dispnew.c (mirror_line_dance): Mirror line assignments in a
15278 frame matrix in window matrices.
15279 (mirrored_line_dance): Do line assignments during scrolling.
15280 Maybe do corresponding assignments in window matrices.
15281 (check_window_matrix_pointers): Check that window rows and frame
15282 rows agree about glyph pointers.
15283 (check_matrix_pointers): Ditto.
15284 (mirrored_make_current): Make a row of a desired matrix current;
15285 maybe mirror the operation in window matrices.
15286 (mirror_make_current): Make window desired matrix row current when
15287 frame matrix row was made current.
15288
15289Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15290
15291 * dispnew.c (check_matrix_pointer_lossage): Check against
15292 pointer lossage in matrices.
15293 (get_glyph_matrix_row): Removed.
15294
15295 * scroll.c (do_scrolling): Simplified.
15296 (do_direct_scrolling): Simplified.
15297 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
15298 DO_.*SCROLLING.
427ec082 15299
26901792
DL
15300
15301 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15302 (rotate_vector): Removed.
15303 (rotate_pointers): Removed.
15304 (scroll_frame_lines): Simplified.
15305
15306Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15307
15308 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15309
15310 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15311 what the name says.
15312 (clear_glyph_row): Make a glyph row structure empty.
15313 (make_matrix_row_current): Make a glyph row current.
15314 (make_window_matrix_row_current): Perform analogous row swaps
15315 for window matrices.
15316 (update_line): Call make_matrix_row_current.
15317
15318Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15319
15320 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15321 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15322 INVERSE_P.
15323 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15324 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15325
15326 * all files: use above new names.
15327
15328 * dispnew.c (scroll_frame_lines): Simplified. Use
15329 SCROLL_GLYPH_MATRIX.
15330 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15331 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15332 buffer positions in a glyph row.
15333 (increment_glyph_matrix_buffer_positions): Increment buffer
15334 positions in a range of rows.
15335 (scroll_glyph_matrix): Scroll a glyph matrix.
15336 (swap_glyphs_in_rows): Swap glyphs between rows.
15337 (swap_glyph_pointers): Swap pointers between rows.
15338 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15339 (init_display): Initialize SPACE_GLYPH.
15340 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15341 spaces.
26901792
DL
15342
15343Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15344
15345 * xterm.c (dumprectangle): Use vectors in glyph rows.
15346
15347 * xdisp.c (display_text_line): Use vectors in glyph rows.
15348 (display_string): Ditto.
15349
15350 * scroll.c (do_scrolling): Use vectors in glyph rows.
15351 (do_direct_scrolling): Ditto.
15352
15353 * alloc.c (mark_object): Use vectors in glyph rows.
15354 Mark for all frame types.
15355
15356 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15357 glyph rows.
15358 (get_glyph_matrix_row): Ditto.
15359 (matrix_row): Ditto.
15360 (rotate_pointers): Ditto.
15361 (scroll_frame_lines): Ditto.
15362 (preserve_other_columns): Ditto.
15363 (cancel_my_columns): Ditto.
15364 (update_line): Ditto.
15365 (direct_output_for_insert): Ditto.
15366
15367 * dispextern.h (struct glyph_row): Use a vector of pointers
15368 instead of individual members. Use a vector of used counters.
15369 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15370 (MATRIX_ROW_GLYPH_START): Ditto.
15371 (MATRIX_ROW_GLYPH_END): Ditto.
15372 (MATRIX_ROW_USED): Ditto.
15373 (MATRIX_ROW_SET_USED): Ditto.
15374
15375 * dispnew.c (line_hash_code): Simplified.
15376
15377Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15378
15379 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15380 CHANGE_FRAME_SIZE_1
15381 (preserve_other_columns): Void return.
15382 (cancel_my_columns): Void return type.
15383 (scrolling): Int return type.
15384 (do_pending_window_change): Void return type.
15385 (change_frame_size): Ditto.
15386 (bitch_at_user): Ditto.
15387 (init_display): Ditto.
15388 (syms_of_display): Ditto.
15389
15390 * dispextern.h: add prototypes for REDRAW_FRAME,
15391 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15392 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15393 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15394 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15395 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15396 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
15397 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15398
26901792
DL
15399 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
15400 void.
15401 (cancel_line): Return void.
15402 (clear_frame_records): Return void.
427ec082 15403
26901792
DL
15404 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15405 (SET_CHAR_GLYPH): Fill a character glyph.
15406 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15407 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15408 glyph.
26901792
DL
15409 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15410 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15411 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15412 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15413 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15414 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15415 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15416 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15417 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15418
15419 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15420
15421 * window.h (struct window): Add comment that no Lisp data may
15422 come below CURRENT_MATRIX.
15423
15424 * alloc.c (mark_object): Change window mark code to stop with
15425 member CURRENT_MATRIX.
15426
15427Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15428
15429 * scroll.c (do_scrolling): Change algorithm to use pointers.
15430 (do_direct_scrolling): Ditto.
15431
15432 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15433 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15434 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15435 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
15436 Returns 1 if pool changed.
15437 (matrix_row): Additional check for lost pointers to glyph rows.
15438 (compute_matrices): Additional parameter DIM_P set means that no
15439 allocation should take place. Addtional parameter
15440 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
15441 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
15442 when window matrix changes. Additional parameter DIM_ONLY_P set
15443 to 1 to indicate that no allocation should take place.
15444 (adjust_frame_glyphs): Construct new glyph pools and glyph
15445 matrices. Optimize frame redraws.
15446 (free_glyphs): Free pools.
15447 (check_glyph_memory): Check pools not freed.
15448 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15449 (scroll_frame_lines): Change algorithm to use pointers.
15450 (update_line): Ditto.
15451
15452 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15453 (global): All macro names changed from prefix FRAME_MATRIX to
15454 MATRIX.
15455
15456Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15457
15458 * dispextern.h (struct glyph_pool): Replacement for former
15459 FRAME_GLYPH_MATRIX.
15460 (struct glyph_matrix): No longer contains sizes of allocated
15461 areas.
15462
15463 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15464 no glyph pools.
15465
15466 * frame.c (make_frame): Initialize pools.
15467
15468Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
15469
427ec082 15470 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
15471 line moving algorithm has no intermediate steps.
15472 (do_scrolling): Ditto.
15473
15474 * Makefile.in (alloc.o): Add dependency dispextern.h.
15475
15476 * alloc.c: Include dispextern.h for glyph definitions.
15477
15478 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
15479 is legal, return 0 otherwise.
15480
15481 * window.h: Add comment that windows are marked specially.
15482
15483 * alloc.c (mark_object): Mark windows specially.
15484
15485
15486Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
15487
15488 * dispextern.h (struct glyph): Add member OBJECT
15489 referencing a Lisp object from which a glyph was drawn.
15490 Member TEXT_POSITION renamed POSITION.
15491 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
15492
15493 * alloc.c: Include dispextern.h
15494 (mark_object): Mark objects referenced from glyphs.
15495
f28eba7b 15496 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
15497
15498 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
15499 (do_scrolling): Ditto.
15500
427ec082 15501 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
15502 DECODE_MODE_SPEC_BUFFER added.
15503
15504 * window.h: TEMP_MATRIX removed.
15505
15506 * scroll.c: OPHYS_LINES removed.
15507
15508 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
15509 FRAME_PTR -> struct frame *.
15510
15511 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
15512 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15513
15514 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
15515 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15516
15517 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
15518 (do_verify_charstarts): Removed.
15519
15520 * frame.c (Fmake_terminal_frame): Adjust glyphs.
15521 (Fdelete_frame): Free glyphs.
15522 (make_frame): Initialize matrix fields in frame.
15523
f28eba7b 15524 * config.in (PROTO): Added.
26901792 15525
f28eba7b 15526 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
15527
15528 * window.c (Fdelete_window): Free window matrices.
15529 (Fset_window_configuration): Ditto.
15530 (Fdelete_window): Adjust glyphs.
15531 (Fsplit_window): Ditto.
15532 (change_window_height): Ditto.
15533 (Fset_window_configuration): Ditto.
15534 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
15535 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
15536
15537 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
15538
15539 * window.c: Include dispextern.h
15540
15541 * scroll.c (do_scrolling): Use new glyphs.
15542 (do_direct_scrolling): Ditto.
15543
15544 * xdisp.c: Some function prototypes.
15545 (redisplay_internal): Don't do anything if matrices not yet set.
15546 (redisplay_internal): Use new glyphs.
15547 (try_window_id): Ditto.
15548 (copy_part_of_rope): Ditto.
15549 (display_text_line): Ditto.
15550 (display_menu_bar): Ditto.
15551 (display_mode_line): Ditto.
15552 (display_string): Ditto.
15553
15554 * xterm.c: Prototypes for some local functions.
15555 (dumpglyphs): Use new glyphs.
15556 (XTwrite_glyphs): Ditto.
15557 (dumprectangle): Ditto.
15558 (note_mouse_highlight): Ditto.
15559 (fast_find_position): Ditto.
15560 (show_mouse_face): Ditto.
15561 (x_draw_single_glyph): Ditto.
15562 (x_display_bar_cursor): Ditto.
15563 (x_display_box_cursor): Ditto.
15564 (x_new_font): Adjust glyphs when font change.
15565
15566 * term.c (clear_end_of_line): Use new glyphs.
15567 (write_glyphs): Ditto.
15568 (insert_glyphs): Ditto.
15569
15570 * Makefile.in (term.o): term.c depends on dispextern.h
15571
15572 * term.c: Include dispextern.h
15573
15574 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 15575 removed, new inserted.
26901792
DL
15576 (line_hash_code): Use new glyphs.
15577 (line_draw_cost): Ditto
15578 (cancel_line): Ditto
15579 (clear_frame_records): Ditto.
15580 (init_desired_glyphs): Ditto.
15581 (get_display_line): Ditto
15582 (scroll_frame_lines): Ditto.
15583 (preserve_other_columns): Ditto.
15584 (adjust_window_charstarts): Ditto.
15585 (cancel_my_columns): Ditto.
15586 (direct_output_for_insert): Ditto.
15587 (update_frame): Ditto.
15588 (quit_error_check): Made empty.
15589 (scrolling): Use new glyphs.
15590 (count_blanks): Ditto.
15591 (count_match): Ditto.
15592 (update_line): Ditto.
15593 (init_display): Adjust glyphs initially.
15594 (change_frame_size_1): Adjust glyphs.
15595
15596 * dispextern.h: Old glyphs removed, new added.
15597
15598 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
15599
15600 * xterm.h: Prototype for min_char_bounds.
15601
15602 * window.h (struct window): Remove old glyphs, add new.
15603
15604 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 15605
26901792
DL
156061999-07-20 Dave Love <fx@gnu.org>
15607
15608 * buffer.c (syms_of_buffer): Make
15609 default-enable-multibyte-characters a user variable.
15610
156111999-07-14 Richard Stallman <rms@gnu.org>
15612
15613 * Version 20.4 released.
15614
156151999-07-14 Richard Stallman <rms@gnu.org>
15616
15617 * filelock.c (lock_file): Do nothing if purifying.
15618
156191999-07-10 Richard Stallman <rms@gnu.org>
15620
15621 * xterm.c (x_display_bar_cursor): Use the cursor-color
15622 to display the bar, not the cursor foreground pixel.
15623
156241999-07-09 Andrew Innes <andrewi@gnu.org>
15625
15626 * w32console.c (w32_use_full_screen_buffer): New variable.
15627 (syms_of_ntterm): Register it.
15628 (initialize_w32_display): Set initial frame size accordingly,
15629 respecting the LINES and COLUMNS environment variables if set.
15630
15631 * w32inevt.c (w32_console_read_socket): Use it.
15632
156331999-07-07 Kenichi Handa <handa@etl.go.jp>
15634
15635 * callproc.c (Fcall_process): Decide coding system for decoding
15636 after we set to the target buffer. If the output goes to a
15637 unibyte buffer, suppress character code conversion.
15638
15639 * fileio.c (Finsert_file_contents): If reading into a unibyte
15640 buffer, suppress character code conversion.
15641
15642 * process.c (create_process): If the output goes to a unibyte
15643 buffer, suppress character code conversion.p
15644
156451999-07-07 Andreas Schwab <schwab@gnu.org>
15646
15647 * xdisp.c (line-number-display-limit): Doc fix.
15648
156491999-07-05 Richard Stallman <rms@gnu.org>
15650
15651 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
15652 (Fcall_process_region): Likewise.
15653
156541999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
15655
15656 * callproc.c (init_callproc): Set exec_directory if
15657 installation_directory is non-nil, without a test of exec_path.
15658
156591999-07-01 Andrew Innes <andrewi@gnu.org>
15660
15661 * w32xfns.c (drain_message_queue): New function.
15662
15663 * w32term.h (drain_message_queue): Add extern.
15664
15665 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
15666 of WaitForMultipleObjects when user input is allowed, so we can
15667 handle incoming window messages. Call drain_message_queue when
15668 there are messages waiting; this ensures that windows created
15669 indirectly from the lisp thread get processed properly, and don't
15670 hang other applications by failing to respond to broadcasts.
15671
156721999-07-01 Andreas Schwab <schwab@gnu.org>
15673
15674 * callint.c (Fcall_interactively): Ignore first element of
15675 event-symbol-elements property.
15676
156771999-07-01 Richard Stallman <rms@gnu.org>
15678
15679 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
15680
156811999-07-01 Kenichi Handa <handa@etl.go.jp>
15682
15683 * minibuf.c (read_minibuf): Set the multibyteness of the
15684 minibuffer before inserting `initial' string.
15685
156861999-06-30 Richard Stallman <rms@gnu.org>
15687
15688 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
15689
156901999-06-29 Richard M. Stallman <rms@gnu.org>
15691
15692 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
15693 Move the handling of MALLOC_CHECK_ envvar here.
15694 (main): Moved from here.
15695
156961999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
15697
15698 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
15699 function, assigned to the global __malloc_initialize_hook pointer.
15700 (main): Move malloc_set_state call into malloc_initialize_hook
15701 so that it happens as early as possible.
15702
157031999-06-27 Richard M. Stallman <rms@gnu.org>
15704
15705 * keyboard.c (read_key_sequence): Properly reinitialize
15706 fkey_map after translating thru Vkey_translation_map.
15707 After translating thru Vfunction_key_map, don't reset
15708 keytrans-start to 0.
15709
157101999-06-24 Geoff Voelker <voelker@cs.washington.edu>
15711
15712 * w32.c (get_emacs_configuration): Use GetVersionEx to
15713 handle NT5.0 correctly. Include build number in configuration.
15714 w32heap.c (osinfo_cache): New variable.
15715 (cache_system_info): Initialize osinfo_cache.
15716 w32heap.h (osinfo_cache): Declare.
15717
157181999-06-24 Richard M. Stallman <rms@gnu.org>
15719
15720 * casefiddle.c (casify_object): Use make_multibyte_string
15721 if we casify a multibyte string.
15722
157231999-06-22 Ken'ichi Handa <handa@gnu.org>
15724
15725 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
15726 del_range_byte instead of del_range_1, set `inserted' to the
15727 number of characters actually inserted.
15728
157291999-06-17 Dave Love <fx@gnu.org>
15730
15731 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
15732
157331999-06-18 Paul Eggert <eggert@twinsun.com>
15734
15735 * filelock.c (BOOT_TIME_FILE): New macro.
15736 (get_boot_time): Use it instead of hardwiring the file name.
15737 Check BOOT_TIME_FILE only after inspecting the kernel directly.
15738
157391999-06-17 Dave Love <fx@gnu.org>
15740
15741 * xdisp.c (invalid_eol_type): Make it unsigned.
15742
157431999-06-17 Karl Heuer <kwzh@gnu.org>
15744
15745 * process.c (send_process): Delete unsafe/redundant assignment.
15746
157471999-06-17 Jason Rumney <jasonr@gnu.org>
15748
15749 * w32term.c (dumprectangle): Handle wide characters properly.
15750
157511999-06-16 Andrew Innes <andrewi@gnu.org>
15752
15753 * s/ms-w32.h (strerror): Override the default implementation of
15754 strerror, so we can map winsock error codes.
15755
15756 * w32.c (sys_strerror): New function.
15757
15758 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
15759
157601999-06-15 Ken'ichi Handa <handa@gnu.org>
15761
15762 * buffer.c (syms_of_buffer): Don't make
15763 enable-multibyte-characters customizable.
15764
157651999-06-15 Richard M. Stallman <rms@gnu.org>
15766
15767 * editfns.c (Fuser_full_name): Doc fix.
15768
157691999-06-14 Tak Ota <ota@atc.sel.sony.com>
15770
15771 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
15772 (get_bitmap_with_cache): Check if CreateBitmap failed.
15773 Adjust cache size dynamically so cache is never larger than the
15774 system limit of GDI resources.
15775 Do cache clearing inline. Move global variables to local scope.
15776
15777
157781999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
15779
15780 * unexsgi.c (unexec): Dump the .rodata section from memory
15781 under IRIX6.5 in order to be able to unexec with gcc.
15782
157831999-06-11 Greg Hudson <ghudson@MIT.EDU>
15784
15785 * indent.c (compute_motion): Fix boundary case.
15786
157871999-06-11 Jason Rumney <jasonr@altavista.net>
15788
15789 * w32term.c (cancel_mouse_face): New function. See equiv
15790 changes to xterm.c on 1996-10-31.
15791 (x_set_window_size): Use cancel_mouse_face.
15792 (w32_read_socket): Use cancel_mouse_face.
15793 Update frame position when size is restored.
15794
157951999-06-04 Richard M. Stallman <rms@gnu.org>
15796
15797 * lread.c (Vuser_init_file): New variable.
15798 (syms_of_lread): Set up Lisp variable.
15799 (Fload): Store the file name there, if var was t before.
15800
158011999-06-04 Paul Eggert <eggert@twinsun.com>
15802
15803 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
15804 doesn't work if the system date is changed, or if the system
15805 is suspended. Look at the last-modified time of
15806 /var/run/random-seed instead.
15807
158081999-06-03 Ken'ichi Handa <handa@gnu.org>
15809
15810 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15811 japanese-jisx0208-1978 correctly.
15812
158131999-06-03 Andrew Innes <andrewi@gnu.org>
15814
15815 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
15816 as possible to be dumped, for safety.
15817
158181999-06-02 Ken'ichi Handa <handa@gnu.org>
15819
15820 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15821 latin-jisx0201 correctly.
15822
158231999-05-26 Ken'ichi Handa <handa@gnu.org>
15824
15825 * charset.h (Vcharset_table): Comment fixed.
15826
158271999-05-24 Richard Stallman <rms@gnu.org>
15828
15829 * coding.c (syms_of_coding): Doc fix.
15830
15831 * buffer.c (syms_of_buffer): Doc fix.
15832
15833 * filelock.c (lock_if_free): After deleting a stale lock,
15834 try again to lock the file.
15835
158361999-05-22 Andrew Innes <andrewi@gnu.org>
15837
15838 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
15839 console window size.
15840 (w32_console_read_socket): Call maybe_generate_resize_event
15841 whenever input events are received, since we don't get told when
15842 the window size changes (as opposed to the buffer size, which we
15843 don't care about).
15844
15845 * w32console.c (clear_frame): Remember that the window width might
15846 be smaller than the screen buffer width.
15847 (write_glyphs): Remove redundant variable attrs. Use
15848 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
15849
158501999-05-20 Andrew Innes <andrewi@gnu.org>
15851
15852 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
15853 loses focus.
15854
15855 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
15856 frame loses focus, and that mouse button state is reset. Ditto
15857 when the menu bar is activated.
15858
158591999-05-18 Richard Stallman <rms@gnu.org>
15860
15861 * abbrev.c (Fdefine_abbrev): Doc fix.
15862
158631999-05-13 Paul Eggert <eggert@twinsun.com>
15864
15865 * filelock.c: Fix performance bug on hosts with large
15866 /var/adm/wtmp files with no boot records.
15867
15868 (boot_time_initialized): New var.
15869 (init_filelock): Initialize it.
15870 (get_boot_time): Use it, instead of nonzero boot_time,
15871 to test whether boot_time is initialized.
15872 Don't invoke utmp routines when dumping.
15873
15874 (get_boot_time): First, try to get the boot time from the
15875 current utmp file, as this can be much faster. Don't try to
15876 get the boot time from utmp and/or wtmp more than once.
15877
15878 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
15879 New arg LATEST. All uses changed.
15880
158811999-05-15 Andrew Innes <andrewi@gnu.org>
15882
15883 * w32term.c (dumpglyphs): Use correct colours for drawing
15884 rectangles in place of missing fonts, and make them the right
15885 size.
15886
158871999-05-14 Dave Love <fx@gnu.org>
15888
15889 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
15890 non-nil.
15891
158921999-05-11 Andrew Innes <andrewi@gnu.org>
15893
15894 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
15895 definition.
15896 (w32_wnd_proc): Reinstall debugging output.
15897 (w32_wnd_proc): Reinstall SetForegroundWindow change.
15898 (syms_of_w32fns): Reinstall new initializer for
15899 Vw32_phantom_key_code.
15900
15901 * w32fns.c (x_to_w32_charset): Do partial matching of charset
15902 names for most non-European charsets, to cope with wildcards or
15903 missing spec dates.
15904 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
15905 to avoid deadlock when activating the menu bar.
15906
159071999-05-10 Ken'ichi Handa <handa@gnu.org>
15908
15909 * search.c (boyer_moore): Get charset base value of `untranslated'
15910 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
15911
159121999-05-10 Andreas Schwab <schwab@gnu.org>
15913
15914 * fileio.c (Fread_file_name): Correct handling of dollars in file
15915 names. Protect dollars in strings put on the file-name-history.
15916 Substitute homedir by `~' also in default_filename.
15917
15918 * xdisp.c (try_window_id): Fix computation of tab_offset when
15919 backing up over a character that is splitted across lines.
15920
159211999-05-08 Kenichi HANDA <handa@etl.go.jp>
15922
15923 * coding.c (code_convert_region): If eol format is inconsistent,
15924 change coding->symbol to the sibling coding system of Unix like
15925 eol format.
15926
159271999-05-09 Richard M. Stallman <rms@gnu.org>
15928
15929 * s/irix5-2.h (NO_WTMP_FILE): Define it.
15930
15931 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
15932
159331999-05-05 Andrew Innes <andrewi@gnu.org>
15934
15935 * w32fns.c (w32_strict_painting): New variable.
15936 (w32_wnd_proc): Use it to select repaint rules.
15937 (syms_of_w32fns): Defvar it.
15938
159391999-05-04 Andrew Innes <andrewi@gnu.org>
15940
15941 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
15942 charsets to the standard Windows charset for Japanese.
15943
159441999-05-04 Ken'ichi Handa <handa@gnu.org>
15945
15946 * xterm.c (x_load_font): Fix typo (`>' -> `=').
15947
15948 * ccl.h (struct ccl_program): New member stack_idx.
15949
15950 * ccl.c (ccl_prog_stack_struct): Declare it as static.
15951 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
15952 before returing.
15953 (setup_ccl_program): Initialize ccl->stack_idx to 0.
15954
159551999-05-03 Jason Rumney <jasonr@altavista.net>
15956
15957 * w32term.c (dumpglyphs): Always fill background for italic fonts.
15958
159591999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
15960
15961 * dired.c (make_time): Make argument type be time_t.
15962
159631999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
15964
15965 * msdos.c (unibyte_display_via_language_environment): Add extern.
15966
83c8f461 159671999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
15968
15969 * xdisp.c (display_text_line): Convert unibyte char to multibyte
15970 if unibyte_display_via_language_environment is set.
15971 (unibyte_display_via_language_environment):
15972 Variable moved from xfns.c and elsewhere.
15973 (syms_of_xfns): Set up Lisp var.
15974
15975 * xfns.c (unibyte_display_via_language_environment):
15976 Variable moved to xdisp.c.
15977 (syms_of_xfns): Don't set up Lisp var here.
15978
15979 * msdos.c (unibyte_display_via_language_environment):
15980 Variable moved to xdisp.c.
15981 (syms_of_msdos): Don't set up Lisp var here.
15982
15983 * w32fns.c (unibyte_display_via_language_environment):
15984 Variable moved to xdisp.c.
15985 (syms_of_w32fns): Don't set up Lisp var here.
15986
159871999-05-02 Andrew Innes <andrewi@gnu.org>
15988
15989 * s/ms-w32.h (HAVE_FSYNC): New macro.
15990 (fsync): Map to _commit.
15991 (ftruncate): Map to _chsize.
15992
15993 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
15994 for ASCII, if enabled, to avoid memory allocation overhead for
15995 implicit Unicode conversion. Also, recognize that ASCII and
15996 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
15997 already contains the Unicode characters in that case.
15998 (construct_drag_n_drop): Remove old code that was
15999 trashing the drop location.
16000
16001 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
16002 nlines to encoding_buffer_size (real bug was in a ccl program in
16003 lisp/international/coding.el).
16004
16005 * w32reg.c (w32_get_string_resource): Check for name in current
16006 user area, and if not found look in the local machine area.
16007
16008 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
16009 (Fw32_shell_execute): New function; used to support browse-url.
16010 (syms_of_w32fns): Register it.
16011 (w32_load_system_font): Force max width to be average
16012 char width for fixed-pitch fonts, to avoid unnecessary redisplay
16013 slowdown.
16014 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
16015 already defined.
16016 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
16017
16018 * unexw32.c (get_section_info): Dump back the entire EMDATA
16019 section if we can put Emacs' initialized data in a separate
16020 section, otherwise use the my_begdata/my_edata method.
16021
16022 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
16023
16024 * coding.c (decode_eol): Set produced/consumed values to zero if
16025 src_bytes is <= 0 on entry.
16026
160271999-05-02 Jason Rumney <jasonr@altavista.net>
16028
16029 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16030 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16031 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16032 field in frame.
16033 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16034 (dumprectangle): Take into account the width of a left-side
16035 scroll bar.
16036
16037 * w32proc.c (sys_kill): Attach to current foreground thread
16038 when grabbing focus; necessary on NT 5.0.
16039
16040 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16041 GetUpdateRect rather than BeginPaint.
16042 (w32_wnd_proc): Attach to current foreground thread
16043 when grabbing focus; necessary on NT 5.0.
16044 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16045 debugging display messages.
16046 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16047 false matching.
16048
160491999-05-02 Kenichi HANDA <handa@etl.go.jp>
16050
16051 * coding.c (setup_raw_text_coding_system): Call
16052 setup_coding_system to initialize the fields of struct
16053 coding_system correctly.
427ec082 16054
26901792
DL
160551999-04-26 Kenichi HANDA <handa@etl.go.jp>
16056
16057 * xterm.c (x_list_fonts): Fix previous change.
16058
160591999-04-26 Richard Stallman <rms@gnu.org>
16060
16061 * config.in (HAVE_LIBXP): Add #undef.
16062 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16063
160641999-04-12 Ken'ichi Handa <handa@gnu.org>
16065
16066 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16067 by them.
16068
160691999-04-12 Karl Heuer <kwzh@gnu.org>
16070
16071 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16072
160731999-04-11 Ken'ichi Handa <handa@gnu.org>
16074
16075 * fontset.c (Fset_fontset_font): Fix previous change.
16076
160771999-04-09 Ken'ichi Handa <handa@gnu.org>
16078
16079 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16080 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16081
160821999-04-08 Richard Stallman <rms@gnu.org>
16083
16084 * process.c (Faccept_process_output): Check validity of PROCESS.
16085
160861999-04-08 Eli Zaretskii <eliz@gnu.org>
16087
16088 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16089
160901999-04-07 Richard Stallman <rms@gnu.org>
16091
16092 * xfns.c (x_set_font): Fix error message.
16093
16094 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16095 (Fnew_fontset, Fset_fontset_font): Check for them here.
16096 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16097 Fix error message syntax.
16098
16099 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16100 from the base buffer.
16101 (Fset_buffer_multibyte): Copy new multibyte status
16102 into the buffer's indirect buffers.
16103
161041999-04-07 Ken'ichi Handa <handa@gnu.org>
16105
16106 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16107 tail.
16108
161091999-04-06 Richard Stallman <rms@gnu.org>
16110
16111 * dired.c (Ffile_attributes): Doc fix.
16112
16113 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16114 Convert 0200 to meta only in a unibyte string.
16115 (Fkey_description): Likewise.
16116
16117 * eval.c (do_autoload): Preserve match data.
16118
161191999-04-06 Kenichi HANDA <handa@etl.go.jp>
16120
16121 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16122 encode_coding to avoid carryover.
16123
16124 * coding.c: Add comments for decode_coding and encode_coding.
16125
16126 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16127 a composite character by skipping its leading code.
16128 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16129 correctly.
16130
16131 * coding.c: Add comments for decode_coding and encode_coding.
16132
16133 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16134 a composite character by skipping its leading code.
16135 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16136 correctly.
16137
161381999-04-06 Eli Zaretskii <eliz@gnu.org>
16139
16140 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16141 table was used.
16142 (jp_kbd_translate_table): Support C-\.
16143 (it_kbd_translate_table): Map `>' correctly.
16144 (it_keyboard): Add `>'.
16145
161461999-04-06 Richard Stallman <rms@gnu.org>
16147
16148 * intervals.c (graft_intervals_into_buffer): Turn off
16149 inhibit_modification_hooks around calling Fset_text_properties.
16150
161511999-04-05 Kenichi HANDA <handa@etl.go.jp>
16152
16153 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16154 glyphs.
16155
161561999-04-05 Eli Zaretskii <eliz@gnu.org>
16157
16158 * msdos.c (jp_kbd_translate_table): Fix last change.
16159
161601999-04-04 Eli Zaretskii <eliz@gnu.org>
16161
16162 * msdos.c (struct kbd_translate): New struct, for key translation
16163 tables private to certain national keyboard layouts.
16164 (struct dos_keyboard_map): Add a pointer to a private translation
16165 table.
16166 (jp_kbd_translate_table): Private table for the Japanese
16167 keyboard.
16168 (jp_keyboard): Japanese keyboard layout.
16169 (it_kbd_translate_table): Private table for the Italian keyboard.
16170 (it_keyboard): Use it_kbd_translate_table.
16171 (keyboard_layout_list): Add the Japanese keyboard.
16172 (dos_rawgetc): Use the keyboard-private translation table, if
16173 available.
16174 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16175
161761999-04-02 Kenichi HANDA <handa@etl.go.jp>
16177
16178 * xdisp.c (redisplay_window): When we call compute_motion with
16179 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16180 (display_text_line): Stop the loop for processing overlay strings
16181 when we reach the right edge of the window.
16182
83c8f461 161831999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16184
16185 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16186 let the data control whether string is unibyte.
16187
161881999-03-30 Richard M. Stallman <rms@gnu.org>
16189
16190 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16191 (pop_kbd_macro): Restore the saved real_this_command.
16192 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16193
161941999-03-26 Richard M. Stallman <rms@gnu.org>
16195
16196 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16197 if buffer-file-name is nil.
16198
161991999-03-25 Jason Rumney <jasonr@altavista.net>
16200
16201 * w32select.c (Fw32_set_clipboard_data): Take into account line
16202 ends when calculating clipboard storage needed for non-ASCII text.
16203
162041999-03-25 Andrew Innes <andrewi@gnu.org>
16205
16206 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16207 (epaths.h): Renamed from paths.h.
427ec082
SS
16208 (clean):
16209 ($(BLD)\filelock.obj):
16210 ($(BLD)\lread.obj):
26901792
DL
16211 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16212
162131999-03-23 Ken'ichi Handa <handa@gnu.org>
16214
16215 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16216 ENCODE_ISO_CHARACTER for the previous change on this macro.
16217
162181999-03-23 Kenichi Handa <handa@etl.go.jp>
16219
16220 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16221 eoltype correctly for backward compatibility.
16222
162231999-03-20 Kenichi HANDA <handa@etl.go.jp>
16224
16225 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16226 invalid, produce the buffer internal byte sequence without encoding.
16227
162281999-03-19 Karl Heuer <kwzh@gnu.org>
16229
16230 * editfns.c (Fformat): Accept %i format.
16231
162321999-03-17 Karl Heuer <kwzh@gnu.org>
16233
16234 * filelock.c (get_boot_time): Test tempname, not filename.
16235
162361999-03-17 Jason Rumney <jasonr@altavista.net>
16237
e5619f6b
JR
16238 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16239 speed display.
16240
16241 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16242 speed display.
16243 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16244 New functions.
16245 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16246 Use bitmap cache.
26901792
DL
16247
16248 * w32fns.c (enum_font_cb2): Set the font height to be the
16249 character height, not the cell height.
16250 (Fw32_select_font): Initialize font dialog with current default font.
16251 (Vw32_system_coding_system): New variable.
16252 (w32_strict_filenames): Add comment.
16253 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16254 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16255 (syms_of_w32fns): Add w32-system-coding-system.
16256
162571999-03-15 Richard M. Stallman <rms@gnu.org>
16258
16259 * xterm.c (XTread_socket) <ConfigureNotify>:
16260 If cursor pos is outside the new frame size, mark cursor as off.
16261
162621999-03-14 Ken'ichi Handa <handa@gnu.org>
16263
16264 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16265
16266 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16267 by them.
16268
162691999-03-14 Richard M. Stallman <rms@gnu.org>
16270
16271 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16272 at beginning.
16273
162741999-03-14 Jason Rumney <jasonr@altavista.net>
16275
16276 * w32fns.c (w32_strict_fontnames): New variable.
16277 (Fx_create_frame): Formatting fix.
16278 (w32_load_system_font): Keep trying to load non-existant font
16279 if w32_strict_fontnames is nil. Formatting fix.
16280 (syms_of_w32fns): Add w32-strict-fontnames.
16281
16282 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16283 (dumpglyphs): Formatting fixes.
16284
162851999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16286
16287 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16288
162891999-03-10 Karl Heuer <kwzh@gnu.org>
16290
16291 * puresize.h (BASE_PURESIZE): Increase to 505000.
16292
162931999-03-09 Richard M. Stallman <rms@gnu.org>
16294
16295 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16296
16297 * filelock.c (init_filelock): New function.
16298
162991999-03-09 Dave Love <fx@gnu.org>
16300
16301 * fileio.c (Ffile_directory_p): Doc fix.
16302
83c8f461 163031999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16304
16305 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16306
163071999-03-08 Richard M. Stallman <rms@gnu.org>
16308
16309 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16310 to only the part that uses get_boot_time_1.
16311
163121999-03-07 Dave Love <fx@gnu.org>
16313
16314 * fileio.c (Finsert_file_contents): Use xfree.
16315
163161999-03-06 Kenichi Handa <handa@etl.go.jp>
16317
16318 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16319 term.o, xselect.o): Depend on ccl.h.
16320
163211999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16322
16323 * makefile.nt: Remove common multiple file compilation commands.
16324
163251999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16326
16327 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16328 newlines added when the arg NO-LINE-BREAK is nil.
16329
163301999-03-04 Karl Heuer <kwzh@gnu.org>
16331
16332 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16333
16334 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16335
163361999-03-04 Dave Love <fx@gnu.org>
16337
16338 * term.c (term_init): Use xmalloc, not malloc.
16339
16340 * callproc.c (Fcall_process): Use xmalloc, xfree.
16341
163421999-03-03 Andreas Schwab <schwab@gnu.org>
16343
16344 * eval.c (Fdefconst): Doc fix.
16345
163461999-03-01 Kenichi Handa <handa@etl.go.jp>
16347
16348 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16349
163501999-03-01 Eli Zaretskii <eliz@gnu.org>
16351
16352 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16353
163541999-02-28 Richard M. Stallman <rms@gnu.org>
16355
16356 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16357
16358 * cmds.c (internal_self_insert): Calculate column properly
16359 in overwrite-of-tab case.
16360
163611999-02-27 Andreas Schwab <schwab@gnu.org>
16362
16363 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16364 malloc in glibc 2.1.
16365
163661999-02-26 Richard Stallman <rms@gnu.org>
16367
16368 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16369
16370 * epaths.in: Renamed from paths.in.
16371 This avoids a conflict with a system header file paths.h on GNU/Linux.
16372
16373 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16374 Use epaths.h istead of paths.h.
16375
163761999-02-26 Andreas Schwab <schwab@gnu.org>
16377
16378 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16379 malloc.
16380
163811999-02-25 Dave Love <fx@gnu.org>
16382
16383 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16384
163851999-02-25 Richard Stallman <rms@gnu.org>
16386
16387 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16388 (WTMP_FILE): Default definition in case not defined.
16389 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16390
26901792
DL
163911999-02-25 Ken'ichi Handa <handa@gnu.org>
16392
16393 * keymap.c (push_key_description): If enable-multibyte-characters
16394 is nil and C is single byte, push C as is.
16395
163961999-02-24 Kenichi Handa <handa@etl.go.jp>
16397
16398 * keymap.c (push_key_description): If enable-multibyte-characters
16399 is non-nil, try to convert unibyte character to multibyte. For
16400 invalid multibyte character, show all bits by octal form.
16401 (Fsingle_key_description): Check the validity of charset for a
16402 generic character.
16403
164041999-02-23 Richard M. Stallman <rms@gnu.org>
16405
16406 * fileio.c (Ffile_regular_p): Undo previous change.
16407
16408 * eval.c (Fdefconst): Doc fix.
16409
16410 * filelock.c (get_boot_time): Don't use BUFSIZ.
16411
164121999-02-22 Andrew Innes <andrewi@gnu.org>
16413
16414 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16415 (EXTRA_LINK): Do version test with strings.
16416
164171999-02-22 Andreas Schwab <schwab@gnu.org>
16418
16419 * fns.c (Fbase64_encode_string): Fix last change.
16420
16421 * termhooks.h (event_kind): Add user_signal.
16422
16423 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16424 (syms_of_keyboard): Initialize them.
16425 (lispy_user_signals): New variable.
16426 (make_lispy_event): Handle user_signal event type.
16427
16428 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16429 (syms_of_emacs): Don't initialize them.
16430 (handle_USR1_signal, handle_USR2_signal): Set event type to
16431 user_signal instead of non_ascii_keystroke, and use plain integers
16432 as code instead of Lisp symbols.
16433
164341999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16435
16436 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16437
164381999-02-21 Richard Stallman <rms@gnu.org>
16439
16440 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16441
16442 * print.c (print_error_message): Don't crash if (cdr data)
16443 is not a list.
16444
164451999-02-21 Eli Zaretskii <eliz@gnu.org>
16446
16447 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16448
164491999-02-20 Andrew Innes <andrewi@gnu.org>
16450
16451 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16452 run, since size can vary from run to run.
16453
16454 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16455 data is included, to enable profiling.
16456 ($(EMACS)): Map file not needed for emacs.exe.
16457
16458 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16459 as malloc before calling uninterrupt_malloc, for consistency.
16460 This also enables profiling to work on WINDOWSNT.
16461
164621999-02-18 Richard Stallman <rms@gnu.org>
16463
16464 * Makefile.in (emacs.o): Depend on termhooks.h.
16465 (filelock.o): Depend on systime.h.
16466
164671999-02-18 Ken'ichi Handa <handa@gnu.org>
16468
16469 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
16470 (Fdecode_big5_char): Likewise.
16471
164721999-02-17 Richard Stallman <rms@gnu.org>
16473
16474 * insdel.c (adjust_markers_for_replace): When doing an insertion
16475 (replacing a region of zero length), handle markers at the
16476 insertion point properly.
16477
164781999-02-17 Andrew Innes <andrewi@gnu.org>
16479
16480 * w32fns.c (Vw32_quit_key): New variable.
16481 (post_character_message): Use it.
16482 (syms_of_w32fns): DEFVAR it.
16483
164841999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
16485
16486 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
16487
164881999-02-16 Richard Stallman <rms@gnu.org>
16489
16490 * filelock.c (within_one_second): New function.
16491 (current_lock_owner): Use that.
16492 (get_boot_time): Use /proc/uptime if available.
16493 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
16494 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 16495
26901792
DL
164961999-02-16 Richard Stallman <rms@gnu.org>
16497
16498 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16499 (syms_of_emacs): Init and staticpro them.
16500 (handle_USR1_signal): Don't run any code, just queue up an event.
16501 (handle_USR2_signal): Likewise.
16502
165031999-02-16 Eli Zaretskii <eliz@gnu.org>
16504
16505 * dired.c (Ffile_attributes): If the file's size doesn't fit in
16506 an integer, return it as a float. Doc string fixed.
16507
165081999-02-16 Richard Stallman <rms@gnu.org>
16509
16510 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16511 (syms_of_emacs): Init and staticpro them.
16512 (handle_USR1_signal): Don't run any code, just queue up an event.
16513 (handle_USR2_signal): Likewise.
16514
165151999-02-15 Kenichi Handa <handa@etl.go.jp>
16516
16517 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
16518 ASCII correctly. Signal error on invalid characters.
16519 (Fdecode_big5_char, Fencode_big5_char): Likewise.
16520
165211999-02-15 Eli Zaretskii <eliz@gnu.org>
16522
16523 * w16select.c (get_clipboard_data): Work around a bug in Windows95
16524 DOS box which doubles the reported size of text in the clipboard.
16525
165261999-02-15 Kenichi Handa <handa@etl.go.jp>
16527
16528 * coding.c (decode_coding_iso2022): Don't set
16529 coding->composed_chars to 0 here.
16530 (setup_coding_system): Set coding->composed_chars to 0 here.
16531
165321999-02-10 Richard Stallman <rms@gnu.org>
16533
16534 * fileio.c (Ffile_regular_p): Use lstat.
16535
165361999-02-09 Richard Stallman <rms@gnu.org>
16537
16538 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
16539 (unexec): Test this instead of specific systems.
16540
16541 * m/macppc.h: New file.
16542
165431999-02-08 Dave Love <fx@gnu.org>
16544
16545 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
16546
165471999-02-08 Ken'ichi Handa <handa@gnu.org>
16548
16549 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
16550 should be set to coding->produced.
16551
165521999-02-07 Paul Fisher <rao@gnu.org>
16553
16554 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
16555 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
16556
165571999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16558
16559 * editfns.c (Fformat): Doc fix.
16560
165611999-02-06 Richard Stallman <rms@gnu.org>
16562
16563 * process.c (syms_of_process): defsubr it.
16564 (Fprocess_running_child_p): New function.
16565
165661999-02-05 Andrew Innes <andrewi@gnu.org>
16567
16568 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
16569 recording drop position.
16570
165711999-02-05 Ken'ichi Handa <handa@gnu.org>
16572
16573 * coding.c (encode_coding_iso2022): Before writing out an invalid
16574 code, reset graphic planes and registers if necessary.
16575
16576 * term.c (encode_terminal_code): Fix previous change.
16577
165781999-02-04 Eli Zaretskii <eliz@gnu.org>
16579
16580 * w16select.c (last_clipboard_text, clipboard_storage_size): New
16581 static variables.
16582 (set_clipboard_data): Save a copy of the text we put into
16583 clipboard in last_clipboard_text.
16584 (get_clipboard_data): If the clipboard text is identical to what
16585 last_clipboard_text holds, pretend there's no data in the clipboard.
16586
165871999-02-03 Richard Stallman <rms@gnu.org>
16588
16589 * s/gnu.h (NLIST_STRUCT): Add #undef.
16590
165911999-02-03 Eli Zaretskii <eliz@gnu.org>
16592
16593 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
16594 encoded, set its pointer and size as returned by encode_coding.
16595
165961999-02-02 Ken'ichi Handa <handa@gnu.org>
16597
16598 * fns.c (Fset_char_table_default): To handle the case that CH is
16599 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
16600
166011999-02-02 Andrew Innes <andrewi@gnu.org>
16602
16603 * w32fns.c (syms_of_w32fns): Change default value of
16604 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
16605 some mice works properly.
16606
166071999-02-02 Eli Zaretskii <eliz@gnu.org>
16608
16609 * w16select.c (set_clipboard_data): Correctly null-terminate the
16610 string to be put into the Windows clipboard. Use xbuf_addr.
16611
166121999-02-01 Richard Stallman <rms@gnu.org>
16613
16614 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
16615
166161999-01-31 Richard Stallman <rms@gnu.org>
16617
16618 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
16619 then don't send the signal if the shell owns the terminal.
16620 (Finterrupt_process): Doc change.
427ec082 16621
26901792
DL
166221999-01-31 Andrew Innes <andrewi@gnu.org>
16623
16624 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
16625 (copy_executable_and_dump_data): Use it to ensure alignment slop
16626 is zeroed.
16627
166281999-01-30 Andrew Innes <andrewi@gnu.org>
16629
16630 * w32.c (init_environment): Change argv[0] to contain the full
16631 path to Emacs.
16632
16633 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
16634
166351999-01-29 Ken'ichi Handa <handa@gnu.org>
16636
16637 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
16638 returned by x_new_font (the resolved one) but use the font name
16639 set in the fontset specification.
16640 (x_load_font): For the height of font, if normarl ascent and
16641 descent value are larger than those in max_bounds field, use the
16642 former.
16643
166441999-01-28 Eli Zaretskii <eliz@gnu.org>
16645
16646 * xdisp.c (decode_mode_spec_coding): Fix previous change.
16647
166481999-01-27 Geoff Voelker <voelker@cs.washington.edu>
16649
16650 * makefile.nt: Use full path to temacs.exe when dumping.
16651
166521999-01-27 Jason Rumney <jasonr@altavista.net>
16653
16654 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
16655 list was reliable.
16656 (enum_fontex_cb1, enum_fontex_cb2): New functions.
16657 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
16658 (w32_list_synthesized_fonts): New function.
16659 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
16660 available instead of EnumFontFamilies. List synthesized fonts if
16661 Vw32_enable_italics is non-nil.
427ec082 16662
26901792
DL
166631999-01-27 Richard Stallman <rms@gnu.org>
16664
16665 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
16666 Don't complain if ttcompat does not exist.
16667
16668 * w32fns.c (x_set_frame_parameters): gcpro as needed.
16669
166701999-01-27 Andrew Innes <andrewi@gnu.org>
16671
16672 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
16673 the lwindow, rwindow and apps keys could not be used as function
16674 keys, because they were being passed to TranslateMessage which
16675 ignores them. Also, key was being changed to SPC.
16676
16677 * makefile.nt: Do make version comparison as strings.
16678
166791999-01-27 Eli Zaretskii <eliz@gnu.org>
16680
16681 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
16682 strings, not characters.
16683
16684 * coding.h: Likewise.
16685
16686 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
16687 string.
16688
166891999-01-26 Dave Love <fx@gnu.org>
16690
16691 * emacs.c (main): Up-date copyright.
16692
166931999-01-25 Dave Love <fx@gnu.org>
16694
16695 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16696
166971999-01-25 Andreas Schwab <schwab@gnu.org>
16698
16699 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
16700
167011999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
16702
16703 * xfns.c (x_set_frame_parameters): gcpro as needed.
16704
16705 * window.c (Fset_window_point): If WINDOW is selected but the
16706 current buffer is not its buffer, don't use Fgoto_char.
16707
167081999-01-22 Richard M. Stallman <rms@gnu.org>
16709
16710 * syntax.c (scan_sexps_forward): Delete duplicate code
16711 to set prev_from_syntax, above start of main loop.
16712 At startinstring, check syntax when checking for a match.
16713
167141999-01-22 Jason Rumney <jasonr@altavista.net>
16715
16716 * w32bdf.c: New file.
16717 * w32bdf.h: New file.
16718 * makefile.nt: Add w32bdf.c and w32bdf.h.
16719
16720 * w32gui.h: Include w32bdf.h.
16721 (W32FontStruct) Add bdf element.
16722
16723 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
16724 Support BDF fonts.
16725
16726 * w32term.c (W32_TEXTOUT): New macro.
16727 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
16728 Simplify baseline calculation. Detect SJIS by font, not glyph.
16729 Call SetTextAlign.
16730 (syms_of_w32term): Remove "jisx0212-sjis" from
16731 w32-charset-to-codepage-alist.
16732 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
16733 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 16734
26901792
DL
16735 * w32fns.c (Vw32_bdf_filename_alist): New variable.
16736 (x_destroy_bitmap): Returns void not int.
16737 (x_set_border_pixel): Returns void.
16738 (w32_load_bdf_font): New function.
16739 (w32_load_system_font): New function, was w32_load_font. List
16740 fonts before loading. Explicitly set encoding for SJIS fonts.
16741 Set default_ascent to 0 as comment indicates.
16742 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
16743 (w32_unload_font): Support BDF fonts.
16744 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
16745 Autodetect whether to use koi8-r instead of iso8859-5.
16746 Associate "ksc5601.1987" with HANGUEL_CHARSET.
16747 Associate "ksc5601.1992" with JOHAB_CHARSET.
16748 (x_to_w32_charset): Make consistent with w32_to_x_charset.
16749 (w32_to_x_font): Add resolution.
16750 (x_to_w32_font): Use font resolution to calculate height if supplied.
16751 (w32_font_match): Handle wildcards anywhere within field.
16752 (enumfont_t): Remove unused head pointer.
16753 (enum_font_cb2): Dereference elfLogFont.
16754 (w32_list_bdf_fonts): New function.
16755 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
16756 valid frame. Remove MessageBox. Support BDF fonts.
16757 (Fw32_find_bdf_fonts): New function.
16758 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
16759 Sw32_find_bdf_fonts.
16760
167611999-01-21 Andrew Innes <andrewi@gnu.org>
16762
16763 * makefile.nt (temacs): Use del to delete file, not rm.
16764
167651999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
16766
16767 * keyboard.c (read_key_sequence): Fix previous change.
16768
16769 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
16770 as the same. Treat "myname:0" as the same as those two.
16771
167721999-01-19 Jason Rumney <jasonr@altavista.net>
16773
16774 * w32fns.c (x_to_w32_charset): Add iso8859-9.
16775 (w32_to_x_charset): Fix charset mappings.
16776
16777 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
16778 (dumpglyphs): Move definitions out of block containing goto.
16779 Remove redundant code for BIG5.
16780 Use w32_codepage_for_font instead of
16781 w32_codepage_for_charset. Add cast to int where float
16782 operation is assigned to int.
16783 (Vw32_charset_to_codepage_alist): New variable.
16784 (w32_codepage_for_charset): Removed.
427ec082
SS
16785 (w32_codepage_for_font): New function, replacing
16786 w32_codepage_for_charset.
26901792
DL
16787 (syms_of_w32term): Add and initialize
16788 w32-charset-to-codepage-alist.
16789
167901999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
16791
16792 * xselect.c (x_handle_selection_clear): Don't clear the
16793 selection if Emacs still owns it through a different display.
16794
167951999-01-17 Andrew Innes <andrewi@gnu.org>
16796
16797 * w32proc.c: (w32_executable_type): Relax the check to identify
16798 cygwin-compiled applications, because the exact dll name varies
16799 with release. Now only require the name to start "cygwin".
16800
16801 * w32heap.h: (ROUND_UP):
16802 (ROUND_DOWN): New macros.
16803 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16804 (init_heap): New extern.
16805 (data_region_size):
16806 (recreate_heap):
16807 (read_in_bss):
16808 (map_in_heap):
16809 (round_to_next):
16810 (w32_fatal_reload_error):
16811 (get_section_size): Obsolete externs removed.
16812
16813 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
16814 current process.
16815 (round_to_next): Obsolete function removed.
16816 (preload_heap_section): New variable.
16817 (data_region_size): Obsolete variable removed.
16818 (allocate_heap): Modified to determine end of static heap section
16819 used during preload, and use that as initial base address for
16820 dynamic heap instead of hard-coded value.
16821 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
16822 calls to commit or decommit pages when allocating from static heap
16823 section during preload.
16824 (recreate_heap): Obsolete function removed.
16825 (init_heap): New function to initialize internal sbrk heap
16826 variables. Uses static heap section during preload, otherwise
16827 calls allocate_heap to reserve a heap region dynamically.
16828 (round_heap): Use ROUND_UP macro instead of round_to_next.
16829
16830 * unexw32.c: Major rewrite to support cleaner method of dumping; a
16831 static "bss" section is used for heap space during preload, and
16832 bss data is now written to the proper section area when dumping.
16833 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16834 (heap_index_in_executable): Obsolete variable removed.
16835 (data_section): New variable.
16836 (data_start_va): Renamed to data_start.
16837 (data_start_file): Obsolete variable removed.
16838 (bss_section):
16839 (extra_bss_size):
16840 (bss_section_static):
16841 (bss_start_static):
16842 (bss_size_static):
16843 (extra_bss_size_static):
16844 (heap_section): New variables.
16845 (_start): Remove code based on old unexec method. Call init_heap
16846 to initialize sbrk heap.
16847 (close_file_data): Update size of file when closing, so that
16848 unexec doesn't have to work out exact size in advance.
16849 (get_bss_info_from_map_file):
16850 (get_section_size): Obsolete functions removed.
16851 (rva_to_section): Fix minor bug, and add a work-around for a bug
16852 in very old linkers.
16853 (offset_to_section):
16854 (relocate_offset): New functions.
16855 (OFFSET_TO_RVA):
16856 (RVA_TO_OFFSET):
16857 (RVA_TO_SECTION_OFFSET):
16858 (PTR_TO_RVA):
16859 (PTR_TO_OFFSET):
16860 (OFFSET_TO_PTR): New macros.
16861 (get_section_info): Modify to support new unexec method;
16862 determines address ranges in process that need dumping, and COFF
16863 sections where data will be dumped. Allows for static and global
16864 bss data to be in separate ranges. No longer relies on knowledge
16865 of section names.
16866 (copy_executable_and_dump_data_section): Renamed
16867 copy_executable_and_dump_data. Completely rewritten to copy
16868 executable section by section, so that raw data areas can be
16869 expanded to hold dumped data as necessary. Allows for bss data to
16870 be in same section as initialized data. Reduces size of static
16871 heap section to that used during preload.
16872 (dump_bss_and_heap):
16873 (w32_fatal_reload_error):
16874 (read_in_bss):
16875 (map_in_heap): Obsolete functions removed.
16876 (unexec): Rounds off preload heap to nearest page rather than
16877 virtual allocation unit. Modified to match other changes.
16878
16879 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
16880 data_region_size.
16881
16882 * makefile.nt: (TEMACS_TMP): New macro.
16883 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
16884 processor to add static heap section in support of new unexec.
16885
16886 * lastfile.c: Include config.h to pick up data layout pragmas.
16887 [WINDOWSNT]: Remove explicit pragma.
16888
168891999-01-12 Kenichi Handa <handa@etl.go.jp>
16890
16891 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
16892 correctly.
16893 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
16894
168951999-01-11 Dave Love <fx@gnu.org>
16896
16897 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16898
168991999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
16900
16901 * keyboard.c (read_key_sequence): In key-translation-map and
16902 function-key-map, handle symbol with array as fn def.
16903 In function-key-map, handle symbol with keymap as fn def,
16904 and autoloaded definitions.
427ec082 16905
26901792
DL
16906 * puresize.h (BASE_PURESIZE): Increment to 500000.
16907
16908 * print.c (Qtemp_buffer_setup_hook): New variable.
16909 (syms_of_print): Init and staticpro that.
16910 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
16911
169121999-01-11 Kenichi Handa <handa@etl.go.jp>
16913
16914 * insdel.c (del_range_1): Call signal_after_change.
16915 (del_range_byte): Likewise.
16916 (del_range_both): Likewise.
16917 (del_range_2): Don't call signal_after_change.
16918
16919 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
16920 Lisp code here.
16921
169221999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
16923
16924 * eval.c (find_handler_clause): If SIG is nil (memory full error),
16925 never run the debugger, and don't bother checking the args
16926 to see whether the debugger should be run.
16927
169281999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
16929
16930 * keyboard.c (read_key_sequence):
16931 Tell get_keyelt to look handle autoloads.
16932 Handle symbols defined as keymaps, and autoloaded keymaps.
16933
169341999-01-06 Kenichi Handa <handa@etl.go.jp>
16935
16936 * search.c (search_buffer): Fix previous change.
16937
169381999-01-06 Eli Zaretskii <eliz@gnu.org>
16939
16940 * w16select.c (set_clipboard_data): Terminate the text with a null
16941 character. Don't allow to put binary data into the clipboard.
16942 Return zero in case of success, 1 or 2 otherwise.
16943 (get_clipboard_data): Only bail out if the null character is in
16944 the last 32-byte chunk of clipboard data
16945 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
16946 they save binary data, print a message in the echo area saying the
16947 text was not put into the clipboard.
16948
16949 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
16950
169511999-01-06 Andreas Schwab <schwab@gnu.org>
16952
16953 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
16954 _BSD_SOURCE, the latter is always defined.
16955
169561999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
16957
16958 * fns.c (Frequire): Don't fail to unbind bindings.
16959
169601999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
16961
16962 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
16963
16964 * charset.c (Ffind_charset_region): Fix doc typo.
16965
169661998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
16967
16968 * msdos.c (IT_write_glyphs): Convert unibyte characters to
16969 multibyte in unibyte buffers only.
16970
16971 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
16972 and pass it to Fmake_sparse_keymap.
16973
169741998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
16975
16976 * alloc.c (MMAP_MAX_AREAS): New macro.
16977 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
16978 (init_alloc_once): Use that.
16979
16980 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
16981
16982 * alloc.c (lisp_malloc, lisp_free): New functions.
16983 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
16984 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
16985 (n_interval_blocks, n_float_blocks): New variable.
16986 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
16987 (n_marker_blocks, n_string_blocks): New variable.
16988 (init_intervals, make_interval): Set a count variable.
16989 Use lisp_malloc instead of setting allocating_for_lisp.
16990 (init_float, make_float, init_cons, Fcons): Likewise.
16991 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
16992 (init_marker, allocate_misc, init_strings): Likewise.
16993 (make_uninit_multibyte_string): Likewise.
16994 (gc_sweep, compact_strings): Decrement the count variables.
16995
16996 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
16997 into the old_..._hook variables.
16998
169991998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17000
17001 * keyboard.c: In each active map, for each menu bar item, use only
17002 the first submap.
17003 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
17004 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
17005 (syms_of_keyboard): Staticpro and init it.
17006
427ec082 17007 * xmenu.c (single_keymap_panes):
26901792
DL
17008
170091998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
17010
17011 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
17012 by complete_deferred_msg.
17013 (post_character_message): Cancel all deferred messages when
17014 quit_char is typed, in order to break out of potential deadlocks.
17015 (cancel_all_deferred_msgs): New function.
17016 (complete_deferred_msg): Don't abort if msg not found; may have
17017 been cancelled.
17018 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
17019 (Fw32_send_sys_command): Wait for system command to
17020 complete before returning.
427ec082 17021
26901792
DL
17022 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
17023 not set async_iconified flag though.
17024
17025 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
17026 (create_child): Use it.
17027 (syms_of_ntproc): Defvar it. Also fix docstrings for
17028 w32-start-process-share-console and w32-start-process-show-window.
17029
17030 * unexw32.c (_start): Force system calls accessing unmounted
17031 devices to fail without prompting.
17032
170331998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17034
17035 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17036 even when starting the dumped Emacs.
17037
17038 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17039 (Fkey_description): Handle lists like vectors.
17040
170411998-12-21 Kenichi Handa <handa@etl.go.jp>
17042
17043 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17044 because of the change of the second argument of Fread_char.
17045
17046 * charset.c (Fcharset_after): Check range. If POS is out of
17047 range, return nil.
17048
17049 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17050
17051 * lread.c (Fread_char): Change the meaning of the second argument.
17052 (Fread_event): Likewise.
17053 (Fread_char_exclusive): Likewise.
17054
17055 * print.c (printchar): Fix previous change.
17056
17057 * process.c (read_process_output): Decide the multibyteness of
17058 string given to a process filter by a coding system used for
17059 decoding the process output.
17060
170611998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17062
17063 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17064 nonascii-translation-table.
17065 * msdos.c (IT_write_glyphs): Likewise.
17066 * fns.c (concat): Likewise.
17067 * charset.c (unibyte_char_to_multibyte): Likewise.
17068 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17069
170701998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17071
17072 * doc.c (Fdocumentation): Change the doc string for prefix
17073 commands to make it a complete sentence in one line.
17074
170751998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17076
17077 * s/irix6-5.h: New file.
17078 * s/irix6-0.h (IRIX6): Define this symbol.
17079 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17080 (bcopy, bcmp, bzero): Likewise.
17081 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17082 (C_SWITCH_MACHINE): New value for irix6.5.
17083
170841998-12-15 Richard Stallman <rms@gnu.org>
17085
17086 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17087 Do free malloc'd memory even in case of failure. Use xfree, not free.
17088 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17089 (base64_decode_1): Don't fail for short lines.
17090
17091 * print.c (printchar): Outputting multibyte characters
17092 to echo area always makes it multibyte.
17093
17094 * search.c (search_buffer): Don't use Boyer-Moore
17095 to search for an invalid multibyte code.
17096 In unibyte case, no need to check whether there are translations
17097 in more than one charset; just set charset_base to 0.
17098
170991998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17100
17101 * print.c (printchar): Cancel previous change.
17102
171031998-12-15 Kenichi Handa <handa@etl.go.jp>
17104
17105 * callproc.c: Include "ccl.h".
17106 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17107 bit in argument_coding.mode to tell encoding procedure to flush
17108 data. While encoding arguments, if argument_coding uses CCL
17109 program, initialize it again after encoding.
17110 (Fcall_process_region): Doc-string modified. Handle the case that
17111 NARGS is 3.
17112
17113 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17114 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17115 Set `ic' to the head of this command.
17116 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17117 code for an invalid code.
17118 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17119 based on VEC.
17120
17121 * charset.c (Qunknown): New variable.
17122 (init_charset_once): Intern and staticpro Qunknown. Initialize
17123 all elements of Vcharset_symbol_table to Qunknown.
17124 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17125 unibyte characters only. For an invalid composition sequence, set
17126 CHARSETS[1] to 1.
17127 (Ffind_charset_region): Call find_charset_in_str with an
17128 appropriate MULTIBYTE arg. If undefined charsets are found,
17129 include `unknown' is the return value.
17130 (Ffind_charset_string): Likewise.
17131 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17132 (str_cmpchar_id): Max composite character code should be less than
17133 GENERIC_COMPOSITION_CHAR.
17134
17135 * charset.h (find_charset_in_str): Update declaration.
17136
17137 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17138 final_char is invalid.
17139 (decode_coding): If coding->type is coding_type_ccl, call
17140 ccl_coding_driver even if SRC_BYTES is zero.
17141 (code_convert_region): Update `inserted' correctly after calling
17142 coding->post_read_conversion. Even after the code converter
17143 consumed all source text, call it once more if it is
17144 coding_type_ccl to flush out data.
17145
17146 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17147 CODING is handled by CCL program, call code_convert_region.
17148
17149 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17150 correctly.
17151 (string_byte_to_char): Likesize.
17152
17153 * print.c (printchar): When outputting a multibyte character to
17154 echo area, always set message_enable_multibyte to 1.
17155
17156 * process.c (read_process_output): If NBYTES is zero and
17157 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17158 and try decoding again.
17159 (Fprocess_send_eof): If the coding system of PROCESS
17160 requires flushing, call send_process with null-string at first.
17161
17162 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17163 with MULTIBYTE arg 0.
17164 * w32select.c (Fw32_set_clipboard_data): Likewise.
17165 * xselect.c (lisp_data_to_selection_data): Likewise.
17166
171671998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17168
17169 * search.c (Freplace_match): Set OPOINT clearly for the case
17170 where point is in the middle of the text to be replaced.
17171
17172 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17173 if compute_motion fails to advance at all, don't back it up.
17174
171751998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17176
17177 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17178
427ec082 17179 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17180
171811998-12-09 Richard Stallman <rms@gnu.org>
17182
17183 * insdel.c (insert_from_buffer_1): Properly count the size
17184 of output from conversion to multibyte even when input
17185 is split across the gap.
17186
171871998-12-09 Karl Heuer <kwzh@gnu.org>
17188
17189 * keyboard.c: Doc fixes.
17190
17191 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17192
171931998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17194
17195 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17196 characters, only convert CRLF to LF.
17197
171981998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17199
17200 * makefile.nt: Do string comparision of _NMAKE_VER.
17201
172021998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17203
17204 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17205 coding.h, and disptab.h
17206
17207 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17208 (syms_of_msdos): DEFVAR_LISP it.
17209 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17210 (internal_terminal_init): Set up insert_glyphs_hook and
17211 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17212 (unibyte_display_via_language_environment): New variable.
17213 (syms_of_msdos): Devfar it.
17214 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17215 Encode the character codes of the glyphs according to the
17216 terminal_coding in effect.
17217
172181998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17219
17220 * fns.c (Fstring_as_unibyte): Doc fix.
17221
172221998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17223
17224 * charset.h: Declare char_valid_p.
17225
172261998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17227
17228 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17229
17230 * msdos.c (init_environment): Record the time we started up.
17231 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17232 fast after startup (aka crash).
17233
172341998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17235
17236 * w32.c (check_windows_init_file): Use decode_env_path when
17237 using EMACSLOADPATH.
17238
172391998-12-02 Jason Rumney <jasonr@altavista.net>
17240
17241 * w32term.c (dumpglyphs): Use unsigned char arrays.
17242 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17243 for various languages.
17244 Compensate for fonts that have underhangs (e.g., Thai).
17245
17246 * w32term.h (FONT_MAX_WIDTH): New macro.
17247
172481998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17249
17250 * keyboard.c (Qlanguage_change): New variable.
17251 (syms_of_keyboard): Init it.
17252 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17253 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17254 keys; add name for Escape key; extend to 256 elements.
17255 (parse_modifiers): Make non-static.
17256
17257 * keyboard.h (parse_modifiers): Declare prototype.
17258
17259 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17260
17261 * w32fns.c (w32_last_error): Fix cut+paste error.
17262 (Vw32_phantom_key_code): New variable.
17263 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17264 (syms_of_w32fns): Init and register them.
17265 (reset_modifiers): Use a more precise test for whether Emacs has
17266 keyboard focus. Synchronize state of all keys that can be used as
17267 modifiers, to overcome problems arising from hot-keys.
17268 (w32_key_to_modifier): Be careful not to call intern() to avoid
17269 requiring thread synchronization.
17270 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17271 (w32_wnd_proc): Ensure lock key indicator lights are updated
17272 promptly on Windows 9x, by passing key events on to the system.
17273 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17274 responding to Windows key events when not wanted.
17275 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17276 Ctrl-NumLock into pause by the system.
17277 (w32_wnd_proc): Don't translate key combinations containing any
17278 modifiers other than shift (and capslock).
17279 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17280 can't determine the key states until we have keyboard focus).
17281 (Fw32_toggle_lock_key): New function.
17282 (syms_of_w32fns): Defsubr it.
17283
17284 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17285 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17286 (w32_console_toggle_lock_key): New function.
17287
17288 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17289
172901998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17291
17292 * search.c (Freplace_match): Set OPOINT clearly for the case
17293 where point is in the middle of the text to be replaced.
17294
17295 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17296 if compute_motion fails to advance at all, don't back it up.
17297
172981998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17299
17300 * xfns.c (Qouter_window_id): New variable.
17301 (syms_of_xfns): Initialize it.
17302 (x_report_frame_params): Set up outer-window-id parameter.
17303
17304 * keymap.c (Fsingle_key_description): Fix previous change.
17305
173061998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17307
17308 * lisp.h (Frequire): Update declaration.
17309
173101998-11-26 Kenichi Handa <handa@etl.go.jp>
17311
17312 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17313 if the charset is ascii.
17314 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17315
17316 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17317 make an appropriate one byte string.
17318 (char_bytes): Handle the case that C is a single byte char or has
17319 modifier bits.
17320
17321 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17322
17323 * cmds.c (internal_self_insert): If C has modifier bits, insert
17324 appropriate one byte char.
17325
173261998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17327
17328 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17329 Clear text properties in the new string.
17330
173311998-11-24 Felix Lee <flee@cygnus.com>
17332
17333 * process.c (read_process_output): Call signal_after_change.
17334
173351998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17336
17337 * buffer.c (syms_of_buffer): Doc fix.
17338
17339 * keyboard.c (syms_of_keyboard): Doc fix.
17340
173411998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17342
17343 * frame.c (Fset_mouse_position): Doc fix.
17344
173451998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17346
17347 * keymap.c (Fmake_keymap): Doc fix.
17348
173491998-11-17 Kenichi Handa <handa@etl.go.jp>
17350
17351 * category.c (word_boundary_p): If C1 or C2 are composite
17352 characters, test their first components.
17353
173541998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17355
17356 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17357 don't do save-excursion, just restore selected window.
17358
17359 * window.c (window_loop): For UNSHOW_BUFFER,
17360 always do consider minibuffer windows.
427ec082 17361
26901792
DL
173621998-11-16 Kenichi Handa <handa@etl.go.jp>
17363
17364 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17365
17366 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17367
17368 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17369
17370 * s/bsdos4.h: New file.
17371
173721998-11-16 Kenichi Handa <handa@etl.go.jp>
17373
17374 * Makefile.in (abbrev.o): Depend on charset.h
17375 (bytecode.o): Depend on charset.h.
17376
17377 * bytecode.c: Include charset.h.
17378
17379 * abbrev.c: Include charset.h.
17380
17381 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17382 the first component.
17383
173841998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17385
17386 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17387
173881998-11-11 Richard Stallman <rms@gnu.org>
17389
17390 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17391
17392 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17393
17394 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17395 (INTERRUPT_INPUT): #define commented out.
17396
17397 * m/aviion-intel.h: New file.
17398
173991998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17400
17401 * fns.c (MAX_ALLOCA): New macro.
17402 (Fbase64_encode_region, Fbase64_encode_string,
17403 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17404 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17405
174061998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17407
17408 * insdel.c (byte_combining_error): Error message improved.
17409
17410 * charset.c (char_valid_p): Handle a composite character correctly.
17411
174121998-11-11 Kenichi Handa <handa@etl.go.jp>
17413
17414 * charset.c (str_cmpchar_id): Check the byte sequence for
17415 composition more rigidly.
17416 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17417 contains an invalid multibyte sequence.
17418
17419 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17420
174211998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17422
17423 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17424 (WM_EMACS_SETKEYBOARDLAYOUT):
17425 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17426 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17427 (LEFT_WIN_PRESSED):
17428 (RIGHT_WIN_PRESSED):
26901792
DL
17429 (APPS_PRESSED): New console keyboard modifier flags.
17430
17431 * w32term.c (convert_to_key_event): Removed.
17432 (is_dead_key): Copied to w32fns.c.
17433 (w32_read_socket): Generate language_change_event. Modify to work
17434 with keyboard handling changes in w32_wnd_proc.
17435
17436 * w32proc.c (sys_kill): Set extended key flag when faking
17437 Ctrl-Break keystrokes.
17438 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17439 arbitrary locale property using a numerical index.
17440 (Vw32_valid_codepages): New variable.
427ec082
SS
17441 (enum_codepage_fn):
17442 (Fw32_get_valid_codepages):
17443 (Fw32_get_console_codepage):
17444 (Fw32_set_console_codepage):
17445 (Fw32_get_console_output_codepage):
17446 (Fw32_set_console_output_codepage):
17447 (Fw32_get_codepage_charset):
17448 (Fw32_get_valid_keyboard_layouts):
17449 (Fw32_get_keyboard_layout):
26901792
DL
17450 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17451 handling functions.
17452 (syms_of_ntproc): Register them.
17453
17454 * w32inevt.c: Include w32term.h and w32heap.h.
17455 (map_keypad_keys):
17456 (Vw32_enable_caps_lock):
17457 (Vw32_enable_num_lock):
17458 (Vw32_pass_lwindow_to_system):
17459 (Vw32_pass_rwindow_to_system):
17460 (Vw32_lwindow_modifier):
17461 (Vw32_rwindow_modifier):
17462 (Vw32_apps_modifier):
17463 (Vw32_scroll_lock_modifier):
17464 (w32_key_to_modifier): Add externs.
17465 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17466 Scroll Lock as potential modifiers; exclude numpad keys from
17467 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
17468 code.
17469 (is_dead_key): Copy from w32fns.c.
17470 (w32_kbd_patch_key): Comment attempt to improve handling of
17471 dead-keys, and system bug relating to same on Windows NT. Work
17472 around the bug by calling ToUnicode and then converting to the
17473 correct codepage.
17474 (map_virt_key): Removed obsolete variable.
17475 (lispy_function_keys): Add extern.
17476 (key_event): Major rework of keyboard input handling: optionally
17477 recognize Windows keys and Apps key as modifiers; optionally treat
17478 NumLock, CapsLock and ScrollLock as function keys; let system
17479 translate keystrokes to characters to avoid system bugs relating
17480 to dead-key handling; preserve shift distinction for control
17481 characters. Remove some obsolete code.
17482
17483 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
17484 and w32heap.h.
17485
17486 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
17487 (Vw32_pass_lwindow_to_system):
17488 (Vw32_pass_rwindow_to_system):
17489 (Vw32_lwindow_modifier):
17490 (Vw32_rwindow_modifier):
17491 (Vw32_apps_modifier):
17492 (Vw32_enable_num_lock):
17493 (Vw32_enable_caps_lock):
17494 (Vw32_scroll_lock_modifier): New variables.
17495 (modifier_set): Return toggle state for Scroll Lock.
17496 (w32_key_to_modifier): New function. Returns chosen modifier bit
17497 for given key.
17498 (w32_get_modifiers): Returns modifier flags for
17499 non-keyboard input events.
17500 (construct_console_modifiers): Renamed from construct_modifiers;
17501 recognize Windows and Apps keys as modifiers.
17502 (w32_get_key_modifiers): New function. Returns modifier flags for
17503 keyboard input events.
17504 (map_keypad_keys): Make non-static. Use second arg as extended
17505 flag.
17506 (w32_grabbed_keys): New variable.
17507 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
17508 (register_hot_keys):
17509 (unregister_hot_keys):
17510 (lookup_vk_code):
17511 (w32_parse_hot_key):
17512 (Fw32_register_hot_key):
17513 (Fw32_unregister_hot_key):
17514 (Fw32_registered_hot_keys):
17515 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
17516 (post_character_message): New function.
17517 (w32_msg_pump): Handle new messages for using hotkeys and changing
17518 keyboard layout/language.
17519 (w32_wnd_proc): Major rework of keyboard input handling:
17520 optionally recognize Windows keys and Apps key as modifiers;
17521 optionally treat NumLock, CapsLock and ScrollLock as function
17522 keys; let system translate keystrokes to characters to avoid
17523 system bugs relating to dead-key handling; preserve shift
17524 distinction for control characters; forward keyboard
17525 layout/language changes to lisp; detect and convert hot-key events
17526 to normal keystrokes.
17527 (syms_of_w32fns): Register new functions and variables.
17528 (w32_last_error): New function for use in debugging.
17529
175301998-11-10 Kenichi Handa <handa@etl.go.jp>
17531
17532 * category.h (CATEGORY_SET): Adjusted for the change of
17533 cmpchar_component.
17534 (CATEGORY_SET): Likewise.
17535
17536 * charset.c (cmpchar_component): New arg NOERROR. Check
17537 composition char ID more strictly.
17538 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
17539 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
17540 return 255.
17541 (Fcompose_string): Signal error if STR contains a rule-based
17542 composition character.
17543
17544 * charset.h (cmpchar_component): Proto-type adjusted.
17545
175461998-11-09 Kenichi Handa <handa@etl.go.jp>
17547
17548 * charset.c (string_to_non_ascii_char): Return correct length for
17549 a charset of dimension 2 and composition character.
17550
175511998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17552
17553 * keymap.c (Fsingle_key_description): Handle generic characters.
17554
17555 * process.c (Fprocess_status): Doc fix.
17556
175571998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
17558
17559 * charset.c (init_charset_once): Fix previous change.
17560
175611998-11-06 Kenichi Handa <handa@etl.go.jp>
17562
17563 * charset.c (string_to_non_ascii_char): Fix previous change.
17564 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
17565
17566 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
17567 character correctly.
17568 (STRING_CHAR): Handle an invalid charater correctly.
17569
175701998-11-05 Kenichi Handa <handa@etl.go.jp>
17571
17572 * charset.c (string_to_non_ascii_char): Fix previous change.
17573
17574 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
17575
17576 * editfns.c (Fstring_to_char): Don't return a multibyte character
17577 if STRING is a unibyte string.
17578
17579 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
17580 character.
17581
17582 * xdisp.c (display_text_line): Check validity of a multibyte character.
17583 (display_string): Likewise. Handle an invalid character correctly.
17584
175851998-11-05 Karl Heuer <kwzh@gnu.org>
17586
17587 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
17588 If nothing to do, return immediately.
17589 (syms_of_insdel): Initialize combine_after_change_buffer.
17590
175911998-11-05 Richard Stallman <rms@gnu.org>
17592
17593 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
17594
175951998-11-04 Geoff Voelker <voelker@cs.washington.edu>
17596
17597 * w32term.c (w32_enable_unicode_output): Rename from
17598 w32_no_unicode_output.
17599 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
17600 and new semantics.
17601
176021998-11-04 Jason Rumney <jasonr@altavista.net>
17603
17604 * w32fns.c (w32_list_fonts): Report an error if a frame has not
17605 been created yet.
17606
17607 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
17608
176091998-11-04 Kenichi Handa <handa@etl.go.jp>
17610
17611 * charset.c (string_to_non_ascii_char): Change the check for the
17612 varidity of multibyte form.
17613 (update_charset_table): Check validity of BYTES. Don't set
17614 bytes_by_char_head here.
17615 (init_charset_once): Set bytes_by_char_head completely.
17616
17617 * frame.c (do_switch_frame): Cancel previous change.
17618
17619 * print.c (print_string): Check validity of a character.
17620 (print): Likewise.
17621
17622 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
17623
17624 * m/ews4800.h, s/ux4800.h: New files.
17625
176261998-11-03 Theodore Jump <tjump@tertius.com>
17627
17628 * makefile.nt: Compile multiple source files when possible.
17629
17630 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 17631
26901792
DL
176321998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
17633
17634 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
17635 so don't rely on it succeeding.
17636
17637 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
17638 LOGFONT struct if x font doesn't specify the charset.
17639 (x_to_w32_charset): Change >= to == when testing results of
17640 stricmp.
17641
176421998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
17643
17644 * fns.c (Frequire): New arg NOERROR.
17645
176461998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
17647
17648 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
17649
176501998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
17651
17652 * xfaces.c (Qmouse_face): Replace definition with extern decl.
17653 (syms_of_xfaces): Initialization deleted.
17654
17655 * textprop.c (Qmouse_face): Variable definition moved here.
17656 (syms_of_textprop): Initialize it.
17657
17658 * data.c (set_internal): For built-in maybe-local vars,
17659 when BINDFLAG is set, do not mark them as local.
17660
176611998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
17662
17663 * insdel.c (replace_range): Fix previous change.
17664
176651998-10-31 Kenichi Handa <handa@etl.go.jp>
17666
17667 * editfns.c (Fsubst_char_in_region): Fix previous change.
17668 (Ftranslate_region): Fix previous change.
17669
17670 * fns.c (Fbase64_decode_region): Fix previous change.
17671
17672 * frame.c (do_switch_frame): Update minibuf_window if necessary.
17673
17674 * insdel.c (byte_combining_error): New function.
17675 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
17676 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
17677 CHECK_BYTE_COMBINING_FOR_INSERT.
17678 (insert_from_buffer_1): Likewise.
17679 (adjust_after_replace): Check the posibility of inhibitted byte
17680 combining correctly.
17681 (replace_range): Before signaling an error for inhibitted byte
17682 combining, recover the buffer in a safe state.
17683 (del_range_2): Check the posibility of inhibitted byte combining
17684 correctly.
17685
176861998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
17687
17688 * xselect.c (Vselection_coding_system): Doc fix.
17689
17690 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
17691 when we have both char and byte position. Fix type clashes.
17692
17693 * eval.c (Fsignal): Use a separate format string when passing
17694 error message string to fatal, in case it contains %'s.
17695
17696 * editfns.c (Fchar_after): Fix type clashes.
17697
17698 * charset.c (Fchar_bytes): Doc fix.
17699 (char_bytes): Fix returned value to match returned type.
17700 (syms_of_charset): Fix type clash in initialisation of
17701 Vauto_fill_chars.
17702
177031998-10-29 Geoff Voelker <voelker@cs.washington.edu>
17704
17705 * w32console.c (initialize_w32_display): Use buffer coords
17706 instead of buffer size (which may be larger than the window).
17707
17708 * fileio.c (init_fileio_once): New function.
17709
17710 * emacs.c (main): Invoke init_fileio_once.
17711
177121998-10-28 Paul Eggert <eggert@twinsun.com>
17713
17714 * xterm.c (XTread_socket): Check the returned value of
17715 XmbLookupString more carefully.
17716
177171998-10-28 Kenichi Handa <handa@etl.go.jp>
17718
17719 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
17720 (DECODE_CHARACTER_DIMENSION1): Likewise.
17721 (DECODE_CHARACTER_DIMENSION2): Likewise.
17722 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
17723
17724 * editfns.c (Fsubst_char_in_region): Fix previous change.
17725 (Ftranslate_region): Fix previous change.
17726
17727 * insdel.c (check_markers): Check if markers are at character boundry.
17728 (adjust_markers_for_insert): Fix previous change.
17729 (count_combining_before): Don't limit the check at BEGV.
17730 (count_combining_after): Don't limit the check at ZV.
17731 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
17732 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
17733 (insert_from_string_1): Likewise.
17734 (insert_from_buffer_1): Likewise.
17735 (adjust_after_replace): Inhibit bytes combined across region
17736 boundary. Update end_unchanged correctly.
17737 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
17738 end_unchanged correctly.
17739 (del_range_2): Inhibit bytes combined across region boundary.
17740 Update end_unchanged correctly.
17741
177421998-10-27 Geoff Voelker <voelker@cs.washington.edu>
17743
17744 * w32.c (check_windows_init_file): Also look in load path specified
17745 in environment.
17746
17747 * w32console.c (Fset_message_beep): Recognize 'silent.
17748 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 17749
26901792
DL
17750 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
17751
17752 * w32select.c (Vnext_selection_coding_system): New variable.
17753 (syms_of_w32select): DEFVAR_LISP it.
17754 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
17755 non-nil. Always convert multibyte strings.
17756 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
17757 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 17758
26901792
DL
177591998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
17760
17761 * fns.c (Fbase64_decode_string): Doc fix.
17762 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
17763 Likewise.
17764
177651998-10-27 Dave Love <fx@gnu.org>
17766
17767 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
17768 newline in doc string.
17769
177701998-10-27 Kenichi Handa <handa@etl.go.jp>
17771
17772 * editfns.c (Fsubst_char_in_region): Correctly handle the case
17773 that byte combining before happens.
17774 (Ftranslate_region): Likewise.
17775
17776 * insdel.c (adjust_after_replace): Correctly handle the case that
17777 both byte combining before and byte combining after happen.
17778 (replace_range): Likewise.
17779
177801998-10-26 Kenichi Handa <handa@etl.go.jp>
17781
17782 * category.c (syms_of_category): Doc-string modified.
17783
17784 * coding.c (code_convert_region): Kill the work buffer created by
17785 pre-write-conversion.
17786
177871998-10-25 Jason Rumney <jasonr@altavista.net>
17788
17789 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
17790
177911998-10-23 Kenichi Handa <handa@etl.go.jp>
17792
17793 * coding.c (code_convert_region): While preserving the orignal
17794 point, pay attention to the byte combining problem.
17795
17796 * fns.c (Fbase64_decode_region): Pay attention to the byte
17797 combining problem.
17798
17799 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
17800 combined_before_bytes and combined_after_bytes into account.
17801 (count_combining_after): Handle the case that LENGTH is zero.
17802 (adjust_after_replace): Record deletion at correct buffer
17803 position. Handle the case that LEN is zero.
17804 (replace_range): Record deletion at correct buffer position.
17805 (del_range_2): Call adjust_makers_for_replace to adjust makers for
17806 combined bytes.
17807
178081998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
17809
17810 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 17811
26901792
DL
178121998-10-21 Kenichi Handa <handa@etl.go.jp>
17813
17814 * coding.c (setup_coding_system): Fix setting up
17815 coding->spec.ccl.valid_codes for CCL based coding system.
17816 (code_convert_region): Set point to FROM before inserting the
17817 result of pre-write-funciton. Preserve original point.
17818 (code_convert_string): If coding->type is coding_type_ccl, do
17819 conversion even if the length of conversion region is zero.
17820
17821 * fontset.c: Include frame.h before fontset.h.
427ec082 17822 (list_fonts_func): Fix prototype.
26901792
DL
17823
17824 * frame.c: Include frame.h before fontset.h.
17825
17826 * xterm.c: Likewise.
17827
178281998-10-21 Jason Rumney <jasonr@altavista.net>
17829
17830 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
17831 general macros. Don't call x_list_font directory, instead call a
17832 function set in list_fonts_func.
17833
17834 * fontset.h (list_fonts_func): Fix prototype.
17835
178361998-10-20 Jason Rumney <jasonr@altavista.net>
17837
17838 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
17839
17840 * w32faces.c: Update comments referring to obsolete structs.
17841 (allocate_face, copy_face, face_eql, load_font,
17842 Fpixmap_spec_p, free_frame_faces, new_computed_face,
17843 frame_update_line_height, merge_faces, compute_base_face,
17844 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
17845
17846 * w32fns.c: (Vx_pixel_size_width): New global variable.
17847 (unibyte_display_via_language_environment): New global variable.
17848 (x_set_font): Add support for setting fontsets.
17849 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
17850 font names to match xlfd-tight-regexp.
17851 (w32_load_font): Rewrite based on x_load_font.
17852 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
17853 `iso8859-1' rather than `ansi'.
17854 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
17855 end. Move charset into `charset registry' field.
17856 (enum_font_cb2): Check charsets match. Include width in font list.
17857 (w32_list_fonts): Rewrite based on x_list_fonts.
17858 Moved from w32term.c to have access to enumfont_t struct.
17859 (Fx_list_fonts): w32 specific version eliminated. Include
17860 `x-list-fonts.c'.
17861 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
17862 functions for fontset support - adapted from x_ equivalents.
17863 (syms_of_w32fns): New lisp variables initialised. Function
17864 pointers for fontset.c set up.
17865
427ec082 17866 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
17867 Add ENCODE_BIG5 macro from coding.c.
17868 (w32_no_unicode_output): New variable.
17869 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
17870 functions.
17871 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
17872 (dumpglyphs): Rewrite based on xterm.c equivalent.
17873 (x_new_font): Use functionality provided in fontset.c.
17874 (x_new_fontset): New function based on the one in xterm.c.
17875 (syms_of_w32term): Add w32-no-unicode-output flag.
17876
427ec082 17877 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
17878 (Vx_pixel_size_width_font_regexp,
17879 unibyte_display_via_language_environment): Declare variables.
427ec082 17880 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
17881 Declare functions.
17882 (w32_output): New fields font_baseline and fontset.
17883 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
17884
17885 * w32xfns.c: Include charset.h and fontset.h.
17886
178871998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17888
17889 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
17890
178911998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
17892
17893 * msdos.c (mouse_init): Reset the button press/release info of the
17894 mouse driver.
17895 (mouse_preempted): New variable.
17896 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
17897 (XMenuActivate): Preempt the mouse during menu-handling loop.
17898 Release the current time slice while idling in the menu-handling
17899 loop. Leave the loop only if the user pressed, then released the
17900 same button. Discard all mouse events that are pending in the
17901 event queue before exiting.
17902
179031998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17904
17905 * editfns.c (Fformat): Increase buffer size for floating format.
17906
179071998-10-17 Kenichi Handa <handa@etl.go.jp>
17908
17909 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
17910 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
17911 Declare auto-fill-chars as a Lisp variable and initialize it.
17912
17913 * charset.h (Vauto_fill_chars): Extern it.
17914
17915 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
17916
179171998-10-16 Kenichi Handa <handa@etl.go.jp>
17918
17919 * casefiddle.c (casify_object): Use make_string instead of
17920 make_specified_string to cope with byte-combining situation.
17921
17922 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
17923 1 when encountered with a code of the range 0x80..0x9F.
17924
179251998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
17926
17927 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
17928 trying $TMP and $TEMP, since the former is always set in msdos.c.
17929 (Fcall_process_region) [DOS_NT]: When looking for a place to put
17930 the temporary files, check $TMPDIR as well.
17931
179321998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
17933
427ec082 17934 * process.c (exec_sentinel, read_process_output):
26901792
DL
17935 Restore waiting_for_user_input_p after running Lisp code.
17936
17937 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
17938 (command_loop): Likewise.
17939
179401998-10-14 Kenichi HANDA <handa@etl.go.jp>
17941
17942 * data.c (Faset): Fix previous change.
17943
17944 * fns.c (Ffillarray): Fix previous change.
17945
17946 * insdel.c (adjust_markers_for_combining): This function deleted.
17947 (adjust_markers_for_replace): Correctly adjust marker positions.
17948 Don't record these adjustment because they were recorded already.
17949 (combine_bytes): Don't adjust markers here.
17950
179511998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
17952
17953 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
17954
179551998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
17956
17957 * keyboard.c (Fclear_this_command_keys): New function.
17958 (syms_of_keyboard): defsubr it.
17959
17960 * macros.c (Fexecute_kbd_macro): Set real_this_command.
17961
179621998-10-12 Kenichi Handa <handa@etl.go.jp>
17963
17964 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
17965
17966 * charset.c (Fstring): Call make_string instead of
17967 make_string_from_bytes.
17968 (Ffind_charset_region): Include `composition' in the returned list
17969 if the region contains any composite characters.
17970 (Ffind_charset_string): Include `composition' in the returned list
17971 if the string contains any composite characters.
17972 (find_charset_in_str): Handle CMPCHARP arg correctly.
17973
17974 * coding.c (shrink_decoding_region): If a charset other than ascii
17975 is initially designated to G0, don't shrink the region.
17976 (shrink_encoding_region): Likewise.
17977
17978 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
17979 byte-combining situation.
17980
17981 * fns.c (clear_string_char_byte_cache): New function.
17982 (Ffillarray): Handle multibyte string correctly.
17983
17984 * lisp.h (clear_string_char_byte_cache): Extern it.
17985
17986 * xselect.c (lisp_data_to_selection_data): Call
17987 find_charset_in_str with CMPCHARP arg 0.
17988 * w16select.c (Fw16_set_clipboard_data): Likewise.
17989 * w32select.c (Fw32_set_clipboard_data): Likewise.
17990
179911998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17992
17993 * keyboard.c (parse_menu_item): For top level of menu bar,
17994 accept ordinary commands, and treat them just like a keymap.
17995
179961998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
17997
17998 * xdisp.c (redisplay_window): Clear w->window_end_valid
17999 before running the window-scroll-functions hook, if appropriate.
18000
180011998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
18002
18003 * data.c (Fstring_to_number): Don't recognize floating point
18004 if base is not 10.
18005
18006 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
18007 (check_all_windows): New function for debugging tests.
18008 (syms_of_window): Initialize it.
18009
18010 * window.c (Qwindow_configuration_p): New variable.
18011 (Fwindow_configuration_frame): New function.
18012 (syms_of_window): defsubr it.
18013 (Fset_window_configuration): Return t if frame is live.
18014 Use Qwindow_configuration_p.
18015
18016 * xfns.c (check_x_display_info): Don't use selected_frame
18017 if it is dead.
18018
180191998-10-09 Geoff Voelker <voelker@cs.washington.edu>
18020
18021 * w32fns.c (x_create_bitmap_from_file): Skip special files.
18022
180231998-10-08 Kenichi Handa <handa@etl.go.jp>
18024
18025 * buffer.h (inhibit_modification_hooks): Extern it.
18026
18027 * buffer.c (inhibit_modification_hooks): New variable.
18028 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18029
18030 * charset.c (invalid_character): Prepend `0' to octal
18031 representation. Give error sufficient args.
18032
18033 * coding.c (code_convert_region): Set inhibit_modification_hooks
18034 to 1 before calling Fset_text_properties.
18035
18036 * insdel.c (signal_before_change): If inhibit_modification_hooks
18037 is nonzero, do nothing.
18038 (signal_after_change): Likewise.
18039
180401998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18041
18042 * process.c: Doc fixes.
18043
180441998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18045
18046 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18047
180481998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18049
18050 * w32.c (init_ntproc): Check for Windows init file.
18051 (term_ntproc): Do not check for it here.
18052
180531998-09-28 Kenichi Handa <handa@etl.go.jp>
18054
18055 * coding.c (check_composing_code): Fix previous change. Now it
18056 alwasy returns 0 or -1.
18057 (decode_coding_iso2022): Adjusted for the above change.
18058 (encode_coding_iso2022): When encoding the last block, flush out
18059 tailing garbage bytes.
18060 (setup_coding_system): Delete unnecessary code.
18061 (shrink_decoding_region): Check translation table. If ASCII
18062 should be translated, give up shrinking.
18063 (shrink_encoding_region): Likewise.
18064 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18065 (SHRINK_CONVERSION_REGION): New macro.
18066 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18067 properties here.
18068 (code_convert_region): In the case of encoding, always calulate
18069 correct character number.
18070 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18071 (code_convert_region1): Don't delete text properties here.
18072
18073 * insdel.c (adjust_after_replace): Don't delete text properties here.
18074
18075 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18076
180771998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18078
18079 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18080
180811998-09-26 Kenichi Handa <handa@etl.go.jp>
18082
18083 * coding.h (struct coding_system): New member composed_chars.
18084
18085 * coding.c (check_composing_code): If the current composing
18086 sequence doesn't end properly, return -1.
18087 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18088 (DECODE_CHARACTER_DIMENSION1): Likewise.
18089 (decode_coding_iso2022): Check validity of a composing sequence.
18090 (code_convert_string): If the length of text to be converted is
18091 shrunk to zero, don't perform code conversion.
18092 (shrink_decoding_region): Fix previous change.
18093
18094 * editfns.c (Fformat): Check format control characters.
18095
180961998-09-25 Kenichi Handa <handa@etl.go.jp>
18097
18098 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18099 single CR code correctly.
18100 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18101 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18102
181031998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18104
18105 * w32fns.c (w32_color_map_lookup): New function.
18106 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18107
181081998-09-22 Kenichi Handa <handa@etl.go.jp>
18109
18110 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18111
18112 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18113 strings unibyte.
18114 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18115
181161998-09-22 Kenichi Handa <handa@etl.go.jp>
18117
18118 * callint.c (Fcall_interactively): Don't use input method when
18119 reading a character in the case of `c' code letter.
18120
181211998-09-21 Dave Love <fx@gnu.org>
18122
18123 * editfns.c (Fsave_restriction): Doc fix.
18124
181251998-09-21 Richard Stallman <rms@gnu.org>
18126
18127 * lread.c (build_load_history): Do add to Vload_history
18128 even when dumping Emacs.
18129
181301998-09-18 Kenichi Handa <handa@etl.go.jp>
18131
18132 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18133 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18134 cause error if the program is going to output some bytes. When
18135 outputing a string to notify an error, check the case that
18136 DST_BYTES is zero.
18137
427ec082 18138 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18139
18140 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18141 user or the CCL program executed an invalid command, return
18142 CODING_FINISH_INTERRUPT.
18143 (code_convert_region): Pay attention to the converters return
18144 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18145
181461998-09-16 Kenichi Handa <handa@etl.go.jp>
18147
18148 * coding.c (code_convert_region): Update beg_unchanged and
18149 end_unchanged after we delete the source text.
18150
18151 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18152 position if it is FROM.
18153 (adjust_markers_for_combining): New function.
18154 (combine_bytes): Call adjust_markers_for_combining instead of
18155 adjust_markers_for_replace.
18156 (adjust_after_replace): Record deletion of combining after bytes
18157 with the correct position.
18158 (replace_range): Likewise. Record the actual deletion after
18159 recoding deletions of combining bytes.
18160
18161 * xdisp.c (message_log_check_duplicate): Count byte length of the
18162 latest message correctly.
18163
181641998-09-12 Richard Stallman <rms@gnu.org>
18165
18166 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18167 instead of SET_PT_BOTH.
18168 (try_window_id, display_text_line): Likewise.
18169
181701998-09-12 Karl Heuer <kwzh@gnu.org>
18171
18172 * data.c (Fmake_local_variable): Doc fix.
18173
181741998-09-10 Dave Love <fx@gnu.org>
18175
18176 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18177
181781998-09-10 Richard Stallman <rms@gnu.org>
18179
18180 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18181 (bcopy, bcmp, bzero): Add #undef.
18182
18183 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18184 first exit if selected frame is dead (no live frames remain).
18185 (read_key_sequence): Likewise.
18186
181871998-09-10 Karl Heuer <kwzh@gnu.org>
18188
18189 * emacs.c (main): Mention --display and --eval in help.
18190
181911998-09-07 Paul Eggert <eggert@twinsun.com>
18192
18193 * editfns.c (emacs_memftime): New function.
18194 (Fformat_time_string): Use it to handle null bytes in formats
18195 correctly.
18196
181971998-09-08 Kenichi Handa <handa@etl.go.jp>
18198
18199 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18200 (Ffind_charset_string): For unibyte string, return (ascii).
18201
18202 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18203 arg MARKERS 1.
18204
18205 * insdel.c (adjust_after_replace): Don't add combining bytes to
18206 the args given to adjust_point. Handle correctly the case that
18207 there are both before and after combining bytes.
18208 (replace_range): Likewise.
18209
182101998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18211
18212 * fns.c (base64_decode_1, base64_encode_1): New functions.
18213 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18214 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18215
182161998-09-07 Karl Heuer <kwzh@gnu.org>
18217
18218 * eval.c (error): After enlarging buffer, write to it, not to buf.
18219
18220 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18221
182221998-09-07 Kenichi Handa <handa@etl.go.jp>
18223
18224 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18225 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18226 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18227
18228 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18229 chars in produced byte sequence.
18230 (Ffind_operation_coding_system): Doc-string fixed.
18231
18232 * insdel.c (count_combining_after): Check also preceding bytes at
18233 POS if all characters in STRING are not character head.
18234
182351998-09-06 Paul Eggert <eggert@twinsun.com>
18236
18237 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18238 Don't assume that localtime and gmtime return non-NULL.
18239
182401998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18241
18242 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18243 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18244 New functions.
18245
182461998-09-06 Richard Stallman <rms@gnu.org>
18247
18248 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18249
18250 * lread.c (Fload): Handle case where openp finds a magic file
18251 but it has no `load' handler or that handler calls `load'.
18252 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18253
182541998-09-04 Dave Love <fx@gnu.org>
18255
18256 * buffer.c (enable-multibyte-characters): Doc fix.
18257
182581998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18259
18260 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18261
182621998-09-01 Kenichi Handa <handa@etl.go.jp>
18263
18264 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18265 address in buffer from byte-position.
18266
182671998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18268
18269 * w16select.c (Vnext_selection_coding_system): New variable.
18270 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18271 Vselection_coding_system.
18272 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18273 Vnext_selection_coding_system if non-nil.
18274 (Fw16_get_clipboard_data): Always convert a string that includes
18275 non-ASCII characters. Use Vnext_selection_coding_system if
18276 non-nil.
18277
182781998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18279
18280 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18281 mouse capture.
18282
182831998-08-31 Kenichi Handa <handa@etl.go.jp>
18284
18285 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18286 x_list_font returns.
18287
182881998-08-31 Paul Eggert <eggert@twinsun.com>
18289
18290 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18291 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18292
182931998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18294
18295 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18296 cursor, save and restore previous cursor position in the
18297 minibuffer.
18298
182991998-08-31 Kenichi Handa <handa@etl.go.jp>
18300
18301 * charset.c (unibyte_char_to_multibyte):
18302 Vnonacii_translation_table will convert a 7-bit charcater.
18303 (multibyte_char_to_unibyte): Handle the case that
18304 Vnonacii_translation_table converts a multibyte charcater to a
18305 unibyte charcter of less than 128.
18306 (init_charset_once): Initialize nonascii_insert_offset and
18307 Vnonacii_translation_table.
18308
18309 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18310 processing if CODING requires flushing.
18311 (encode_coding): Likewise.
18312 (code_convert_region): Likewise.
18313 (code_convert_string): Likewise.
18314
18315 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18316 to convert a character less than 160 to multibyte.
18317 * insdel.c (copy_text): Likewise.
18318 (count_size_as_multibyte): Likewise.
18319 * xterm.c (dumpglyphs): Likewise.
18320
183211998-08-29 Paul Eggert <eggert@twinsun.com>
18322
18323 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18324 using negation, not subtraction; this makes a difference with
18325 IEEE floating point arithmetic (and also if integer arithmetic
18326 is ones' complement or signed-magnitude!).
18327
183281998-08-29 Karl Heuer <kwzh@gnu.org>
18329
18330 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18331
183321998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18333
18334 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18335
183361998-08-28 Paul Eggert <eggert@twinsun.com>
18337
18338 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18339 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18340 path only if we're not building with Motif.
18341
183421998-08-28 Kenichi Handa <handa@etl.go.jp>
18343
18344 * insdel.c (adjust_after_replace): Fix the code to record undo
18345 information for the case that `before combining' happens. Remove
18346 text properties which are added to the new text by
18347 offset_intervals.
18348
18349 * coding.c (code_convert_region1): Remove all text properties of
18350 the region.
18351
183521998-08-28 Kenichi Handa <handa@etl.go.jp>
18353
18354 * charset.h (CHAR_BYTES): New macro.
18355
18356 * charset.c (Fchar_bytes): Now always return 1.
18357 (char_bytes): New function.
18358
18359 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18360 range, return nil.
18361 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18362 nil.
18363
18364 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18365 * fns.c (concat): Likewise.
18366 * insdel.c (count_size_as_multibyte): Likewise.
18367 * xdisp.c (message_dolog): Likewise.
18368
183691998-08-27 Kenichi Handa <handa@etl.go.jp>
18370
18371 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18372 correctly. They are for SS2 and SS3 respectively.
18373 (ccl_coding_driver): Fix previous change.
18374
183751998-08-26 Paul Eggert <eggert@twinsun.com>
18376
18377 * xterm.c (fixup_locale): New function. For now, it resets
18378 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18379 resets LC_MESSAGES to "C".
18380 (x_term_init): Use it to fix up the locale after setlocale
18381 (LC_ALL, "").
18382
183831998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18384
18385 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18386 case it was prototyped the old way.
18387
183881998-08-25 Kenichi Handa <handa@etl.go.jp>
18389
18390 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18391 returns a null string. This happens when dxpc 3.7 is being used.
18392
183931998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18394
18395 * keyboard.c (input-method-previous-message): Doc fix.
18396
18397 * coding.c (file-coding-system-alist,
18398 select-safe-coding-system-function): Doc fix.
18399
184001998-08-23 Kenichi HANDA <handa@etl.go.jp>
18401
18402 * coding.c (detect_coding_iso2022): Don't check the byte length of
18403 succeeding codes (0xa0..0xFF) if the codes follows single shift
18404 code (SS2 or SS3).
18405
184061998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18407
18408 * coding.c (detect_coding_system): If detect_eol_type returns
18409 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18410 correctly.
18411
18412See ChangeLog.7 for earlier changes.