(Ffontset_info): Make the return value more compatible
[bpt/emacs.git] / src / ChangeLog
CommitLineData
090a072f
GM
12000-07-07 Gerd Moellmann <gerd@gnu.org>
2
3 * eval.c (Fsignal): Handle case that backtrace_list is null.
4
f92de4a6
KH
52000-07-07 Kenichi Handa <handa@etl.go.jp>
6
7 * ccl.c (Fccl_execute): Typo fixed.
8
dd8888a1
GM
92000-07-06 Gerd Moellmann <gerd@gnu.org>
10
e5c81191
GM
11 * window.c (window_loop): Add missing gcpro1 local variable.
12
dd8888a1
GM
13 * window.c (Fwindow_list): Reverse list at the end.
14 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
15 means allow windows on OWINDOW's frame, only.
16 (window_loop): Simplified; use Fwindow_list.
17
18 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
19
485266d0
GM
202000-07-05 Gerd Moellmann <gerd@gnu.org>
21
22 * xterm.c (XTread_socket): Increment handling_signal at the start,
23 decrement it at the end.
24
25 * eval.c (handling_signal): New variable.
26 (Fsignal): Abort if handling_signal is non-zero.
27
28 * lisp.h (handling_signal): External declaration.
29
30 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
31
80fcd514
KR
322000-07-05 Ken Raeburn <raeburn@gnu.org>
33
34 Sound support for NetBSD through "Linux emulation" support:
35 * config.in (HAVE_SOUNDCARD_H): Undef.
36 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
37 * Makefile.in (LIBSOUND): New variable.
38 (LIBES): Include it.
39 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
40 <soundcard.h>.
41 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
42 elsewhere.
43 (vox_open): Use DEFAULT_SOUND_DEVICE.
44 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
45
d5c5cddd
GM
462000-07-05 Gerd Moellmann <gerd@gnu.org>
47
48 * print.c (print_error_message): If Vsignaling_function is set,
49 show it in *Messages*.
50
51 * lisp.h (Vsignaling_function): External declaration.
52
53 * eval.c (Vsignaling_function): New variable.
54 (Fsignal): Compute it.
55 (syms_of_eval): Staticpro it.
56
65171e3a
DL
572000-07-05 Dave Love <fx@gnu.org>
58
59 * syswait.h: Use the autoconf recommended approach. Old code
60 #if'd out in case we need to revert.
61
62 * config.in (HAVE_SYS_WAIT_H): Added.
63
e2c46326
AI
642000-07-05 Andrew Innes <andrewi@gnu.org>
65
66 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
67 when non-NULL instead of __morecore, to take account of buffer
68 memory. This also solves a problem with spurious memory warnings
69 on Windows.
70
71 * ralloc.c: Make real_morecore non-static.
72
73 * eval.c (internal_condition_case): Comment out abort if
74 interrupt_input_blocked is not zero.
75
76 * makefile.nt: Add support for `bootstrap' and related targets.
77 Include minimal debug info in emacs.exe in release build.
78 Remove all dependencies on lisp.h, and fixup some others.
79
80 * w32.c (init_environment): Install code from 20.7 for providing
81 default values for environment variables, based on the
82 executable's own location.
83 (map_w32_filename): Handle filenames that are longer than
84 MAX_PATH.
85 (sys_socket): Install socket inheritance bug fix from 20.7.
86
87 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
88 here via blockinput.h).
89
a027a91b
SM
902000-07-05 Stefan Monnier <monnier@cs.yale.edu>
91
e4b31601
SM
92 * w32menu.c (w32_menu_display_help):
93 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
94
95 * keyboard.h (show_help_echo): Declare.
96
97 * keyboard.c (show_help_echo): New function, extracted from read_char.
98 Feval its `msg' argument if it's a cons cell.
99 (read_char): Use it.
4cf8d9d5 100 (follow_key): Pass `autoload' to get_keyelt.
a027a91b
SM
101
102 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
103 (note_tool_bar_highlight, XTread_socket):
104 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
105 (dos_rawgetc):
106 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
107 (note_tool_bar_highlight, w32_read_socket):
108 Do not gratuitously ignore non-string `help-echo' properties.
109
88d75730
GM
1102000-07-05 Gerd Moellmann <gerd@gnu.org>
111
969f7e79
GM
112 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
113
71201b00
GM
114 * window.c (delete_all_subwindows): Reset Vwindow_list.
115
88d75730
GM
116 * xterm.c (x_append_glyph, x_append_composite_glyph)
117 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
118 changes in struct glyph starting 1999-12-27. Some bit-fields of
119 struct glyph were not set, which made glyphs unequal when compared
120 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
121 effects were the result. This also depended on the contents of
122 memory returned by xmalloc. If flickering happens again, activate
123 the code in clear_glyph_row that's in #if 0. If the flickering is
124 gone with that, chances are that it is caused by something
125 similar.
126
127 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
128
129 * dispextern.h: Add some comments.
130
131 * window.c (add_window_to_list): Add parameter LIST.
132 (window_list): Order list so that, for each frame, windows are
133 in canonical order, and so that frames appear in the list in
134 the order given by Vframe_list.
135 (next_window): Reverse the handling of NEXT_P.
136
53654733
GM
1372000-07-04 Gerd Moellmann <gerd@gnu.org>
138
87efd256
GM
139 * window.c (Vwindow_list): New variable.
140 (make_window, delete_window): Set Vwindow_list to nil.
141 (check_window_containing): New function.
142 (window_from_coordinates): Rewritten.
143 (add_window_to_list, window_list, candidate_window_p)
144 (decode_next_window_args, next_window): New functions.
145 (Fnext_window, Fprevious_window): Rewritten in terms of
146 next_window.
147 (Fwindow_list): New function.
148 (Fother_window): Cleaned up.
149 (foreach_window): Add a longer "variable argument list". Let
150 callback function return 0 to indicate that cycling over windows
151 should stop.
152 (foreach_window_1): Likewise.
153 (freeze_window_start): Return int.
154 (init_window): New function.
155 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
156
157 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
158 input_event with bzero.
159 (main): Call init_window.
160
53654733
GM
161 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
162 a menu filter.
163
4a8c194f
KH
1642000-07-04 Kenichi Handa <handa@etl.go.jp>
165
166 * composite.h (make_composition_value_copy): Extern it.
167
168 * composite.c (make_composition_value_copy): New function.
169
170 * editfns.c (Fformat): While copying text properties, make each
171 composition property value a copy.
172
173 * fns.c (concat): While copying text properties, make each
174 composition property value a copy.
175
831a6cb0
GM
1762000-07-03 Gerd Moellmann <gerd@gnu.org>
177
2f516940
GM
178 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
179
aee625fa
GM
180 * fns.c (sweep_weak_table): Mark only objects that are not
181 marked already.
182
831a6cb0
GM
183 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
184 include those frames as candidates which have their focus
185 redirected to the minibuffer frame.
186
d9c4f922
SM
1872000-07-03 Stefan Monnier <monnier@cs.yale.edu>
188
189 * fns.c (Fputhash): Return `value' rather than nil.
190
3780bc22
GM
1912000-06-30 Gerd Moellmann <gerd@gnu.org>
192
97d176db
GM
193 * frame.c (next_frame): Don't check focus redirection in case
194 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
195 unless their focus is redirected, which contradicts the
196 specification of next-frame, and leads to infinite loops in
197 certain situations when cycling through windows with next-window.
198
dca9961d
KH
1992000-06-30 Kenichi Handa <handa@etl.go.jp>
200
201 * coding.c (code_convert_region): Even if the length of text is
202 zero, try to convert it if coding->type is coding_type_ccl.
203 (decode_coding_string, encode_coding_string): Likewise.
204
d5483ab1
GM
2052000-06-28 Gerd Moellmann <gerd@gnu.org>
206
af5c25e1 207 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 208 the display if windows_or_buffers_changed.
af5c25e1
GM
209
210 * dispnew.c (struct row_entry): New structure.
211 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
212 (row_table_size, old_lines, new_lines, old_lines_size)
213 (new_lines_size, run_pool, runs_size, runs): New variables.
214 (add_row_entry): New function.
215 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 216 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
217 holding them in local variables. Use a larger hash table whose
218 size depends on glyph matrix sizes. Don't use bzero to clear the
219 hash table; instead, clear used slots only.
220
221 * fns.c (next_almost_prime): Make it externally visible.
222
223 * lisp.h (next_almost_prime): Add prototype.
224
d5483ab1
GM
225 * s/isc4-0.h (sigunblock): Define.
226
227 * s/sco5.h (sigunblock): Define.
228
93e40f40
DL
2292000-06-27 Dave Love <fx@gnu.org>
230
231 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
232 (moved to osf5-0.h).
233 [!NOT_C_CODE]: Protect string.h stuff.
234
235 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
236 (sys_siglist, NSIG): Definitions moved here from osf1.h.
237
3c4b7685
GM
2382000-06-27 Gerd Moellmann <gerd@gnu.org>
239
97d176db 240 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
241 below the last line from the needed window height.
242
32cad0aa
SM
2432000-06-26 Stefan Monnier <monnier@cs.yale.edu>
244
245 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
246 (Fwidget_get): Use it.
247 (syms_of_fns): Defsubr it.
248
2c69ced2
GM
2492000-06-26 Gerd Moellmann <gerd@gnu.org>
250
1d36487c
GM
251 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
252 display info for XIM.
253 (xim_open_dpy): Likewise.
254 (xim_close_dpy): Don't free the display info's XIM.
255
256 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
257
258 * config.in (USE_XIM): New define.
259
3fc720e4
GM
260 * keymap.c (get_keyelt): For menu-items containing a `:filter
261 FILTER', apply FILTER to the menu-item's definition to get the
262 real definition to use.
263
264 * lisp.h (QCfilter): External declaration.
265
2c69ced2
GM
266 * xfns.c (Fimage_size): New function.
267 (syms_of_xfns): Defsubr it.
268
f978b2a2
AS
2692000-06-26 Andreas Schwab <schwab@suse.de>
270
271 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
272 Fstring_as_unibyte.
273
94cc7892
DL
2742000-06-25 Dave Love <fx@gnu.org>
275
276 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
277 tgetnum.
278
279 * Makefile.in (blockinput.h): Depend on atimer.h.
280 (atimer.h): Depend on systime.h.
281
282 * blockinput.h: Protect against multiple inclusion. Include
283 atimer.h.
284
285 * atimer.h: Protect against multiple inclusion. Include
286 systime.h.
287
288 * lisp.h (swap_in_global_binding): Declare.
289
b8c24556
KR
2902000-06-24 Ken Raeburn <raeburn@gnu.org>
291
292 * process.c (Fopen_network_stream): Turn off atimers for duration
293 of call to connect. (Patch from Gerd.)
294
8cf8560b
DL
2952000-06-23 Dave Love <fx@gnu.org>
296
511c7541
DL
297 * ralloc.c: Maybe include unistd.h
298
8cf8560b
DL
299 * emacs.c (setgrp): Undefine before defining.
300 (malloc_warning, set_time_zone_rule, index): Prototype.
301
302 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
303 HAVE_STRUCT_TIMEZONE.
304
305 * s/osf1.h: Move string.h hack here from alpha.h and make it
306 conditional.
307 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
308 _XOPEN_SOURCE.
309 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
310 (SOCKLEN_TYPE): Don't define.
311
312 * m/alpha.h: Remove string.h hack.
313
314 * s/osf5-0.h: New file.
315
316 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
317 include time.h, done by systime.h.
318 [__FreeBSD__]: Remove redundant includes.
319
3fc720e4 320 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
321 (delete_temp_file): Return Qnil to avoid warning.
322
323 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
324
325 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
326 HAVE_X_WINDOWS.
327
328 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
329
330 * composite.h (compose_text): Declare.
331
332 * xterm.c: Don't include sys/types.h unconditionally. Don't
333 protect its inclusion with !USG (following xmenu.c).
334
ea055732
GM
3352000-06-23 Gerd Moellmann <gerd@gnu.org>
336
337 * xfns.c (x_create_tip_frame): Initialize frame's colors like
338 in x_create_frame.
339
74b01b80
EZ
3402000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
341
342 * coding.c (decode_eol_post_ccl): Special handling for undecided
343 and inconsistent EOL types.
344
64f3a166
GM
3452000-06-22 Gerd Moellmann <gerd@gnu.org>
346
16cf31f7
GM
347 * xrdb.c (x_load_resources): Add default resource for scroll bar's
348 trough color and main window's background color.
349
350 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
351 differently.
352
353 * xterm.h (Xt_app_con): External declaration.
354
355 * widget.c (EmacsFrameRealize): Fix typo.
356
486a103d
GM
357 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
358
64f3a166
GM
359 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
360 (handle_invisible_prop): Record the start of invisible text in
361 it->add_overlay_start.
362 (struct overlay_entry): Add member `overlay'.
363 (handle_overlay_change): Simplify.
364 (next_overlay_string): After having processed overlay strings at the
365 end of the buffer, record that fact in
366 it->overlay_strings_at_end_processed_p.
367 (compare_overlay_entries): If before- and after-strings come
368 from the same overlay, let before-strings come first.
369 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
370 (load_overlay_strings): Take it->add_overlay_start into account
371 when adding overlay strings.
372
373 * dispextern.h (struct it): Add member add_overlay_start.
374
bb746ea6
DL
3752000-06-22 Dave Love <fx@gnu.org>
376
377 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
378
379 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
380
a8f573f3
KH
3812000-06-22 Kenichi Handa <handa@etl.go.jp>
382
383 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
384 is greater than 0.
385
9f2bbc92
DL
3862000-06-21 Dave Love <fx@gnu.org>
387
388 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
389
3ee5041c
SM
3902000-06-21 Stefan Monnier <monnier@cs.yale.edu>
391
392 * syntax.c (back_comment): Simplify string-parity counting (with
393 the added benefit of handling multiple string-styles as long as
394 they are not intertwined).
395 Jump to the slow code as soon as a comment starter is found in
396 a "string_lossage" position. Fixes the case: " /* " /* " */.
397
4c343001
DL
3982000-06-21 Dave Love <fx@gnu.org>
399
400 * Makefile.in: Use GETLOADAVG_LIBS.
401
402 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
403 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
404
e6365855
SM
4052000-06-20 Stefan Monnier <monnier@cs.yale.edu>
406
407 * syntax.c (describe_syntax): Recognize the `n'estable bit.
408 (Fforward_comment, scan_lists):
409 Check the comstyle of single-char comment-starters.
410 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
411 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
412 Check the comstyle of single-char comment-starters.
413 Clarify control-flow around the Scomment case.
e6365855 414
5700d2cc
DL
4152000-06-20 Dave Love <fx@gnu.org>
416
d355bd8a
SM
417 * fns.c (make_hash_table, maybe_resize_hash_table):
418 Cast arg of next_almost_prime.
5700d2cc
DL
419
420 * tparam.c [emacs]: Include lisp.h.
421
422 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
423 and unistd.h.
424
4a27bdfb
GM
4252000-06-20 Gerd Moellmann <gerd@gnu.org>
426
a61d762c
GM
427 * keyboard.c (adjust_point_for_property): Check if display
428 property should be treated as intangible by looking at its
429 value.
430
431 * xdisp.c (single_display_prop_intangible_p)
432 (display_prop_intangible_p): New functions.
433
434 * dispextern.h (display_prop_intangible_p): Add prototype.
435
436 * xdisp.c (dump_glyph_row): Show type of glyph->object.
437
4a27bdfb
GM
438 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
439 argument to sigprocmask.
440
441 * s/sco5.h (sigblock): Redefined to pass a pointer as second
442 argument to sigprocmask.
443
444 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
445 sigprocmask_set, and pass a pointer to it to sigprocmask.
446
447 * sysdep.c (sigprocmask_set): New variable.
448
449 * fileio.c (make_temp_name): Don't use `%s' in string passed to
450 report_file_error.
451
427ec082
SS
4522000-06-20 Sam Steingold <sds@gnu.org>
453
454 * xrdb.c: Don't declare xmalloc, xrealloc.
455
8972fe79 4562000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
457
458 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
459 (re_comp): Cast gettext return value to avoid complaints when
460 !HAVE_LIBINTL.
461
074b6efe
DL
4622000-06-20 Dave Love <fx@gnu.org>
463
f85c008a
DL
464 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
465 HAVE_GETTIMEOFDAY.
466
5700d2cc 467 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 468
d355bd8a 469 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
470
471 * m/alpha.h: Don't declare xmalloc, xrealloc.
472
0af4f205
DL
473 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
474
475 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
476
477 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
478
479 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
480 HAVE_GETWD.
481
074b6efe
DL
482 * keyboard.h (poll_for_input_1): Declare.
483
484 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
485
486 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
487
488 * doprnt.c: Don't declare xmalloc, xrealloc.
489
490 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
491 (getenv, ctime, getwd): Removed.
492 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
493
494 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
495 x_set_tool_bar_lines.
496
497 * config.in: Add HAVE_GETWD. Move some definitions above
498 machine/system includes.
499
68a5e97b
KH
5002000-06-20 Kenichi Handa <handa@etl.go.jp>
501
95417e1e
KH
502 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
503
68a5e97b
KH
504 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
505 contain information about ENCODING.
506
507 * fontset.c (FONTSET_ASCII): Use the first element of char table
508 for an ASCII font, not defalt slot.
509 (fontset_ref_via_base): If FONTSET doesn't contain information for
510 C, try the default fontset.
511 (make_fontset): Don't copy the default fontset.
512 (fontset_font_pattern): Likewise.
513 (accumulate_font_info): If ELT is nil, use the corresponding
514 element in the default fontset.
515
3b4fa1b2
DL
5162000-06-19 Dave Love <fx@gnu.org>
517
943e731c
DL
518 * syntax.c (Fparse_partial_sexp): Doc fix.
519
520 * regex.h: Test PROTOTYPES as well as __STDC__.
521
3b4fa1b2
DL
522 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
523 errno, strerror. Put text after #endif in comment.
524
525 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
526 pcc).
527
528 * xterm.c (x_frame_of_widget): Likewise.
529
cdf0357b
GM
5302000-06-19 Gerd Moellmann <gerd@gnu.org>
531
532 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
533 to Vfundamental_mode_abbrev_table.
534
535 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
536 bogus objects are marked. This slows down GC by ~80 percent, but
537 it might be worth trying when debugging GC-related problems.
538 This feature requires conservative stack marking to be enabled.
539
540 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
541 returns XLookupChars, reset `modifiers' to zero.
542
998e9f8c
DL
5432000-06-19 Dave Love <fx@gnu.org>
544
545 * mktime.c: Unprotoized.
546
d1504184
GM
5472000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
548
549 * data.c (set_internal): If variable is frame-local,
550 store the new value immediately into the frame parameter alist.
551
140c4ac6
KR
5522000-06-19 Ken Raeburn <raeburn@gnu.org>
553
14358466
KR
554 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
555 in the custom handler pointer.
556
140c4ac6
KR
557 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
558 value, or checks for CHAR_META can fail when Lisp_Object is a
559 union type.
560 * keymap.c (get_keyelt): Likewise.
561
10d7bf84
KH
5622000-06-19 Kenichi Handa <handa@etl.go.jp>
563
564 * ccl.h (struct ccl_program): New member eol_type.
565 (struct ccl_spec): New member cr_carryover.
566
567 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
568 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
569
570 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
571 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
572 (decode_eol_post_ccl): New function.
573 (decode_coding): Don't detect EOL format here for CCL based coding
574 systems.
575 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
576 decode_eol_post_ccl after running the CCL program.
577 (code_convert_region): Don't detect EOL format here for CCL based
578 coding systems.
579 (decode_coding_string): Likewise.
580
52e386c2
KR
5812000-06-18 Ken Raeburn <raeburn@gnu.org>
582
583 * charset.c (update_charset_table): Use XINT on "iso_final_char"
584 when treating it as an integer.
585
586 * coding.h (encode_coding_string): Declare.
587
588 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
589 it as an integer.
590
591 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
592 "xkeymap" to avoid shadowing the "enum map_type" value that needs
593 to be passed to get_local_map.
594
595 * sound.c (Fplay_sound): Don't call make_number on
596 Frun_hook_with_args count argument.
597
598 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
599 for lisp objects in X event structure data field, when lisp
600 objects are represented with unions.
601 (x_scroll_bar_to_input_event): Ditto.
602
b357b9d4
KR
6032000-06-16 Ken Raeburn <raeburn@gnu.org>
604
605 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
606 termination of string. Fix sense of test whether
607 Vline_number_display_limit is an integer.
b357b9d4 608
a871441d
GM
6092000-06-16 Gerd Moellmann <gerd@gnu.org>
610
a9021acd
GM
611 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
612 only if HAVE_X_WINDOWS.
613
6344985d
GM
614 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
615 of titles.
616
427ec082 617 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
618 out of bounds.
619
228b083e
EZ
6202000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
621
622 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
623 of its headers.
624
c25b53a2
KH
6252000-06-15 Kenichi Handa <handa@etl.go.jp>
626
627 * coding.c (decode_coding_emacs_mule): Always set src_base at the
628 start of the while loop.
629
a6981b11
GM
6302000-06-15 Gerd Moellmann <gerd@gnu.org>
631
e9924e52
GM
632 * atimer.c (alarm_signal_handler): Add forward declaration.
633
a6981b11
GM
634 * data.c (set_internal): Remove debug code.
635
25fa6deb
GM
6362000-06-14 Gerd Moellmann <gerd@gnu.org>
637
dce6b995
GM
638 * Makefile.in (bootstrap-temacs): Add `-I../src'.
639
9f817ea4
GM
640 * unexec.c (toplevel) [COFF]: Include coff.h.
641
642 * s/lynxos.h: New file.
643
644 * keymap.c (Fsingle_key_description): Enclose function key and
645 event symbol names in angle brackets.
646
8a4e3c0c
GM
647 * xdisp.c (setup_echo_area_for_printing): Call
648 message_log_maybe_newline if message_buf_print is not set.
649
650 * print.c (printchar, strout): Don't check message_buf_print
427ec082 651 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
652 function does something useful even when message_buf_print is
653 already set.
654
25fa6deb
GM
655 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
656 variables.
657 (ensure_echo_area_buffers): Initialize echo buffer's
658 truncate lines setting to nil.
659 (with_echo_area_buffer): Don't set the echo buffer's truncate
660 lines setting here.
8a4e3c0c 661 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
662 of message_truncate_lines.
663 (resize_mini_window): Handle case that lines are truncated.
664 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
665 message-truncate-lines.
666
667 * keyboard.c (read_char): Bind message-truncate-lines to t
668 while displaying a help-echo.
669
670 * lisp.h (Qmessage_truncate_lines): External declaration.
671
163dcff3
GM
6722000-06-13 Gerd Moellmann <gerd@gnu.org>
673
1681ead6
GM
674 * xdisp.c (Vline_number_display_limit): Renamed from
675 line_number_display_limit.
676 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
677 Extend documentation string. Initialize
678 Vline_number_display_limit to nil meaning no limit.
679 (decode_mode_spec): Use Vline_number_display_limit with its new
680 meaning.
681
163dcff3
GM
682 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
683
6842000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
685
686 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 687
163dcff3
GM
688 * xfns.c (x_set_frame_parameters): Comment fix.
689
690 * frame.c (store_frame_param): Call swap_in_global_binding if the
691 variable's current binding was chosen based on this frame.
692
693 * data.c (swap_in_global_binding): New function.
694
a704139d
EZ
6952000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
696
697 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
698 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
699
9b6610db
EZ
7002000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
701
702 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
703
c68833d2
JR
7042000-06-12 Jason Rumney <jasonr@gnu.org>
705
706 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
707
708 * w32.h (EMACS_W32_H): Renamed from _NT_H_
709
710 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
711
712 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
713
ed1056b3
GM
7142000-06-12 Gerd Moellmann <gerd@gnu.org>
715
716 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
717 (syms_of_xfaces): Defsubr Sdump_colors.
718 (x_free_colors): Don't treat b&w specially on default visual.
719 (x_free_dpy_colors): New function.
720 (free_face_colors): Don't check visual class; it's done
721 in x_free_colors.
722
723 * xterm.c (x_frame_of_widget): New function.
724 (x_alloc_nearest_color_for_widget): Use it.
725 (x_copy_dpy_color): New function.
726 (x_destroy_window): Free various colors.
727
5050a2ef
KH
7282000-06-12 Kenichi Handa <handa@etl.go.jp>
729
730 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
731
732 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
733
734 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
735
736 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
737
738 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
739
fb1b041d
DL
7402000-06-11 Dave Love <fx@gnu.org>
741
742 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
743
ff96b5f4
EZ
7442000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
745
746 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
747
db8eeecd
GM
7482000-06-11 Gerd Moellmann <gerd@gnu.org>
749
ed1056b3 750 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
751 to `XEvent *'.
752
49b71c5f
KH
7532000-06-10 Kenichi Handa <handa@etl.go.jp>
754
c479bd55
KH
755 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
756 (regex_compile): Fix the code for handling the case of single byte
757 char and multibyte char being mixed in a range within [...].
758
ff6a65c2
KH
759 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
760 and dst_multibyte members of coding.
761
49b71c5f
KH
762 * charset.c (update_charset_table): Update the table
763 bytes_by_char_head.
764 (init_charset_once): Initialize elements of bytes_by_char_head to
765 1 except for leading codes for private charases.
766
767 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
768 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
769 sequence.
770
9e80b57d
KR
7712000-06-09 Ken Raeburn <raeburn@gnu.org>
772
773 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
774 access the data it doesn't point to.
775
f83fe4b4
GM
7762000-06-08 Gerd Moellmann <gerd@gnu.org>
777
778 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 779 will be translated to a switch-frame event when reading the
f83fe4b4
GM
780 event queue. This is necessary because Emacs otherwise won't
781 perform a switch-frame to a new frame until some other event, for
782 example a keystroke event, forces it to do so. This has various
783 effects, one visible being that the cursor of a frame created with
784 C-x 5 2 or switched to with a window manager key binding like
785 A-TAB stays hollow because selected_window isn't on the newly
786 focused frame until the switch-frame is performed.
787
788 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
789 generating a switch-frame event if necessary.
790
791 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
792
793 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
794 it's an integer.
795
0890801b
KH
7962000-06-08 Kenichi Handa <handa@etl.go.jp>
797
798 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
799 charset.
800
173cbca8
GM
8012000-06-07 Gerd Moellmann <gerd@gnu.org>
802
3091c2a6
GM
803 * window.c (displayed_window_lines): Take empty lines at
804 the bottom of a window into account.
427ec082 805
f38952fe
GM
806 * window.c (displayed_window_lines): New function.
807 (Fmove_to_window_line): Use displayed_window_lines to determine
808 the number of lines to move, instead of using the window's height.
809
810 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
811 to stop reading, even if the form read sets point to a different
812 value when evaluated.
813
427ec082 814 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
815 put the cursor.
816
6ba6c818
KH
8172000-06-07 Kenichi Handa <handa@etl.go.jp>
818
819 * fileio.c (e_write): Free composition data if stored in
820 coding->cmp_data.
821
5f1aea9a
GM
8222000-06-06 Gerd Moellmann <gerd@gnu.org>
823
666852af
GM
824 * xdisp.c (display_line): Set row's and iterator's
825 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
826 Set cursor even if row ends in the middle of a character.
827 (dump_glyph_row): Print values of new flags.
828 (redisplay_window) <cursor movement in unchanged window>: When
829 point has been moved forward, and PT is at the end of the cursor
830 row, don't place the cursor in the next row if the cursor row ends
831 in the middle of a character or at ZV.
832
833 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
834 (struct glyph_row): Add starts_in_middle_of_char_p and
835 ends_in_middle_of_char_p.
836 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
837 ends_in_middle_of_char_p flag.
838 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
839
d13f3e2e
GM
840 * term.c (append_glyph): Revert change of 2000-06-06.
841
842 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
843 padding glyph not fitting on line as whole character not
844 fitting on line.
845
5f1aea9a
GM
846 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
847 this isn't true for images with `:ascent 100'.
848
10cda9b0
KH
8492000-06-06 Kenichi Handa <handa@etl.go.jp>
850
ed00559d
KH
851 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
852 as modified if it is originally unmodified.
853
10cda9b0
KH
854 * term.c (encode_terminal_code): Change the way to check if
855 terminal coding does any conversion.
856 (append_glyph): Set glyph->pixel_width correctly.
857
858 * xdisp.c (display_line): While checking line continuation, pay
859 attention to a padding glyph.
860
1969fae2
GM
8612000-06-05 Gerd Moellmann <gerd@gnu.org>
862
863 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
864
162ccef4
DL
8652000-06-05 Dave Love <fx@gnu.org>
866
f19f32dd
DL
867 * xdisp.c: Include fontset.h.
868
869 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
870
871 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
872
873 * dispnew.c: Conditionally include term.h.
874
875 * coding.h: Declare code_convert_string_norecord.
876
877 * frame.h (struct frame): Use volatile unconditionally.
878
879 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
880
881 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
882
883 * systime.h: Protect against multiple inclusion.
884 (timezone) [USG5_4]: Define as time_t.
885
886 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
887 (Foptimize_char_table, make_temp_name): Declare.
888
889 * Makefile.in (xdisp.o): Depend on fontset.h.
890
891 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
892
893 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
894 (Foptimize_char_table, make_temp_name): Declare.
895
427ec082 896 * s/irix4-0.h:
162ccef4
DL
897 * s/irix5-0.h:
898 * s/netbsd.h: Don't define autoconfiscated MATHERR.
899
2082fe81
DL
9002000-06-02 Dave Love <fx@gnu.org>
901
902 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
903
dcf671d2
GM
9042000-06-02 Gerd Moellmann <gerd@gnu.org>
905
906 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 907 result face, set flags in that face indicating that colors may not
dcf671d2
GM
908 be freed.
909
910 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
911 glyph, use the ASCII NUL character to determine the face.
912
d42122a3
DL
9132000-06-02 Dave Love <fx@gnu.org>
914
915 * sysdep.c: Conditionally include stdlib.h, unistd.h.
916 (VFORK_RETURN_TYPE): Remove.
427ec082 917
d42122a3
DL
918 * config.in: Add NO_MATHERR.
919
dd432f16
DL
9202000-06-01 Dave Love <fx@gnu.org>
921
90aa4ea8
DL
922 * cmds.c (internal_self_insert): Don't check
923 Vbefore_change_function, Vafter_change_function.
924
925 * insdel.c (signal_before_change, signal_after_change): Likewise.
926
927 * buffer.c (Vbefore_change_function, Vafter_change_function):
928 Variables and their initializations deleted.
929
2330c9d4
DL
930 * callint.c (Fcall_interactively): Doc fix.
931
dd432f16
DL
932 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
933
bf9e8804
DL
9342000-05-31 Dave Love <fx@gnu.org>
935
936 * textprop.c: Revert last change -- duplicated.
937
3694b4ab
GM
9382000-05-31 Gerd Moellmann <gerd@gnu.org>
939
940 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
941 in #if 0.
942
943 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
944
f14156cd
JR
9452000-05-31 Jason Rumney <jasonr@gnu.org>
946
8119aab8
JR
947 * search.c (Fre_search_forward, Fre_search_backward)
948 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
949
f14156cd
JR
950 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
951
4aab9be3
JR
9522000-05-30 Jason Rumney <jasonr@gnu.org>
953
954 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
955 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
956
957 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
958 member.
959
960 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
961 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
962 expand a nil default_filename.
963
964 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
965 pointer to glyph_to_pixel_coords, not a frame.
966
967 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
968 coding.h to dependencies.
969
970 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
971
972 * w32console.c (glyph_to_pixel_coords): Change first parameter to
973 window pointer to be consistent with w32term.c and xterm.c.
974
975 * w32fns.c: Format and doc changes to bring closer to xfns.c.
976 (VIETNAMESE_CHARSET): Define if not defined in system headers.
977 (Qline_spacing, Qcenter): New variables.
978 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
979 (x_set_line_spacing): New function.
980 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
981 macros.
982 (x_specified_cursor_type): New function.
983 (x_set_cursor_type): Use it.
984 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
985 and icon strings.
986 (validate_x_resource_name, x_get_resource_string): Measure lengths
987 of external strings in bytes.
988 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
989 GetTextExtentPoint32 with NULL title.
990 (Fx_create_frame): Initialize Qline_spacing.
991 (w32_load_system_font): Initialize font->double_byte_p.
992 (x_to_w32_charset): Use Vw32_charset_info_alist.
993 (Image, busy cursor, tooltip functions): Merged changes from
994 xfns.c. Not yet functional on Windows.
995
996 * w32gui.h (W32FontStruct): Add double_byte_p member.
997
998 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
999 (emacs_button_translation): Use it.
1000 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
1001 in `mask' to be set.
1002
1003 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
1004 menu strings.
1005
1006 * w32term.c: Format and doc changes to bring closer to xterm.c.
1007 (w32_char_font_type): New enum.
1008 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1009 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1010 (w32_encode_char): New function.
1011 (x_encode_char): Removed.
1012 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1013 x_encode_char and w32_font_is_double_byte.
1014 (x_produce_image_glyph): Use image_ascent.
1015 (x_produce_glyphs): Use new version of w32_per_char_metric and
1016 handle NULL return value. Allow extra line spacing.
1017 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1018 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1019 w32_font_type member of glyph instead.
1020 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1021 (fast_find_position): Make sure not to consider rows not visible
1022 in the window.
1023 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1024 w32_menu_display_help with input blocked, as it can abort.
1025 (x_display_and_set_cursor): Choose cursor depending
1026 on buffer-local value of cursor_type.
1027 (x_draw_bar_cursor): Add parameter WIDTH.
1028
1029 * w32term.h (CP_DEFAULT): Define.
1030 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1031
10fc3187
GM
10322000-05-30 Gerd Moellmann <gerd@gnu.org>
1033
1034 * search.c (Fre_search_forward, Fre_search_backward)
1035 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1036
d0555360
KH
10372000-05-30 Kenichi Handa <handa@etl.go.jp>
1038
1039 * coding.c (detect_coding_iso2022): Fix code for checking
1040 CODING_CATEGORY_MASK_ISO_8_2.
1041
f1ad044f
SM
10422000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1043
1044 * regex.c (PREFETCH_NOLIMIT): New function.
1045 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1046
84ec3b4b
GM
10472000-05-29 Gerd Moellmann <gerd@gnu.org>
1048
66254a13
GM
1049 * syntax.c (find_defun_start): Move test for
1050 open_paren_in_column_0_is_defun_start outside of the loop.
1051
49e70dec
GM
1052 * xdisp.c (redisplay_window): Really switch buffers when
1053 displaying mode lines, and temporarily set selected_frame to the
1054 frame of the window that's redisplayed.
1055
84ec3b4b
GM
1056 * xfaces.c (free_realized_faces): Block/unblock input.
1057 (free_realized_multibyte_face): Ditto.
1058
869a3a14
DL
10592000-05-29 Dave Love <fx@gnu.org>
1060
1061 * textprop.c (Qkeymap): New variable.
1062 (syms_of_textprop): Intern it.
1063
1064 * keymap.c: Include intervals.h.
1065 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1066
1067 * Makefile.in (keymap.o): Depend on intervals.h.
1068
1069 * keyboard.c (menu_bar_items, tool_bar_items)
1070 (Fexecute_extended_command): Deal with `keymap' property.
1071 (read_key_sequence): Track map from `keymap' property as well as
1072 `local_map'.
1073
1074 * intervals.c (get_local_map): Extra arg to allow looking for
1075 `keymap' too.
1076
1077 * intervals.h (map_property): New enum.
1078 (get_local_map): Extra arg using it.
1079 (Qkeymap): Declare.
1080
84ec3b4b 1081 * lisp.h (get_local_map): Don't declare here.
869a3a14 1082
89d0c844
KH
10832000-05-29 Kenichi Handa <handa@etl.go.jp>
1084
1085 * Makefile.in (callproc.o): Depend on composite.h.
1086
1087 * callproc.c: Include composite.h.
1088 (Fcall_process): Handle composition correctly.
1089
1090 * coding.h (coding_allocate_composition_data): Extern it.
1091 (coding_restore_composition): Likewise.
1092
1093 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1094 yet allocated, finish decoding with result
1095 CODING_FINISH_INSUFFICIENT_CMP.
1096 (coding_allocate_composition_data): Make it non-static.
1097 (coding_restore_composition): Likewise.
1098
797a084a
EZ
10992000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1100
1101 * charset.c (syms_of_charset): Revert last change.
1102
cf872af5
EZ
11032000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1104
1105 * term.c (produce_glyphs): Treat characters from the eight-bit-*
1106 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1107 Handa.
1108
5b1ae051
EZ
11092000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1110
1111 * charset.c (syms_of_charset): Set width of character sets
1112 eight-bit-control and eight-bit-graphic to 1 column.
1113
34ec9ebe
GM
11142000-05-26 Gerd Moellmann <gerd@gnu.org>
1115
1116 * config.in (HAVE_SPEED_T): New define.
1117
1118 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1119 `extern speed_t'.
1120
dd854dc2
DL
11212000-05-26 Dave Love <fx@gnu.org>
1122
1123 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1124
1125 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1126 (Fsubr_arity): New function.
1127 (syms_of_data): Install them.
1128
ba9f8f95
KH
11292000-05-26 Kenichi Handa <handa@etl.go.jp>
1130
0f3e0672
KH
1131 * charset.c (init_charset_once): Set the table bytes_by_char_head
1132 correctly.
1133
cebefb44
KH
1134 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1135 the default fontset to what Emacs uses by default.
0f3e0672
KH
1136 (check_registry_encoding): This function deleted.
1137 (Fset_fontset_font): Remove the adhoc condition for the default
1138 fontset. Allow cons in FONTNAME.
cebefb44 1139
0f3e0672
KH
1140 * fns.c (map_char_table): Ignore char-table entries for
1141 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1142
7a18af49
KR
11432000-05-25 Ken Raeburn <raeburn@gnu.org>
1144
1145 * emacs.c (main): Initialize keyboard syms before initializing
1146 window code, so face names are available.
1147
d2af47df
SM
11482000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1149
1150 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1151 of an anchor at the beginning of a shy-group.
1152
fc6a6a4e
GM
11532000-05-25 Gerd Moellmann <gerd@gnu.org>
1154
1155 * xdisp.c (handle_invisible_prop): Don't try to skip over
1156 invisible text if end of text is already reached.
1157
005f0d35
DL
11582000-05-25 Dave Love <fx@gnu.org>
1159
02513cdd
DL
1160 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1161
005f0d35
DL
1162 * coding.c (encode_eol): Add null statement after label.
1163
89f6ca4e
EZ
11642000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1165
1166 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1167 2000-05-20.
1168
a4e1759e
KH
11692000-05-25 Kenichi Handa <handa@etl.go.jp>
1170
1171 * ccl.c (ccl_driver): Fix previous change.
1172
eacfd7fe
KH
11732000-05-25 Kenichi Handa <handa@etl.go.jp>
1174
46ab33a9
KH
1175 * coding.c (run_pre_post_conversion_on_str): Set point to the
1176 beginning of buffer before calling coding->post_read_conversion.
1177 (decode_coding_string): Give correct args to
1178 run_pre_post_conversion_on_str.
1179 (encode_coding_string): Likewise.
1180
eacfd7fe
KH
1181 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1182 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1183 eight-bit-graphic correctly.
1184
f8569325
DL
11852000-05-24 Kenichi HANDA <handa@etl.go.jp>
1186
1187 * fileio.c (Finsert_file_contents): Even if a file is not found,
1188 execute codes for setting up coding system. Call
1189 after-insert-file-functions unconditionally.
1190
04545643
GM
11912000-05-24 Gerd Moellmann <gerd@gnu.org>
1192
1193 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1194 BSD_PGRPS are not defined.
1195
747d90ea
KH
11962000-05-24 Kenichi Handa <handa@etl.go.jp>
1197
1198 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1199 DESCRIPTION.
1200 (syms_of_charset): Avoid building same strings.
1201
716e3b88
GM
12022000-05-23 Gerd Moellmann <gerd@gnu.org>
1203
1204 * lread.c (Fload): Add a comment about the meaning of
1205 Vuser_init_file being t.
1206
1207 * puresize.h (BASE_PURESIZE): Increase to 675000.
1208
1209 * s/gnu-linux.h (setpgrp): Don't define it here because this
1210 prevents compilation on GNU/Linux systems with glib 2.2.
1211
1212 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1213 as setpgid.
427ec082 1214
9aeb39fa
EZ
12152000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1216
1217 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1218 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1219 version.
1220 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1221
29ced61b
KH
12222000-05-23 Kenichi Handa <handa@etl.go.jp>
1223
0574a2ed
KH
1224 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1225 unconditionally.
1226
3d80f24d
KH
1227 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1228
1229 * term.c (encode_terminal_code): Set coding->src_multibyte
1230 properly.
1231
29ced61b
KH
1232 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1233
d7e00792
KH
12342000-05-22 Kenichi Handa <handa@etl.go.jp>
1235
c9d80d38
KH
1236 * keyboard.c (read_char): Allow character codes 128..255 to be
1237 handled by input-method-function.
1238
d7e00792
KH
1239 * insdel.c (adjust_markers_for_replace): Fix previous change.
1240 (adjust_after_replace): If PREV_TEXT is nil, call
1241 adjust_markers_for_insert, not adjust_markers_for_replace.
1242
087121cc 12432000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1244
087121cc
GM
1245 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1246 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1247 [HAVE_GRANDPT]: Define.
1248 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1249
1250 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1251 like SYSV_PTYS.
1252
1253 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1254
1255 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1256
c9671f81
KH
12572000-05-20 Kenichi Handa <handa@etl.go.jp>
1258
1259 The following changes are to handle 8-bit characters in a
1260 multibyte buffer/string without facing with byte combining
1261 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1262 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1263
1264 * Makefile.in (fns.o): Depend on charset.h.
1265
1266 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1267 convert it to unibyte.
1268 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1269
1270 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1271 apparent char boundary.
1272 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1273 0x80..0x9F to/from multibyte form.
1274
1275 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1276 to unibyte.
1277
1278 * callproc.c (Fcall_process): Always encode an argument string if
1279 it is multibyte. Setup src_multibyte and dst_multibyte members of
1280 process_coding properly.
ce75fd23 1281
c9671f81
KH
1282 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1283 SPLIT_NON_ASCII_CHAR.
1284
1285 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1286 as is.
1287 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1288
1289 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1290 variables.
1291 (SPLIT_CHARACTER_SEQ): This macro deleted.
1292 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1293 valid.
1294 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1295 and eight-bit-graphic.
1296 (char_to_string): Likewise. Signal an error for too large
1297 character code.
1298 (char_printable_p): Return 0 for 8-bit characters.
1299 (update_charset_table): Update iso_charset_table only when a final
1300 character is non-negative.
1301 (find_charset_in_text): Renamed from find_charset_in_str.
1302 Arguments and return value changed. Callers changed.
1303 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1304 be -1 if CHARSET is used only internally.
1305 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1306 eight-bit-graphic.
1307 (Fcharset_after): Simplified.
1308 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1309 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1310 (multibyte_chars_in_text): Simplified by assuming there's no
1311 invalid multibyte sequence.
1312 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1313 str_as_unibyte): New functions.
1314 (Fstring): Simpified by assuming that byte combining never
1315 happens.
1316 (init_charset_once): Initialization for
1317 LEADING_CODE_8_BIT_CONTROL.
1318 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1319 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1320 eight-bit-control and eight-bit-graphic.
1321
1322 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1323 CHARSET_8_BIT_GRAPHIC): New macros.
1324 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1325 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1326 (CHARSET_REVERSE_CHARSET): Likewise.
1327 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1328 eight-bit-graphic.
1329 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1330 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1331 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1332 encounter an invalid multibyte sequence.
1333 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1334 sequence is always valid.
1335 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1336 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1337 macros.
1338 (CHAR_STRING): For 8-bit characters, call char_to_string.
1339 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1340 multibyte sequence is always valid.
1341 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1342 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1343 str_as_unibyte): Extern them.
1344 (BCOPY_SHORT): Fix a bug.
1345 (CHAR_LEN): This macro deleted. Callers changed to use
1346 CHAR_BYTES.
1347 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1348 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1349 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1350
bd4bde7f 1351 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1352 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1353 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1354 EMIT_BYTES): New macros.
1355 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1356 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1357 macros deleted.
1358 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1359 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1360 check the validity of multibyte sequence.
1361 (decode_coding_emacs_mule): New function.
1362 (encode_coding_emacs_mule): New macro.
1363 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1364 the source.
1365 (DECODE_ISO_CHARACTER): Just return a character code.
1366 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1367 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1368 EMIT_CHAR to produced decoded characters. Exit the loop only by
1369 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1370 block here.
1371 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1372 only position codes for an invalid character.
1373 (encode_designation_at_bol): Return new destination pointer. 5th
1374 arg DSTP is changed to DST.
1375 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1376 from the source by ONE_MORE_CHAR. Don't handle the case of last
1377 block here.
1378 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1379 macros deleted.
1380 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1381 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1382 TWO_MORE_BYTES to fetch a byte from the source.
1383 (encode_eol): Pay attention to coding->src_multibyte.
1384 (detect_coding, detect_eol): Preserve members src_multibyte and
1385 dst_multibyte.
1386 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1387 (encoding_buffer_size): Set magnification to 3 for all coding
1388 systems that require encoding.
1389 (ccl_coding_driver): For decoding, be sure that the result is
1390 valid multibyte sequence.
1391 (decode_coding): Initialize coding->errors and coding->result.
1392 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1393 and raw-text, always call decode_eol. Handle the case of last
1394 block here. If not coding->dst_multibyte, convert the resulting
1395 sequence to unibyte.
1396 (encode_coding): Initialize coding->errors and coding->result.
1397 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1398 and raw-text, always call encode_eol. Handle the case of last
1399 block here.
1400 (shrink_decoding_region, shrink_encoding_region): Detect cases
1401 that we can't skip data more rigidly.
1402 (code_convert_region): Setup src_multibyte and dst_multibyte
1403 members of coding. For decoding, if the buffer is multibyte,
1404 convert the source sequence to unibyte in advance. For encoding,
1405 if the buffer is multibyte, convert the resulting sequence to
1406 multibyte afterward.
1407 (run_pre_post_conversion_on_str): New function.
1408 (code_convert_string): Deleted and divided into the following two.
1409 (decode_coding_string, encode_coding_string): New functions.
1410 (code_convert_string1, code_convert_string_norecord): Call one of
1411 above.
1412 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1413 MAKE_NON_ASCII_CHAR.
1414 (Fset_terminal_coding_system_internal,
1415 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1416 and dst_multibyte members.
1417 (init_coding_once): Initialize iso_code_class with new enum
1418 ISO_control_0 and ISO_control_1.
1419
1420 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1421 devided into ISO_control_0 and ISO_control_1.
1422 (struct coding_system): New members src_multibyte, dst_multibyte,
1423 errors, and result. Delete member fake_multibyte.
1424 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1425 nonzero.
1426 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1427 nonzero.
1428
1429 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1430 (Faset): Likewise.
1431
1432 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1433 multibyte form.
1434 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1435 combining occurs.
1436 (Ftranspose_region): Delete codes for handling byte combining.
1437
1438 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1439 dst_multibyte members of coding. On handling REPLACE on unibyte
1440 buffer, convert the result of decode_coding to unibyte. On
1441 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1442 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1443 multibyteness of the source (buffer or string).
1444
1445 * fns.c (concat): Handle 8-bit characters correctly.
1446 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1447 unibyte in the result.
1448 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1449 valid multibyte form in the result.
1450 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1451 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1452 return -1, signal an error.
1453 (base64_encode_1): New arg MULTIBYTE. Get each character by
1454 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1455 character is found, return -1.
1456 (Fbase64_decode_region): Delete codes for handling byte-combining.
1457 Treat each decoded byte as a unibyte character.
1458 (Fbase64_decode_string): Return unibyte string.
1459 (Fcompare_strings, concat, string_byte_to_char): Use
1460 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1461 FETCH_STRING_CHAR_ADVANCE.
1462 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1463 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1464
1465 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1466 SPLIT_NON_ASCII_CHAR.
1467 (fontset_ref_via_base, fontset_set): Likewise
1468
1469 * insdel.c (adjust_markers_for_record_delete): Deleted.
1470 (adjust_markers_for_insert): Argument changed. Caller changed.
1471 (adjust_markers_for_replace): Likewise.
1472 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1473 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1474 (copy_text): Delete unused local varialbe c_save. For converting
1475 to multibyte, be sure to make all 8-bit characters in valid
1476 multibyte form.
1477 (count_size_as_multibyte): Handle 8-bit characters correctly.
1478 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1479 adjust_after_replace, replace_range, del_range_2)
1480 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1481 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1482 adjust_after_replace, replace_range, del_range_2) Delete codes for
1483 handling byte combining.
1484 (adjust_before_replace): Deleted.
427ec082 1485
c9671f81
KH
1486 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1487 SPLIT_NON_ASCII_CHAR.
1488 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1489 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1490 unconditionally.
1491 (Fkey_description): Likewise.
1492
1493 * lread.c (read1): On reading multibyte string, be sure to make
1494 all 8-bit chararacters in valid multibyte form.
1495 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1496
1497 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1498 unconditionally.
1499
1500 * process.c (Fstart_process): GCPRO current_dir before calling
1501 Ffind_operation_coding_system. Encode arguments here.
1502 (create_process): Don't encode arguments here. Setup
1503 src_multibyte and dst_multibyte members of struct coding.
1504 (read_process_output): Setup src_multibyte and dst_multibyte
1505 members of struct coding. If the output is to multibyte buffer,
1506 always decode the output of the process. Adjust the
1507 representation of 8-bit characters to the multibyteness of the
1508 output.
1509 (send_process): Setup coding->src_multibyte according to the
1510 multibyteness of the source.
1511
1512 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1513 unconditionally.
1514 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1515 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1516
1517 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1518 CHAR_LEN.
1519
1520 * w16select.c (Fw16_set_clipboard_data): Setup members
1521 src_multibyte and dst_multibyte of coding. Adjusted for the
1522 change for find_charset_in_str.
1523 (Fw16_get_clipboard_data): Likewise.
1524
1525 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1526 dst_multibyte of coding.
1527 (x_to_w32_font): Likewise.
1528
1529 * w32select.c (Fw32_set_clipboard_data): Setup members
1530 src_multibyte and dst_multibyte of coding. Adjusted for the
1531 change for find_charset_in_str.
1532 (Fw32_get_clipboard_data): Likewise.
1533
1534 * xdisp.c (get_next_display_element): Handle 8-bit characters
1535 correctly.
1536 (next_element_from_display_vector): Use CHAR_BYTES instead of
1537 CHAR_LEN.
1538 (disp_char_vector): Use SPLIT_CHAR instead of
1539 SPLIT_NON_ASCII_CHAR.
1540
1541 * xselect.c (selection_data_to_lisp_data): Setup members
1542 src_multibyte and dst_multibyte of coding. Adjusted for the
1543 change for find_charset_in_str.
1544 (lisp_data_to_selection_data): Likewise.
1545
5f64c9e0
GM
15462000-05-19 Gerd Moellmann <gerd@gnu.org>
1547
2b63d473
GM
1548 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1549 buffer.
1550
5f64c9e0
GM
1551 * dispextern.h (Vimage_types): Add extern declaration.
1552
1553 * xdisp.c (Vimage_types): Moved here from xfns.c.
1554 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1555
1556 * xfns.c (Vimages_types): Moved to xdisp.c.
1557 (syms_of_xfns): Move `image-types' to xdisp.c.
1558
1559 * w32fns.c (Vimage_types): Removed.
1560 (syms_of_w32fns): Remove `image-types'.
1561
813086ea
KH
15622000-05-18 Kenichi Handa <handa@etl.go.jp>
1563
1564 * fns.c (map_char_table): Pay attention to character number of
1565 charset. Check the validity of charset at the first level. For
1566 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1567 the default value.
1568
1569 * fontset.c: Include "buffer.h".
1570 (fs_load_font): If the face has fontset, record the face ID in
1571 that fontset.
1572 (Finternal_char_font): New function.
1573 (accumulate_font_info): New function.
1574 (Ffontset_info): Rewritten for the new fontset implementation.
1575 (syms_of_fontset): Register Vdefault_fontset in the first element
1576 of Vfontset_table. Include Vdefault_fontset in
1577 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1578 function.
1579
bdaebbf0
DL
15802000-05-16 Dave Love <fx@gnu.org>
1581
1582 * m/iris5d.h: Deleted -- unused.
1583
cb613bb8
GM
15842000-05-16 Gerd Moellmann <gerd@gnu.org>
1585
b15f3b77
GM
1586 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1587 `invalid' instead of `illegal'.
1588
1589 * indent.c (Fmove_to_column): When ending within a tab, insert
1590 spaces first so that markers at the end of the tab get adjusted.
1591
835c1b36
GM
1592 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1593 buffer list that wasn't selected in that frame.
1594
cb613bb8
GM
1595 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1596 is needed on mescaline, use a 2 char prefix, and call
1597 make_temp_name with second arg non-zero.
1598
1599 * fileio.c (make_temp_name): New function, extracted from
1600 Fmake_temp_name.
1601 (Fmake_temp_name): Use it.
1602
f685bea9
EZ
16032000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1604
1605 * window.c (coordinates_in_window): Subtract 1 when computing
1606 right_x.
1607
a1b8d58b
GM
16082000-05-15 Gerd Moellmann <gerd@gnu.org>
1609
1610 * Makefile.in (lisp): Add env.elc.
1611
1612 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1613
a265079f
GM
16142000-05-12 Gerd Moellmann <gerd@gnu.org>
1615
1616 * search.c (Freplace_match): Handle case of `\N' in the
1617 replacement when there's no group N.
1618
da4496b6
GM
16192000-05-11 Gerd Moellmann <gerd@gnu.org>
1620
0ace421a
GM
1621 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1622 of the message to message_dolog.
1623
1172eb8d
GM
1624 * keyboard.c (read_char): Don't clear current message for help
1625 events; let the code handling help events handle this. Change
1626 code detecting help events that should be ignored.
1627
da4496b6
GM
1628 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1629 we're interating over a string.
1630
0623e40f
DL
16312000-05-09 Dave Love <fx@gnu.org>
1632
1633 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1634 that offset before writing. Move gcpro region past call of
1635 Ffile_regular_p.
1636
bae2503b
DL
16372000-05-04 Dave Love <fx@gnu.org>
1638
1639 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1640
ec82fb2f
GM
16412000-05-04 Gerd Moellmann <gerd@gnu.org>
1642
1643 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1644 of inserted characters when BUF equals the current buffer, and PT
1645 is in front of or equal to FROM.
1646
cbf18892
GM
16472000-05-03 Gerd Moellmann <gerd@gnu.org>
1648
4ff40dd0
GM
1649 * xdisp.c (handle_single_display_prop): If display property value
1650 is invalid, or something not supported on the frame, restore
1651 iterator's position to what it was initially. Make sure to return
1652 0 for invalid and unsupported property values.
1653
cbf18892
GM
1654 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1655 that x_per_char_metric returns null.
1656
1b0672c3
GM
16572000-05-02 Gerd Moellmann <gerd@gnu.org>
1658
576da55d
GM
1659 * xterm.h (struct face): Add forward declaration.
1660 (struct image): Ditto.
1661 (image_ascent): Add prototype.
1662
1663 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1664 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1665 image_ascent instead of using IMAGE_ASCENT.
1666
1667 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1668 (IMAGE_ASCENT): Removed.
1669
1670 * xfns.c (Qcenter): New variable.
1671 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1672 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1673 (image_ascent): New function.
1674 (lookup_image): Recognize `:ascent center'.
1675 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1676 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1677 (xbm_load): Don't set image's ascent here.
1678 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1679 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1680 check ascent values here.
1681 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1682 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1683 (syms_of_xfns): Initialize Qcenter.
1684
1b0672c3
GM
1685 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1686 to the limits, increase the limits.
1687
0d7811ed
KH
16882000-05-01 Kenichi Handa <handa@etl.go.jp>
1689
1690 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1691 Check Vfont_encoding_alist against the full name of the opened
1692 font.
1693
a943a5ca
GM
16942000-04-28 Gerd Moellmann <gerd@gnu.org>
1695
1696 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1697 taller than the window.
1698
5dba1e29
KH
16992000-04-28 Kenichi Handa <handa@etl.go.jp>
1700
1701 * xfaces.c (realize_x_face): Fix the argument of the second
1702 xassert. BASE_FACE may not be a face for ASCII.
1703
353964e3
GM
17042000-04-27 Gerd Moellmann <gerd@gnu.org>
1705
c76e04a8
GM
1706 * print.c (print_object): Treat print-length < 0 as nil.
1707
1708 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1709
1710 * s/freebsd.h (TERMCAP_OBJ): Removed.
1711 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1712
1713 * lread.c (read1): Don't treat period followed by certain
1714 characters as symbol start.
1715
1716 * xfns.c (slurp_file): New function.
1717 (xbm_image_p): Handle case of in-memory XBM files.
1718 (xbm_scan): Rewritten to work on memory buffers instead of files.
1719 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1720 Work on memory buffers instead of files. If DATA is null test
1721 if buffer looks like an in-memory XBM file.
1722 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1723 memory buffers instead of files.
1724 (xbm_file_p): New function.
1725 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1726
353964e3
GM
1727 * lread.c (end_of_file_error): New function.
1728 (read1): Call it instead of signaling `end-of-file' directly.
1729
427ec082 1730 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1731 with Fprinc instead of Fprin1.
1732
24d744ac
KR
17332000-04-26 Ken Raeburn <raeburn@gnu.org>
1734
1735 * window.c (freeze_window_start): Check that minibuffer scroll
1736 window isn't nil before extracting the window structure pointer
1737 from it.
1738
1739 * undo.c (record_delete): If we hit the end of the undo list, stop
1740 picking elements apart.
1741
7464346d
GM
17422000-04-26 Gerd Moellmann <gerd@gnu.org>
1743
1744 * xdisp.c (display_line): If lines are continued, restore
1745 iterator's ascent/descent information to the values before the
1746 first glyph not fitting on the line.
1747
612839b6
GM
17482000-04-25 Gerd Moellmann <gerd@gnu.org>
1749
1750 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1751 positions in glyph matrix. Don't compute new window end
1752 positions.
1753
1754 * dispnew.c (increment_matrix_positions): Renamed from
1755 increment_glyph_matrix_buffer_positions.
1756 (increment_row_positions): Renamed from
1757 increment_glyph_row_buffer_positions.
1758
1759 * dispextern.h: Change names of renamed functions from dispnew.c
1760 in prototypes.
1761
cc181e95
GM
17622000-04-24 Gerd Moellmann <gerd@gnu.org>
1763
abfcc168
GM
1764 * fileio.c (Fdo_auto_save): Create directories for auto-save
1765 list file if necessary.
1766
cc181e95
GM
1767 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1768 from buffer or frame.
1769 (automatic_hscrolling_p): New variable.
1770 (hscroll_windows): Scroll windows horizontally only if automatic
1771 hscrolling is allowed.
1772 (syms_of_xdisp): New variable `automatic-hscrolling'.
1773
1774 * frame.h (struct frame): Add member extra_line_spacing.
1775
1776 * xfns.c (x_set_line_spacing): New function.
1777 (Fx_create_frame): Set line spacing from resources.
1778 (Qline_spacing): New variable.
1779 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1780
cc181e95
GM
1781 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1782
1783 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1784 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1785 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1786 extra_line_spacing from default value.
1787 (init_buffer_once): Initialize default value of extra_line_spacing.
1788
1789 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1790 and extra3.
1791
1792 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1793 prompt_width. Add extra line spacing.
1794
1795 * term.c (produce_glyphs): Remove reference to struct it's
1796 prompt_width.
1797
1798 * dispextern.h (struct it): Remove member prompt_width, add
1799 extra_line_spacing.
1800
58827478
GM
18012000-04-22 Gerd Moellmann <gerd@gnu.org>
1802
1803 * dispnew.c (update_frame_line): When writing a whole line, make
1804 sure cursor is in the right row afterwards, otherwise a use of
1805 capability `ch' in cmgoto might leave the cursor in the row below.
1806
25a87f42
GM
18072000-04-21 Gerd Moellmann <gerd@gnu.org>
1808
1809 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1810
1811 * keyboard.c (timer_check): Fix typo in comment.
1812
54edf5c2
KH
18132000-04-21 Kenichi Handa <handa@etl.go.jp>
1814
1815 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1816 name change: ch -> character.
1817
3a64eef5
GM
18182000-04-20 Gerd Moellmann <gerd@gnu.org>
1819
1820 * keyboard.c (echo_message_buffer): New variable.
1821 (echo_now): Set echo_message_buffer to the echo area buffer used
1822 to display the echo.
1823 (cancel_echoing): Reset echo_message_buffer to nil.
1824 (read_char): Code rewritten that handles canceling an echo or
1825 echoing a dash, respectively.
1826
1827 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1828 directory doesn't exist.
1829
6142fdcb
DL
18302000-04-19 Dave Love <fx@gnu.org>
1831
1832 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1833 (concat): Don't allow numeric args.
1834 (Fconcat): Doc change.
6142fdcb 1835
ac6b5352
SM
18362000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1837
1838 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1839 instead define end_match(1|2) more carefully.
1840 Use GET_CHAR_BEFORE_2 for `begline'.
1841
cb9215e4
GM
18422000-04-19 Gerd Moellmann <gerd@gnu.org>
1843
5e3dac3f
GM
1844 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1845 on 64-bit systems where NULL is defined as `0'.
1846
1847 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1848 the `variable argument list' to make it work on Alpha.
1849
cb9215e4
GM
1850 * m/alpha.h (_LP64) [!_LP64]: Define.
1851 (ORDINARY_LINK): Define for NetBSD.
1852
1853 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1854
f532dca0
DL
18552000-04-19 Dave Love <fx@gnu.org>
1856
c750667e
DL
1857 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1858 change.
1859
1860 * Makefile.in (LIBS): Don't use.
1861 (GETLOADAVG_OBJ): Define again.
1862 (otherobj): Add GETLOADAVG_OBJ.
1863
f532dca0
DL
1864 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1865
1c7e22fd
GM
18662000-04-18 Gerd Moellmann <gerd@gnu.org>
1867
f6d3257b
GM
1868 * lread.c (read_filtered_event): Cancel and start busy cursor.
1869
427ec082 1870 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1871 that the per-character metrics may be null.
1872
e10f64e7
GM
18732000-04-17 Gerd Moellmann <gerd@gnu.org>
1874
0daee095
GM
1875 * buffer.c (clone_per_buffer_values): New function.
1876 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1877 clone_per_buffer_values if CLONE is not nil.
1878
e10f64e7
GM
1879 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1880
38687d43
DL
18812000-04-16 Dave Love <fx@gnu.org>
1882
1883 * Makefile.in: Remove obsolete localcpp stuff.
1884 (GETLOADAVG_OBJ): Don't define.
1885 (obj): Move LIBOBJS...
1886 (otherobj): ... to here.
1887 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1888 whitespace-only lines after the continuation (Irix).
1889
c21c7262
GM
18902000-04-14 Gerd Moellmann <gerd@gnu.org>
1891
1892 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1893
1894 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1895
314767c0
DL
18962000-04-14 Dave Love <fx@gnu.org>
1897
1898 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1899 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1900 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1901 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1902 NLIST_STRUCT.
1903
1904 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1905 autoconfiscated HAVE_GETLOADAVG.
1906
1907 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1908 BROKEN_MKTIME.
1909
a2522dca
GM
19102000-04-14 Gerd Moellmann <gerd@gnu.org>
1911
1912 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1913 (fill_in_lock_file_name): Avoid existing files that aren't
1914 links.
1915
33744b5d
DL
19162000-04-14 Dave Love <fx@gnu.org>
1917
c21c7262 1918 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1919 (INTERVAL_SRC): Convert to make variable.
1920 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1921 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1922 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1923 add LIBOBJS.
1924 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1925 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1926 (shortlisp): Add facemenu, float-sup, frame.
1927 (SOME_MACHINE_LISP): Remove them from here.
1928 (LIBES): Change unused LDLIBS to autoconf LIBS.
1929
1930 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1931
9d3d5916
KH
19322000-04-14 Kenichi Handa <handa@etl.go.jp>
1933
1934 * composite.c (update_compositions): If FROM and TO are not in a
1935 valid range, do nothing.
1936
198e3c7a
GM
19372000-04-13 Gerd Moellmann <gerd@gnu.org>
1938
1939 * tparam.c (tparam1): Abort when encountering an unknown
1940 `%'-specifier.
1941
1942 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1943 terminfo.o.
1944
1945 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1946 as TERMCAP_OBJ.
1947
055a28c9
EZ
19482000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1949
1950 * fileio.c (a_write): Remove redundant semi-colons.
1951 (e_write): Return -1 if failed to write all the data.
1952 This fixes the changes made at 1999-12-15.
1953
f5c75033
DL
19542000-04-12 Dave Love <fx@gnu.org>
1955
1956 * fns.c (mapcar1): Test for null vals to support mapc.
1957 (Fmapc): New function.
1958
0c3cfc51
EZ
19592000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1960
1961 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1962 (IT_frame_up_to_date): Support the buffer local value of
1963 cursor-type, if defined.
1964
33465a31
DL
19652000-04-10 Dave Love <fx@gnu.org>
1966
1967 * editfns.c (preceding-char, following-char): Doc fix.
1968
6ed56568
KR
19692000-04-10 Ken Raeburn <raeburn@gnu.org>
1970
1971 * Makefile.in (temacs): Revert 2000-03-12 change.
1972
7cf80d4e
JR
19732000-04-10 Jason Rumney <jasonr@gnu.org>
1974
1975 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1976
34f3f342
GM
19772000-04-10 Gerd Moellmann <gerd@gnu.org>
1978
1a1b1895
GM
1979 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1980 area buffer, if it's not set up yet.
1981
34f3f342
GM
1982 * indent.c (compute_motion): Set immediate_quit.
1983
be0dbdab
GM
19842000-04-09 Gerd Moellmann <gerd@gnu.org>
1985
c45be9ac
GM
1986 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1987 variable.
1988 (realize_tty_face): Suppress boldness if colors are the inverse of
1989 the default colors, and tty_suppress_bold_inverse_default_colors_p
1990 is set.
1991 (Ftty_suppress_bold_inverse_default_colors): New function.
1992 (syms_of_xfaces): Defsubr it.
1993
be0dbdab
GM
1994 * buffer.c (Frestore_buffer_modified_p): New function.
1995 (syms_of_buffer): Defsubr it.
1996
e8413c3b
KR
19972000-04-08 Ken Raeburn <raeburn@gnu.org>
1998
87f67317
KR
1999 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
2000 charset id (int) argument, not a charset (Lisp_Object).
2001
e8413c3b
KR
2002 * coding.h (code_convert_string): Declare.
2003 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
2004 object, as the fourth argument to code_convert_string.
2005
2006 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2007 value.
2008 (Fset_fontset_font): Use EQ to compare lisp objects.
2009
7c752c80
KR
20102000-04-05 Ken Raeburn <raeburn@gnu.org>
2011
c0333abc
KR
2012 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2013 a pointer that looks like a lisp object.
2014 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2015 zero, instead see whether it's an integer object, since they can't
2016 have intervals.
2017 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2018
7c752c80
KR
2019 * dispnew.c (allocate_matrices_for_frame_redisplay,
2020 direct_output_forward_char): Use X(U)INT and make_number as needed
2021 to convert between (unsigned) int values and lisp integers.
2022 * keyboard.c (read_key_sequence): Likewise.
2023 * lread.c (substitute_object_recurse): Likewise.
2024 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2025 * minibuf.c (do_completion, Fminibuffer_complete_word,
2026 Fminibuffer_completion_help): Likewise.
2027 * term.c (produce_special_glyphs): Likewise.
2028
2029 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2030 * print.c (print_preprocess, print_object): Likewise.
2031
2032 * search.c (compile_pattern): Use NILP when checking for nil.
2033
74e49b38
KR
2034 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2035 __OPTIMIZE__]: Provide a GNU C macro version that handles
2036 lisp-object unions.
2037 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2038 field, to better cope with ENABLE_CHECKING and calls that modify a
2039 Lisp_Object using its old value.
2040
685e5ed2
GM
20412000-04-04 Gerd Moellmann <gerd@gnu.org>
2042
c407c570
GM
2043 * window.c (compare_window_configurations): Signal an error
2044 if parameters C1 or C2 aren't window configurations.
2045
685e5ed2
GM
2046 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2047 AFTER_POTENTIAL_GC calls around calls to functions that can
2048 signal an error and thus invoke the debugger.
2049
587a49ab
GM
20502000-04-03 Gerd Moellmann <gerd@gnu.org>
2051
62f20204
GM
2052 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2053 an error if decoding fails.
2054
587a49ab
GM
2055 * keyboard.c (lispy_mouse_names): Variable removed.
2056 (Vlispy_mouse_stem): New variable.
2057 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2058 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2059 for any mouse button number. Increase size of mouse_syms and
2060 button_down_location as needed. Call modify_event_symbol with
2061 different arguments.
2062 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2063 Call modify_event_symbol with different arguments.
2064 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2065 for any button number. Call modify_event_symbol with different
2066 arguments.
2067 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2068 Accept a string for NAME_ALIST_OR_STEM.
2069
2070 * lisp.h (larger_vector): Add prototype.
2071
2072 * fns.c (larger_vector): Make externally visible.
2073
2074 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2075
2d1675e4
SM
20762000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2077
2078 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2079 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2080 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2081 we are between str1 and str2.
2082 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2083 (PATFETCH): Use `TRANSLATE'.
2084 (PATFETCH_RAW): Fetch multibyte char if applicable.
2085 (PATUNFETCH): Remove.
2086 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2087 When writing a char, write it directly into the pattern buffer rather
2088 than going needlessly through a temp char-array.
2089 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2090 multibyte magic and remove the useless `#ifdef emacs'.
2091 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2092 buffer.
2093
2094 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2095 conditional on `emacs'.
2096
2097 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2098
cc2d8c6b
KR
20992000-04-01 Ken Raeburn <raeburn@gnu.org>
2100
2101 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2102 non-union-type versions of XMARK and friends here, because XMARK
2103 and friends won't work on an integer field if NO_UNION_TYPE is not
2104 defined.
2105 (make_number): Define as a function if it's not defined as a
2106 macro.
2107
09654086
KR
2108 * composite.c (run_composite_function): Use NILP when checking for
2109 nil.
2110 (syms_of_composite): Delete local var NARGS, pass an int as first
2111 argument to Fmake_hash_table.
2112
2387b382
KR
2113 * editfns.c (text_property_stickiness): Use NILP to test
2114 Lisp_Object boolean value.
2115 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2116 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2117 problems reading from and changing the same lisp value in an
2118 XSETSTRING call.
2119
27660e89
GM
21202000-04-01 Gerd Moellmann <gerd@gnu.org>
2121
2122 * term.c (TN_no_color_video): New variable.
2123 (term_init): Intitialize TN_no_color_video.
2124 (enum no_color_bit): New enumeration.
2125 (MAY_USE_WITH_COLORS_P): New macro.
2126 (turn_on_face): Use it to determine if attributes may be used
2127 combined with colors.
2128
3578db3c
KR
21292000-04-01 Ken Raeburn <raeburn@gnu.org>
2130
2131 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2132 with int lvalues via casts; instead, just yield lisp object
2133 lvalues.
2134 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2135 proper accessor macros.
2136 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2137 (grow_mini_window): Fix typo getting int value of root->height.
2138
6fc556fd
KR
2139 * xdisp.c (compute_string_pos): Fix order of arguments to
2140 string_pos_nchars_ahead.
2141 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2142 count arg to variable-arg routines like Frun_hook_with_args and
2143 Fformat.
587a49ab
GM
2144 (back_to_previous_visible_line_start)
2145 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2146 fixed-arg routines like Fget_char_property and Fmake_string.
2147 (reconsider_clip_changes): Use XINT when comparing integer lisp
2148 objects, or passing them as int arguments.
587a49ab
GM
2149 (mark_window_display_accurate, insert_left_trunc_glyphs)
2150 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2151 storing or passing integer values as lisp objects.
2152 (set_cursor_from_row, highlight_trailing_whitespace): Use
2153 INTEGERP, not implicit test against zero, for glyph object.
2154 (try_window_id): Don't use make_number when we want an int value.
2155
2156 * xfaces.c (xlfd_symbolic_value): Make last argument a
2157 Lisp_Object, to be consistent with callers.
2158 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2159 (lface_hash): Apply XFASTINT to lisp values before folding in.
2160
2161 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2162 fill in window width and height. Pass an int, not a lisp object,
2163 as first arg to Finsert.
2164
6e7b2457
GM
21652000-04-01 Gerd Moellmann <gerd@gnu.org>
2166
610d841e
GM
2167 * xfaces.c (realize_basic_faces): Block input while realizing
2168 the faces.
2169
6e7b2457
GM
2170 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2171
2172 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2173
aa110c0c
GM
21742000-03-31 Gerd Moellmann <gerd@gnu.org>
2175
2176 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2177 or ASCII, handle case that per-char metric is null.
aa110c0c 2178
8801a864
KR
21792000-03-30 Ken Raeburn <raeburn@gnu.org>
2180
c6129d7e
KR
2181 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2182
8801a864
KR
2183 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2184 XSUBR, XBUFFER): Verify correct object type before returning
2185 pointer, using eassert.
2186 * frame.h (XFRAME): Likewise.
2187
2188 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2189 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2190 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2191 type.
2192 * data.c (set_internal): Likewise.
2193 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2194 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2195 * fileio.c (auto_save_1): Likewise.
2196 * insdel.c (check_markers): Likewise.
2197 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2198 * undo.c (record_insert): Likewise.
2199 * vmsproc.c (child_sig): Likewise.
2200 * window.c (unshow_buffer, window_loop): Likewise.
2201 * xterm.c (x_erase_phys_cursor): Likewise.
2202
8e7af858
GM
22032000-03-30 Gerd Moellmann <gerd@gnu.org>
2204
2205 * xfns.c (free_image_cache): Free the cache structure itself
2206 last, after all its members have been freed.
2207
2208 * lisp.h (xstrdup): Add prototype.
2209
2210 * alloc.c (xstrdup): Moved here from xfaces.c.
2211 (allocating_for_lisp): Variable removed.
2212 (lisp_malloc): Block input around the calls to malloc and
2213 mem_insert.
2214
2215 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2216 of Fsymbol_value.
2217 (xstrdup): Moved to alloc.c.
2218
e0b8c689
KR
22192000-03-29 Ken Raeburn <raeburn@gnu.org>
2220
b96f9fb7
KR
2221 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2222
2223 * emacs.c (main): Fix sense of no-loadup test.
2224
e0b8c689
KR
2225 * config.in (ENABLE_CHECKING): Undef.
2226
2227 * lisp.h (struct interval): Replace "parent" field with a union of
2228 interval pointer and Lisp_Object; add new bitfield to use as
2229 discriminant. Change other flag fields to bitfields.
2230 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2231 is defined and the supplied test fails, print a message and
2232 abort.
2233 (eassert): New macro. Use CHECK to provide an assert-like
2234 facility.
2235
2236 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2237 pointers; abort if the value looks like a lisp object.
2238 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2239 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2240 Modify for new interval parent definition.
2241
2242 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2243 UNMARK_BALANCE_INTERVALS): Update references that need an
2244 addressable lisp object in the interval structure.
2245 (die): New function.
2246 (suppress_checking): New variable.
2247
2248 * intervals.c (interval_start_pos): Just return 0 if there's no
2249 parent object.
2250
f83c5440
GM
22512000-03-29 Gerd Moellmann <gerd@gnu.org>
2252
2253 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2254 and earlier Emacs versions.
2255
2256 * keyboard.c (Ftop_level): Cancel busy-cursor.
2257
2258 * eval.c (call_debugger): Cancel busy-cursor.
2259
fdce64ff
KH
22602000-03-29 Kenichi Handa <handa@etl.go.jp>
2261
2262 * search.c (Freplace_match): Adjust multibyteness of the current
2263 buffer and NEWTEXT. Free allocated memory before signaling an
2264 error.
2265
f6a3f532
SM
22662000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2267
2268 * regex.c (analyse_first): New function obtained by ripping out most
2269 of re_compile_fastmap and generalizing it a little bit so that it
2270 can also just return whether a given (sub)pattern can match the empty
2271 string or not.
2272 (regex_compile): Use `analyse_first' to decide whether the loop-check
2273 needs to be done or not for *, +, *? and +? (the loop check is costly
2274 for non-greedy repetition).
2275 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2276
e9b309ac
DL
22772000-03-28 Dave Love <fx@gnu.org>
2278
bb15bd9a
DL
2279 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2280 alpha.
2281
e9b309ac
DL
2282 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2283
ed0767d8
SM
22842000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2285
2286 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2287 an expression.
2288 (enum re_opcode_t): Update description of succeed_n.
2289 (PATFETCH): Always define.
2290 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2291 operators, char classes, shy-groups and intervals).
2292 Optimize special cases of intervals so as to only use succeed_n and
2293 jump_n when really needed.
2294 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2295 that we don't have to handle the special cases any more.
2296 Simplify on_failure_jump handling as well.
2297
e11e7e46
JR
22982000-03-28 Jason Rumney <jasonr@gnu.org>
2299
2300 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2301
88faab89
GM
23022000-03-27 Gerd Moellmann <gerd@gnu.org>
2303
182ff242
GM
2304 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2305
2306 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2307
182ff242
GM
2308 * alloc.c (mark_maybe_object): New function.
2309 (mark_memory): Use it.
2310 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2311 (setjmp_tested_p, longjmp_done): New variables.
2312 (test_setjmp): New function.
2313 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2314 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2315
c1005d06
GM
2316 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2317 to DEC_TEXT_POS and INC_TEXT_POS.
2318
2319 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2320 with parameter MULTIBYTE_P.
2321
427ec082 2322 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2323 MULTIBYTE_P.
2324
7439e5b9 2325 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2326 buffers because it looks for multibyte character byte sequences
2327 which don't exist in unibyte text.
7439e5b9 2328
d9c545da
GM
2329 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2330
11fd416e 2331 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2332 [DEBUG_X_COLORS]: New functions.
2333 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2334
2335 * xfns.c (x_set_cursor_color): Get color reference counts right.
2336
2337 * xterm.c (x_copy_color): New function.
2338 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2339
2340 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2341 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2342 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2343 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2344 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2345 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2346 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2347 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2348 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2349 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2350
11fd416e
GM
2351 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2352 names for handling per-buffer variables.
d9c545da
GM
2353
2354 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2355 instead of MAX_BUFFER_LOCAL_VARS.
2356 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2357
2358 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2359
88faab89
GM
2360 * xfns.c (x_specified_cursor_type): New function.
2361 (x_set_cursor_type): Use it.
2362
2363 * buffer.h (struct buffer): Add cursor_type.
2364
d80f42b7
SM
23652000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2366
2367 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2368 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2369 opcode.
d80f42b7
SM
2370 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2371 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2372 executing it as well as when popping it off the stack to find infinite
2373 loops in non-greedy repetition operators.
2374
89e80928
GM
23752000-03-26 Gerd Moellmann <gerd@gnu.org>
2376
3d4ff2dd
GM
2377 * doc.c (Qfunction_documentation): New variable.
2378 (syms_of_doc): Initialize Qfunction_documentation.
2379 (Fdocumentation): If FUNCTION is a symbol with non-nil
2380 `function-documentation' property, return a documentation derived
2381 from that.
2382
bd96bd79
GM
2383 * buffer.c (syms_of_buffer): Add default-cursor-type.
2384 (init_buffer_once): Don't let cursor_type have a local value
2385 in every buffer.
2386
19d1bc27
GM
2387 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2388 on buffer-local value of cursor_type.
2389 (x_draw_bar_cursor): Add parameter WIDTH.
2390
2391 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2392 (init_buffer_once): Set default cursor_type value to t.
2393 Mark cursor_type as local everywhere.
2394 (syms_of_buffer): New per-buffer variable cursor-type.
2395
89e80928
GM
2396 * buffer.h (struct buffer): Remove member local_var_flags,
2397 add local_flags.
2398 (MAX_BUFFER_LOCAL_VARS): New macro.
2399 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2400 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2401 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2402 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2403
2404 * print.c (print_object): Use new macros for per-buffer
2405 variables.
2406
2407 * category.c (Fset_category_table): Use new macros for per-buffer
2408 variables.
2409
2410 * buffer.c (buffer_permanent_local_flags): Make a char array.
2411 (max_buffer_local_idx): New variable.
2412 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2413 for new handling of per-buffer variables.
2414 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2415 (init_buffer_once): Initialize per-buffer vars differently.
2416 Set max_buffer_local_idx.
2417
2418 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2419 variables.
2420
2421 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2422 variables.
2423
2424 * data.c (do_symval_forwarding, store_symval_forwarding)
2425 (find_symbol_value, set_internal, default_value, Fset_default)
2426 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2427 per-buffer variables.
2428
2429 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2430
9a0dd3dc
GM
24312000-03-24 Gerd Moellmann <gerd@gnu.org>
2432
b68c375f
GM
2433 * xterm.c (x_term_init): Unblock input around call1 of
2434 Qvendor_specific_keysyms.
2435
9a0dd3dc
GM
2436 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2437 (find_defun_start): Consider an open parenthesis in column 0
2438 a defun start only if open_paren_in_column_0_is_defun_start is set.
2439 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2440
7973e637
SM
24412000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2442
2443 * eval.c (Fautoload): Add entry in load-history (if after dump).
2444 * lread.c (load-history): Update docstring.
2445
39210e90
GM
24462000-03-24 Gerd Moellmann <gerd@gnu.org>
2447
2448 * indent.c (Fvertical_motion): Always use the current buffer.
2449 Temporarily change the window's buffer, if necessary.
2450
72db3ab5
GM
24512000-03-23 Gerd Moellmann <gerd@gnu.org>
2452
2453 * xterm.c (fast_find_position): Make sure not to consider rows
2454 not visible in the window.
2455
990b2375
SM
24562000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2457
2458 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2459 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2460
ff4df011
JR
24612000-03-22 Jason Rumney <jasonr@gnu.org>
2462
2463 * w32menu.c (single_submenu): Set help string to NULL if none.
2464 (w32_menu_show): Set help string correctly.
2465 (add-menu-item): Set help string in MIIM_DATA for menu item.
2466 Load SetMenuItemInfoA explicitly.
2467 (w32_menu_display_help): New function.
427ec082 2468
ff4df011
JR
2469 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2470 (QCdata): Moved to xdisp.c.
2471
2472 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2473 (Vw32_charset_to_codepage_alist): Removed.
2474 (Vw32_charset_info_alist): New variable.
2475 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2476 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2477 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2478 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2479 with TODO comment.
2480 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2481 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2482 Define Vw32_charset_info_alist and w32_charset symbols.
2483
24842000-03-22 Jason Rumney <jasonr@gnu.org>
2485
2486 * makefile.nt (w32bdf.obj): Update dependencies.
2487
2488 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2489
2490 * w32fns.c: Include fontset.h after dispextern.h.
2491 (Fx_create_frame): Do not create fontset.
2492 (w32_load_system_font): Doc fix.
2493 (Fx_close_connection): Free full_name if it is not shared.
2494
2495 * w32term.c: Include fontset.h after dispextern.h.
2496 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2497 updated.
2498 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2499 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2500 (w32_font_is_double_byte): New function, needs body.
2501 (x_append_glyph): Set glyph->glyph_not_available_p.
2502 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2503 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2504 character, convert it to a unibyte character.
2505 (struct glyph_string): Delete member `charset'.
2506 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2507 calculating it is found.
2508 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2509 the case that per char metric is not available correctly.
2510 (x_fill_glyph_string): Handle the case that the specific glyph is
2511 not available correctly.
2512 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2513 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2514 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2515 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2516 fontset. Don't call FS_LOAD_FONT.
2517
439d5cb4
KR
25182000-03-22 Ken Raeburn <raeburn@gnu.org>
2519
2520 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2521 (INT_LISPLIKE): New macro.
2522 (NULL_INTERVAL_P): Use it.
2523 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2524 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2525 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2526
2527 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2528 explicit references to "parent" field of struct interval and
2529 associated unclean type conversions.
2530 * intervals.c (create_root_interval, root_interval, rotate_right,
2531 rotate_left, balance_possible_root_interval, split_interval_right,
2532 split_interval_left, interval_start_pos, find_interval,
2533 next_interval, previous_interval, update_interval,
2534 adjust_intervals_for_insertion, delete_node, delete_interval,
2535 adjust_intervals_for_deletion, merge_interval_right,
2536 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2537 copy_intervals_to_string): Likewise.
2538 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2539 Likewise.
2540 * syntax.c (update_syntax_table): Likewise.
2541
2542 * intervals.c (reproduce_tree_obj): New function, like
2543 reproduce_tree but takes a Lisp_Object for the parent. Declare
2544 with prototype.
2545 (graft_intervals_into_buffer): Use it when appropriate.
2546 (reproduce_tree): Declare with prototype.
2547 (balance_possible_root_interval): Check that the parent is a lisp
2548 object before trying to examine its type.
2549
ee1c5b21
GM
25502000-03-22 Gerd Moellmann <gerd@gnu.org>
2551
2552 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2553 as strings only if both are known to be strings.
2554
2555 * s/openbsd.h (LIBS_TERMCAP): Undef.
2556
1fb352e0
SM
25572000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2558
2559 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2560 definitions for non-Emacs compilation.
2561 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2562 outside of `#ifdef emacs'.
2563 (print_partial_compiled_pattern): Update.
2564 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2565 (re_compile_fastmap): Merge handling of charset and charset_not (for
2566 emacs and non-emacs compilation as well).
2567 Similarly for (not)categoryspec and (not)syntaxspec.
2568 Don't use the fastmap when reaching `anychar' since the added
2569 complexity is not justified.
2570 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2571 and (not)syntaxspec. Merge (not)categoryspec.
2572
fdaa1f77
KH
25732000-03-22 Kenichi Handa <handa@etl.go.jp>
2574
ff1a0d8e
KH
2575 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2576 FACE_FOR_CHAR): Define them differently for the configuration of
2577 --without-x.
fdaa1f77 2578
d152fb46
DL
25792000-03-21 Dave Love <fx@gnu.org>
2580
2581 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2582 doc string.
2583
d2cafc8c
GM
25842000-03-21 Gerd Moellmann <gerd@gnu.org>
2585
2586 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2587 (lface_fully_specified_p): Don't check contents of
2588 LFACE_FONT_INDEX because that attribute is optional.
2589 (realize_x_face): Remove now unwarranted xassert.
2590
9111d4b5
KH
25912000-03-21 Kenichi HANDA <handa@etl.go.jp>
2592
2593 The following changes are to make font selection based on
2594 characters, not charset. In addition, they recover fontset
2595 facilities while utilizing the new font selection mechanism.
2596
6c4bfdc0
KH
2597 * Makefile.in (fontset.o): Depend on dispextern.h.
2598
2599 * alloc.c (mark_face_cache): Don't mark face->registry.
2600
9111d4b5
KH
2601 * dispextern.h (struct glyph): New member glyph_not_available_p.
2602 Use 22 bits for face_id.
2603 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2604 (struct face): Delete member registry, new member ascii_face.
2605 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2606 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2607 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2608 (struct it): Delete member charset, new member
2609 glyph_not_available_p.
2610
2611 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2612 (struct fontset_info, struct fontset_data): Structs removed.
2613 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2614 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2615 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2616 (fs_free_face_fontset, fontset_font_pattern,
2617 face_suitable_for_char_p, face_for_char,
2618 make_fontset_for_ascii_face): Extern them.
2619 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2620 (FS_LOAD_FACE_FONT): New macro.
2621
2622 * fontset.c: All codes rewritten or adjusted for the change of
2623 fontset implementation. Now fontset is represented by char table.
2624 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2625 removed.
2626 (my_strcasecmp): Function removed.
2627 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2628 variables.
2629 (AREF, ASIZE): New macros.
2630 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2631 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2632 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2633 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2634 fontset_id_valid_p, font_family_registry, fontset_name,
2635 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2636 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2637 New functions.
2638 (fs_load_font): New arg FACE. Caller changed.
2639 (fs_query_fontset): Argument changed. Caller changed.
2640 (Fquery_fontset): call fs_query_fontset.
2641 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2642 Functions removed.
2643 (clear_fontset_elements, check_registry_encoding,
2644 check_fontset_name): New functions.
2645 (syms_of_fontset): Set char-table-extra-slots property of fontset
2646 to 3. Staticpro and initialize Vfontset_table and
2647 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2648
2649 * frame.h (struct frame): Member `fontset_data' removed.
2650 (FRAME_FONTSET_DATA): Macro removed.
2651
2652 * frame.c (make_frame): Don't allocate f->fontset_data.
2653 (Fdelete_frame): Don't free f->fontset_data.
2654
6c4bfdc0
KH
2655 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2656
9111d4b5
KH
2657 * xdisp.c (charset_at_position): Function removed.
2658 (init_iterator): Don't set member charset of struct `it'.
2659 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2660 next_element_from_display_vector, insert_left_trunc_glyphs):
2661 Likewise.
2662 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2663 FACE_FOR_CHARSET.
2664 (get_next_display_element, append_space,
2665 extend_face_to_end_of_line): Likewise.
2666
2667 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2668 Variables removed.
2669 (clear_font_table, frame_update_line_height, load_face_font):
2670 Adjusted for the change of fontset implementation.
2671 (load_face_fontset_font): Function removed.
2672 (pixel_point_size): New function.
2673 (font_list): Argument type changed. Caller changed.
2674 (LFACE_FONT): New macro.
2675 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2676 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2677 Lisp_Object. Determine the font name by actually loading a font
2678 by the specified pattern. Set LFACE_FONT (lface) to the specified
2679 pattern. Even if a font is not found, don't try alternatives.
2680 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2681 (set_font_frame_param): If `font' is specified in lface, use it.
2682 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2683 (lface_same_font_attributes_p): Likewise.
2684 (make_realized_face): Arguent changed. Caller changed. Set
2685 face->ascii_face to face itself.
2686 (free_realized_face): Free face->fontset if face is for ASCII.
2687 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2688 deduce_unibyte_registry, x_charset_registry): Functions removed.
2689 (free_realized_multibyte_face): New function.
2690 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2691 changed. Caller changed.
2692 (try_font_list): Argument type changed.
2693 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2694 (choose_face_font): Argument changed. Handle fontset properly.
2695 (choose_face_fontset_font): Function removed.
2696 (realize_default_face, realize_named_face): Don't remove the
2697 former face here.
2698 (realize_face): Argument changed. Caller changed. Remove face
2699 with the arg former_face_id in advance. Load font for the new
2700 face.
2701 (realize_x_face): Argument changed. Caller changed. For a
2702 multibyte character, share fontset with base_face. For a single
2703 byte character, make a new realized fontset. Don't load a font
2704 here.
2705 (realize_tty_face): Argument changed. Caller changed.
2706 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2707 (face_at_buffer_position): Don't check multibyte_p for returning
2708 DEFAULT_FACE_ID.
2709 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2710 FACE_SUITABLE_FOR_CHARSET_P.
2711 (syms_of_xfaces): Remove code for Qx_charset_registry and
2712 Vface_default_registry.
2713
6c4bfdc0
KH
2714 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2715 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2716 (x_per_char_metric): Don't try FONT->default_char. Even if
2717 pcm->width is zero, glyph bits may exist.
2718 (x_encode_char): Always initialize char2b->byte1.
2719 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2720 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2721 changed.
2722 (x_append_glyph): Set glyph->glyph_not_available_p.
2723 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2724 it->charset. Handle the case that per char metric is not
2725 available. If it->multibyte_p is zero and it->c is a multibyte
2726 character, convert it to a unibyte character.
2727 (struct glyph_string): Delete member `charset'.
2728 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2729 the case that per char metric is not available correctly.
2730 (x_fill_glyph_string): Handle the case that the specific glyph is
2731 not available correctly.
2732 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2733 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2734 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2735 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2736 fontset. Don't call FS_LOAD_FONT.
2737
2738 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2739 (x_create_tip_frame): Likewise.
2740 (Fx_close_connection): Free full_name of font_info.
2741
2742 * fns.c (optimize_sub_char_table): New function.
2743 (Foptimize_char_table): New function.
2744 (syms_of_fns): Defsubr Soptimize_char_table.
2745
b33dd3b0
GM
27462000-03-20 Gerd Moellmann <gerd@gnu.org>
2747
2748 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2749 only if buffer is displayed in some window.
2750
2751 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2752 (try_window_reusing_current_matrix): Don't call scroll run
2753 function if run's current and desired position are the same;
2754 this prevents cursor flickering.
2755
4e8a9132
SM
27562000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2757
2758 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2759
2760 * regex.c (RE_STRING_CHAR): New macro.
2761 (GET_CHAR_AFER_2): Remove.
2762 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2763 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2764 (print_partial_compiled_pattern, re_compile_fastmap)
2765 (re_match_2_internal): Remove on_failure_jump_exclusive.
2766 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2767 optimization only need to work for * (ie. can use of_keep_string_jump).
2768 Remove the special case for .*\n since it is now covered by the general
2769 optimization.
2770 (re_search_2): Don't bother with `room'.
2771 (skip_one_char): New function.
2772 (skip_noops): Simplify since `memory' is not needed any more.
2773 (mutually_exclusive_p): Restructure slightly to use `switch' and
2774 add handling for "all" remaining cases.
2775 (re_match_2_internal): Change on_failure_jump_smart to use
2776 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2777 rather than on_failure_jump_exclusive.
2778
2136fdd4
GM
27792000-03-19 Gerd Moellmann <gerd@gnu.org>
2780
2781 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2782 number of bits per RGB because it's everywhere used as the depth
2783 of the visual.
2784
2785 * term.c (calculate_costs): Remove code dealing with X frames.
2786
e53ae11c
RS
27872000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2788
2789 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2790
d7b511c4
GM
27912000-03-18 Gerd Moellmann <gerd@gnu.org>
2792
2793 * lread.c (read_integer): Unread the last char not consumed.
2794
16b5d424
GM
27952000-03-17 Gerd Moellmann <gerd@gnu.org>
2796
2797 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2798 which are in the process of being deleted.
16b5d424 2799
1fa28578
GM
28002000-03-16 Gerd Moellmann <gerd@gnu.org>
2801
83488cce
GM
2802 * Makefile.in (mostlyclean): Add `*.core'.
2803 (clean): Add `bootstrap-emacs'.
2804
1fa28578
GM
2805 * lread.c (read_integer): New function.
2806 (read1): Support read syntax #o, #x, #b, #r.
2807
99633e97
SM
28082000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2809
1fa28578
GM
2810 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2811 make sure POINTER_TO_OFFSET gives the same value before and after
2812 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2813 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2814 (debug): Now only active if > 0 rather than if != 0.
2815 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2816 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2817 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2818 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2819 (store_op1, store_op2, insert_op1, insert_op2)
2820 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2821 (group_in_compile_stack): Move to after its arg's types are
2822 declared and add a prototype.
99633e97 2823 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2824 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2825 wrapper.
99633e97 2826 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2827 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2828 indentation of the greedy-op and shy-group code.
99633e97
SM
2829 (at_(beg|end)line_loc_p): Fix argument's types.
2830 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2831 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2832 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2833 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2834 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2835 QUIT unconditionally.
99633e97 2836
699238d9
GM
28372000-03-15 Gerd Moellmann <gerd@gnu.org>
2838
2839 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2840 a sole completion.
2841
2842 * process.c (send_process): Add a hint that the function
2843 can call Lisp code to its comment.
2844
2845 * lread.c (load_dangerous_libraries): New variable.
2846 (Vbytecomp_version_regexp): New variable.
2847 (safe_to_load_p): New function.
2848 (Fload): Handle files not compiled with Emacs specially.
2849 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2850
34e23e5a
GM
28512000-03-14 Gerd Moellmann <gerd@gnu.org>
2852
9c763cca
GM
2853 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2854
2855 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2856 support functions only if HAVE_X11R6_XIM is defined.
2857 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2858
2859 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2860
2861 * xfns.c (X_I18N_INHIBITED): Don't define.
2862 (create_frame_xic): Remove conditional compilation on
2863 X_I18N_INHIBITED.
2864 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2865
2866 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2867 (HAVE_X11R6_XIM): Define.
2868
2869 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2870
34e23e5a
GM
2871 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2872 If set, call XSynchronize.
2873
66f0296e
SM
28742000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2875
34e23e5a
GM
2876 * regex.c: Declare a new type `re_char' used throughout the code
2877 for the string char type. It's `const unsigned char' to match the
2878 rest of Emacs. Consistently make sure all pointers to strings use
2879 it and make sure all pointers into the pattern use `unsigned
2880 char'.
66f0296e 2881 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2882 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2883 code duplication.
66f0296e
SM
2884
2885 * charset.h (GET_CHAR_AFTER_2): Remove.
2886 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2887
854a025c
KR
28882000-03-12 Ken Raeburn <raeburn@gnu.org>
2889
2890 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2891 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2892 of them try to use backquotes.
2893
b9d2c7e2
DL
28942000-03-12 Dave Love <fx@gnu.org>
2895
2896 * unexelf.c: Restore changes of 1999-10-19.
2897 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2898 fix its type and alignment; copy it from current process.
2899
5e5dff44
GM
29002000-03-12 Gerd Moellmann <gerd@gnu.org>
2901
9b2f3c38
GM
2902 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2903 has been found. Fix bug not computing timer's predecessor.
2904
427ec082 2905 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
2906 file name.
2907
e1cff360
GM
2908 * window.c (Fsave_window_excursion): Doc fix.
2909
5e5dff44
GM
2910 * xfns.c (x_defined_color): Rewritten to use
2911 x_allocate_nearest_color.
2912
e411ce4b
EZ
29132000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2914
2915 * msdos.c (vga_installed): New function, code moved from
2916 dos_set_window_size.
2917 (Qbar, Qcursor_type, outside_cursor): New variables.
2918 (syms_of_msdos): Intern and staticpro them.
2919 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2920 shape used outside Emacs when called for the first time.
2921 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2922 cursor shape used outside Emacs.
2923 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2924 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2925 type has changed.
2926 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2927 parameters specify the cursor. Make qreverse a global
2928 variable (renamed to Qreverse).
2929
80460654
GM
29302000-03-09 Gerd Moellmann <gerd@gnu.org>
2931
2932 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2933
95cd4c40
SM
29342000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2935
2936 This is a big redesign of failure-stack and register handling, prompted
2937 by bugs revealed when trying to add shy-groups. Overall, what happened
2938 is that loops are now structured a little differently, groups can be
2939 shy and the code is a little simpler.
2940
2941 * regex.h: Update the copyright.
2942 (RE_SHY_GROUPS): New value.
2943 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2944 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2945
80460654
GM
2946 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2947 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2948 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2949 for (start|stop)_memory since they now only take one argument (the
2950 second has becomes unnecessary).
2951 (print_partial_compiled_pattern): Adjust for changes in
2952 re_opcode_t.
2953 (print_compiled_pattern): Use %ld to printf long ints and flush to
2954 make debugging a little easier.
95cd4c40
SM
2955 (union fail_stack_elt): Make the integer unsigned.
2956 (struct fail_stack_type): Add a `frame' element.
2957 (INIT_FAIL_STACK): Init `frame' as well.
2958 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2959 (DEBUG_PUSH, DEBUG_POP): Remove.
2960 (NUM_REG_ITEMS): Remove.
2961 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2962 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2963 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2964 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2965 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2966 macros.
2967 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2968 address pushed is not the destination of the jump but the source
2969 of it instead.
95cd4c40
SM
2970 (NUM_FAILURE_ITEMS): Remove.
2971 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2972 registers before the actual failure point). Don't hardcode any
2973 meaning for str==NULL anymore.
95cd4c40 2974 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2975 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2976 Remove.
95cd4c40
SM
2977 (REG_UNSET_VALUE): Use NULL (why not?).
2978 (compile_range): Remove declaration since it doesn't exist.
2979 (struct compile_stack_elt_t): Remove inner_group_offset.
2980 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2981 (regex_grow_registers): Remove dead code.
2982 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2983 (regex_compile): Add shy-groups Change loops to use
2984 on_failure_jump_smart&jump instead of
2985 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2986 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2987 variable to me). Use `jump' instead of `jump_past_alt' and don't
2988 bother with push_dummy_failure in alternatives since it is now
2989 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2990 emacs' for (re)allocating the stack.
2991 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2992 from loop when bufp->can_be_null rather than jumping to `done'.
2993 Avoid jumping backwards so as to ensure termination. Use
2994 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2995 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2996 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2997 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2998 improve mutually_exclusive_p to handle ".+\n".
2999 (lowest_active_reg, highest_active_reg,
3000 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
3001 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
3002 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
3003 variables. Push register (in `start_memory') on the stack rather
3004 than storing it in old_reg(start|end). Remove the cycle detection
3005 from `stop_memory', replaced by the use of on_failure_jump_loop
3006 for greedy loops. Add code for the new on_failure_jump_<foo>.
3007 Remove ad-hoc code in `on_failure_jump' to push more registers in
3008 the case of a loop. Take out code from `maybe_pop_jump' into
3009 separate functions and adapt it to the semantics of
3010 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3011 and push_dummy_failure. Remove dummy_failure handling and
3012 handling of `failures to jump to on_failure_jump' (this last one
3013 was already dead code, it seems).
3014 (group_match_null_string_p, alt_match_null_string_p)
3015 (common_op_match_null_string_p): Remove.
95cd4c40 3016
7397acc4
DL
30172000-03-08 Dave Love <fx@gnu.org>
3018
3019 * config.in: Don't depend on __STDC__ for volatile.
3020 Add POINTER_TYPE, PTR, PROTOTYPES.
3021
3022 * hftctl.c, strftime.c: Use PROTOTYPES.
3023 * eval.c (find_handler_clause): Likewise.
3024
3025 * mem-limits.h: Use POINTER_TYPE.
3026
3027 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3028 (memory_warnings): Declare using POINTER_TYPE.
3029
5e91ff9e
GM
30302000-03-08 Gerd Moellmann <gerd@gnu.org>
3031
feab4fba
GM
3032 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3033
25edb08f
GM
3034 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3035 collection.
3036
5e91ff9e
GM
3037 * xfns.c: Remove obsolete code in #if 0.
3038 (Fx_focus_frame): New function.
3039
a735b7e1
KH
30402000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3041
3042 * coding.c (coding_category_name): Add coding-category-utf-8,
3043 coding-category-utf-16-be, coding-category-utf-16-le.
3044 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3045 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3046 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3047 (detect_coding_utf_8): New function.
3048 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3049 UTF_16_LOW_SURROGATE_P): New macros.
3050 (detect_coding_utf_16): New function
3051 (detect_coding_mask): When priorities are specified, skip any
3052 categories that have `nil' coding-system. Fix bug of returning
3053 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3054 returns a mask not set in PRIORITIES.
3055 (detect_eol_type_in_2_octet_form): New function.
3056 (detect_eol): selects detect_eol_type_XXX to call according to
3057 cooding->category_idx.
3058 (detect_coding_system): Remove `nil' coding-system in the result.
3059 (Fupdate_coding_systems_internal): Update all coding-categories.
3060
3061 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3062 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3063 macros.
3064 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3065 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3066 CODING_CATEGORY_IDX_UTF_16_LE.
3067 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3068 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3069 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3070 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3071
9994cc69
GM
30722000-03-07 Gerd Moellmann <gerd@gnu.org>
3073
e9b4e5ff
GM
3074 * doc.c (Fdocumentation_property): If value is not a string,
3075 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3076
f7daf1e1
GM
3077 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3078 close the display with XtCloseDisplay. This caused a bus error
3079 on OpenWindows.
3080
9994cc69
GM
3081 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3082 complete but not unique.
3083
4336c705
GM
30842000-03-06 Gerd Moellmann <gerd@gnu.org>
3085
18bb0684
GM
3086 * process.c (send_process): Remove local variable `procname' that
3087 might become invalid when a GC happens. Instead, access the
3088 process name slot directly.
3089
4336c705
GM
3090 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3091 orig_height if set.
3092
3093 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3094 orig_height if set.
3095
515d0d0e
EZ
30962000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3097
3098 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3099 glyph matrices have been freed.
3100
100b3cbb
GM
31012000-03-05 Gerd Moellmann <gerd@gnu.org>
3102
50df5e5a 3103 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3104 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3105
3106 * xfns.c (QCdata): Moved to xdisp.c.
3107
3108 * xdisp.c (QCdata): Moved here from xfns.c.
3109 (syms_of_xdisp): Initialize QCdata.
3110
3111 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3112
3113 * window.c (coordinates_in_window): Use
3114 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3115 FRAME_INTERNAL_BORDER_WIDTH.
3116
100b3cbb 3117 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3118 it is obviously invalid.
100b3cbb
GM
3119
3120 * xterm.c (x_term_init): Create a colormap if not using the
3121 default visual.
3122
3123 * xterm.h (select_visual): Change prototype.
3124
3125 * xfns.c (select_visual): Rewritten. Recognize user-specified
3126 visual classes.
3127 (visual_classes): New variable.
3128
64d739c4
GM
31292000-03-04 Gerd Moellmann <gerd@gnu.org>
3130
3131 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3132 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3133 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3134 (x_decode_color): Don't handle allocation of white and black
3135 specially.
3136 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3137 XtNcolormap resources.
3138 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3139 (Fx_create_frame): Initialize color members of x_output structure.
3140 (xpm_load): Pass colormap to XPM lib.
3141
3142 * xfaces.c (x_free_colors): Access colormap of frame using
3143 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3144 when default colormap is used.
3145
3146 * xterm.c (x_term_init): Set Colormap member of x_display_info
3147 structure. Copy colormap if resource `privateColormap' is
3148 specified (PseudoColor only).
3149 (x_setup_relief_color): Access colormap of frame using
3150 FRAME_X_COLORMAP.
3151
3152 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3153 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3154
c3cee013
JR
31552000-03-04 Jason Rumney <jasonr@gnu.org>
3156
3157 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3158 other non-platform-specific equivalents.
64d739c4 3159 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3160 specific functions and macros as their w32 equivalents where
3161 non-platform-specifics are not available.
3162 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3163 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3164 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3165 (frame_update_line_height): Use macros to access f->output_data.
3166 (defined_color): Remove FIXME comments; fixed.
3167 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3168 into #ifdef blocks. Add WINDOWSNT blocks.
3169 (Fx_list_fonts): Use macros for accessing font data.
3170 (set_lface_from_font_name): Different default fonts for X and
3171 WINDOWSNT.
3172 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3173 scalable for backward compatibility.
64d739c4 3174 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3175 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3176
64d739c4 3177 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3178 syms_of_w32faces.
3179
3180 * makefile.nt (w32faces.obj): Remove.
3181 (xfaces.obj): Add.
3182
807cc41c
JR
31832000-03-03 Jason Rumney <jasonr@gnu.org>
3184
3185 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3186 correct parameters.
3187
0007072a
KR
31882000-03-03 Ken Raeburn <raeburn@gnu.org>
3189
3190 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3191 standard ELF definitions here if the system header does not.
3192
71a6ba55
GM
31932000-03-03 Gerd Moellmann <gerd@gnu.org>
3194
3195 * xterm.c (PER_CHAR_METRIC): Removed.
3196 (x_per_char_metric_1, x_default_char): New functions.
3197 (x_per_char_metric): If font's default char is invalid, return
3198 metrics of a suitably chosen usable default char.
3199 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3200 char, replace occurrences of unprintable chars with a suitably
3201 chosen usable default char.
71a6ba55 3202
900fa1f1
GM
32032000-03-02 Gerd Moellmann <gerd@gnu.org>
3204
42f55fe0
GM
3205 * xterm.c (note_mouse_highlight): Return quickly if frame's
3206 glyph matrices have been freed.
3207
3208 * dispnew.c (free_glyphs): Block input while freeing matrices.
3209
900fa1f1
GM
3210 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3211
3212 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3213 x_free_colors.
3214
3215 * dispextern.h (x_free_colors): Add prototype.
3216
3217 * xfaces.c (x_free_colors): New function.
3218 (unload_color, free_face_colors): Use it.
3219
2f950292
EZ
32202000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3221
3222 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3223
3224 * window.c [MSDOS]: Include msdos.h.
3225
54d04320
DL
32262000-03-02 Dave Love <fx@gnu.org>
3227
3228 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3229
3230 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3231 set C_OPTIMIZE_SWITCH for gcc.
3232
0ba93ac4
KH
32332000-03-02 Kenichi Handa <handa@etl.go.jp>
3234
3235 * coding.c (coding_save_composition): Be sure to allocate
3236 composition data area in coding even if there's no composition in
3237 the current run.
3238
a2bc11d4
JR
32392000-03-01 Jason Rumney <jasonr@gnu.org>
3240
3241 * w32term.c: Equivalent changes to those made to xterm.c on
3242 2000-02-25 and 2000-02-24.
3243
3244 * w32fns.c: Equivalent changes to those made to xfns.c on
3245 2000-02-25 and 2000-02-21.
3246
3247 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3248 correct line-end convention is followed.
3249
3250 * w32menu.c [HAVE_BOXES]: Remove #undef.
3251 (single_keymap_panes): Remove code for simulating checkmarks.
3252 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3253 Remove code for drawing simulated checkmarks.
3254 (w32_menu_show): make unibyte help string correctly.
3255 (add_menu_item): draw standard Windows checkmarks. Draw radio
3256 buttons as radio buttons if possible.
3257
72d19d75
GM
32582000-03-01 Gerd Moellmann <gerd@gnu.org>
3259
2df636f4
GM
3260 * sysdep.c (start_of_text): Don't define this function for NetBSD
3261 with ELF.
3262
427ec082 3263 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3264 Don't define.
3265 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3266 (LINKER): Don't undef if __NetBSD__ is defined.
3267
3268 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3269
3270 * fileio.c [__NetBSD__]: Define `unix'.
3271
72d19d75
GM
3272 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3273
ed4d0512
GM
32742000-02-29 Gerd Moellmann <gerd@gnu.org>
3275
50b1039f
GM
3276 * atimer.c (start_atimer): Don't abort when timers are stopped.
3277 (append_atimer_lists): New function.
3278 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3279 arbitrary lists of stopped and running atimers.
3280
ed4d0512
GM
3281 * atimer.c (cancel_atimer): Handle canceling an atimer when
3282 some timers are stopped.
3283
3284 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3285 after canceling it.
3286
3287 * fns.c (maybe_resize_hash_table): Handle case of new size
3288 coming out as being the same as old size.
3289
387023ee
JR
32902000-02-27 Jason Rumney <jasonr@gnu.org>
3291
3292 * makefile.nt: Add atimer.h to dependencies.
3293 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3294 * w32console.c: Only disable window system features for dispextern.h
3295 (initialize_w32_display): Build a display info for the console.
3296 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3297 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3298 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3299 as 2 button mice.
3300 * w32gui.h (struct W32FontStruct): Revert last change after change
3301 to xdisp.c.
3302 * w32menu.c (single_submenu): Set up help string.
3303 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3304 (w32_dialog_show): Set up help string.
3305 * w32term.c (w32_display_info_for_display): Remove unused function.
3306 (w32_draw_bitmap): Use pre-built bitmaps.
3307 (w32_initialize_display_info): New function to initialize parts of
3308 display info that are common to both GUI and console frames.
3309 (w32_term_init): Use w32_initialize_display_info. Do not set
3310 Vw32_num_mouse_buttons here, as it is not called for console
3311 frames. Build bitmaps for indicating truncated lines etc.
3312 (x_delete_display): Destroy pre-built bitmaps.
3313 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3314 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3315
4516715a
DL
33162000-02-27 Dave Love <fx@gnu.org>
3317
3318 * lisp.h: Add a bunch of prototypes.
3319
171ca836
KH
33202000-02-26 Kenichi Handa <handa@etl.go.jp>
3321
3322 * keyboard.c (read_char): Set `usec' correctly.
3323
4013921d
KH
33242000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3325
3326 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3327 `lambda', set reg[RRR] to the map index.
3328 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3329 reg[RRR] to 0. Otherwise, set it to -1.
3330
9244a058
GM
33312000-02-25 Gerd Moellmann <gerd@gnu.org>
3332
2df636f4 3333 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3334
f43d79c1 33352000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3336
f43d79c1
GM
3337 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3338 and contains a `:', prepend `/:'.
3339
3340 * window.c (select_window_1): If selected_window is nil,
3341 don't "swap out" the buffer's point.
3342 (Fset_window_configuration): Set selected_window to nil
3343 before calling Fselect_window.
3344 (unshow_buffer): Don't set point in buffer from window's point
3345 if another more recently selected window also shows the buffer.
3346
bed0c171
GM
33472000-02-25 Gerd Moellmann <gerd@gnu.org>
3348
449c3c52
GM
3349 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3350
f5b58615
GM
3351 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3352 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3353 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3354 variables.
3355 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3356 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3357 (hide_busy_cursor): New functions.
3358 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3359
3360 * minibuf.c (read_minibuf): Cancel busy-cursor.
3361
3362 * keyboard.c (command_loop_1): Call start_busy_cursor before
3363 Fcommand_execute and cancel_busy_cursor after it.
3364 (timer_check): Remove busy-cursor code.
3365 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3366 cursor timer.
3367
3368 * process.c (wait_reading_process_input): Remove busy-cursor code.
3369
3370 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3371 Fx_hide_busy_cursor.
3372
3373 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3374 Remove prototyoes.
3375 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3376
3377 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3378
3379 * xterm.c (XTread_socket): Remove busy-cursor code.
3380
4eb8436f
GM
3381 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3382 (build_frame_matrix_from_leaf_window): Put code handling
3383 glyph row's not being a slice of a frame row in #if 0.
3384 (sync_window_with_frame_matrix_rows): New function.
3385 (frame_row_to_window): New function.
3386 (mirror_line_dance): Handle copies between windows.
3387
3cb65b0e
GM
3388 * lread.c (Fload): Use `xfree' instead of `free'.
3389 (init_obarray): Use `xmalloc' instead of `malloc'.
3390
bed0c171
GM
3391 * window.c (Fset_window_buffer): Set WINDOW to the window
3392 after decoding.
2add4349
GM
3393 (coordinates_in_window): Take frame's internal border width
3394 into account.
bed0c171 3395
42088c12
GM
33962000-02-24 Gerd Moellmann <gerd@gnu.org>
3397
3398 * xterm.c (x_display_and_set_cursor): Display cursor of
3399 non-selected windows depending on the setting of
3400 cursor_in_non_selected_windows.
3401
3402 * xdisp.c (cursor_in_non_selected_windows): New variable.
3403 (syms_of_xdisp): DEFVAR_BOOL it.
3404
d1e103b2
GM
34052000-02-23 Gerd Moellmann <gerd@gnu.org>
3406
723e779c
GM
3407 * data.c (Fstring_to_number): If number is greater than what
3408 fits into an integer, return a float.
3409
d1e103b2
GM
3410 * eval.c (specbind): Remove references to
3411 keyword_symbols_constant_flag.
3412
3413 * data.c (keyword_symbols_constant_flag): Removed.
3414 (Fmakunbound, set_internal, syms_of_data): Remove references to
3415 keyword_symbols_constant_flag.
3416
3417 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3418
214f877f
KH
34192000-02-23 Kenichi Handa <handa@etl.go.jp>
3420
3421 * syntax.c (multibyte_syntax_as_symbol): New variable.
3422 (syms_of_syntax): Declare it as a Lisp variable.
3423 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3424 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3425 nonzero, treat all multibyte characters as symbol.
42088c12 3426 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3427 characters.
3428
130adcb7
EZ
34292000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3430
3cb65b0e 3431 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3432 a deleted frame.
3433
17cbbf95
GM
34342000-02-21 Gerd Moellmann <gerd@gnu.org>
3435
3436 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3437
3438 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3439 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3440
beb0bc36
DL
34412000-02-21 Dave Love <fx@gnu.org>
3442
3443 * frame.c (Vmouse_position_function): New variable.
3444 (Fmouse_position): Use it.
3445 (syms_of_frame): Install it.
3446
3447 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3448
1d92afcd
GM
34492000-02-20 Gerd Moellmann <gerd@gnu.org>
3450
3451 * fileio.c (Finsert_file_contents): Unbind the binding of
3452 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3453
3454 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3455 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3456 (specbind, unbind_to): Handle most common case of non-constant
3457 symbol with trivial value specially.
3458
3459 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3460
2d06696f
RS
34612000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3462
3463 * data.c (Fmake_variable_buffer_local): Doc fix.
3464 Init found_for_buffer to 0.
3465 (Fmake_variable_frame_local): If the variable has already
3466 been buffer-local, set the check_frame field.
3467
1d4311c3
EZ
34682000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3469
3470 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3471 produced for CODING_MODE_LAST_BLOCK requires.
3472
2dc95ddd
DL
34732000-02-18 Dave Love <fx@gnu.org>
3474
3475 * keyboard.c (echo_keystrokes): Remove declaration.
3476 (Vecho_keystrokes) New variable.
3477 (read_char, record_menu_key, read_key_sequence): Use it to allow
3478 use of float value.
3479 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3480
3481 * lread.c: Undef feature selection macros before defining.
3482
f0930f35
GM
34832000-02-18 Gerd Moellmann <gerd@gnu.org>
3484
3485 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3486 for symbols other than the symbol in question.
3487
e3d4de90
DL
34882000-02-17 Dave Love <fx@gnu.org>
3489
3490 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3491
0b378936
GM
34922000-02-17 Gerd Moellmann <gerd@gnu.org>
3493
d621caf7
GM
3494 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3495
0b378936
GM
3496 * alloc.c (enum mem_type): Compile unconditionally.
3497
3b451f74
EZ
34982000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3499
3500 * xfaces.c (tty_defined_color): Don't return faulire indication
3501 for unspecified-fg and unspecified-bg pseudo-colors.
3502
10689a01
GM
35032000-02-17 Gerd Moellmann <gerd@gnu.org>
3504
1216f5e4
GM
3505 * alloc.c (mark_object): Don't mark symbol names in pure space.
3506 (gc_sweep): Don't unmark symbol names in pure space.
3507
3508 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3509 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3510 [GC_MARK_STACK]: New defines.
427ec082 3511 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3512 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3513
3514 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3515
3516 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3517 allocate_buffer instead of xmalloc.
3518
3519 * alloc.c (toplevel): Include setjmp.h.
3520 (PURE_POINTER_P): New define.
3521 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3522 (Vdead) [GC_MARK_STACK]: New variable.
3523 (lisp_malloc): Add parameter TYPE, call mem_insert if
3524 GC_MARK_STACK is defined.
3525 (allocate_buffer): New function.
427ec082 3526 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3527 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3528 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3529 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3530 (MEM_NIL) [GC_MARK_STACK]: New define.
3531 (struct mem_node) [GC_MARK_STACK]: New structure.
3532 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3533 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3534 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3535 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3536 (mark_stack) [GC_MARK_STACK]: New functions.
3537 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3538 (clear_marks): Removed.
3539 (gc_sweep): Set free conses' car, free floats' type, free
3540 symbols' function to Vdead. Use lisp_free to free buffers.
3541 (init_alloc_once): Initialize Vdead.
3542 (survives_gc_p): Return non-zero for pure objects.
3543
3544 * alloc.c: Add comments throughout the file.
3545
2503c8b1
GM
3546 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3547 that unblocks alarms.
3548
8389e1e2
GM
3549 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3550 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3551 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3552
10689a01 3553 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3554
bfc17d18
KH
35552000-02-17 Kenichi Handa <handa@etl.go.jp>
3556
4a09dee0
KH
3557 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3558 avoid infinite error signaling. Allocate sufficient memory for
3559 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3560
2b927d02
SM
35612000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3562
3563 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3564 depends on the previous behavior.
3565
b49cb764
GM
35662000-02-16 Gerd Moellmann <gerd@gnu.org>
3567
3568 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3569
99e95407
GM
35702000-02-15 Gerd Moellmann <gerd@gnu.org>
3571
3572 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3573
3574 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3575 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3576 write(2).
3577
6ffd3cf7
RS
35782000-02-15 Richard M. Stallman <rms@gnu.org>
3579
3580 * data.c (set_internal): Don't make variable buffer-local
3581 if within a let-binding for the same buffer.
3582 (let_shadows_buffer_binding_p): New function.
3583
3584 * eval.c (specbind): For buffer-local value,
3585 record the current buffer also.
3586 (unbind_to): Cope with that change.
3587
cad53475
GM
35882000-02-15 Gerd Moellmann <gerd@gnu.org>
3589
3590 * window.c (Fsave_window_excursion): Doc fix.
3591
1aa963c8
SM
35922000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3593
3594 * syntax.c (back_comment): Make sure we only consider comment-starters
3595 of the relevant style and return -1 in case of a failure to find the
3596 beginning of the comment.
3597 (Fforward_comment): If back_comment fails, go back to the position just
3598 after the comment-end.
3599 (scan_lists): Add comment describing a very minor bug.
3600
b9b84fd3
SM
36012000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3602
3603 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3604 `completion-regexp-list' in the docstring.
3605
3a28db80
DL
36062000-02-14 Dave Love <fx@gnu.org>
3607
3608 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3609
fb4a568d
SM
36102000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3611
3612 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3613 to Emacs' syntax. Also fix the comment about set/not-set meanings
3614 since Emacs syntax is not the value 0 any more.
3615 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3616 since it's now part of RE_SYNTAX_EMACS.
3617
1063ebb5
DL
36182000-02-12 Dave Love <fx@gnu.org>
3619
3620 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3621 Alpha.
3622
fb07a302
GM
36232000-02-12 Gerd Moellmann <gerd@gnu.org>
3624
3625 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3626
aaf2320c
DL
36272000-02-12 Dave Love <fx@gnu.org>
3628
3629 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3630
3631 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3632 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3633 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3634
3635 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3636
3637 * s/nextstep.h: Don't define HAVE_ALLOCA.
3638
3639 * config.in: Add vfork bits.
3640
eedf8bde
GM
36412000-02-12 Gerd Moellmann <gerd@gnu.org>
3642
3643 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3644 unwind function to undo the effect of stopping atimers.
3645
3646 * keyboard.c (bind_polling_period): Stop all timers except
3647 poll_timer.
3648
3649 * atimer.c (stopped_atimers): New variable.
3650 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3651 New functions.
3652
3653 * atimer.h (stop_other_atimers, run_all_atimers)
3654 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3655
eedf8bde
GM
3656 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3657
8476c2f8
KR
36582000-02-11 Ken Raeburn <raeburn@gnu.org>
3659
3660 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3661 library may depend on jpeg.
3662 (atimer.o): Depends on atimer.c.
3663
0e85e4a3
KH
36642000-02-11 Kenichi Handa <handa@etl.go.jp>
3665
3666 * insdel.c (del_range_1): Call update_compositions.
3667 (del_range_both): Call update_compositions just once..
3668
97fa0cc8
DL
36692000-02-10 Dave Love <fx@gnu.org>
3670
3671 * xfns.c (create_frame_xic): Fix initialization of automatic
3672 aggregates for pcc.
3673
25566a3c
KH
36742000-02-09 Kenichi Handa <handa@etl.go.jp>
3675
3676 * ccl.c (CCL_MAKE_CHAR): New macro.
3677 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3678 registers by CCL_MAKE_CHAR before calling translate_char.
3679 <CCL_TranslateCharacterConstTbl> Likewise.
3680
69da54ba
DL
36812000-02-08 Dave Love <fx@gnu.org>
3682
3683 * lread.c (__EXTENSIONS__): Define.
3684
f7136ee8
GM
36852000-02-08 Gerd Moellmann <gerd@gnu.org>
3686
3687 * puresize.h (BASE_PURESIZE): Increase to 650000.
3688
7768790b
EZ
36892000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3690
3691 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3692 the help message.
3693
38fd211b
EZ
36942000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3695
3696 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3697 md, mh, mb, mr, and me to the fake termcap entry.
3698
66e4690f
KR
36992000-02-06 Ken Raeburn <raeburn@gnu.org>
3700
3701 * sound.c (sound_cleanup): Don't call device close routine if the
3702 function pointer is null.
3703
a75dfea0
AI
37042000-02-06 Andrew Innes <andrewi@gnu.org>
3705
3706 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3707 around image definitions and prototypes.
3708 (gamma_correct) [WINDOWSNT]: New prototype.
3709
3710 * w32term.c (x_make_frame_visible): Replace call to
3711 input_poll_signal with poll_for_input.
3712
3713 * window.c [WINDOWSNT]: Include w32term.h.
3714
3715 * xdisp.c [WINDOWSNT]: Include w32term.h.
3716
3717 * makefile.nt: Add dependencies on w32gui.h.
3718 (OBJ1): Include atimer.obj.
3719 ($(BLD)\atimer.obj): New dependency rule.
3720
3721 * w32.c (sigmask): New function (does nothing).
3722 (sigunblock): Ditto.
3723
3724 * frame.c [WINDOWSNT]: Include w32term.h.
3725
3726 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3727
3728 * lread.c (syms_of_lread): Fix literal newlines.
3729
3730 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3731 the string constant limit (2048 bytes) in MSVC.
3732 (main): Ditto.
3733
59ddecde
GM
37342000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3735
3736 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3737 area.
3738 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3739 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3740 dispatch the event.
3741
07590973
DL
37422000-02-04 Dave Love <fx@gnu.org>
3743
3744 * fileio.c: Remove some unused vars.
3745 (_GNU_SOURCE): Define (for euidaccess).
3746
3747 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3748
3749 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3750 gcpro1, gcpro2.
3751 (read_minibuf): Deal with allow_props correctly.
3752
649351f9
EZ
37532000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3754
3755 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3756
66e4690f 37572000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3758
3759 * search.c (compile_pattern): If a cache entry has a nil regexp,
3760 fill in that entry instead of clobbering a previously cached
3761 string regexp.
3762
66e4690f 37632000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3764
3765 * puresize.h (BASE_PURESIZE): Increase to 610000.
3766
d240a249
GM
37672000-02-02 Gerd Moellmann <gerd@gnu.org>
3768
3769 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3770 can GC.
3771
ca91fb26
KH
37722000-02-02 Kenichi Handa <handa@etl.go.jp>
3773
25660570
KH
3774 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3775 instead of incrementing ic directly.
3776 <CCL_WriteExprConst> Likewise.
3777 <ccl_set_expr>: Set ic to jump_address.
3778
ca91fb26
KH
3779 * fileio.c (e_write): Fix the handling of
3780 CODING_FINISH_INSUFFICIENT_SRC.
3781
2ede9689
DL
37822000-02-01 Dave Love <fx@gnu.org>
3783
3784 * editfns.c (Fpropertize): Doc fix.
3785
3786 * process.c (Fstart_process): Doc fix.
3787
3788 * eval.c: Fix various doc strings not to duplicate information
3789 from help-manyarg-func-alist.
3790
3791 * window.c (Fset_window_margins): Don't make interactive. Doc
3792 fix.
3793
3794 * doc.c (Vhelp_manyarg_func_alist): New variable.
3795 (Fdocumentation): Use it.
3796 (syms_of_doc): Define it.
3797
b6680a0e
GM
37982000-01-31 Gerd Moellmann <gerd@gnu.org>
3799
2cb750ba
GM
3800 * xterm.c (xim_open_dpy): Remove unused local variable.
3801
74e9213b
GM
3802 * emacs.c (USAGE): Use term `display options' instead of `X
3803 options'.
3804
3805 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3806 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3807
b6680a0e
GM
3808 * fns.c (sweep_weak_table): New function.
3809 (sweep_weak_hash_tables): Use it. Keep on marking until there
3810 is no more change.
3811
994c5afe
GM
38122000-01-30 Gerd Moellmann <gerd@gnu.org>
3813
3814 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3815 that XTread_socket does not crash by trying to call XNoOp on a
3816 closed display.
427ec082 3817
f00276e3
JR
38182000-01-30 Jason Rumney <jasonr@gnu.org>
3819
3820 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3821 Change selected_frame to SELECTED_FRAME ().
3822 (w32_console_mouse_position): Remove #ifndef MULE from around
3823 `insist' parameter.
3824
3825 * makefile.nt: Remove dosfns.obj.
3826
3827 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3828
3829 * w32fns.c (w32_defined_color): Check for valid frame before
3830 applying gamma correction. Eliminate dependency on frame elsewhere.
3831 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3832 (w32_to_x_font): Use resx and resy not height_in and width_in.
3833 (x_to_w32_font): Doc fix.
3834 (xlfd_strip_height): New function to strip and return font height.
3835 (w32_font_match): Compare height separately from rest of xlfd
3836 spec, using xlfd_strip_height.
3837
3838 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3839 width_in. Use w32_defined_color in place of defined_color.
3840
3841 * w32faces.c: Merge more of DOS and X specifics in preparation for
3842 merge with xfaces.c.
3843 (defined_color): Remove FIXME comment.
3844 (tty_color_name): Provide w32-specific function.
3845 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3846
3847 * w32console.c (turn_on_face, turn_off_face): Removed.
3848 (w32_face_attributes): New function.
3849 (Global_variables): Reduce scope where possible.
3850 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3851 fill attribute.
3852 (hl_mode): Don't modify text attributes.
3853 (write_glyphs): Don't do anything if len <= 0. Use
3854 w32_face_attributes to get attributes for drawing. Write
3855 terminating codes using char_attr_normal.
3856 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3857 (update_begin, update_end): Likewise.
3858 (vga_stdcolor_name): New function.
3859 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3860 (Fset_screen_color): Remove char_attr_reverse.
3861
b08e8bb2
GM
38622000-01-29 Gerd Moellmann <gerd@gnu.org>
3863
3864 * xfns.c (xic_set_preeditarea): Take window parameter and
3865 window-relative pixel-positions.
3866
3867 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3868 is its frame's selected window.
3869 (xim_instantiate_callback): Likewise.
3870
3871 * xfns.c (x_create_im): Removed.
3872 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3873 (supported_xim_styles): Renamed from supported_styles.
3874 (best_xim_style): Renamed from best_style.
3875 (create_frame_xic): Renamed from xic_create_frame.
3876 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3877
b08e8bb2
GM
38782000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3879
3880 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3881 our frames, call XFilterEvent with 2nd parameter `None'.
3882 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3883 returning XBufferOverflow.
3884 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3885 area.
3886 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3887 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3888 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3889 (xim_initialize, xim_close)
3890 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3891 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3892 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3893 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3894
3895 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3896 and `xim_styles'.
3897 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3898 `xic_style' and `xic_xfs'.
3899 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3900 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3901 (FRAME_XIM): Removed.
3902
3903 * xfns.c (supported_styles): New variable.
3904 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3905 (xic_create_xfontset, best_style, xic_create_frame)
3906 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3907 (xic_set_xfontset): New functions.
3908
142e109c
DL
39092000-01-28 Dave Love <fx@gnu.org>
3910
3911 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3912
3913 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3914
b02786f9
GM
39152000-01-28 Gerd Moellmann <gerd@gnu.org>
3916
d060bc9f
GM
3917 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3918 for *scratch* if it already existed.
3919
b02786f9
GM
3920 * emacs.c (USAGE): New macro.
3921 (main): Use it to display usage information.
3922
2c52d7e4
EZ
39232000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3924
3925 Support for the menu-help feature:
3926
3927 * msdos.h: Change prototypes of XMenuAddSelection and
3928 XMenuActivate.
3929
3930 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3931 part of the line to the termscript file.
3932 (IT_clear_to_end): Clear the entire line, not just its beginning.
3933 (menu_help_message, prev_menu_help_message): New variables.
3934 (IT_menu_make_room): Make room for the help_text member.
3935 (IT_menu_display): New argument disp_help; all callers changed.
3936 If disp_help is non-zero, store the help text of the active menu
3937 item in menu_help_message.
3938 (XMenuAddPane): Initialize the help_text member to NULL.
3939 (XMenuAddSelection): New argument help_text. Store it in the
3940 XMenu structure.
3941 (XMenuActivate): New argument help_callback. If the value of
3942 menu_help_message has changed since the last time, display the
3943 menu help message text while waiting for the mouse to move. Clear
3944 the echo area before exiting.
3945 (XMenuDestroy): Free the help_text member.
3946
ffe0bcd1
GM
39472000-01-27 Gerd Moellmann <gerd@gnu.org>
3948
3949 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3950 XMenuAddSelection. Pass help callback to XMenuActivate.
3951 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3952
50dbd23f
EZ
39532000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3954
3955 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3956 and EMACS_SET_USECS.
3957
f5941bf8
GM
39582000-01-26 Dave Love <fx@gnu.org>
3959
6c67ddee
DL
3960 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3961
f5941bf8
GM
3962 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3963 an error may be signalled.
3964
9e49c990
GM
39652000-01-26 Gerd Moellmann <gerd@gnu.org>
3966
fc3cb460
GM
3967 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3968 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3969
9e49c990
GM
3970 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3971
d0c037d8
GM
39722000-01-25 Gerd Moellmann <gerd@gnu.org>
3973
3974 * charset.c (Fstring): If there is a multibyte char among
3975 the args, always return a multibyte string.
3976
e12489f9
GM
39772000-01-25 Gerd Moellmann <gerd@gnu.org>
3978
3979 * sysdep.c (sys_select): Turn atimers off and on instead of
3980 recording and restoring old alarm handler
3981
3982 * process.c (toplevel): Include atimer.h.
3983 (create_process_1): Rewritten.
3984 (create_process): Use atimers instead of alarm.
3985 (wait_reading_process_input) [hpux]: Turn atimers off instead
3986 of turning off SIGALRM.
3987 (wait_reading_process_input): Turn off atimers instead off
3988 calling stop_polling.
3989
3990 * emacs.c (main): Call init_atimer.
3991
3992 * keyboard.c (toplevel): Include systime.h and atimer.h.
3993 (polling_for_input): Removed because unused.
3994 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3995 (poll_timer): New variable.
3996 (poll_for_input, poll_for_input_1): New functions.
3997 (start_polling, stop_polling): Rewritten.
3998
3999 * keyboard.h (polling_for_input): Removed.
427ec082 4000
e12489f9
GM
4001 * atimer.h, atimer.c: New files.
4002
4003 * Makefile.in (obj): Add atimer.o.
4004 (atimer.o): New target.
4005
4006 * blockinput.h (pending_atimers): Add extern declaration.
4007 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4008
4009 * lisp.h (popup_activated_flag): Add extern declaration.
4010
4011 * xmenu.c (popup_activated_flag): Make externally visible.
4012 (popup_activate_callback) [USE_MOTIF]: Increment
4013 popup_activated_flag.
4014 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4015
4016 * xterm.c (toplevel): Include atimer.h.
4017 (toolkit_scroll_bar_interaction): New variable.
4018 (Fxt_process_timeouts): Removed.
4019 (x_process_timeouts): New function.
4020 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4021 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4022 (x_make_frame_visible): Call poll_for_input_1 instead of
4023 input_poll_signal. Don't call alarm.
4024 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4025
1e5279b9
DL
40262000-01-24 Dave Love <fx@gnu.org>
4027
6c67ddee 4028 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4029 Don't use -cckr -- apparently not now necessary.
4030
edf6aeb8
EZ
40312000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4032
4033 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4034 screen boundary.
4035
9badad41
JR
40362000-01-23 Jason Rumney <jasonr@gnu.org>
4037
4038 * w32fns.c (w32_defined_color): Apply gamma correction before
4039 trying to map to the palette.
4040 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4041 to w32_clear_rect.
4042
4043 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4044 here. Callers changed to always pass real device context.
4045 (w32_draw_bitmap): Likewise.
4046 (w32_get_glyph_overhangs): Likewise.
4047 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4048 one.
4049 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4050 pfnSetScrollInfo and SetScrollRange.
4051 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4052 back into MULE characters after decoding them.
4053 (x_get_glyph_face_and_encoding): Likewise.
4054 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4055 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4056 (x_produce_glyphs): Calculate per char metrics for a character
4057 that we know exists in default font when font_not_found_p is true.
4058
63bd786b
JR
40592000-01-22 Jason Rumney <jasonr@gnu.org>
4060
4061 * makefile.nt (intervals.obj, composite.obj): New modules.
4062 (composite.h): Added as dependency where appropriate.
4063
4064 * w32gui.h (XGCValue): New struct for emulating X GCs.
4065
4066 * w32term.h (XCharStruct): New struct for emulating X.
4067
4068 * w32console.c (turn_on_face, turn_off_face): New functions.
4069 (change_line_highlight): New prototype for new redisplay.
4070 (write_glyphs): Support multibyte text. Support faces.
4071
4072 * w32faces.c: Complete rewrite for new redisplay based on new
4073 xfaces.c.
4074
4075 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4076 throughout. struct frame * in place of FRAME_PTR.
4077 Skeleton support for images, toolbars, tooltips from xfns.c.
4078 (Fx_create_frame): Use system default for default scroll bar
4079 width.
4080 (w32_get_arg): Renamed from x_get_arg.
4081 (Fx_file_dialog): New function.
4082 (w32_list_fonts): Check cache before asking system.
4083 (Vw32_enable_synthesized_fonts): New variable.
4084 (Vw32_enable_italics): Obsolete, removed.
4085
4086 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4087 Use SELECTED_FRAME macro.
4088
4089 * w32menu.c: Add skeleton support for help strings on menus.
4090 (add_menu_item): Native checkbox and radio support added, but not
4091 yet enabled due to bugs.
4092 (push_menu_item): Add parameters type, selection and help.
4093 Callers updated.
4094 Formatting changes to reduce unnecessary diffs with xmenu.c.
4095
4096 * w32select.c (Fw32_set_clipboard_data): Update call to
4097 find_charset_in_str.
4098
4099 * w32term.c: Complete rewrite for new redisplay based on new
4100 xterm.c with necessary sections merged back in from old w32term.c.
4101
6ffd3cf7 41022000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4103
4104 * data.c (set_internal): Further fix in same criterion.
4105
6ffd3cf7 41062000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4107
4108 * data.c (set_internal): Fix the criteria for whether
4109 to swap out the old cached binding.
4110
60af03f1
DL
41112000-01-19 Dave Love <fx@gnu.org>
4112
4113 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4114
f9be074f
KH
41152000-01-18 Kenichi Handa <handa@etl.go.jp>
4116
4117 * regex.c (re_compile_fastmap): While checking a range table for
4118 `charset', skip flag bits for a character class correctly.
4119
52b8dbf9
GM
41202000-01-17 Gerd Moellmann <gerd@gnu.org>
4121
d36100c9
GM
4122 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4123
52b8dbf9
GM
4124 * xfns.c (x_window): Call lw_create_widget with new parameter
4125 list.
4126
4127 * widget.c (EmacsFrameSetCharSize): Change size of children first
4128 because of problems with main window geometry management under
4129 Lesstif.
4130
4131 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4132 MENU_ITEMS_ITEM_.*.
4133 (MENU_ITEMS_ITEM_HELP): New enumerator.
4134 (push_menu_item): Add parameter HELP. Record help in menu_items.
4135 (single_menu_item, single_submenu, list_of_items): Call
4136 push_menu_item with new parameter.
4137 (single_submenu): Set help string in widget value.
4138 (menu_highlight_callback): New function.
4139 (set_frame_menubar): Call lw_create_widget with new
4140 parameter list.
4141 (xmenu_show, xdialog_show): Ditto.
4142
3139018f
GM
41432000-01-13 Gerd Moellmann <gerd@gnu.org>
4144
4145 * sound.c (Fplay_sound): Improve doc string.
4146
83c8f461
RS
41472000-01-11 Richard M. Stallman <rms@gnu.org>
4148
4149 * lisp.h (set_internal): Enter the new arg.
4150
4151 * eval.c (specbind): Record buffer-local variables specially,
4152 indicating which buffer's binding was saved.
4153 (unbind_to): Restore buffer-local variables specially
4154 in the proper buffer.
4155
4156 * data.c (set_internal): New arg BUF.
427ec082 4157
83c8f461
RS
4158 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4159 * data.c (Fset): Pass new arg to set_internal.
4160 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4161
1fab1775
GM
41622000-01-11 Gerd Moellmann <gerd@gnu.org>
4163
4164 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4165 xprintsym.
4166
83c8f461 41672000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4168
4169 * minibuf.c (Ftry_completion): Doc fix.
4170
7a85e4df
GM
41712000-01-11 Gerd Moellmann <gerd@gnu.org>
4172
4173 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4174 vector, too.
4175
a970dae4
AS
41762000-01-11 Andreas Schwab <schwab@suse.de>
4177
4178 * coding.c (code_convert_region): Initialize total_skip.
4179
c65d14ee
DL
41802000-01-08 Dave Love <fx@gnu.org>
4181
4182 * eval.c (Fuser_variable_p): Check customizability too.
4183
834938d2
GM
41842000-01-07 Gerd Moellmann <gerd@gnu.org>
4185
4186 * minibuf.c (Fcompleting_read): Doc fix.
4187
e0303cd6
GM
41882000-01-05 Gerd Moellmann <gerd@gnu.org>
4189
8a26744b
GM
4190 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4191 -L /usr/local/lib.
4192
e0303cd6
GM
4193 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4194 Check that input style is supported before trying to create an
4195 IC for it.
4196 (x_window): Call x_create_im.
427ec082 4197
2e471eb5
GM
41982000-01-04 Gerd Moellmann <gerd@gnu.org>
4199
560a7bd2
GM
4200 * xfns.c (current_gif_memory_src): New variable.
4201 (gif_load): Record the address of the current memory source
4202 in current_gif_memory_src.
4203 (gif_read_from_memory): Use current_gif_memory_src.
4204
f9ee84a3
GM
4205 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4206 macros statement form.
4207
d1299cde
GM
4208 * sound.c (struct sound): Renamed from struct sound_file.
4209 (struct sound): Add members `data' and `header_size'.
4210 (enum sound_attr): Add SOUND_DATA.
4211 (current_sound, current_sound_device): Variables renamed from
4212 sound_file and sound_device.
4213 (parse_sound): Parse :data.
4214 (parse_sound): Handle sound data in strings.
4215 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4216 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4217 needed header size.
4218 (wav_play, au_play): Play sounds from string data.
4219
2e471eb5
GM
4220 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4221
4222 * lisp.h: Add prototype for allocate_string_data.
4223
4224 * alloc.c (Fgarbage_collect): Return number of live and free
4225 strings.
4226
4227 * alloc.c (mark_buffer): Remove code in #if 0.
4228 (gc_sweep): Ditto.
4229 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4230 (strings_consed): New variable.
4231 (allocate_string): Set it.
4232 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4233 (Fmemory_use_counts): Return strings_consed. Use Flist.
4234
4235 * alloc.c: General cleanup in comments etc. Remove conditional
4236 compilation for `standalone'.
4237
4238 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4239
4240 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4241 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4242 (DONT_COPY_FLAG): Removed.
4243 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4244 (struct sdata, struct sblock): New
4245 (struct string_block): Rewritten.
4246 (STRINGS_IN_STRING_BLOCK): New macro.
4247 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4248 (large_sblocks, string_blocks, string_free_list): New variables.
4249 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4250 (init_strings): Rewritten.
4251 (allocate_string, allocate_string_data, compact_small_strings)
4252 (free_large_strings, sweep_strings): New functions.
4253 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4254 (struct string_block_head, current_string_block)
4255 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4256 (STRING_PAD): Removed.
4257 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4258 (Fgarbage_collect): Don't set mark bit in large strings.
4259 (mark_object): Mark strings differently. Mark symbol names
4260 differently.
4261 (survives_gc_p): Test marked strings differently.
427ec082 4262 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4263 symbol names.
4264 (compact_strings): Removed.
4265
42608ba8
EZ
42662000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4267
4268 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4269 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4270
e0a09e1a
KH
42712000-01-04 Kenichi Handa <handa@etl.go.jp>
4272
dd9f0750 4273 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4274 in a non-empty buffer.
dd9f0750 4275
3c0f3b15 4276 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4277
44cd3ae5
GM
42782000-01-03 Gerd Moellmann <gerd@gnu.org>
4279
4280 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4281 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4282
4283 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4284
c182a70f
EZ
42852000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4286
4287 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4288 need to test for MSDOS frames.
4289
24480d5b
EZ
42902000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4291
4292 * dosfns.c (unspecified_colors): Remove.
4293 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4294 unspecified_bg.
4295 (msdos_stdcolor_name): Return strings for unspecified fore- and
4296 back-ground colors.
4297
4298 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4299 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4300 (tty_color_name): Return Lisp strings for unspecified fore- and
4301 back-ground colors.
4302 (Finternal_set_lisp_face_attribute): Remove the special treatment
4303 for Qunspecified_{f,b}g.
4304 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4305 string.
4306
047f434a
GM
43072000-01-03 Gerd Moellmann <gerd@gnu.org>
4308
4309 * xdisp.c (reseat_at_next_visible_line_start): Position before
4310 newline only if ending up on a newline.
4311 (next_element_from_ellipsis): Return success. Handle case of
4312 displaying no ellipsis. Fix case of ellipsis defined in display
4313 table.
4314 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4315 returns 0.
4316
d684c676
EZ
43172000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4318
4319 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4320 (Fcolor_supported_p): Renamed from face-color-supported-p.
4321
5fe1d139
EZ
43222000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4323
4324 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4325 list of colors renamed to tty-defined-color-alist.
4326 (tty_color_name): Pass the frame to tty-color-by-index.
4327 (realize_tty_face): tty-color-alist is now a function which
4328 accepts the frame as argument.
4329
4330 * term.c (Ftty_display_color_p): Accept an optional argument
4331 FRAME.
4332
816be8b8
EZ
43332000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4334
4335 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4336 encode_terminal_code.
4337
b635321e
EZ
43382000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4339
4340 * dispnew.c (mode_line_string): Support termcap frames as well.
4341
9b784e96
GM
43422000-01-01 Gerd Moellmann <gerd@gnu.org>
4343
27189709
GM
4344 * syntax.c (Fforward_word): Undo previous change.
4345
4346 * editfns.c (Fconstrain_to_field): Don't constrain if
4347 inhibit-field-text-motion is non-nil.
4348 (Fline_beginning_position): Undo previous change.
4349 (Fline_end_position): Ditto.
4350
4351 * syntax.c (Fforward_word): Notice field boundaries only if
4352 inhibit-field-text-motion is nil.
4353
4354 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4355
4356 * editfns.c (Vinhibit_field_text_motion): New variable.
4357 (inhibit-field-text-motion): New DEFVAR_LISP.
4358 (Fline_beginning_position, Fline_end_position): Notice field
4359 boundaries only if inhibit-field-text-motion is nil.
4360
45158a91
GM
4361 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4362 All calls adjusted.
4363 (x_build_heuristic_mask): Likewise.
4364 (xbm_load_image_from_file): Change error output.
4365 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4366 (gif_load, gs_load, x_kill_gs_process): Ditto.
4367
9b784e96
GM
4368 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4369 color indices when accessing raster pixels.
63cec32f
GM
4370 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4371 one of :file or :data.
4372 (enum pbm_keyword_index): Add PBM_DATA.
4373 (pbm_format): Add :data.
4374 (pbm_image_p): Allow either :file or :data.
4375 (pbm_read_file): New function.
4376 (pbm_scan_number): Rewritten to read from string.
4377 (pbm_load): Support :data.
9b784e96 4378
5ad6a5fb
GM
43791999-12-31 Gerd Moellmann <gerd@gnu.org>
4380
4381 * xfns.c: New image functions adapted to Emacs conventions.
4382 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4383 variable `file'.
4384
63448a4d
WP
43851999-12-31 William M. Perry <wmperry@aventail.com>
4386
4387 * xfns.c (jpeg_format): Added the :data keyword
4388 (jpeg_image_p): JPEG is valid with :file _or_ :data
4389 (jpeg_memory_src): Defined new JPEG image source to read from a
4390 memory buffer.
4391 (jpeg_load): Pay attention to the :data keyword if specified.
4392 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4393 found.
4394 (png_format): Added the :data keyword
4395 (png_image_p): PNG is valid with :file _or_ :data
4396 (png_read_from_memory): New PNG read function to read from a
4397 memory buffer.
4398 (png_load): Pay attention to the :data keyword if specified. Uses
4399 png_set_read_fn() instead of png_init_io() if specified.
4400 (tiff_format): Added the :data keyword for TIFF images.
4401 (tiff_image_p): TIFF is valid with :file _or_ :data
4402 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4403 from a memory buffer.
4404 (tiff_load): Pay attention to the :data keyword if specified.
4405 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4406 (gif_format): Added the :data keyword
4407 (gif_image_p): GIF is valid with :file _or_ :data
4408 (gif_read_from_memory): New GIF input function to read from a
4409 memory buffer.
c65d14ee 4410 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4411 instead of DGifOpenFileName() if specified.
4412
c880678e
GM
44131999-12-31 Gerd Moellmann <gerd@gnu.org>
4414
4415 * xdisp.c (next_element_from_buffer): Change assertion at the end
4416 because it doesn't hold when there's an overlay string at the end
4417 from which we deliver an image.
4418
8ccb9a54
EZ
44191999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4420
4421 * msdos.c (IT_update_begin): Don't dereference members of struct
4422 window for deleted windows.
4423
12ce2351
GM
44241999-12-30 Gerd Moellmann <gerd@gnu.org>
4425
a915c648
GM
4426 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4427 a hook, and the hook has a non-nil `no-self-insert' property, let
4428 the return value of the hook specify whether an expansion took
4429 place. If it returns nil, no expansion has been performed.
4430
12ce2351
GM
4431 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4432 differently.
4433
04ee4f45
EZ
44341999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4435
4436 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4437
7f4bc0c3
EZ
44381999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4439
4440 * dispnew.c (mode_line_string): Support MS-DOS frames.
4441
dac204bc
GM
44421999-12-29 Gerd Moellmann <gerd@gnu.org>
4443
4444 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4445
7b712ad8
KH
44461999-12-29 Kenichi Handa <handa@etl.go.jp>
4447
4448 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4449 to signal_after_change.
4450
adb9900f
EZ
44511999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4452
41ad069b
EZ
4453 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4454 dimensions changed, invalidate the mouse highlight info.
4455 (disable_mouse_highlight, help_echo, previous_help_echo): New
4456 variables.
4457 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4458 (fast_find_position, IT_note_mode_line_highlight)
4459 (IT_note_mouse_highlight): New functions.
4460 (IT_update_begin): If the redisplay affects the window where the
4461 mouse highlight is, clear the highlight. If the frame where the
4462 highlight was displayed was killed, invalidate the highlight
4463 info.
4464 (IT_update_end): Reset the highlight flag. Reset the mouse
4465 highlight-defer flag.
4466 (IT_frame_up_to_date): New function, if mouse highlight was
4467 deferred due to GC, do it now.
4468 (internal_terminal_init): Initialize mouse-highlight related
4469 members of the_only_x_display. Assign IT_frame_up_to_date to
4470 frame_up_to_date_hook.
4471 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4472 help_echo changed value, generate a HELP_EVENT event.
4473 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4474
adb9900f
EZ
4475 * msdos.h (struct display_info): New.
4476 (struct x_output): Add the display_info member.
4477 (FRAME_X_DISPLAY_INFO): New macro.
4478
481b5054
GM
44791999-12-28 Gerd Moellmann <gerd@gnu.org>
4480
4481 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4482 if MODIFF > 1.
6448a6b3 4483 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4484
4485 * buffer.c (modify_overlay): Always compute unchanged info.
4486
a2882b0d
KH
44871999-12-27 Kenichi Handa <handa@etl.go.jp>
4488
4489 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4490
89ba5b5f
KH
44911999-12-27 Kenichi Handa <handa@etl.go.jp>
4492
4493 The following changes are to use more bits for face IDs.
4494
4495 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4496 lowest 8 bits are single byte character code, the bits above are
4497 face ID.
481b5054 4498 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4499 above.
481b5054
GM
4500 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4501 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4502
4503 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4504 of GLYPH_MASK_CHAR.
4505
4506 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4507 of GLYPH_MASK_CHAR.
4508
4509 * dispextern.h (struct glyph): Make face_id and padding_p the top
4510 level members. Change members in union `u'.
4511 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4512 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4513 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4514 (CHAR_GLYPH_PADDING_P): Likewise.
4515 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4516 characters.
4517
481b5054 4518 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4519 for the change of struct glyph.
4520 (line_draw_cost): Adjusted for the change of
4521 GLYPH_FROM_CHAR_GLYPH.
4522 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4523
4524 * term.c (encode_terminal_code): Adjusted for the change of struct
4525 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4526 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4527 change of struct glyph.
4528
4529 * xdisp.c: All codes adjusted for the change of struct glyph.
4530
4531 * xterm.c: All codes adjusted for the change of struct glyph.
4532
5bcd116c
KH
45331999-12-27 Kenichi Handa <handa@etl.go.jp>
4534
4535 * composite.h (struct composition): Change the order of declaring
4536 members to reduce the byte size of the structure.
4537
f21b06b7
GM
45381999-12-25 Gerd Moellmann <gerd@gnu.org>
4539
4540 * search.c (looking_at_1): Reset immediate_quit before modifying
4541 global data.
4542
e36557c9
KH
45431999-12-24 Kenichi Handa <handa@etl.go.jp>
4544
4545 * process.c (read_process_output): Fix the arg FROM to
4546 update_compositions.
4547
83c8f461 45481999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4549
4550 * search.c (Freplace_match): For nonliteral replacement in buffer,
4551 construct all the new text first, then insert all at once.
4552
0b863bd9
DL
45531999-12-22 Dave Love <fx@gnu.org>
4554
4555 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4556
6d8e8ef3
GM
45571999-12-22 Gerd Moellmann <gerd@gnu.org>
4558
28d7281d
GM
4559 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4560 lead to size changes to after the X window has been created.
4561
e22ef6eb 4562 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4563 variable in xassert.
4564
8affcced
KH
45651999-12-22 Kenichi Handa <handa@etl.go.jp>
4566
4567 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4568 only when the frame is not for a window system.
8affcced 4569
f2be1146
GM
45701999-12-22 Gerd Moellmann <gerd@gnu.org>
4571
deca1348
GM
4572 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4573 redisplay after changing the multibyteness of a buffer.
4574
f2be1146
GM
4575 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4576 frame's X window to XFilterEvent instead of None because that's
4577 the X window for which the IC was created. This makes dead
4578 accents work when the pointer is not in Emacs' frame.
4579 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4580
a744a2ec
DL
45811999-12-20 Dave Love <fx@gnu.org>
4582
4583 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4584
9e6985ed
GM
45851999-12-19 Gerd Moellmann <gerd@gnu.org>
4586
4587 * eval.c (debugger_may_continue): New variable.
4588 (syms_of_eval): Add a DEFVAR_BOOL for it.
4589 (call_debugger): Bind it.
4590
3b620731
EZ
45911999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4592
4593 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4594 fp->tty_reverse_p is set, unless the computed colors are identical
4595 to frame colors. Print both original and computed colors to
4596 termscript file.
4597 (IT_write_glyphs): Track the changes in handling of composite
4598 characters.
4599 (IT_set_frame_parameters): Don't set frame colors from
4600 unspecified-fg and unspecified-bg pseudo-colors.
4601
0f9a51c4
DL
46021999-12-17 Dave Love <fx@gnu.org>
4603
4604 * data.c (Fkeywordp): New function.
4605 (syms_of_data): Install it.
4606
363e4e42
EZ
46071999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4608
4609 * xfaces.c (tty_defined_color): Fix last change.
4610
cfad01b4
GM
46111999-12-15 Gerd Moellmann <gerd@gnu.org>
4612
4613 * xdisp.c (redisplay_window) <optional new window start>: Check
4614 that window start is in [BEGV..ZV].
4615
f9d2fdc4
EZ
46161999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4617
4618 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4619 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4620
4621 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4622 (syms_of_xfaces): Initialize and staticpro them.
4623 (tty_defined_color): If the color name is unspecified-fg or
4624 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4625 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4626 (tty_color_name): If the color pixel value is either
4627 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4628 Qunspecified_fg or Qunspecified_bg, respectively.
4629 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4630 and Qunspecified_bg for foreground and background colors.
4631 (realize_default_face): If the foreground and background colors
4632 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4633 (realize_tty_face): By default, set the face colors to
4634 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4635 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4636 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4637 Reverse the colors if the default colors were reversed.
4638
4639 * dispnew.c (init_display): Initialize the frame pixels of the
4640 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4641 FACE_TTY_DEFAULT_BG_COLOR.
4642
4643 * term.c (turn_on_face): If the default fore- and background
4644 colors are reversed, enter inverse video mode. Don't send color
4645 escape sequences for unspecified foreground and background colors.
4646 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4647
4648 * dosfns.c (unspecified_colors): New variable.
4649 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4650 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4651 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4652 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4653 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4654 Qunspecified_bg, respectively.
4655
4656 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4657 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4658
e19539f1
KH
46591999-12-15 Kenichi Handa <handa@etl.go.jp>
4660
4661 * coding.c (code_convert_region): Fix the secoding arg to
4662 update_compositions.
4663
5ec14d3c
KH
46641999-12-15 Kenichi Handa <handa@etl.go.jp>
4665
4666 The following changes are for the new composition mechanism. We
4667 have deleted `composition' charset and composite characters,
4668 instead introduced a special text property `composition'.
4669
4670 * Makefile.in (INTERVAL_SRC): Include composite.h.
4671 (INTERVAL_OBJ): Include composite.o.
4672 (SOME_MACHINE_OBJECTS): Include composite.o.
4673 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4674 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4675 Depend on composite.h.
4676 (doc.o): Depend on charset.h.
4677 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4678 (composite.o): New target.
427ec082 4679
5ec14d3c
KH
4680 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4681
4682 * callproc.c (Fcall_process): Call code_convert_string to encode
4683 arguments. Use CODING_REQUIRE_DECODING to check if the process
4684 output should be decoded.
4685
4686 * casefiddle.c: Include composite.h.
4687 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4688 multibyte character. Adjusted for the change of CHAR_STRING.
4689 (casify_region): Likewise. Call update_compositions.
4690
4691 * category.h (CATEGORY_SET): Delete codes for a composite
4692 character.
4693
4694 * category.c (word_boundary_p): Delete codes for a composite
4695 character.
4696 (Fmake_category_table): New function.
4697 (syms_of_category): Defsubr it.
4698
4699 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4700 (ccl_driver): Delete codes for a composite character.
4701
4702 * charset.h: In this entry, just `Modified' means that codes for a
4703 composite character is deleted.
4704 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4705 (charset_composition) (MIN_CHAR_COMPOSITION)
4706 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4707 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4708 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4709 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4710 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4711 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4712 Modified.
4713 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4714 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4715 non_ascii_char_to_string.
4716 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4717 (STRING_CHAR_AND_LENGTH): Likewise.
4718 (FETCH_CHAR_ADVANCE): New macro.
4719 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4720 (MAX_MULTIBYTE_LENGTH): New macro.
4721 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4722 (find_charset_in_str): Argument adjusted.
4723 (CHAR_LEN): Modified.
427ec082 4724
5ec14d3c
KH
4725 * charset.c: In this entry, just `Modified' means that codes for a
4726 composite character is deleted.
4727 (Qcomposition) (leading_code_composition)
4728 (charset_composition) (min_composite_char) (cmpchar_table)
4729 (cmpchar_table_size) (n_cmpchars): Deleted.
4730 (SPLIT_COMPOSITE_SEQ): Deleted.
4731 (SPLIT_MULTIBYTE_SEQ): Modified.
4732 (char_to_string): Renamed from non_ascii_char_to_string.
4733 Modified.
4734 (string_to_char): Renamed from string_to_non_ascii_char.
4735 (split_string): Renamed from split_non_ascii_string.
4736 (char_printable_p) (Fsplit_char)
4737 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4738 (char_bytes) (Fchar_width) (strwidth): Modified.
4739 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4740 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4741 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4742 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4743 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4744 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4745 (Fcmpchar_cmp_count): Deleted.
4746 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4747 (init_charset_once): Modified.
4748 (syms_of_charset): Modified.
4749
4750 * cmds.c (internal_self_insert): Adjusted for the change of
4751 CHAR_STRING.
4752
4753 * coding.h (emacs_code_class_type): Delete the member
4754 EMACS_leading_code_composition.
4755 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4756 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4757 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4758 (COMPOSING_WITH_RULE_P): Macros deleted.
4759 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4760 macros.
4761 (struct composition_data): New structure.
4762 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4763 (struct coding_system): New members composition_rule_follows,
4764 cmp_data, cmp_data_start, cmp_data_index.
4765 (coding_save_composition) (coding_free_composition_data)
4766 (coding_adjust_composition_offset): Extern them.
4767
4768 * coding.c: Include composite.h.
4769 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4770 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4771 of multibyte code here.
4772 (DECODE_CHARACTER_DIMENSION2): Likewise.
4773 (detect_coding_emacs_mule): Change the case label from
4774 EMACS_leading_code_composition to 0x80.
4775 (detect_coding_iso2022): Handle new composition sequence.
4776 (DECODE_ISO_CHARACTER): Likewise.
4777 (check_composing_code): Deleted.
4778 (coding_allocate_composition_data): New function.
4779 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4780 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4781 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4782 (decode_coding_iso2022): Handle new composition sequence.
4783 (ENCODE_ISO_CHARACTER): Don't check composition here.
4784 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4785 (ENCODE_COMPOSITION_NO_RULE_START)
4786 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4787 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4788 (ENCODE_COMPOSITION_FAKE_START): New macro.
4789 (encode_coding_iso2022): Handle new composition sequence.
4790 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4791 (encode_coding_sjis_big5): Ignore composition.
4792 (setup_coding_system): Initialize new members of struct
4793 coding_system. Enable composition only when the coding system has
4794 `composition' property t.
4795 (coding_free_composition_data) (coding_adjust_composition_offset)
4796 (coding_save_composition) (coding_restore_composition): New
4797 functions.
4798 (code_convert_region): Call coding_save_composition for encoding
4799 and coding_allocate_composition_data for decoding. Don't skip
4800 ASCII characters if we handle composition on encoding. Call
4801 signal_after_change with Check_BORDER.
4802 (code_convert_string): Call coding_save_composition for encoding
4803 and coding_allocate_composition_data for decoding. Don't skip
4804 ASCII characters if we handle composition on encoding.
4805 (code_convert_string1): Set Vlast_coding_system_used after calling
4806 code_convert_string.
4807 (code_convert_string_norecord): Disable composition.
4808 (Fset_terminal_coding_system_internal): Likewise.
4809 (Fset_safe_terminal_coding_system_internal): Likewise.
4810 (Fset_keyboard_coding_system_internal): Likewise.
4811 (init_coding_once): Set emacs_code_class[0x80] to
4812 EMACS_invalid_code.
4813
4814 * composite.h: New file.
4815
4816 * composite.c: New file.
4817
4818 * data.c (Faref): Delete codes for a composite character..
4819 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4820
4821 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4822 (struct glyph): Add new sub-structure cmp to the union `u'.
4823 (enum display_element_type): New member IT_COMPOSITION.
4824 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4825 (struct it): New members cmp_id, cmp_len.
4826
4827 * dispnew.c (direct_output_forward_char): Check point moving into
4828 or out of a composition. If so, give up direct method.
4829
4830 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4831
4832 * editfns.c (Fchar_to_string): Adjusted for the change of
4833 CHAR_STRING.
4834 (general_insert_function): Likewise.
4835 (Finsert_char): Likewise.
4836 (Fsubst_char_in_region): Likewise. Call update_compositions.
4837 (Ftranslate_region): Call update_compositions.
4838 (Ftranspose_regions): Call update_compositions.
4839
4840 * emacs.c (main): Call syms_of_composite.
4841
4842 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4843 CHAR_STRING.
4844 (Finsert_file_contents): Set Vlast_coding_system_used before
4845 calling signal_after_change. Call update_compositions if some
4846 texts are inserted..
4847 (Fwrite_region): Adjusted for the change of a_write and e_write.
4848 (a_write): Argument changed. Work based on character position,
4849 not byte position.
4850 (e_write): Argument changed. Handle new way of composition.
4851
4852 * fns.c (Flength): The length of char-table is MAX_CHAR.
4853 (concat): Adjusted for the change of CHAR_STRING.
4854 (Ffillarray): Adjusted for the change of CHAR_STRING.
4855 (Fset_char_table_default): Delete codes for a composite character.
4856 (hash_put): Return hash index.
4857
4858 * fontset.h (struct font_info): New member vertical_centering.
4859 (Vvertical_centering_font_regexp): Extern it.
4860
4861 * fontset.c (Vvertical_centering_font_regexp): New variable.
4862 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4863 Set Vignore_relative_composition to nil.
4864 (fs_load_font): Initialize `vertical_centering' of struct
4865 font_info.
4866
4867 * indent.c (check_composition): New function.
4868 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4869 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4870 (current_column_1): Handle new way of composition.
4871 (Fmove_to_column): Likewise.
4872 (compute_motion): Likewise.
4873
4874 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4875 (insert_char): Likewise.
4876 (insert): Call update_compositions.
4877 (insert_and_inherit): Likewise.
4878 (insert_before_markers): Likewise.
4879 (insert_before_markers_and_inherit): Likewise.
4880 (insert_from_string): Likewise.
4881 (insert_from_string_before_markers): Likewise.
4882 (insert_from_buffer): Likewise.
4883 (replace_range): Likewise.
4884 (count_combining_composition): Deleted.
4885 (count_combining_before): Delete codes for a composite character.
4886 (count_combining_after): Likewise.
4887 (del_range_1): Call update_compositions.
4888 (del_range_byte): Likewise.
4889 (del_range_both): Likewise.
4890 (Fcombine_after_change_execute): Likewise.
4891
4892 * intervals.h: Include composite.h.
4893 (get_property_and_range): Extern it.
4894 (Vtext_property_default_nonsticky): Extern it.
427ec082 4895
5ec14d3c
KH
4896 * intervals.c (adjust_intervals_for_insertion): To check stickines
4897 of properties, pay attention to text-property-default-nonsticky.
4898 (merge_properties_sticky): Likewise.
4899 (get_property_and_range): New function.
4900
4901 * keyboard.c (Vdisable_point_adjustment): New variable.
4902 (Vglobal_disable_point_adjustment): New variable.
4903 (syms_of_keyboard): Declare them as Lisp variables.
4904 (command_loop_1): Check them and call adjust_point_for_property if
4905 necessary.
4906 (adjust_point_for_property): New function.
4907
4908 * keymap.c (push_key_description): Adjusted for the change of
4909 CHAR_STRING.
4910 (Ftext_char_description): Likewise.
4911
4912 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4913 (hash_put): Adjusted for the change of the definition.
4914 (signal_after_change): Likewise.
4915 (check_point_in_composition): Extern it.
4916
4917 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4918 Delete a code that handles an invalid too-long multibyte sequence
4919 because we are now sure that we never encounter with such a
4920 sequence.
4921 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4922 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4923 (init_obarray): Likewise.
4924 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4925
4926 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4927
4928 * process.c: Include composite.h.
4929 (read_process_output): Call update_compositions.
4930
4931 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4932
4933 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4934
4935 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4936 character.
4937
4938 * term.c (encode_terminal_code): Delete codes for a composite
4939 character. Adjusted for the change of CHAR_STRING.
4940 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4941 Delete codes for a composite character.
4942
4943 * textprop.c (Vtext_property_default_nonsticky): New variable
4944 (syms_of_textprop): Declare it as a Lisp variable.
4945
4946 * window.c (Frecenter): Clear all caches of compositions.
4947
4948 * xdisp.c (it_props): Add an entry for composition.
4949 (face_before_or_after_it_pos): For composition, check face of a
4950 character after the composition.
4951 (handle_composition_prop): New function.
4952 (get_next_display_element): Adjusted for the change of
4953 CHAR_STRING.
4954 (set_iterator_to_next): Handle the case that it->method ==
4955 next_element_from_composition.
4956 (next_element_from_composition): New function.
4957 (message_dolog): Adjusted for the change of CHAR_STRING.
4958 (set_message_1): Likewise.
4959 (check_point_in_composition): New function.
4960 (reconsider_clip_changes): If point moved into or out of
4961 composition, set b->clip_changed to 1 to force updating of the
4962 screen.
4963 (disp_char_vector): Delete codes for a composite character.
4964 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4965
4966 * xfaces.c (choose_face_fontset_font): Delete codes for a
4967 composite character.
4968 (realize_x_face): Likewise. Change a place to set local variable
4969 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4970
4971 * xfns.c: Include intervals.h.
4972 (syms_of_xfns): Make `display' property nonsticky by default.
4973
4974 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4975 for find_charset_in_str.
4976
4977 * xterm.h (struct x_output): Change member font_baseline to
4978 baseline_offset.
4979
4980 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4981 for composition.
4982 (x_append_composite_glyph): New function.
4983 (VCENTER_BASELINE_OFFSET): New macro.
4984 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4985 of struct it for the composition. Cache pixel offsets in the
4986 struct composition. Delete codes for a composite character.
4987 Handle Vignore_relative_composition in composition code.
4988 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4989 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4990 (x_compute_glyph_string_overhangs): Likewise.
4991 (x_get_glyph_overhangs): Delete codes for a composite character.
4992 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4993 (x_draw_glyph_string_background): Likewise. Delete codes for
4994 checking s->gidx for a composition.
4995 (x_draw_glyph_string_foreground): Delete code for a composite
4996 character.
4997 (x_draw_composite_glyph_string_foreground): New function.
4998 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4999 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
5000 (struct work): Deleted.
5001 (x_fill_composite_glyph_string): Argument changed. Mostly
5002 rewritten for that.
5003 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
5004 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5005 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5006 (BUILD_GLYPH_STRINGS): For composition, call
5007 BUILD_COMPOSITE_GLYPH_STRING.
5008 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5009 f->output_data.x->font_baseline.
5010
c3c60f13
GM
50111999-12-14 Gerd Moellmann <gerd@gnu.org>
5012
5013 * xterm.c (show_mouse_face): Don't use updated_area, use
5014 TEXT_AREA.
5015
83c8f461 50161999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5017
5018 * minibuf.c (Fall_completions): Doc fix.
5019
83c8f461 50201999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5021
5022 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5023 has been changed by the Lisp code.
5024
d8eccf12
GM
50251999-12-12 Gerd Moellmann <gerd@gnu.org>
5026
5027 * xfns.c: Indentation fixes.
5028
ae56feae
SM
50291999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5030
5031 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5032
dfa1c6ae
GM
50331999-12-10 Gerd Moellmann <gerd@gnu.org>
5034
5035 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5036 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5037
5038 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5039 to frame.h.
5040
ec18280f
SM
50411999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5042
5043 * keyboard.c (Qratio): New symbol.
5044 (scroll_bar_parts): Add `Qratio' to it.
5045 (syms_of_keyboard): Init `Qratio'.
5046 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5047 * xterm.c (#includes): Allow compilation with only Xaw.
5048 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5049 (xt_action_hook): Replace XAW3D by XAW.
5050 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5051 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5052 Determine epsilon dynamically and don't try to be too clever.
5053 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5054 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5055 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5056 scrollbar (using `ratio').
5057 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5058 scrollbar we have so as to set it up more optimally and to fix
5059 xaw3d_arrow_scroll and xaw3d_pick_top.
5060 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5061 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5062 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5063 is not ignored, using a major gross hack.
5064 (x_initialize): Init default values for xaw3d_arrow_scroll and
5065 xaw3d_pick_top.
5066
83b6d970
DL
50671999-12-09 Dave Love <fx@gnu.org>
5068
5069 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5070
3648c842
GM
50711999-12-08 Gerd Moellmann <gerd@gnu.org>
5072
5073 * eval.c: Remove conditional compilation on `standalone'.
5074 (call_debugger): When entering the debugger while redisplaying,
5075 reset redisplaying_p, and go back to the top-level if the debugger
5076 returns.
5077
05e71564
GM
50781999-12-07 Gerd Moellmann <gerd@gnu.org>
5079
5080 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5081 basic faces are realized before trying to use face `menu'.
5082
5083 * window.c (delete_window): Block input for the time window
5084 matrices are being changed.
5085
b46cd536
DL
50861999-12-07 Dave Love <fx@gnu.org>
5087
5088 * lread.c (Fintern_soft): Fix newlines in doc string.
5089
96acb1f7
GM
50901999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5091
5092 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5093 duplicate definition of ElfW.
5094 (find_section): Copied from unexsgi.c.
5095 (unexec): Use find_section. Adjust whitespace. Initialize
5096 new_data2_offset based on old_data, not sbss (this fixes a bug on
5097 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5098 Adjust test for presence of .mdebug section to the new return
5099 value of find_section.
427ec082 5100
96acb1f7
GM
51011999-12-07 Gerd Moellmann <gerd@gnu.org>
5102
5103 * unexelf.c: Merge changes from 20.5.
5104 (unexec): Handle .lit4 and .lit8 unconditionally.
5105
5106 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5107 unexsgi.o again.
427ec082 5108
96acb1f7
GM
5109 * m/iris5d.h (UNEXEC): Likewise.
5110
7dae4502
SM
51111999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5112
5113 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5114 (syms_of_editfns): Register it.
5115 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5116 (del_range_1, del_range_2): Add a ret_string argument to
5117 request that the deleted text be returned.
5118 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5119 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5120 * casefiddle.c (casify_region): Update del_range_1 call.
5121 * coding.c (code_convert_region): Update del_range_2 call.
5122 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5123
397e4fae
GM
51241999-12-06 Gerd Moellmann <gerd@gnu.org>
5125
5126 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5127
3d973f71
GM
51281999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5129
5130 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5131
740e985f
EZ
51321999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5133
5134 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5135
5136 * insdel.c (adjust_markers_for_delete): Fix last change.
5137
2d764c78
EZ
51381999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5139
5140 Changes for automatic remapping of X colors on terminal frames:
5141
5142 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5143 frames.
5144 (Vface_tty_color_alist): Remove.
5145 (tty_defined_color): New function.
5146 (defined_color): Rewrite to support any type of frame.
5147 (tty_color_name): New function.
5148 (face_color_supported_p, Fface_color_gray_p,
5149 Fface_color_supported_p): Support non-X frames.
5150 (load_color): Enclose the color name in quotes, in the log
5151 messages. Remove DOS-specific version of load_color.
5152 (realize_tty_face): Take the supported colors from
5153 tty-color-alist. Support translation of X colors to the closest
5154 tty color, for both MSDOS and tty frames.
5155 [MSDOS]: Don't invert face colors if they were taken from the
5156 frame colors.
5157 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5158
5159 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5160 Define a mostly empty surrogate.
5161 (tty_display): Declare.
5162
5163 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5164 tty_display.
5165 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5166 frames when the frame's param_alist includes 'reverse.
5167 (tty_display): Define.
5168 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5169 output_data.x member.
5170 (Fframe_parameters): Return foreground and background color names
5171 on tty frames as well, in addition to MSDOS frames.
5172
5173 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5174 selected_frame.
5175 (struct x_output): Remove unused members; document who uses each
5176 member.
5177 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5178 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5179 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5180 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5181 unused macro definintions.
5182
5183 * msdos.c (IT_set_frame_parameters): Don't call
5184 recompute_basic_faces, the next redisplay will, anyway.
5185 (x_current_display): Remove unused variable.
5186 Many functions: changes for Lisp_object selected_frame.
5187 (IT_set_face): If the tty_reverse_p flag is set for the face,
5188 reverse the foreground and background colors.
5189 (Fmsdos_remember_default_colors): New function.
5190 (syms_of_msdos): Defsubr it.
5191 (IT_set_frame_parameters): Use initial_screen_colors[] when
5192 creating a new frame. If the frame parameters include 'reverse,
5193 swap the foreground and background colors.
5194 (internal_terminal_init): Initialize initial_screen_colors to -1.
5195 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5196 cus-start.el.
5197
5198 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5199
5200 * xfns.c (x_defined_color): Rename from defined_color. All
5201 callers changed.
5202 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5203 all callers changed.
5204 (Fxw_color_values): Renamed from Fx_color_values; all callers
5205 changed.
5206 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5207 callers changed.
5208 (x_window_to_frame, x_any_window_to_frame,
5209 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5210 x_top_window_to_frame): Use !FRAME_X_P instead of
5211 f->output_data.nothing.
5212 * xterm.h (x_defined_color): Rename from defined_color.
5213
5214 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5215 f->output_data.nothing.
5216 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5217 all callers changed.
5218 (Fxw_color_values): Renamed from Fx_color_values; all callers
5219 changed.
5220 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5221 callers changed.
5222
5223 * dispextern.h (tty_color_name): Add prototype.
5224
5225 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5226 f->output_data.nothing.
5227 * w32menu.c (menubar_id_to_frame): Likewise.
5228 * w32term.h (w32_output): Declare.
5229
5230 * dosfns.c (Qmsdos_color_translate): Remove.
5231 (msdos_stdcolor_name): Now returns a Lisp_Object.
5232 * dosfns.h (Qmsdos_color_translate): Remove.
5233
5234 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5235
b3e5232e
KH
52361999-12-06 Kenichi Handa <handa@etl.go.jp>
5237
5238 * fileio.c (decide_coding_unwind): Renamed from
5239 set_auto_coding_unwind.
5240 (Finsert_file_contents): Make single unwind protect to call both
5241 Vset_auto_coding_function and Ffind_operation_coding_system.
5242
5243 * insdel.c (adjust_markers_for_delete): Make it non-static.
5244
db0e466c
SM
52451999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5246
5247 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5248 operators and handle them properly.
5249 * regex.h (RE_ALL_GREEDY): New option.
5250 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5251 sorting would put it.
5252 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5253 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5254
22afa6e8
DL
52551999-12-04 Dave Love <d.love@dl.ac.uk>
5256
5257 * m/arm.h: New file.
5258
40afb967
DL
52591999-12-03 Dave Love <fx@gnu.org>
5260
5261 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5262
ddf8eff5
GM
52631999-12-02 Gerd Moellmann <gerd@gnu.org>
5264
5265 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5266 for building with Motif.
5267
5268 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5269 unexelf.o.
427ec082 5270
ddf8eff5
GM
5271 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5272
fa09a82d
DL
52731999-12-01 Dave Love <fx@gnu.org>
5274
5275 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5276
ddf8eff5
GM
52771999-11-28 Gerd Moellmann <gerd@gnu.org>
5278
5279 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5280 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5281 macros.
5282
5283 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5284
fa09a82d
DL
52851999-11-28 eliz <eliz@dlpx1>
5286
5287 * emacs.c (synchronize_locale): Avoid compiler warnings about
5288 pointer type mismatch.
5289
f9632fc8
GM
52901999-11-28 Gerd Moellmann <gerd@gnu.org>
5291
717d0121
GM
5292 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5293 out of range position.
5294
427ec082 5295 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5296 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5297
59c65f1e
EZ
52981999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5299
613a8346
EZ
5300 * charset.c (Fmake_char_internal): Print the charset ID when
5301 signalling an error.
5302
59c65f1e
EZ
5303 * emacs.c (synchronize_locale): Avoid compiler warnings about
5304 pointer type mismatch.
5305
83c8f461 53061999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5307
5308 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5309
18df9369
GM
53101999-11-26 Gerd Moellmann <gerd@gnu.org>
5311
65a3ccf7
GM
5312 * puresize.h (BASE_PURESIZE): Increase to 550000.
5313
b3b98592
GM
5314 * textprop.c (set_text_properties): New function. Like
5315 Fset_text_properties, but with additional parameter
5316 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5317 changes.
5318 (Fset_text_properties): Use it.
5319
5320 * insdel.c (insert_1_both): Call set_text_properties with last
5321 parameter nil so that no after changes will be signaled.
5322
5323 * lisp.h: Add prototype for set_text_properties.
5324
18df9369
GM
5325 * xfaces.c (set_lface_from_font_name): Fix previous change.
5326 (recompute_basic_faces): Change assert to abort.
5327
71a8e74b
DL
53281999-11-25 Dave Love <fx@gnu.org>
5329
5330 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5331 (Fmember, Fdelq, Fdelete): Inline car.
5332 (Fy_or_n_p): Doc fix.
5333
bc6a5782
GM
53341999-11-25 Gerd Moellmann <gerd@gnu.org>
5335
3221576b 5336 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5337 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5338 is not set, try to use a reasonable default.
5339
bc6a5782
GM
5340 * dispnew.c (direct_output_for_insert): Set glyph row's
5341 displays_text_p flag. Correct window's window_end_vpos if
5342 necessary.
5343
0c8559bb
PE
53441999-11-25 Paul Eggert <eggert@twinsun.com>
5345
5346 * emacs.c (fixup_locale): Don't bother to record initial locale.
5347 (synchronize_locale): If the desired locale is nil,
5348 treat it as if it were the empty string,
5349 so that we set the locale from the environment.
5350
35737351
KH
53511999-11-25 Kenichi Handa <handa@etl.go.jp>
5352
5353 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5354 of the current buffer via Fset.
5355
5562b47f
DL
53561999-11-24 Dave Love <fx@gnu.org>
5357
5562b47f
DL
5358 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5359
5360 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5361
00da0e4a
GM
53621999-11-24 Gerd Moellmann <gerd@gnu.org>
5363
5364 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5365
5366 * emacs.c (PVEC_FLAG): New variable.
5367
b1775dc1
GM
53681999-11-23 Gerd Moellmann <gerd@gnu.org>
5369
5370 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5371 that fails on IBM PowerPC, AIX 4.2.
427ec082 5372
08de6200
EZ
53731999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5374
5375 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5376 string of mode-line-format. Remove the obsolete %t.
5377
02fda8ff
GM
53781999-11-22 Gerd Moellmann <gerd@gnu.org>
5379
f2fa858f
GM
5380 * dispnew.c (direct_output_for_insert): Increment glyph positions
5381 for glyphs from buffer text only.
5382
02fda8ff
GM
5383 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5384 (gdb_data_seg_bits): New variables.
427ec082 5385
02fda8ff
GM
5386 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5387 work on systems not allowing enumerators > INT_MAX, and it
5388 won't work if EMACS_INT is long long.
5389
1b0d24e7
PE
53901999-11-22 Paul Eggert <eggert@twinsun.com>
5391
5392 Port to SunOS 4.1.x again. Help out with Alpha port.
5393 Rename messages-locale to system-messages-locale,
5394 and likewise for time-locale.
427ec082 5395
1b0d24e7
PE
5396 * callproc.c (strerror): Remove decl.
5397 * fileio.c (strerror): Likewise.
5398 * process.c (strerror): Likewise.
5399 * emacs.c (strerror): Likewise.
5400 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5401 All uses changed.
5402 (Vprevious_system_messages_locale): Likewise, from
5403 Vprevious_messages_locale.
5404 (Vsystem_time_locale): Likewise, from Vtime_locale.
5405 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5406 (ABORT_RETURN_TYPE): New macro.
5407 (abort): Return type is now ABORT_RETURN_TYPE.
5408 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5409 defined.
5410 (syms_of_emacs): messages-locale -> system-messages-locale,
5411 previous-messages-locale -> previous-system-messages-locale,
5412 time-locale -> system-time-locale,
5413 previous-time-locale -> previous-system-time-locale.
5414
5415 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5416 (const): Do not define; that's config.h's job.
5417 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5418 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5419 (<stddef.h>): Include if STDC_HEADERS is defined.
5420 (FREE_RETURN_TYPE): New macro.
5421 (free): Return type is now FREE_RETURN_TYPE.
5422
5423 * lisp.h (synchronize_system_time_locale): Renamed from
5424 synchronize_time_locale. All uses changed.
5425 (synchronize_system_messages_locale): Likewise, from
5426 synchronize_messages_locale.
5427
5428 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5429 stdlib.h now does this.
5430
5431 * process.c (sys_siglist): Remove.
5432
5433 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5434 New macros.
5435
5436 * syntax.c (scan_sexps_forward): Use abort, not assert.
5437
5438 * sysdep.c (my_sys_siglist): New var.
5439 (sys_siglist): New macro. Remove old initialized vars of same name.
5440 (init_signals): Initialize sys_siglist.
5441
5442 * xfns.c (abort): Remove decl; stdlib.h now does this.
5443
0dcd5b54
DL
54441999-11-18 Dave Love <fx@gnu.org>
5445
946173ad
DL
5446 * filelock.c: Add forward declaration for get_boot_time_1.
5447
0dcd5b54
DL
5448 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5449
71447e8f
GM
54501999-11-18 Gerd Moellmann <gerd@gnu.org>
5451
5452 * buffer.h (struct buffer_text): Add comment about moving
5453 buffer text if REL_ALLOC is defined.
5454
eeedff63
KH
54551999-11-18 Kenichi Handa <handa@etl.go.jp>
5456
5457 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5458
5459 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5460 memory for push_key_description.
5461
5462 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5463 allocate memory for push_key_description.
5464 (describe_buffer_bindings): Likewise.
5465
5d7e4a2c
GM
54661999-11-17 Gerd Moellmann <gerd@gnu.org>
5467
5468 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5469 (Fx_hide_busy_cursor): Ditto.
5470
54711999-11-17 Marco Walther <walther@siemens-pyramid.com>
5472
5473 * unexsni.c (unexec): Handle .rel.dyn section.
5474
b5b41e02
DL
54751999-11-16 Dave Love <fx@gnu.org>
5476
5477 * doc.c (Fdocumentation): Remove gcpro here too.
5478
e35b6123
GM
54791999-11-16 Gerd Moellmann <gerd@gnu.org>
5480
5481 * keyboard.c (command_loop_1): Remove no_redisplay.
5482
83c8f461 54831999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5484
5485 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5486 in noninteractive.
5487
b05d3bee
GM
54881999-11-14 Gerd Moellmann <gerd@gnu.org>
5489
5bcfeb49
GM
5490 * xdisp.c (ensure_echo_area_buffers): New.
5491 (with_echo_area_buffer): Use it.
5492 (setup_echo_area_for_printing): Ditto.
5493
b05d3bee
GM
5494 * buffer.c (indicate-empty-lines): Doc-fix.
5495
9b2e6e4c
GM
54961999-11-12 Gerd Moellmann <gerd@gnu.org>
5497
e7f90eab
GM
5498 * term.c (term_init): If "op" isn't available, don't support color
5499 because we can't switch back to the default foreground and
5500 background.
5501
9b2e6e4c
GM
5502 * doc.c (Fdocumentation_property): Remove GCPRO because
5503 Fsubstitute_command_keys gcpro's the string.
5504
1bf21027
KH
55051999-11-12 Kenichi Handa <handa@etl.go.jp>
5506
5507 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5508
3bc6df53
GM
55091999-11-11 Gerd Moellmann <gerd@gnu.org>
5510
5511 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5512 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5513 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5514
35a5514b
GM
55151999-11-10 Gerd Moellmann <gerd@gnu.org>
5516
5517 * xfns.c (QCuser_data): Removed.
5518 (syms_of_xfns): Initialization of QCuser_data removed.
5519 (parse_image_spec): Don't handle :user-data specially. Allow
5520 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5521 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5522 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5523 parse_image_spec accordingly.
5524
83c8f461 55251999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5526
5527 * cmds.c (Fbeginning_of_line): Doc fix.
5528 (Fend_of_line): Doc fix.
5529
5530 * editfns.c (Fline_beginning_position): If N is not 1,
5531 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5532
5533 * syntax.c (Fforward_word): Handle fields even if would have hit
5534 an edge of the buffer. Return nil if affected by fields.
5535
83c8f461 55361999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5537
5538 * editfns.c (preceding_pos): Function deleted.
5539 (text_property_stickiness): Decrement POS directly.
5540 Fix a confusion that used PT instead of POS.
5541
5542 * editfns.c (find_field): Properly handle the case
5543 of a field boundary where `field' inherits from neither side.
5544
5545 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5546 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5547
fa9aabf6
GM
55481999-11-08 Gerd Moellmann <gerd@gnu.org>
5549
5550 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5551 BEFORE_POTENTIAL_GC before DISCARD.
5552
4015b3c0
GM
55531999-11-07 Gerd Moellmann <gerd@gnu.org>
5554
033a5fa3
GM
5555 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5556
5557 * lisp.h: Add prototype for unmark_byte_stack.
5558
5559 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5560 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5561 XUNMARK.
5562
55b064bd
GM
5563 * xdisp.c (resize_mini_window): Fix computation of needed
5564 mini-window height.
5565
5566 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5567 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5568
4015b3c0 5569 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5570 locally there. Rearrange case statements so that those most
4015b3c0
GM
5571 frequently executed come first. Avoid goto's in frequently
5572 executed cases.
5573
fe512f27
GM
55741999-11-05 Gerd Moellmann <gerd@gnu.org>
5575
dd59e217
GM
5576 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5577 AFTER_POTENTIAL_GC around internal_catch.
5578
bcf28080
GM
5579 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5580 relocate_byte_pcs.
5581 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5582
5583 * eval.c (struct catchtag): Add member byte_stack.
5584 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5585 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5586 catchtag.
5587 (unwind_to_catch): Restore byte_stack_list from catchtag.
5588
5589 * lisp.h: Add prototypes for new functions in bytecode.c.
5590 Add extern declaration for byte_stack_list.
5591
5592 * bytecode.c (struct byte_stack): New.
5593 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5594 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5595 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5596 (HANDLE_RELOCATION): Removed.
5597 (Fbyte_code): Use byte_stack structures.
5598
4d59c34c
GM
5599 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5600
fe512f27
GM
5601 * buffer.c (syms_of_buffer): Extend documentation of
5602 mode-line-format.
5603
60b64cd6
GM
56041999-11-04 Gerd Moellmann <gerd@gnu.org>
5605
5606 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5607
5608 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5609 Ferase_field instead of Fdelete_field.
5610
b51b619b
GM
56111999-11-03 Gerd Moellmann <gerd@gnu.org>
5612
5613 * dispnew.c (Finternal_show_cursor): Change it to set the
5614 cursor on/off, not toggle its state.
5615 (Finternal_show_cursor_p): New.
5616 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5617
5865af0d
DL
56181999-11-03 Dave Love <fx@gnu.org>
5619
5620 * charset.c (split_non_ascii_string): Define return value.
5621
82a700f3
GM
56221999-11-03 Gerd Moellmann <gerd@gnu.org>
5623
edfef199
GM
5624 * minibuf.c (string_to_object): New.
5625 (read_minibuf_noninteractive): New.
5626 (read_minibuf): Call read_minibuf_noninteractive if
5627 noninteractive. Use string_to_object.
5628
82a700f3
GM
5629 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5630
b5540f0d
DL
56311999-11-02 Dave Love <fx@gnu.org>
5632
e69dcd60
DL
5633 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5634
827a1788
DL
5635 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5636 declared with glibc2.
b5540f0d 5637
a69a6e61
GM
56381999-11-02 Gerd Moellmann <gerd@gnu.org>
5639
5640 * lisp.h (QUIT): Give it statement form.
5641
87e21fbd
DL
56421999-11-02 Dave Love <fx@gnu.org>
5643
5644 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5645
1b335865
GM
56461999-11-02 Gerd Moellmann <gerd@gnu.org>
5647
9fb5e03d
GM
5648 * xfns.c (QCuser_data): New.
5649 (syms_of_xfns): Initialize QCuser_data.
5650 (parse_image_spec): Ignore :user-data DATA properties.
5651
1b335865
GM
5652 * xdisp.c (display_line): Set charpos of first glyph in blank
5653 lines not corresponding to any text to -1, even if no glyphs are
5654 filled in in that line.
5655
e76f1c44
GM
56561999-11-01 Gerd Moellmann <gerd@gnu.org>
5657
427ec082 5658 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5659 png_get_sRGB in #ifdef.
5660
111259b4
GM
5661 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5662 (syms_of_display): Use the new name.
5663
dd5c96e8
GM
5664 * textprop.c (verify_interval_modification): Signal text-read-only
5665 instead of calling error.
5666
db8878fb
GM
5667 * data.c (Qtext_read_only): New built-in error.
5668 (syms_of_data): Initialize it.
5669
5670 * lisp.h: Add extern declaration for Qtext_read_only.
5671
e76f1c44
GM
5672 * syntax.c: Remove whitespace after open or in front of closing
5673 parentheses.
5674
83c8f461 56751999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5676
5677 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5678
7843e09c
GM
56791999-10-31 Gerd Moellmann <gerd@gnu.org>
5680
575ed805
GM
5681 * xdisp.c (resize_mini_window): Compute needed height differently.
5682
7843e09c
GM
5683 * fns.c (Flength): Unroll loop over lists.
5684
5685 * xdisp.c (append_space): Return non-zero if space was appended.
5686 (display_line): Set charpos of first glyph to -1 only if that
5687 glyph is the space added by append_glyph.
5688
83c8f461 56891999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5690
5691 * print.c (strout): Consider `noninteractive' and use stdout
5692 only when PRINTCHARFUN is t.
5693
5694 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5695 (gcpro_level): Declare it extern.
5696 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5697 Alternate definitions that set `level' and increment `gcpro_level'.
5698 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5699
5700 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5701 (init_eval) [DEBUG_GCPRO]: Initialize it.
5702 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5703 from remaining gcprolist.
5704
3636f7a3
KH
57051999-10-29 Kenichi Handa <handa@etl.go.jp>
5706
5707 * coding.c (code_convert_region): Update `dst' correctly.
5708
a2ad7096
GM
57091999-10-28 Gerd Moellmann <gerd@gnu.org>
5710
5711 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5712 (Frassoc): Rewritten.
5713
1e3196e8
GM
57141999-10-27 Noah Friedman <friedman@splode.com>
5715
5716 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5717 Define PTY_NAME_SPRINTF.
5718 Redefine PTY_TTY_NAME_SPRINTF.
5719 * config.in: Add undef for HAVE_DEV_PTMX.
5720
83c8f461 57211999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5722
5723 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5724 as arg to DEBUG_POP and DEBUG_PRINT.
5725
83c8f461 57261999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5727
5728 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5729 (Ffset): Call Qad_activate_internal.
5730 (syms_of_data): Initialize Qad_activate_internal.
5731
26922151
GM
57321999-10-27 Gerd Moellmann <gerd@gnu.org>
5733
5734 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5735 Vterminal_frame is selected and Vwindow_system is non-nil.
5736
67a5596f
GM
57371999-10-26 Gerd Moellmann <gerd@gnu.org>
5738
2bea706b
GM
5739 * xdisp.c (echo_area_display): Put previous change in #if 0.
5740
67a5596f
GM
5741 * emacs.c (standard_args): Add `file' as synonym for `visit',
5742 `execute' as synonym for `eval'.
5743 (main): Add new options to usage message.
5744
81dc5de5
GM
57451999-10-25 Gerd Moellmann <gerd@gnu.org>
5746
5747 * data.c (Qhash_table): New.
5748 (Ftype_of): Return it for hash tables.
5749 (syms_of_data): Initialize Qhash_table.
5750
83c8f461 57511999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5752
5753 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5754
66e4690f 57551999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5756
7539e11f
KR
5757 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5758 lisp.h.
5759
5760 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5761 Fbuffer_local_variables, Fother_buffer, record_buffer,
5762 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5763 swap_out_buffer_local_variables, overlays_at, overlays_in,
5764 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5765 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5766 Foverlay_put, report_overlay_modification, evaporate_overlays):
5767 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5768 references.
5769 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5770 swap_in_symval_forwarding, set_internal, default_value,
5771 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5772 Fmake_variable_frame_local, Flocal_variable_p,
5773 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5774 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5775 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5776 * emacs.c (main): Likewise.
5777 * fontset.c (fs_load_font, fs_register_fontset,
5778 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5779 Fnew_fontset, Fset_fontset_font): Likewise.
5780 * frame.c (do_switch_frame, next_frame, prev_frame,
5781 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5782 Likewise.
5783 * keyboard.c (read_char, help_char_p, event_to_kboard,
5784 kbd_buffer_get_event, timer_start_idle, timer_check,
5785 make_lispy_event, apply_modifiers, reorder_modifiers,
5786 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5787 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5788 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5789 Fcommand_execute, Fexecute_extended_command): Likewise.
5790 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5791 Fall_completions): Likewise.
5792 * window.c (Fset_window_margins): Likewise.
5793
5794 * callint.c (quotify_args): Don't explicitly use struct
5795 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5796
3a7093d8
KR
5797 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5798 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5799 if __ELF__ is defined.
5800
2a3d7146
GM
58011999-10-24 Gerd Moellmann <gerd@gnu.org>
5802
5803 * window.c (Fnext_window): Add a QUIT in the loop.
5804
8ac52782
GM
58051999-10-23 Gerd Moellmann <gerd@gnu.org>
5806
427ec082 5807 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5808 New targets.
5809
05f0d15a
DL
58101999-10-22 Dave Love <fx@gnu.org>
5811
5812 * emacs.c (main): Enable profiling conditional on __linux also.
5813
882fb0e6
GM
58141999-10-20 Gerd Moellmann <gerd@gnu.org>
5815
5816 * xrdb.c (x_load_resources): Set default resources for resource
5817 classes instead of for the specific Emacs.
5818
b5f5bc31
GM
58191999-10-19 Gerd Moellmann <gerd@gnu.org>
5820
66f4dd69
GM
5821 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5822 defines it that way.
427ec082 5823
b5f5bc31
GM
5824 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5825 if selected_frame is equal to Vterminal_frame.
5826
68c45bf0 58271999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5828
68c45bf0 5829 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5830
68c45bf0
PE
5831 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5832 when dumping, so that the dumped Emacs doesn't have stray locale info.
5833 (dired.o): Depend on systime.h.
5834 (editfns.o): Depend on coding.h.
5835
5836 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5837 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5838 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5839 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5840 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5841 Include <config.h> before any system include files.
5842
5843 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5844 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5845 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5846 xmenu.c, xterm.c:
5847 Do not include <stdlib.h>, as <config.h> does this now.
5848
5849 * callproc.c (Fcall_process):
5850 Synchronize messages locale before invoking strerror.
5851 Decode resulting string with locale-coding-system.
5852
5853 * coding.c (Vlocale_coding_system): New var.
5854 (syms_of_coding): Adjust to above change.
5855 (emacs_strerror): New function.
5856
5857 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5858
68c45bf0
PE
5859 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5860 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5861 HAVE_STRSIGNAL): New macros.
5862 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5863 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5864
5865 * dired.c: Include "systime.h".
5866 (Ffile_attributes): Do not cast s.st_size to int; this loses
5867 information if int is 32 bits but st_size and EMACS_INT are larger.
5868 Treat large device numbers like large inode numbers.
5869
5870 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5871
5872 * editfns.c: Include coding.h.
5873 (emacs_strftime): Remove decl.
5874 (emacs_strftimeu): New decl.
5875 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5876 Use emacs_strftimeu instead of emacs_strftime.
5877 (Fformat_time_string): Convert format string using
5878 Vlocale_coding_system, and convert result back. Synchronize time
5879 locale before invoking lower level function. Invoke
5880 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5881
68c45bf0
PE
5882 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5883 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5884 Vprevious_time_locale): New variables.
5885 (main): Invoke setlocale early, so that initial error messages are
5886 localized properly. But skip locale-setting if LC_ALL is "C".
5887 Fix up locale when it's safe to do so.
5888 (fixup_locale): Moved here from xterm.c.
5889 (synchronize_locale, synchronize_time_locale,
5890 synchronize_messages_locale): New functions.
5891 (syms_of_emacs): Accommodate above changes.
5892
5893 * fileio.c (report_file_error): Convert strerror output according
5894 to Vlocale_coding_system.
5895 (Finsert_file_contents): Check for arithmetic overflow in
5896 computations that depend on file size. Report IO errors
5897 with emacs_strerror, not strerror.
5898
5899 * fns.c (Fgethash): Declare dflt parameter.
5900
5901 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5902 is defined; that's config.h's job.
5903
5904 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5905 default these values to long, BITS_PER_LONG, and unsigned long.
5906 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5907 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5908 (code_convert_string_norecord, fixup_locale,
5909 synchronize_messages_locale, synchronize_time_locale,
5910 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5911 All Emacs callers of open, close, read, write changed to use
5912 emacs_open, emacs_close, emacs_read, emacs_write.
5913
5914 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5915 changed to file_tell.
5916 (saved_doc_string_position, prev_saved_doc_string_position): Now
5917 of type file_offset.
5918 (init_lread): Do not fix locale here; fixup_locale now does this.
5919
5920 * m/amdahl.h, s/usg5-4.h:
5921 (NSIG): Remove.
5922 (NSIG_MINIMUM): New macro.
5923
5924 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5925 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5926 s/umips.h, s/usg5-4.h:
5927 (SIGIO): Do not undef.
5928 (BROKEN_SIGIO): New macro.
5929
5930 * m/ustation.h:
5931 (SIGTSTP): Do not undef.
5932 (BROKEN_SIGTSTP): New macro.
5933
5934 * s/gnu-linux.h:
5935 (SIGPOLL, SIGURG): Do not undef.
5936 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5937
5938 * s/ptx4.h:
5939 (SIGINFO): Do not undef.
5940 (BROKEN_SIGINFO): New macros.
427ec082 5941
68c45bf0
PE
5942 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5943
5944 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5945 some Emacs-related changes merged.
5946
5947 * print.c (float_to_string): Prepend "-" to representation of a
5948 NaN if the NaN is negative.
5949
5950 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5951 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 5952
68c45bf0
PE
5953 * process.c (status_message, sigchld_handler): Synchronize locale,
5954 then use strsignal istead of sys_siglist.
5955 * w32proc.c (sys_wait): Likewise.
427ec082 5956
68c45bf0
PE
5957 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5958 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5959 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5960 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5961 (open, close, read, write, INTERRUPTIBLE_OPEN,
5962 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5963
5964 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5965
5966 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5967 sys_open, open): Remove.
5968 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5969 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5970 macros are no longer used.
5971 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5972 (emacs_close): Renamed from sys_close.
5973 (emacs_read): Renamed from sys_read.
5974 (emacs_write): Renamed from sys_write.
5975 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5976 (dup2): Do not print error on failure; the real dup2 doesn't.
5977 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5978
5979 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5980 is defined.
5981 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5982 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5983 (strsignal): Declare if !HAVE_STRSIGNAL.
5984
5985 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5986 (ElfW): Define in terms of ElfExpandBitsW.
5987
5988 * w32proc.c (sys_siglist): Remove decl.
5989
5990 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5991 with ANSI C.
5992 (display_string): Declare face_string_pos arg.
5993
5994 * xfns.c (Fx_show_tip): Declare timeout param.
5995
5996 * xterm.c: No need to include locale.h.
5997 (x_alloc_lighter_color, x_setup_relief_color):
5998 Pass arg as double, not float, for compatibility with ANSI C.
5999 (fixup_locale): Move to emacs.c.
6000 (x_term_init): Do not setlocale or fixup locale; the main program
6001 does this now.
6002
2f0b74ea
DL
60031999-10-18 Dave Love <fx@gnu.org>
6004
6005 * doc.c (Fdocumentation_property): Gcpro `tem'.
6006
471aa4a0
KH
60071999-10-18 Kenichi Handa <handa@etl.go.jp>
6008
6009 * lread.c (Fload): Calculate bytes of filename correctly.
6010 (openp): Likewise.
6011
aca2020b
KH
60121999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6013
6014 * print.c (print_preprocess): In case print-circle is nil,
6015 add OBJ to Vprint_number_table only when OBJ is a symbol.
6016
1f5fe392 60171999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6018
6019 * coding.c (code_convert_string): Add record_unwind_protect to
6020 assure setting inhibit_pre_post_conversion back to zero. Take
6021 care of the multibyteness of the working buffer.
6022
6023 * coding.c (inhibit_pre_post_conversion): New variable.
6024 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6025 ignore post-read-conversion and pre-write-conversion property of
6026 the coding system.
6027 (code_convert_region_unwind): New function.
6028 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6029 running pre-write-conversion and post-read-conversion.
6030 (code_convert_string): Likewise.
6031
cd876a91
GM
60321999-10-17 Miles Bader <miles@gnu.org>
6033
6034 * editfns.c: Doc fix.
6035
60361999-10-17 Miles Bader <miles@gnu.org>
6037
6038 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6039 argument preconditions of find_before_next_newline in the case
6040 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6041 was indeed at the edge.
6042
60431999-10-17 Miles Bader <miles@gnu.org>
6044
6045 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6046 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6047
6048 * editfns.c (text_property_eq, text_property_stickiness): Don't
6049 use initializers for auto variables of type Lisp_Object.
6050 (find_field): Likewise. Use braces around nested ifs.
6051 (Fline_end_position): Store the raw eol in a variable, so that the
6052 final expression doesn't look so ugly.
6053 (Fconstrain_to_field): Doc fix.
6054 (preceding_pos): Renamed from `preceeding_pos'.
6055 (text_property_stickiness, find_field): Call preceding_pos,
6056 not preceeding_pos.
6057
60581999-10-17 Miles Bader <miles@gnu.org>
6059
6060 * editfns.c (Ffield_string_no_properties): New function.
6061 (text_property_stickiness, preceeding_pos): New functions.
6062 (Ffield_string): Remove PROPS parameter.
6063 (find_field): Add MERGE_AT_BOUNDARY parameter.
6064 Rewrite to use stickiness of `field' property to resolve
6065 ambiguous cases.
6066 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6067 (Fconstrain_to_field): Likewise.
6068 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6069 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6070 Supply new MERGE_AT_BOUNDARY argument to find_field.
6071 (Fline_beginning_position, Fline_end_position): Supply new
6072 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6073 Pass a value of Qt for the ONLY_IN_LINE argument to
6074 Fconstrain_to_field (only matters if N != 1).
6075 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6076 to Fconstrain_to_field.
6077
6078 * minibuf.c (Fminibuffer_complete_word): Use
6079 Ffield_beginning to find the prompt end.
6080
60811999-10-17 Miles Bader <miles@gnu.org>
6082
6083 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6084 behavior when NEW_POS is nil.
6085 (find_field): Use XSETFASTINT instead of make_number.
6086 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6087 input string by seeing where the field begins, instead of
6088 looking at text-properties.
6089
60901999-10-17 Miles Bader <miles@gnu.org>
6091
6092 * editfns.c (Qfield): New variable.
6093 (find_field, Ferase_field, Ffield_string,
6094 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6095 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6096 (make_buffer_string_both): Remove minibuffer-prompt hack.
6097 (syms_of_editfns): Initialize Qfield, and subr entries for
6098 field functions above.
6099 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6100 minibuf_save_list.
6101 Don't initialize minibuffer prompt length.
6102 Wrap prompt text-properties around the entire prompt.
6103 Add 'prompt text-property to prompt.
6104 Get final value with Ffield_string instead of make_buffer_string.
6105 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6106 minibuf_save_list.
6107 (do_completion): Get minibuffer input with Ffield_string
6108 instead of Fbuffer_string.
6109 Erase minibuffer input with Ferase_field instead of erase_buffer.
6110 (Fminibuffer_complete_and_exit): Likewise.
6111 Test whether buffer is empty by looking for the 'prompt text
6112 property at the end.
6113 Set prompt length by looking for the end of the prompt text property,
6114 and save prompt length for later use (since there is no longer a
6115 buffer variable to get it from).
6116 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6117 (syms_of_minibuf): Remove initializations of
6118 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6119 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6120 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6121 Don't initialize prompt_end_charpos field.
6122 * syntax.c (Fforward_word): Likewise.
6123 Constrain to any field.
6124
3f6f7508
GM
61251999-10-16 Gerd Moellmann <gerd@gnu.org>
6126
6127 * window.c (enum save_restore_action): New.
6128 (save_restore_orig_size): Change parameter list. Add
6129 functionality to check for valid orig_top and orig_height members
6130 in a window tree.
6131 (grow_mini_window): Call save_restore_orig_size with new parameter
6132 list.
6133 (shrink_mini_window): Restore old window sizes only if old
6134 size information is valid in all windows in a window tree.
427ec082 6135
06482119
GM
61361999-10-15 Gerd Moellmann <gerd@gnu.org>
6137
2710454d
GM
6138 * xmenu.c (set_frame_menubar): Don't call
6139 x_set_menu_resources_from_menu_face here.
6140 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6141
06482119
GM
6142 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6143
17fa2837
DL
61441999-10-14 Dave Love <fx@gnu.org>
6145
6146 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6147
45f93416
GM
61481999-10-14 Gerd Moellmann <gerd@gnu.org>
6149
6150 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6151 fails and h_errno is TRY_AGAIN.
6152
c765b723
DL
61531999-10-13 Dave Love <fx@gnu.org>
6154
6155 * filelock.c (lock_file): Move gcpro of `fn'.
6156
dace7f4e
GM
61571999-10-10 Gerd Moellmann <gerd@gnu.org>
6158
6159 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6160
83c8f461 61611999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6162
6163 * print.c (print): When removing objects from Vprint_number_table,
6164 only scan the newly added objects.
6165 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6166 unconditionally force it to stay in the table.
6167
85177c86
GM
61681999-10-09 Gerd Moellmann <gerd@gnu.org>
6169
6170 * xfns.c (prepare_image_for_display): Don't try to load image if
6171 loading it failed before.
6172 (lookup_image, prepare_image_for_display): Remember if loading the
6173 image failed.
6174 (xpm_load): Add missing UNBLOCK_INPUT.
6175
6176 * dispextern.h (struct image): New member load_failed_p.
6177
11e4de5d
SM
61781999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6179
f28eba7b 6180 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6181 in the docstring.
6182
f1da8f06
GM
61831999-10-08 Gerd Moellmann <gerd@gnu.org>
6184
6185 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6186 Don't call XSetInputFocus because that can generate additional
6187 FocusIn events.
427ec082 6188
c37bbd4f
GM
61891999-10-07 Jeffrey C Honig <jch@bsdi.com>
6190
6191 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6192
83c8f461 61931999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6194
6195 * process.c (wait_reading_process_input): When trying to suck
6196 input from one process, for accept-process-output,
6197 exit that loop if we get EAGAIN or EWOULDBLOCK.
6198
577d9e2f
GM
61991999-10-07 Gerd Moellmann <gerd@gnu.org>
6200
6201 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6202 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6203 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6204 Fpixmap_spec_p and Qpixmap_spec_p.
6205 (load_face_colors, check_lface_attrs,
6206 merge_face_vector_with_property,
6207 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6208 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6209 Fbitmap_spec_p.
6210
f5737ad2
GM
62111999-10-07 Gerd Moellmann <gerd@gnu.org>
6212
6213 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6214 MODE_LINE_FACE_ID.
6215
6216 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6217 (struct x_resources) [USE_X_TOOLKIT]: New.
6218 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6219 [USE_MOTIF]: New.
6220 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6221 [USE_LUCID]: New.
6222 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6223 (Qmenu): New.
6224 (syms_of_xfaces): Initialize Qmenu.
6225 (realize_basic_faces): Realize face `menu'.
6226 (resolve_face_name): New.
6227 (lface_from_face_name): Use it.
6228 (Finternal_set_lisp_face_attribute): Ditto.
6229 (Fpixmap_spec_p): Rewritten. Extend doc string.
6230
6231 * xmenu.c (set_frame_menubar, xmenu_show): Call
6232 x_set_menu_resources_from_menu_face.
6233
6234 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6235 (toplevel): Include X11/Intrinsic.h.
6236
6a1aa823
DL
62371999-10-03 Ken'ichi Handa <handa@gnu.org>
6238
6239 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6240 correctly.
6241
26901792
DL
62421999-09-30 Kenichi Handa <handa@etl.go.jp>
6243
6244 * category.c (modify_lower_category_set): Set default value of
6245 TABLE correctly.
6246
6247 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6248 size correctly.
6249
62501999-09-29 Gerd Moellmann <gerd@gnu.org>
6251
6252 * editfns.c (Fpropertize): Renamed from Fproperties.
6253
62541999-09-29 Gerd Moellmann <gerd@gnu.org>
6255
6256 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6257 frame that hasn't been initialized yet.
6258
83c8f461 62591999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6260
6261 * keymap.c (Fsingle_key_description): Make tem big enough.
6262 (describe_buffer_bindings): Make buf big enough.
6263
83c8f461 62641999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6265
6266 * intervals.c (get_local_map): Use indirect_function,
6267 not Findirect_function.
6268
26901792
DL
62691999-09-27 Dave Love <fx@gnu.org>
6270
6271 * cm.h: Remove unneeded declaration of ospeed.
6272
62731999-09-26 Gerd Moellmann <gerd@gnu.org>
6274
6275 * lisp.h (toplevel): Add prototype for
6276 next_single_char_property_change.
6277
6278 * textprop.c (next_single_char_property_change): New.
6279
6280 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6281 next_single_char_property_change.
6282
62831999-09-25 Gerd Moellmann <gerd@gnu.org>
6284
6285 * editfns.c (Fproperties): New.
6286 (syms_of_editfns): Defsubr it.
6287
6288 * xfns.c (lookup_image): Set image's timestamp because it's
6289 used when we look it up.
6290
62911999-09-23 Gerd Moellmann <gerd@gnu.org>
6292
6293 * window.c (enlarge_window): Add window parameter instead of using
6294 selected_window.
6295 (Fdisplay_buffer): Call it with window parameter instead of
6296 setting selected_window.
6297 (Fenlarge_window, Fshrink_window): Ditto.
6298 (shrink_mini_window): If there is no recorded height and position
6299 info, resize mini-window to height 1.
6300
6301 * xfns.c (image_error): Use add_to_log.
6302
6303 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6304 (load_face_font_or_fontset, load_color,
6305 merge_face_vector_with_property): Ditto.
6306
6307 * dispextern.h: Add prototype for add_to_log.
6308
6309 * xfaces.c (add_to_log): Move to xdisp.c.
6310
6311 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6312 parameter.
6313
63141999-09-23 Gerd Moellmann <gerd@gnu.org>
6315
6316 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6317 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6318
6319 * xdisp.c (resize_mini_window): Use grow_mini_window and
6320 shrink_mini_window.
6321
6322 * window.c (window_min_size): Add parameter ignore_fixed_p.
6323 (change_window_height): Call window_min_size with new parameter.
6324 (shrink_window_lowest_first, save_restore_orig_size,
6325 grow_mini_window, shrink_mini_window): New.
6326 (make_window, replace_window): Initialize orig_top and
6327 orig_height.
6328 (enlarge_window): Renamed from change_window_height. Make it
6329 static.
6330 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6331 enlarge_window instead of change_window_height.
6332
6333 * window.h (struct window): New members orig_top, orig_height.
6334 (toplevel): Add prototypes for grow_mini_window and
6335 shrink_mini_window. Remove prototype for change_window_height.
6336
63371999-09-21 Eli Zaretskii <eliz@gnu.org>
6338
6339 * frame.c (frame_name_fnn_p): Fix previous change.
6340
63411999-09-20 Gerd Moellmann <gerd@gnu.org>
6342
6343 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6344
6345 * dispnew.c (direct_output_for_insert): Cast arguments to
6346 safe_bcopy to char *.
6347
6348 * lread.c (readchar): Remove unused variables.
6349 (read_filtered_event, read1, Fmapatoms): Ditto.
6350 (toplevel): Include intervals.h.
6351
6352 * eval.c (Fsignal): Remove unused variables.
6353 (Fcommandp, do_autoload): Ditto.
6354
6355 * lisp.h: Add prototype for safe_bcopy, fatal.
6356
6357 * editfns.c (init_editfns): Remove unused variables.
6358 (Fgoto_char, Fchar_after, Fformat): Ditto.
6359 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6360
6361 * data.c (find_symbol_value): Remove unused variables.
6362 (Faref, Fstring_to_number): Ditto.
6363 (toplevel): Include stdio.h.
6364 (Fnumber_to_string): Cast XINT to long for %ld.
6365
6366 * casefiddle.c (casify_object): Remove unused variables.
6367 (casify_region): Ditto.
6368
427ec082 6369 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6370 conditinally compiled section in #ifdef.
6371 (toplevel): Include stdio.h.
6372
6373 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6374 keys_of_keymap, syms_of_keymap): Remove unused variables.
6375
63761999-09-20 Gerd Moellmann <gerd@gnu.org>
6377
6378 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6379 whose corresponding window rows have been disabled in
6380 try_window_id.
6381
63821999-09-20 Gerd Moellmann <gerd@gnu.org>
6383
6384 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6385 that window start is out of range.
6386 (handle_display_prop, handle_single_display_prop): Replace
6387 marginal area specifications like `left-margin' with `(margin
6388 left-margin)'.
6389 (Qmargin): New.
6390 (syms_of_xdisp): Initialize Qmargin.
6391
63921999-09-19 Gerd Moellmann <gerd@gnu.org>
6393
6394 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6395 describe_syntax, skip_chars): Remove unused variables.
6396 (back_comment, forw_comment): Add braces to if-statement with
6397 if-else as dependent statement.
6398
6399 * process.c (list_processes_1): Remove unused variables.
6400 (Fopen_network_stream, create_process): Add parentheses to
6401 conditional expressions.
6402 (create_process): Put declaration of sigchld in #if 0.
6403 (Fopen_network_stream): Removed unused variables.
6404 (Fopen_network_stream, wait_reading_process_input,
6405 wait_reading_process_input, send_process, send_process): Ditto.
6406 (toplevel): Add prototypes for set_waiting_for_input and
6407 keyboard_bit_set.
6408
6409 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6410
6411 * textprop.c (Fset_text_properties): Remove unused variables.
6412 (text_property_list, verify_interval_modification,
6413 interval_has_all_properties): Ditto.
6414
6415 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6416 (Fcall_process): Remove unused variable.
6417
6418 * keyboard.c (Frecursive_edit): Remove unused variable.
6419 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6420 timer_check, make_lispy_event, menu_bar_items,
6421 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6422 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6423 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6424 read_key_sequence): Ditto. Fread_key_sequence,
6425 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6426 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6427 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6428 (Fexecute_extended_command): Cast XINT to long for %ld.
6429 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6430 (toplevel): Include sys/types.h.
6431
6432 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6433 (toplevel): Add prototypes for stuff_char, and
6434 code_convert_string_norecord.
6435
64361999-09-19 Gerd Moellmann <gerd@gnu.org>
6437
6438 * buffer.h: Add prototype for r_re_alloc.
6439
6440 * insdel.c (copy_text): Removed unused variables.
6441 (count_combining_after, count_combining_after, insert_1_both,
6442 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6443 (adjust_after_replace, replace_range): Add parentheses to logical
6444 expressions. Remove unused variables.
6445 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6446 expression.
6447
6448 * alloc.c (Fgarbage_collect): Remove unused variable.
6449 (compact_strings): Add parentheses around assignments in
6450 conditional context.
6451 (toplevel): Put declaration of unused function clear_marks
6452 in #if 0 like its definition.
6453
6454 * lisp.h: Add prototype for shrink_regexp_cache,
6455 sweep_weak_hash_tables.
6456
64571999-09-19 Dave Love <fx@gnu.org>
6458
6459 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6460
6461 * doc.c (read_bytecode_char): Declare arg.
6462
6463 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6464 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6465
64661999-09-18 Richard Stallman <rms@gnu.org>
6467
6468 * xdisp.c (echo_area_display): Turn off code that returned
6469 without doing anything when using a terminal frame.
6470
83c8f461 64711999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6472
6473 * unexelf.c (unexec): Don't get confused by a short section
6474 just before the bss section.
6475
26901792
DL
64761999-09-16 Gerd Moellmann <gerd@gnu.org>
6477
6478 * emacs.c (main): Remove unused variables.
6479 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6480
6481 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6482 init_fileio_once, syms_of_sound, init_xfns, init_fns
6483 init_sound, check_message_stack.
6484
6485 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6486
6487 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6488 ambiguous else warning.
6489 (split_interval_left): Remove unused variables.
6490 (previous_interval, adjust_intervals_for_deletion,
6491 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6492 (icount, idepth, zero_length): Move into #if 0 section below
6493 original position where these are used.
6494
6495 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6496
6497 * buffer.c (Fkill_buffer): Remove unused variables.
6498 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6499 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6500 init_buffer_once, (syms_of_buffer): Ditto.
6501
6502 * xrdb.c (get_fallback): Remove unused variable.
6503 (x_load_resources): Ditto. Put local variable used for Motif only
6504 in #ifdef USE_MOTIF.
6505
65061999-09-16 Gerd Moellmann <gerd@gnu.org>
6507
6508 * minibuf.c (read_minibuf): Remove unused variables.
6509 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6510 (do_completion): Move assignment out of conditional context.
6511 (Fdisplay_completion_list): Add parentheses to conditional expression.
6512
6513 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6514
6515 * lisp.h: Add prototype for no_switch_window.
6516
6517 * window.c (Fset_window_buffer): Remove unused variables.
6518 (Fset_window_margins): Ditto.
6519
6520 * xdisp.c (resize_mini_window): Temporarily set the selected
6521 window's or Vminibuf_scroll_window's height to "fixed" around
6522 the call the change_window_height.
6523
6524 * window.c (window_fixed_size_p): Check window's height_fixed_p
6525 flag.
6526
6527 * window.h (struct window): New member height_fixed_p.
6528
6529 * dispnew.c (direct_output_forward_char): Don't use this method
6530 if showing a message or a message was just cleared because we
6531 might need to resize the mini-window.
6532
65331999-09-16 Gerd Moellmann <gerd@gnu.org>
6534
6535 * frame.c (Fdelete_frame): Correct local variable pointing to
6536 selected frame after selecting new frame.
6537
65381999-09-15 Richard Stallman <rms@gnu.org>
6539
6540 * puresize.h (BASE_PURESIZE): Increase to 525000.
6541
6542 * filelock.c (Vtemporary_file_directory): New variable.
6543 (syms_of_filelock): Set up Lisp variable.
6544
65451999-09-15 Gerd Moellmann <gerd@gnu.org>
6546
6547 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6548 (encode_terminal_code): Remove unused variables.
6549 (turn_off_face): Ditto.
6550 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6551
6552 * dispnew.c (update_frame_line): If writing whole desired line,
6553 don't clear to end of line if already at the end.
6554
65551999-09-15 Gerd Moellmann <gerd@gnu.org>
6556
6557 * xdisp.c (resize_mini_window): Don't report changed window
6558 height if it actually hasn't changed.
6559
427ec082 6560 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6561 unused variables.
6562 (mark_shell_size_user_specified): Put in #if 0 because not used.
6563 (create_frame_gcs): Put in #if 0 because currently unused.
6564 (first_frame_p): Ditto.
6565
6566 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6567 single_submenu, update_frame_menubar, set_frame_menubar,
6568 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6569 variables.
6570
6571 * print.c (PRINTFULLP): Removed because it is no longer used and
6572 is misleading.
6573 (Ferror_message_string): Remove unused variables.
6574 (print_object): Cast argument of sprintf to long for `%ld'
6575 specifier. Remove unused variable.
6576
65771999-09-14 Gerd Moellmann <gerd@gnu.org>
6578
6579 * sound.c (Fplay_sound): Remove usused variables.
6580 (be2hs): Put in #if 0 because it's currently not used.
6581
65821999-09-14 Ken Raeburn <raeburn@gnu.org>
6583
6584 * print.c (Ferror_message_string, print_error_message,
6585 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6586 member access.
6587
65881999-09-14 Gerd Moellmann <gerd@gnu.org>
6589
6590 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6591
6592 * frame.c (Fnext_frame): Remove unused variable(s).
6593 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6594 (store_frame_param): Add parentheses to conditional expression.
6595 (Fmodify_frame_parameters): Remove unused variables.
6596 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6597 Ditto.
6598
6599 * xfns.c (x_set_background_color): Remove unused variable(s).
6600 (x_set_border_pixel): Ditto.
6601 (x_set_menu_bar_lines): Put local variable used only for
6602 non-toolkit case in #ifdef/#endif.
6603 (x_figure_window_size): Remove unused variable(s).
427ec082 6604 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6605 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6606 png_load, jpeg_load, gif_load, x_create_tip_frame,
6607 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6608
6609 * xterm.c (x_scroll_bar_handle_click): Compile only if
6610 not USE_TOOLKIT_SCROLL_BARS.
6611 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6612
6613 * dispextern.h: Add prototypes for gamma_correct and
6614 x_kill_gs_process.
6615
6616 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6617 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6618 x_set_toolkit_scroll_bar_thumb): Ditto.
6619 (x_scroll_bar_create): Move local variable to the
6620 conditionally compiled section of code where it is used.
6621 (x_scroll_bar_create): Remove unused variable(s).
6622 (x_scroll_bar_remove, XTread_socket): Ditto.
6623 (XTread_socket) <ConfigureNotify>: Move variables used for
6624 non-toolkit case into conditionally compiled section of code.
6625
6626 * window.h (freeze_window_starts): Fix typo in prototype.
6627
6628 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6629 variable(s).
6630
6631 * lisp.h: Add prototype for debug_print.
6632
6633 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6634 to use do-while.
6635
6636 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6637 (Fchar_table_range, Fset_char_table_default, mapcar1,
6638 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6639
6640 * lisp.h: Add prototype for getloadavg.
6641
66421999-09-14 Andreas Schwab <schwab@gnu.org>
6643
6644 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6645
6646 * lisp.h: Declare close_file_unwind.
6647
66481999-09-14 Richard Stallman <rms@gnu.org>
6649
6650 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6651
66521999-09-13 Gerd Moellmann <gerd@gnu.org>
6653
6654 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6655 is always set correctly.
6656
66571999-09-13 Dave Love <fx@gnu.org>
6658
6659 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6660 declaration.
6661
66621999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6663
6664 * xdisp.c (QCfile): Move here from xfns.c.
6665 (syms_of_xdisp): Initialize it.
6666 (message2_nolog): Change for Lisp_Object selected_frame.
6667 (message3_nolog, message_with_string, message,
6668 setup_echo_area_for_printing, truncate_echo_area,
6669 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6670
66711999-09-13 Dave Love <fx@gnu.org>
6672
6673 * xterm.c: Don't continue #define args for benefit of old cc.
6674 (xt_action_hook): Indent #error for benefit of K&R cc.
6675
66761999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6677
6678 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6679 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6680 (XRINGBELL): Removed.
6681
66821999-09-13 Dave Love <fx@gnu.org>
6683
6684 * xfns.c (x_put_x_image): Make type consistent with declaration.
6685
6686 * fns.c (Fmake_hash_table): Fix string continuation.
6687
66881999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6689
6690 * xfns.c (QCfile): Moved to xdisp.c.
6691 (syms_of_xfns): Don't initialize QCfile.
6692 (check_x_frame): Change for Lisp_Object selected_frame.
6693 (check_x_display_info, x_get_resource_string): Ditto.
6694
66951999-09-13 Gerd Moellmann <gerd@gnu.org>
6696
6697 * minibuf.c (choose_minibuf_frame): Don't try to set the
6698 mini-buffer window's buffer, if the buffer is invalid.
6699
6700 * xfns.c (QCfile): Moved to xdisp.c.
6701 (syms_of_xfns): Don't initialize QCfile.
6702
6703 * xdisp.c (QCfile): Move here from xfns.c.
6704 (syms_of_xdisp): Initialize it.
6705
6706 * lisp.h (selected_frame): Add external declaration.
6707
6708 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6709 (Fx_store_cut_buffer_internal): Ditto.
6710 (Fx_rotate_cut_buffers_internal): Ditto.
6711
6712 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6713 selected_frame.
6714 (Finternal_set_lisp_face_attribute): Ditto.
6715 (Finternal_get_lisp_face_attribute): Ditto.
6716 (Finternal_lisp_face_empty_p): Ditto.
6717 (Fdump_face): Ditto.
6718
6719 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6720 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6721 set_terminal_window, set_scroll_region, reassert_line_highlight,
6722 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6723 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6724 encode_terminal_code, write_glyphs, term_init): Ditto.
6725
6726 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6727 (kbd_input_ast, read_input_waiting): Ditto.
6728
6729 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6730 selected_frame.
6731 (read_minibuf): Ditto.
6732
6733 * keyboard.c (command_loop_1): Change for Lisp_Object
6734 selected_frame.
6735 (cmd_error_internal, command_loop_1, read_char,
6736 kbd_buffer_get_event, read_avail_input,
6737 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6738 interrupt_signal, quit_throw_to_read_char): Ditto.
6739
6740 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6741 (Ffontset_info): DItto.
6742
6743 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6744
6745 * dispnew.c (selected_frame): Make it a Lisp_Object.
6746 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6747 (direct_output_for_insert, direct_output_forward_char,
6748 init_display): Ditto.
6749
6750 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6751 selected_frame.
6752 (set_internal): Ditto.
6753
6754 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6755 (record_buffer): Ditto.
6756
6757 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6758 (do_switch_frame): Change for Lisp_Object selected_frame.
6759 (Fselected_frame): Ditto.
6760 (Fframe_first_window): Use SELECTED_FRAME.
6761 (Fframe_root_window): Change for Lisp_Object selected_frame.
6762 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6763 Fprevious_frame, other_visible_frames, Fdelete_frame,
6764 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6765 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6766 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6767 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6768 Fset_frame_height, Fset_frame_width): Ditto.
6769
67701999-09-13 Gerd Moellmann <gerd@gnu.org>
6771
6772 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6773 (message3_nolog, message_with_string, message,
6774 setup_echo_area_for_printing, truncate_echo_area,
6775 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6776
6777 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6778 (Fx_popup_dialog): Ditto.
6779
6780 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6781 (check_x_display_info, x_get_resource_string): Ditto.
6782
6783 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6784 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6785 (XRINGBELL): Removed.
6786
6787 * window.c (Fminibuffer_window): Change for Lisp_Object
6788 selected_frame.
6789 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6790 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6791 Fcurrent_window_configuration, init_window_once): Ditto.
6792
6793 * frame.h (SELECTED_FRAME): New.
6794
67951999-09-12 Ken Raeburn <raeburn@gnu.org>
6796
6797 * category.c (word_boundary_p): Use XCAR and XCDR.
6798 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6799 Fregister_code_conversion_map): Likewise.
6800 * coding.c (setup_coding_system, detect_coding_system,
6801 Ffind_operation_coding_system, Fset_coding_priority_internal):
6802 Likewise.
6803 * doc.c (get_doc_string, Fdocumentation,
6804 store_function_docstring): Likewise.
6805 * editfns.c (save_restriction_restore): Likewise.
6806 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6807 skip_debugger, find_handler_clause, Fautoload, Fapply,
6808 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6809 Likewise.
6810 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6811 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6812 Fread_file_name): Likewise.
6813 * filelock.c (unlock_all_files): Likewise.
6814 * insdel.c (Fcombine_after_change_execute): Likewise.
6815 * intervals.c (adjust_intervals_for_insertion): Likewise.
6816 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6817 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6818 store_in_keymap, Fcopy_keymap, define_as_prefix,
6819 current_minor_maps, Faccessible_keymaps,
6820 accessible_keymaps_char_table, Fkey_description,
6821 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6822 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6823 describe_map): Likewise.
6824 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6825 read_list, init_lread): Likewise.
6826 * search.c (Fmatch_data): Likewise.
6827 * sunfns.c (Fsun_menu_internal): Likewise.
6828 * syntax.c (describe_syntax): Likewise.
6829 * undo.c (record_insert, record_delete, Fundo_boundary,
6830 truncate_undo_list): Likewise.
6831 * vmsproc.c (child_sig): Likewise.
6832
6833 * editfns.c (Fformat): Use XFLOAT_DATA.
6834
68351999-09-12 Gerd Moellmann <gerd@gnu.org>
6836
6837 * keyboard.c (command_loop_1): Resize mini-window to the
6838 exact size of a message displayed, if any.
6839
6840 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6841 to exact size if exact_p is non-zero.
6842 (display_echo_area_1): Call resize_mini_window with
6843 new parameter.
6844 (redisplay_internal): Ditto.
6845 (resize_echo_area_axactly): New.
6846
6847 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6848 new parameter.
6849
6850 * dispextern.h: Change prototype of resize_mini_window.
6851 Add prototype for resize_echo_area_axactly.
6852
6853 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6854 (syms_of_xfaces): Defsubr accordingly.
6855
6856 * xdisp.c (hscroll_window_tree): Choose cursor row from
6857 desired or current matrix.
6858 (redisplay_internal): Hscroll before updating.
6859
68601999-09-12 Gerd Moellmann <gerd@gnu.org>
6861
6862 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6863 of minibuffer_prompt_length.
6864
6865 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6866 of minibuffer_prompt_length.
6867 (read_minibuf_unwind): Ditto.
6868 (Fminibuffer_complete_and_exit): Ditto.
6869 (Fminibuffer_complete_word): Ditto.
6870 (Fminibuffer_prompt_end): Ditto.
6871
6872 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6873 of minibuffer_prompt_length.
6874 (Fline_beginning_position): Ditto.
6875
6876 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6877 of minibuffer_prompt_length.
6878 (Fmake_indirect_buffer): Ditto.
6879 (Fkill_buffer): Ditto.
6880 (Ferase_buffer): Ditto.
6881
6882 * buffer.h (prompt_end_charpos): Replaces
6883 minibuffer_prompt_length.
6884
427ec082 6885 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6886 without the prompt.
6887
6888 * editfns.c (make_buffer_string_both): Take out the code
6889 to handle mini-buffer prompts.
6890 (Fbuffer_string): Handle the prompt here, instead.
6891
6892 * xfaces.c (lface_from_face_name): Resolve face aliases.
6893 (Qmode_line): Replaces Qmodeline.
6894 (realize_basic_faces): Use Qmode_line.
6895 (syms_of_xfaces): Initialize Qmode_line.
6896
68971999-09-12 Gerd Moellmann <gerd@gnu.org>
6898
6899 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6900 current column after inserting prompt.
6901 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6902
6903 * xfaces.c (Qframe_update_face_colors): New.
6904 (syms_of_xfaces): Initialize call.
6905 (update_face_from_frame_parameter): Call that function when
6906 the frame's background changes.
6907
69081999-09-12 Richard Stallman <rms@gnu.org>
6909
6910 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6911
69121999-09-12 Ken Raeburn <raeburn@gnu.org>
6913
6914 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6915 mark_object, mark_buffer): Use XCAR and XCDR.
6916 * bytecode.c (Fbyte_code): Likewise.
6917 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6918 Likewise.
6919 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6920 getenv_internal): Likewise.
6921 * dired.c (file_name_completion): Likewise.
6922 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6923 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6924 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6925 * indent.c (Fcompute_motion): Likewise.
6926 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6927 list_processes_1, Fstart_process, Fopen_network_stream,
6928 wait_reading_process_input, read_process_output_call,
6929 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6930 status_notify, wait_reading_process_input): Likewise.
6931 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6932 extend_property_ranges): Likewise.
6933 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6934 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6935 x_report_frame_params, x_set_cursor_type, x_icon_type,
6936 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6937 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6938 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6939 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6940 x_display_info_for_name, Fx_display_list): Likewise.
6941 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6942 Fx_popup_menu, Fx_popup_dialog): Likewise.
6943 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6944 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6945 w32_term_init, x_delete_display): Likewise.
6946 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6947 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6948 x_top_window_to_frame, x_set_frame_parameters,
6949 x_report_frame_params, x_set_cursor_type, x_icon_type,
6950 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6951 Fx_display_list, x_create_tip_frame): Likewise.
6952 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6953 Fx_popup_menu, Fx_popup_dialog): Likewise.
6954 * xselect.c (x_own_selection, x_get_local_selection,
6955 x_handle_selection_request, x_handle_selection_clear,
6956 x_clear_frame_selections, wait_for_property_change_unwind,
6957 wait_for_property_change, x_handle_property_notify,
6958 copy_multiple_data, x_get_foreign_selection,
6959 lisp_data_to_selection_data, clean_local_selection_data,
6960 x_handle_selection_notify, Fx_get_selection_internal,
6961 x_disown_buffer_selections): Likewise.
6962 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6963 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6964 Likewise.
6965
6966 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6967 XFLOAT_DATA.
6968 * bytecode.c (Fbyte_code): Likewise.
6969 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6970 fmod_float): Likewise.
6971
69721999-09-11 Richard Stallman <rms@gnu.org>
6973
6974 * xdisp.c (run_window_scroll_functions): If hook functions switch
6975 buffers, switch back after.
6976
69771999-09-11 Ken Raeburn <raeburn@gnu.org>
6978
6979 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6980 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6981 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6982 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6983 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6984 XCDR.
6985 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6986 XCDR.
6987
69881999-09-10 Richard Stallman <rms@gnu.org>
6989
6990 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6991 not RevertToPointerRoot.
6992 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6993 Fix the code to clear around the scroll bar.
6994
69951999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6996
6997 * print.c: Support print-circle and related features.
6998 (Vprint_gensym_alist): Removed.
6999 (Vprint_circle, Vprint_continuous_numbering, print_number_index
7000 Vprint_number_table): New variables.
7001 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
7002 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
7003 (print, print_preprocess, print_preprocess_string, print_object):
7004 New/modified functions with print-circle feature. Use
7005 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7006 (syms_of_print): Defined new Lisp variables `print-circle',
7007 `print-continuous-numbering', `print-number-table'.
7008
70091999-09-10 Gerd Moellmann <gerd@gnu.org>
7010
7011 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7012 as background color specification instead of an integer.
7013 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7014 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7015 (clear_image_cache, syms_of_xfns): Use it.
7016 (Qpostscript): Replaces Qghostscript.
7017 (gs_type): Use it.
7018 (gs_image_p): Ditto.
7019 (syms_of_xfns): Initialize Qpostscript.
7020
70211999-09-10 Richard Stallman <rms@gnu.org>
7022
7023 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7024
70251999-09-09 Richard Stallman <rms@gnu.org>
7026
7027 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7028
7029 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7030
70311999-09-09 Gerd Moellmann <gerd@gnu.org>
7032
7033 * fns.c (Fmakehash): Accept just one optional argument TEST.
7034
7035 * xfns.c (QCindex): New.
7036 (syms_of_xfns): Initialize QCindex.
7037 (gif_load): Use it instead of `:image'.
7038
70391999-09-09 Richard Stallman <rms@gnu.org>
7040
7041 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7042 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7043
70441999-09-08 Gerd Moellmann <gerd@gnu.org>
7045
7046 * xdisp.c (Qwhen): Replaces QCwhen.
7047 (syms_of_xdisp): Initialized it instead of QCwhen.
7048 (handle_single_display_prop): Use it instead of QCwhen.
7049
70501999-09-08 Ken'ichi Handa <handa@gnu.org>
7051
7052 * charset.c (translate_char): Reset MSBs of arguments of
7053 MAKE_CHAR.
7054 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7055
70561999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7057
7058 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7059
7060 * fns.c (Fbase64_decode_region): Don't place point outside of the
7061 current accessible portion.
7062
70631999-09-07 Richard Stallman <rms@gnu.org>
7064
7065 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7066 parent is an ancestor of SUBMAP; otherwise, add it as the
7067 ultimate ancestor.
7068
70691999-09-07 Gerd Moellmann <gerd@gnu.org>
7070
7071 * xdisp.c (handle_single_display_prop): Change conditional
7072 display property to `:when FORM . VALUE'.
7073
70741999-09-07 Richard Stallman <rms@gnu.org>
7075
7076 * fileio.c (Fwrite_region): Doc fix.
7077
70781999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7079
7080 * fileio.c (Qexcl): New variable.
7081 (report_file_error): Handle EEXIST specially.
7082 (Fwrite_region): Special handling for CONFIRM = `excl'.
7083 (syms_of_fileio): Initialize Qexcl.
7084
70851999-09-07 Gerd Moellmann <gerd@gnu.org>
7086
7087 * xfns.c (x_set_foreground_color): Call
7088 update_face_from_frame_parameter.
7089 (x_set_background_color): Ditto.
7090 (x_set_mouse_color): Ditto.
7091 (x_set_cursor_color): Ditto.
7092 (x_set_border_color): Ditto.
7093 (x_set_scroll_bar_foreground): Ditto.
7094 (x_set_scroll_bar_background): Ditto.
7095
7096 * xfaces.c (recompute_basic_faces): Clear face cache.
7097 (Finternal_set_lisp_face_attribute): Modify frame parameters
7098 if attributes of certain faces are changed.
7099 (update_face_from_frame_parameter): New.
7100
7101 * xfaces.c (realize_basic_faces): Realize new basic faces.
7102
7103 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7104 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7105
7106 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7107 (syms_of_xfaces): Intialize new symbols.
7108
7109 * fns.c (Fmakehash): Take one argument, test, make all the
7110 rest keyword arguments.
7111
7112 * window.c (Fset_window_margins): Make window the first argument.
7113 (set_window_buffer): Call Fset_window_margins with window as first
7114 argument.
7115
71161999-09-07 Gerd Moellmann <gerd@gnu.org>
7117
7118 * xfaces.c (Qfringe): Replaces Qmargin.
7119
71201999-09-07 Kenichi Handa <handa@etl.go.jp>
7121
7122 * charset.h: Lots of comments fixed.
7123 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7124 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7125
7126 * charset.c : Lots of comments fixed.
7127 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7128 (CHAR_COMPONENTS_VALID_P): Name changed from
7129 CHAR_COMPONENT_VALID_P. Caller changed.
7130
71311999-09-06 Richard Stallman <rms@gnu.org>
7132
7133 * insdel.c (syms_of_insdel): Define Lisp variable
7134 inhibit-modification-hooks.
7135
71361999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7137
7138 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7139 unexaix.c.
7140
7141 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7142
71431999-09-06 Dave Love <fx@gnu.org>
7144
7145 * unexaix.c: New version incorporating Michael Sperber's changes
7146 from XEmacs. Should solve problems on AIX 4.3.
7147
7148 * lread.c (Vbyte_boolean_vars): New variable.
7149 (defvar_bool, syms_of_lread): Use it.
7150
71511999-09-05 Richard Stallman <rms@gnu.org>
7152
7153 * minibuf.c (read_minibuf): Put all three properties on the
7154 same range, the whole prompt.
7155
71561999-09-05 Gerd Moellmann <gerd@gnu.org>
7157
7158 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7159 (Fplay_sound, syms_of_sound): Use it.
7160 (parse_sound): Allow float volume values in the range [0, 1].
7161 (Fplay_sound): Ditto.
7162
7163 * window.c (Fset_window_vscroll): Make window the first argument,
7164 amount to scroll the second. Take non-negative vscroll as
7165 argument.
7166 (Fwindow_vscroll): Return non-negative vscroll.
7167
7168 * xfns.c (Fx_show_tip): Improve documentation.
7169
71701999-09-05 Gerd Moellmann <gerd@gnu.org>
7171
7172 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7173 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7174 `top-line' and `top_line' to `header-line' and `header_line'.
7175 Likewise for similar spellings.
7176
71771999-09-05 Gerd Moellmann <gerd@gnu.org>
7178
7179 * xdisp.c (row_containing_pos): New.
7180 (try_window_id): Use it.
7181
7182 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7183 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7184 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7185 Likewise for upper-case etc.
7186
71871999-09-05 Gerd Moellmann <gerd@gnu.org>
7188
7189 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7190 Fix reference to renamed variable.
7191
71921999-09-04 Gerd Moellmann <gerd@gnu.org>
7193
7194 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7195 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7196 Qfixed_window_size.
7197 (syms_of_window): Ditto.
7198
7199 * fns.c (Fmakehash): Exchange optional test and size arguments.
7200
72011999-09-03 Gerd Moellmann <gerd@gnu.org>
7202
7203 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7204 under newly created scroll bar.
7205 (expose_window): If window is not yet fully initialized, do
7206 nothing. This can happen when toolkit scroll bars are used and a
7207 window is split. Reconfiguring the scroll bars will generate an
7208 expose for a newly created window.
7209
7210 * frame.h (struct frame): New member `gamma'.
7211
7212 * xfns.c: Include math.h. Add extern declaration for atof in case
7213 we don't see one.
7214 (Qscreen_gamma): New.
7215 (struct x_frame_parm_table): Add prototypes, add
7216 x_set_screen_gamma.
7217 (gamma_correct): New function.
7218 (defined_color): Call it.
7219 (x_set_screen_gamma): New.
7220 (x_set_title): Add parameter old_value.
7221 (RES_TYPE_FLOAT): New.
7222 (x_get_arg): Handle RES_TYPE_FLOAT.
7223 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7224 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7225 new prototype.
7226 (lookup_rgb_color): Ditto.
7227 (syms_of_xfns): Initialize Qscreen_gamma.
7228
7229 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7230 New. Allocate color for lwlib widgets.
7231 (x_alloc_nearest_color): Change parameter list include the
7232 frame on which to allocate colors. Gamma-correct colors.
7233 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7234 parameter list.
7235
7236 * xterm.h: Change protorype of x_alloc_nearest_color.
7237
72381999-09-03 Richard Stallman <rms@gnu.org>
7239
7240 * callproc.c: Delete the system-independent include of stdlib.h
7241 (leaving only the one in the WINDOWSNT conditional).
7242
72431999-09-03 Andrew Choi <choi@cs.hku.hk>
7244
7245 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7246 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7247
26901792
DL
7248 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7249 Window types and macros.
7250
7251 * frame.h: Do nothing if included a second time.
7252 (enum output_method): Add mac_output frame type.
7253 (union output_data): Add new alternative `mac'.
7254 (FRAME_MAC_P): New macro.
427ec082 7255
26901792
DL
7256 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7257 (syms_of_frame_1): Initialize Qmac.
7258 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7259 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7260 (Fmodify_frame_parameters) [macintosh]: Call
7261 mac_set_frame_parameter in macterm.c.
427ec082 7262
26901792
DL
7263 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7264 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7265
26901792
DL
7266 * make-docfiles.c: Correctly handle input files with Mac-style
7267 eol's.
427ec082 7268
26901792 7269 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7270
26901792
DL
7271 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7272 file of an X Window environment.
427ec082 7273
26901792
DL
7274 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7275 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7276
26901792
DL
7277 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7278 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7279 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7280 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7281 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7282 New functions, replacing POSIX features.
427ec082 7283
26901792
DL
7284 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7285 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7286 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7287
7288 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7289 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7290 (myPasswdDir, TempDirName, sys_siglist): New variables.
7291
7292 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7293 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7294 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7295 Define empty stubs so Emacs will link.
7296
72971999-09-03 Gerd Moellmann <gerd@gnu.org>
7298
7299 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7300
7301 * window.h: New member frozen_window_start_p.
7302
7303 * window.c (foreach_window, foreach_window_1): New.
7304 (freeze_window_start, freeze_window_starts): New.
7305 (make_window): Initialize frozen_window_start_p.
7306 (replace_window): Ditto.
7307 (Fset_window_point): Remove references to deleted variables.
7308 (Fset_window_start): Ditto.
7309
7310 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7311 resize_mini_initial_height): Removed.
7312 (syms_of_xdisp): Remove references to these variables.
7313 (resize_mini_window): Don't save window configuration, freeze
7314 window starts instead. Enlarge window until displaying an empty
7315 buffer, then shrink it. Make the function externally visible.
7316 (redisplay_window): Treat frozen window start like forced start,
7317 but accept point outside of the window.
7318
7319 * dispextern.h: Add function prototype for resize_mini_window.
7320
7321 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7322 reaching minibuf_level 0.
7323
7324 * lisp.h: Remove extern declarations for variables deleted from
7325 xdisp.c.
7326
7327 * dispnew.c (adjust_frame_glyphs): Remove reference to
7328 Vresize_mini_config.
7329
73301999-09-03 Gerd Moellmann <gerd@gnu.org>
7331
7332 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7333 to USE_TOOLKIT_SCROLL_BARS.
7334
7335 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7336 here.
7337 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7338 under newly created scroll bar. Put toolkit scroll bars in the
7339 middle of the area reserved for the scroll bar.
7340
73411999-09-03 Kenichi Handa <handa@etl.go.jp>
7342
7343 The following changes are for the new handling of mulitbyte
7344 sequence. Now, except for a composite character, no multibyte
7345 character in string/buffer has trailing garbage bytes. For
7346 instance, the length of string "\201\300\300" is now 2, the first
7347 character is Latin-1 A-grave, the second is raw \300.
7348
7349 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7350 are negative.
7351 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7352 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7353 (PARSE_COMPOSITE_SEQ): New macro.
7354 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7355 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7356 (CHAR_PRINTABLE_P): New macro.
7357 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7358 (STRING_CHAR_AND_LENGTH): Likewise.
7359 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7360 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7361 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7362
7363 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7364 (SPLIT_CHARACTER_SEQ): New macro.
7365 (SPLIT_MULTIBYTE_SEQ): New macro.
7366 (CHAR_COMPONENT_VALID_P): New macro.
7367 (non_ascii_char_to_string): Generate a multibyte sequence as far
7368 as possible.
7369 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7370 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7371 (split_non_ascii_string): Likewise.
7372 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7373 (char_printable_p): New function.
7374 (translate_char): Check character by NATNUMP instead of INTEGERP.
7375 (unibyte_char_to_multibyte): Call char_valid_p instead of
7376 VALID_MULTIBYTE_CHAR_P.
7377 (Fmake_char_internal): Check the arguments more rigidly.
7378 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7379 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7380 (Fmultibyte_char_to_unibyte): Check the validity of character by
7381 CHAR_VALID_P.
7382 (chars_in_text): Call multibyte_chars_in_text.
7383 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7384 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7385 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7386
7387 * data.c (Faset): Adjust the way to check byte-combining
7388 possibility for the new handling of multibyte sequence.
7389
7390 * editfns.c (Fsubst_char_in_region): Likewise.
7391
7392 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7393 (string_char_to_byte): Likewise.
7394 (string_byte_to_char): Likewise.
7395
7396 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7397 macro STRING_CHAR_AND_LENGTH. Caller changed.
7398
7399 * insdel.c (count_combining_composition): New function.
7400 (count_combining_before): Adjust the way to check byte-combining
7401 possibility for the new handling of multibyte sequence. Call
7402 count_combining_composition for a composite character.
7403 (count_combining_after): Likewise.
7404
7405 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7406 (print): Likewise.
7407
7408 * dispextern.h (struct it): Change the size of the member
7409 `ctl_chars'.
7410
7411 * xdisp.c (get_next_display_element): Display incomplete multibyte
7412 sequence (e.g. \222\300) by octal form.
7413
74141999-09-02 Gerd Moellmann <gerd@gnu.org>
7415
7416 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7417
7418 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7419 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7420
74211999-09-02 Gerd Moellmann <gerd@gnu.org>
7422
7423 * buffer.c (set_buffer_internal): Never set
7424 windows_or_buffers_changed.
7425
7426 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7427 if we have displayed to the bottom of the window.
7428
7429 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7430 in both directions. Extend documentation.
7431
74321999-09-01 Gerd Moellmann <gerd@gnu.org>
7433
7434 * minibuf.c (read_minibuf): Flush display after setting cursor to
7435 column 0.
7436
74371999-08-31 Gerd Moellmann <gerd@gnu.org>
7438
7439 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7440 already defined. This avoids a warning from buffer.c.
7441
74421999-08-30 Gerd Moellmann <gerd@gnu.org>
7443
7444 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7445 of both margins.
7446 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7447 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7448 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7449
7450 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7451 once instead of twice.
7452 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7453
7454 * xterm.c: Remove unused bitmaps.
7455 (continued_bits, continuation_bits, overlay_bits): Change images.
7456 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7457 instead of FRAME_X_FLAGS_AREA_WIDTH.
7458 (x_after_update_window_line): Ditto.
7459 (x_draw_bitmap): Likewise.
7460 (x_draw_row_bitmaps): Likewise.
7461 (x_draw_glyph_string_box): Likewise.
7462 (x_draw_glyphs): Likewise.
7463 (x_scroll_run): Likewise.
7464 (expose_window_tree): Likewise.
7465 (note_mode_line_highlight): Likewise.
7466 (XTset_vertical_scroll_bar): Likewise.
7467 (x_clip_to_row): Likewise.
7468 (x_set_window_size): Likewise.
7469
7470 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7471 of 2 * that value.
7472
7473 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7474 2 * that value.
7475 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7476 FRAME_FLAGS_AREA_WIDTH.
7477
7478 * window.c (coordinates_in_window): Use
7479 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7480 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7481 instead of twice.
7482
427ec082 7483 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7484 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7485 (EmacsFrameSetCharSize): Ditto.
7486
7487 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7488 instead of FRAME_FLAGS_AREA_WIDTH.
7489
7490 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7491 FRAME_FLAGS_AREA_COLS once.
7492 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7493 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7494
74951999-08-30 Gerd Moellmann <gerd@gnu.org>
7496
7497 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7498 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7499
75001999-08-30 Gerd Moellmann <gerd@gnu.org>
7501
7502 * fns.c (QCweakness): Replaces QCweak.
7503 (Fmake_hash_table): Ditto.
7504 (Fmakehash): Ditto.
7505 (syms_of_fns): Ditto.
7506
75071999-08-29 Richard Stallman <rms@gnu.org>
7508
7509 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7510
7511 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7512
7513 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7514 Add support for nested comments.
7515
863476d1
SM
7516 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7517 Consolidate the forward comment code into the new `forw_comment'.
7518 (forw_comment): New subroutine. Added support for nested comments.
7519 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7520 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7521
75221999-08-28 Ken Raeburn <raeburn@gnu.org>
7523
7524 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7525 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7526 defined, to help detect code that uses knowledge of the Lisp
7527 internals that it shouldn't have.
7528 (XFLOAT_DATA): New macro.
7529
75301999-08-25 Gerd Moellmann <gerd@gnu.org>
7531
7532 * syntax.c (Fforward_word): If in a mini-buffer and moving
7533 backwards, stop in front of the prompt to prevent accidentially
7534 moving into the read-only prompt.
7535
7536 * window.c (Frecenter): Clear frame if called with nil or no arg.
7537
7538 * xdisp.c (resize_mini_window): Don't resize if
7539 Vmax_mini_window_height is nil. Otherwise, use a default if
7540 Vmax_mini_window_height is not ot a number.
7541 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7542
75431999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7544
7545 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7546 * m/iris4d.h: Use unexelf for IRIX 5.*.
7547 * m/iris5d.h: Use unexelf for IRIX 6.*.
7548 * unexsgi.c: Deleted.
7549
7550 * unexelf.c: Auto-detect .sbss section.
7551 (round_up): Make it static.
7552 (unexec): Declare alignment as Elf Word. Skip ``Program
7553 segment above .bss'' test on MIPS without .sbss.
7554 Copy sections .got and .sdata1 sections. Adjust offsets in
7555 sections .sdata, .lit4, .lit8, .got and .sdata1.
7556
75571999-08-25 Gerd Moellmann <gerd@gnu.org>
7558
7559 * xdisp.c (try_window_id): Remove typo.
7560
75611999-08-24 Gerd Moellmann <gerd@gnu.org>
7562
7563 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7564 unchanged text at the bottom when computing the cursor position.
7565 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7566 set.
7567
7568 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7569
75701999-08-24 Gerd Moellmann <gerd@gnu.org>
7571
7572 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7573 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7574 (syms_of_xfaces): Ditto.
7575
7576 * window.c (Fset_window_point): Reset Vresize_mini_config.
7577 (Fset_window_start): Ditto.
7578 (set_window_buffer): Ditto.
7579
7580 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7581
7582 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7583 before calling try_window.
7584 (echo_area_display): If height has changed, update other windows.
7585 (resize_mini_frame, resize_mini_initial_height): New.
7586 (resize_mini_window): Save/restore window configuration
7587 differently.
7588
427ec082 7589 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7590 resize_mini_initial_height): Add extern declarations.
7591
7592 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7593 CANON_X_UNIT.
7594
7595 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7596 being redefined in jconfig.h.
7597
75981999-08-23 Ken'ichi Handa <handa@gnu.org>
7599
7600 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7601
76021999-08-22 Gerd Moellmann <gerd@gnu.org>
7603
7604 * alloc.c (mark_glyph_matrix): Mark strings only.
7605
7606 * xdisp.c (redisplay_internal): Clear garbaged frames after
7607 resizing mini-window.
7608
76091999-08-22 Gerd Moellmann <gerd@gnu.org>
7610
7611 * xdisp.c (unwind_with_echo_area_buffer): Use
7612 set_buffer_internal_1 instead of set_buffer_internal.
7613 (with_echo_area_buffer): Ditto.
7614
7615 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7616 only if buffer is displayed somewhere.
7617
7618 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7619
7620 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7621 (gap_right): Ditto.
7622 (modify_region): Ditto.
7623
7624 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7625
7626 * xdisp.c (Vresize_mini_config): New.
7627 (resize_mini_window): Use it to save restore original window
7628 configuration
7629 (syms_of_xdisp): Initialize it.
7630
7631 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7632
7633 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7634
7635 * xdisp.c (reconsider_clip_changes): New.
7636 (redisplay_internal, redisplay_window): Call it.
7637 (mark_window_display_accurate, redisplay_internal): Set current
7638 matrix' buffer, begv, zv.
7639
7640 * window.c (Fset_window_hscroll): Set
7641 prevent_redisplay_optimizations_p instead of clip_changed.
7642 (Fset_window_hscroll): Ditto.
7643 (temp_output_buffer_show): Ditto.
7644 (Fset_window_vscroll): Ditto.
7645
7646 * buffer.c (reset_buffer): Set clip_changed to 0 and
7647 prevent_redisplay_optimizations_p to 1.
7648 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7649
7650 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7651 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7652 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7653 END_UNCHANGED): New.
7654 (struct buffer_text): Add beg_unchanged, end_unchanged,
7655 unchanged_modified, overlay_unchanged_modified.
7656
7657 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7658 overlay_unchanged_modified): Removed.
7659 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7660 (unwind_with_echo_area_buffer): Don't restore them.
7661 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7662 (text_outside_line_unchanged_p, redisplay_internal,
7663 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7664 (redisplay_window): Let try_window_id be called if more than one
7665 window is displayed. Use/set buffer-specific beg/end_unchanged.
7666 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7667 try_window_id):
7668 Use buffer-specific beg/end_unchanged.
7669
7670 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7671 overlay_unchanged_modified): Remove extern declarations.
7672
7673 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7674 buffer.
7675
7676 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7677 (gap_right): Ditto.
7678 (adjust_after_replace): Likewise.
7679 (replace_range, del_range_2, modify_region): Likewise.
7680
7681 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7682 and unchanged_modified per buffer.
7683
7684 * coding.c (code_convert_region): Compute beg/end_unchanged per
7685 buffer.
7686
7687 * buffer.c (modify_overlay): Compute beg/end_unchanged
7688 per buffer.
427ec082 7689 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7690 structure.
7691
76921999-08-22 Gerd Moellmann <gerd@gnu.org>
7693
7694 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7695
7696 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7697 (Qkey_value_weak): Removed.
7698 (make_hash_table): Use nil, `key', `value', t for weakness.
7699 (Fmake_hash_table): Ditto.
7700 (copy_hash_table): New.
7701 (Fcopy_hash_table): New.
7702
77031999-08-22 Gerd Moellmann <gerd@gnu.org>
7704
7705 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7706 new parameter.
26901792
DL
7707
77081999-08-21 Gerd Moellmann <gerd@gnu.org>
7709
7710 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7711 well.
427ec082 7712 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7713 have changed.
7714 (display_echo_area): Reset displayed echo_area_buffer to nil
7715 at the end if we're displaying a nil message.
7716
77171999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7718
26901792
DL
7719 * fns.c (hash_lookup): Test with EQ before calling key comparion
7720 function.
7721 (hash_remove): Ditto.
7722 (cmpfn_eq): Removed.
7723 (cmpfn_eql): Don't test with EQ.
7724 (cmpfn_equal): Ditto.
7725 (make_hash_table): Set comparison function for `eq' to null.
7726
7727 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7728 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7729
7730 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7731
7732 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7733 xterm.c: Call change_frame_size and do_pending_window_change with
7734 new parameter.
7735
7736 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7737 (change_frame_size): Ditto.
7738 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7739 and not called from a safe place.
7740 (window_change_signal): Call change_frame_size with new parameter.
7741
7742 * dispextern.h: Change prototypes for do_pending_window_change
7743 and change_frame_size.
7744
7745 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7746 window's buffers equals current_buffer; this is not the
26901792
DL
7747 case during echo area display.
7748
77491999-08-21 Gerd Moellmann <gerd@gnu.org>
7750
7751 * xdisp.c, minibuf.c: Remove conditional compilation on
7752 NO_PROMPT_IN_BUFFER.
7753
7754 * minibuf.c (Fminibuffer_prompt_end): New.
7755 (syms_of_minibuf): Defsubr it. Remove
7756 minibuffer-prompt-in-buffer.
7757 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7758 Extend documentation.
7759
7760 * xdisp.c (get_next_display_element): Display \r as ^M.
7761
7762 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7763 under scroll bar widget.
7764
77651999-08-21 Gerd Moellmann <gerd@gnu.org>
7766
7767 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7768 anywhere.
7769 (unwind_redisplay): Return nil.
7770 (clear_garbaged_frames): New.
7771 (redisplay_internal): Use it.
7772 (echo_area_display): Ditto.
7773 (resize_mini_window): Mew.
7774 (display_echo_area_1): Use it to resize echo area window.
7775 (redisplay_internal): Use it to resize active mini-window.
7776
7777 * dispextern.h, lisp.h: Add function prototypes.
7778
427ec082 7779 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7780 cursor_in_echo_area case only for a mini-window showing
7781 a message. Don't let cursor end up after the end of a row.
7782
7783 * xdisp.c (echo_area_glyphs, echo_area_message,
7784 echo_area_glyphs_length, previous_echo_glyphs,
7785 previous_echo_area_message, previous_echo_area_glyphs_length):
7786 Removed.
7787 (Vmessage_stack, echo_area_buffer, echo_buffer,
7788 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7789 (message2_nolog): Use set_message and clear_message.
7790 (message3): Rename parameter len to nbytes to make clear what
7791 it is.
7792 (message3_nolog): Ditto. Use set_message and clear_message.
7793 (update_echo_area): Rewritten.
7794 (with_echo_area_buffer): New.
7795 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7796 (setup_echo_area_for_printing): New.
7797 (display_echo_area, display_echo_area_1): New.
7798
7799 (current_message, current_message_1): New.
427ec082 7800 (push_message, restore_message, pop_message,
26901792
DL
7801 check_message_stack): New.
7802 (truncate_echo_area): Rewritten.
7803 (truncate_message_1): New.
7804 (set_message, set_message_1, clear_message): New.
7805 (echo_area_display): Rewritten.
7806 (redisplay_internal): Check for needed echo area update
7807 differently.
7808 (redisplay_preserve_echo_area): Rewritten.
427ec082 7809 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7810 message differently.
7811 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7812 Remove initialzation of removed variables.
7813 (init_xdisp): Remove references to removed variables.
7814
7815 * dispnew.c (adjust_frame_message_buffer): Removed references
7816 to echo_area_glyphs and previous_echo_glyphs.
7817 (direct_output_for_insert): Check for mini-window displaying
7818 echo area message differently.
7819 (update_frame): Likewise.
7820 (set_window_cursor_after_update): Likewise. In echo area,
7821 don't try to set cursor on rows that aren't enabled.
7822
7823 * print.c: Remove conditional compilation on `standalone'.
7824 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7825 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7826 longer used in that way.
7827 (PRINTDECLARE): Add multibyte.
7828 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7829 (printbufidx): Removed.
7830 (printchar, strout): Rewritten.
7831
7832 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7833 a struct kboard.
7834 (echo_kboard): New.
7835 (echo_now): Set echo_kboard to the current kboard.
7836 (cancel_echoing): Set echo_kboard to null.
7837 (cmd_error_internal): Use clear_message, remove references
7838 to echo_area_glyphs and echo_area_message.
7839 (command_loop_1): Check for echo area messages differently.
7840 (read_char): Likewise.
7841 (record_menu_key): Use clear_message.
7842 (Fexecute_extended_command): Check for echo area messages
7843 differently. Use push_message, restore_message, pop_message.
7844
7845 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7846 pop_message.
7847
7848 * emacs.c (shut_down_emacs): Call check_message_stack.
7849
7850 * lisp.h: Add function prototypes and extern declarations for
7851 new functions and variables.
7852
7853 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7854 pop_message.
7855
427ec082 7856 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7857 setting echo_area_glyphs.
7858 (Fminibuffer_completion_help): Ditto.
7859
7860 * editfns.c (Fcurrent_message): Rewritten.
7861
7862 * frame.c, window.h: Remove references to echo_area_glyphs
7863 and previous_echo_glyphs.
7864
78651999-08-21 Dave Love <fx@gnu.org>
7866
7867 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7868 * aix4-1.h: Likewise.
7869
7870 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7871
78721999-08-20 Gerd Moellmann <gerd@gnu.org>
7873
7874 * xfns.c: Remove tiff34 prefix from include.
7875
78761999-08-20 Dave Love <fx@gnu.org>
7877
7878 * cm.c: Revert previous change.
7879
78801999-08-19 Gerd Moellmann <gerd@gnu.org>
7881
7882 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7883 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7884
78851999-08-18 Dave Love <fx@gnu.org>
7886
7887 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7888 stdlib.h.
7889
7890 * doprnt.c: Use stdlib.h, unistd.h.
7891
7892 * config.in: Add HAVE_TERMCAP_H.
7893
7894 * cm.c: Use termcap.h.
7895
78961999-08-18 Gerd Moellmann <gerd@gnu.org>
7897
7898 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7899 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7900 cannot be created we will already have crashed earlier. Call
7901 lw_set_main_areas with a null menu-bar widget, so that we have
7902 a reasonable default.
7903 (Fx_create_frame): Rearranged so that Lisp errors during frame
7904 initialization cause less damage. Initialize menu bar widget
7905 here.
7906
79071999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 7908
26901792
DL
7909 * dispnew.c (update_frame_line): Fix previous change. If writing
7910 whole line clear to end of frame.
7911
79121999-08-17 Gerd Moellmann <gerd@gnu.org>
7913
7914 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7915 and `right-bitmap-area' if position is in the bitmap areas. This
7916 avoids an error when clicking on the bitmap areas. Instead, they
7917 are currently treated like clicks inside the window.
7918 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7919 (Qleft_bitmap_area, Qright_bitmap_area): New.
7920 (syms_of_window): Initialize new symbols.
7921
7922 * dispnew.c (update_frame_line): If writing whole line,
7923 don't write trailing spaces unless we must.
7924
7925 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7926 (redisplay_internal): Register unwind_redisplay with
7927 register_unwind_protect.
7928 (try_window_reusing_current_matrix): If new start > old start,
7929 give up if start pos of first reusable row is not equal to new
7930 start.
7931
7932 * eval.c (Fsignal): Don't reset redisplaying_p here.
7933
7934 * xterm.c (expose_area): If row extends face to end of line,
7935 write the whole line.
7936
79371999-08-16 Gerd Moellmann <gerd@gnu.org>
7938
7939 * dispextern.h (struct it): Remove member
7940 show_trailing_whitespace_p.
7941
7942 * dispnew.c (direct_output_for_insert): Use
7943 Vshow_trailing_whitespace instead of former iterator member
7944 show_trailing_whitespace_p.
7945 (direct_output_forward_char): Don't do it if hightlighting
7946 trailing whitespace.
7947
7948 * xdisp.c (Qshow_trailing_whitespace): Removed.
7949 (Vshow_trailing_whitespace): Added.
7950 (init_iterator): Remove initialization code for
7951 show_trailing_whitespace_p.
7952 (redisplay_internal): Don't try cursor movement in this_line
7953 if showing trailing whitespace.
7954 (redisplay_window): Likewise for cursor movement in current
7955 matrix and try_window_id.
7956 (try_window_reusing_current_matrix): Likewise.
7957 (trailing_whitespace_p): Return 0 if trailing whitespace is
7958 in front of point.
7959 (display_line): Use Vshow_trailing_whitespace instead of
7960 former iterator member show_trailing_whitespace_p.
7961 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7962
79631999-08-16 Gerd Moellmann <gerd@gnu.org>
7964
7965 * window.c (Fpos_visible_in_window_p): Rewritten.
7966
7967 * xfaces.c (add_to_log): Renamed from display_message.
7968 Don't display messages in echo area.
7969
7970 * xterm.c (x_draw_glyph_string_box): Use the background width
7971 of the glyph string for the width of the box.
7972
79731999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7974
7975 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7976
79771999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7978
7979 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7980 background first, and then set other parameters that might
7981 depend upon their new values.
7982
79831999-08-15 Gerd Moellmann <gerd@gnu.org>
7984
7985 * xfaces.c (Vfont_list_limit): New.
7986 (syms_of_xfaces): Make it a user-variable.
7987 (DEFAULT_FONT_LIST_LIMIT): New.
7988 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7989 maximally that number of fonts, otherwise use
7990 DEFAULT_FONT_LIST_LIMIT.
427ec082 7991 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
7992 until we have all fonts.
7993 (Fxfont_list): Additionally return the full names of fonts and
7994 their registry and encoding.
7995
427ec082 7996 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
7997 Simplify clearing "under" scroll bar.
7998
7999 * window.c (Qfixed_window_size): New.
8000 (syms_of_window): Initialiaze it.
8001 (check_all_windows): Add return type void.
8002 (window_fixed_size_p): New. Return non-zero if window
8003 is fixed-size.
8004 (window_min_size_1): New.
8005 (window_min_size): Handle fixed-size windows.
8006 (size_window): New. Rewritten combination of set_window_height and
8007 set_window_width that handles fixed-size windows.
8008 (set_window_height): Call it.
8009 (set_window_width): Call it.
8010 (Fsplit_window): Give an error on attempt to split a fixed-size
8011 window.
8012 (change_window_height): Partly rewritten to handle fixed-size
8013 windows.
8014
80151999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8016
8017 * process.c (Fopen_network_stream): Fix previous change.
8018
80191999-08-13 Karl Heuer <kwzh@gnu.org>
8020
8021 * xdisp.c (line_number_display_limit_width): New var.
8022 (decode_mode_spec): Use it instead of hardcoded value.
8023 (syms_of_xdisp): Defvar it.
8024
80251999-08-13 Richard M. Stallman <rms@gnu.org>
8026
8027 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8028 (run_hook_with_args): Likewise.
8029
8030 * window.h (struct window): New field too_small_ok.
8031
427ec082 8032 * window.c (set_window_height, set_window_width):
26901792
DL
8033 If window starts out "too small", set its too_small_ok flag.
8034 If window's too_small_ok flag is set, don't delete it
8035 unless it is so small it would cause a crash.
8036
80371999-08-13 Gerd Moellmann <gerd@gnu.org>
8038
8039 * window.c (MINSIZE): Removed.
8040 (window_min_size): New.
8041 (set_window_height): Use window_min_size.
8042 (change_window_height): Ditto.
8043
80441999-08-12 Gerd Moellmann <gerd@gnu.org>
8045
8046 * indent.c (vmotion): Don't add in mini-buffer prompt width
8047 if prompts are inserted into mini-buffer.
8048
80491999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8050
8051 * config.in: Add HAVE_GETADDRINFO.
8052 * process.c (Fopen_network_stream): Use getaddrinfo.
8053
80541999-08-11 Gerd Moellmann <gerd@gnu.org>
8055
8056 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8057 glyphs to -1.
8058
8059 * xdisp.c (face_before_or_after_it_pos): If position after
8060 or before iterator's current position in the buffer is out
8061 of bounds, return the iterator's original face id.
8062
8063 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8064 just swap glyphs pointers between current and desired row.
8065 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8066 desired matrix method string to current matrix.
8067
80681999-08-11 Kenichi Handa <handa@etl.go.jp>
8069
8070 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8071
8072 * lread.c (read_escape): For Control modifier, pay attention to
8073 multibyte character.
8074 (read1): Likewise. Singal error or a multibyte character which
8075 has a modifer bit. Check validity of Shift modifer.
8076
8077 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8078 the same as Lisp reader.
8079
80801999-08-10 Richard M. Stallman <rms@gnu.org>
8081
8082 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8083
80841999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8085
8086 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8087
80881999-08-10 Eli Zaretskii <eliz@gnu.org>
8089
8090 * msdos.c (IT_set_face): Abort if the default face is not realized
8091 and cached.
8092 (IT_write_glyphs): Reset the screen face to the default face
8093 before writing glyphs.
8094
8095 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8096 colors from the frame here.
8097 (realize_tty_face) [MSDOS]: Do it here. Update the face
8098 attributes with the actual name of the color taken from the
8099 frame.
8100
8101 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8102 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8103
8104 * frame.c (Fframe_parameters): Swap foreground and background
8105 colors returned in frame parameters if the frame has reverse in
8106 its parameter alist.
8107 (Fmake_terminal_frame): Make a unique copy of face_alist for
8108 each frame.
8109
81101999-08-07 Richard Stallman <rms@gnu.org>
8111
8112 * buffer.c (Fprevious_overlay_change): Just return
8113 the answer obtained from overlays_at.
8114
8115 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8116 Use XpmCloseness and attrs.closeness instead.
8117
81181999-08-06 Richard Stallman <rms@gnu.org>
8119
8120 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8121
81221999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8123
427ec082 8124 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8125 Ffile_attributes_lessp): New functions.
8126 (Fdirectory_files): Use directory_files_internal.
8127 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8128 Ffile_attributes_lessp.
8129
8130 * w32.c (stat): Check for directory ending in separator when
8131 doing readdir fast path.
8132
8133 * w32fns.c (x_set_icon_type): Support setting frame icons.
8134 * w32term.c (x_bitmap_icon): New function.
8135 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8136
26901792
DL
81371999-08-06 Gerd Moellmann <gerd@gnu.org>
8138
8139 * xdisp.c (set_iterator_to_next): After delivering a character
8140 from a display vector, restore face and charset to what they were
8141 before the display vector was processed.
8142
81431999-08-06 Gerd Moellmann <gerd@gnu.org>
8144
8145 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8146 on_newline_p.
8147 (set_iterator_to_next): After delivering last char
427ec082 8148 from display vector, reseat on next visible line start if
26901792
DL
8149 dpvec_char_len < 0.
8150 (next_element_from_buffer): Set dpvec_char_len to -1 for
8151 selective display.
8152
81531999-08-06 Gerd Moellmann <gerd@gnu.org>
8154
8155 * xdisp.c (compute_line_metrics): If first line's physical ascent
8156 is larger than its logical ascent, use the physical ascent, and
8157 make the row taller. Set row's overlapping_p flag.
8158
8159 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8160 (direct_output_for_insert): Ditto.
8161
8162 * dispextern.h (struct glyph_row): Add overlapping_p.
8163
8164 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8165
8166 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8167 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8168
8169 * dispnew.c (direct_output_for_insert): Don't use this method if
8170 row is overlapped by others.
8171 (update_text_area): Write full line if current line is overlapped.
8172 (redraw_overlapped_rows): New.
8173 (update_window): Call it.
8174 (redraw_overlapping_rows): New.
8175 (update_window): Call it.
8176 (scrolling_window): Make sure overlapped_p flag in current rows is
8177 unchanged.
8178 (row_equal_p): Take rows overlapped_p flag into account.
8179
8180 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8181
8182 * xterm.c (x_fix_overlapping_area): New.
8183 (x_redisplay_interface): Add x_fix_overlapping_area.
8184
8185 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8186
81871999-08-06 Gerd Moellmann <gerd@gnu.org>
8188
8189 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8190 (struct glyph_string): Add member for_overlaps_p.
8191 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8192 of overlapping rows, clip to window bottom.
8193 (x_fill_glyph_string): Add parameter overlaps_p.
8194 (x_fill_composite_glyph_string): Ditto.
8195 (BUILD_GLYPH_STRINGS): Ditto.
8196 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8197 (x_draw_glyph_string): Don't draw anything but the foreground
8198 if glyph string draws row overlaps.
8199
8200 * dispnew.c (direct_output_for_insert): Don't use this
8201 optimization for rows that overlap others.
8202 (update_window_line): Return non-zero if display has changed.
8203 (update_text_area): Ditto.
8204 (update_window): Record if display has been changed.
8205
8206 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8207
8208 * dispextern.h (struct redisplay_interface): Add
8209 fix_overlapping_area.
8210
8211 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8212
8213 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8214
8215 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8216 ascent and descent.
8217 (x_produce_stretch_glyph): Ditto.
8218 (x_produce_glyphs): Ditto.
8219
8220 * xdisp.c (init_iterator): Reset physical line height info
8221 after producing special glyphs.
8222 (display_toolbar_line): Set physical line height info.
8223 (compute_line_metrics): Ditto.
8224 (display_line): Ditto.
8225 (display_string): Ditto.
8226
8227 * term.c (produce_glyphs): Set iterator's physical height
8228 information.
8229
8230 * dispnew.c (blank_row): Compute glyph row's physical height.
8231 (row_equal_p): Take physical row heights into account.
8232 (direct_output_for_insert): Ditto.
8233 (update_text_area): Ditto.
8234
8235 * dispextern.h (struct glyph_row): Add phys_ascent and
8236 phys_height.
8237 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8238 max_phys_descent.
8239
82401999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8241
8242 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8243 Fswitch_to_buffer.
8244 (no_switch_buffer): New function.
8245 (Fswitch_to_buffer): Call them. Don't get confused
8246 by "same-window" buffers in a dedicated frame.
8247
8248 * window.c (display-buffer): Don't get confused
8249 by "same-window" buffers in a dedicated frame.
8250
82511999-08-04 Andreas Schwab <schwab@gnu.org>
8252
8253 * insdel.c (insert_from_string_1): Check gap size against number
8254 of outgoing bytes, not incoming bytes.
8255
82561999-08-03 Tom Breton <tob@world.std.com>
8257
8258 * lread.c (read1): Added circular reading code to #N=.
8259 (SUBSTITUTE): New macro.
8260 (seen_list): New variable.
8261 (substitute_object_in_subtree): New function.
8262 (substitute_object_recurse): New function.
8263 (substitute_in_interval): New function.
8264
82651999-08-02 Eli Zaretskii <eliz@gnu.org>
8266
8267 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8268
8269 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8270 noninteractive, for termcap frames as well.
8271
8272 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8273 frames.
8274
82751999-08-01 Richard Stallman <rms@gnu.org>
8276
8277 * fns.c (internal_equal): Correct overlay comparison.
8278
83c8f461 82791999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8280
427ec082 8281 * xfns.c (x_set_internal_border_width):
26901792
DL
8282 Call do_pending_window_change. Don't block input, don't call XFlush.
8283 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8284 (x_set_scroll_bar_width, x_set_font): Likewise.
8285
8286 * frame.c (Fset_frame_height): Call do_pending_window_change.
8287 (Fset_frame_width, Fset_frame_size): Likewise.
8288
8289 * xterm.c (x_set_window_size): When calling change_frame_size,
8290 specify 1 for DELAY.
8291
8292 * widget.c (EmacsFrameSetCharSize): Don't call
8293 do_pending_window_change here.
8294
82951999-07-30 Dave Love <fx@gnu.org>
8296
8297 * config.in: Add HAVE_STDLIB_H.
8298
82991999-07-30 Richard M. Stallman <rms@gnu.org>
8300
8301 * process.c (create_process): Detect failure of `pipe'.
8302
83031999-07-30 Keisuke Nishida <kei@psn.net>
8304
8305 * alloc.c (allocate_vectorlike): Add missing increment.
8306
8307 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8308
8309 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8310 before calling indirect_function.
8311
83121999-07-30 Eli Zaretskii <eliz@gnu.org>
8313
8314 * dispextern.h (load_color, lookup_derived_face): Declare
8315 prototypes.
8316
8317 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8318 it will be done later.
8319
8320 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8321 init_frame_faces if non-interactive.
8322 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8323 array with a call to msdos_stdcolor_name. The font name is now
8324 "ms-dos", consistent with realize_tty_face.
8325
8326 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8327 MSDOS frame.
8328
8329 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8330 x_set_toolbar_lines.
8331
8332 * xfaces.c (load_color): Remove static from definition and remove
8333 prototype.
8334 [MSDOS]: Add a DOS-specific version of load_color.
8335 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8336 (lookup_derived_face): New function.
8337 (realize_default_face): Support MSDOS frames.
8338 [MSDOS]: If fore/background colors are unspecified, inherit them
8339 from the frame.
8340 (realize_face): Support MSDOS frames.
8341 (realize_tty_face): Support MSDOS frames.
8342 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8343 load_color to try to find a suitable approximation. If the face
8344 is inverse-video, swap the foreground and background colors.
8345
8346 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8347 functions.
8348
8349 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8350
8351 * msdos.h: Remove redundant declarations (most of them are now in
8352 dispextern.h).
8353
8354 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8355 Use default frame colors if the face doesn't specify them; invert
8356 the colors if highlight is ON.
8357 (IT_write_glyphs): Rewritten for the new redisplay engine.
8358 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8359 how the hook is called by term.c.
8360 (IT_copy_glyphs): New function, copies an area of the display in
8361 video RAM.
8362 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8363 redisplay now calls it even if char_ins_del_ok is zero.
8364 (IT_set_frame_parameters): Prototype changed. Calls the new
8365 load_color. Puts the new fore/background colors into the default
8366 face on current frame.
8367 (IT_menu_display): Rewritten to handle the new struct glyph
8368 instead of a char array.
8369 (XMenuActivate): Call lookup_derived_face to create and use
8370 special faces for the pop-up and drop-down menus.
8371
83721999-07-29 Gerd Moellmann <gerd@gnu.org>
8373
8374 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8375 XawScrollbarSetThumb if thumb parameters haven't changed because
8376 that function apparently isn't optimized for this case.
8377
83781999-07-29 Eli Zaretskii <eliz@gnu.org>
8379
8380 * msdos.c (getdefdir): Don't return failure indication when
8381 _fixpath sets errno to ENOSYS.
8382
83831999-07-28 Gerd Moellmann <gerd@gnu.org>
8384
8385 * xdisp.c (string_char_and_length): New. Use it everywhere
8386 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8387
83881999-07-28 Kenichi Handa <handa@etl.go.jp>
8389
8390 * fns.c (count_combining): New function.
8391 (struct textprop_rec): New structure.
8392 (concat): Copy text properties correctly when byte combining
8393 occurs.
8394
83951999-07-28 Gerd Moellmann <gerd@gnu.org>
8396
8397 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8398 if display is mono.
8399 (x_draw_row_bitmaps): If face has stipple, don't switch
8400 to foreground color for clearing areas, and set the fill style.
8401
8402 * xfaces.c (load_face_colors): Load background color if setting
8403 stipple, too.
427ec082 8404 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8405 FillStippled.
8406
84071999-07-26 Ken'ichi Handa <handa@gnu.org>
8408
8409 * xterm.c (x_find_ccl_program): Add casting.
8410
8411 * w32fns.c (w32_find_ccl_program): Add casting.
8412
84131999-07-27 Gerd Moellmann <gerd@gnu.org>
8414
8415 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8416
8417 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8418 because this will try to access a nonexisting widget.
8419
84201999-07-26 Markus Rost <rost@gnu.org>
8421
427ec082 8422 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8423 (Fputhash): Ditto.
8424 (Fremhash): Ditto.
8425
84261999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8427
26901792
DL
8428 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8429 value to frame width and height.
8430
8431 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8432 into account for full-width windows. Don't add scroll bar width
8433 to width of clip rect.
8434 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8435 (x_set_glyph_string_background_width): Add 1 to background width.
8436 (x_draw_glyphs): Take internal border into account for full-width
8437 lines.
8438
84391999-07-26 Richard M. Stallman <rms@gnu.org>
8440
8441 * xfns.c (x_set_mouse_color): Always unload the old color.
8442 Don't allow nil as color value.
427ec082 8443 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8444 Always unload the old color.
8445
8446 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8447
84481999-07-26 Karl Heuer <kwzh@gnu.org>
8449
8450 * fns.c (Fy_or_n_p): Doc fix.
8451
84521999-07-26 Kenichi Handa <handa@etl.go.jp>
8453
8454 * ccl.h (setup_ccl_program): The type is changed to `int'.
8455
8456 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8457 stored in the following CCL code. Adjusted for the change of
8458 Vccl_program_table.
8459 (resolve_symbol_ccl_program): Adjusted for the new style of
8460 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8461 is resolving failed.
8462 (ccl_get_compiled_code): New function.
8463 (setup_ccl_program): Function type changed from `void' to `int'.
8464 Resolve symbols in CCL_PROG.
8465 (Fccl_program_p): New function.
8466 (Fccl_execute): Get compiled CCL code by just calling
8467 setup_ccl_program.
8468 (Fccl_execute_on_string): Likewise.
8469 (Fregister_ccl_program): Adjusted for the change of
8470 Vccl_program_table.
8471
8472 * coding.c (setup_coding_system): Get compiled CCL code by just
8473 calling setup_ccl_program.
8474
8475 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8476 calling setup_ccl_program.
8477
8478 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8479 calling setup_ccl_program.
8480
84811999-07-23 Gerd Moellmann <gerd@gnu.org>
8482
8483 * xfaces.c (frame_update_line_height): Just use the height of the
8484 frame's fontset or font, instead of taking face fonts into
8485 account.
8486
8487 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8488
84891999-07-23 Richard M. Stallman <rms@gnu.org>
8490
8491 * window.c (Fsplit_window): For default size, round up for left window.
8492
84931999-07-21 Joe Ramey <ramey@ti.com>
8494
8495 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8496 has returned -1 (lockfile exists but is not a symlink?).
8497
84981999-07-20 Gerd Moellmann <gerd@gnu.org>
8499
8500 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8501 because of a change in cursor_gc made in 20.4.
8502
85031999-07-19 Gerd Moellmann <gerd@gnu.org>
8504
8505 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8506 for YNegative, if using X toolkit.
8507
427ec082 8508 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8509 from positions returned.
8510
85111999-07-17 Gerd Moellmann <gerd@gnu.org>
8512
8513 * xrdb.c (x_load_resources): Set double-click time defaults
8514 for Motif list boxes from double-click-time.
8515
8516 * fns.c (Vhash_table_tests): Remvoed.
8517 (Qhash_table_test): New.
8518 (syms_of_fns): Initialize Qhash_table_test.
8519 (Fmake_hash_table): Look up user-defined tests in symbol prop
8520 `hash-table-test'.
8521 (Fdefine_hash_table_test): Store test and hash function as
8522 symbol prop `hash-table-test'.
8523 (make_hash_table): Add parameters user_test and user_hash.
8524
8525 * window.c (set_window_buffer): Set window margins for tty
8526 frames, too.
8527 (Fset_window_margins): Ditto.
8528
8529 * term.c (append_glyph): Use glyph area of iterator instead of
8530 always TEXT_AREA.
8531
8532 * dispnew.c (update_frame_1): Add left margin width to cursor
8533 hpos.
8534 (direct_output_for_insert): Ditto.
8535 (direct_output_forward_char): Ditto.
8536
8537 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8538
8539 * dispextern.h (struct glyph_matrix): Add top_line_p.
8540
85411999-07-16 Gerd Moellmann <gerd@gnu.org>
8542
8543 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8544 instead.
8545
8546 * fns.c (cmpfn_eq): Add hash code parameters.
8547 (cmpfn_eql): Ditto.
8548 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8549 (cmpfn_user_defined): Likewise.
8550
85511999-07-15 Gerd Moellmann <gerd@gnu.org>
8552
8553 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8554
8555 * fns.c (maybe_resize_hash_table): Correct computation of
8556 index vector size.
8557 (make_hash_table): Ditto.
8558 (Fmakehash): New.
8559
8560 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8561
8562 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8563 (survives_gc_p): Make it externally visible.
8564 (mark_object): Ditto.
8565
8566 * fns.c (remove_hash_entry): Removed.
8567 (sweep_weak_hash_tables): New.
8568
8569 * print.c (print): Print more information about hash tables.
8570
8571 * xfns.c (image_spec_hash): Removed.
8572 (lookup_image): Use sxhash instead of image_spec_hash.
8573 (image_spec_equal_p): Removed.
8574 (lookup_image): Use Fequal instead of image_spec_equal_p.
8575
85761999-07-14 Gerd Moellmann <gerd@gnu.org>
8577
8578 * lisp.h (P_): Moved to top of file.
8579
8580 * fns.c (make_hash_table): Set new members.
8581
8582 * alloc.c (mark_object): Mark hash table's user_hash_function.
8583 Mark index vector for weak hash tables.
8584
8585 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8586 user_hash_function, cmpfn, and hashfn.
8587
8588 * fns.c (build_hash): Removed.
8589 (hash_test): Removed.
8590 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8591 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8592
85931999-07-13 Gerd Moellmann <gerd@gnu.org>
8594
8595 * alloc.c (survives_gc_p): New.
8596
8597 * print.c (print): Add hash table handling.
8598
8599 * alloc.c (mark_object): Add code to mark hash tables.
8600
8601 * lisp.h (GC_HASH_TABLE_P): New.
8602
8603 * emacs.c (main): Call init_fns.
8604
8605 * fns.c (init_fns): New.
8606
8607 * fns.c: Add hash table implementation.
8608
8609 * lisp.h (PVEC_HASH_TABLE): New.
8610 (struct Lisp_Hash_Table): New.
8611 (XHASH_TABLE): New.
8612 (XSET_HASH_TABLE): New.
8613 (HASH_TABLE_P): New.
8614 (CHECK_HASH_TABLE): New.
8615 (DEFAULT_HASH_SIZE): New.
8616 (DEFAULT_REHASH_THRESHOLD): New.
8617 (DEFAULT_REHASH_SIZE): New.
8618
8619 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8620 (x_write_glyphs): Compute overwritten cursor using real start
8621 and end positions of display.
8622 (x_insert_glyphs): Ditto.
8623
86241999-07-10 Gerd Moellmann <gerd@gnu.org>
8625
8626 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8627
8628 * dispnew.c (blank_row): Add y-position as parameter. Compute
8629 visible height.
8630
8631 * xdisp.c (next_element_from_string): Give padding spaces
8632 a position of -1.
8633
427ec082 8634 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8635 marginals areas on tty frames in a future version.
8636 (allocate_matrices_for_frame_redisplay): Ditto.
8637
8638 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8639 to zero if number of glyphs in the row is <= 1.
8640
86411999-07-09 Gerd Moellmann <gerd@gnu.org>
8642
8643 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8644 into account.
8645
8646 * xdisp.c (handle_display_prop): Don't reset area if handing
8647 a property from a string that came from a `display' property.
8648 (handle_single_display_prop): Don't handle recursive `display'
8649 properties.
8650 (handle_single_display_prop): Handle some display property
8651 forms for terminal frames.
8652 (Qimage): Moved here from xfns.c.
8653
8654 * dispextern.h (struct it): New field string_from_display_prop_p.
8655
8656 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8657 line.
8658
86591999-07-08 Gerd Moellmann <gerd@gnu.org>
8660
8661 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8662
8663 * window.c (set_window_buffer): Set window's vscroll to zero.
8664
8665 * xdisp.c (QCwhen): New.
8666 (display_prop_end): New.
8667 (handle_single_display_prop): Use it.
8668 (debug_method_add): Print buffer name if tracing.
8669 (try_window_reusing_current_matrix): Compute visible height
8670 of reused rows. Fix cursor position calculation in case of
8671 top-line.
8672
8673 * dispextern.h (struct redisplay_interface): Add parameter
8674 cursor_on_p to update_window_end_hook.
8675
8676 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8677
86781999-07-07 Gerd Moellmann <gerd@gnu.org>
8679
427ec082 8680 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8681 doesn't become negative when decrementing it.
8682
8683 * eval.c (Fsignal): Reset redisplaying_p to zero.
8684
8685 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8686 for window update.
8687 (try_window_id): Ditto.
8688
8689 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8690 (x_scroll_run): Ditto.
8691 (any_help_event_p): New.
8692 (x_initialize): Set it to zero.
8693 (XTread_socket): Clear help echo only if any_help_event_p.
8694
8695 * xdisp.c (init_iterator): Set top_line_p.
8696 (start_display): Use correct initial y if top-line is present.
8697 (make_cursor_line_fully_visible): Bug fixes for top-line.
8698 (try_scrolling): Ditto.
8699 (try_window_reusing_current_matrix): Ditto.
8700
8701 * dispextern.h (struct it): Add top_line_p.
8702
8703 * dispnew.c (shift_glyph_matrix): Move some computations out
8704 of the loop.
8705
427ec082 8706 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8707 XFLOATINT.
8708
87091999-07-06 Gerd Moellmann <gerd@gnu.org>
8710
8711 * dispnew.c (update_frame_1): When setting cursor in echo area,
8712 skip only over padding spaces at the end.
8713
8714 * xfaces.c (realize_tty_face): Set face's font_name field to
8715 "tty".
8716
8717 * term.c (update_end): Turn cursor on only if selected window's
8718 cursor_off_p flag is not set.
8719
87201999-07-05 Gerd Moellmann <gerd@gnu.org>
8721
8722 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8723 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8724 (TS_cursor_invisible): New.
8725 (term_init): Initialize TS_cursor_invisible.
8726 (tty_hide_cursor): New.
8727 (tty_show_cursor): New.
8728 (update_end): Show tty cursor.
8729 (update_begin): Hide tty cursor to prevent cursor flickering
8730 during redisplays triggered by timers (stealth fontification).
8731
8732 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8733
8734 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8735 in scroll bars.
8736 (x_handle_toolbar_click): Set modifier bits.
8737
87381999-07-04 Gerd Moellmann <gerd@gnu.org>
8739
8740 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8741 instead of a pointer to a volatile input_event.
427ec082 8742 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8743 declaration of local variable `sp'.
8744 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8745 to kbd_fetch_ptr.
8746
87471999-07-03 Gerd Moellmann <gerd@gnu.org>
8748
8749 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8750 only if buffer is modified. Return quickly if changes are
8751 above window start.
8752
87531999-07-02 Gerd Moellmann <gerd@gnu.org>
8754
8755 * dispextern.h (HSCROLL_WINDOWS): Removed.
8756
8757 * xdisp.c (mark_window_display_accurate): Don't set
8758 w->region_showing.
8759 (redisplay_internal): Don't call redraw_garbaged_frames.
8760
87611999-07-01 Gerd Moellmann <gerd@gnu.org>
8762
8763 * xdisp.c (echo_area_display): Don't display truncation marks
8764 for messages because 20.4 doesn't do it either.
8765 (redisplay_window): Case same window start. Instead of giving
8766 up when cursor is partially visible, make it fully visible.
8767 (mark_window_display_accurate): Some cleanup. Record window's
8768 last cursor information.
8769 (debug_method_add): Improved.
8770 (redisplay_internal): Record last cursor info only if not
8771 consider_all_windows_p.
8772
8773 * dispnew.c (update_window): Update top line after scrolling.
8774 (blank_row): Renamed from make_empty_enabled_row.
8775 (increment_glyph_row_buffer_positions): Increment positions
8776 in buffers, only.
8777
8778 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8779 string.
8780
87811999-06-30 Gerd Moellmann <gerd@gnu.org>
8782
8783 * dispnew.c (update_window): Check that updated row is visible.
8784
8785 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8786 top of window differently.
8787
8788 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8789 if region is showing.
8790
8791 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8792 avoiding matrix reallocation. Set window_vscroll in matrix.
8793
8794 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8795
26901792
DL
8796 * xdisp.c (debug_method_add): New.
8797 (debug_redisplay_method): Removed.
8798 (try_window_reusing_current_matrix): Handle case where old
8799 window start is the same as new window start.
8800
8801 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8802 an array instead of a pointer.
8803
26901792
DL
8804 * xfns.c (Fx_show_tip): Undo previous change.
8805
8806 * xterm.c (x_append_glyph): Clear glyph->u.val.
8807
8808 * dispextern.h (struct glyph): Increase size of face_id bit-field
8809 for CHAR_GLYPH to 12.
8810
88111999-06-29 Gerd Moellmann <gerd@gnu.org>
8812
8813 * xfaces.c (x_charset_registry): Make it externally visible.
8814
88151999-06-28 Gerd Moellmann <gerd@gnu.org>
8816
427ec082 8817 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8818 instead of WINDOW_WANTS_MODELINE_P.
8819
8820 * xterm.c (clear_mouse_face): Make externally visible.
8821
8822 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8823
8824 * xterm.c (expose_line): Handle exposure of top-lines.
8825
8826 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8827 if mouse_face_mouse_frame is null.
8828
8829 * xdisp.c (redisplay_window): If window is echo_area_window,
8830 and update_mode_line is set, update menubar and toolbar.
8831
8832 * dispnew.c (space_glyph): Set its charpos to -1.
8833 (update_frame_1): Ignore trailing padding spaces.
8834
8835 * xdisp.c (next_element_from_c_string): Set position of padding
8836 glyphs to -1.
8837
88381999-06-27 Gerd Moellmann <gerd@gnu.org>
8839
8840 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8841 XQueryColor.
8842
8843 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8844 (set_cursor_from_row): Skip over glyphs having a null object at
8845 the start of rows.
8846 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8847 glyphs.
8848 (handle_invisible_prop): Compute next change only when needed.
8849 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8850 line.
8851
88521999-06-26 Gerd Moellmann <gerd@gnu.org>
8853
8854 * xrdb.c (x_load_resources): Don't set resource for double-click
8855 time.
8856
8857 * xdisp.c (try_window_id): Return quickly if all changes are
8858 below the window's current matrix end.
8859
8860 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8861 parameter.
8862
8863 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8864 in desired not in current matrix.
8865 (try_window_reusing_current_matrix): Rotate matrices starting
8866 at start_vpos instead of 0.
8867
8868 * xterm.c (expose_window): Use window_text_bottom_y.
8869 (fast_find_position): Ditto.
8870
8871 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8872 (try_window_reusing_current_matrix): Ditto.
8873 (get_last_unchanged_at_beg_row): Ditto.
8874 (init_iterator): Ditto.
8875
8876 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8877 more row.
8878 (check_matrix_invariants): Use window_text_bottom_y.
8879 (update_window): Ditto.
8880 (scrolling_window): Ditto.
8881
8882 * xdisp.c (window_text_bottom_y): New.
8883
88841999-06-25 Gerd Moellmann <gerd@gnu.org>
8885
8886 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8887 clearing mouse face.
8888 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8889 event.xcrossing.focus is not set, and focus is in the menu bar,
8890 set focus frame as if event.xcrossing.focus were set.
8891
88921999-06-24 Gerd Moellmann <gerd@gnu.org>
8893
8894 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8895 * keyboard.c (make_lispy_movement): Ditto.
8896
8897 * window.c (coordinates_in_window): Return 4 if on top line.
8898 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8899
8900 * xdisp.c (window_box_height): Subtract top line height.
8901 (window_box): Add top line height to top y position if top line
8902 exists.
8903 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8904 the top line row of the window. Set initial y-position to
8905 window's top line height plus delta.
8906 (start_display): Choose start glyph row depending on whether
8907 window has a top line.
8908 (try_scrolling): Take top line height into account for aggressive
8909 scrolling.
8910 (compute_window_start_on_continuation_line): Take top line into
8911 account.
427ec082 8912 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
8913 trigger a new redisplay.
8914 (try_window_reusing_current_matrix): Take top line into account.
8915 (find_last_row_displaying_text): Ditto.
8916 (get_last_unchanged_at_beg_row): DItto.
8917 (try_window_id): Ditto.
8918 (compute_line_metrics): Ditto.
8919
8920 * dispnew.c (shift_glyph_matrix): Compute visible row height
8921 taking top line of window into account.
8922 (update_window): Update top line. If scrolling_window detects
8923 that all rows are equal, only set cursor.
8924 (update_window_line): Call after_update_window_line_hook if
8925 mode_line_p flag of rows has changed.
8926 (scrolling_window): Add parameter top_line_p. Return -1 if
8927 all rows are equal.
8928 (mode_line_string): Add parameter mode_line_p. Handle strings
8929 in top lines.
8930
8931 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8932 (MATRIX_FIRST_TEXT_ROW): New.
8933 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8934 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8935 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8936 (MATRIX_TOP_LINE_HEIGHT): New.
8937 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8938 (CURRENT_TOP_LINE_HEIGHT): New.
8939 (DESIRED_TOP_LINE_HEIGHT): New.
8940 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8941 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8942 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8943 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8944
8945 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8946 lines.
8947 (x_draw_row_bitmaps): Take top line into account when clearing
8948 bitmap area.
8949 (x_estimate_mode_line_height): Replacement for
8950 x_frame_mode_line_height.
8951 (x_get_glyph_string_clip_rect): Take top line into account.
8952 (x_clear_end_of_line): Ditto.
8953 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8954 top lines.
8955 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8956 (x_erase_phys_cursor): Take top line into account.
8957
8958 * xdisp.c (window_box_height): Subtract top line height if
8959 window wants a top line.
8960 (display_mode_lines): New.
8961 (redisplay_window): Call it.
8962 (display_mode_line): Add parameters face_id and format.
8963
8964 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8965 (MATRIX_TOP_LINE_HEIGHT): New.
8966
8967 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8968
8969 * term.c (estimate_mode_line_height): Renamed from
8970 frame_mode_line_height. Add parameter face_id.
8971 (estimate_mode_line_height_hook): Renamed from
8972 frame_mode_line_height_hook.
8973 (produce_special_glyphs_hook): Removed.
8974 (produce_glyphs_hook): Removed.
8975
89761999-06-23 Gerd Moellmann <gerd@gnu.org>
8977
8978 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8979 (struct glyph_row): Add mode_line_p.
8980
8981 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8982 (Qtop_line): New.
8983 (syms_of_xfaces): Initialize Qtop_line.
8984
8985 * dispextern.h (TOP_LINE_FACE_ID): New.
8986
8987 * buffer.c (init_buffer_once): Set default for
8988 top_line_format to nil.
8989 (init_buffer_once): Init top_line_format.
8990 (default-top-line-format): New.
8991 (top-line-format): New buffer-local variable.
8992
8993 * buffer.h: Add top_line_format.
8994
8995 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8996
89971999-06-17 Dave Love <fx@gnu.org>
8998
8999 * xfns.c: Move the PNG section before the JPEG one to avoid
9000 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 9001
26901792
DL
90021999-06-17 Gerd Moellmann <gerd@gnu.org>
9003
9004 * xfns.c (x_kill_gs_process): Don't free colors.
9005
90061999-06-17 Dave Love <fx@gnu.org>
9007
9008 * s/gnu-linux.h: Zap spurious ~.
9009
90101999-06-16 Gerd Moellmann <gerd@gnu.org>
9011
9012 * xfns.c (gif_load): Improve multi-image support.
9013
90141999-06-15 Gerd Moellmann <gerd@gnu.org>
9015
9016 * xfns.c (gif_load): Support multi-image files.
9017
9018 * Makefile.in (LIBGIF): Use libungif.
9019
9020 * configure.in (HAVE_GIF): Use libungif instead of libgif
9021 because the former doesn't contain patented compression code.
9022
9023 * xdisp.c (compute_window_start_on_continuation_line): Don't
9024 do it if line start is too far away from window start.
9025
90261999-06-14 Gerd Moellmann <gerd@gnu.org>
9027
9028 * buffer.c (init_buffer_once): Set buffer_local_flags for
9029 scroll_*_aggressively.
9030 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9031 (init_buffer_once): Set defaults for these variables.
9032 (syms_of_buffer): Add default-scroll-*-aggressively.
9033
9034 * buffer.h (scroll_up_aggressively): New.
9035 (scroll_down_aggressively): New.
9036
9037 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9038 a static PNG library.
9039
9040 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9041 in case it's a static library.
9042
9043 * Makefile.in (ctagsfiles): Split so that files starting
9044 with an `x' are found before files starting with `w32'.
9045 (ctagsfiles1): New.
9046 (ctagsfiles2): New.
9047 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9048
9049 * xdisp.c (compute_window_start_on_continuation_line): New.
9050 (redisplay_window): Use it.
9051 (INFINITY): New.
9052 (reseat_to_string): Use it.
9053 (hscroll_window_tree): Ditto.
9054 (compute_window_start_on_continuation_line): Ditto.
9055 (redisplay_window): Don't force display with a new window start.
9056
90571999-06-06 Gerd Moellmann <gerd@gnu.org>
9058
9059 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9060 if widget not present.
9061
9062 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9063
90641999-06-04 Gerd Moellmann <gerd@gnu.org>
9065
9066 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9067 value of realize_basic_faces.
9068 (load_face_font_or_fontset): Store full font name in face.
9069 (realize_default_face): Use full font name.
9070
26901792
DL
9071 * xterm.c (x_produce_glyphs): Set member char_to_display.
9072 (x_append_glyph): Store char_to_display in glyphs.
9073
9074 * dispextern.h (struct it): Add char_to_display.
9075
9076 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9077 if faces haven't been initialized.
9078 (Fx_create_frame): Call face-set-after-frame-default after
9079 faces have been initialized, and widget has been created.
9080
9081 * puresize.h (BASE_PURESIZE): Increased.
9082
90831999-06-01 Gerd Moellmann <gerd@gnu.org>
9084
9085 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9086 (Finternal_set_lisp_face_attribute): If frame is t when
9087 :font attribute is set, use the selected frame.
9088 (clear_face_cache): Add parameter clear_fonts_p.
9089 (Fclear_face_cache): Add optional parameter thorougly.
9090
9091 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9092 in table.
9093 (Fclear_face_cache): New.
9094 (choose_face_fontset_font): If fontset doesn't contain font
9095 pattern for the given charset, use CHARSET_ASCII.
9096 (Finternal_set_lisp_face_attribute): Fix handling of nil
9097 stipple attribute.
9098 (Finternal_set_lisp_face_attribute): Fix handling of changing
9099 font-related face attributes of the default face.
9100 (set_lface_from_font_name): Set only attributes that aren't
9101 specified.
9102
91031999-05-31 Gerd Moellmann <gerd@gnu.org>
9104
9105 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9106 font support.
9107 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9108 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9109 scalable fonts depending on the setting of SCALABLE_FONTS.
9110 (first_font_matching): List more than one font to find the
9111 first non-scalable matching font.
9112 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9113 depending on SCALABLE_FONTS.
9114 (better_font_p): New parameter compare_pt_p. If zero, don't
9115 compare point sizes of fonts.
9116 (exact_face_match_p) [SCALABLE_FONTS]: New.
9117 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9118 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9119 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9120 (syms_of_xfaces): Add scalable-fonts-allowed.
9121
91221999-05-26 Gerd Moellmann <gerd@gnu.org>
9123
9124 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9125 mask only if image contains simple transparency information.
9126 Otherwise, combine image with frame background color.
9127
9128 * configure.in (--with-png, HAVE_PNG): New.
9129
9130 * config.in (HAVE_PNG): New.
9131
9132 * Makefile.in: Add PNG library.
9133
9134 * xfns.c: Add PNG support.
9135
91361999-05-25 Gerd Moellmann <gerd@gnu.org>
9137
9138 * xdisp.c (init_xdisp): Initialize echo_area_message and
9139 previous_echo_area_message to nil.
9140
9141 * keyboard.c (read_char): Rename local variable echo_area_message
9142 because it shadows the global one.
9143
91441999-05-05 Gerd Moellmann <gerd@gnu.org>
9145
9146 * xterm.c (note_mode_line_highlight): Restructured.
9147
9148 * window.c (coordinates_in_window): Handle windows that don't have
9149 a mode line because their buffer's mode-line-format is nil.
9150 Recognize the mode line under x positions that correspond to
9151 flags areas and left scroll bar.
9152
91531999-05-02 Dave Love <fx@gnu.org>
9154
9155 * xterm.c (note_mouse_highlight): Separate help-echo processing
9156 from check on mouse-face so that it works generally.
9157
91581999-04-21 Gerd Moellmann <gerd@gnu.org>
9159
9160 * sound.c (Fplay_sound): Run hook play-sound-hook.
9161 (Qplay_sound_hook): New.
9162
91631999-04-20 Gerd Moellmann <gerd@gnu.org>
9164
9165 * xdisp.c (update_echo_area): Handle echo_area_message.
9166
91671999-04-19 Gerd Moellmann <gerd@gnu.org>
9168
9169 * editfns.c (Fmessage): Use message3.
9170
9171 * print.c (printchar): Set echo_area_message to nil.
9172 (strout): Ditto.
9173
9174 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9175 (Fminibuffer_completion_help): Ditto.
9176
9177 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9178 (command_loop_1): Test echo_areA_message.
9179 (read_char): Ditto.
9180 (record_menu_key): Set echo_area_message to nil.
9181 (Fexecute_extended_command): Test echo_area_message.
9182 (Fexecute_extended_command): Handle echo_area_message.
9183
9184 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9185 is set.
9186
9187 * editfns.c (Fcurrent_message): If echo_area_message is set,
9188 return a substring of that string.
9189
9190 * dispnew.c (direct_output_for_insert): Test echo_area_message
9191 in addition to echo_area_glyphs.
9192 (set_window_cursor_after_update): Ditto.
9193 (update_frame_1): Ditto.
9194
9195 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9196 old Lisp message string.
9197
9198 * xdisp.c (echo_area_message): New.
9199 (previous_echo_area_message): New.
9200 (syms_of_xdisp): Initialize and staticpro new variables.
9201 (echo_area_display): Display echo_area_message if set.
9202 (message2_nolog): Set echo_area_message and
9203 previous_echo_area_message.
9204 (echo_area_display): Set previous_echo_area_message.
9205 (redisplay_internal): Display echo area if echo_area_message
9206 or previous_echo_area_message are set.
9207 (redisplay_preserve_echo_area): Test/set echo_area_message and
9208 previous_echo_area_message.
9209 (redisplay_window): Test echo_area_message.
9210 (message3_nolog): New.
9211 (message3): New.
9212
9213 * editfns.c (Fformat): Add text properties to the result string
9214 from properties of the format string and properties of string
9215 arguments.
9216
9217 * textprop.c (text_property_list): New.
9218 (add_text_properties_from_list): New.
9219 (extend_property_ranges): New.
9220
92211999-03-29 Gerd Moellmann <gerd@gnu.org>
9222
9223 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9224 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9225 Use these symbols for the box face attribute instead of the
9226 removed ones.
9227
92281999-03-12 Gerd Moellmann <gerd@gnu.org>
9229
9230 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9231 Correct wrong test for slant.
9232
92331999-03-10 Gerd Moellmann <gerd@gnu.org>
9234
9235 * xfaces.c: Use `unspecified' for unspecified face attributes,
9236 use t and nil for on/off.
9237
92381999-03-06 Gerd Moellmann <gerd@gnu.org>
9239
9240 * buffer.c (syms_of_buffer): Extend doc string of
9241 mode-line-format.
9242
9243 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9244 (first_font_matching): New.
9245 (set_lface_from_font_name): Use it if font name is a pattern.
9246 (font_field_wildcard_p): Removed.
9247
9248 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9249 Recompute visible height of rows.
9250
9251 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9252 Don't accept non-strings for help-echo from overlays.
9253
92541999-03-04 Dave Love <fx@gnu.org>
9255
9256 * xterm.c (note_mouse_highlight): Check overlays for help-text
9257 property.
9258 (XTread_socket): Fix compiler warning.
427ec082 9259
26901792
DL
92601999-03-05 Gerd Moellmann <gerd@gnu.org>
9261
427ec082 9262 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9263 overlay to 10. Call overlays_at so that it doesn't try to
9264 extend the vector.
9265
9266 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9267 height.
9268
9269 * dispnew.c (row_equal_p): Compare visible row height, only.
9270 (update_text_area): Draw whole line if visible heights of
9271 rows differ.
9272 (update_window_line): Call after_update_window_line_hook
9273 if visible row height has changed.
9274
9275 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9276 (struct glyph_row): New member visible_height.
9277
9278 * xfaces.c (font_field_wildcard_p): New.
9279 (set_lface_from_font_name): Remove parameter force_p. Accept
9280 font names containing wildcards.
9281
92821999-03-04 Gerd Moellmann <gerd@gnu.org>
9283
9284 * xterm.c (x_after_update_window_line): Clear internal border
9285 when windows_or_buffers_changed.
9286
9287 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9288 buffer has a nil mode_line_format.
9289
92901999-03-03 Gerd Moellmann <gerd@gnu.org>
9291
9292 * xterm.c (x_setup_relief_colors): Use either background color
9293 or specified color.
9294
9295 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9296
9297 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9298
9299 * xterm.c (x_draw_box_rect): New.
9300 (x_draw_glyph_string_box): Renamed from
9301 x_draw_glyph_string_relief. Call x_draw_box_rect.
9302
9303 * xfns.c (QCrelief): New.
9304 (syms_of_xfns): Initialize it.
9305
9306 * dispextern.h (struct glyph): Rename left_shadow_p to
9307 left_box_line_p, right_shadow_p to right_box_line_p.
9308 (MAX_RELIEF_THICKNESS): Removed.
9309 (struct it): Rename members having `relief' in their names
9310 to contain `box' instead.
9311
9312 * xfaces.c (realize_x_face): Handle new box attribute values.
9313 (QCrelief, Qbox): Removed.
9314 (QCshadow, QCcolor, Qraised, Qsunken): New.
9315 (syms_of_xfaces): Initialize new symbols.
9316
93171999-03-02 Gerd Moellmann <gerd@gnu.org>
9318
9319 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9320
9321 * xfaces.c (LFACE_RELIEF): Removed.
9322 (merge_face_vector_with_property): Remove handling of `:relief'.
9323 (Finternal_set_lisp_face_attribute): Ditto.
9324 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9325 (Finternal_get_lisp_face_attribute): Ditto.
9326 (realize_default_face): Ditto.
9327 (lface_hash): Don't compute hash from relief.
9328
9329 * dispextern.h (struct face): Replace member `relief' by
9330 `box_line_width'. Add member `box'.
9331 (face_box_type): New.
9332
9333 * xterm.c (x_produce_glyphs): If face has overline, add overline
9334 thickness + 1 to ascent.
9335
93361999-03-01 Gerd Moellmann <gerd@gnu.org>
9337
9338 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9339 strike-through, and boxes.
9340 (x_draw_glyph_string_underline): Removed.
9341
9342 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9343 (Qoverline, Qstrike_through, Qbox): New.
9344 (syms_of_xfaces): Define these symbols.
9345 (check_lface_attrs): Add checks for overline, strike-through,
9346 and box.
9347 (Finternal_set_lisp_face_attribute): Set new attributes.
9348 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9349 (load_color): Handle new attributes.
9350 (realize_x_face): Ditto.
9351 (merge_face_vector_with_property): Ditto.
9352 (free_face_colors): Ditto.
9353 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9354 (Finternal_get_lisp_face_attribute): Ditto.
9355 (Finternal_lisp_face_attribute_values): Ditto.
9356
9357 * dispextern.h (lface_attribute_index): Add enumerators for
9358 overstrike, strike-through, and box.
9359 (struct face): Add members for overline, strike-through, and
9360 box.
9361
93621999-02-17 Dave Love <fx@gnu.org>
9363
9364 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9365 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9366 files.
9367
93681999-02-16 Gerd Moellmann <gerd@gnu.org>
9369
9370 * keyboard.c (toolbar_items): Call access_keymap with third
9371 parameter 1, so that we don't get inherited toolbar item
9372 definitions.
9373
9374 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9375 the window end vpos when in empty first line of window.
9376
93771999-02-15 Gerd Moellmann <gerd@gnu.org>
9378
9379 * xfaces.c (set_font_frame_param): New.
9380 (Finternal_set_lisp_face_attribute): Call it.
9381
9382Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9383
9384 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9385 Accept specifications of color for underline.
9386
93871999-02-13 Gerd Moellmann <gerd@gnu.org>
9388
9389 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9390 `frame' is t, operate on face defaults for new frames. If it
9391 is nil, operate on the selected frame.
9392
93931999-02-12 Gerd Moellmann <gerd@gnu.org>
9394
9395 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9396 (update_window): Put the call to check_matrix_invariants in #if 0.
9397
9398Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9399
9400 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9401 Remove definition of UNDERLINE_COLOR.
9402
9403Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9404
9405 * xfaces.c (free_face_colors): Free the color for underline.
9406
9407 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9408 to the GC.
9409
9410Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9411
9412 * dispextern.h (UNDERLINE_COLOR): Defined.
9413 (struct face): Added two new members.
9414 underline_color, underline_defaulted_p.
9415
427ec082 9416 * xfaces.c (merge_face_vector_with_property):
26901792 9417 (check_lface_attrs): Accept the string value for underline.
427ec082 9418 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9419
9420 * xfaces.c (load_color): Change the last argument type to enum
9421 lface_attribute_index from int. And addec code for underling coloring.
9422 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9423
26901792
DL
94241999-02-12 Gerd Moellmann <gerd@gnu.org>
9425
9426 * xfns.c (Fx_image_header): Removed.
9427
94281999-02-07 Gerd Moellmann <gerd@gnu.org>
9429
9430 * xterm.c: Don't include <bitmaps/gray>.
9431 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9432
9433 * xfns.c (Fx_image_header): Add missing `\n\'.
9434 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9435
94361999-02-01 Gerd Moellmann <gerd@gnu.org>
9437
9438 * xterm.c (x_scroll_bar_create): Set background pixel from
9439 specified scroll bar color.
9440 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9441
9442 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9443 (x_set_scroll_bar_background): Ditto.
9444
9445 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9446
9447 * xfns.c (x_default_scroll_bar_color_parameter): New.
9448 (Fx_create_frame): Call it.
9449
94501999-01-31 Gerd Moellmann <gerd@gnu.org>
9451
9452 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9453 values in x_output structure.
26901792
DL
9454 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9455 (syms_of_xfns): Initialize these symbols.
9456
9457 * xterm.h (struct x_output): Add scroll bar pixel colors.
9458
9459 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9460 (x_set_scroll_bar_foreground): New.
9461 (x_set_scroll_bar_background): New.
9462
26901792
DL
94631999-01-12 Gerd Moellmann <gerd@gnu.org>
9464
9465 * xdisp.c (handle_single_display_prop): New.
9466 (handle_display_prop): Call it.
9467 (handle_raise_prop): Removed.
9468 (handle_height_prop): Removed.
9469 (handle_space_width_prop): Removed.
9470 (handle_face_prop): Remove handling of raised text.
9471 (handle_display_prop): Do it here.
9472
9473 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9474 (RAISE_PROP_IDX): Removed.
9475 (HEIGHT_PROP_IDX): Removed.
9476 (SPACE_WIDTH_PROP_IDX): Removed.
9477
9478 * xdisp.c (Qdisplay): Replaces Qglyph.
9479 (handle_display_prop): Formerly handle_glyph_prop.
9480
94811999-01-11 Gerd Moellmann <gerd@gnu.org>
9482
9483 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9484 (handle_stop): Set position in display vector to -1. Don't
9485 check overlay strings when set up to deliver characters from a
9486 display vector.
9487 (set_iterator_to_next): At the end of a run of characters from a
9488 display vector, check whether the display vector display replaces
9489 the display of a character.
9490
94911999-01-05 Gerd Moellmann <gerd@gnu.org>
9492
9493 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9494 X window hasn't been created yet.
9495
94961998-12-06 Gerd Moellmann <gerd@gnu.org>
9497
9498 * sound.c: New.
9499
95001998-12-04 Gerd Moellmann <gerd@gnu.org>
9501
9502 * config.in (HAVE_SOUND): New.
9503
9504 * emacs.c (main): Call syms_of_sound and init_sound.
9505
9506 * Makefile.in (obj): Add sound.o.
9507
9508 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9509
9510 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9511 (HAVE_SYS_SOUNDCARD_H): New.
9512
95131998-12-03 Gerd Moellmann <gerd@gnu.org>
9514
9515 * buffer.h (struct buffer): indicate_empty_lines renamed from
9516 indicate_zv_lines.
9517
9518 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9519 (default-indicate-zv-lines): Likewise.
9520
9521 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9522 to indicate_empty_line_p.
9523
9524 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9525 to next_element_from_buffer.
9526
9527 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9528
9529 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9530 and `N-'.
9531
9532 * xfns.c (xbm_scan): New.
9533 (xbm_read_hexint): Removed.
9534 (xbm_read_bitmap_file_data): Use xbm_scan.
9535
9536 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9537
95381998-12-02 Gerd Moellmann <gerd@gnu.org>
9539
9540 * xfns.c (xbm_read_hexint): New.
9541 (xbm_read_bitmap_file_data): New.
9542 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9543 instead of XReadBitmapFileData.
9544
9545 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9546
9547 * xfaces.c (face_with_height): New.
9548
9549 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9550 (eval_form): Renamed from eval_mode_element.
9551 (handle_face_prop): Use it.
9552 (Qheight): Replaces Qsmaller.
9553 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9554 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9555 integer, evaluate it to get the font height to use.
9556
9557 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9558 (struct it): Use `font_height' instead of `smaller'.
9559
95601998-12-01 Gerd Moellmann <gerd@gnu.org>
9561
9562 * xdisp.c (reseat_1): New.
9563 (reseat): Call it.
9564 (move_it_vertically_backward): Ditto.
9565 (redisplay_window): Don't abort when cursor not found in recenter.
9566
95671998-11-30 Gerd Moellmann <gerd@gnu.org>
9568
9569 * xdisp.c (reseat_at_next_visible_line_start): When not
9570 currently delivering display elements from the current buffer,
9571 restore buffer position first.
9572 (init_from_display_pos): Don't set IT's position from the
9573 position passed to this function.
9574
95751998-11-28 Gerd Moellmann <gerd@gnu.org>
9576
9577 * config.in (PROTO): Removed.
9578
9579 * xterm.h: Change PROTO to P_.
9580
95811998-11-26 Gerd Moellmann <gerd@gnu.org>
9582
9583 * xterm.c (take_vertical_position_into_account): New.
9584 (x_produce_image_glyph): Call it.
9585 (x_produce_stretch_glyph): Ditto.
9586 (x_produce_glyphs): Ditto.
9587 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9588 (x_fill_composite_glyph_string): Ditto.
9589 (x_fill_image_glyph_string): Ditto.
9590 (x_fill_stretch_glyph_string): Ditto.
9591
9592 * xdisp.c (display_line): Always compute row height from
9593 max_ascent and max_descent.
9594
9595 * dispextern.h (struct glyph): Add voffset.
9596 (struct it): Replace height by descent, max_height by max_descent.
9597
9598 * xterm.c (x_append_glyph): Set voffset
9599 (x_append_stretch_glyph): Ditto.
9600 (x_produce_image_glyph): Ditto.
9601 (x_produce_glyphs): Take voffset into account.
9602 (x_produce_image_glyph): Ditto.
9603 (x_produce_stretch_glyph): Ditto.
9604
9605 * dispextern.h (struct it): Add voffset.
9606 * xdisp.c (push_it): Save voffset.
9607 (pop_it): Restore it.
9608
9609 * xdisp.c (it_props): Add entry for `raise'.
9610 (handle_raise_prop): New.
9611
9612 * dispextern.h (RAISE_PROP_IDX): New.
9613
9614 * xdisp.c (Qraise): New.
9615 (syms_of_xdisp): Define Qraised.
9616
9617 * xterm.c (x_scroll_bar_move): Clear to the left and right
9618 of toolkit scroll bars differently.
9619 (x_scroll_bar_move): Removed.
9620 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9621
9622 * dispextern.h: Make it compilable --with-x=no.
9623 * alloc.c: Ditto.
9624 * emacs.c: Ditto.
9625 * dispnew.c: Ditto.
9626 * keyboard.c: Ditto.
9627 * term.c: Ditto.
9628 * xdisp.c: Ditto.
9629 * xfaces.c: Ditto.
9630 * xfns.c: Ditto.
9631 * xmenu.c: Ditto.
9632
96331998-11-25 Gerd Moellmann <gerd@gnu.org>
9634
9635 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9636
96371998-11-24 Gerd Moellmann <gerd@gnu.org>
9638
9639 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9640 update slider size, only.
9641 (xm_scroll_callback): Set dragging member of the scroll bar.
9642 (xt_action_hook): Reset last_scroll_bar_part.
9643 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9644
26901792
DL
9645 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9646 window on newly created frames that don't have one.
9647
96481998-11-23 Gerd Moellmann <gerd@gnu.org>
9649
9650 * xdisp.c (restore_overlay_strings): Removed.
9651 (restore_dpvec): Removed.
9652 (init_from_display_pos): Inline both functions above.
9653
9654 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9655 (parse_image_spec): Handle it.
9656 (xbm_format): Use it.
9657 (xpm_format): Ditto.
9658 (pbm_format): Ditto.
9659 (jpeg_format): Ditto.
9660 (tiff_format): Ditto.
9661 (gif_format): Ditto.
9662 (gs_format): Ditto.
9663
9664 * xdisp.c (set_window_cursor): Removed.
9665 (redisplay_internal): Case cursor motion in cursor line of
9666 selected window; use set_cursor_from_row.
9667
96681998-11-22 Gerd Moellmann <gerd@gnu.org>
9669
9670 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9671 into account.
9672
96731998-11-21 Gerd Moellmann <gerd@gnu.org>
9674
9675 * xterm.c (expose_frame): Redraw menu bar window.
9676
9677 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9678 in menu item.
9679
9680 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9681 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9682
9683 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9684 to determine vertical_scroll_bar_extra.
9685 (EmacsFrameSetCharSize): Ditto.
9686 * xfns.c (x_figure_window_size): Ditto.
9687
9688 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9689 (x_draw_bitmap): Ditto.
9690
9691 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9692 * xfaces.c (realize_basic_faces): Realize it.
9693
96941998-11-20 Gerd Moellmann <gerd@gnu.org>
9695
9696 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9697 under LessTif Use the widget of the frame as parent for the
26901792
DL
9698 menu, again.
9699
97001998-11-19 Gerd Moellmann <gerd@gnu.org>
9701
9702 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9703 When EnterNotify, don't generate a mouse movement event if
9704 notification is from a busy-cursor child window.
9705
9706 * xterm.h (struct x_output): Add busy_window, remove cursor.
9707
9708 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9709 Use a transparent window to display the busy-cursor.
9710 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9711
97121998-11-17 Gerd Moellmann <gerd@gnu.org>
9713
9714 * xdisp.c (check_window_end): New, for debugging.
9715 (CHECK_WINDOW_END): New.
9716 (try_window_id): Use it.
9717
9718 * xterm.c (process_expose_from_menu): Return int.
9719
9720 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9721 TOOLBAR_EVENT events in last_nonmenu_event.
9722
97231998-11-16 Gerd Moellmann <gerd@gnu.org>
9724
9725 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9726 window end isn't reliable, so set window_end_valid to nil.
9727 (redisplay_internal): If overlay arrow has changed, set
9728 windows_or_buffers_changed to redisplay thoroughly.
9729
9730 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9731 necessary.
9732
9733 * xfns.c (file_dialog_cb): New.
9734 (Fx_file_dialog): New.
9735 * fileio.c (Fread_file_name): Call it.
9736
427ec082 9737 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9738 selection dialog.
9739
97401998-11-14 Gerd Moellmann <gerd@gnu.org>
9741
9742 * xterm.c (note_mouse_highlight): Don't highlight when popup
9743 is active.
9744
26901792
DL
9745 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9746 timer-event-handler. This busy cursor tends to be anoying if
9747 fontifying stealthily.
9748
9749 * dispnew.c (direct_output_for_insert): Give up if current row
9750 contains trailing whitespace.
9751
97521998-11-13 Gerd Moellmann <gerd@gnu.org>
9753
9754 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9755
9756 * xdisp.c (handle_fontified_prop): New.
9757 (Vfontification_functions): New.
9758 (Qfontification_functions): New.
9759 (it_props): Add handle_fontified_prop.
9760
97611998-11-12 Gerd Moellmann <gerd@gnu.org>
9762
9763 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9764 Otherwise, under LessTif, after the popup has gone, all button
9765 press events come in for the frame's widget, and release events
9766 come in for the edit_widget.
9767 * xterm.c (XTread_socket): Remove workaround for that problem.
9768 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9769 XmScrollBarSetValues.
9770 (SET_SAVED_MENU_EVENT): Give it statement form.
9771
26901792
DL
9772 * xfaces.c (display_message): If waiting_for_input, don't display
9773 the message.
9774
9775 * window.c (scroll_command): If not acting on current_buffer,
9776 make redisplay consider all windows.
9777
9778 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9779
9780 * xdisp.c (handle_glyph_prop): Set it->object for images to
9781 the object having the glyph property.
9782
9783 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9784 invisible.
9785
97861998-11-11 Gerd Moellmann <gerd@gnu.org>
9787
9788 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9789 (x_term_init): Create the gray pixmap.
9790 (x_setup_relief_color): Use it.
9791 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9792 internal border at the top of a frame.
9793 (x_init_glyph_string): Likewise.
427ec082 9794 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9795 full-width lines.
9796 (XTflash): Don't flash the toolbar window.
9797
9798 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9799 in case of ButtonPress events.
9800
98011998-11-10 Gerd Moellmann <gerd@gnu.org>
9802
9803 * xrdb.c (x_load_resources): Add grey background colors as
9804 defaults for menus, scroll bars, and dialogs.
9805
9806 * insdel.c (prepare_to_modify_buffer): Move setting
9807 windows_or_buffers_changed from modify_region here.
9808
9809 * xfns.c (Fx_show_tip): Inhibit redisplay.
9810 (Fx_hide_tip): Ditto.
9811 (Fx_image_header): New.
9812
98131998-11-09 Gerd Moellmann <gerd@gnu.org>
9814
9815 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9816 when clearing current window matrices.
9817
98181998-11-08 Gerd Moellmann <gerd@gnu.org>
9819
9820 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9821 position from a string position. Use the right end position
9822 if the property spans a whole overlay string.
9823
98241998-11-07 Gerd Moellmann <gerd@gnu.org>
9825
9826 * xmenu.c (menubar_selection_callback): Remove workaround for
9827 Lesstif not calling XmNpopdownCallback because it doesn't
9828 handle the case where users don't select any menu item.
9829
26901792
DL
9830 * insdel.c (modify_region): Set windows_or_buffers_changed.
9831
9832 * buffer.c (set_buffer_internal): Don't set
9833 windows_or_buffers_changed.
9834
26901792
DL
9835 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9836
26901792
DL
9837 * xmenu.c (menubar_selection_callback): Add workaround for
9838 Lesstif not calling XmNpopdownCallback.
9839
9840 * xdisp.c (eval_mode_element): New.
9841 (eval_mode_handler): New.
9842 (display_mode_element): Use eval_mode_element.
9843
9844 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9845 Remove code looking at text props of default value.
9846
9847 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9848
26901792
DL
98491998-11-06 Gerd Moellmann <gerd@gnu.org>
9850
427ec082 9851 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9852 BUTTON_TYPE_NONE.
9853 (single_submenu): Likewise for panes and menu items.
9854 (set_frame_menubar): Set button_type of menu bar to none.
9855 (xmenu_show): Likewise.
9856 (single_submenu): Set widget values selected slot.
9857 (xmenu_show): Likewise.
9858
26901792
DL
9859 * xmenu.c (push_menu_item): Add parameters `type' and
9860 `selected'. Store it in menu_items.
9861 (MENU_ITEMS_ITEM_TYPE): New.
9862 (MENU_ITEMS_ITEM_SELECTED): New.
9863 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9864
9865 * xfns.c (clear_image_cache): Get the current time, before
9866 doing anything.
9867 (cache_image): Set prev pointer of next image.
9868 (clear_image_cache): Clear current matrices if any image was
9869 freed.
9870
9871 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9872
9873 * xfns.c (x_set_cursor): New.
9874 (Fx_display_busy_cursor): New.
9875 (Fx_undisplay_busy_cursor): New.
9876
9877 * xterm.h (struct x_output): Add busy_cursor.
9878
9879 * xfns.c (Vx_busy_pointer_shape): New.
9880 (x_set_mouse_color): Create busy cursor.
9881
9882 * process.c (wait_reading_process_input): Show and hide busy
9883 cursor.
9884
9885 * keyboard.c (command_loop_1): Display busy cursor.
9886
9887 * eval.c (Fsignal): Hide busy cursor.
9888
9889 * buffer.c (set_buffer_internal): Don't set
9890 windows_or_buffers_changed.
9891
9892 * xterm.c (redo_mouse_highlight): New.
9893
98941998-11-04 Gerd Moellmann <gerd@gnu.org>
9895
26901792
DL
9896 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9897 (x_build_heuritic_mask): New.
9898 (lookup_image): Call it.
9899
9900 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9901 (previous_help_echo): New.
9902 (XTread_socket): Generate help event with nil message when
9903 leaving a region with help-echo.
9904 (note_mouse_highlight): Handle `help-echo' over text.
9905 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9906 CirculateRequest.
9907 (clear_mouse_face): Don't clear if tooltip is shown.
9908 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9909 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9910
9911 * keyboard.c (Vshow_help_function): New.
9912 (read_char): Use it.
9913
99141998-11-03 Gerd Moellmann <gerd@gnu.org>
9915
9916 * xfns.c (x_create_tip_frame): New.
9917 (Fx_show_tip): New.
9918 (Fx_hide_tip): New.
9919
427ec082 9920 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
9921 a widget.
9922
9923 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9924 to full_width_p. Add internal_border_p.
9925
99261998-11-02 Gerd Moellmann <gerd@gnu.org>
9927
9928 * xterm.c (note_mode_line_highlight): Check the charpos of
9929 the glyph under the mouse pointer before accessing text
9930 properties at that position.
9931
99321998-11-01 Gerd Moellmann <gerd@gnu.org>
9933
9934 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9935
9936 * xdisp.c (auto-raise-toolbar-buttons): New.
9937 (build_desired_toolbar_string): Handle the flag.
9938 (toolbar-button-margin): New.
9939 (toolbar-button-relief): New.
9940 (build_desired_toolbar_string): Use margin and relief.
9941
9942 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9943 for FreeBSD.
9944 (note_mode_line_highlight): New.
9945 (note_mouse_highlight): Call it.
9946
99471998-10-31 Gerd Moellmann <gerd@gnu.org>
9948
9949 * s/freebsd.h (NARROWPROTO): New.
9950
9951 * xdisp.c (display_string): New parameter face_string.
9952 (display_mode_element): When displaying a symbol with a string
9953 value, use text properties from the symbol's default value, maybe.
9954
9955 * xrdb.c (x_load_resources): Add font defaults for menus and
9956 dialogs.
9957
99581998-10-30 Gerd Moellmann <gerd@gnu.org>
9959
9960 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9961
99621998-10-29 Gerd Moellmann <gerd@gnu.org>
9963
9964 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9965 produced for characters with codes < 32 under certain
9966 circumstances.
9967
9968 * xdisp.c (redisplay_window): Handle values of PT in front
9969 of invisible, intangible text.
427ec082 9970 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
9971 displaying lines.
9972 (display_mode_element): Assign to glyphs written for a mode
9973 line spec `%x' as object the Lisp format string, as position
9974 the position of the `%' in that string.
9975 (display_string): If displaying a C string, optionally get
9976 the face to use from a Lisp string.
9977
9978 * xterm.c (expose_window_tree): Include mode line height.
9979
9980 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9981
99821998-10-27 Gerd Moellmann <gerd@gnu.org>
9983
9984 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9985 over mode line.
9986
99871998-10-26 Gerd Moellmann <gerd@gnu.org>
9988
9989 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9990
9991 * xdisp.c (redisplay_window): If mode line height has changed,
9992 arrange for a thorough immediate redisplay using the correct mode
9993 line height.
9994 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9995
9996 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9997 (CURRENT_MODE_LINE_HEIGHT): New.
9998 (DESIRED_MODE_LINE_HEIGHT): New.
9999
10000 * keyboard.c (make_lispy_event): Add string and string position
10001 info to mouse-click events.
10002 (read_key_sequence): Handle `local-map' property of mode line
10003 strings.
10004
10005 * keyboard.h (POSN_STRING): New.
10006
100071998-10-25 Gerd Moellmann <gerd@gnu.org>
10008
10009 * dispnew.c (mode_line_string): Mew.
10010
10011 * xterm.c (xt_action_hook): New.
10012 (x_create_toolkit_scroll_bar): Add action hook.
10013 (xm_scroll_callback): Implement dragging.
10014
10015 * keyboard.c (Qend_scroll): New.
10016 (scroll_bar_parts): Add it.
10017
10018 * termhooks.h (scroll_bar_end_scroll): New.
10019
10020 * xterm.c (XTread_socket): Bug fix.
10021
100221998-10-24 Gerd Moellmann <gerd@gnu.org>
10023
10024 * xdisp.c (redisplay_window): Finish scroll bars after
10025 redisplaying toolbar.
10026
10027 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10028 (syms_of_keyboard): Add Qbottom.
10029
10030 * termhooks.h (scroll_bar_to_top): New.
10031 (scroll_bar_to_bottom): New.
10032
10033 * xdisp.c (redisplay_window): Always resize toolbar window if
10034 auto_resize_toolbar_p is non-zero.
10035 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10036 (window_box): New.
10037 (window_box_height): New.
10038 (window_box_width): New.
10039 (window_box_left): New.
10040 (window_box_right): New.
10041 (window_box_edges): New.
10042
100431998-10-23 Gerd Moellmann <gerd@gnu.org>
10044
10045 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10046 XawScrollbarSetThumb in FreeBSD.
10047 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10048 to true.
10049
10050 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10051 is out of range.
10052
10053 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10054 (x_term_init): Initialize it.
10055
10056 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10057
10058 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10059 cursor.
10060
100611998-10-22 Gerd Moellmann <gerd@gnu.org>
10062
10063 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10064 differently when using toolkit scroll bars.
10065
10066 * xterm.c (x_send_scroll_bar_event): New.
10067 (x_scroll_bar_to_input_event): New.
10068 (xaw3d_scroll_callback): New.
10069 (xaw3d_jump_callback): New.
10070 (xm_scroll_callback): New.
10071 (x_toolkit_scroll_p): New.
10072 (XTread_socket): Handle scroll bar client message.
10073 (x_term_init): Initialize Xatom_Scrollbar.
10074 (x_scroll_bar_create): Set cursor.
10075 (xm_scroll_callback):
10076 (x_create_toolkit_scroll_bar): New.
10077 (x_set_toolkit_scroll_bar_thumb): New.
10078 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10079 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10080
10081 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10082
100831998-10-21 Gerd Moellmann <gerd@gnu.org>
10084
10085 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10086 (XTread_socket): Don't handle mouse button events for scroll bars
10087 if using toolkit scroll bars.
10088 (XTset_vertical_scroll_bar): Set thumb size and position for
10089 Athena scroll bar.
10090
10091 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10092
10093 * xterm.c (XTread_socket): Dispatch expose event to widget
10094 if using toolkit scroll bars.
10095 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10096 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10097 if using toolkit scroll bars.
10098 (x_scroll_bar_move): Handle tookit scroll bars.
10099
10100 * Makefile.in (LIBW): Use Xaw3d if present.
10101
10102 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10103 (HAVE_XAW3D): New.
427ec082 10104
26901792
DL
10105 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10106 (HAVE_XAW3D): New.
10107
427ec082 10108 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10109 right vertical scroll bar.
10110
101111998-10-20 Gerd Moellmann <gerd@gnu.org>
10112
10113 * xfns.c (xpm_load): Support reading XPM images from string
10114 buffers containing data in the same format as an XPM file.
10115 Support `:color-symbols'.
10116 (xpm_format): Add `:data'.
10117 (xpm_keyword_index): Add XPM_DATA.
10118 (syms_of_xfns): Add `:color-symbols'.
10119 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10120 (xpm_valid_color_symbols_p): New.
10121 (xpm_image_p): Call it.
10122
10123 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10124 attribute to the image if item is not enabled.
10125
10126 * xfns.c (x_laplace): New.
10127 (x_laplace_read_row): New.
10128 (x_laplace_write_row): New.
10129 (lookup_image): Handle common image attributes here. New
10130 attribute `:algorithm'.
10131
10132 * xfaces.c (clear_face_cache): Call clear_image_cache.
10133
10134 * xterm.c (x_inverted_image_mask): Removed.
10135 (x_draw_image_foreground_1): New.
10136 (x_draw_image_glyph_string): Draw images with mask to a temporary
10137 pixmap to reduce flickering.
10138
10139 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10140 (display_toolbar_line): Remove parameter `margin'.
10141
101421998-10-19 Gerd Moellmann <gerd@gnu.org>
10143
10144 * xdisp.c (toolbar_lines_needed): New.
10145 (auto-resize-toolbars): New.
10146
10147 * xfns.c (cache_image): Correct call to xrealloc.
10148
10149 * dispnew.c (Fset_toolbar_height): Removed.
10150
10151 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10152 FRAME_MENU_BAR_LINES.
10153
10154 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10155 instead of FRAME_MENU_BAR_LINES.
10156 (check_frame_size): Ditto.
10157
10158 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10159 instead of FRAME_MENU_BAR_LINES.
10160 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10161 (build_frame_matrix): Ditto.
10162 (change_frame_size_1): Ditto.
10163
10164 * frame.h (FRAME_TOOLBAR_LINES): New.
10165 (FRAME_TOP_MARGIN): New.
10166
10167 * window.c (struct save_window_data): Add frame_toolbar_lines.
10168 (Fset_window_configuration): Handle toolbar lines.
10169 (Fcurrent_window_configuration): Save toolbar lines.
10170
10171 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10172
10173 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10174
10175 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10176
10177 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10178 (x_set_toolbar_lines): New.
10179
10180 * keyboard.c (cmd_error_internal): Bug fix.
10181
10182 * xterm.c: Remove double include of syssignal.h.
10183
101841998-10-18 Gerd Moellmann <gerd@gnu.org>
10185
10186 * xterm.c (x_toolbar_item): New.
10187 (x_handle_toolbar_click): Use it.
10188 (note_toolbar_highlight): Use it.
10189
10190 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10191 and toolbar_items_vectors.
10192
10193 * xterm.c (help_echo): New.
10194 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10195 (x_set_glyph_string_gc): Handle them.
10196 (x_after_update_window_line): Don't do anything in pseudo-windows.
10197 (x_produce_image_glyph): Take image margin and face relief into
10198 account.
10199 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10200 (x_draw_glyph_string_background): Optimize case when face has
10201 relief.
10202 (x_setup_relief_color): Take frame instead of glyph string
10203 parameter.
10204 (x_draw_relief_rect): New.
10205 (x_draw_glyph_string_relief): Call it.
10206 (x_draw_image_glyph_string_foreground): Handle margin and image
10207 relief.
10208 (x_draw_image_glyph_string_background): Ditto.
10209 (expose_frame): Redraw toolbar window.
10210 (expose_window): Don't draw cursor for pseudo-windows.
10211 (x_y_to_hpos_vpos): Handle pseudo-windows.
10212 (frame_to_window_pixel_xy): New.
10213 (note_mouse_highlight): Call note_toolbar_highlight.
10214 (x_handle_toolbar_click): New.
10215 (note_toolbar_highlight): New.
10216 (show_mouse_face): Change int parameter `hl' to parameter of
10217 type enum draw_glyphs_face. Handle image highlighting.
10218 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10219 non-nil. Use x_handle_toolbar_click.
10220
10221 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10222
10223 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10224 IMAGE_BOOL_VALUE.
10225 (parse_image_spec): Handle them.
10226 (image_spec_value): Additional parameter found.
427ec082 10227 (free_image): Remove image from the vector `images' of the
26901792
DL
10228 image cache.
10229 (clear_image_cache): Additional parameter force_p.
10230 (Fclear_image_cache): New.
10231 (x_find_image_file): New.
10232 (xbm_load): Handle `:margin' and `:relief'. Use
10233 x_find_image_file.
10234 (xpm_load): Likewise.
10235 (pbm_load): Likewise.
10236 (jpeg_load): Likewise.
10237 (tiff_load): Likewise.
10238 (gif_load): Likewise.
10239
10240 * keyboard.c (Qhelp_echo): New symbol.
10241 (read_char): Handle `toolbar' and `help_echo' events.
10242 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10243 (make_lispy_event): Handle TOOLBAR_EVENT.
10244 (toolbar_items): New.
10245 (process_toolbar_item): New.
10246 (PROP): New.
10247 (init_toolbar_items): New.
10248 (append_toolbar_item): New.
10249 (read_char_x_menu_prompt): Handle `toolbar' event.
10250 (read_key_sequence): Ditto.
10251
10252 * xfaces.c (Qtoolbar): New.
10253 (realize_basic_faces): Realize `toolbar' face.
10254 (face_at_string_position): Remove parameter modeline_p, add
10255 base_face_id.
10256
10257 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10258 to read data.
10259
102601998-10-17 Gerd Moellmann <gerd@gnu.org>
10261
10262 * xdisp.c (init_iterator): Replace parameter modeline_p with
10263 base_face_id.
10264 (next_element_from_string): Call get_next_display_element
10265 recursively after handling text properties.
10266 (prepare_menu_bars): Call update_toolbar.
10267 (update_toolbar): New.
10268 (build_desired_toolbar_string): New.
10269 (display_toolbar_line): New.
10270 (redisplay_toolbar): New.
10271 (toolbar_item_info): New.
10272 (redisplay_window): Call redisplay_toolbar.
10273 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10274
10275 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10276 window.
10277 (clear_desired_matrices): Ditto.
10278 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10279 (free_glyphs): Free matrices of toolbar window.
10280 (update_frame): Update toolbar window.
10281 (change_frame_size_1): Take toolbar into account.
10282 (Fset_toolbar_height): New.
10283
10284 * dispextern.h (struct it): Remove member modeline_p, add
10285 base_face_id.
10286 (struct image): Add members relief and margin.
10287 (IMAGE_ASCENT): Include margin in height.
10288
102891998-10-14 Gerd Moellmann <gerd@gnu.org>
10290
10291 * xfns.c (Fclear_image_cache): New.
10292
10293 * xfaces.c (realize_basic_faces): Realize toolbar face.
10294 (face_at_string_position): Remove parameter modeline_p, add
10295 base_face_id.
10296
10297 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10298
102991998-10-13 Gerd Moellmann <gerd@gnu.org>
10300
10301 * keyboard.c (syms_of_keyboard): Intern `:help'.
10302
103031998-10-12 Gerd Moellmann <gerd@gnu.org>
10304
10305 * xterm.c (note_toolbar_highlight): New.
10306 (note_mouse_highlight): Call it.
10307
10308 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10309 (coordinates_in_window): Handle toolbar window.
10310
10311 * keyboard.c (toolbar_items): New.
10312 (process_toolbar_item): New.
10313 (parse_toolbar_item): New.
10314 (init_toolbar_items): New.
10315 (append_toolbar_item): New.
10316
10317 * dispextern.h (enum toolbar_item_idx): New.
10318 (enum toolbar_item_image): New.
10319
10320 * frame.h (struct frame): Add toolbar-related members.
10321
10322 * xfaces.c (face_at_string_position): Remove assertion that
10323 current_buffer == window's buffer. This is not the case when
10324 called for the toolbar window.
10325
10326 * frame.c (make_frame): Initialize toolbar members.
10327
10328 * alloc.c (mark_object): Mark toolbar data of frames.
10329
10330 * frame.h (struct frame): Add toolbar-related members
10331 toolbar_window, desired_toolbar_items, current_toolbar_items,
10332 desired_toolbar_string, current_toolbar_string,
10333 n_desired_toolbar_items, n_current_toolbar_items. Add
10334 window_height.
10335
10336 * xterm.c (x_after_update_window_line): Don't draw bitmap
10337 areas for pseudo-windows.
10338 (expose_frame): Handle toolbar window.
10339 (expose_window): Don't do cursor stuff for pseudo-windows.
10340
10341 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10342
103431998-10-11 Gerd Moellmann <gerd@gnu.org>
10344
10345 * frame.c (make_frame): Initialize toolbar_window.
10346
10347 * alloc.c (mark_object): Make the toolbar window.
10348
10349 * dispnew.c (update_frame): Update frame's toolbar_window.
10350 (clear_current_matrices): Likewise.
10351 (clear_desired_matrices): Likewise.
10352 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10353 (free_glyphs): Free the toolbar window and its matrices.
10354
10355 * frame.h (struct frame): Add toolbar_window.
10356
10357 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10358 with relief.
10359
103601998-10-10 Gerd Moellmann <gerd@gnu.org>
10361
427ec082 10362 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10363 window start is not in the range BEGV..ZV.
10364
103651998-10-09 Gerd Moellmann <gerd@gnu.org>
10366
10367 * xdisp.c (try_scrolling): Experimentally handle the case
10368 that scroll-preserve-screen-position is set to `always'.
10369
10370 * window.c (Vscroll_preserve_screen_position): Replacement for
10371 scroll_preserve_screen_position.
10372
103731998-10-08 Gerd Moellmann <gerd@gnu.org>
10374
10375 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10376 doesn't like it.
10377 * xdisp.c: Ditto.
10378
10379 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10380
103811998-10-06 Gerd Moellmann <gerd@gnu.org>
10382
427ec082 10383 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10384 i_byte when prompts are inserted into minibuffers.
10385
10386 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10387 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10388 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10389
103901998-10-04 Gerd Moellmann <gerd@gnu.org>
10391
10392 * xdisp.c (make_cursor_line_fully_visible): New.
10393 (try_scrolling): New.
10394 (redisplay_window): Move scrolling code to try_scrolling.
10395 (make_cursor_line_fully_visible): Handle case of window too small
10396 to show a single line.
10397 (redisplay_window): Case forced window start---use
10398 make_cursor_line_fully_visible.
10399 (redisplay_window): Case cursor movement via current matrix.
10400 If ending up on a partially visible line, make it fully visible
10401 instead of recentering.
10402 (try_scrolling): Additional parameter scroll_smoothly.
10403
10404 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10405
104061998-09-28 Gerd Moellmann <gerd@gnu.org>
10407
10408 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10409 instead of y-position for scroll-preserved-screen-position.
10410
104111998-09-07 Gerd Moellmann <gerd@gnu.org>
10412
10413 * dispnew.c (update_frame_line): If current row is not enabled,
10414 write the whole line.
10415
104161998-09-06 Gerd Moellmann <gerd@gnu.org>
10417
10418 * lisp.h (HAVE_FACES): Removed.
10419
10420 * dispextern.h (HAVE_FACES): Removed.
10421
10422 * config.in (HAVE_FACES): Removed.
10423
10424 * dispnew.c (HAVE_FACES): Removed.
10425
10426 * xdisp.c (HAVE_FACES): Removed.
10427
10428 * xfaces.c (HAVE_FACES): Removed.
10429
104301998-09-05 Gerd Moellmann <gerd@gnu.org>
10431
10432 * xdisp.c (init_iterator): If face_change_count is non-zero,
10433 free realized faces.
10434
10435 * xfaces.c (free_all_realized_faces): Make it externally visible.
10436 (Finternal_set_lisp_face_attribute): Increment
10437 windows_or_buffers_changed.
10438
10439 * dispnew.c (direct_output_for_insert): Give up if
10440 face_change_count is non-zero.
10441 (direct_output_forward_char): Ditto.
10442
10443 * xfaces.c (face_change_count): New.
10444
104451998-09-04 Gerd Moellmann <gerd@gnu.org>
10446
10447 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10448 of range.
10449
104501998-09-03 Gerd Moellmann <gerd@gnu.org>
10451
10452 * term.c (Ftty_display_color_p): New.
10453
104541998-09-02 Gerd Moellmann <gerd@gnu.org>
10455
10456 * xfaces.c (Ftty_defined_colors): New.
10457
10458 * xterm.c (x_produce_glyphs): Fix computation of
10459 contains_overlapping_glyphs_p for ASCII.
10460
10461 * dispnew.c (Fshow_cursor): Don't change cursor state while
10462 redisplaying.
10463 (direct_output_for_insert): If a glyph with lbearing or rbearing
10464 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10465
104661998-09-01 Gerd Moellmann <gerd@gnu.org>
10467
10468 * term.c (OUTPUT_IF): Make replacement text have statement form.
10469 (OUTPUT1_IF): Ditto.
10470 (TS_italic_mode, TS_end_italic_mode): Removed.
10471 (TS_bold_mode): Removed.
10472 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10473 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10474 (TS_enter_reverse_mode): New.
10475 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10476 (TN_magic_cookie_glitch_ul): New.
10477 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10478 (TS_exit_attribute_mode): New.
10479 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10480 (TS_set_foreground, TS_set_background): New.
10481 (reset_terminal_modes): Switch colors back to default.
10482 (write_glyphs): Turn face on before writing text, turn it off
10483 afterwards.
10484 (insert_glyphs): Ditto.
10485 (term_init): Initialize new terminal capability variables.
10486 (turn_on_face): Turn a face on.
10487 (turn_off_face): Turn a face off.
10488
10489 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10490 (GLYPH_CHAR): Ditto.
10491 (GLYPH_FACE): Ditto.
10492
10493 * xfaces.c (Vface_tty_color_alist): New.
10494 (face-register-tty-color): New.
10495 (face-clear-tty-colors): New.
10496
10497 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10498 (struct it): Remove member faces_p since we now always have faces.
10499
105001998-08-31 Gerd Moellmann <gerd@gnu.org>
10501
10502 * dispextern.h (struct face): Add tty appearance flags.
10503
10504 * xdisp.c (init_iterator): Always handle faces.
10505 (extend_face_to_end_of_line): Handle tty frames.
10506
10507 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10508 passed in.
10509
105101998-08-30 Gerd Moellmann <gerd@gnu.org>
10511
10512 * xfaces.c (realize_default_face): Use empty strings to indicate
10513 that the face should use the default foreground/background
427ec082 10514 color of the terminal. Fill font-related attributes with
26901792
DL
10515 appropriate values for tty frames.
10516
10517 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10518
10519 * xfaces.c (realize_default_face): If face `default' is not
10520 yet known, create it.
10521
10522 * frame.c (make_terminal_frame): Call init_frame_faces
10523 unconditionally.
10524
10525 * xfaces.c (init_frame_faces): Make it work for tty frames.
10526 (free_frame_faces): Ditto.
10527 (clear_face_cache): Ditto.
10528 (recompute_basic_faces): Ditto.
10529 (Fframe_face_alist): Ditto.
10530 (free_realized_face): Ditto.
10531 (prepare_face_for_display): Ditto.
10532 (clear_face_gcs): Ditto.
10533 (lookup_face): Ditto.
10534 (smaller_face): Ditto.
10535 (realize_default_face): Ditto.
10536 (realize_face): Ditto.
10537 (realize_face): Dispatch to functions depending on the frame type.
10538 (realize_x_face): X way of realizing faces.
10539 (realize_tty_face): TTY way of realizing faces.
10540
105411998-08-29 Gerd Moellmann <gerd@gnu.org>
10542
10543 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10544 compute it instead.
10545 (lookup_face): Remove local variable unibyte_registry.
10546
105471998-08-22 Gerd Moellmann <gerd@gnu.org>
10548
10549 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10550 1 pixel longer.
10551
427ec082 10552 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10553 of face in buffer.
10554
10555 * editfns.c (make_buffer_string_both): If prompt in buffer,
10556 prevent start > end.
10557
10558 * indent.c (Fvertical_motion): Set current_buffer to window's
10559 buffer if it isn't already.
10560
105611998-08-21 Gerd Moellmann <gerd@gnu.org>
10562
10563 * dispextern.h (GLYPH_DEBUG): Use default 0.
10564
10565 * xdisp.c (it_props): New member `smaller'.
10566 (init_iterator): Initialize it.
10567 (Qsmaller): New.
10568 (push_it): Save value of `smaller' value on the stack.
10569 (pop_it): Restore `smaller' from the stack.
10570 (handle_smaller_prop): New.
10571 (handle_face_prop): Use `smaller' text property to select a
10572 suitable face.
10573
10574 * dispextern.h (SMALLER_PROP_IDX): New.
10575 (struct it): Add member `smaller'.
10576
10577 * xfaces.c (smaller_face): New.
10578
10579 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10580
10581 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10582 total pixel width of window differently.
10583
10584 * xdisp.c (init_iterator): Compute width of mode line differently.
10585
10586 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10587 of bitmap areas.
10588
10589 * window.c (Fsplit_window): Include width of bitmap areas in
10590 window width.
10591 (window_internal_width): Subtract width of bitmap areas from
10592 total width.
10593
105941998-08-18 Gerd Moellmann <gerd@gnu.org>
10595
10596 * xdisp.c: Functions reordered for better readability.
10597
10598 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10599 lbearing.
10600 (update_window_tree): Parameter no_scrolling_p removed.
10601 (update_single_window): Ditto.
10602
10603 * xterm.c (x_get_char_font_and_encoding): Renamed to
10604 x_get_char_face_and_encoding.
10605
10606 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10607 if end of current row reached.
10608
10609 * xterm.c (x_get_glyph_face_and_encoding): New.
10610 (x_get_glyph_overhangs): Call it.
10611
10612 * xdisp.c (Qshow_trailing_whitespace): New.
10613 (Qtrailing_whitespace): New.
10614 (enum prop_handled): New.
10615 (struct props, it_props): New.
10616 (next_overlay_change): New. Works like Fnext_overlay_change
10617 but doesn't use xmalloc.
10618 (handle_stop): Restructured.
10619 (face_before_or_after_it_pos): Case iteration over a string: fix
10620 handling of face before current position.
10621
106221998-08-16 Gerd Moellmann <gerd@gnu.org>
10623
10624 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10625 reallocation matrix if fonts_changed_p.
10626 (update_text_area): Handle glyphs with lbearing.
10627
106281998-08-14 Gerd Moellmann <gerd@gnu.org>
10629
10630 * xdisp.c (struct props): New.
10631 (it_props): New.
10632 (compute_prop_info): New.
10633 (handle_stop): New.
10634
10635 * textprop.c (validate_interval_range): Make it externally
10636 visible.
10637
10638 * dispnew.c (direct_output_for_insert): Remove calls
10639 to compute_stop_pos.
10640
10641 * dispextern.h (struct it): Remove check_charpos,
10642 next_overlay_pos. Add what_changes.
10643
106441998-08-10 Gerd Moellmann <gerd@gnu.org>
10645
10646 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10647
10648 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10649 face_default_registry instead.
10650
10651 * syntax.c (scan_sexps_forward): Set up syntax table before
10652 jumping to initial state label.
10653
106541998-08-09 Gerd Moellmann <gerd@gnu.org>
10655
10656 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10657 >= ZV specially.
10658
106591998-08-08 Gerd Moellmann <gerd@gnu.org>
10660
10661 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10662 ends up in partially visible row, try to scroll. Case forced
10663 window start---handle windows not tall enough to show a single
10664 line.
10665
10666 * window.h (struct window): Member dy renamed vscroll.
10667
10668 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10669 fonts.
10670 (x_draw_stretch_glyph_string): Set clipping if using GC that
10671 hasn't set it yet.
10672
10673 * xdisp.c (redisplay_window): Case forced window start -
10674 don't let cursor end on partially visible row. Use desired
10675 matrix to find a suitable PT if it doesn't appear.
10676 (decode_mode_spec): Merged with 20.2.97.
10677 (try_window_reusing_current_matrix): Give up if old or
10678 new display is vscrolled.
10679 (redisplay_window): Reset vscrolling if forced window start,
10680 or if recentering.
10681
106821998-08-06 Gerd Moellmann <gerd@gnu.org>
10683
10684 * xfaces.c (realize_default_face): Use the fontset name instead of
10685 the alias for the family attribute of the default face because we
10686 can't easily determine a good alias from fontset-alias-alist.
10687 (face_fontset): Use Fquery_fontset to find the fontset.
10688 (font_list): Additional pattern parameter.
10689 (try_font_list): Ditto.
10690 (set_lface_from_font_name): Set face family from font foundry
10691 and family.
10692 (font_list): If family contains a hyphen, build pattern differently.
10693
106941998-08-05 Gerd Moellmann <gerd@gnu.org>
10695
10696 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10697 changed instead of setting the frame garbaged.
10698
10699 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10700 all attribute values. This is wrong if values are unspecified,
10701 i.e. nil.
10702
10703 * xdisp.c (try_window_id): Give up if window start changed.
10704
10705 * xfaces.c (make_realized_face): Store registry as Lisp object.
10706 (load_face_font_or_fontset): Compute registry of a face
10707 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10708 possible.
10709
10710 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10711 differently.
10712
10713 * alloc.c (mark_face_cache): Mark the registry member of faces.
10714
10715 * dispextern.h (struct face): Make registry a Lisp string.
10716
107171998-08-04 Gerd Moellmann <gerd@gnu.org>
10718
10719 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10720 multibyte_p. Handle unibyte text.
10721 (x_append_glyph): Set the multibyte_p flag of glyphs.
10722 (x_produce_image_glyph): Ditto.
10723 (x_append_stretch_glyph): Ditto.
10724 (x_produce_glyphs): Handle unibyte text like ASCII.
10725
10726 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10727 stack.
10728 (pop_it): Restore it.
10729 (face_before_or_after_it_pos): Handle the case that the string or
10730 buffer is unibyte.
10731 (get_overlay_strings): Set the multibyte flag of the iterator if
10732 the new overlay string is multibyte.
10733 (get_glyph_property): Likewise.
10734 (get_next_display_element): Don't check for charset changes in
10735 unibyte text.
10736 (append_space): Compute face differently for unibyte text.
10737 (extend_face_to_end_of_line): Don't return quickly if face has
10738 stipple.
10739
10740 * xfaces.c (load_face_font_or_fontset): Store registry and
10741 encoding of the font in the registry member of the face.
10742 (make_realized_face): Additional parameter `registry'.
10743 (free_realized_face): Free the registry of a realized face.
10744 (face_suitable_for_charset_p): Function form of the macro
10745 with the same name in uppercase.
10746 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10747 (choose_face_font): New parameter unibyte_registry.
10748 (choose_face_fontset_font): Ditto.
10749 (realize_default_face): Remember the registry and encoding of
10750 the specified frame font in Vx_unibyte_registry_and_encoding.
10751 (face_at_buffer_position): Handle unibyte.
10752 (face_at_string_position): Likewise.
427ec082 10753 (realize_face): New parameter unibyte_registry.
26901792
DL
10754 (compute_char_face): Handle the unibyte case.
10755
10756 * dispextern.h (struct glyph): Add bit multibyte_p.
10757 (struct face): New member registry holding the registry and
10758 encoding of the X font of the face.
10759 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10760 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10761 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10762 text.
10763 (struct iterator_stack_entry): Add multibyte_p.
10764
10765 * xdisp.c (string_pos): Use string_char_to_byte.
10766 (char_charset): Removed.
10767
107681998-08-03 Gerd Moellmann <gerd@gnu.org>
10769
10770 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10771 rectangle for a block cursor over an image without a mask.
10772 (x_stretch_block_cursor): Added. Non-zero means don't draw
10773 a block cursor over a stretch as wide as that stretch.
10774 (x_draw_stretch_glyph_string): Use it.
10775 (x_draw_hollow_cursor): Ditto.
10776
10777 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10778 (read_minibuf): Add front-sticky text property for prompt.
10779
10780 * xdisp.c (char_charset): Return charset of a character,
10781 depending on whether or not multi-byte characters are enabled.
10782
10783 * xfaces.c (Fset_face_charset_registry): Removed.
10784 (x_charset_registry): Determine registry from charset plist.
10785
107861998-08-02 Gerd Moellmann <gerd@gnu.org>
10787
10788 * xdisp.c (get_next_display_element): Don't check for charset
10789 changes if multi-byte characters are not enabled.
427ec082 10790
26901792 10791 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10792 redisplay interface.
26901792
DL
10793 * keyboard.c (detect_input_pending_run_timers): Likewise.
10794
10795 * dispextern.h (produce_*glyphs_hook): Removed.
10796 * term.c (produce_*glyphs): Ditto.
10797 (cursor_to): Remove pixel position parameters.
10798
10799 * dispnew.c: Remove hooks for window-based redisplay, introduce
10800 a redisplay interface structure.
10801
10802 * xterm.c (x_per_char_metric): Return default char metrics if per
10803 char metric exists but contains a zero width. Adobe Courier seems
10804 to contain such characters.
10805
10806 * xdisp.c (compute_line_metrics): Compute the width of rows
10807 without stopping at glyphs with zero width.
10808
108091998-08-01 Gerd Moellmann <gerd@gnu.org>
10810
10811 * xdisp.c (display_mode_line): If nothing was displayed at all,
10812 display a space.
10813 (hscroll_window_tree): Don't subtract 1 from target point if equal
10814 to ZV and window is not the selected window.
10815
10816 * dispnew.c (check_matrix_invariants): Remove check for window
10817 start at BEGV or after newline. This happens in rare cases
10818 intentionally.
10819
108201998-07-31 Gerd Moellmann <gerd@gnu.org>
10821
10822 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10823 (syms_of_xfaces): Add Vface_default_registry.
10824 (x_charset_registry): Use it.
10825
10826 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10827 (redisplay_window): Use it.
10828
10829 * dispnew.c (update_text_area): Handle lbearing of deleted text
10830 by backing up one character.
10831
108321998-07-30 Gerd Moellmann <gerd@gnu.org>
10833
427ec082 10834 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10835 decide to do nothing.
10836
10837 * xfaces.c (face_at_string_position): Additional parameter
10838 mode_line_p. If non-zero, merge with the mode line face
10839 instead of the default face.
10840 * dispextern.h (struct it): Add mode_line_p.
10841 * xdisp.c (init_iterator): Set it.
10842 (compute_face_in_string): Use it.
10843 (face_before_or_after_it_pos): Handle strings.
10844 (get_next_display_element): Don't look for relief end in C strings.
10845 (next_element_from_string): Deliver string position instead of
10846 buffer position.
10847
10848 * xterm.c (x_flush): Flush X output buffer.
10849 (XTflash): Use it.
10850
10851 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10852 Allow strings as face names.
10853
10854 * xfns.c (forall_images_in_image_cache): Check that frame is
10855 alive.
10856
10857 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10858 it's also called from x_destroy_window. Since this function is
10859 called from X, freeing stuff allocated with xmalloc is dangerous
10860 here, anyway.
10861
10862 * xfaces.c (free_realized_faces): Don't clear current matrices
10863 of a frame being destroyed.
10864
427ec082 10865 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10866 Fset_window_buffer.
10867
10868 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10869 with an additional argument specifying whether or not hooks may
10870 be called.
10871 (Fset_window_buffer): Call it.
10872
10873 * dispnew.c (clear_desired_matrices): Check that frame has
10874 a valid root window before clearing matrices in the window tree.
10875 (clear_current_matrices): Ditto.
10876 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10877 vchild are valid windows if not nil.
10878
10879 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10880 for :inverse-video.
10881 (Finternal_set_lisp_face_attribute): Ditto.
10882 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10883 (Finternal_get_lisp_face_attribute): Ditto.
10884 (Finternal_lisp_face_attribute_values): Ditto.
10885 (syms_of_xfaces): Define the symbol `:reverse-video'.
10886
10887 * xdisp.c (get_glyph_property): Renamed from
10888 fill_iterator_from_glyph_property.
10889 (next_element_from_buffer): Handle case that no `glyph' property
10890 was found correctly.
10891 (display_line): Extend face to end of line only if we have faces.
10892
108931998-07-29 Gerd Moellmann <gerd@gnu.org>
10894
10895 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10896 additional window argument.
10897
10898 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10899 set_iterator_to_previous_visible_line_start.
10900 (reseat_at_next_visible_line_start): Likewise.
10901 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10902 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10903 (compute_face_in_buffer): Renamed from
10904 compute_face_at_iterator_position.
10905 (compute_face_in_string): Renamed from
10906 compute_face_at_iterator_string_position.
10907 (get_space_width): Renamed from get_iterator_space_width.
10908 (next_overlay_string): Renamed from
10909 set_iterator_to_next_overlay_string.
10910 (get_overlay_strings): Renamed from
10911 get_overlay_strings_at_iterator_position.
10912 (restore_overlay_strings): Renamed from
10913 setup_overlay_strings_from_glyph_pos.
10914 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10915 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10916 (init_to_row_start): Renamed from init_iterator_to_row_start.
10917 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10918
10919 * xterm.c: Merge with 20.2.97.
10920 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10921
10922 * dispextern.h (struct glyph): Replace text_pos position with
10923 simple charpos.
10924
10925 * xdisp.c (this_line_start_pos): Use struct text_pos.
10926 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10927 (enum move_it_result): Renamed from move_iterator_result.
10928 (string_pos_nchars_ahead): Compute text_pos in a string from a
10929 known text_pos plus a character delta.
10930 (string_pos): Compute text_pos in string from charpos.
10931 (c_string_pos): Likewise for a C string.
10932 (number_of_chars): Return number of characters in a possibly
10933 multi-byte C string.
10934 (check_it): Renamed from check_iterator. Check that charpos and
10935 bytepos are in sync.
10936 (push_it): Renamed from save_iterator_settings.
10937 (pop_it): Renamed from restore_iterator_settings.
10938 (move_it_.*): Renamed from move_iterator_.*.
10939 (charset_at_position): Take charpos/bytepos into account.
10940 (back_to_previous_line_start): Set iterator to previous line start.
10941 (forward_to_next_line_start): Set iterator to next line start.
427ec082 10942 (back_to_previous_visible_line_start): Renamed from
26901792
DL
10943 move_iterator_previous_visible_line_start.
10944 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10945 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10946 Handle charpos/bytepos.
10947 (compute_face_at_iterator_position): Handle charpos/bytepos.
10948 (compute_face_at_iterator_string_position): Likewise.
10949 (get_iterator_space_width): Likewise.
10950 (load_overlay_strings): Likewise.
10951 (get_overlay_strings_at_iterator_position): Likewise.
10952 (reseat_iterator): Take a text_pos position argument.
10953 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10954 bytepos.
10955 (init_iterator): Take additional bytepos parameter.
10956 (reseat_iterator_to_string): Handle charpos/bytepos.
10957 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10958 (next_element_from_string): Handle charpos/bytepos.
10959 (next_element_from_c_string): Likewise.
10960 (fill_iterator_from_glyph_property): Likewise.
10961 (next_element_from_buffer): Likewise.
10962 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10963 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10964 (move_it_to): Likewise.
10965 (move_it_vertically_backward): Likewise.
10966 (move_it_vertically): Likewise.
10967 (move_it_by_lines): Likewise.
10968 (hscroll_window_tree): Likewise.
10969 (redisplay_internal): Likewise.
10970 (set_cursor_from_row): Likewise.
10971 (redisplay_window): Likewise.
10972 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10973 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10974 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10975 (try_window_id): Handle charpos/bytepos.
10976 (Ftrace_redisplay_toggle): Return Qnil.
10977 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10978 (insert_left_trunc_glyphs): Likewise.
10979
10980 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10981 do a real merge).
10982 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10983 (increment_glyph_row_buffer_positions): Ditto.
10984 (copy_glyph_row_contents): Ditto.
10985 (check_matrix_invariants): Add additional checks for charpos/
10986 bytepos consistency.
10987 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 10988 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
10989 `direction-reversed' in #if 0.
10990
10991 * xterm.h: Merge with 20.2.97.
427ec082 10992
26901792
DL
10993 * frame.h: Merge with 20.2.97.
10994
10995 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10996
10997 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10998 start.
10999 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
11000 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
11001 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
11002 (struct it): Various members renamed from .*pos to .*charpos.
11003 (IT_CHARPOS): Access current buffer character position of an
11004 iterator.
11005 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11006 (IT_STRING_CHARPOS): Access current string character position of
11007 an iterator.
11008 (IT_STRING_BYTEPOS): Access current string byte position of
11009 an iterator.
11010 (globally): Add function prototypes from 20.2.97.
11011
11012 * everywhere: Use P_ instead of PROTO for function prototypes
11013 because everyone else seems to use P_.
11014
11015 * dispextern.h (struct text_pos): Structure describing a charpos/
11016 bytepos position in text.
11017 (BYTEPOS): Access the byte position part of a text_pos.
11018 (CHARPOS): Likewise for the character position.
11019 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11020 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11021 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11022 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11023 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11024 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11025 for buffer and string positions.
11026 (struct glyph): Use text_pos.
11027 (struct it): Renamed from display_iterator. Use text_pos.
11028
110291998-07-23 Gerd Moellmann <gerd@gnu.org>
11030
11031 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11032 pixmap.
11033
110341998-07-21 Gerd Moellmann <gerd@gnu.org>
11035
11036 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11037 * xterm.c (x_draw_row_bitmaps): Use it.
11038 * dispnew.c (row_equal_p): Ditto.
11039 (update_window_line): Ditto.
11040
11041 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11042 flag of images.
11043
11044 * dispextern.h (struct image): Removed member loading_failed_p.
11045 It's probably better to have the chance to try to load an image
11046 again.
11047
110481998-07-20 Gerd Moellmann <gerd@gnu.org>
11049
11050 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11051 at ZV if `indicate-zv-lines' is non-nil.
11052 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11053
11054 * dispnew.c (row_equal_p): Compare displays_text_p and
11055 ends_at_zv_p flags of rows.
11056 (update_window_line): Ditto.
11057
11058 * buffer.h (struct buffer): New member indicate_zv_lines.
11059
11060 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11061 (init_buffer_once): New variable `default-indicate-zv-lines'.
11062 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11063
11064 * xdisp.c (redisplay_window): Don't try moving the cursor
11065 if current glyph row w->last_cursor.vpos isn't enabled.
11066
11067 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11068
11069 * window.c (Fset_window_vscroll): Allow only negative scroll
11070 values. Others don't seem to make sense, and this way it's easy
11071 to restore a vscroll of zero.
11072
11073 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11074 allocated.
11075 (x_draw_image_glyph_string_background): Don't clip if pixmap
11076 could not be created.
11077
11078 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11079 be created.
11080 (xbm_load): Ditto.
11081 (gs_load): Ditto.
11082
11083 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11084 glyphs into account.
11085
11086 * xfaces.c (realize_default_face): Don't set font family of
11087 the default face from the fontset alias name for `fontset-startup'.
11088
11089 * xfns.c (gs_load): Pass frame's pixel foreground and background
11090 color to the Lisp loader.
11091
110921998-07-19 Gerd Moellmann <gerd@gnu.org>
11093
11094 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11095 libtiff34.
11096
11097 * configure.in (--with-tiff, HAVE_TIFF): Added.
11098
11099 * config.in (HAVE_TIFF): Added.
11100
11101 * Makefile.in (LIBTIFF): Added.
11102
11103 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11104
11105 * Makefile.in (LIBJPEG): Added.
11106
11107 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11108 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11109 jpeglib.h.
11110
427ec082 11111 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11112 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11113 configure must be run with `--x-includes=/usr/X11R6/include:
11114 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11115
111161998-07-18 Gerd Moellmann <gerd@gnu.org>
11117
11118 * config.in (HAVE_JPEG): Added.
11119
11120 * xfns.c (ct_init): Initialize color table used to map RGB colors
11121 from images to X pixel colors.
11122 (ct_free): Free color table.
11123 (ct_lookup): Look an RGB color up.
11124 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11125 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11126 image specification.
11127 (pbm_scan_number): Scan a decimal ASCII number from a file.
11128 (pbm_load): Load a PPM image.
11129
11130 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11131 necessary. Take canonical character units as parameter.
11132 (Fwindow_vscroll): Return canonical character units.
11133
11134 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11135 w->dy to display height for which glyph rows must be allocated.
11136
111371998-07-17 Gerd Moellmann <gerd@gnu.org>
11138
11139 * xfaces.c (face_at_string_position): Merge in region face
11140 so that it won't overwrite the font in the region.
11141 (face_at_buffer_position): Ditto.
11142 (realize_basic_faces): Don't realize region face.
11143
11144 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11145
11146 * xterm.c (x_set_glyph_string_background_width): Don't let
11147 cursor face extend to end of line.
11148
11149 * xdisp.c (append_space): If adding space of default face,
11150 make sure glyph ist produced with right face.
11151
11152 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11153 background color of a glyph string.
11154 (x_draw_glyph_string_background): Call it.
11155 (x_draw_glyph_string_bg_rect): Ditto.
11156 (x_draw_stretch_glyph_string): Ditto.
11157
111581998-07-15 Gerd Moellmann <gerd@gnu.org>
11159
11160 * xdisp.c (init_iterator): Initialize it->current_y to the
11161 window's vscroll w->dy.
11162
11163 * window.c (Fwindow_vscroll): Return number of pixels window
11164 is vscrolled smoothly.
11165 (Fset_window_vscroll): Set the number.
11166
11167 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11168 to_pos in truncated part of a line.
11169
111701998-07-14 Gerd Moellmann <gerd@gnu.org>
11171
11172 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11173 doesn't fit on the line, truncate it, despite truncate_lines nil.
11174 (display_line): Ditto.
11175
11176 * xfns.c: Experimental support for Ghostscript images.
11177
11178 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11179 (XTread_socket): React on events from Ghostscript.
11180 (expose_frame): If width or height are zero, redraw entire frame.
11181 (XTread_socket): Call expose_frame after receiving event from
11182 Ghostscript.
11183
11184 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11185 for Ghostscript support.
11186
11187 * xdisp.c (redisplay_internal): Return quickly if called
11188 recursively.
11189
11190 * alloc.c (NSTATICS): Increased to 1024.
11191
111921998-07-08 Gerd Moellmann <gerd@gnu.org>
11193
11194 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11195 iterator's glyph row.
11196 (x_produce_stretch_glyph): Call it.
11197 (x_produce_glyphs): Handle `space-width' property; call
11198 x_append_stretch_glyph.
11199
11200 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11201 property.
11202 (get_iterator_space_width): Determine value of `space-width'
11203 property at iterator's position.
11204 (reseat_iterator): Call it.
11205 (next_element_from_string): Ditto.
11206 (next_element_from_buffer): Ditto.
11207 (init_iterator): Initialize space_width of iterator.
11208 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11209 moved, but cursor blinks.
11210 (redisplay_internal): Set w->last_cursor_off_p after update.
11211
11212 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11213 (struct display_iterator): Add new member space_width.
11214
11215 * window.h (struct window): Add last_cursor_off_p.
11216
112171998-07-07 Gerd Moellmann <gerd@gnu.org>
11218
11219 * Saved.
11220
11221 * window.c (Fpos_visible_in_window_p): Case window not up to
11222 date---return nil if iterator hasn't reached position.
11223
112241998-07-06 Gerd Moellmann <gerd@gnu.org>
11225
11226 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11227 overlays have changed.
11228 (redisplay_window): Case cursor movement. Don't try it if
11229 last_cursor.vpos is out of range.
11230
11231 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11232 way, the display optimization for the line containing the cursor
11233 is used more frequently, esp. when we have a blinking cursor.
11234 (display_line): Don't set this_line_.* variables.
11235
11236 * xterm.c (x_redraw_cursor): Removed.
11237 (x_display_and_set_cursor): Set cursor type depending on
11238 cursor_off_p flag of window.
11239
11240 * dispnew.c (redraw_cursor_hook): Removed.
11241 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11242 member of the selected window.
11243
11244 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11245
11246 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11247 Return glyph area under x/y.
11248 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11249
11250 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11251 after redisplaying.
11252
112531998-07-05 Gerd Moellmann <gerd@gnu.org>
11254
11255 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11256 are all outside of a line of text.
11257 (redisplay_internal): Use it.
11258
112591998-06-30 Gerd Moellmann <gerd@gnu.org>
11260
11261 * xdisp.c (next_element_from_buffer): After skipping over
11262 invisible text, look for the `glyph' property.
11263 (set_iterator_stop_pos): Ignore check positions in front
11264 of an iterator's current position.
11265
11266 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11267 anymore or which are marked as not having valid contents.
11268
11269 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11270 realized faces if new attribute value is equal to old value.
11271
112721998-06-29 Gerd Moellmann <gerd@gnu.org>
11273
11274 * xfaces.c (Finternal_make_lisp_face): Increment
11275 lface_id_to_name_size when lface_id_to_name is reallocated.
11276
112771998-06-27 Gerd Moellmann <gerd@gnu.org>
11278
11279 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11280 as minimum of endpos and overlay_pos.
11281 (load_overlay_strings): Set next_overlay_pos of iterator to
11282 -1 if we don't have to check for more overlay strings.
11283
112841998-05-09 Gerd Moellmann <gerd@gnu.org>
11285
11286 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11287 do anything if iterator is at ZV because scan_buffer doesn't
11288 work otherwise.
11289
11290 * xterm.c (x_encode_char): Inline it.
11291 (x_get_char_font_and_encoding): Simplified.
11292 (x_per_char_metric): Inline it.
11293
11294 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11295
11296 * xdisp.c (get_next_display_element): Check for end of relief
11297 face moved here from next_element_from_buffer.
11298
11299 * xterm.c (x_produce_image_glyph): Add relief thickness.
11300 (x_produce_stretch_glyph): Ditto.
11301
113021998-05-08 Gerd Moellmann <gerd@gnu.org>
11303
11304 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11305 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11306
11307 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11308 from a glyph property.
11309 (x_produce_glyphs): Use it.
11310
11311 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11312
427ec082 11313 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11314 in text area.
11315 (x_produce_glyphs): Ditto.
11316
427ec082 11317 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11318 marginal areas.
11319
427ec082 11320 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11321 background of an image glyph string.
427ec082 11322 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11323 the background of a glyph string.
11324 (x_draw_image_glyph_string_foreground): Draw the foreground of
11325 an image glyph string.
11326 (x_inverted_image_mask): Return the inverted mask of an image.
11327
11328 * xfns.c (x_draw_image): Removed.
11329
11330 * dispextern.h (struct image_type): Remove drawing function.
11331
11332 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11333
11334 * xdisp.c (get_next_display_element): In marginal areas, translate
11335 newlines, tabs, etc. like normal control characters.
11336
11337 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11338 and color.
11339 (free_realized_faces): Set frame garbaged.
11340
11341 * xfaces.c (syms_of_xfaces): Add defsubr for
11342 internal-lisp-face-attribute-values.
11343
113441998-05-07 Gerd Moellmann <gerd@gnu.org>
11345
11346 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11347 full.
11348 (x_produce_image_glyph): Set IT->nglyphs to 1.
11349 (x_draw_image_glyph_string): Use inverted mask to draw background.
11350
11351 * dispextern.h (struct image_type): Additional clipping rect
11352 parameters for drawing functions.
11353
427ec082 11354 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11355 a glyph string.
11356 (x_draw_image_glyph_string): Use it and pass the rect to the
11357 image drawing function.
11358
11359 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11360 first character with `glyph' property as image position. Set
11361 iterator back to that position as long as the image hasn't been
11362 consumed with set_iterator_to_next.
11363 (set_cursor_from_row): Accept when glyph with given position is
11364 not found in the row. Set cursor x to end of line in that case,
11365 so that we can hscroll.
11366 (redisplay_internal): Correct computation of delta by which
11367 positions have changed in redisplay optimization for cursor
11368 row of selected window.
11369
11370 * xdisp.c (display_line): Remove start_pos.
427ec082 11371 (display_line): Fix bug preventing display optimization for
26901792
DL
11372 cursor line of selected window.
11373 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11374 instead.
11375
11376 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11377 (update_text_area): Take glyph pixel width into account
11378 when trying to find a resync point.
11379 (row_equal_p): Compare glyphs in all areas.
11380
113811998-05-06 Gerd Moellmann <gerd@gnu.org>
11382
11383 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11384
11385 * dispextern.h (struct glyph_row): Use unsigned hash value.
11386
11387 * xdisp.c (display_line): Simplified and made faster by setting
11388 the cursor with set_cursor_from_row.
11389 (set_cursor_from_row): Handle rows of desired matrix.
11390
113911998-05-05 Gerd Moellmann <gerd@gnu.org>
11392
11393 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11394 with type != CHAR_GLYPH.
11395 (fill_iterator_from_glyph_property): Return void. Set
11396 method to next_element_from_image.
11397 (next_element_from_image): Dummy function for delivering a
11398 single image id.
11399 (set_iterator_to_next): Add method next_element_from_image.
11400 (redisplay_window): When recentering, and cursor vpos is -1
11401 after display, assume middle of window is in first line displayed
11402 in window, and display again.
427ec082 11403 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11404 the position of the first character having the glyph property.
11405
11406 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11407 * xfns.c (x_draw_image): Use it.
11408 * xterm.c (x_produce_image_glyph): Use it.
11409
11410 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11411
11412 * Makefile.in: Extraneous #define of LIBXPM removed.
11413
11414 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11415 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11416 stretch glyph.
11417 (x_compute_glyph_string_overhangs): Compute overhangs only
11418 for text glyph strings.
11419 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11420 (x_draw_glyph_string): Call it.
11421
11422 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11423 (struct glyph): Add sub-structure for stretchable glyphs.
11424 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11425
11426 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11427 #ifdef HAVE_FACES.
11428
11429 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11430
11431 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11432 setup_iterator_from_glyph_property. Don't do it for terminal
11433 frames.
11434
11435 * xterm.c (x_produce_image_glyph): Produce glyph for image
11436 that can't be loaded.
11437
11438 * xfns.c (lookup_image): If image can't be loaded, set its
11439 width and height so that we can draw a rectangle.
11440 (x_draw_image): Draw a rectangle for images that don't have
11441 a pixmap.
11442 (make_image): Set hash value.
11443 (image_spec_equal_p): Use image_spec_value.
11444
11445 * xterm.c (expose_frame): Don't try to redraw if basic faces
11446 haven't benn realized yet.
427ec082 11447 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11448 is not as tall as row.
11449
114501998-05-04 Gerd Moellmann <gerd@gnu.org>
11451
11452 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11453 (LIBX)[HAVE_X11]: Add LIBXPM.
11454
11455 * xfns.c (xpm_image_p): Implementation of image type functions
11456 for XPM.
11457 (xpm_load): Ditto.
11458
11459 * dispextern.h (struct image): Add mask pixmap for XPM.
11460
11461 * xfns.c (x_draw_image): Handle images with masks.
11462
11463 * configure.in: --with-xpm added. Code detecting -lXpm added.
11464
11465 * config.in: Add HAVE_XPM.
11466
11467 * xfns.c (xbm_draw): Removed.
11468 (x_draw_image): Default implementation for drawing images.
11469 (xbm_keyword_index): Remove XBM_DEPTH.
11470 (xbm_format): Remove `:depth'.
11471 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11472 (xbm_load_image_from_file): Added for the same reason.
26901792 11473
427ec082 11474 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11475 glyph string.
11476 (x_draw_image_glyph_string): Pass ybase to image draw function.
11477
11478 * xfns.c (make_image): Set default baseline.
11479
11480 * xterm.c (x_produce_image_glyph): Compute ascent of image
11481 from its height and baseline percentage.
11482
11483 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11484 (xbm_format): Add description for `:baseline'.
11485 (xbm_image_spec_from_file): Add keywords from original spec to
11486 result.
11487 (xbm_load): Set baseline of image.
11488 (xbm_image_p): Check range for baseline.
11489
11490 * dispextern.h (struct image): Add member baseline.
11491
11492 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11493
11494 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11495
11496 * xdisp.c (get_next_display_element): Do character translations
11497 only if delivering characters.
11498
114991998-05-03 Gerd Moellmann <gerd@gnu.org>
11500
427ec082 11501 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11502 DISP_CHARACTER.
11503
11504 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11505 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11506
115071998-05-02 Gerd Moellmann <gerd@gnu.org>
11508
11509 * xfns.c (prepare_image_for_display): Set image timestamp.
11510 (clear_image_cache): Clear images if image's timestamp +
11511 Vimage_eviction_seconds is > now.
11512 (syms_of_xfns): New variables image-eviction-seconds, and
11513 image-types.
11514 (add_image_format): Add to image-types.
11515 (xbm_load): Support new image spec format.
11516 (x_alloc_image_color): Allocate a color for an image.
11517
11518 * dispextern.h (struct image): Add timestamp.
11519
11520 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11521 vectors of bool-vectors.
11522 (xbm_lisp_object_from_file): Build new format image spec.
11523
115241998-05-01 Gerd Moellmann <gerd@gnu.org>
11525
11526 * xfaces.c (init_frame_faces): Initialize image cache.
11527 (free_frame_faces): Free it.
11528
11529 * xterm.c (x_delete_display): Don't free image cache.
11530
11531 * emacs.c (main): Call init_xfns.
11532
115331998-04-30 Gerd Moellmann <gerd@gnu.org>
11534
11535 * alloc.c (mark_object): Mark objects in image cache.
11536
427ec082 11537 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11538 widget_store_internal_border_width.
11539
11540 * widget.c (widget_store_internal_border): Return void.
11541
11542 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11543 void.
11544 (init_x_parm_symbols): Return void.
11545 (x_report_frame_params): Ditto.
11546 (x_set_border_pixel): Ditto.
11547 (syms_of_xfns): Ditto.
11548 (x_destroy_all_bitmaps): Use xfree instead of free.
11549
11550 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11551
11552 * xterm.c (x_term_init): Initialize image_cache of display info.
11553 (x_delete_display): Free image cache.
11554
11555 * xterm.h (struct x_display_info): Add image_cache.
11556
11557 * xfns.c (make_image_cache): Allocate a new image cache.
11558 (free_image_cache): Free an image cache.
11559 (make_image): Allocate an image.
11560 (free_image): Free an image.
11561
11562 * dispextern.h (struct image): Structure describing an image.
11563 (struct image_cache): Structure describing an image cache.
11564
115651998-04-29 Gerd Moellmann <gerd@gnu.org>
11566
11567 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11568 non-zero if iterator is filled with something to return.
11569 (next_element_from_buffer): Immediately return if
11570 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11571 (next_element_from_string): Likewise.
11572
11573 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11574
11575 * dispextern.h (struct glyph): Add pixmap_id.
11576 (display_element_type): Add DISP_PIXMAP.
11577
11578 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11579 malloc/free.
11580
11581 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11582 (clear_face_cache): Call it.
11583
11584 * xterm.c (x_query_font): Don't look at empty font table slots.
11585 (x_compute_min_glyph_bounds): Likewise.
11586 (x_term_init): Initialize font_table to null.
11587 (x_load_font): Change allocation of font_info structures so
11588 that it is possible to free fonts.
11589
427ec082 11590 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11591 Only free fonts from filled font table entries.
11592
11593 * xfaces.c (best_matching_font): Support use of scalable fonts.
11594 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11595
11596 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11597 and resy.
11598 * xterm.c (x_term_init): Compute resx and resy.
11599
11600 * xfaces.c (split_font_name): Don't reject scalable fonts.
11601
427ec082 11602 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11603 in #if 0.
11604
11605 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11606 point size cannot be determined.
11607
11608 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11609 width over all fonts on a frame.
11610 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11611 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11612 macros.
11613
11614 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11615 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11616 (x_load_font): Use x_compute_min_char_bounds.
11617
11618 * xterm.h (struct x_display_info): New members smallest_char_width
11619 and smallest_font_height.
11620
116211998-04-28 Gerd Moellmann <gerd@gnu.org>
11622
11623 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11624 the same name if GC of face is zero.
11625
11626 * dispextern.h (struct face): Member non_ascii_gc removed.
11627
11628 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11629 for characters < 0177 in default face. Prepare face for
26901792
DL
11630 display before returning it.
11631 (x_produce_glyphs): Use it->charset.
11632 (x_get_char_font_and_encoding): Simplified.
11633 (x_encode_char): Remove parameter `font'.
11634
11635 * xfaces.c (choose_face_font): If registry from charset symbol
11636 doesn't contain a `-', make it a pattern by appending "*-*".
11637
11638 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11639 glyph_check_pos computation to character boundary.
11640
116411998-04-27 Gerd Moellmann <gerd@gnu.org>
11642
11643 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11644
11645 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11646 ASCII face for a given Lisp face id.
11647
11648 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11649 account.
427ec082 11650 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11651 new position is < original position.
11652 (check_iterator_glyph_property): Handle glyph property in strings.
11653 (next_element_from_string): Call above function.
11654 (next_element_from_display_vector): Handle faces in glyphs.
11655 (get_next_display_element): Set face_id of glyphs for
11656 control chars to zero.
11657
11658 * Makefile.in (term.o): Add dependency on dispextern.h.
11659
11660 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11661 (display_line): Handle marginal areas.
11662 (move_iterator_in_display_line_to): Likewise.
11663
11664 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11665
11666 * xfaces.c (face_at_buffer_position): Don't merge with nil
11667 text property.
11668 (face_at_string_position): Ditto.
11669
11670 * dispextern.h (struct display_iterator): Use a stack of saved
11671 values instead of saving check positions etc. individually.
11672
11673 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11674 maybe pop the iterator's stack.
11675 (save_iterator_settings): Push a value on iterator's stack.
11676 (get_overlay_strings_at_iterator_position): Use it.
11677 (restore_iterator_settings): Pop the stack.
11678 (set_iterator_to_next_overlay_string): Use it.
11679
11680 * xfaces.c (try_font_list): Use alternative font families.
11681
116821998-04-26 Gerd Moellmann <gerd@gnu.org>
11683
11684 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11685 font selection matches fonts.
11686 (Fface_font_sort_order): Return the font sort order.
11687 (best_matching_font): Find best matching font based on sort order.
11688 (cmp_font_names): Sort by given sort order.
11689
11690 * dispextern.h (struct display_iterator): New member faces_p.
11691 * xdisp.c (init_iterator): Initialize it->faces_p.
11692 (compute_face_at_iterator_string_position): Use it.
11693 (compute_face_at_iterator_position): Use it.
11694 (init_iterator): Use it.
11695 (display_mode_line): Ditto.
11696
11697 * xdisp.c (get_next_display_element): Put code choosing a face
11698 when the charset changes in #ifdef HAVE_FACES.
11699
427ec082 11700 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11701 lookup_face_for_charset.
11702
11703 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11704 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11705
117061998-04-25 Gerd Moellmann <gerd@gnu.org>
11707
11708 * xfaces.c (best_matching_font): Return the name of the best
11709 matching font in an array of font_name structures.
11710 (choose_face_font): Use it.
11711 (choose_face_fontset_font): Use it.
11712 (find_best_weight_font): If final font found has same weight as
11713 the font we started with, return the original font because it is a
11714 better match for the resolution of the display.
11715 (find_best_slant_font): Likewise.
11716 (merge_face_vector_with_property): Check more invalid attribute
11717 values.
11718 (lface_suitable_for_charset_p): Replaced by a macro with the same
11719 name in upper-case.
11720
117211998-04-24 Gerd Moellmann <gerd@gnu.org>
11722
11723 * dispextern.h (struct face): Member
11724 fontset_chosen_for_realization_p removed.
11725
11726 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11727 end of the collision list, so that we find more specific faces
11728 first.
11729 (lookup_face_for_charset): Look up a new face if face->fontset >=
11730 0, and charset != CHARSET_COMPOSITION.
11731
11732 * xfaces.c (split_font_name): Return zero if point size of font
11733 couldn't be computed.
11734 (realize_default_face): Use ASCII font of a fontset to determine
11735 font-related attributes of the default face.
11736 (face_fontset): Return fontset id for face family.
11737 (font_list): Additional parameter font_pattern. If non-nil,
11738 return fonts matching that pattern.
11739
117401998-04-23 Gerd Moellmann <gerd@gnu.org>
11741
11742 * xfaces.c (choose_face_fontset): If new fontset cannot be
11743 constructed, or fontset name cannot be split, return the id of the
11744 standard fontset.
11745
11746 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11747 When Emacs starts, it may be called for the initial frame which
11748 isn't an X frame.
11749
11750 * dispextern.h (struct face): New members foreground_defaulted_p,
11751 background_defaulted_p.
11752 (struct face): Members `mask' and `cache' removed.
11753
11754 * xfaces.c (load_color): Set them.
11755 (free_face_colors): Check them.
427ec082 11756 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11757 font unknown.
11758
11759 * xfaces.c (free_font): Removed.
11760 (load_face_font_or_fontset): Renamed from load_font.
11761 (load_face_font_or_fontset): Use message2 instead of signalling.
11762 (load_color): Likewise.
11763 (load_pixmap): Likewise.
11764
11765 * xterm.h (struct x_display_info): Add screen_dpi.
11766 * xterm.c (x_term_init): Initialize it.
11767 * xfaces.c (xlfd_point_size): Use it.
11768 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11769 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11770 similar to that of the frame appear first in the result.
11771
11772 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11773 is set for the face to cache, add it to the end of the collision
11774 list.
11775 (try_font_list): If fonts for given family and registry cannot
11776 be found, first try to keep the registry, and choose a different
11777 family.
11778 (choose_face_font): Allow nfonts == 0.
11779 (try_font_list): Give up if no font matches given registry.
11780
117811998-04-22 Gerd Moellmann <gerd@gnu.org>
11782
11783 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11784 font info id of the face.
11785
11786 * xfaces.c (load_font): Set font_info_id.
11787 (realize_face): Ditto.
11788
11789 * dispextern.h (struct face): Change member font_info to
11790 font_info_id.
11791
11792 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11793 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11794
11795 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11796 isn't ASCII, get the ASCII face before adding a space.
11797 (append_space): Likewise.
11798 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11799 to -1 so that it will compute the right face for the truncation
11800 glyphs.
11801
11802 * xfaces.c (realize_face): Set
11803 face->fontset_chosen_for_realization_p.
11804 (lookup_face_for_charset): If fontset wasn't specified originally
11805 and new charset != CHARSET_COMPOSITION, get a new face for that
11806 charset.
11807
11808 * dispextern.h (struct face): New member
11809 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11810 realize_face has chosen a fontset to display composite characters
11811 for a Lisp face not specifying a fontset.
11812
11813 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11814 face and line already filled here. Don't do anything if current
11815 face hasn't a relief or has a background equal to the frame
11816 background.
11817
11818 * xfaces.c (split_font_name): Additional parameter numeric_p.
11819 Don't compute numeric values if it is non-zero.
11820 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11821 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11822 font whose name cannot be split into fields.
11823
118241998-04-21 Gerd Moellmann <gerd@gnu.org>
11825
427ec082 11826 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11827 possibly using less restrictive patterns.
11828 (choose_face_font): Use it.
11829
11830 * xterm.c (x_get_char_font_and_encoding): For charset !=
11831 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11832
11833 * dispextern.h (struct face): New member font_info.
11834
11835 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11836 specifying a fontset as well as those not having a fontset.
11837 (free_font): Make it empty.
11838 (realize_face): Use changed load_font.
11839
11840 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11841 fit for charset, get the right one.
11842
11843 * xfaces.c (load_font): Take frame and name parameter, return
11844 font.
11845 (free_font): Likewise.
11846 (split_font_name): Compute numeric values for height, swidth etc.
11847 (cmp_font_names): Use them.
11848 (find_best_width_font): Ditto.
11849 (find_best_height_font): Ditto.
11850 (find_best_weight_font): Ditto.
11851 (find_best_slant_font): Ditto.
11852 (lface_hash): Add weight, slant, swidth and relief to hash value.
11853 (lface_equal_p): Make it faster.
11854 (lface_from_symbol): Use assq_no_quit.
11855 (Fnote_default_face_changed): Removed.
11856 (cmp_font_names): Use strcmp instead of xstricmp.
11857 (face_charset_registries): Removed.
11858
118591998-04-20 Gerd Moellmann <gerd@gnu.org>
11860
11861 * frame.h (CHECK_FRAME): Give this macro a statement form.
11862 (CHECK_LIVE_FRAME): Ditto.
11863
11864 * xfaces.c (find_best_width_font): Find the best matching font
11865 for a given width.
11866 (find_best_height_font): Likewise for height.
11867 (find_best_weight_font): Likewise for weight.
11868 (find_best_slant_font): Likewise for slant.
11869 (choose_face_font): Use them.
11870 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11871 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11872 global face attributes.
11873
11874 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11875 Lisp face attributes.
11876
118771998-04-19 Gerd Moellmann <gerd@gnu.org>
11878
11879 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11880 and :italic for compatibility.
11881 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11882 :bold and :italic. Handle boolean resource values for
26901792
DL
11883 :underline and :italic.
11884
11885 * xfns.c (display_x_get_resource): Make it externally visible.
11886
11887 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11888 If that frame is non-null, return the frame-local face.
11889 (Finternal_make_lisp_face): Additional frame argument.
11890 (lface_attributes): Get face attributes from global and frame-local
11891 definitions.
11892 (Finternal_lisp_face_equal_p): Additional frame argument.
11893 (merge_lisp_face_vector_with_property): Ditto.
11894 (Frealize_basic_faces): Removed.
11895 (Finternal_get_lisp_face_attribute): Additional frame argument.
11896 (Finternal_lisp_face_p): Ditto.
11897 (load_color) [MSDOS]: Removed because it isn't clear how
11898 to do this for MS-DOS.
11899
11900 * xfaces.c (lface_from_symbol): Get global face definition
11901 from face-global-alist.
11902
11903 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11904 as values for :underline and :inverse-video.
11905 (Finternal_set_lisp_face_attribute): Allow nil values.
11906
119071998-04-17 Gerd Moellmann <gerd@gnu.org>
11908
11909 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11910
11911 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11912 (Finternal_make_lisp_face): Add new face to Vall_faces.
11913
11914 * xdisp.c (echo_area_display): Remove code recomputing faces.
11915 (redisplay_internal): Ditto.
11916 (init_iterator): Do it here.
11917
11918 * xfaces.c (choose_face_font): Check that swidth doesn't change
11919 for subusequent attributes.
11920 (xlfd_point_size): Return int.
11921
11922 * xdisp.c (redisplay_internal, echo_area-display): If realized
11923 faces have been cleared, call recompute_basic_faces.
11924
11925 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11926 face_attributes_changed_p.
427ec082 11927 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
11928 all frames.
11929 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11930
11931 * xdisp.c (redisplay_internal): If face attributes have been
11932 changed since the last redisplay, recompute basic faces.
11933 (echo_area_display): Ditto.
11934
11935 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11936
11937 * xfaces.c (min_char_bounds): If face cache not yet present,
11938 don't try to get font dimensions from faces.
11939
11940 * xterm.c (x_frame_mode_line_height): If face cache not present
11941 set, return default height.
11942
11943 * alloc.c (mark_face_cache): Check for null faces. Correct
11944 index bug.
11945
11946 * dispextern.h (struct face): Renamed from struct rface. Member
11947 underline renamed underline_p. Make it a bit-field.
11948
11949 * xfaces.c (init_frame_faces): Allocate face cache.
11950 (free_frame_faces): Free face cache.
11951 (recompute_basic_faces): Realize basic faces only if face cache is
11952 allocated, i.e. after init_frame_faces has been called.
11953
11954 * frame.c (make_frame): Initialze face cache with null.
11955
11956 * xfaces.c (same_size_fonts): Removed.
11957
427ec082 11958 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
11959 s->gc != 0.
11960 (x_set_mouse_face_gc): Ditto.
11961 (x_set_mode_line_face_gc): Ditto.
11962
427ec082
SS
11963 * xfaces.c (realize_default_face): Return int. Value is
11964 zero if frame params don't contain enough information to
26901792
DL
11965 realize the default face.
11966 (realize_basic_faces): Ditto.
11967 (init_frame_faces): Realize basic faces.
11968
11969 * xfns.c (x_set_font): First store real font name in frame
11970 parameters, then call recompute_basic_faces.
11971
11972 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11973
119741998-04-16 Gerd Moellmann <gerd@gnu.org>
11975
11976 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11977
11978 * xfns.c (Fx_face_fixed_p): Removed.
11979 (Fx_list_fonts): Moved to xfaces.c.
11980
11981 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11982 face_at_buffer_position. Parameter charset removed; always
11983 compute face for CHARSET_ASCII.
11984 (face_at_string_position): Renamed from
11985 compute_face_at_string_pos. Parameter charset removed; always
11986 compute for CHARSET_ASCII.
427ec082 11987 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
11988 face_cache.
11989 (lookup_face): Ditto.
11990 (compute_char_face): Renamed from compute_glyph_face.
11991
11992 * xdisp.c (init_iterator): Initialize charset member.
11993 (reseat_iterator_to_string): Ditto.
11994 (get_charset_at_buffer_position): Determine charset at
11995 buffer position in current_buffer.
11996 (reseat_iterator): Call above function.
11997 (compute_face_at_iterator_position): Call
11998 compute_face_at_buffer_pos.
11999 (compute_face_at_iterator_string_position): Call
12000 compute_face_at_string_pos.
12001 (get_face_from_id): Removed.
12002 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
12003 Call get_charset_at_buffer_position.
12004 (reseat_iterator): Determine face if charset at pos differs
12005 from iterator's charset.
12006 (reseat_iterator_to_glyph_pos): Removed.
12007
12008 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12009 Determine charset from buffer position.
12010 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12011 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12012
12013 * dispextern.h (struct display_iterator): Add member charset.
12014
120151998-04-15 Gerd Moellmann <gerd@gnu.org>
12016
12017 * xfaces.c (compute_char_face): Removed.
12018
12019 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12020 with new parameter list.
12021
12022 * xfaces.c (region_face): Removed.
12023 (allocate_face): Removed.
12024 (copy_face): Ditto.
12025 (face_eql): Removed.
12026 (intern_face): Removed.
12027 (clear_face_cache): Removed.
12028 (load_font): Ditto.
12029 (unload_font): Ditto.
12030 (load_color): Ditto.
12031 (unload_color): Ditto.
12032 (new_computed_face): Ditto.
12033 (intern_computed_face): Ditto.
12034 (ensure_face_ready): Ditto.
12035 (merge_faces): Ditto.
12036 (compute_base_face): Ditto.
12037 (merge_face_list): Ditto.
12038 (Fmake_face_internal): Removed.
12039 (Fset_face_attribute_internal): Ditto.
12040 (face_name_id_number): Removed.
12041 (Fframe_face_alist): Ditto.
12042 (Fset_frame_face_alist): Ditto.
12043 (Finternal_next_face_id): Ditto.
12044
12045 * xterm.h (struct x_output): Remove computed_faces, and
12046 param_faces. Remove macros accessing them.
12047
12048 * xfaces.c: Entirely new face implementation added.
12049
120501998-04-11 Gerd Moellmann <gerd@gnu.org>
12051
12052 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12053 `charpos'.
12054
120551998-04-10 Gerd Moellmann <gerd@gnu.org>
12056
12057 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12058 scroll bar window to reduce flickering. Clear entire height.
12059
12060 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12061 current_x and hpos to zero after moving to previous line
12062 start.
12063
120641998-04-03 Gerd Moellmann <gerd@gnu.org>
12065
12066 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12067
12068 * xfaces.c (xlfd_point_size): Compute relative point size of
12069 fonts from font and frame resolution.
12070 (sort_fonts): New function to sort fonts, temporarily setting
12071 font_frame to the frame in effect.
12072 (xlfd_point_size): Take additional frame parameter to be able
12073 to get at the display's resolution.
12074
12075 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12076 BLACK_PIX_DEFAULT.
12077 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12078 screen of display.
12079
120801998-03-31 Gerd Moellmann <gerd@gnu.org>
12081
12082 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12083
12084 * fontset.h: Add external declarations for Vfontset_alias_alist
12085 and Vglobal_fontset_alist.
12086
12087 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12088 (realize_default_face): If frame parameters contain an artificial
12089 font name naming a fontset, set the family of the default face to
12090 the fontset name given by the registry.
12091
12092 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12093
120941998-03-22 Gerd Moellmann <gerd@gnu.org>
12095
12096 * alloc.c (mark_object): Add function prototype. Add cast to
12097 Lisp_Object pointer in call to mark_object for symbol names
12098 because this otherwise gives a warning from gcc 2.8.1.
12099 (mark_face_cache): Mark Lisp objects in realized faces.
12100
121011998-03-19 Gerd Moellmann <gerd@gnu.org>
12102
12103 * frame.h (struct frame): Add member face_cache.
12104
12105 * alloc.c (mark_object): Mark face cache.
12106 (mark_face_cache): Mark Lisp faces in face cache of frame.
12107
12108 * frame.c (make_frame): Initialize face_cache.
12109 (Fdelete_frame): Free it.
12110
121111998-03-18 Gerd Moellmann <gerd@gnu.org>
12112
12113 * xfaces.c: Very first skeleton of functions for face realization,
12114 face merging, face cache etc.
12115
12116 * dispextern.h (struct rface): Realized faces. Will replace
12117 struct face when tested.
12118 (struct face_cache): Realized face caches.
12119
12120 * xdisp.c (init_iterator): Initialize area member of display
12121 iterator.
12122
121231998-03-17 Gerd Moellmann <gerd@gnu.org>
12124
12125 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12126
12127 * dispextern.h (struct display_iterator): New member area.
12128
12129 * xterm.c (note_overwritten_text_cursor): Note when the text
12130 cursor of a window is overwritten.
12131
12132 * xdisp.c (set_cursor_from_row): If PT is not found in the
12133 row, display the cursor at the start of the row.
12134
12135 * dispnew.c (direct_output_forward_char): Call
12136 set_cursor_from_row.
12137
12138 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12139 position is not in an overlay string, set iterator's position and
12140 method explicitly so.
427ec082 12141 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12142 Make it externally visible.
12143 (redisplay_window): Call set_cursor_from_row so that there is only
12144 one place where the cursor position is calculated from a current
12145 row.
12146
12147 * dispextern.h (struct display_iterator): New member
12148 overlay_strings_at_end_processed_p.
12149
12150 * xdisp.c (check_iterator): Perform sanity checks on
12151 display_iterators.
12152 (next_element_from_buffer): Check for overlay strings at ZV.
12153
121541998-03-16 Gerd Moellmann <gerd@gnu.org>
12155
12156 * buffer.c (init_buffer_once): Add left_margin_width and
12157 right_margin_width to buffer_local_flags.
12158
12159 * dispnew.c (margin_glyphs_to_reserve): Function computing
12160 number of glyphs to reserve for a marginal area.
12161 (adjust_glyph_matrix): Call it.
12162 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12163 is not alive.
12164
12165 * window.c (Fset_window_margins): Allow floats.
12166
12167 * buffer.c (syms_of_buffer): Add buffer-local variables
12168 left-margin-width and right-margin-width. Add defaults
12169 default-left-margin-width and default-right-margin-width.
12170
12171 * buffer.h (struct buffer): New members left_margin_width
12172 and right_margin_width.
12173
12174 * window.c (Fset_window_margins): Make window the last and
12175 optional argument.
12176
12177 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12178 flag no_marginal_areas_p differently.
12179 (x_clear_end_of_line): Ditto.
12180 (x_draw_glyph_string_relief): Compute width of relief differently
12181 for rows with flag no_marginal_areas_p.
12182
12183 * dispnew.c (update_window_line): Update marginal areas only
12184 for rows that don't have no_marginal_areas_p set.
12185
12186 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12187 (display_menu_bar): Ditto.
12188
12189 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12190
12191 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12192 marginal areas in window-based redisplay.
12193
12194 * dispextern.h (struct glyph_matrix): New members
12195 left_margin_glyphs and right_margin_glyphs.
12196
121971998-03-15 Gerd Moellmann <gerd@gnu.org>
12198
12199 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12200
12201 * charset.c (non_ascii_char_to_string): Use char type parameters
12202 because the function is used that way from outside. Use unsigned
12203 char internally.
12204
12205 * window.c (change_window_height): Return void.
12206 (make_dummy_parent): Return void.
12207 (init_window_once): Return void.
12208 (syms_of_window): Ditto.
12209 (keys_of_window): Ditto.
12210 (delete_window): Correct return with and without value.
12211
12212 * buffer.c (record_buffer): Return void.
12213
12214 * marker.c (unchain_marker): Return void.
12215
12216 * window.c (unshow_buffer): Return void.
12217 (replace_window): Ditto.
12218 (delete_window): Ditto.
12219
12220 * term.c (delete_glyphs_hook): Void return type.
12221 (ring_bell_hook): Ditto.
12222 (set_terminal_window_hook): Ditto.
12223
12224 * sysdep.c (init_sigio): Return void.
12225
12226 * xterm.c (x_set_window_size): Return void.
12227 (x_calc_absolute_position): Ditto.
12228 (x_set_offset): Ditto.
12229 (x_focus_on_frame): Ditto.
12230 (x_unfocus_frame): Ditto.
12231 (x_make_frame_visible): Ditto.
12232 (x_make_frame_invisible): Ditto.
12233 (x_iconify_frame): Ditto.
12234 (x_destroy_window): Ditto.
12235 (x_wm_set_window_state): Ditto.
12236 (x_wm_set_icon_pixmap): Ditto.
12237 (x_wm_set_icon_position): Ditto.
12238 (x_initialize): Ditto.
12239 (x_error_quitter): Ditto.
12240 (x_destroy_window): Use xfree instead of free.
12241
12242 * keyboard.c (clear_waiting_for_input): Return void.
12243
12244 * xterm.c (x_wm_set_size_hint): Return void.
12245 (x_raise_frame): Ditto.
12246 (refreshicon): Ditto.
12247 (x_error_catcher): Ditto.
12248 (x_clear_errors): Ditto.
12249
12250 * keyboard.c (record_asynch_buffer_change): Return void.
12251
bb6677a8
GM
12252 The first line of the following paragraph was garbled for an
12253 unknown reason. It couldn't be fully reconstructed.
12254
12255 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12256 (x_lower_frame): Ditto.
12257 (x_scroll_bar_clear): Ditto.
12258 (XTflash): Add default case in switch for -Wall.
12259 (construct_mouse_click): Return Qnil.
12260 (cancel_mouse_face): Return void.
12261 (x_queue_event): Use xmalloc instead of malloc.
12262 (x_unqueue_events): Use xfree instead of free.
12263
12264 * ccl.c (ccl_driver): Return int.
12265
12266 * keyboard.c (stop_polling): Return void.
12267 (start_polling): Ditto.
12268
12269 * term.c (keys): Add braces in initializer list for -Wall.
12270
12271 * sysdep.c (tabs_safe_p): Return int.
12272 (init_baud_rate): Return void.
12273
12274 * xterm.c (x_draw_bitmap): Add default case.
12275 (x_setup_relief_colors): Use DefaultScreen instead of
12276 DefaultScreenOfDisplay.
12277 (x_delete_glyphs): Return void.
12278 (construct_menu_click): Put in #if 0 because it isn't called.
12279
12280 * xdisp.c (load_overlay_strings): Remove extraneous argument
12281 in call to qsort.
12282 (get_overlay_arrow_glyph_row): Add missing return value.
12283
12284 * window.c (set_window_height): Return void.
12285 (set_window_width): Ditto.
12286
12287 * sysdep.c (request_sigio): Return void.
12288 (unrequest_sigio): Ditto.
12289 (get_frame_size): Ditto.
12290
12291 * scroll.c (scroll_cost): Return int.
12292 (do_line_insertion_deletion_costs): Return void.
12293
12294 * frame.c (Fdelete_frame): Use xfree instead of free.
12295
12296 * fileio.c (report_file_error): Return void.
12297
12298 * dispnew.c: Make compilable with -Wall.
12299 * term.c: Ditto.
12300
12301 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12302
123031998-03-14 Gerd Moellmann <gerd@gnu.org>
12304
12305 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12306 increased.
12307 (x_setup_relief_color): Free color only for appropriate visual
12308 classes.
12309
12310 * xterm.c (expose_window): Fix calculation of intersection of mode
12311 line rectangle with exposed rectangle.
12312
12313 * xdisp.c (redisplay_window): Don't do cursor movement based
12314 on current matrix if w->last_point is not valid.
12315
123161998-03-09 Gerd Moellmann <gerd@gnu.org>
12317
12318 * xterm.c (expose_line): Redraw mode line and menu lines
12319 differently because they reach into the scroll bar area.
12320
12321 * xdisp.c (redisplay_window): If redisplaying with same window
12322 start, don't accept cursor on partially visible line.
12323
123241998-03-08 Gerd Moellmann <gerd@gnu.org>
12325
12326 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12327 for wider mode lines.
12328 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12329
12330 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12331 scroll bar width for mode lines.
12332
12333 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12334 vertical scroll bar width in width calculation so that we can
12335 display mode lines wider.
12336
12337 * xdisp.c (redisplay_window): Restore buffers before returning
12338 when fonts have changed.
12339
12340 * dispnew.c (update_window): Mark invisible rows in the current
12341 matrix invalid.
12342
12343 * xdisp.c (try_window_id): Force update of first row displayed
12344 at window end.
12345 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12346
123471998-03-05 Gerd Moellmann <gerd@gnu.org>
12348
12349 * dispextern.h (struct glyph_row): Member max_ascent renamed
12350 ascent. Member max_descent replaced by height.
12351 (struct display_iterator): Member max_descent replaced by height.
12352 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12353
12354 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12355 class makes it unnecessary or dangerous.
12356
12357 * xdisp.c (redisplay_window): Case only point has changed, and
12358 point has moved forward. Move forward over overlay strings.
12359 (display_line): Don't set cursor if first glyph from PT is part of
12360 a continuation line.
12361
123621998-02-21 Gerd Moellmann <gerd@gnu.org>
12363
12364 * xdisp.c (start_display): When computing continuation lines
12365 width, add current_x to the continuation lines width because
12366 move_iterator_to will stop in front of the buffer position moved
12367 to.
12368
123691998-02-20 Gerd Moellmann <gerd@gnu.org>
12370
12371 * xdisp.c (redisplay_window): Don't try try_window_id if
12372 windows_or_buffers_changed.
12373
12374 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12375 determine a color.
12376 (x_setup_relief_color): Allocate/ change one relief.
12377 (x_setup_relief_colors): Call above function.
12378
12379 * xterm.h (struct relief): New structure type holding relief info:
12380 GCs, colors, and whether colors are allocated.
12381
427ec082 12382 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12383 produces the same color, try adding a delta to RGB values.
12384 (x_setup_relief_colors): Free color cells.
12385
427ec082 12386 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12387 black_relief_pixel holding the foreground colors allocated for
12388 relief GCs. New members white_allocated_p, black_allocated_p.
12389
12390 * xterm.c (x_scroll_run): Don't set updated_window to null.
12391 This resets updated_window when called from scrolling_window.
12392
12393 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12394
26901792
DL
12395 * xterm.c (x_scroll_run): Additional window parameter. Set
12396 and reset updated_window.
12397
12398 * dispnew.c (line_dance_hook): Additional window parameter.
12399
12400 * xdisp.c (try_window_reusing_current_matrix): Don't call
12401 update_window_begin/end here. The end function would display the
12402 cursor on a wrong position and the additional functionality of
12403 update_window_begin is not needed anyway. Just set
12404 updated_window.
12405 (try_window_id): Ditto.
12406
12407 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12408 Don't redraw cursor during redisplay.
12409
12410 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12411
12412 * xdisp.c (redisplay_window): For window-based redisplay, alway
12413 try try_window_id.
12414
12415 * xterm.c (struct glyph_string): New member two_byte_p that is
12416 non-zero if 16-bit drawing functions must be used.
12417 (x_fill_composite_glyph_string): Set it.
12418 (x_fill_glyph_string): Set it.
12419 (x_draw_glyph_string_foreground): Use it.
12420 (x_draw_vertical_border): Make line 1 pixel less tall.
12421 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12422 side by 1 pixel if window is not right-most hasn't vertical scroll
12423 bars.
12424 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12425 out of bounds.
12426 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12427 hl == DRAW_CURSOR.
12428
12429 * xdisp.c (start_display): Check that window start is at line
12430 start if GLYPH_DEBUG != 0.
12431
12432 * window.c (window_scroll_pixel_based): Move assertion to
12433 start_display.
12434
124351998-02-19 Gerd Moellmann <gerd@gnu.org>
12436
427ec082 12437 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
12438 frame hasn't the focus.
12439
12440 * window.c (make_window): Initialize dy.
12441 (replace_window): Ditto.
12442
12443 * window.h (window): New member dy specifying the amount by which
12444 a window is scrolled "smoothly".
12445
12446 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 12447 y-position because it can be negative.
26901792
DL
12448 (x_draw_row_bitmaps): Don't clear with negative y-position like
12449 above.
12450 (x_clear_end_of_line): Same theme as above.
12451
12452 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
12453 exact match exists, the nearest existing color. Patterned after
12454 defined_color.
12455 (x_alloc_lighter_color): Allocate a color that is lighter or
12456 darker than a given color by a specified factor.
427ec082 12457 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
12458 the background color of a glyph string face.
12459 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
12460
12461 * xfns.c (x_make_gc): Don't allocate relief GCs.
12462 * widget.c (create_frame_gcs): Don't allocate relief GCs.
12463 (setup_frame_gcs): Don't change relief GCs.
12464
12465 * xterm.h (struct x_output): New member relief_background giving
12466 the background pixel color for which relief GCs can be used.
12467 Set by x_setup_relief_colors.
12468
12469 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
12470 for mode and menu lines.
12471
12472 * xdisp.c (set_next_iterator_stop_pos): No longer static.
12473
12474 * dispnew.c (direct_output_for_insert): Call
12475 set_next_iterator_stop_pos after having changed it2.endpos.
12476
124771998-02-17 Gerd Moellmann <gerd@gnu.org>
12478
12479 * dispnew.c (update_window): Work on selected_window, only.
12480
12481 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
12482 hpos is >= number of glyphs in the cursor row.
12483
12484 * xdisp.c (try_window_id): Bug fix; update_window_end was not
12485 called.
12486
124871998-02-16 Gerd Moellmann <gerd@gnu.org>
12488
12489 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
12490 and menu lines.
12491
12492 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
12493 enough glyphs to display a mode line or menu line which draws over
12494 flags areas.
12495
12496 * xterm.c (XTset_vertical_scroll_bar): Use
12497 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
12498 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 12499 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
12500 or menu.
12501 (x_set_glyph_string_clipping): Set clipping differently if drawing
12502 a mode line or menu line.
12503
12504 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
12505
12506 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
12507 menu lines.
12508 (x_scroll_bar_create): Don't clear flags areas.
12509 (x_draw_row_bitmaps): Clear visible row height, only.
12510
12511 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
12512
125131998-02-15 Gerd Moellmann <gerd@gnu.org>
12514
12515 * dispnew.c (direct_output_for_insert): When checking for tabs in
12516 the line, set it2.endpos to ZV.
427ec082 12517
26901792
DL
12518 * window.h (struct window): New member cursor_off_p.
12519 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
12520 for X.
12521 * dispnew.c (redraw_cursor_hook): If non-null, function that can
12522 be called to display or erase the cursor.
12523 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
12524 or selected_window.
12525
12526 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
12527
12528 * dispnew.c (update_window_line): Special handling of inverse
12529 lines in #if 0 removed.
12530
12531 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
12532 (x_insert_glyphs): Renamed from XTinsert_glyphs.
12533 (x_clear_frame): Renamed from XTclear_frame.
12534 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
12535 (x_ins_del_lines): Renamed from XTins_del_lines.
12536 (x_change_line_height): Renamed from XTchange_line_height.
12537 (x_delete_glyphs): Renamed from XTdelete_glyphs.
12538 (x_clear_cursor): Renamed from clear_cursor.
12539 (x_update_begin): Renamed from XTupdate_begin.
12540 (x_update_end): Renamed from XTupdate_end.
12541 (x_update_window_begin): Renamed from XTupdate_window_begin.
12542 (x_update_window_end): Renamed from XTupdate_window_end.
12543 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
12544 (x_produce_glyphs): Renamed from XTproduce_glyphs.
12545 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
12546 (x_produce_special_glyphs): Implementation in #if 0 removed.
12547
12548 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
12549 flag in the dump.
12550
12551 * dispnew.c (update_text_area): Handling of glyphs with pixel
12552 width zero removed. Decrement desired stop pos if desired row
12553 fills its line.
12554
12555 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
12556 width zero removed.
12557 (BUILD_GLYPH_STRINGS): Set glyph string flag
12558 extends_to_end_of_line_p based on row's flag fill_line_p and face
12559 background and stipple. Make sure it works for composite characters.
12560
12561 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
12562 fill_line_p. For window-based redisplay, add a space only if
12563 the row is empty so that we know the face to draw.
12564
12565 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
12566 means draw the face of the last glyph in the text area to the
12567 right end of the text area.
12568
12569 * xdisp.c (init_iterator): Show region in window mini-buffer
12570 window refers to.
12571
427ec082 12572 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
12573 region_showing_p removed. Test for region_beg > 0 instead.
12574
12575 * dispnew.c (update_text_area): Clear to end of line if cursor is
12576 beyond the end of the desired line. Necessary because we don't
12577 have a phys_cursor_glyph with which to erase the cursor. We don't
12578 have one because this method of drawing a cursor doesn't work with
12579 lbearing/rbearing.
12580
12581 * xterm.c (XTinsert_glyphs): Block input.
12582
125831998-02-14 Gerd Moellmann <gerd@gnu.org>
12584
12585 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
12586 glyph strings.
12587 (x_draw_glyph_string_background): Fill background with background
12588 pixel for the first glyph of a composite character.
12589
12590 * xdisp.c (try_window): Change return type to int. Value is zero
12591 if fonts were loaded during redisplay.
12592 (redisplay_window): Return if fonts have been loaded during
12593 redisplay.
12594 (append_space): New parameter default_face_p.
12595
125961998-02-13 Gerd Moellmann <gerd@gnu.org>
12597
12598 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
12599 don't let a partially visible line in a current matrix stay
12600 enabled.
12601
126021998-02-09 Gerd Moellmann <gerd@gnu.org>
12603
12604 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
12605 in #if PROMPT_IN_BUFFER.
12606
12607 * xdisp.c (display_line): If row ends in ZV, make the space
12608 that is added to place the cursor on it appear in default face.
12609
427ec082 12610 * xterm.c (expose_area): New function redrawing a single
26901792
DL
12611 glyph row area.
12612 (expose_line): Use it to redraw all areas of a row.
12613
12614 * dispextern.h (move_operation_enum): New enum
12615 move_operation_enum.
12616
12617 * window.c (window_scroll_pixel_based): Remove now unnecessary
12618 code that made sure that it->current_y doesn't become negative.
12619
12620 * xdisp.c (move_iterator_in_display_line_to): New parameter
12621 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
12622 (move_iterator_to): Ditto.
12623
12624 * dispextern.h (struct glyph_matrix): New member window_width.
12625
12626 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
12627 case of changing window height.
12628
12629 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 12630 border to the left.
26901792
DL
12631
12632 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
12633 says this aspect of Emacs is currently redesigned.
12634
12635 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
12636 have to draw a vertical border.
12637
12638 * window.c (window_scroll_pixel_based): When scrolling down by
12639 screen-fulls, make sure it.current_y doesn't get negative because
12640 this would confuse move_iterator_vertically.
12641
12642 * xdisp.c (move_iterator_vertically_backward): Bug fix for
12643 the case continuation lines are involved.
12644 (try_window_id): Don't set the cursor into scroll margins.
12645
126461998-02-08 Gerd Moellmann <gerd@gnu.org>
12647
12648 * xterm.c (x_append_glyph): Don't compute left_overhang and
12649 right_overhang.
12650 (XTproduce_glyphs): left_overhang and right_overhang removed.
12651 Set it->glyph_row->contains_overlapping_glyphs_p.
12652
12653 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
12654 and right_overhang removed.
12655
12656 * dispextern.h (struct glyph_row): New member
12657 contains_overlapping_glyphs_p used to optimize glyph drawing.
12658 (struct display_iterator): left_overhang and right_overhang
12659 removed.
12660 (struct glyph): Ditto.
12661
12662 * xterm.c (x_draw_relief): Removed.
12663 (x_draw_bitmap): Renamed from draw_bitmap.
12664 (x_draw_glyphs): Completely new implementation of draw_glyphs
12665 capable of handling arbitrary lbearing and rbearing values.
12666 Several sub-functions not mentioned here.
12667
126681998-01-30 Gerd Moellmann <gerd@gnu.org>
12669
12670 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 12671 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
12672 other cases.
12673 (draw_glyphs): Move start to the left and end to the right if they
427ec082 12674 overlap with previous or following characters.
26901792 12675 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 12676 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
12677 character under the cursor would be invisible.
12678 (x_draw_bar_cursor): Don't draw over previous character if it
12679 has right_overhang.
12680
12681 * window.c (get_phys_cursor_glyph): Return the glyph under a
12682 window's physical cursor.
427ec082 12683
26901792
DL
12684 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
12685 (x_draw_bar_cursor): Ditto.
12686 (x_erase_phys_cursor): Ditto.
12687 (x_phys_cursor_in_rect_p): Ditto.
12688 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
12689
12690 * window.c (make_window): Remove reference to phys_cursor_glyph.
12691 (replace_window): Ditto.
12692
12693 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 12694 now always a glyph present for placing the cursor on it in
26901792
DL
12695 each glyph row, even at the end of a line.
12696
12697 * xdisp.c (append_space): Function to add a space to an iterators
12698 glyph row.
12699 (display_line): Add spaces at the end of lines that are used to
12700 place the cursor on them.
12701 (compute_line_metrics): If row consists of a space only that was
427ec082 12702 added to place the cursor on it, use that space's height as the
26901792
DL
12703 line height.
12704
127051998-01-29 Gerd Moellmann <gerd@gnu.org>
12706
12707 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
12708 glyphs.
12709
127101998-01-28 Gerd Moellmann <gerd@gnu.org>
12711
12712 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
12713 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
12714
12715 * dispextern.h (struct glyph): Add left_overhang and
427ec082 12716 right_overhang.
26901792
DL
12717 (struct display_iterator): Ditto.
12718
12719 * dispnew.c (direct_output_for_insert): Give up if newly inserted
12720 glyphs have different ascent or descent than original row.
12721
12722 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
12723 row->max_descent only if unknown.
12724 (display_line): Compute row->max_ascent and row->max_descent.
12725 (display_string): Ditto.
12726
12727 * window.h (struct window): New members phys_cursor_ascent and
427ec082 12728 phys_cursor_descent.
26901792
DL
12729
12730 * xterm.c (x_phys_cursor_in_rect_p): Use them.
12731 (x_draw_hollow_cursor): Ditto.
12732 (x_erase_phys_cursor): Ditto.
12733 (x_display_and_set_cursor): Set them.
12734 (x_append_glyph): Don't set glyph members that were removed.
12735
12736 * dispextern.h (struct glyph): Members ascent, descent,
12737 contributes_to_line_height_p removed.
12738
127391998-01-25 Gerd Moellmann <gerd@gnu.org>
12740
12741 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
12742 names for face ids of frame default face and mode line face.
12743
12744 * xdisp.c (compute_face_at_iterator_string_position): If
12745 displaying a mode line use MODE_LINE_FACE_ID instead of
12746 DEFAULT_FACE_ID.
12747
12748 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
12749 (display_string): Ditto, additional parameter lisp_string.
12750 (display_line): Call display_string with Lisp mini-buffer prompt
12751 string.
12752 (display_menu_bar): Call display_string with Lisp string.
12753 (display_mode_element): Ditto.
12754 (next_element_from_string): Make it work for non-overlay Lisp
12755 strings with field width and precision.
12756
12757 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
12758 PROMPT_IN_BUFFER.
12759
12760 * xfaces.c (compute_string_char_face): Fix face computation
12761 for overlay strings.
12762
12763 * xdisp.c (struct overlay_entry): Add member after_string_p.
12764 (load_overlay_strings): Simplify.
12765
12766 * window.c (delete_window): Defer glyph matrix adjustment.
12767 (Fsplit_window): Ditto.
12768 (change_window_height): Ditto.
12769 (Fset_window_configuration): Ditto.
12770 (Fset_window_margins): Ditto.
12771 * frame.c (set_menu_bar_lines): Ditto.
12772 (Fmake_terminal_frame): Ditto.
12773 * dispnew.c (change_frame_size_1): Ditto.
12774
127751998-01-24 Gerd Moellmann <gerd@gnu.org>
12776
12777 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
12778
427ec082 12779 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
12780 position has overlay strings.
12781
12782 * xdisp.c (display_line): Don't set cursor if row ends in middle
12783 of overlay string.
12784 (Fdump_redisplay_state): Print complete row start and end
12785 position.
12786 (redisplay_window): Cursor movement when matrix hasn't changed---
12787 if PT < last_point, maybe move forward if row ends at PT and
12788 in middle of char.
12789
12790 * minibuf.c (read_minibuf): Save the value of
12791 minibuffer_prompt_length in minibuf_save_list.
12792 (read_minibuf_unwind): Restore minibuffer_prompt_length.
12793
12794 * xdisp.c (redisplay_window): Add assertion for cursor movement
12795 case, PT < last_point.
12796 (move_iterator_in_display_line_to): If to_pos specified, move
12797 over before-strings.
12798
12799 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
12800 start.string_index > 0.
12801
12802 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
12803 is set. Retry redisplay if fonts_changed_p is set before update.
12804
12805 * xterm.c (x_load_font): Set fonts_changed_p.
12806
12807 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
12808
12809 * dispnew.c (adjust_glyphs_for_font_change): Removed.
12810
12811 * xdisp.c (try_window): Check fonts_changed_p.
12812 (try_window_reusing_current_matrix): Ditto.
12813 (try_window_id): Ditto.
12814
12815 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
12816 (fonts_changed_p): Flag indicating a font change since the last
12817 glyph matrix adjustment.
12818
12819 * xterm.c (x_per_char_metric): Use font->max_bounds as
12820 char metric of the font's default char if the default char
12821 hasn't per char metric itself.
12822
12823 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
12824 for font change.
12825 (min_char_bounds): Check face->font != NULL.
427ec082 12826 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
12827 case of invalid min_bounds contents.
12828 (min_char_bounds): Call font_min_bounds.
12829
128301998-01-22 Gerd Moellmann <gerd@gnu.org>
12831
12832 * xdisp.c (start_display): Don't set it->prompt_width if
12833 PROMPT_IN_BUFFER.
12834 (move_iterator_in_display_line_to): Ditto.
12835 (display_line): Don't display prompt via display_string if
12836 PROMPT_IN_BUFFER.
12837
12838 * minibuf.c (Fminibuffer_prompt_width): Return value from
12839 current_buffer if PROMPT_IN_BUFFER.
427ec082 12840 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
12841 mini-buffer and make it read-only.
12842 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
12843 minibuffer_prompt_length instead of BEGV.
12844 (Fminibuffer_complete_word): Ditto.
12845 (Fminibuffer_complete_word): Ditto.
12846
12847 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
12848 is less than mini-buffer prompt width, use prompt width as start.
12849
12850 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
12851 position is less than mini-buffer prompt width, use the prompt
12852 width as start.
12853
12854 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
12855 end of prompt if applied to a mini-buffer and BEG reached.
12856
128571998-01-21 Gerd Moellmann <gerd@gnu.org>
12858
12859 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
12860 length to start position.
12861
12862 * buffer.c (Fget_buffer_create): Initialize
12863 minibuffer_prompt_length.
12864 (Fmake_indirect_buffer): Ditto.
12865 (Fkill_buffer): Ditto.
12866
12867 * buffer.h (struct buffer): Add member minibuffer_prompt_length
12868 if PROMPT_IN_BUFFER.
12869
128701998-01-19 Gerd Moellmann <gerd@gnu.org>
12871
12872 * xdisp.c (next_element_from_string): Make it work for arbitrary
12873 Lisp strings.
12874 (set_iterator_to_next): Advance to next overlay string only
12875 if it->string is an overlay string.
12876
12877 * dispextern.h (struct display_iterator):
12878 next_ovstr_face_check_pos renamed next_string_face_check_pos.
12879
427ec082 12880 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
12881 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
12882
12883 * xdisp.c (next_element_from_string): Renamed from
12884 next_element_from_overlay_string.
427ec082 12885 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
12886 compute_face_at_iterator_overlay_string_position.
12887
12888 * dispextern.h (struct display_iterator): Member overlay_string
12889 renamed string.
12890
12891 * xdisp.c (next_element_from_c_string): Renamed from
12892 next_element_from_string.
12893
12894 * dispextern.h (struct glyph_pos): Reversed meaning of
12895 overlay_string_index and string_index.
12896
12897 * xdisp.c (next_element_from_overlay_string): Fix bug that made
12898 this function always return the first character of an overlay
12899 string.
12900
129011998-01-18 Gerd Moellmann <gerd@gnu.org>
12902
12903 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
12904 forced or new pos > next_invisible_check_pos.
12905 (redisplay_window): Don't try same window start if PT < window
12906 start.
12907 (move_iterator_vertically): Bug fix satisfying post-condition
12908 when ZV is reached and no newline in front.
12909 (move_iterator_vertically_backward): New implementation.
12910 (move_iterator_vertically_backward): Bug fixes.
12911
12912 * xterm.c (XTmouse_position): Change call to min_char_bounds.
12913 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
12914 (adjust_glyphs_for_font_change): Always adjust.
12915
12916 * dispnew.c (struct dim): Use int.
12917
12918 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
12919 (allocate_face): Initialize it.
12920 (load_font): Use XLoadQueryFont again instead of x_load_font.
12921 (unload_font): Use XFreeFont again.
12922 (min_char_bounds): Iterate over fonts of faces. Use frame's
12923 font sizes as default. Remove parameter except_last_font_p.
12924
12925 * dispextern.h (struct face): Add font_name.
12926
129271998-01-17 Gerd Moellmann <gerd@gnu.org>
12928
12929 * xdisp.c (move_iterator_vertically): Check post-condition. Move
12930 to start of line if ending at ZV and no newline in front.
12931 (move_iterator_to): If to_y specified, always first move to x = 0,
12932 so that move stops at line start instead of line end. This is
12933 probably what callers would expect to happen.
12934
12935 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
12936 can handle different line heights.
12937 (window_scroll_line_based): Formerly window_scroll.
12938 (window_scroll): Call both.
12939
12940 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
12941 (move_iterator_in_display_line_to): Ditto.
12942 (display_line): Ditto.
12943
12944 * minibuf.c (read_minibuf): Conditionally insert prompt into
12945 buffer instead of handling prompts specially. Change other
12946 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
12947
12948 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
12949 upper window. Optimize calls to xrealloc if same width.
12950
12951 * xdisp.c (redisplay_window): Don't use
12952 try_window_reusing_current_matrix if window scroll functions
12953 exist.
12954
12955 * dispextern.h (struct display_iterator): Member
12956 redisplay_end_trigger_p removed.
12957
12958 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
12959 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
12960
129611998-01-16 Gerd Moellmann <gerd@gnu.org>
12962
12963 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
12964 nil. Optimize truncate-lines t and moving backward.
12965 (move_iterator_to_previous_visible_line_start): Contains the heart
12966 of the previous set_iterator_to_previous_visible_line_end. Don't
12967 reseat the iterator. Used by move_iterator_by_lines.
12968 (set_iterator_to_previous_visible_line_start): Call function
12969 above.
12970 (move_iterator_in_display_line_to): Check TO_POS before doing
12971 anything else. Otherwise to_pos == PT would move to x of PT+1.
12972
12973 * indent.c (Fvertical_motion): Use display_iterator.
12974
12975 * xdisp.c (move_iterator_by_lines): New function moving by screen
12976 lines.
12977 (redisplay_window): Use it.
12978 (move_iterator_to): Correct branch of to_vpos specified.
12979 (move_iterator_vertically_backward): Increment nlines after having
12980 backed up over some lines because the last line was not backed up
12981 over.
12982 (move_iterator_via_matrix): Look for it->pos in the matrix, and
12983 calculate it->vpos and it->current_y relative to this row.
427ec082 12984 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
12985 have a big effect and it is complex.
12986 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
12987
129881998-01-15 Gerd Moellmann <gerd@gnu.org>
12989
12990 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
12991 join nicely. Lines with widths > 2 don't join nicely under X.
12992 * xterm.h (struct x_output): Remove member relief_gc_line_width.
12993 * widget.c (setup_frame_gcs): Initialize relief GC's to line
12994 width 1; remove references to relief_gc_line_width.
12995 * xfns.c (x_make_gc): Ditto.
12996
12997 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
12998 if relief changes.
12999 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
13000 to get a relief because they can be negative.
13001
13002 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
13003 positions are for the middle of lines under X.
13004
13005 * xdisp.c (try_window_id): Always search for the cursor by setting
13006 w->cursor.vpos = -1. Search in unchanged rows at the top and
13007 bottom if cursor not found in displayed lines.
427ec082 13008 (display_mode_line): First extend face, then set right shadow
26901792
DL
13009 flag. Otherwise the wrong glyph gets the right shadow.
13010
13011 * dispnew.c (direct_output_for_insert): Give up if line contains
13012 a tab. The number of spaces inserted for a tab changes if we
13013 insert glyphs in front of it.
13014
13015 * xterm.c (x_list_fonts): Changes undone because the Lisp
13016 implementation for make-face-smaller, make-face-larger, and
13017 make-face-fixed can do without them.
13018
13019 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13020 inserted.
13021
13022 * xdisp.c (try_window_id): First compute beg_unchanged, then
13023 compare with window start pos.
13024
13025 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13026 fixed-width font.
13027 (syms_of_xfns): defsubr for x-face-fixed-p.
13028
13029 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13030 enabled, don't do anything because this row will be newly drawn
13031 anyway and because we can additionally no longer determine the row
13032 height.
13033
13034 * xdisp.c (display_line): Bug fix cursor positioning.
13035
13036 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13037 removed. x-list-fonts.c is now obsolete.
13038 (Qfixed, Qvariable): Moved here from xfaces.c.
13039
130401998-01-14 Gerd Moellmann <gerd@gnu.org>
13041
13042 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13043 FETCH_BYTE for truncated lines.
13044 (display_line): Set cursor differently.
13045 (display_line): Fixed bug setting last_pos_on_this_line wrong
13046 for truncated lines.
13047
13048 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13049 redisplay.
13050
13051 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13052
13053 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13054 assertion that character dimensions are not zero.
13055
13056 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13057 input is blocked.
13058
13059 * xdisp.c (decode_mode_spec): Faster implementation of line number
13060 display.
13061
13062 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13063 bitmaps if bitmaps don't fill the entire area.
13064 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13065
427ec082 13066 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13067 pixel height of flags bitmaps.
13068
13069 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13070 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13071
13072 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13073 in pixels of a flags area of a frame.
13074 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13075 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13076 occupied by a flags area.
13077
130781998-01-13 Gerd Moellmann <gerd@gnu.org>
13079
13080 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13081 window_end_valid.
13082
13083 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13084 GLYPH_DEBUG != 0.
13085
13086 * xdisp.c (display_line): Correct wrong calculation of row->x for
13087 the case of nglyphs == 1.
13088 (hscroll_window_tree): Renamed from hscroll_windows.
13089 (hscroll_windows): New function calling hscroll_window_tree that
13090 clears desired matrices on a frame when hscroll has been changed.
13091 (redisplay_p): Global flag set during redisplay.
13092 (redisplay_internal): Set and clear redisplay_p.
13093
13094 * xfaces.c (min_char_bounds): Add assertion that width and height
13095 are not zero at the end. Initialize *height and *width to -1,
13096 instead of using BITS_PER_SHORT. If font has min_bounds.width
13097 zero, use its max_bounds.width.
13098
13099 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13100 width and height.
13101
131021998-01-12 Gerd Moellmann <gerd@acm.org>
13103
13104 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13105 changed. Don't clear desired matrices.
13106
13107 * xdisp.c (hscroll_windows): Compute pt after setting
13108 current_buffer.
13109 (redisplay_window): Don't do cursor movement based on current
13110 matrix if just_this_one_p is zero.
13111
13112 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13113 specifying that fixed-width, variable-width fonts or both
26901792
DL
13114 should be returned.
13115
13116 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13117 (syms_of_xfaces): Initialize them.
13118
13119 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13120 cached information.
13121
131221998-01-11 Gerd Moellmann <gerd@acm.org>
13123
13124 * xdisp.c (display_mode_line): Extend face to end of line.
13125
13126 * xdisp.c (echo_area_display): Don't call display_string with
13127 echo_area_glyphs_length == 0 which would mean infinite precision.
13128 (redisplay_internal): Adjust window_end_vpos if necessary.
13129
131301998-01-07 Gerd Moellmann <gerd@acm.org>
13131
13132 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13133
131341998-01-05 Gerd Moellmann <gerd@acm.org>
13135
13136 * xdisp.c (get_row_start_continuation_line_width): Removed.
13137 (init_iterator_to_row_start): Set it.current_x from row.
13138 (try_window_id): Set it.continuation_lines_width directly from
13139 row.
13140
13141 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13142 selected_window.
13143 (hscroll_windows): Center cursor in window.
13144 (hscroll_windows): Call move_iterator_in_display_line_to.
13145
131461998-01-04 Gerd Moellmann <gerd@acm.org>
13147
13148 * xdisp.c (hscroll_windows): Check hscroll < 0.
13149 (redisplay_window): Allow quick cursor movement if overlay arrow
13150 but frame uses window-based redisplay.
13151 (display_line): Take special case for nglyphs == 1 out of #if 0.
13152 (display_line): Set row->ends_at_zv_p after the loop displaying
13153 glyphs because ZV can be in truncated text.
13154 (hscroll_windows): Use init_iterator_to_row_start.
13155
13156 * dispnew.c (scrolling_window): Calculation of overlapping
13157 runs fixed.
13158 (row_equal_p): Compare continued_p and continuation_line_p.
13159
131601998-01-02 Gerd Moellmann <gerd@acm.org>
13161
13162 * xterm.c (x_get_mode_line_face_gc): Renamed from
13163 x_get_modeline_face_gc.
13164
13165 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13166 buffer position to look for text properties.
13167 (get_face_from_cursor_pos): Use it.
13168 (compute_face_at_iterator_position): Use it.
13169 (next_element_from_buffer): Use it.
13170
13171 * dispnew.c (scrolling_window): Decrement run's y-position
13172 when extending it backwards.
13173
13174 * xterm.c (do_line_dance): Don't ever copy more than window height.
13175
131761998-01-01 Gerd Moellmann <gerd@acm.org>
13177
13178 * xdisp.c (redisplay_window): Cursor motion in unchanged
13179 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13180 (init_iterator_to_next_row_start): Special handling of lines
13181 ending in middle of char removed.
13182 (hscroll_windows): Hscroll windows only if window_end_valid is not
13183 nil.
13184 (try_window_reusing_current_matrix): Call hscroll_windows.
13185 (init_iterator_to_row_start): Initialize iterator for display
13186 starting at a position given by a glyph_row->start.
13187 (redisplay_window): Don't use vmotion because it gives wrong
13188 results if lines are continued and variable width fonts are used.
13189
427ec082 13190 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13191 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13192 the middle of a character.
427ec082 13193 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13194 the middle of a character.
13195
13196 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13197 it.
13198 (next_element_from_display_vector): Use it->dpvec_index.
13199 (reseat_iterator): Reset it.
13200 (init_iterator): Reset it.
13201 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13202 it->pos.dpvec_index from a glyph_pos structure.
13203 (init_iterator_from_glyph_pos): Call the function above.
13204 (reseat_iterator_to_glyph_pos): Ditto.
13205
13206 * dispnew.c (direct_output_forward_char): Don't use this method at
13207 overlay boundaries or near invisible text.
13208 (direct_output_forward_char): Step through glyph row to find
13209 cursor position.
13210
427ec082 13211 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13212 frame font if line height differs from font height.
13213
13214 * xdisp.c (set_iterator_to_next): Renamed from
13215 move_iterator_forward to avoid confusion with other move_.*
13216 functions.
13217
13218 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13219
132201997-12-31 Gerd Moellmann <gerd@acm.org>
13221
13222 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13223 same naming convention as for other GC functions.
13224 (draw_glyphs): Don't fill background when drawing a cursor and
13225 font height is less than line height.
13226
132271997-12-30 Gerd Moellmann <gerd@acm.org>
13228
13229 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13230 init_iterator_.*.
13231
13232 * xdisp.c (move_iterator_forward): Restore it->len from
13233 it->dpvec_char_len if dpend reached.
13234 (get_next_display_element): Don't consume translated char
13235 prematurely.
13236 (display_line): Don't set this_.* variables if row is continued.
13237 (start_display): Move to start of continuation line if ending
13238 up at end of continued line.
13239
13240 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13241
13242 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13243 checking TO_X and continuation lines.
13244 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13245 of a continued line, don't consider this line as unchanged because
13246 it may no longer be continued.
13247
132481997-12-29 Gerd Moellmann <gerd@acm.org>
13249
13250 * xdisp.c (try_window_id): Catch the case that moving over
13251 continuation lines moves first_unchanged_at_end_row to a row not
13252 displaying text.
13253
13254 * dispextern.h (struct glyph_row): New member
13255 continuation_lines_width. Member continuation_line_p removed.
427ec082 13256 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13257 continuation line.
13258 * xdisp.c (display_line): Set row->continuation_lines_width.
13259 (get_row_start_continuation_line_width): Set continuation lines
13260 width of iterator from continuation lines width of glyph row.
13261 (get_row_start_continuation_line_width): Make it inline.
13262 (set_window_cursor): Make it inline.
13263 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13264 (Fdump_redisplay_state): Ditto.
427ec082 13265
26901792
DL
13266 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13267 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13268
13269 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13270 after determining the continuation lines width for
13271 last_unchanged_at_beg_row.
13272
13273 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13274
13275 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13276 which support faces.
13277 (init_display_iterator): Ditto.
13278 (move_iterator_via_matrix): Skip over truncation glyph at the row
13279 start on terminal frames.
13280 (hscroll_windows): Choose hscroll margin differently for window
13281 system and terminal frames.
13282
132831997-12-28 Gerd Moellmann <gerd@acm.org>
13284
13285 * xdisp.c (hscroll_windows): Change hscroll of windows.
13286 (redisplay_internal): Call it.
13287
427ec082 13288 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13289 doesn't fit completely on the line.
13290 (direct_output_forward_char): Give up for non-ASCII chars.
13291 (direct_output_forward_char): Set redisplay_performed_directly_p.
13292
13293 * dispextern.h (struct display_iterator): Make first_visible_x
13294 and last_visible_x ints; this is for very long truncated lines.
13295
13296 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13297 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13298 positioning problems with the mouse.
13299 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13300 >= it->last_visible_x instead of >.
13301 (display_line): Ditto.
13302
13303 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13304 loaded.
13305 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13306 non-ASCII chars differently. Always produce 1 glyph for composite
13307 chars. If font not found, use CHARSET_WIDTH to calculate width of
13308 non-ASCII chars.
13309 (x_get_char_font_and_encoding): Return null if font could not be
13310 loaded. Reset font to null if fontset could not be loaded.
13311 (draw_glyphs): Fill background if font not found.
13312 (draw_glyphs): Unused parameter just_foreground_p removed. New
13313 parameter composite_glyph.
13314 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13315 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13316 draw_glyphs when calling it recursively for composite chars.
13317
133181997-12-27 Gerd Moellmann <gerd@acm.org>
13319
13320 * xterm.c: Patches from handa.etl.go.jp integrated.
13321 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13322 find a font_info.
13323
13324 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13325 for nglyphs == 1.
13326
13327 * xterm.c (x_draw_relief): Draw relief lines.
13328 (draw_glyphs): Call x_draw_relief.
13329
133301997-12-26 Gerd Moellmann <gerd@acm.org>
13331
13332 * xfns.c (x_make_gc): Create relief GC's.
13333
13334 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13335 (setup_frame_gcs): Initialize them.
13336 (EmacsFrameDestroy): Free them.
13337
427ec082 13338 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13339 last_unchanged_at_beg_row is continued or a continuation line.
13340 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13341 (redisplay_window): Case point has changed, and it has not
26901792
DL
13342 moved off the frame. Don't increment row if PT equals the row
13343 end if the row ends in ZV.
13344
13345 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13346 (expose_line): Call it.
13347 (x_after_update_window_line): Call it.
13348
13349 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13350 reached.
13351
13352 * xterm.c (x_after_update_window_line): Draw continuation line
13353 bitmap.
13354
13355 * dispnew.c (update_window_line): Call
13356 after_update_window_line_hook when row's continuation_line_p
13357 changes.
13358
13359 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13360
13361 * xdisp.c (display_line): Handle continued lines on window system
13362 frames differently since continuation glyphs are not displayed.
13363 (move_iterator_in_display_line_to): Ditto.
13364 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13365 into account.
13366 (move_iterator_vertically_backward): Handle dy == 0 specially.
13367 (redisplay_window): Catch the case of small windows when
13368 recentering where moving back window_height/2 moves us beyond the
13369 top of the display area of the window.
13370
133711997-12-18 Gerd Moellmann <gerd@acm.org>
13372
13373 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13374 dvpos removed.
13375
133761997-12-17 Gerd Moellmann <gerd@acm.org>
13377
13378 * dispnew.c (direct_output_forward_char): Correct new cursor
13379 x-position.
13380
133811997-12-16 Gerd Moellmann <gerd@acm.org>
13382
13383 * xterm.c (x_after_update_window_line): Remove unused parameters.
13384 (XTclear_end_of_line): Clear to display_height instead of
13385 display_height - 1.
13386
13387 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13388 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13389 rows have different y-positions, or different height.
13390
133911997-12-14 Gerd Moellmann <gerd@acm.org>
13392
13393 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13394
13395 * window.c (coordinates_in_window): Call frame_mode_line_height.
13396
13397 * xterm.c (x_draw_3d_border): Removed.
13398 (x_draw_row_borders): Removed.
13399
13400 * dispnew.c (update_window): References to
13401 FRAME_MODE_LINE_BORDER_WIDTH removed.
13402
13403 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13404 (FRAME_MODE_LINE_HEIGHT): Removed.
13405
13406 * xterm.c (draw_3d_borders_p): Removed.
13407 (draw_glyphs): Ditto.
13408 (XTwrite_glyphs): Ditto.
13409 (expose_line): Ditto.
13410 (x_initialize): Ditto.
13411
13412 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13413 frame_mode_line_height.
13414
13415 * term.c (frame_mode_line_height): Get the pixel height of a
13416 frame's mode line.
13417 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13418 versions.
13419
26901792
DL
13420 * xterm.c (x_initialize): Set the hook.
13421 (XTframe_mode_line_height): X version of frame_mode_line_height.
13422
13423 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13424 output buffer.
13425 (display_string): Don't add right truncation mark if line ends in
13426 padding space.
13427 (init_display_iterator): If called with modeline_p non-zero, set
13428 face_id to 1, which is the id of the mode line face.
13429
13430 * keyboard.c (cmd_error_internal): Write to stderr if selected
13431 frame is Vterminal_frame under X. This is the case when a font
13432 cannot be loaded when Emacs starts. Replace test for
13433 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
13434
13435 * xfaces.c (compute_overlay_string_char_face): Compute the
13436 face of a character in an overlay string.
13437 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 13438 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
13439 Use it.
13440
13441 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
13442 set_iterator_to_next_overlay.
13443 (struct overlay_entry): Structure used to sort overlay strings.
13444 (compare_overlay_entries): Compare overlay strings.
13445 (load_iterator_with_overlay_strings): Load a chunk of overlay
13446 strings.
13447 (get_overlay_strings_at_iterator_position): Call it.
13448 (next_element_from_overlay_string): Set it->object to the overlay
13449 string. Prepare for setting it->position to a string position.
13450 (get_overlay_strings_at_iterator_position): Renamed from
13451 get_overlays_at_iterator_position.
13452 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
13453 chunks of overlay strings.
13454 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
13455
13456 * dispextern.h (struct display_iterator): New vector
13457 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
13458 overlays and n_overlays.
13459 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
13460 renamed to string_index.
13461
134621997-12-13 Gerd Moellmann <gerd@acm.org>
13463
13464 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
13465 when allocating a vector.
13466 (release_iterator): Removed.
13467 (restore_iterator): Removed.
13468 (copy_iterator): Removed.
13469
134701997-12-08 Gerd Moellmann <gerd@acm.org>
13471
13472 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
13473 clearing a mini-buffer window that is not active.
13474 (redisplay_window): Do not scroll one line too early when last
13475 window line is completely visible.
13476 (init_display_iterator): Leave some room to display the cursor
13477 after the last glyph on a continued line.
13478
13479 * xterm.h (struct x_output): trunc_area_extra renamed
13480 flags_areas_extra.
13481 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
13482
13483 * dispnew.c (update_window_line): Call
13484 after_update_window_line_hook when current row is not enabled
13485 which is the case after a frame has been cleared.
13486
13487 * xdisp.c (display_mode_line): Reset row flags for truncation
13488 on right side for the mode line.
13489
13490 * xterm.c (bitmap_type): Type of bitmap to display in flags
13491 area of frame.
13492 (x_after_update_window_line): Use the enum.
13493 (draw_bitmap): Ditto.
13494
134951997-12-07 Gerd Moellmann <gerd@acm.org>
13496
13497 * xterm.c (x_clip_to_row): Include width of both flag areas.
13498 (do_line_dance): Ditto.
13499 (expose_window_tree): Ditto.
13500 * dispnew.c (update_window_line): Call
13501 after_update_window_line_hook for right truncation and continuation.
13502 * xdisp.c (init_display_iterator): Don't subtract width of
13503 continuation glyphs for window-based redisplay.
13504 * xterm.c (draw_bitmap): Draw continuation bitmap.
13505 * widget.c (set_frame_size): Double trunc_area_extra.
13506 (EmacsFrameSetCharSize): Ditto.
13507 * xfns.c (x_figure_window_size): Ditto.
13508 * xterm.c (x_set_window_size): Ditto.
13509 (x_after_update_window_line): Draw right truncation mark.
13510
13511 * xterm.c (draw_glyphs): Bug fix buffer overrun.
13512
13513 * window.h: Include blocker around dispextern.h removed.
13514
13515 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 13516
26901792
DL
13517 * dispextern.h (struct display_iterator): Former ovstr made a
13518 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
13519 next_ovstr_invisble_check_pos; check at these positions for
13520 face changes and changes in invisible text property.
13521 (struct glyph_pos): Former ovlen now overlay_string_index.
13522
13523 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
13524 overlay_string.
13525 (set_iterator_to_next_overlay_string): Set overlay_string and
13526 pos.overlay_string_index.
13527 (get_overlays_at_iterator_position): Use overlay_string and
13528 overlay_string_index.
13529 (next_element_from_overlay_string): Use overlay_string and
13530 overlay_string_index.
13531 (move_iterator_forward): Increment overlay_string_index.
13532 (try_window_id): Use overlay_string and overlay_string_index.
13533 (move_iterator_forward): At end of dpvec, maybe use method
13534 next_element_from_overlay_string for the case a character from an
13535 overlay string was translated via a display table.
13536 (reseat_iterator_to_string): Take a Lisp string.
13537 (display_string): Pass a Lisp string to reseat_iterator_to_string.
13538 (compute_face_at_iterator_overlay_string_position): Compute face
13539 based on text properties for an overlay string.
13540 (next_element_from_overlay_string): Check invisible and face text
13541 properties.
bb6677a8 13542
26901792
DL
13543 (set_iterator_to_next_overlay_string): Restore face id before
13544 overlay strings when no more overlay strings are found to return.
13545 Initialize next_ovstr_.*check_pos for each new overlay string
bb6677a8
GM
13546
13547 A line in the following paragraph was garbled for an unknown
13548 reason. It couldn't be fully reconstructed.
13549
13550 (compute_base_face): Made public.
26901792
DL
13551 (merge_face_list): Ditto.
13552 (intern_computed_face): Ditto.
13553
427ec082 13554 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
13555 window if PT > w->last_point. Goto try_to_scroll if bottom Y
13556 of row is > instead of >= last_y.
13557
13558 * buffer.h (overlays_at): Function prototype.
13559
13560 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
13561 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
13562
427ec082 13563 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
13564 memory of a display_iterator.
13565 (copy_iterator): Copy an iterator.
13566 (restore_iterator): Restore an iterator from a backup copy.
13567 (global): Use the functions above.
13568 * window.c (Fpos_visible_in_window_p): Call release_iterator.
13569 * dispnew.c (direct_output_for_insert): Call release_iterator.
13570
13571 * dispextern.h (struct display_iterator): Allocate overlays
13572 vector dynamically.
13573
135741997-12-06 Gerd Moellmann <gerd@acm.org>
13575
13576 * Makefile.in (window.o): Depends on dispextern.h.
13577
13578 * buffer.c (overlays_at): Make it work when extending vectors
13579 and an initial vector of zero size.
13580
13581 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
13582 from set_cursor_to_previous_visible_line_end.
13583 (set_iterator_to_next_visible_line_start): Renamed from
13584 set_cursor_to_next_visible_line_end.
13585 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
13586 (compute_face_at_iterator_position): Renamed from
13587 compute_cursor_face.
13588 (set_iterator_to_next_overlay_string): Renamed from
13589 cursor_to_next_overlay_string.
13590 (get_overlays_at_iterator_position): Renamed from
13591 get_overlays_for_cursor.
13592 (reseat_iterator): Renamed from reseat_cursor.
13593 (setup_iterator_overlays_from_glyph_pos): Renamed from
13594 setup_overlays_from_pos.
13595 (init_string_iterator): Renamed from init_string_cursor.
13596 (get_next_display_element): Renamed from next_display_element.
13597 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 13598 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
13599 dynamically.
13600
13601 * xdisp.c: display_cursor renamed display_iterator.
13602 * dispextern.h: Ditto.
13603 * dispnew.c: Ditto.
13604
136051997-12-01 Gerd Moellmann <gerd@acm.org>
13606
13607 * window.c (mark_window_cursors_off): Function comment added.
13608 (window_topmost_p, window_rightmost_p): Removed because not used.
13609
136101997-11-30 Gerd Moellmann <gerd@acm.org>
13611
13612 * emacs.c (main): Function prototypes removed in profiling code.
13613 Use safe_bcopy as start of text.
13614
13615 * dispnew.c (update_frame_line): update_line -> update_frame_line;
13616 mirrored_make_current -> make_current.
13617
13618 * xdisp.c: (store_frame_title_char): New function to store a
13619 single character for the frame title with re-allocation of
13620 frame_title_buf.
13621 (init_xdisp): Intialize frame_title_.* variables to null.
13622
13623 * dispnew.c (quit_error_check): Removed.
13624
13625 * eval.c (Fsignal): Call to quit_error_check removed.
13626 * keyboard.c (quit_throw_to_read_char): Ditto.
13627
136281997-11-23 Gerd Moellmann <gerd@acm.org>
13629
13630 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
13631 to mean a zero relief.
13632
26901792
DL
136331997-11-19 Gerd Moellmann <gerd@acm.org>
13634
13635 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
13636 unconditionally.
13637 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
13638 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
13639 (check_glyph_memory): Define function body unconditionally.
13640
136411997-11-17 Gerd Moellmann <gerd@acm.org>
13642
13643 * dispnew.c (scrolling_window): Alternative version of this
13644 function removed.
13645
136461997-11-16 Gerd Moellmann <gerd@acm.org>
13647
13648 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
13649 of height CANON_Y_UNIT.
13650 * dispextern.h: Prototype for that function.
427ec082 13651 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
13652 produce empty rows. Use make_empty_enabled_row instead.
13653
13654 * dispnew.c (scrolling_window): New version using diff-like
13655 algorithm activated.
427ec082 13656
26901792
DL
136571997-11-15 Gerd Moellmann <gerd@acm.org>
13658
13659 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
13660 (clear_desired_matrices): Ditto.
13661 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
13662 for menu_bar_window.
13663
13664 * alloc.c (mark_object): Mark menu_bar_window of frames.
13665
13666 * xterm.c (XTupdate_window_end): Don't display cursor if
13667 pseudo_window_p.
13668
13669 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
13670 set mini_p.
13671 (update_window): Don't set cursor if pseudo_window_p.
13672
13673 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
13674
13675 * window.h (struct window): New flag pseudo_window_p set to
13676 1 for windows that aren't really part of the window tree, like
13677 menu_bar_window's of frames.
13678 * window.c (make_window): Initialize it.
13679 (replace_window): Ditto.
13680 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13681
13682 * frame.c (make_frame): Initialize menu_bar_window to nil.
13683
13684 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
13685 FACE_RELIEF
13686
13687 * xfaces.c (copy_face): shadow_thickness -> relief.
13688 (face_eql): Ditto.
13689 (merge_faces): Ditto.
13690 (compute_base_face): Ditto.
13691 (Fset_face_attribute_internal): Ditto.
13692 * dispextern.h (struct face): Ditto.
13693
13694 * dispnew.c (update_frame): Update menu_bar_window of the frame if
13695 it is non-nil.
13696
13697 * xdisp.c (display_menu_bar): Display the menu bar in
13698 f->menu_bar_window if appropriate.
13699 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
13700
13701 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
13702 dummy window and window matrices for f->menu_bar_window.
13703 (free_glyphs): Free the dummy window and its glyph matrices.
13704
13705 * frame.h (struct frame): New member menu_bar_window.
13706
137071997-11-09 Gerd Moellmann <gerd@acm.org>
13708
13709 * dispnew.c (scrolling_window): New version with diff-like
13710 algorithm.
13711
13712 * xdisp.c (try_window_reusing_current_matrix): If new_start >
13713 old_start always start displaying at start of
13714 first_row_to_display. The previous scheme failed if the last row
13715 was fully visible.
13716
13717 * dispnew.c (update_window): Remove cost calculations. Remove
13718 redundant preempt_count calculations.
13719
13720 * xterm.c (x_clip_to_row): Set clipping for non-text rows
13721 differently.
13722
13723 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
13724
427ec082 13725 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
13726 WITH_MARGINAL_AREAS is defined.
13727
427ec082 13728 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
13729 removed.
13730
13731 * dispnew.c (scrolling): Call line_hash_code because hash values
13732 are not set in the frame matrix.
13733
13734 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
13735 (redisplay_window): Check line_ins_del_ok before calling
13736 try_window_id.
13737 (try_window_reusing_current_matrix): Give up for terminal frames
13738 if window is not full width or we cannot insert/delete lines.
13739 (try_window_reusing_current_matrix): Fixed scrolling for terminal
13740 frames.
13741
13742 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
13743 Lisp_Object to mark_object.
13744
13745 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
13746 window rows have the same glyph pointers.
13747 (try_window_id): Call it.
13748
13749 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
13750 a glyph matrix.
13751 (mark_object): Call it.
13752
13753 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
13754 truncations.
13755 (display_line): Ditto.
13756 (display_line): Ditto for DISP_CONTINUATION.
13757 (display_line): Truncation on right: test current_x >
13758 last_visible_x.
13759 (skip_in_display_line_to): Ditto.
13760 (skip_via_matrix): Stop skipping in glyph row at face extending
13761 glyphs or at padding spaces.
13762
13763 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
13764
13765 * xdisp.c (display_line): Use glyph->object == 0 for padding
13766 glyphs.
13767 (redisplay_window): Don't let cursor move over padding
13768 spaces.
13769
13770 * dispextern.h (struct glyph): Fix comment for object.
13771
137721997-11-08 Gerd Moellmann <gerd@acm.org>
13773
13774 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
13775 has a mode line.
13776 * xdisp.c (redisplay_window): Use it.
13777 (display_mode_line): Check that window wants mode line.
13778
137791997-11-03 Gerd Moellmann <gerd@acm.org>
13780
13781 * xdisp.c (display_menu_bar): Enable menu bar rows.
13782
13783 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
13784 (x_erase_phys_cursor): Ditto.
13785 (x_draw_bar_cursor): Ditto.
13786
137871997-11-02 Gerd Moellmann <gerd@acm.org>
13788
13789 * dispnew.c (update_marginal_area): Update a marginal area.
13790 (update_text_area): Update text area.
13791 (update_window_line): Call both.
13792
13793 * xterm.c (XTclear_end_of_line): Translate coordinates area
13794 dependent.
13795
13796 * dispnew.c (updated_area): Row area being updated in
13797 update_window_line.
13798 (update_window_line): Set it.
13799 (update_marginal_area): Clear to end of line if not in text area.
13800
13801 * window.c (Fset_window_margins): Increment
13802 windows_or_buffer_changed. Adjust glyphs.
13803
13804 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
13805 area X coordinates to frame coordinates.
427ec082 13806 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
13807 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
13808 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
13809
13810 * xterm.c (draw_glyphs): Use text area width as display width.
13811
13812 * xdisp.c (init_display_info): Subtract widths of marginal areas
13813 from last_visible_x.
13814
13815 * alloc.c (mark_object): Mark objects in glyphs only if they are
13816 overlays. Mark only if current_matrix != 0. Activate the code.
13817
13818 * window.c (Fset_window_margins): Set margins.
13819 (Fwindow_margins): Return margin area widths.
13820 (syms_of_window): Add defsubr's.
13821
13822 * window.h (struct window): left_margin_width, right_margin_width.
13823
13824 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
13825 and cols.
13826
13827 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
13828 truncation/overlay arrow area.
13829 (struct frame): trunc_area_pixel_width, and _cols.
13830
13831 * window.c (Fsplit_window): Use it.
13832
13833 * window.c (Fsplit_window): Set cursor vpos to -1 after
13834 splitting.
13835 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
13836 split windows.
13837
13838 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 13839 of bounds cursor positions.
26901792
DL
13840
13841 * xdisp.c (redisplay_internal): Check that after cursor motion
13842 within line, PT is on same line.
13843
13844 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
13845 FRAME_TRUNC_WIDTH.
13846
13847 * xterm.h (struct x_output): trunc_area_extra.
13848 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
13849 (PIXEL_TO_CHAR_WIDTH): Subtract it.
13850 * widget.c (set_frame_size): Set it.
13851 (EmacsFrameSetCharSize): Ditto.
13852 * xfns.c (x_figure_window_size): Ditto.
13853 * xterm.c (x_set_window_size): Ditto.
13854
13855 * dispnew.c (check_matrix_invariants): First try to check window
13856 ends (in #if 0).
13857
13858 * xdisp.c (try_window_reusing_current_matrix): Try window
13859 redisplay with different window start.
13860
138611997-11-01 Gerd Moellmann <gerd@acm.org>
13862
13863 * window.c (make_window): Set window_end_pos/vpos.
13864 (Fsplit_window): Zero last_cursor, window_end_valid.
13865 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
13866
13867 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
13868
138691997-10-31 Gerd Moellmann <gerd@acm.org>
13870
13871 * window.c (make_window): Initialize last_cursor.
13872 (replace_window): Ditto.
13873
138741997-10-29 Gerd Moellmann <gerd@acm.org>
13875
13876 * window.h: New member last_cursor.
13877 * dispnew.c (direct_output_for_insert): Set it.
13878 (direct_output_forward_char): Ditto.
13879 * xdisp.c (redisplay_internal): Ditto.
13880
138811997-10-28 Gerd Moellmann <gerd@acm.org>
13882
13883 * xdisp.c (redisplay_internal): Optimization 1 change partially
13884 reverted. Check this again later.
13885 (skip_via_matrix): Remove redundent test for
427ec082 13886 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
13887
138881997-10-27 Gerd Moellmann <gerd@acm.org>
13889
13890 * dispnew.c (update_window_line): Call
13891 after_update_window_line_hook only for interesting constellations.
13892 (free_glyph_matrix): Fix memory leak.
13893
13894 * window.h: Include blocker WINDOW_H_INCLUDED, include
13895 dispextern.h.
13896 (struct window): phys_cursor_glyph as struct glyph. * window.c
13897 (make_window): Initialize it.
427ec082 13898 (replace_window): Ditto.
26901792
DL
13899 * dispnew.c (free_window_matrices): Remove freeing of
13900 phys_cursor_glyph.
13901 (check_matrix_invariants): Renamed from check_current_matrix_...
13902 * xterm.c: All references to phys_cursor_glyph changed.
13903
13904 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
13905
13906 * xfaces.c: Comment update.
13907
13908 * window.h (struct window): Make phys_cursor_glyph a struct glyph
13909 pointer. Remove phys_cursor_ascent, descent, etc.
13910 * dispnew.c (free_window_matrices): Free it.
13911 * window.c (make_window): Allocate it.
13912 (replace_window): Ditto.
13913 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
13914 (x_display_and_set_cursor): Fill it.
13915 (x_phys_cursor_in_rect_p): Use it.
13916 (x_draw_hollow_cursor): Ditto.
13917 (x_draw_bar_cursor): Ditto.
13918 (x_erase_phys_cursor): Ditto.
13919
13920 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
13921
13922 * xterm.c (XTget_display_info): Handle 3D facess.
13923 (draw_glyphs): Ditto.
13924
13925 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
13926
13927 * xfaces.c (Fset_face_attribute_internal): New face attribute
13928 shadow-thickness.
13929 (copy_face): Handle shadow_thickness.
13930 (face_eql): Ditto.
13931 (merge_faces): Ditto.
13932 (compute_base_face): Ditto.
13933
13934 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
13935 (struct display_info): Ditto.
13936 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
13937 * xdisp.c (compute_cursor_face): Set it.
13938 (advance_display_cursor): Clear it.
13939
13940 * xdisp.c (init_string_cursor): Initialize face_id to -1.
13941 (init_string_cursor): Init face_id to zero.
13942
13943 * dispextern.h (struct face): New member shadow_thickness.
13944
427ec082 13945 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
13946 search to 100.
13947
13948 * dispnew.c (update_window_line): Try to resynch with current line
13949 to prevent mode line flickering.
13950
139511997-10-26 Gerd Moellmann <gerd@acm.org>
13952
427ec082 13953 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
13954 on cursor_in_echo_area >= 0.
13955
13956 * xdisp.c (echo_area_display): Clear desired matrix before
13957 displaying into it.
13958 (display_menu_bar): Clear glyph row instead of hoping it is not
13959 enabled. This is safer.
13960
13961 * dispnew.c (check_current_matrix_invariants): Check only
13962 visible rows.
13963
13964 * xdisp.c (try_window_id): Handle window end setting in case of
13965 display to end of window, but only non-text lines displayed.
13966
13967 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
13968 (check_current_matrix_invariants): Check used counts.
13969
13970 * Revisiob v114.
13971
13972 * dispnew.c (scrolling): Use hash codes from rows.
13973
13974 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
13975
13976 * dispnew.c (scrolling_window): Invalidate conflicting runs.
13977
139781997-10-25 Gerd Moellmann <gerd@acm.org>
13979
13980 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
13981 * dispnew.c (update_window): Use it.
13982 (clear_glyph_matrix): Clear it.
13983 * xdisp.c (try_window_id): Set it.
13984
13985 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
13986
13987 * xdisp.c (redisplay_internal): Increment glyph positions differently.
13988
13989 * dispextern.h: More comments etc.
13990
139911997-10-24 Gerd Moellmann <gerd@acm.org>
13992
13993 * dispnew.c (set_window_cursor_after_update): Set cursor
13994 for cursor_in_echo_area == 0 to (0, 0).
13995
13996 * dispextern.h (struct glyph_row): New flags continuation_line_p
13997 and displays_text_p.
13998 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
13999 * xdisp.c (display_line): Set them.
14000 (try_window_id): Move to start of continuation line to find out
14001 continuation_line_width.
14002 (first_unchanged_current_row): Don't retract row if continued,
14003 truncated etc.
14004
14005 * xterm.c: Map X coordinates.
14006
140071997-10-23 Gerd Moellmann <gerd@acm.org>
14008
14009 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14010 left text.
14011
14012 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14013
14014 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14015
f28eba7b 14016 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14017
14018 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14019
14020 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14021 Set this to functions to be called before/after window updates.
14022 (direct_output_for_insert): Call them.
14023 (update_window): Ditto.
14024 (update_frame): Call update_begin/ update_end for windows.
14025
14026 * xterm.c (XTupdate_window_begin): Called before window updates.
14027 (XTupdate_end): Called after window updates.
14028 (x_initialize): Set hooks to above.
14029
14030 * xdisp.c (init_display_info): Initialize c and len of
14031 display_info.
14032
14033 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14034 fonts more than once.
14035
140361997-10-22 Gerd Moellmann <gerd@acm.org>
14037
14038 * xdisp.c (display_line): Handle most common case of current_x <
14039 last_visible_x separately.
14040
14041 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14042
14043 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14044 so that face extending space doesn't compare equal to normal space
14045 with same face.
14046
14047 * xdisp.c (display_line): Make sure we have a position for
14048 a line end in an otherwise blank line if face is extended.
14049
14050 * dispnew.c (direct_output_for_insert): Increment row end position.
14051
427ec082 14052 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14053 window_end_pos.
14054
14055 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14056
14057 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14058
14059 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14060 start and end positions in rows.
14061 (increment_glyph_row_buffer_positions): Stop adjusting at
14062 glyphs with positions <= 0.
14063
14064 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14065 position including position in overlay.
26901792
DL
14066 (struct glyph_row): Use it for start and end positions.
14067 (struct display_cursor): Use it.
14068 * xdisp.c: Use it.
14069 (display_line): Set row start and end positions.
14070
14071 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14072 assignment.
14073
140741997-10-21 Gerd Moellmann <gerd@acm.org>
14075
14076 * dispnew.c (update_window): Add scrolling_window again. It's
14077 necessary for scroll_step != 0.
14078
14079 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14080 scrolling.
14081
14082 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14083
14084 * xterm.c (XTupdate_end): Flush only for messages.
14085
14086 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14087 first_unchanged_row.
14088
14089 * xterm.c (XTupdate_end): Flush if miniwindow.
14090
14091 * dispnew.c (matrix_row_last_pos): New function.
14092 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14093 Large comment moved to xdisp.c.
26901792
DL
14094
14095 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14096 (skip_via_matrix): Check window_end_valid instead of
14097 display_completed.
14098
14099 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14100 (update_window): scrolling_window commented out. It has negative
14101 effect most of the time.
14102
14103 * xdisp.c (try_window_id): Correct parameters to
14104 scroll_glyph_matrix_range.
14105
427ec082 14106 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14107
14108 * window.h: Comments for window_end_pos/vpos.
14109
f28eba7b 14110 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14111 of the window in which we are skipping.
14112
14113 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14114
14115 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14116 reached.
14117
141181997-10-20 Gerd Moellmann <gerd@acm.org>
14119
14120 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14121 a face extending glyph.
14122
427ec082 14123 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14124 (set_cursor_from_row): Set cursor position from a glyph row.
14125
14126 * dispnew.c (update_window_line): Write entire line if hash
14127 codes of lines differ.
14128
14129 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14130 if glyph row has an infinite width glyph at its end.
14131
14132 * xdisp.c (last_unchanged_current_row): Respect partially visible
14133 lines when looking for the last row displaying text.
14134 (try_window_id): Handle partially visible lines better.
14135
141361997-10-19 Gerd Moellmann <gerd@acm.org>
14137
14138 * dispnew.c (update_window): Remove unused variable.
14139 (update_window_line): Simplified.
14140
14141 * xterm.c (x_get_char_font_and_encoding): Handle most common
14142 case at the beginning.
14143
14144 * xdisp.c (advance_display_cursor): Dispatch on method and
14145 order if statements by expected call frequency. Fixed unclosed
14146 comment.
14147
14148 * xdisp.c (try_window_id): New implementation.
14149
14150 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14151 rows displaying a line end, only.
14152
141531997-10-18 Gerd Moellmann <gerd@acm.org>
14154
14155 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14156
141571997-10-14 Gerd Moellmann <gerd@acm.org>
14158
14159 * xdisp.c (display_line): Mark empty lines not corresponding to
14160 text with position -1.
14161
14162 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14163 not within window matrix bounds.
14164
14165 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14166 (struct display_info): NGLYPHS_TO_IGNORE removed.
14167 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14168 * term.c: Ditto.
14169 * xterm.c: Ditto.
14170
14171 * xdisp.c (init_display_cursor): Set it.
14172 (display_line): Use it to set W->REGION_SHOWING.
14173
14174 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14175
14176 * region-cache.h: functino prototypes with PROTO.
14177
14178 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14179
14180 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14181 a position.
14182
427ec082 14183 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14184 rectangle based on minimum character bounds.
14185
f28eba7b 14186 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14187 glyph position calculations.
14188 (make_lispy_movement): Use buffer_posn_from_coords and window
14189 relative coordinates.
14190
14191 * xterm.c (construct_mouse_click): Remove #if 0 case.
14192
14193 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14194 given row.
14195
427ec082
SS
14196 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14197 date.
26901792
DL
14198 (skip_to): Use it.
14199 (redisplay_window): Remove code skipping using current matrix.
14200
142011997-10-13 Gerd Moellmann <gerd@acm.org>
14202
14203 * xdisp.c (redisplay_window): Use available current matrix to
14204 skip faster when only point is moved withing the window.
14205
427ec082 14206 * intervals.c: Include stdio.h.
26901792
DL
14207 (find_interval): Trace to stderr to catch some nasty error
14208 that did not yet occur again with tracing.
14209 (set_point): Ditto.
14210
14211 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14212 cursor positioning on partially visible lines.
14213 (set_window_cursor_after_update): Ditto.
14214
f28eba7b 14215 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14216
14217 * window.h (struct window): start_y removed.
14218
14219 * window.c (make_window): start_y removed.
14220 (replace_window): Ditto.
14221
427ec082 14222 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14223 descent values of the last line processed by skip_to.
14224 (redisplay_window): Use them.
14225 (skip_to): Set them.
14226
14227 * dispextern.h (struct display_cursor): New member METHOD.
14228
14229 * xdisp.c: Use function member METHOD.
14230
14231 * xdisp.c (set_next_stop_pos): Determine next position at which to
14232 check for face properties, invisible text properties, and overlays.
14233 (compute_cursor_face): Use it.
14234 (get_overlays_for_cursor): Ditto.
14235 (reseat_cursor): Ditto.
14236 (next_display_element): Ditto.
14237
14238Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14239
14240 * termhooks.h: Some hooks with prototypes.
14241
14242 * term.c: Some hooks with function prototypes.
427ec082 14243
26901792
DL
14244 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14245 computing face if possible.
14246
14247 * xdisp.c (next_display_element): Use face from glyph from display
14248 table only if != 0.
14249
14250 * emacs.c: FreeBSD headers for profiling removed.
14251
427ec082
SS
14252 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14253 display cursor, use DEC_POS instread.
26901792
DL
14254
14255 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14256 all fonts are in the font table.
26901792
DL
14257 (unload_font): Don't XFreeFont.
14258
14259 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14260 row height.
14261
14262 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14263 (x_erase_phys_cursor): Clear only visible part of row.
14264 (x_draw_bar_cursor): Set clipping.
14265 (x_draw_hollow_cursor): Ditto.
14266 (x_display_and_set_cursor): Remove clipping.
14267 (expose_window_tree): Take trunc border into account.
14268 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14269 (expose_window): Use it.
14270
14271 * xdisp.c (display_string): Catch case that we are called with
14272 current_x already beyond max_x.
14273 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14274 (init_display_info): Subtract vertical border glyph from
14275 last_visible_x.
14276
14277 * scroll.c (scrolling_window_1): Removed.
14278
14279 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14280 based on redisplay method used.
14281 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14282 based redisplay.
14283 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14284 window based redisplay.
14285
14286 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14287 on data structures.
14288
14289 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14290 Handle own storage for purely window based redisplay.
14291 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14292 allocate_matrices.
26901792
DL
14293 (allocate_matrices_for_window_redisplay): Ditto.
14294
14295 * dispextern.h (struct glyph_matrix): window_top_y,
14296 window_height.
14297
14298 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14299 and optimize some common cases of window changes.
14300
14301 * emacs.c (main): Remove own profiling code because 0.95 now
14302 has it in.
14303
14304Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14305
14306 * xterm.c (XTupdate_end): Draw horizontal border at right
14307 position.
14308 (expose_window): Draw vertical border.
14309 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14310 don't do anything.
14311
14312 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14313 for non full width windows only if not window redisplay.
14314
14315 * dispnew.c (update_window_tree): Or paused_p return of called
14316 functions.
14317
14318 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14319 of window.
14320
14321 * window.c (Fset_window_configuration): adjust_glyphs being
14322 called twice.
14323 (Fset_window_configuration): Set frame garbaged if not all
14324 leaf windows reused.
14325
143261997-08-21 Gerd Moellmann <gerd@acm.org>
14327
14328 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14329 that rows should really be cleared. Used for current matrices.
14330
14331 * dispnew.c (scrolling_window): Bug fix.
427ec082 14332 (line_dance_hook): Formerly line_dance_fn, take only one
26901792
DL
14333 parameter.
14334
14335 * dispextern.h (struct run): Remove current_vpos.
14336
14337 * xterm.c (do_line_dance): Only one parameter.
14338
f28eba7b 14339 * xdisp.c (display_line): Set continued_p.
26901792
DL
14340
14341 * dispextern.h (struct glyph_row): New flag continued_p.
14342 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14343 (struct glyph_row):
26901792
DL
14344
14345Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14346
14347 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14348 when calling skip_to for continued lines.
14349
14350 * dispnew.c (change_frame_size_1): Set frame garbaged.
14351
14352 * xterm.c (expose_window): Check enabled_p of rows.
14353
14354 * xdisp.c (redisplay_internal): Compare line heights before and
14355 now for redisplay optimization 2 (hit).
14356 (display_line): Set this_line_pixel_height.
14357
14358 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14359 value.
14360 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14361 (do_line_dance): Simplified and pixel corrected.
14362
14363 * dispnew.c (scrolling_window): Simplified.
14364
14365 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14366
14367 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14368 to mode line row->x.
14369
14370Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14371
14372 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14373 override font of face.
14374 (draw_glyphs): Correct return value.
14375 (XTclear_end_of_line): Compare differently with output cursor
14376 position.
14377 (x_draw_hollow_cursor): 2 parameters, window and row.
14378
14379 * dispnew.c (update_window_line): If rows have different height
14380 or y, write entire line.
14381
f28eba7b 14382 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14383 of info struct.
14384
427ec082 14385 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14386 frame_update_line_height.
14387 (merge_faces): Don't use default font if new font has different
14388 size.
14389
14390Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14391
14392 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
14393 unknown. Some fonts have min_width zero.
14394 (draw_glyphs): Don't draw underlines to the end of the display
14395 line if face is merely extended to that point.
14396 (draw_glyphs): Don't assume background is filled if
14397 just_foreground_p but extending to end of line.
14398
14399 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14400 for partially visible last lines.
14401 (x_clip_to_row): Ditto.
14402 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14403 display_height since line_height is really a line distance.
14404 (x_display_and_set_cursor): If cursor on padding glyph, use
14405 min_bounds pixel width.
14406
14407Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14408
14409 * xterm.c (x_clip_to_row): Height value was 1 too large.
14410 (XTclear_end_of_line): Clip to display area.
14411
14412 * xfns.c (x_figure_window_sizes): Add trunc border width
14413 to frame pixel width.
14414
14415 * xdisp.c (next_display_element): Don't display overlay strings
14416 within invisible text.
427ec082 14417 (skip_vertically_backward): Skip display lines.
26901792
DL
14418
14419Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14420
14421 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14422
14423 * xdisp.c (next_display_element): Next invisible
14424 text check position computed differently.
14425
14426 * dispextern.h (struct display_cursor): last_invisible_text_pos
14427 and display_ellipsis_for_invisible_p removed.
14428
14429 * xdisp.c (next_display_element): Set last_invisible_text_pos
14430 to the last position at which invisible text was found. Don't
14431 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14432 dpvec for `...' due to invisible text directly.
26901792
DL
14433 (redisplay_internal): Don't assert that cursor is at PT after
14434 skip_to. It may be in invisible text.
14435
427ec082 14436 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
14437 x_y_to_hpos_vpos.
14438
427ec082 14439 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
14440 next_overlay_pos is reached. Use limit cursor.pos + 100 when
14441 checking for invisible text.
14442
14443 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
14444
14445 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
14446
14447 * xfns.c (x_contour_region): Use pixel coordinates from window
14448 cursor instead of WINDOW_TO_FRAME_H/VPOS.
14449
14450 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
14451 Removed.
14452
14453 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
14454
14455 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
14456 pixel coordinates.
14457 (note_mouse_highlight): Use it.
14458
14459 * xdisp.c (echo_area_display): Ignore calls for terminal frames
14460 under a window system.
14461
427ec082 14462 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 14463 necessary.
427ec082 14464 (update_window_line): Add width of face padding glyph to
26901792
DL
14465 displayed widths of rows.
14466
14467 * xterm.c (x_display_and_set_cursor): Set clipping after
14468 erasing cursor.
427ec082
SS
14469
14470 * window.c (Fset_window_configuration): Free only those
26901792
DL
14471 window matrices not reused.
14472 (get_leaf_windows): Build vector of leaf windows.
14473 Corrupted archive restored from v77.
14474
f28eba7b 14475 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
14476 like display_line does.
14477
14478 * xdisp.c (display_mode_line): Don't hscroll mode line.
14479
14480 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
14481 windows.
14482 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
14483 garbage between mode lines when splitting windows horiz.
14484
14485 * dispnew.c (direct_output_for_insert): Bug fix.
14486
14487 * dispextern.h (struct display_cursor): New member string_length.
14488
14489 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 14490 (init_string_cursor): Take precision and field_width
26901792
DL
14491 (display_string): Use string cursor, skip over invisible text.
14492
14493Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
14494
14495 * xterm.c (x_clip_to_row): Clip to partially visible lines.
14496 (x_display_and_set_cursor): Call it.
14497 (draw_glyphs): Call it
14498 (draw_bitmap): Call it.
14499
427ec082 14500 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
14501 (allocate_leaf_matrix): Return flags.
14502 (row_equal_p): Compare enabled_p.
14503
14504 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
14505 for type == -1.
14506
14507 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 14508 (draw_glyphs): Clip height one pixel taller.
26901792 14509
427ec082 14510 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
14511 mini window.
14512
f28eba7b 14513 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 14514
427ec082
SS
14515 * xdisp.c (echo_area_display): Call update_single_window if
14516 possible.
26901792
DL
14517
14518 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 14519 (scrolling_window): Work on enabled desired lines only.
26901792
DL
14520 (update_single_window): Update a single window like update_frame
14521 does for all windows.
427ec082 14522 (update_window, update_window_tree): Additional argument
26901792
DL
14523 no_scrolling_p.
14524 (update_frame): Pass no_scrolling_p to update_window_tree.
14525 (update_window): Don't call scrolling_window if no_scrolling_p.
14526
14527 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
14528 Erase under hollow cursor.
14529 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
14530 not enabled. Draw bar cursor 1 pixel smaller.
14531
f28eba7b 14532 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
14533 since update will follow soon.
14534
14535 * xdisp.c (echo_area_display): Unitialized variable.
14536
f28eba7b 14537 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
14538 overlay arrow bitmap.
14539
f28eba7b 14540 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 14541 up to the final \n as part of the line for cursor positioning.
26901792 14542
f28eba7b
SM
14543 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
14544 (x_after_update_window_line): Clear trunc marks.
26901792
DL
14545
14546 * xterm.h (FRAME_X_TRUNC_WIDTH).
14547
f28eba7b 14548 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
14549 of a window reserved for truncation mark.
14550
427ec082 14551 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
14552
14553 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 14554 hook.
26901792
DL
14555
14556 * xdisp.c (display_line): Set overlay_arrow_p in row.
14557
14558 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
14559
14560 * xterm.c (x_after_update_window_line): Draw truncation marks.
14561
14562 * xdisp.c (display_line): Insert truncation for lines with
14563 current_x > 0.
14564
14565 * xterm.c (x_draw_row_borders): Convert y to frame coords.
14566 Correct y by 1.
14567 (x_display_cursor): Use default font width if width not
427ec082 14568 known.
26901792 14569
f28eba7b 14570 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
14571
14572 * dispnew.c (set_window_cursor_after_update): Don't assume
14573 all rows are enabled.
14574
14575 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
14576 of cursor.pos.
14577 (skip_in_display_line_to): Check cursor.position after call to
14578 next_display_element.
14579
427ec082 14580 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
14581 buffer position.
14582
14583 * xdisp.c (display_line): Set row->y here.
14584 (skip_in_display_line_to): Test for to_pos after all glyphs
14585 have been added to hpos so that hpos is at the end of all
14586 glyphs for to_pos.
14587 (start_display): Remove assertion.
14588
14589 * dispnew.c (direct_output_forward_char): Bug fix, = instead of
14590 ==.
14591 (update_window): Don't set row->y here.
14592
14593 * xdisp.c (next_display_element): Don't translate control chars
14594 from display table entries.
14595
427ec082 14596 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
14597 update end to prevent cursor flickering. Revert changes to
14598 setting cursor.endpos.
14599
14600Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
14601
14602 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
14603 to PT because this prevents multi-byte characters from being
14604 recognized.
14605
427ec082
SS
14606 * xdisp.c (skip_to, display_line): Advance cursor at end of
14607 truncated line.
26901792
DL
14608
14609 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
14610 replaced by XRectangle.
14611
14612 * dispnew.c (scrolling_window): New method.
14613
14614 * xterm.c (do_line_dance): New implementation, new method.
427ec082 14615
26901792
DL
14616 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
14617 visible part of line.
14618
14619 * dispnew.c (update_window_line): Fill inverse video lines
14620 with infinite width space.
14621 (update_window): Handle completely empty matrices.
14622 (set_window_cursor_after_update): Bug fix.
14623
427ec082 14624 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
14625
14626 * dispnew.c (update_window_line): Don't ignore spaces, don't
14627 fill with spaces.
14628
14629 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
14630 the first glyph having width 0.
14631
14632 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 14633 a glyph that extends to the end of the line.
26901792
DL
14634
14635 * xdisp.c (display_line): Insert one padding glyph
14636
14637 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
14638 amount from info.current_x.
14639 (display_line): Ditto.
14640
14641 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
14642 (change_frame_size_1): Correct cursor.x if frame gets too small.
14643 (update_window_line): Start at row->x.
14644
14645 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
14646 in xdisp.c).
14647
14648 * xterm.c (set_output_cursor): Use window relative X/Y.
14649 (global): Use window relative output cursor x/y.
14650 (draw_glyphs): Remove y param. Pass window relative x/y.
14651
14652 * dispnew.c (update_window): Start rows at start_y.
14653 (update_window): Don't try scrolling because it wouldn't work
14654 with variable height lines, anyway.
14655
14656 * dispextern.h (struct glyph_row): Remove shift_left_by,
14657 add x.
14658
14659 * window.h: (struct window): New member start_y.
14660
14661 * window.c (replace_window): Initialize start_y.
14662 (make_window): Ditto.
14663
14664Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
14665
14666 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 14667 the mode line.
26901792 14668
427ec082
SS
14669 * dispnew.c (update_window): Take mode line border into
14670 account.
26901792
DL
14671
14672 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 14673 of border around mode line.
26901792
DL
14674
14675 * xterm.c (x_draw_row_borders): Bug fix.
14676 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
14677 drawing functions.
14678
14679 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 14680 around modeline instead of inverting it.
26901792 14681
427ec082 14682 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
14683
14684 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
14685 window relative pixel coordinates as arguments.
14686
14687 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
14688 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
14689 COORDS mit new arguments.
14690
14691Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
14692
14693 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 14694 DISPLAY_LINE.
26901792
DL
14695
14696 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
14697 pixel coords.
14698 (make_lispy_movement): Same.
14699
14700 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
14701 with new parameter meaning.
14702
14703 * window.c (Fcoordinates_in_window_p): Convert Lisp params
14704 from canon units to pixels.
14705 (coordinates_in_window): Pixel based.
14706 (Fcoordinates_in_window_p): Convert result pixel values back
14707 to canonical units.
14708
14709 * window.h: phys_cursor_ascent + descent instead of height.
14710
14711 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
14712 chars with charset width 1.
14713
14714 * dispnew.c (direct_output_for_insert): Set updated_row.
14715
14716Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
14717
14718 * dispextern.h (struct glyph): Padding flag removed.
14719
14720Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
14721
14722 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
14723
14724 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
14725
14726 * dispnew.c (update_window_line): Use pixels.
14727
14728 * xdisp.c (compute_line_metrics): Correct pixel_width by
14729 shift_left_by.
14730
14731 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 14732 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
14733 glyph_row -> right_to_left_p. Change references to it.
14734
14735Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
14736
14737 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
14738
14739 * xterm.c (XTinsert_glyphs): Implement it.
14740
14741 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
14742 of a call from DIRECT_OUTPUT_FOR_INSERT.
14743
14744 * window.h (struct cursor_pos): Keeps both matrix positions
14745 and pixel positions.
14746 (struct window): Use it.
14747
14748 * dispnew.c (direct_output_for_insert): New version.
14749
14750 * xdisp.c (redisplay_internal): Don't do anything if it has
14751 already be done directly.
14752
14753 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
14754 for any character.
14755
14756Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
14757
14758 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
14759
14760Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
14761
14762 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
14763 (struct glyph): ASCENT, DESCENT.
14764 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
14765 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
14766
14767 * xterm.c (XTget_display_info): Correct tab computation.
14768
14769 * term.c (get_display_info): Correct tab computation.
14770
14771 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
14772 Renamed from CHAR_CURSOR.
14773
14774Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
14775
14776 * xdisp.c (display_text_line): Mostly pixel oriented.
14777
14778 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
14779
14780 * term.c (append_intermediate_glyph): Generate padding glyphs.
14781
14782 * xdisp.c (display_text_line): More into final direction.
14783
14784 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
14785 (XTget_char_info): Use tabs as multiples of spaces.
14786
14787 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
14788 Use tabs as multiples of spaces.
14789
14790 * dispextern.h (struct char_info ): WHAT field.
14791
14792 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
14793 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
14794
14795Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
14796
14797 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
14798 value.
14799 (init_char_info): Initialize with glyph row.
14800
14801 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
14802
14803 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
14804
14805 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
14806 glyphs.
14807
14808 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
14809 moved to xdisp.c.
14810
14811 * xdisp.c (display_text_line): Use CHAR_CURSOR.
14812
14813 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
14814 generation.
14815 (XTget_char_info): Ditto.
14816
14817 * term.c (get_char_info): Intermediate glyph generation.
14818 (append_intermediate_glyph): Ditto.
14819
14820Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
14821
427ec082 14822 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
14823 CHAR_CURSOR.
14824 (init_char_cursor): Initialize a CHAR_CURSOR.
14825 (get_char_and_advance): Get next character to display.
14826
14827 * dispextern.h (struct char_cursor): Cursor for iterating over
14828 display text of CURRENT_BUFFER.
14829
14830Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
14831
14832 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
14833
14834 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
14835 New member MAX_PIXEL_HEIGHT.
14836
14837 * xterm.c (x_per_char_metric): Get per character metrics.
14838 (XTget_char_info): More cases covered.
14839
14840 * term.c (get_char_and_info): Get next character and character
14841 display information.
14842 (get_char_info): Get character display information.
14843
14844 * dispextern.h: Character display information.
14845
427ec082 14846 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
14847 encode character.
14848 (XTget_char_info): Get display information about a character.
14849
14850Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
14851
14852 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
14853 zero if window is mini-window.
14854
14855 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
14856 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
14857
427ec082 14858 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
14859 (clear_glyph_row): Clear pixel height.
14860 (update_window): Use PIXEL_HEIGHT.
14861
14862 * xdisp.c (display_string): Set row pixel height temporarily.
14863 (display_text_line): Ditto.
14864
427ec082 14865 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
14866 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
14867
427ec082 14868 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
14869 line in default font.
14870 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
14871 in default font.
14872 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
14873
14874 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
14875 in pixels.
14876
14877 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
14878
14879 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
14880 (WINDOW_DISPLAY_PIXEL_HEIGHT):
14881 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
14882 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
14883 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
14884 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
14885 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
14886 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
14887 pixel values related to windows.
14888
14889Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
14890
14891 * xterm.c (XTflash): Flash last line of frame.
14892
14893 * dispextern.h (cursor_in_echo_area): Extern declaration.
14894
14895 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
14896 freezes stem from 16-bit functions.
14897
14898 * xterm.c (x_display_and_set_cursor): Don't display hollow
14899 cursor in mini windows.
14900
14901 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
14902 (make_window): Ditto.
14903
14904 * xterm.c (x_erase_phys_cursor): Erase cursor image.
14905 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
14906 and X_DISPLAY_BAR_CURSOR.
14907 (x_display_cursor): Use it.
14908 (x_update_window_cursor): Use it.
14909
14910 * xdisp.c (display_text_line): Set cursor for window even if not
14911 selected.
14912
14913 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
14914 of X and Y to denote matrix positions.
14915 (x_display_cursor): Ditto.
14916
14917 * dispnew.c (scrolling_window): Scrolling for windows.
14918
14919Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
14920
14921 * dispnew.c (build_frame_matrix): Work on windows with update
14922 flag set.
14923 (build_frame_matrix_from_window_tree): Ditto.
14924 (build_frame_matrix_from_leaf_window): Ditto.
14925
14926 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
14927 building frame matrix.
427ec082 14928 (redisplay_internal): Set window update flags instead of
26901792
DL
14929 building frame matrix.
14930
14931 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
14932 building frame matrix.
14933
14934 * window.c (make_window): Initialize new members.
14935 (replace_window): Ditto.
14936
14937 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
14938 I don't believe this is really necessary.
14939
14940 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 14941 border glyph once.
26901792
DL
14942
14943Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
14944
427ec082 14945 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
14946 window tree off.
14947
427ec082 14948 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
14949 window matrix.
14950 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
14951 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
14952 (x_update_cursor): Work on windows.
14953 (x_display_bar_cursor): Ditto.
14954 (x_draw_single_glyph): Ditto.
14955
14956 * xterm.h: Prototype for X_DISPLAY_CURSOR.
14957
14958 * xterm.c (XTcursor_to): Void return type. Test for
14959 UPDATED_WINDOW. Call x_display_cursor with window.
14960 (x_display_cursor): Void return type. Window instead of frame
14961 parameter.
14962
14963 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions
14964 below.
14965
14966 * window.c (window_rightmost_p, window_topmost_p): Based on
14967 window tree.
14968
14969 * dispnew.c (adjust_frame_message_buffer): Allocate with
14970 FRAME_MESSAGE_BUF_SIZE.
14971
14972 * window.h: PHYS_CURSOR_.* added.
14973
14974 * frame.h (struct frame): Cursor information removed.
14975
14976 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
14977 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
14978
14979 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
14980
14981 * window.c (window_internal_width): Scroll bars no longer
14982 part of window.
14983
14984 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH
14985 removed.
14986
14987 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH
14988 removed.
14989
14990 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
14991 (redisplay_internal): Ditto.
14992 (redisplay_window): Ditto.
14993 (redisplay_window): Ditto.
14994 (display_text_line): Ditto.
14995 (display_mode_line): Ditto.
14996
14997 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
14998
14999 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
15000 (direct_output_for_insert): Ditto.
15001 (direct_output_forward_char): Ditto.
15002 (update_frame_1): Ditto.
15003
15004Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15005
15006 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
15007 being updated.
15008 (update_window): Set and clear it.
15009
15010 * dispnew.c (update_window_line, update_window, scrolling_window):
15011 First versions.
15012
15013 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15014 bar for window borders.
15015 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15016 with spaces.
15017 (fill_up_glyph_row_with_spaces): Call above function.
15018
15019 * xdisp.c (display_text_line): Don't add vertical bar for
15020 window borders.
15021 (display_string): Ditto.
15022
15023 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15024 (replace_window): Ditto.
15025
15026 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15027
15028 * xfns.c (Fx_contour_region): Use selected window cursor position.
15029 (Fx_uncontour_region): Ditto.
15030 (Fx_select_region): Ditto.
15031
15032 * frame.c (make_frame): Remove CURSOR_X/Y.
15033
15034 * xdisp.c (redisplay_internal): Use window cursor position.
15035
15036 * dispnew.c (update_frame_1): Use cursor position of selected
15037 window.
15038 (change_frame_size_1): Ditto.
15039
15040 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15041 (XTwrite_glyphs): Use cursor position of selected window.
15042
15043 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected
15044 window.
15045
15046 * dispnew.c (set_cursor_to): Set window cursor position.
15047 (direct_output_for_insert): Use window cursor position.
15048 (init_display): Don't use frame cursor position.
15049
15050 * window.h: CURSOR_VPOS/HPOS added.
15051
15052 * frame.h (struct frame): CURSOR_X/Y removed.
15053 (FRAME_CURSOR_X): Removed.
15054 (FRAME_CURSOR_Y): Ditto.
15055
15056 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15057 (direct_output_forward_char): Ditto.
15058
15059 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y
15060 removed.
15061
15062 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15063
15064 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15065
15066Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15067
15068 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15069 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15070
15071 * dispextern.h: Changed function names.
15072
15073 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15074 < 2.
15075 (clear_window_matrices): Formerly two functions for desired
15076 and current matrix.
15077 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15078 (update_frame): Return return value from UPDATE_FRAME_1.
15079
15080Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15081
15082 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15083 LAST_TEXT_VPOS.
15084
15085 * frame.c (set_menu_bar_lines): Adjust matrices.
15086
15087 * dispnew.c (set_cursor_to): Set cursor position.
15088
15089 * minibuf.c (read_minibuf): Build frame matrix.
15090
15091 * xdisp.c (this_line_start_hpos): Renamed to
15092 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15093 relative.
15094 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15095 reason.
15096
427ec082 15097 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15098 menu bar.
15099 (clear_window_records): Clear window rows.
15100 (clear_frame_records): Clear window and frame rows.
15101 (clear_glyph_matrix): Set all rows of a matrix to empty.
15102
15103 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P. Update
15104 frame if set.
15105 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15106 removed.
15107 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15108 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15109
15110 * dispnew.c (assign_row): Assign one glyph row to another.
15111 (mirrored_make_current): Use it.
15112 (mirror_make_current): Use it.
15113 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15114 used counters for the current glyph row.
427ec082 15115
26901792
DL
15116
15117Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15118
15119 * lisp.h: Prototype for SCAN_BUFFER.
15120
15121 * xdisp.c (redisplay_windows): Simplified.
15122
15123 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15124 with debug checks.
15125 (window_to_frame_hpos): Convert window to frame hpos with checks.
15126 (frame_to_window_vpos): Convert frame to window vpos with checks.
15127 (frame_to_window_hpos): Convert frame to window hpos with checks.
15128
15129 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15130
15131 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15132
15133 * xdisp.c (redisplay_internal): Another instance of
15134 DISPLAY_TEXT_LINE with window relative VPOS.
15135 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15136
15137 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15138 only.
15139
15140 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15141 (redisplay_internal): Ditto.
15142
15143 * dispnew.c (cancel_window_line): Use window matrix. Changed
15144 name to CANCEL_WINDOW_LINE.
15145
15146 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15147 relative VPOS.
15148
427ec082
SS
15149 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15150 to frame vpos.
26901792
DL
15151 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15152 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15153 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15154
15155 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15156 window relative VPOS.
15157 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15158 relative VPOS.
15159
15160 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15161 MATRIX_BUFFER_POSITIONS.
15162
15163 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15164
15165 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15166
427ec082 15167 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15168 matrix. Change name to scroll_full_width_window.
15169
15170 * xdisp.c (message2_nolog): Don't fwrite NULL message If
15171 NONINTERACTIVE.
15172
15173Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15174
15175 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15176 and window matrices.
26901792
DL
15177 (adjust_window_charstarts): Use window matrix.
15178 (cancel_my_columns): Use window matrix.
15179 (direct_output_for_insert): Use window matrix, only.
15180
15181 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15182 (display_string): Call display_glyphs.
15183 (display_menu_bar_string): Display a string in a menu bar line.
15184 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15185 (display_text_line): Use window matrix.
15186 (try_window): Use window relative positions.
15187
15188Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15189
15190 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
15191 (0, 0).
15192 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
15193 top-most windows.
15194
15195 * window.h (WINDOW_TOPMOST_P): Added.
15196
15197 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15198 (redisplay_window): Ditto.
15199 (display_text_line): Ditto.
15200 (display_menu_bar): Ditto.
15201 (display_mode_line): Ditto.
15202 (display_mode_line): Use window matrix.
15203 (display_string): Use window matrix.
15204 (display_mode_element): Ditto.
15205 (echo_area_display): Don't display if frame has no pools yet.
15206 (echo_area_display): Work with window matrix for mini window.
15207 (redisplay_window): Use window marix for mini window.
15208 (display_text_line): Assume HPOS and VPOS are window relative and
15209 use that for DISPLAY_STRING.
15210
15211 * dispextern.h: Prototype for prepare_desired_row.
15212
15213 * dispnew.c (prepare_desired_row): Replacement for
15214 GET_DISPLAY_LINE.
15215
15216 * dispnew.c (adjust_window_charstarts): Always allocate window
15217 matrices.
15218 (clear_glyph_row): Only reset used counters and flags.
15219
15220Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15221
15222 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15223 line is non-empty.
26901792
DL
15224 (realloc_glyph_pool): Don't add 1 to the pool size.
15225 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15226
15227 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15228 (line_draw_cost): Ditto.
15229 (update_line): Ditto.
15230 (update_line): Use SPACE_GLYPH.
15231 (count_blanks): Additional parameter LEN.
15232
15233 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15234 (display_text_line): Don't add null-glyph end marker.
15235 (display_string): Use SPACE_GLYPH.
15236 (display_string): Don't use null-glyph end marker.
15237
15238 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15239
15240 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15241 (fill_up_glyph_row_with_spaces): Ditto.
15242 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15243 rows, instead of null-glyphs.
15244 (direct_output_for_insert): Don't add null-glyph end marker.
15245
15246 * scroll.c (do_direct_scrolling): Change algorithm to construct
15247 vector of lines assigned. Call MIRRORED_LINE_DANCE:
15248 (do_scrolling): Ditto.
15249
15250 * dispnew.c (mirror_line_dance): Mirror line assignments in a
15251 frame matrix in window matrices.
15252 (mirrored_line_dance): Do line assignments during scrolling.
15253 Maybe do corresponding assignments in window matrices.
15254 (check_window_matrix_pointers): Check that window rows and frame
15255 rows agree about glyph pointers.
15256 (check_matrix_pointers): Ditto.
15257 (mirrored_make_current): Make a row of a desired matrix current;
15258 maybe mirror the operation in window matrices.
15259 (mirror_make_current): Make window desired matrix row current when
15260 frame matrix row was made current.
15261
15262Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15263
15264 * dispnew.c (check_matrix_pointer_lossage): Check against
15265 pointer lossage in matrices.
15266 (get_glyph_matrix_row): Removed.
15267
15268 * scroll.c (do_scrolling): Simplified.
15269 (do_direct_scrolling): Simplified.
15270 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
15271 DO_.*SCROLLING.
427ec082 15272
26901792
DL
15273
15274 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15275 (rotate_vector): Removed.
15276 (rotate_pointers): Removed.
15277 (scroll_frame_lines): Simplified.
15278
15279Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15280
15281 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15282
15283 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15284 what the name says.
15285 (clear_glyph_row): Make a glyph row structure empty.
15286 (make_matrix_row_current): Make a glyph row current.
15287 (make_window_matrix_row_current): Perform analogous row swaps
15288 for window matrices.
15289 (update_line): Call make_matrix_row_current.
15290
15291Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15292
15293 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15294 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15295 INVERSE_P.
15296 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15297 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15298
15299 * all files: use above new names.
15300
15301 * dispnew.c (scroll_frame_lines): Simplified. Use
15302 SCROLL_GLYPH_MATRIX.
15303 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15304 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15305 buffer positions in a glyph row.
15306 (increment_glyph_matrix_buffer_positions): Increment buffer
15307 positions in a range of rows.
15308 (scroll_glyph_matrix): Scroll a glyph matrix.
15309 (swap_glyphs_in_rows): Swap glyphs between rows.
15310 (swap_glyph_pointers): Swap pointers between rows.
15311 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15312 (init_display): Initialize SPACE_GLYPH.
15313 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15314 spaces.
26901792
DL
15315
15316Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15317
15318 * xterm.c (dumprectangle): Use vectors in glyph rows.
15319
15320 * xdisp.c (display_text_line): Use vectors in glyph rows.
15321 (display_string): Ditto.
15322
15323 * scroll.c (do_scrolling): Use vectors in glyph rows.
15324 (do_direct_scrolling): Ditto.
15325
15326 * alloc.c (mark_object): Use vectors in glyph rows.
15327 Mark for all frame types.
15328
15329 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15330 glyph rows.
15331 (get_glyph_matrix_row): Ditto.
15332 (matrix_row): Ditto.
15333 (rotate_pointers): Ditto.
15334 (scroll_frame_lines): Ditto.
15335 (preserve_other_columns): Ditto.
15336 (cancel_my_columns): Ditto.
15337 (update_line): Ditto.
15338 (direct_output_for_insert): Ditto.
15339
15340 * dispextern.h (struct glyph_row): Use a vector of pointers
15341 instead of individual members. Use a vector of used counters.
15342 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15343 (MATRIX_ROW_GLYPH_START): Ditto.
15344 (MATRIX_ROW_GLYPH_END): Ditto.
15345 (MATRIX_ROW_USED): Ditto.
15346 (MATRIX_ROW_SET_USED): Ditto.
15347
15348 * dispnew.c (line_hash_code): Simplified.
15349
15350Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15351
15352 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15353 CHANGE_FRAME_SIZE_1
15354 (preserve_other_columns): Void return.
15355 (cancel_my_columns): Void return type.
15356 (scrolling): Int return type.
15357 (do_pending_window_change): Void return type.
15358 (change_frame_size): Ditto.
15359 (bitch_at_user): Ditto.
15360 (init_display): Ditto.
15361 (syms_of_display): Ditto.
15362
15363 * dispextern.h: add prototypes for REDRAW_FRAME,
15364 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15365 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15366 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15367 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15368 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15369 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
15370 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15371
26901792
DL
15372 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
15373 void.
15374 (cancel_line): Return void.
15375 (clear_frame_records): Return void.
427ec082 15376
26901792
DL
15377 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15378 (SET_CHAR_GLYPH): Fill a character glyph.
15379 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15380 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15381 glyph.
26901792
DL
15382 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15383 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15384 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15385 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15386 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15387 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15388 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15389 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15390 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15391
15392 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15393
15394 * window.h (struct window): Add comment that no Lisp data may
15395 come below CURRENT_MATRIX.
15396
15397 * alloc.c (mark_object): Change window mark code to stop with
15398 member CURRENT_MATRIX.
15399
15400Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15401
15402 * scroll.c (do_scrolling): Change algorithm to use pointers.
15403 (do_direct_scrolling): Ditto.
15404
15405 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15406 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15407 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15408 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
15409 Returns 1 if pool changed.
15410 (matrix_row): Additional check for lost pointers to glyph rows.
15411 (compute_matrices): Additional parameter DIM_P set means that no
15412 allocation should take place. Addtional parameter
15413 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
15414 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
15415 when window matrix changes. Additional parameter DIM_ONLY_P set
15416 to 1 to indicate that no allocation should take place.
15417 (adjust_frame_glyphs): Construct new glyph pools and glyph
15418 matrices. Optimize frame redraws.
15419 (free_glyphs): Free pools.
15420 (check_glyph_memory): Check pools not freed.
15421 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15422 (scroll_frame_lines): Change algorithm to use pointers.
15423 (update_line): Ditto.
15424
15425 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15426 (global): All macro names changed from prefix FRAME_MATRIX to
15427 MATRIX.
15428
15429Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15430
15431 * dispextern.h (struct glyph_pool): Replacement for former
15432 FRAME_GLYPH_MATRIX.
15433 (struct glyph_matrix): No longer contains sizes of allocated
15434 areas.
15435
15436 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15437 no glyph pools.
15438
15439 * frame.c (make_frame): Initialize pools.
15440
15441Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
15442
427ec082 15443 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
15444 line moving algorithm has no intermediate steps.
15445 (do_scrolling): Ditto.
15446
15447 * Makefile.in (alloc.o): Add dependency dispextern.h.
15448
15449 * alloc.c: Include dispextern.h for glyph definitions.
15450
15451 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
15452 is legal, return 0 otherwise.
15453
15454 * window.h: Add comment that windows are marked specially.
15455
15456 * alloc.c (mark_object): Mark windows specially.
15457
15458
15459Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
15460
15461 * dispextern.h (struct glyph): Add member OBJECT
15462 referencing a Lisp object from which a glyph was drawn.
15463 Member TEXT_POSITION renamed POSITION.
15464 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
15465
15466 * alloc.c: Include dispextern.h
15467 (mark_object): Mark objects referenced from glyphs.
15468
f28eba7b 15469 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
15470
15471 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
15472 (do_scrolling): Ditto.
15473
427ec082 15474 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
15475 DECODE_MODE_SPEC_BUFFER added.
15476
15477 * window.h: TEMP_MATRIX removed.
15478
15479 * scroll.c: OPHYS_LINES removed.
15480
15481 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
15482 FRAME_PTR -> struct frame *.
15483
15484 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
15485 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15486
15487 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
15488 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15489
15490 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
15491 (do_verify_charstarts): Removed.
15492
15493 * frame.c (Fmake_terminal_frame): Adjust glyphs.
15494 (Fdelete_frame): Free glyphs.
15495 (make_frame): Initialize matrix fields in frame.
15496
f28eba7b 15497 * config.in (PROTO): Added.
26901792 15498
f28eba7b 15499 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
15500
15501 * window.c (Fdelete_window): Free window matrices.
15502 (Fset_window_configuration): Ditto.
15503 (Fdelete_window): Adjust glyphs.
15504 (Fsplit_window): Ditto.
15505 (change_window_height): Ditto.
15506 (Fset_window_configuration): Ditto.
15507 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
15508 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
15509
15510 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
15511
15512 * window.c: Include dispextern.h
15513
15514 * scroll.c (do_scrolling): Use new glyphs.
15515 (do_direct_scrolling): Ditto.
15516
15517 * xdisp.c: Some function prototypes.
15518 (redisplay_internal): Don't do anything if matrices not yet set.
15519 (redisplay_internal): Use new glyphs.
15520 (try_window_id): Ditto.
15521 (copy_part_of_rope): Ditto.
15522 (display_text_line): Ditto.
15523 (display_menu_bar): Ditto.
15524 (display_mode_line): Ditto.
15525 (display_string): Ditto.
15526
15527 * xterm.c: Prototypes for some local functions.
15528 (dumpglyphs): Use new glyphs.
15529 (XTwrite_glyphs): Ditto.
15530 (dumprectangle): Ditto.
15531 (note_mouse_highlight): Ditto.
15532 (fast_find_position): Ditto.
15533 (show_mouse_face): Ditto.
15534 (x_draw_single_glyph): Ditto.
15535 (x_display_bar_cursor): Ditto.
15536 (x_display_box_cursor): Ditto.
15537 (x_new_font): Adjust glyphs when font change.
15538
15539 * term.c (clear_end_of_line): Use new glyphs.
15540 (write_glyphs): Ditto.
15541 (insert_glyphs): Ditto.
15542
15543 * Makefile.in (term.o): term.c depends on dispextern.h
15544
15545 * term.c: Include dispextern.h
15546
15547 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 15548 removed, new inserted.
26901792
DL
15549 (line_hash_code): Use new glyphs.
15550 (line_draw_cost): Ditto
15551 (cancel_line): Ditto
15552 (clear_frame_records): Ditto.
15553 (init_desired_glyphs): Ditto.
15554 (get_display_line): Ditto
15555 (scroll_frame_lines): Ditto.
15556 (preserve_other_columns): Ditto.
15557 (adjust_window_charstarts): Ditto.
15558 (cancel_my_columns): Ditto.
15559 (direct_output_for_insert): Ditto.
15560 (update_frame): Ditto.
15561 (quit_error_check): Made empty.
15562 (scrolling): Use new glyphs.
15563 (count_blanks): Ditto.
15564 (count_match): Ditto.
15565 (update_line): Ditto.
15566 (init_display): Adjust glyphs initially.
15567 (change_frame_size_1): Adjust glyphs.
15568
15569 * dispextern.h: Old glyphs removed, new added.
15570
15571 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
15572
15573 * xterm.h: Prototype for min_char_bounds.
15574
15575 * window.h (struct window): Remove old glyphs, add new.
15576
15577 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 15578
26901792
DL
155791999-07-20 Dave Love <fx@gnu.org>
15580
15581 * buffer.c (syms_of_buffer): Make
15582 default-enable-multibyte-characters a user variable.
15583
155841999-07-14 Richard Stallman <rms@gnu.org>
15585
15586 * Version 20.4 released.
15587
155881999-07-14 Richard Stallman <rms@gnu.org>
15589
15590 * filelock.c (lock_file): Do nothing if purifying.
15591
155921999-07-10 Richard Stallman <rms@gnu.org>
15593
15594 * xterm.c (x_display_bar_cursor): Use the cursor-color
15595 to display the bar, not the cursor foreground pixel.
15596
155971999-07-09 Andrew Innes <andrewi@gnu.org>
15598
15599 * w32console.c (w32_use_full_screen_buffer): New variable.
15600 (syms_of_ntterm): Register it.
15601 (initialize_w32_display): Set initial frame size accordingly,
15602 respecting the LINES and COLUMNS environment variables if set.
15603
15604 * w32inevt.c (w32_console_read_socket): Use it.
15605
156061999-07-07 Kenichi Handa <handa@etl.go.jp>
15607
15608 * callproc.c (Fcall_process): Decide coding system for decoding
15609 after we set to the target buffer. If the output goes to a
15610 unibyte buffer, suppress character code conversion.
15611
15612 * fileio.c (Finsert_file_contents): If reading into a unibyte
15613 buffer, suppress character code conversion.
15614
15615 * process.c (create_process): If the output goes to a unibyte
15616 buffer, suppress character code conversion.p
15617
156181999-07-07 Andreas Schwab <schwab@gnu.org>
15619
15620 * xdisp.c (line-number-display-limit): Doc fix.
15621
156221999-07-05 Richard Stallman <rms@gnu.org>
15623
15624 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
15625 (Fcall_process_region): Likewise.
15626
156271999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
15628
15629 * callproc.c (init_callproc): Set exec_directory if
15630 installation_directory is non-nil, without a test of exec_path.
15631
156321999-07-01 Andrew Innes <andrewi@gnu.org>
15633
15634 * w32xfns.c (drain_message_queue): New function.
15635
15636 * w32term.h (drain_message_queue): Add extern.
15637
15638 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
15639 of WaitForMultipleObjects when user input is allowed, so we can
15640 handle incoming window messages. Call drain_message_queue when
15641 there are messages waiting; this ensures that windows created
15642 indirectly from the lisp thread get processed properly, and don't
15643 hang other applications by failing to respond to broadcasts.
15644
156451999-07-01 Andreas Schwab <schwab@gnu.org>
15646
15647 * callint.c (Fcall_interactively): Ignore first element of
15648 event-symbol-elements property.
15649
156501999-07-01 Richard Stallman <rms@gnu.org>
15651
15652 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
15653
156541999-07-01 Kenichi Handa <handa@etl.go.jp>
15655
15656 * minibuf.c (read_minibuf): Set the multibyteness of the
15657 minibuffer before inserting `initial' string.
15658
156591999-06-30 Richard Stallman <rms@gnu.org>
15660
15661 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
15662
156631999-06-29 Richard M. Stallman <rms@gnu.org>
15664
15665 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
15666 Move the handling of MALLOC_CHECK_ envvar here.
15667 (main): Moved from here.
15668
156691999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
15670
15671 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
15672 function, assigned to the global __malloc_initialize_hook pointer.
15673 (main): Move malloc_set_state call into malloc_initialize_hook
15674 so that it happens as early as possible.
15675
156761999-06-27 Richard M. Stallman <rms@gnu.org>
15677
15678 * keyboard.c (read_key_sequence): Properly reinitialize
15679 fkey_map after translating thru Vkey_translation_map.
15680 After translating thru Vfunction_key_map, don't reset
15681 keytrans-start to 0.
15682
156831999-06-24 Geoff Voelker <voelker@cs.washington.edu>
15684
15685 * w32.c (get_emacs_configuration): Use GetVersionEx to
15686 handle NT5.0 correctly. Include build number in configuration.
15687 w32heap.c (osinfo_cache): New variable.
15688 (cache_system_info): Initialize osinfo_cache.
15689 w32heap.h (osinfo_cache): Declare.
15690
156911999-06-24 Richard M. Stallman <rms@gnu.org>
15692
15693 * casefiddle.c (casify_object): Use make_multibyte_string
15694 if we casify a multibyte string.
15695
156961999-06-22 Ken'ichi Handa <handa@gnu.org>
15697
15698 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
15699 del_range_byte instead of del_range_1, set `inserted' to the
15700 number of characters actually inserted.
15701
157021999-06-17 Dave Love <fx@gnu.org>
15703
15704 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
15705
157061999-06-18 Paul Eggert <eggert@twinsun.com>
15707
15708 * filelock.c (BOOT_TIME_FILE): New macro.
15709 (get_boot_time): Use it instead of hardwiring the file name.
15710 Check BOOT_TIME_FILE only after inspecting the kernel directly.
15711
157121999-06-17 Dave Love <fx@gnu.org>
15713
15714 * xdisp.c (invalid_eol_type): Make it unsigned.
15715
157161999-06-17 Karl Heuer <kwzh@gnu.org>
15717
15718 * process.c (send_process): Delete unsafe/redundant assignment.
15719
157201999-06-17 Jason Rumney <jasonr@gnu.org>
15721
15722 * w32term.c (dumprectangle): Handle wide characters properly.
15723
157241999-06-16 Andrew Innes <andrewi@gnu.org>
15725
15726 * s/ms-w32.h (strerror): Override the default implementation of
15727 strerror, so we can map winsock error codes.
15728
15729 * w32.c (sys_strerror): New function.
15730
15731 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
15732
157331999-06-15 Ken'ichi Handa <handa@gnu.org>
15734
15735 * buffer.c (syms_of_buffer): Don't make
15736 enable-multibyte-characters customizable.
15737
157381999-06-15 Richard M. Stallman <rms@gnu.org>
15739
15740 * editfns.c (Fuser_full_name): Doc fix.
15741
157421999-06-14 Tak Ota <ota@atc.sel.sony.com>
15743
15744 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
15745 (get_bitmap_with_cache): Check if CreateBitmap failed.
15746 Adjust cache size dynamically so cache is never larger than the
15747 system limit of GDI resources.
15748 Do cache clearing inline. Move global variables to local scope.
15749
15750
157511999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
15752
15753 * unexsgi.c (unexec): Dump the .rodata section from memory
15754 under IRIX6.5 in order to be able to unexec with gcc.
15755
157561999-06-11 Greg Hudson <ghudson@MIT.EDU>
15757
15758 * indent.c (compute_motion): Fix boundary case.
15759
157601999-06-11 Jason Rumney <jasonr@altavista.net>
15761
15762 * w32term.c (cancel_mouse_face): New function. See equiv
15763 changes to xterm.c on 1996-10-31.
15764 (x_set_window_size): Use cancel_mouse_face.
15765 (w32_read_socket): Use cancel_mouse_face.
15766 Update frame position when size is restored.
15767
157681999-06-04 Richard M. Stallman <rms@gnu.org>
15769
15770 * lread.c (Vuser_init_file): New variable.
15771 (syms_of_lread): Set up Lisp variable.
15772 (Fload): Store the file name there, if var was t before.
15773
157741999-06-04 Paul Eggert <eggert@twinsun.com>
15775
15776 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
15777 doesn't work if the system date is changed, or if the system
15778 is suspended. Look at the last-modified time of
15779 /var/run/random-seed instead.
15780
157811999-06-03 Ken'ichi Handa <handa@gnu.org>
15782
15783 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15784 japanese-jisx0208-1978 correctly.
15785
157861999-06-03 Andrew Innes <andrewi@gnu.org>
15787
15788 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
15789 as possible to be dumped, for safety.
15790
157911999-06-02 Ken'ichi Handa <handa@gnu.org>
15792
15793 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15794 latin-jisx0201 correctly.
15795
157961999-05-26 Ken'ichi Handa <handa@gnu.org>
15797
15798 * charset.h (Vcharset_table): Comment fixed.
15799
158001999-05-24 Richard Stallman <rms@gnu.org>
15801
15802 * coding.c (syms_of_coding): Doc fix.
15803
15804 * buffer.c (syms_of_buffer): Doc fix.
15805
15806 * filelock.c (lock_if_free): After deleting a stale lock,
15807 try again to lock the file.
15808
158091999-05-22 Andrew Innes <andrewi@gnu.org>
15810
15811 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
15812 console window size.
15813 (w32_console_read_socket): Call maybe_generate_resize_event
15814 whenever input events are received, since we don't get told when
15815 the window size changes (as opposed to the buffer size, which we
15816 don't care about).
15817
15818 * w32console.c (clear_frame): Remember that the window width might
15819 be smaller than the screen buffer width.
15820 (write_glyphs): Remove redundant variable attrs. Use
15821 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
15822
158231999-05-20 Andrew Innes <andrewi@gnu.org>
15824
15825 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
15826 loses focus.
15827
15828 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
15829 frame loses focus, and that mouse button state is reset. Ditto
15830 when the menu bar is activated.
15831
158321999-05-18 Richard Stallman <rms@gnu.org>
15833
15834 * abbrev.c (Fdefine_abbrev): Doc fix.
15835
158361999-05-13 Paul Eggert <eggert@twinsun.com>
15837
15838 * filelock.c: Fix performance bug on hosts with large
15839 /var/adm/wtmp files with no boot records.
15840
15841 (boot_time_initialized): New var.
15842 (init_filelock): Initialize it.
15843 (get_boot_time): Use it, instead of nonzero boot_time,
15844 to test whether boot_time is initialized.
15845 Don't invoke utmp routines when dumping.
15846
15847 (get_boot_time): First, try to get the boot time from the
15848 current utmp file, as this can be much faster. Don't try to
15849 get the boot time from utmp and/or wtmp more than once.
15850
15851 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
15852 New arg LATEST. All uses changed.
15853
158541999-05-15 Andrew Innes <andrewi@gnu.org>
15855
15856 * w32term.c (dumpglyphs): Use correct colours for drawing
15857 rectangles in place of missing fonts, and make them the right
15858 size.
15859
158601999-05-14 Dave Love <fx@gnu.org>
15861
15862 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
15863 non-nil.
15864
158651999-05-11 Andrew Innes <andrewi@gnu.org>
15866
15867 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
15868 definition.
15869 (w32_wnd_proc): Reinstall debugging output.
15870 (w32_wnd_proc): Reinstall SetForegroundWindow change.
15871 (syms_of_w32fns): Reinstall new initializer for
15872 Vw32_phantom_key_code.
15873
15874 * w32fns.c (x_to_w32_charset): Do partial matching of charset
15875 names for most non-European charsets, to cope with wildcards or
15876 missing spec dates.
15877 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
15878 to avoid deadlock when activating the menu bar.
15879
158801999-05-10 Ken'ichi Handa <handa@gnu.org>
15881
15882 * search.c (boyer_moore): Get charset base value of `untranslated'
15883 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
15884
158851999-05-10 Andreas Schwab <schwab@gnu.org>
15886
15887 * fileio.c (Fread_file_name): Correct handling of dollars in file
15888 names. Protect dollars in strings put on the file-name-history.
15889 Substitute homedir by `~' also in default_filename.
15890
15891 * xdisp.c (try_window_id): Fix computation of tab_offset when
15892 backing up over a character that is splitted across lines.
15893
158941999-05-08 Kenichi HANDA <handa@etl.go.jp>
15895
15896 * coding.c (code_convert_region): If eol format is inconsistent,
15897 change coding->symbol to the sibling coding system of Unix like
15898 eol format.
15899
159001999-05-09 Richard M. Stallman <rms@gnu.org>
15901
15902 * s/irix5-2.h (NO_WTMP_FILE): Define it.
15903
15904 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
15905
159061999-05-05 Andrew Innes <andrewi@gnu.org>
15907
15908 * w32fns.c (w32_strict_painting): New variable.
15909 (w32_wnd_proc): Use it to select repaint rules.
15910 (syms_of_w32fns): Defvar it.
15911
159121999-05-04 Andrew Innes <andrewi@gnu.org>
15913
15914 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
15915 charsets to the standard Windows charset for Japanese.
15916
159171999-05-04 Ken'ichi Handa <handa@gnu.org>
15918
15919 * xterm.c (x_load_font): Fix typo (`>' -> `=').
15920
15921 * ccl.h (struct ccl_program): New member stack_idx.
15922
15923 * ccl.c (ccl_prog_stack_struct): Declare it as static.
15924 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
15925 before returing.
15926 (setup_ccl_program): Initialize ccl->stack_idx to 0.
15927
159281999-05-03 Jason Rumney <jasonr@altavista.net>
15929
15930 * w32term.c (dumpglyphs): Always fill background for italic fonts.
15931
159321999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
15933
15934 * dired.c (make_time): Make argument type be time_t.
15935
159361999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
15937
15938 * msdos.c (unibyte_display_via_language_environment): Add extern.
15939
83c8f461 159401999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
15941
15942 * xdisp.c (display_text_line): Convert unibyte char to multibyte
15943 if unibyte_display_via_language_environment is set.
15944 (unibyte_display_via_language_environment):
15945 Variable moved from xfns.c and elsewhere.
15946 (syms_of_xfns): Set up Lisp var.
15947
15948 * xfns.c (unibyte_display_via_language_environment):
15949 Variable moved to xdisp.c.
15950 (syms_of_xfns): Don't set up Lisp var here.
15951
15952 * msdos.c (unibyte_display_via_language_environment):
15953 Variable moved to xdisp.c.
15954 (syms_of_msdos): Don't set up Lisp var here.
15955
15956 * w32fns.c (unibyte_display_via_language_environment):
15957 Variable moved to xdisp.c.
15958 (syms_of_w32fns): Don't set up Lisp var here.
15959
159601999-05-02 Andrew Innes <andrewi@gnu.org>
15961
15962 * s/ms-w32.h (HAVE_FSYNC): New macro.
15963 (fsync): Map to _commit.
15964 (ftruncate): Map to _chsize.
15965
15966 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
15967 for ASCII, if enabled, to avoid memory allocation overhead for
15968 implicit Unicode conversion. Also, recognize that ASCII and
15969 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
15970 already contains the Unicode characters in that case.
15971 (construct_drag_n_drop): Remove old code that was
15972 trashing the drop location.
15973
15974 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
15975 nlines to encoding_buffer_size (real bug was in a ccl program in
15976 lisp/international/coding.el).
15977
15978 * w32reg.c (w32_get_string_resource): Check for name in current
15979 user area, and if not found look in the local machine area.
15980
15981 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
15982 (Fw32_shell_execute): New function; used to support browse-url.
15983 (syms_of_w32fns): Register it.
15984 (w32_load_system_font): Force max width to be average
15985 char width for fixed-pitch fonts, to avoid unnecessary redisplay
15986 slowdown.
15987 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
15988 already defined.
15989 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
15990
15991 * unexw32.c (get_section_info): Dump back the entire EMDATA
15992 section if we can put Emacs' initialized data in a separate
15993 section, otherwise use the my_begdata/my_edata method.
15994
15995 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
15996
15997 * coding.c (decode_eol): Set produced/consumed values to zero if
15998 src_bytes is <= 0 on entry.
15999
160001999-05-02 Jason Rumney <jasonr@altavista.net>
16001
16002 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
16003 w32_clear_frame, clear_cursor, x_display_bar_cursor,
16004 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16005 field in frame.
16006 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16007 (dumprectangle): Take into account the width of a left-side
16008 scroll bar.
16009
16010 * w32proc.c (sys_kill): Attach to current foreground thread
16011 when grabbing focus; necessary on NT 5.0.
16012
16013 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16014 GetUpdateRect rather than BeginPaint.
16015 (w32_wnd_proc): Attach to current foreground thread
16016 when grabbing focus; necessary on NT 5.0.
16017 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16018 debugging display messages.
16019 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16020 false matching.
16021
160221999-05-02 Kenichi HANDA <handa@etl.go.jp>
16023
16024 * coding.c (setup_raw_text_coding_system): Call
16025 setup_coding_system to initialize the fields of struct
16026 coding_system correctly.
427ec082 16027
26901792
DL
160281999-04-26 Kenichi HANDA <handa@etl.go.jp>
16029
16030 * xterm.c (x_list_fonts): Fix previous change.
16031
160321999-04-26 Richard Stallman <rms@gnu.org>
16033
16034 * config.in (HAVE_LIBXP): Add #undef.
16035 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16036
160371999-04-12 Ken'ichi Handa <handa@gnu.org>
16038
16039 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16040 by them.
16041
160421999-04-12 Karl Heuer <kwzh@gnu.org>
16043
16044 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16045
160461999-04-11 Ken'ichi Handa <handa@gnu.org>
16047
16048 * fontset.c (Fset_fontset_font): Fix previous change.
16049
160501999-04-09 Ken'ichi Handa <handa@gnu.org>
16051
16052 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16053 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16054
160551999-04-08 Richard Stallman <rms@gnu.org>
16056
16057 * process.c (Faccept_process_output): Check validity of PROCESS.
16058
160591999-04-08 Eli Zaretskii <eliz@gnu.org>
16060
16061 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16062
160631999-04-07 Richard Stallman <rms@gnu.org>
16064
16065 * xfns.c (x_set_font): Fix error message.
16066
16067 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16068 (Fnew_fontset, Fset_fontset_font): Check for them here.
16069 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16070 Fix error message syntax.
16071
16072 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16073 from the base buffer.
16074 (Fset_buffer_multibyte): Copy new multibyte status
16075 into the buffer's indirect buffers.
16076
160771999-04-07 Ken'ichi Handa <handa@gnu.org>
16078
16079 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16080 tail.
16081
160821999-04-06 Richard Stallman <rms@gnu.org>
16083
16084 * dired.c (Ffile_attributes): Doc fix.
16085
16086 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16087 Convert 0200 to meta only in a unibyte string.
16088 (Fkey_description): Likewise.
16089
16090 * eval.c (do_autoload): Preserve match data.
16091
160921999-04-06 Kenichi HANDA <handa@etl.go.jp>
16093
16094 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16095 encode_coding to avoid carryover.
16096
16097 * coding.c: Add comments for decode_coding and encode_coding.
16098
16099 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16100 a composite character by skipping its leading code.
16101 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16102 correctly.
16103
16104 * coding.c: Add comments for decode_coding and encode_coding.
16105
16106 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16107 a composite character by skipping its leading code.
16108 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16109 correctly.
16110
161111999-04-06 Eli Zaretskii <eliz@gnu.org>
16112
16113 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16114 table was used.
16115 (jp_kbd_translate_table): Support C-\.
16116 (it_kbd_translate_table): Map `>' correctly.
16117 (it_keyboard): Add `>'.
16118
161191999-04-06 Richard Stallman <rms@gnu.org>
16120
16121 * intervals.c (graft_intervals_into_buffer): Turn off
16122 inhibit_modification_hooks around calling Fset_text_properties.
16123
161241999-04-05 Kenichi HANDA <handa@etl.go.jp>
16125
16126 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16127 glyphs.
16128
161291999-04-05 Eli Zaretskii <eliz@gnu.org>
16130
16131 * msdos.c (jp_kbd_translate_table): Fix last change.
16132
161331999-04-04 Eli Zaretskii <eliz@gnu.org>
16134
16135 * msdos.c (struct kbd_translate): New struct, for key translation
16136 tables private to certain national keyboard layouts.
16137 (struct dos_keyboard_map): Add a pointer to a private translation
16138 table.
16139 (jp_kbd_translate_table): Private table for the Japanese
16140 keyboard.
16141 (jp_keyboard): Japanese keyboard layout.
16142 (it_kbd_translate_table): Private table for the Italian keyboard.
16143 (it_keyboard): Use it_kbd_translate_table.
16144 (keyboard_layout_list): Add the Japanese keyboard.
16145 (dos_rawgetc): Use the keyboard-private translation table, if
16146 available.
16147 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16148
161491999-04-02 Kenichi HANDA <handa@etl.go.jp>
16150
16151 * xdisp.c (redisplay_window): When we call compute_motion with
16152 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16153 (display_text_line): Stop the loop for processing overlay strings
16154 when we reach the right edge of the window.
16155
83c8f461 161561999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16157
16158 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16159 let the data control whether string is unibyte.
16160
161611999-03-30 Richard M. Stallman <rms@gnu.org>
16162
16163 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16164 (pop_kbd_macro): Restore the saved real_this_command.
16165 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16166
161671999-03-26 Richard M. Stallman <rms@gnu.org>
16168
16169 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16170 if buffer-file-name is nil.
16171
161721999-03-25 Jason Rumney <jasonr@altavista.net>
16173
16174 * w32select.c (Fw32_set_clipboard_data): Take into account line
16175 ends when calculating clipboard storage needed for non-ASCII text.
16176
161771999-03-25 Andrew Innes <andrewi@gnu.org>
16178
16179 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16180 (epaths.h): Renamed from paths.h.
427ec082
SS
16181 (clean):
16182 ($(BLD)\filelock.obj):
16183 ($(BLD)\lread.obj):
26901792
DL
16184 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16185
161861999-03-23 Ken'ichi Handa <handa@gnu.org>
16187
16188 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16189 ENCODE_ISO_CHARACTER for the previous change on this macro.
16190
161911999-03-23 Kenichi Handa <handa@etl.go.jp>
16192
16193 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16194 eoltype correctly for backward compatibility.
16195
161961999-03-20 Kenichi HANDA <handa@etl.go.jp>
16197
16198 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16199 invalid, produce the buffer internal byte sequence without encoding.
16200
162011999-03-19 Karl Heuer <kwzh@gnu.org>
16202
16203 * editfns.c (Fformat): Accept %i format.
16204
162051999-03-17 Karl Heuer <kwzh@gnu.org>
16206
16207 * filelock.c (get_boot_time): Test tempname, not filename.
16208
162091999-03-17 Jason Rumney <jasonr@altavista.net>
16210
e5619f6b
JR
16211 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16212 speed display.
16213
16214 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16215 speed display.
16216 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16217 New functions.
16218 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16219 Use bitmap cache.
26901792
DL
16220
16221 * w32fns.c (enum_font_cb2): Set the font height to be the
16222 character height, not the cell height.
16223 (Fw32_select_font): Initialize font dialog with current default font.
16224 (Vw32_system_coding_system): New variable.
16225 (w32_strict_filenames): Add comment.
16226 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16227 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16228 (syms_of_w32fns): Add w32-system-coding-system.
16229
162301999-03-15 Richard M. Stallman <rms@gnu.org>
16231
16232 * xterm.c (XTread_socket) <ConfigureNotify>:
16233 If cursor pos is outside the new frame size, mark cursor as off.
16234
162351999-03-14 Ken'ichi Handa <handa@gnu.org>
16236
16237 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16238
16239 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16240 by them.
16241
162421999-03-14 Richard M. Stallman <rms@gnu.org>
16243
16244 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16245 at beginning.
16246
162471999-03-14 Jason Rumney <jasonr@altavista.net>
16248
16249 * w32fns.c (w32_strict_fontnames): New variable.
16250 (Fx_create_frame): Formatting fix.
16251 (w32_load_system_font): Keep trying to load non-existant font
16252 if w32_strict_fontnames is nil. Formatting fix.
16253 (syms_of_w32fns): Add w32-strict-fontnames.
16254
16255 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16256 (dumpglyphs): Formatting fixes.
16257
162581999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16259
16260 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16261
162621999-03-10 Karl Heuer <kwzh@gnu.org>
16263
16264 * puresize.h (BASE_PURESIZE): Increase to 505000.
16265
162661999-03-09 Richard M. Stallman <rms@gnu.org>
16267
16268 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16269
16270 * filelock.c (init_filelock): New function.
16271
162721999-03-09 Dave Love <fx@gnu.org>
16273
16274 * fileio.c (Ffile_directory_p): Doc fix.
16275
83c8f461 162761999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16277
16278 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16279
162801999-03-08 Richard M. Stallman <rms@gnu.org>
16281
16282 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16283 to only the part that uses get_boot_time_1.
16284
162851999-03-07 Dave Love <fx@gnu.org>
16286
16287 * fileio.c (Finsert_file_contents): Use xfree.
16288
162891999-03-06 Kenichi Handa <handa@etl.go.jp>
16290
16291 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16292 term.o, xselect.o): Depend on ccl.h.
16293
162941999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16295
16296 * makefile.nt: Remove common multiple file compilation commands.
16297
162981999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16299
16300 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16301 newlines added when the arg NO-LINE-BREAK is nil.
16302
163031999-03-04 Karl Heuer <kwzh@gnu.org>
16304
16305 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16306
16307 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16308
163091999-03-04 Dave Love <fx@gnu.org>
16310
16311 * term.c (term_init): Use xmalloc, not malloc.
16312
16313 * callproc.c (Fcall_process): Use xmalloc, xfree.
16314
163151999-03-03 Andreas Schwab <schwab@gnu.org>
16316
16317 * eval.c (Fdefconst): Doc fix.
16318
163191999-03-01 Kenichi Handa <handa@etl.go.jp>
16320
16321 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16322
163231999-03-01 Eli Zaretskii <eliz@gnu.org>
16324
16325 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16326
163271999-02-28 Richard M. Stallman <rms@gnu.org>
16328
16329 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16330
16331 * cmds.c (internal_self_insert): Calculate column properly
16332 in overwrite-of-tab case.
16333
163341999-02-27 Andreas Schwab <schwab@gnu.org>
16335
16336 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16337 malloc in glibc 2.1.
16338
163391999-02-26 Richard Stallman <rms@gnu.org>
16340
16341 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16342
16343 * epaths.in: Renamed from paths.in.
16344 This avoids a conflict with a system header file paths.h on GNU/Linux.
16345
16346 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16347 Use epaths.h istead of paths.h.
16348
163491999-02-26 Andreas Schwab <schwab@gnu.org>
16350
16351 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16352 malloc.
16353
163541999-02-25 Dave Love <fx@gnu.org>
16355
16356 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16357
163581999-02-25 Richard Stallman <rms@gnu.org>
16359
16360 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16361 (WTMP_FILE): Default definition in case not defined.
16362 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16363
26901792
DL
163641999-02-25 Ken'ichi Handa <handa@gnu.org>
16365
16366 * keymap.c (push_key_description): If enable-multibyte-characters
16367 is nil and C is single byte, push C as is.
16368
163691999-02-24 Kenichi Handa <handa@etl.go.jp>
16370
16371 * keymap.c (push_key_description): If enable-multibyte-characters
16372 is non-nil, try to convert unibyte character to multibyte. For
16373 invalid multibyte character, show all bits by octal form.
16374 (Fsingle_key_description): Check the validity of charset for a
16375 generic character.
16376
163771999-02-23 Richard M. Stallman <rms@gnu.org>
16378
16379 * fileio.c (Ffile_regular_p): Undo previous change.
16380
16381 * eval.c (Fdefconst): Doc fix.
16382
16383 * filelock.c (get_boot_time): Don't use BUFSIZ.
16384
163851999-02-22 Andrew Innes <andrewi@gnu.org>
16386
16387 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16388 (EXTRA_LINK): Do version test with strings.
16389
163901999-02-22 Andreas Schwab <schwab@gnu.org>
16391
16392 * fns.c (Fbase64_encode_string): Fix last change.
16393
16394 * termhooks.h (event_kind): Add user_signal.
16395
16396 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16397 (syms_of_keyboard): Initialize them.
16398 (lispy_user_signals): New variable.
16399 (make_lispy_event): Handle user_signal event type.
16400
16401 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16402 (syms_of_emacs): Don't initialize them.
16403 (handle_USR1_signal, handle_USR2_signal): Set event type to
16404 user_signal instead of non_ascii_keystroke, and use plain integers
16405 as code instead of Lisp symbols.
16406
164071999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16408
16409 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16410
164111999-02-21 Richard Stallman <rms@gnu.org>
16412
16413 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16414
16415 * print.c (print_error_message): Don't crash if (cdr data)
16416 is not a list.
16417
164181999-02-21 Eli Zaretskii <eliz@gnu.org>
16419
16420 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16421
164221999-02-20 Andrew Innes <andrewi@gnu.org>
16423
16424 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16425 run, since size can vary from run to run.
16426
16427 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16428 data is included, to enable profiling.
16429 ($(EMACS)): Map file not needed for emacs.exe.
16430
16431 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16432 as malloc before calling uninterrupt_malloc, for consistency.
16433 This also enables profiling to work on WINDOWSNT.
16434
164351999-02-18 Richard Stallman <rms@gnu.org>
16436
16437 * Makefile.in (emacs.o): Depend on termhooks.h.
16438 (filelock.o): Depend on systime.h.
16439
164401999-02-18 Ken'ichi Handa <handa@gnu.org>
16441
16442 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
16443 (Fdecode_big5_char): Likewise.
16444
164451999-02-17 Richard Stallman <rms@gnu.org>
16446
16447 * insdel.c (adjust_markers_for_replace): When doing an insertion
16448 (replacing a region of zero length), handle markers at the
16449 insertion point properly.
16450
164511999-02-17 Andrew Innes <andrewi@gnu.org>
16452
16453 * w32fns.c (Vw32_quit_key): New variable.
16454 (post_character_message): Use it.
16455 (syms_of_w32fns): DEFVAR it.
16456
164571999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
16458
16459 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
16460
164611999-02-16 Richard Stallman <rms@gnu.org>
16462
16463 * filelock.c (within_one_second): New function.
16464 (current_lock_owner): Use that.
16465 (get_boot_time): Use /proc/uptime if available.
16466 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
16467 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 16468
26901792
DL
164691999-02-16 Richard Stallman <rms@gnu.org>
16470
16471 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16472 (syms_of_emacs): Init and staticpro them.
16473 (handle_USR1_signal): Don't run any code, just queue up an event.
16474 (handle_USR2_signal): Likewise.
16475
164761999-02-16 Eli Zaretskii <eliz@gnu.org>
16477
16478 * dired.c (Ffile_attributes): If the file's size doesn't fit in
16479 an integer, return it as a float. Doc string fixed.
16480
164811999-02-16 Richard Stallman <rms@gnu.org>
16482
16483 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16484 (syms_of_emacs): Init and staticpro them.
16485 (handle_USR1_signal): Don't run any code, just queue up an event.
16486 (handle_USR2_signal): Likewise.
16487
164881999-02-15 Kenichi Handa <handa@etl.go.jp>
16489
16490 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
16491 ASCII correctly. Signal error on invalid characters.
16492 (Fdecode_big5_char, Fencode_big5_char): Likewise.
16493
164941999-02-15 Eli Zaretskii <eliz@gnu.org>
16495
16496 * w16select.c (get_clipboard_data): Work around a bug in Windows95
16497 DOS box which doubles the reported size of text in the clipboard.
16498
164991999-02-15 Kenichi Handa <handa@etl.go.jp>
16500
16501 * coding.c (decode_coding_iso2022): Don't set
16502 coding->composed_chars to 0 here.
16503 (setup_coding_system): Set coding->composed_chars to 0 here.
16504
165051999-02-10 Richard Stallman <rms@gnu.org>
16506
16507 * fileio.c (Ffile_regular_p): Use lstat.
16508
165091999-02-09 Richard Stallman <rms@gnu.org>
16510
16511 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
16512 (unexec): Test this instead of specific systems.
16513
16514 * m/macppc.h: New file.
16515
165161999-02-08 Dave Love <fx@gnu.org>
16517
16518 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
16519
165201999-02-08 Ken'ichi Handa <handa@gnu.org>
16521
16522 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
16523 should be set to coding->produced.
16524
165251999-02-07 Paul Fisher <rao@gnu.org>
16526
16527 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
16528 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
16529
165301999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16531
16532 * editfns.c (Fformat): Doc fix.
16533
165341999-02-06 Richard Stallman <rms@gnu.org>
16535
16536 * process.c (syms_of_process): defsubr it.
16537 (Fprocess_running_child_p): New function.
16538
165391999-02-05 Andrew Innes <andrewi@gnu.org>
16540
16541 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
16542 recording drop position.
16543
165441999-02-05 Ken'ichi Handa <handa@gnu.org>
16545
16546 * coding.c (encode_coding_iso2022): Before writing out an invalid
16547 code, reset graphic planes and registers if necessary.
16548
16549 * term.c (encode_terminal_code): Fix previous change.
16550
165511999-02-04 Eli Zaretskii <eliz@gnu.org>
16552
16553 * w16select.c (last_clipboard_text, clipboard_storage_size): New
16554 static variables.
16555 (set_clipboard_data): Save a copy of the text we put into
16556 clipboard in last_clipboard_text.
16557 (get_clipboard_data): If the clipboard text is identical to what
16558 last_clipboard_text holds, pretend there's no data in the clipboard.
16559
165601999-02-03 Richard Stallman <rms@gnu.org>
16561
16562 * s/gnu.h (NLIST_STRUCT): Add #undef.
16563
165641999-02-03 Eli Zaretskii <eliz@gnu.org>
16565
16566 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
16567 encoded, set its pointer and size as returned by encode_coding.
16568
165691999-02-02 Ken'ichi Handa <handa@gnu.org>
16570
16571 * fns.c (Fset_char_table_default): To handle the case that CH is
16572 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
16573
165741999-02-02 Andrew Innes <andrewi@gnu.org>
16575
16576 * w32fns.c (syms_of_w32fns): Change default value of
16577 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
16578 some mice works properly.
16579
165801999-02-02 Eli Zaretskii <eliz@gnu.org>
16581
16582 * w16select.c (set_clipboard_data): Correctly null-terminate the
16583 string to be put into the Windows clipboard. Use xbuf_addr.
16584
165851999-02-01 Richard Stallman <rms@gnu.org>
16586
16587 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
16588
165891999-01-31 Richard Stallman <rms@gnu.org>
16590
16591 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
16592 then don't send the signal if the shell owns the terminal.
16593 (Finterrupt_process): Doc change.
427ec082 16594
26901792
DL
165951999-01-31 Andrew Innes <andrewi@gnu.org>
16596
16597 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
16598 (copy_executable_and_dump_data): Use it to ensure alignment slop
16599 is zeroed.
16600
166011999-01-30 Andrew Innes <andrewi@gnu.org>
16602
16603 * w32.c (init_environment): Change argv[0] to contain the full
16604 path to Emacs.
16605
16606 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
16607
166081999-01-29 Ken'ichi Handa <handa@gnu.org>
16609
16610 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
16611 returned by x_new_font (the resolved one) but use the font name
16612 set in the fontset specification.
16613 (x_load_font): For the height of font, if normarl ascent and
16614 descent value are larger than those in max_bounds field, use the
16615 former.
16616
166171999-01-28 Eli Zaretskii <eliz@gnu.org>
16618
16619 * xdisp.c (decode_mode_spec_coding): Fix previous change.
16620
166211999-01-27 Geoff Voelker <voelker@cs.washington.edu>
16622
16623 * makefile.nt: Use full path to temacs.exe when dumping.
16624
166251999-01-27 Jason Rumney <jasonr@altavista.net>
16626
16627 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
16628 list was reliable.
16629 (enum_fontex_cb1, enum_fontex_cb2): New functions.
16630 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
16631 (w32_list_synthesized_fonts): New function.
16632 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
16633 available instead of EnumFontFamilies. List synthesized fonts if
16634 Vw32_enable_italics is non-nil.
427ec082 16635
26901792
DL
166361999-01-27 Richard Stallman <rms@gnu.org>
16637
16638 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
16639 Don't complain if ttcompat does not exist.
16640
16641 * w32fns.c (x_set_frame_parameters): gcpro as needed.
16642
166431999-01-27 Andrew Innes <andrewi@gnu.org>
16644
16645 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
16646 the lwindow, rwindow and apps keys could not be used as function
16647 keys, because they were being passed to TranslateMessage which
16648 ignores them. Also, key was being changed to SPC.
16649
16650 * makefile.nt: Do make version comparison as strings.
16651
166521999-01-27 Eli Zaretskii <eliz@gnu.org>
16653
16654 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
16655 strings, not characters.
16656
16657 * coding.h: Likewise.
16658
16659 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
16660 string.
16661
166621999-01-26 Dave Love <fx@gnu.org>
16663
16664 * emacs.c (main): Up-date copyright.
16665
166661999-01-25 Dave Love <fx@gnu.org>
16667
16668 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16669
166701999-01-25 Andreas Schwab <schwab@gnu.org>
16671
16672 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
16673
166741999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
16675
16676 * xfns.c (x_set_frame_parameters): gcpro as needed.
16677
16678 * window.c (Fset_window_point): If WINDOW is selected but the
16679 current buffer is not its buffer, don't use Fgoto_char.
16680
166811999-01-22 Richard M. Stallman <rms@gnu.org>
16682
16683 * syntax.c (scan_sexps_forward): Delete duplicate code
16684 to set prev_from_syntax, above start of main loop.
16685 At startinstring, check syntax when checking for a match.
16686
166871999-01-22 Jason Rumney <jasonr@altavista.net>
16688
16689 * w32bdf.c: New file.
16690 * w32bdf.h: New file.
16691 * makefile.nt: Add w32bdf.c and w32bdf.h.
16692
16693 * w32gui.h: Include w32bdf.h.
16694 (W32FontStruct) Add bdf element.
16695
16696 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
16697 Support BDF fonts.
16698
16699 * w32term.c (W32_TEXTOUT): New macro.
16700 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
16701 Simplify baseline calculation. Detect SJIS by font, not glyph.
16702 Call SetTextAlign.
16703 (syms_of_w32term): Remove "jisx0212-sjis" from
16704 w32-charset-to-codepage-alist.
16705 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
16706 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 16707
26901792
DL
16708 * w32fns.c (Vw32_bdf_filename_alist): New variable.
16709 (x_destroy_bitmap): Returns void not int.
16710 (x_set_border_pixel): Returns void.
16711 (w32_load_bdf_font): New function.
16712 (w32_load_system_font): New function, was w32_load_font. List
16713 fonts before loading. Explicitly set encoding for SJIS fonts.
16714 Set default_ascent to 0 as comment indicates.
16715 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
16716 (w32_unload_font): Support BDF fonts.
16717 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
16718 Autodetect whether to use koi8-r instead of iso8859-5.
16719 Associate "ksc5601.1987" with HANGUEL_CHARSET.
16720 Associate "ksc5601.1992" with JOHAB_CHARSET.
16721 (x_to_w32_charset): Make consistent with w32_to_x_charset.
16722 (w32_to_x_font): Add resolution.
16723 (x_to_w32_font): Use font resolution to calculate height if supplied.
16724 (w32_font_match): Handle wildcards anywhere within field.
16725 (enumfont_t): Remove unused head pointer.
16726 (enum_font_cb2): Dereference elfLogFont.
16727 (w32_list_bdf_fonts): New function.
16728 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
16729 valid frame. Remove MessageBox. Support BDF fonts.
16730 (Fw32_find_bdf_fonts): New function.
16731 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
16732 Sw32_find_bdf_fonts.
16733
167341999-01-21 Andrew Innes <andrewi@gnu.org>
16735
16736 * makefile.nt (temacs): Use del to delete file, not rm.
16737
167381999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
16739
16740 * keyboard.c (read_key_sequence): Fix previous change.
16741
16742 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
16743 as the same. Treat "myname:0" as the same as those two.
16744
167451999-01-19 Jason Rumney <jasonr@altavista.net>
16746
16747 * w32fns.c (x_to_w32_charset): Add iso8859-9.
16748 (w32_to_x_charset): Fix charset mappings.
16749
16750 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
16751 (dumpglyphs): Move definitions out of block containing goto.
16752 Remove redundant code for BIG5.
16753 Use w32_codepage_for_font instead of
16754 w32_codepage_for_charset. Add cast to int where float
16755 operation is assigned to int.
16756 (Vw32_charset_to_codepage_alist): New variable.
16757 (w32_codepage_for_charset): Removed.
427ec082
SS
16758 (w32_codepage_for_font): New function, replacing
16759 w32_codepage_for_charset.
26901792
DL
16760 (syms_of_w32term): Add and initialize
16761 w32-charset-to-codepage-alist.
16762
167631999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
16764
16765 * xselect.c (x_handle_selection_clear): Don't clear the
16766 selection if Emacs still owns it through a different display.
16767
167681999-01-17 Andrew Innes <andrewi@gnu.org>
16769
16770 * w32proc.c: (w32_executable_type): Relax the check to identify
16771 cygwin-compiled applications, because the exact dll name varies
16772 with release. Now only require the name to start "cygwin".
16773
16774 * w32heap.h: (ROUND_UP):
16775 (ROUND_DOWN): New macros.
16776 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16777 (init_heap): New extern.
16778 (data_region_size):
16779 (recreate_heap):
16780 (read_in_bss):
16781 (map_in_heap):
16782 (round_to_next):
16783 (w32_fatal_reload_error):
16784 (get_section_size): Obsolete externs removed.
16785
16786 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
16787 current process.
16788 (round_to_next): Obsolete function removed.
16789 (preload_heap_section): New variable.
16790 (data_region_size): Obsolete variable removed.
16791 (allocate_heap): Modified to determine end of static heap section
16792 used during preload, and use that as initial base address for
16793 dynamic heap instead of hard-coded value.
16794 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
16795 calls to commit or decommit pages when allocating from static heap
16796 section during preload.
16797 (recreate_heap): Obsolete function removed.
16798 (init_heap): New function to initialize internal sbrk heap
16799 variables. Uses static heap section during preload, otherwise
16800 calls allocate_heap to reserve a heap region dynamically.
16801 (round_heap): Use ROUND_UP macro instead of round_to_next.
16802
16803 * unexw32.c: Major rewrite to support cleaner method of dumping; a
16804 static "bss" section is used for heap space during preload, and
16805 bss data is now written to the proper section area when dumping.
16806 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16807 (heap_index_in_executable): Obsolete variable removed.
16808 (data_section): New variable.
16809 (data_start_va): Renamed to data_start.
16810 (data_start_file): Obsolete variable removed.
16811 (bss_section):
16812 (extra_bss_size):
16813 (bss_section_static):
16814 (bss_start_static):
16815 (bss_size_static):
16816 (extra_bss_size_static):
16817 (heap_section): New variables.
16818 (_start): Remove code based on old unexec method. Call init_heap
16819 to initialize sbrk heap.
16820 (close_file_data): Update size of file when closing, so that
16821 unexec doesn't have to work out exact size in advance.
16822 (get_bss_info_from_map_file):
16823 (get_section_size): Obsolete functions removed.
16824 (rva_to_section): Fix minor bug, and add a work-around for a bug
16825 in very old linkers.
16826 (offset_to_section):
16827 (relocate_offset): New functions.
16828 (OFFSET_TO_RVA):
16829 (RVA_TO_OFFSET):
16830 (RVA_TO_SECTION_OFFSET):
16831 (PTR_TO_RVA):
16832 (PTR_TO_OFFSET):
16833 (OFFSET_TO_PTR): New macros.
16834 (get_section_info): Modify to support new unexec method;
16835 determines address ranges in process that need dumping, and COFF
16836 sections where data will be dumped. Allows for static and global
16837 bss data to be in separate ranges. No longer relies on knowledge
16838 of section names.
16839 (copy_executable_and_dump_data_section): Renamed
16840 copy_executable_and_dump_data. Completely rewritten to copy
16841 executable section by section, so that raw data areas can be
16842 expanded to hold dumped data as necessary. Allows for bss data to
16843 be in same section as initialized data. Reduces size of static
16844 heap section to that used during preload.
16845 (dump_bss_and_heap):
16846 (w32_fatal_reload_error):
16847 (read_in_bss):
16848 (map_in_heap): Obsolete functions removed.
16849 (unexec): Rounds off preload heap to nearest page rather than
16850 virtual allocation unit. Modified to match other changes.
16851
16852 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
16853 data_region_size.
16854
16855 * makefile.nt: (TEMACS_TMP): New macro.
16856 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
16857 processor to add static heap section in support of new unexec.
16858
16859 * lastfile.c: Include config.h to pick up data layout pragmas.
16860 [WINDOWSNT]: Remove explicit pragma.
16861
168621999-01-12 Kenichi Handa <handa@etl.go.jp>
16863
16864 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
16865 correctly.
16866 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
16867
168681999-01-11 Dave Love <fx@gnu.org>
16869
16870 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16871
168721999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
16873
16874 * keyboard.c (read_key_sequence): In key-translation-map and
16875 function-key-map, handle symbol with array as fn def.
16876 In function-key-map, handle symbol with keymap as fn def,
16877 and autoloaded definitions.
427ec082 16878
26901792
DL
16879 * puresize.h (BASE_PURESIZE): Increment to 500000.
16880
16881 * print.c (Qtemp_buffer_setup_hook): New variable.
16882 (syms_of_print): Init and staticpro that.
16883 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
16884
168851999-01-11 Kenichi Handa <handa@etl.go.jp>
16886
16887 * insdel.c (del_range_1): Call signal_after_change.
16888 (del_range_byte): Likewise.
16889 (del_range_both): Likewise.
16890 (del_range_2): Don't call signal_after_change.
16891
16892 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
16893 Lisp code here.
16894
168951999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
16896
16897 * eval.c (find_handler_clause): If SIG is nil (memory full error),
16898 never run the debugger, and don't bother checking the args
16899 to see whether the debugger should be run.
16900
169011999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
16902
16903 * keyboard.c (read_key_sequence):
16904 Tell get_keyelt to look handle autoloads.
16905 Handle symbols defined as keymaps, and autoloaded keymaps.
16906
169071999-01-06 Kenichi Handa <handa@etl.go.jp>
16908
16909 * search.c (search_buffer): Fix previous change.
16910
169111999-01-06 Eli Zaretskii <eliz@gnu.org>
16912
16913 * w16select.c (set_clipboard_data): Terminate the text with a null
16914 character. Don't allow to put binary data into the clipboard.
16915 Return zero in case of success, 1 or 2 otherwise.
16916 (get_clipboard_data): Only bail out if the null character is in
16917 the last 32-byte chunk of clipboard data
16918 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
16919 they save binary data, print a message in the echo area saying the
16920 text was not put into the clipboard.
16921
16922 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
16923
169241999-01-06 Andreas Schwab <schwab@gnu.org>
16925
16926 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
16927 _BSD_SOURCE, the latter is always defined.
16928
169291999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
16930
16931 * fns.c (Frequire): Don't fail to unbind bindings.
16932
169331999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
16934
16935 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
16936
16937 * charset.c (Ffind_charset_region): Fix doc typo.
16938
169391998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
16940
16941 * msdos.c (IT_write_glyphs): Convert unibyte characters to
16942 multibyte in unibyte buffers only.
16943
16944 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
16945 and pass it to Fmake_sparse_keymap.
16946
169471998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
16948
16949 * alloc.c (MMAP_MAX_AREAS): New macro.
16950 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
16951 (init_alloc_once): Use that.
16952
16953 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
16954
16955 * alloc.c (lisp_malloc, lisp_free): New functions.
16956 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
16957 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
16958 (n_interval_blocks, n_float_blocks): New variable.
16959 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
16960 (n_marker_blocks, n_string_blocks): New variable.
16961 (init_intervals, make_interval): Set a count variable.
16962 Use lisp_malloc instead of setting allocating_for_lisp.
16963 (init_float, make_float, init_cons, Fcons): Likewise.
16964 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
16965 (init_marker, allocate_misc, init_strings): Likewise.
16966 (make_uninit_multibyte_string): Likewise.
16967 (gc_sweep, compact_strings): Decrement the count variables.
16968
16969 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
16970 into the old_..._hook variables.
16971
169721998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
16973
16974 * keyboard.c: In each active map, for each menu bar item, use only
16975 the first submap.
16976 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
16977 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
16978 (syms_of_keyboard): Staticpro and init it.
16979
427ec082 16980 * xmenu.c (single_keymap_panes):
26901792
DL
16981
169821998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
16983
16984 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
16985 by complete_deferred_msg.
16986 (post_character_message): Cancel all deferred messages when
16987 quit_char is typed, in order to break out of potential deadlocks.
16988 (cancel_all_deferred_msgs): New function.
16989 (complete_deferred_msg): Don't abort if msg not found; may have
16990 been cancelled.
16991 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
16992 (Fw32_send_sys_command): Wait for system command to
16993 complete before returning.
427ec082 16994
26901792
DL
16995 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
16996 not set async_iconified flag though.
16997
16998 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
16999 (create_child): Use it.
17000 (syms_of_ntproc): Defvar it. Also fix docstrings for
17001 w32-start-process-share-console and w32-start-process-show-window.
17002
17003 * unexw32.c (_start): Force system calls accessing unmounted
17004 devices to fail without prompting.
17005
170061998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17007
17008 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17009 even when starting the dumped Emacs.
17010
17011 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17012 (Fkey_description): Handle lists like vectors.
17013
170141998-12-21 Kenichi Handa <handa@etl.go.jp>
17015
17016 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17017 because of the change of the second argument of Fread_char.
17018
17019 * charset.c (Fcharset_after): Check range. If POS is out of
17020 range, return nil.
17021
17022 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17023
17024 * lread.c (Fread_char): Change the meaning of the second argument.
17025 (Fread_event): Likewise.
17026 (Fread_char_exclusive): Likewise.
17027
17028 * print.c (printchar): Fix previous change.
17029
17030 * process.c (read_process_output): Decide the multibyteness of
17031 string given to a process filter by a coding system used for
17032 decoding the process output.
17033
170341998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17035
17036 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17037 nonascii-translation-table.
17038 * msdos.c (IT_write_glyphs): Likewise.
17039 * fns.c (concat): Likewise.
17040 * charset.c (unibyte_char_to_multibyte): Likewise.
17041 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17042
170431998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17044
17045 * doc.c (Fdocumentation): Change the doc string for prefix
17046 commands to make it a complete sentence in one line.
17047
170481998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17049
17050 * s/irix6-5.h: New file.
17051 * s/irix6-0.h (IRIX6): Define this symbol.
17052 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17053 (bcopy, bcmp, bzero): Likewise.
17054 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17055 (C_SWITCH_MACHINE): New value for irix6.5.
17056
170571998-12-15 Richard Stallman <rms@gnu.org>
17058
17059 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17060 Do free malloc'd memory even in case of failure. Use xfree, not free.
17061 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17062 (base64_decode_1): Don't fail for short lines.
17063
17064 * print.c (printchar): Outputting multibyte characters
17065 to echo area always makes it multibyte.
17066
17067 * search.c (search_buffer): Don't use Boyer-Moore
17068 to search for an invalid multibyte code.
17069 In unibyte case, no need to check whether there are translations
17070 in more than one charset; just set charset_base to 0.
17071
170721998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17073
17074 * print.c (printchar): Cancel previous change.
17075
170761998-12-15 Kenichi Handa <handa@etl.go.jp>
17077
17078 * callproc.c: Include "ccl.h".
17079 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17080 bit in argument_coding.mode to tell encoding procedure to flush
17081 data. While encoding arguments, if argument_coding uses CCL
17082 program, initialize it again after encoding.
17083 (Fcall_process_region): Doc-string modified. Handle the case that
17084 NARGS is 3.
17085
17086 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17087 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17088 Set `ic' to the head of this command.
17089 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17090 code for an invalid code.
17091 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17092 based on VEC.
17093
17094 * charset.c (Qunknown): New variable.
17095 (init_charset_once): Intern and staticpro Qunknown. Initialize
17096 all elements of Vcharset_symbol_table to Qunknown.
17097 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17098 unibyte characters only. For an invalid composition sequence, set
17099 CHARSETS[1] to 1.
17100 (Ffind_charset_region): Call find_charset_in_str with an
17101 appropriate MULTIBYTE arg. If undefined charsets are found,
17102 include `unknown' is the return value.
17103 (Ffind_charset_string): Likewise.
17104 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17105 (str_cmpchar_id): Max composite character code should be less than
17106 GENERIC_COMPOSITION_CHAR.
17107
17108 * charset.h (find_charset_in_str): Update declaration.
17109
17110 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17111 final_char is invalid.
17112 (decode_coding): If coding->type is coding_type_ccl, call
17113 ccl_coding_driver even if SRC_BYTES is zero.
17114 (code_convert_region): Update `inserted' correctly after calling
17115 coding->post_read_conversion. Even after the code converter
17116 consumed all source text, call it once more if it is
17117 coding_type_ccl to flush out data.
17118
17119 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17120 CODING is handled by CCL program, call code_convert_region.
17121
17122 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17123 correctly.
17124 (string_byte_to_char): Likesize.
17125
17126 * print.c (printchar): When outputting a multibyte character to
17127 echo area, always set message_enable_multibyte to 1.
17128
17129 * process.c (read_process_output): If NBYTES is zero and
17130 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17131 and try decoding again.
17132 (Fprocess_send_eof): If the coding system of PROCESS
17133 requires flushing, call send_process with null-string at first.
17134
17135 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17136 with MULTIBYTE arg 0.
17137 * w32select.c (Fw32_set_clipboard_data): Likewise.
17138 * xselect.c (lisp_data_to_selection_data): Likewise.
17139
171401998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17141
17142 * search.c (Freplace_match): Set OPOINT clearly for the case
17143 where point is in the middle of the text to be replaced.
17144
17145 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17146 if compute_motion fails to advance at all, don't back it up.
17147
171481998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17149
17150 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17151
427ec082 17152 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17153
171541998-12-09 Richard Stallman <rms@gnu.org>
17155
17156 * insdel.c (insert_from_buffer_1): Properly count the size
17157 of output from conversion to multibyte even when input
17158 is split across the gap.
17159
171601998-12-09 Karl Heuer <kwzh@gnu.org>
17161
17162 * keyboard.c: Doc fixes.
17163
17164 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17165
171661998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17167
17168 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17169 characters, only convert CRLF to LF.
17170
171711998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17172
17173 * makefile.nt: Do string comparision of _NMAKE_VER.
17174
171751998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17176
17177 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17178 coding.h, and disptab.h
17179
17180 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17181 (syms_of_msdos): DEFVAR_LISP it.
17182 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17183 (internal_terminal_init): Set up insert_glyphs_hook and
17184 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17185 (unibyte_display_via_language_environment): New variable.
17186 (syms_of_msdos): Devfar it.
17187 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17188 Encode the character codes of the glyphs according to the
17189 terminal_coding in effect.
17190
171911998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17192
17193 * fns.c (Fstring_as_unibyte): Doc fix.
17194
171951998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17196
17197 * charset.h: Declare char_valid_p.
17198
171991998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17200
17201 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17202
17203 * msdos.c (init_environment): Record the time we started up.
17204 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17205 fast after startup (aka crash).
17206
172071998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17208
17209 * w32.c (check_windows_init_file): Use decode_env_path when
17210 using EMACSLOADPATH.
17211
172121998-12-02 Jason Rumney <jasonr@altavista.net>
17213
17214 * w32term.c (dumpglyphs): Use unsigned char arrays.
17215 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17216 for various languages.
17217 Compensate for fonts that have underhangs (e.g., Thai).
17218
17219 * w32term.h (FONT_MAX_WIDTH): New macro.
17220
172211998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17222
17223 * keyboard.c (Qlanguage_change): New variable.
17224 (syms_of_keyboard): Init it.
17225 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17226 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17227 keys; add name for Escape key; extend to 256 elements.
17228 (parse_modifiers): Make non-static.
17229
17230 * keyboard.h (parse_modifiers): Declare prototype.
17231
17232 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17233
17234 * w32fns.c (w32_last_error): Fix cut+paste error.
17235 (Vw32_phantom_key_code): New variable.
17236 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17237 (syms_of_w32fns): Init and register them.
17238 (reset_modifiers): Use a more precise test for whether Emacs has
17239 keyboard focus. Synchronize state of all keys that can be used as
17240 modifiers, to overcome problems arising from hot-keys.
17241 (w32_key_to_modifier): Be careful not to call intern() to avoid
17242 requiring thread synchronization.
17243 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17244 (w32_wnd_proc): Ensure lock key indicator lights are updated
17245 promptly on Windows 9x, by passing key events on to the system.
17246 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17247 responding to Windows key events when not wanted.
17248 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17249 Ctrl-NumLock into pause by the system.
17250 (w32_wnd_proc): Don't translate key combinations containing any
17251 modifiers other than shift (and capslock).
17252 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17253 can't determine the key states until we have keyboard focus).
17254 (Fw32_toggle_lock_key): New function.
17255 (syms_of_w32fns): Defsubr it.
17256
17257 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17258 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17259 (w32_console_toggle_lock_key): New function.
17260
17261 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17262
172631998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17264
17265 * search.c (Freplace_match): Set OPOINT clearly for the case
17266 where point is in the middle of the text to be replaced.
17267
17268 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17269 if compute_motion fails to advance at all, don't back it up.
17270
172711998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17272
17273 * xfns.c (Qouter_window_id): New variable.
17274 (syms_of_xfns): Initialize it.
17275 (x_report_frame_params): Set up outer-window-id parameter.
17276
17277 * keymap.c (Fsingle_key_description): Fix previous change.
17278
172791998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17280
17281 * lisp.h (Frequire): Update declaration.
17282
172831998-11-26 Kenichi Handa <handa@etl.go.jp>
17284
17285 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17286 if the charset is ascii.
17287 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17288
17289 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17290 make an appropriate one byte string.
17291 (char_bytes): Handle the case that C is a single byte char or has
17292 modifier bits.
17293
17294 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17295
17296 * cmds.c (internal_self_insert): If C has modifier bits, insert
17297 appropriate one byte char.
17298
172991998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17300
17301 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17302 Clear text properties in the new string.
17303
173041998-11-24 Felix Lee <flee@cygnus.com>
17305
17306 * process.c (read_process_output): Call signal_after_change.
17307
173081998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17309
17310 * buffer.c (syms_of_buffer): Doc fix.
17311
17312 * keyboard.c (syms_of_keyboard): Doc fix.
17313
173141998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17315
17316 * frame.c (Fset_mouse_position): Doc fix.
17317
173181998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17319
17320 * keymap.c (Fmake_keymap): Doc fix.
17321
173221998-11-17 Kenichi Handa <handa@etl.go.jp>
17323
17324 * category.c (word_boundary_p): If C1 or C2 are composite
17325 characters, test their first components.
17326
173271998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17328
17329 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17330 don't do save-excursion, just restore selected window.
17331
17332 * window.c (window_loop): For UNSHOW_BUFFER,
17333 always do consider minibuffer windows.
427ec082 17334
26901792
DL
173351998-11-16 Kenichi Handa <handa@etl.go.jp>
17336
17337 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17338
17339 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17340
17341 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17342
17343 * s/bsdos4.h: New file.
17344
173451998-11-16 Kenichi Handa <handa@etl.go.jp>
17346
17347 * Makefile.in (abbrev.o): Depend on charset.h
17348 (bytecode.o): Depend on charset.h.
17349
17350 * bytecode.c: Include charset.h.
17351
17352 * abbrev.c: Include charset.h.
17353
17354 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17355 the first component.
17356
173571998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17358
17359 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17360
173611998-11-11 Richard Stallman <rms@gnu.org>
17362
17363 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17364
17365 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17366
17367 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17368 (INTERRUPT_INPUT): #define commented out.
17369
17370 * m/aviion-intel.h: New file.
17371
173721998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17373
17374 * fns.c (MAX_ALLOCA): New macro.
17375 (Fbase64_encode_region, Fbase64_encode_string,
17376 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17377 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17378
173791998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17380
17381 * insdel.c (byte_combining_error): Error message improved.
17382
17383 * charset.c (char_valid_p): Handle a composite character correctly.
17384
173851998-11-11 Kenichi Handa <handa@etl.go.jp>
17386
17387 * charset.c (str_cmpchar_id): Check the byte sequence for
17388 composition more rigidly.
17389 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17390 contains an invalid multibyte sequence.
17391
17392 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17393
173941998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17395
17396 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17397 (WM_EMACS_SETKEYBOARDLAYOUT):
17398 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17399 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17400 (LEFT_WIN_PRESSED):
17401 (RIGHT_WIN_PRESSED):
26901792
DL
17402 (APPS_PRESSED): New console keyboard modifier flags.
17403
17404 * w32term.c (convert_to_key_event): Removed.
17405 (is_dead_key): Copied to w32fns.c.
17406 (w32_read_socket): Generate language_change_event. Modify to work
17407 with keyboard handling changes in w32_wnd_proc.
17408
17409 * w32proc.c (sys_kill): Set extended key flag when faking
17410 Ctrl-Break keystrokes.
17411 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17412 arbitrary locale property using a numerical index.
17413 (Vw32_valid_codepages): New variable.
427ec082
SS
17414 (enum_codepage_fn):
17415 (Fw32_get_valid_codepages):
17416 (Fw32_get_console_codepage):
17417 (Fw32_set_console_codepage):
17418 (Fw32_get_console_output_codepage):
17419 (Fw32_set_console_output_codepage):
17420 (Fw32_get_codepage_charset):
17421 (Fw32_get_valid_keyboard_layouts):
17422 (Fw32_get_keyboard_layout):
26901792
DL
17423 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17424 handling functions.
17425 (syms_of_ntproc): Register them.
17426
17427 * w32inevt.c: Include w32term.h and w32heap.h.
17428 (map_keypad_keys):
17429 (Vw32_enable_caps_lock):
17430 (Vw32_enable_num_lock):
17431 (Vw32_pass_lwindow_to_system):
17432 (Vw32_pass_rwindow_to_system):
17433 (Vw32_lwindow_modifier):
17434 (Vw32_rwindow_modifier):
17435 (Vw32_apps_modifier):
17436 (Vw32_scroll_lock_modifier):
17437 (w32_key_to_modifier): Add externs.
17438 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17439 Scroll Lock as potential modifiers; exclude numpad keys from
17440 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
17441 code.
17442 (is_dead_key): Copy from w32fns.c.
17443 (w32_kbd_patch_key): Comment attempt to improve handling of
17444 dead-keys, and system bug relating to same on Windows NT. Work
17445 around the bug by calling ToUnicode and then converting to the
17446 correct codepage.
17447 (map_virt_key): Removed obsolete variable.
17448 (lispy_function_keys): Add extern.
17449 (key_event): Major rework of keyboard input handling: optionally
17450 recognize Windows keys and Apps key as modifiers; optionally treat
17451 NumLock, CapsLock and ScrollLock as function keys; let system
17452 translate keystrokes to characters to avoid system bugs relating
17453 to dead-key handling; preserve shift distinction for control
17454 characters. Remove some obsolete code.
17455
17456 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
17457 and w32heap.h.
17458
17459 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
17460 (Vw32_pass_lwindow_to_system):
17461 (Vw32_pass_rwindow_to_system):
17462 (Vw32_lwindow_modifier):
17463 (Vw32_rwindow_modifier):
17464 (Vw32_apps_modifier):
17465 (Vw32_enable_num_lock):
17466 (Vw32_enable_caps_lock):
17467 (Vw32_scroll_lock_modifier): New variables.
17468 (modifier_set): Return toggle state for Scroll Lock.
17469 (w32_key_to_modifier): New function. Returns chosen modifier bit
17470 for given key.
17471 (w32_get_modifiers): Returns modifier flags for
17472 non-keyboard input events.
17473 (construct_console_modifiers): Renamed from construct_modifiers;
17474 recognize Windows and Apps keys as modifiers.
17475 (w32_get_key_modifiers): New function. Returns modifier flags for
17476 keyboard input events.
17477 (map_keypad_keys): Make non-static. Use second arg as extended
17478 flag.
17479 (w32_grabbed_keys): New variable.
17480 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
17481 (register_hot_keys):
17482 (unregister_hot_keys):
17483 (lookup_vk_code):
17484 (w32_parse_hot_key):
17485 (Fw32_register_hot_key):
17486 (Fw32_unregister_hot_key):
17487 (Fw32_registered_hot_keys):
17488 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
17489 (post_character_message): New function.
17490 (w32_msg_pump): Handle new messages for using hotkeys and changing
17491 keyboard layout/language.
17492 (w32_wnd_proc): Major rework of keyboard input handling:
17493 optionally recognize Windows keys and Apps key as modifiers;
17494 optionally treat NumLock, CapsLock and ScrollLock as function
17495 keys; let system translate keystrokes to characters to avoid
17496 system bugs relating to dead-key handling; preserve shift
17497 distinction for control characters; forward keyboard
17498 layout/language changes to lisp; detect and convert hot-key events
17499 to normal keystrokes.
17500 (syms_of_w32fns): Register new functions and variables.
17501 (w32_last_error): New function for use in debugging.
17502
175031998-11-10 Kenichi Handa <handa@etl.go.jp>
17504
17505 * category.h (CATEGORY_SET): Adjusted for the change of
17506 cmpchar_component.
17507 (CATEGORY_SET): Likewise.
17508
17509 * charset.c (cmpchar_component): New arg NOERROR. Check
17510 composition char ID more strictly.
17511 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
17512 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
17513 return 255.
17514 (Fcompose_string): Signal error if STR contains a rule-based
17515 composition character.
17516
17517 * charset.h (cmpchar_component): Proto-type adjusted.
17518
175191998-11-09 Kenichi Handa <handa@etl.go.jp>
17520
17521 * charset.c (string_to_non_ascii_char): Return correct length for
17522 a charset of dimension 2 and composition character.
17523
175241998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17525
17526 * keymap.c (Fsingle_key_description): Handle generic characters.
17527
17528 * process.c (Fprocess_status): Doc fix.
17529
175301998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
17531
17532 * charset.c (init_charset_once): Fix previous change.
17533
175341998-11-06 Kenichi Handa <handa@etl.go.jp>
17535
17536 * charset.c (string_to_non_ascii_char): Fix previous change.
17537 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
17538
17539 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
17540 character correctly.
17541 (STRING_CHAR): Handle an invalid charater correctly.
17542
175431998-11-05 Kenichi Handa <handa@etl.go.jp>
17544
17545 * charset.c (string_to_non_ascii_char): Fix previous change.
17546
17547 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
17548
17549 * editfns.c (Fstring_to_char): Don't return a multibyte character
17550 if STRING is a unibyte string.
17551
17552 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
17553 character.
17554
17555 * xdisp.c (display_text_line): Check validity of a multibyte character.
17556 (display_string): Likewise. Handle an invalid character correctly.
17557
175581998-11-05 Karl Heuer <kwzh@gnu.org>
17559
17560 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
17561 If nothing to do, return immediately.
17562 (syms_of_insdel): Initialize combine_after_change_buffer.
17563
175641998-11-05 Richard Stallman <rms@gnu.org>
17565
17566 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
17567
175681998-11-04 Geoff Voelker <voelker@cs.washington.edu>
17569
17570 * w32term.c (w32_enable_unicode_output): Rename from
17571 w32_no_unicode_output.
17572 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
17573 and new semantics.
17574
175751998-11-04 Jason Rumney <jasonr@altavista.net>
17576
17577 * w32fns.c (w32_list_fonts): Report an error if a frame has not
17578 been created yet.
17579
17580 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
17581
175821998-11-04 Kenichi Handa <handa@etl.go.jp>
17583
17584 * charset.c (string_to_non_ascii_char): Change the check for the
17585 varidity of multibyte form.
17586 (update_charset_table): Check validity of BYTES. Don't set
17587 bytes_by_char_head here.
17588 (init_charset_once): Set bytes_by_char_head completely.
17589
17590 * frame.c (do_switch_frame): Cancel previous change.
17591
17592 * print.c (print_string): Check validity of a character.
17593 (print): Likewise.
17594
17595 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
17596
17597 * m/ews4800.h, s/ux4800.h: New files.
17598
175991998-11-03 Theodore Jump <tjump@tertius.com>
17600
17601 * makefile.nt: Compile multiple source files when possible.
17602
17603 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 17604
26901792
DL
176051998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
17606
17607 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
17608 so don't rely on it succeeding.
17609
17610 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
17611 LOGFONT struct if x font doesn't specify the charset.
17612 (x_to_w32_charset): Change >= to == when testing results of
17613 stricmp.
17614
176151998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
17616
17617 * fns.c (Frequire): New arg NOERROR.
17618
176191998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
17620
17621 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
17622
176231998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
17624
17625 * xfaces.c (Qmouse_face): Replace definition with extern decl.
17626 (syms_of_xfaces): Initialization deleted.
17627
17628 * textprop.c (Qmouse_face): Variable definition moved here.
17629 (syms_of_textprop): Initialize it.
17630
17631 * data.c (set_internal): For built-in maybe-local vars,
17632 when BINDFLAG is set, do not mark them as local.
17633
176341998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
17635
17636 * insdel.c (replace_range): Fix previous change.
17637
176381998-10-31 Kenichi Handa <handa@etl.go.jp>
17639
17640 * editfns.c (Fsubst_char_in_region): Fix previous change.
17641 (Ftranslate_region): Fix previous change.
17642
17643 * fns.c (Fbase64_decode_region): Fix previous change.
17644
17645 * frame.c (do_switch_frame): Update minibuf_window if necessary.
17646
17647 * insdel.c (byte_combining_error): New function.
17648 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
17649 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
17650 CHECK_BYTE_COMBINING_FOR_INSERT.
17651 (insert_from_buffer_1): Likewise.
17652 (adjust_after_replace): Check the posibility of inhibitted byte
17653 combining correctly.
17654 (replace_range): Before signaling an error for inhibitted byte
17655 combining, recover the buffer in a safe state.
17656 (del_range_2): Check the posibility of inhibitted byte combining
17657 correctly.
17658
176591998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
17660
17661 * xselect.c (Vselection_coding_system): Doc fix.
17662
17663 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
17664 when we have both char and byte position. Fix type clashes.
17665
17666 * eval.c (Fsignal): Use a separate format string when passing
17667 error message string to fatal, in case it contains %'s.
17668
17669 * editfns.c (Fchar_after): Fix type clashes.
17670
17671 * charset.c (Fchar_bytes): Doc fix.
17672 (char_bytes): Fix returned value to match returned type.
17673 (syms_of_charset): Fix type clash in initialisation of
17674 Vauto_fill_chars.
17675
176761998-10-29 Geoff Voelker <voelker@cs.washington.edu>
17677
17678 * w32console.c (initialize_w32_display): Use buffer coords
17679 instead of buffer size (which may be larger than the window).
17680
17681 * fileio.c (init_fileio_once): New function.
17682
17683 * emacs.c (main): Invoke init_fileio_once.
17684
176851998-10-28 Paul Eggert <eggert@twinsun.com>
17686
17687 * xterm.c (XTread_socket): Check the returned value of
17688 XmbLookupString more carefully.
17689
176901998-10-28 Kenichi Handa <handa@etl.go.jp>
17691
17692 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
17693 (DECODE_CHARACTER_DIMENSION1): Likewise.
17694 (DECODE_CHARACTER_DIMENSION2): Likewise.
17695 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
17696
17697 * editfns.c (Fsubst_char_in_region): Fix previous change.
17698 (Ftranslate_region): Fix previous change.
17699
17700 * insdel.c (check_markers): Check if markers are at character boundry.
17701 (adjust_markers_for_insert): Fix previous change.
17702 (count_combining_before): Don't limit the check at BEGV.
17703 (count_combining_after): Don't limit the check at ZV.
17704 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
17705 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
17706 (insert_from_string_1): Likewise.
17707 (insert_from_buffer_1): Likewise.
17708 (adjust_after_replace): Inhibit bytes combined across region
17709 boundary. Update end_unchanged correctly.
17710 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
17711 end_unchanged correctly.
17712 (del_range_2): Inhibit bytes combined across region boundary.
17713 Update end_unchanged correctly.
17714
177151998-10-27 Geoff Voelker <voelker@cs.washington.edu>
17716
17717 * w32.c (check_windows_init_file): Also look in load path specified
17718 in environment.
17719
17720 * w32console.c (Fset_message_beep): Recognize 'silent.
17721 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 17722
26901792
DL
17723 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
17724
17725 * w32select.c (Vnext_selection_coding_system): New variable.
17726 (syms_of_w32select): DEFVAR_LISP it.
17727 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
17728 non-nil. Always convert multibyte strings.
17729 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
17730 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 17731
26901792
DL
177321998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
17733
17734 * fns.c (Fbase64_decode_string): Doc fix.
17735 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
17736 Likewise.
17737
177381998-10-27 Dave Love <fx@gnu.org>
17739
17740 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
17741 newline in doc string.
17742
177431998-10-27 Kenichi Handa <handa@etl.go.jp>
17744
17745 * editfns.c (Fsubst_char_in_region): Correctly handle the case
17746 that byte combining before happens.
17747 (Ftranslate_region): Likewise.
17748
17749 * insdel.c (adjust_after_replace): Correctly handle the case that
17750 both byte combining before and byte combining after happen.
17751 (replace_range): Likewise.
17752
177531998-10-26 Kenichi Handa <handa@etl.go.jp>
17754
17755 * category.c (syms_of_category): Doc-string modified.
17756
17757 * coding.c (code_convert_region): Kill the work buffer created by
17758 pre-write-conversion.
17759
177601998-10-25 Jason Rumney <jasonr@altavista.net>
17761
17762 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
17763
177641998-10-23 Kenichi Handa <handa@etl.go.jp>
17765
17766 * coding.c (code_convert_region): While preserving the orignal
17767 point, pay attention to the byte combining problem.
17768
17769 * fns.c (Fbase64_decode_region): Pay attention to the byte
17770 combining problem.
17771
17772 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
17773 combined_before_bytes and combined_after_bytes into account.
17774 (count_combining_after): Handle the case that LENGTH is zero.
17775 (adjust_after_replace): Record deletion at correct buffer
17776 position. Handle the case that LEN is zero.
17777 (replace_range): Record deletion at correct buffer position.
17778 (del_range_2): Call adjust_makers_for_replace to adjust makers for
17779 combined bytes.
17780
177811998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
17782
17783 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 17784
26901792
DL
177851998-10-21 Kenichi Handa <handa@etl.go.jp>
17786
17787 * coding.c (setup_coding_system): Fix setting up
17788 coding->spec.ccl.valid_codes for CCL based coding system.
17789 (code_convert_region): Set point to FROM before inserting the
17790 result of pre-write-funciton. Preserve original point.
17791 (code_convert_string): If coding->type is coding_type_ccl, do
17792 conversion even if the length of conversion region is zero.
17793
17794 * fontset.c: Include frame.h before fontset.h.
427ec082 17795 (list_fonts_func): Fix prototype.
26901792
DL
17796
17797 * frame.c: Include frame.h before fontset.h.
17798
17799 * xterm.c: Likewise.
17800
178011998-10-21 Jason Rumney <jasonr@altavista.net>
17802
17803 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
17804 general macros. Don't call x_list_font directory, instead call a
17805 function set in list_fonts_func.
17806
17807 * fontset.h (list_fonts_func): Fix prototype.
17808
178091998-10-20 Jason Rumney <jasonr@altavista.net>
17810
17811 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
17812
17813 * w32faces.c: Update comments referring to obsolete structs.
17814 (allocate_face, copy_face, face_eql, load_font,
17815 Fpixmap_spec_p, free_frame_faces, new_computed_face,
17816 frame_update_line_height, merge_faces, compute_base_face,
17817 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
17818
17819 * w32fns.c: (Vx_pixel_size_width): New global variable.
17820 (unibyte_display_via_language_environment): New global variable.
17821 (x_set_font): Add support for setting fontsets.
17822 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
17823 font names to match xlfd-tight-regexp.
17824 (w32_load_font): Rewrite based on x_load_font.
17825 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
17826 `iso8859-1' rather than `ansi'.
17827 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
17828 end. Move charset into `charset registry' field.
17829 (enum_font_cb2): Check charsets match. Include width in font list.
17830 (w32_list_fonts): Rewrite based on x_list_fonts.
17831 Moved from w32term.c to have access to enumfont_t struct.
17832 (Fx_list_fonts): w32 specific version eliminated. Include
17833 `x-list-fonts.c'.
17834 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
17835 functions for fontset support - adapted from x_ equivalents.
17836 (syms_of_w32fns): New lisp variables initialised. Function
17837 pointers for fontset.c set up.
17838
427ec082 17839 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
17840 Add ENCODE_BIG5 macro from coding.c.
17841 (w32_no_unicode_output): New variable.
17842 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
17843 functions.
17844 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
17845 (dumpglyphs): Rewrite based on xterm.c equivalent.
17846 (x_new_font): Use functionality provided in fontset.c.
17847 (x_new_fontset): New function based on the one in xterm.c.
17848 (syms_of_w32term): Add w32-no-unicode-output flag.
17849
427ec082 17850 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
17851 (Vx_pixel_size_width_font_regexp,
17852 unibyte_display_via_language_environment): Declare variables.
427ec082 17853 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
17854 Declare functions.
17855 (w32_output): New fields font_baseline and fontset.
17856 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
17857
17858 * w32xfns.c: Include charset.h and fontset.h.
17859
178601998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17861
17862 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
17863
178641998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
17865
17866 * msdos.c (mouse_init): Reset the button press/release info of the
17867 mouse driver.
17868 (mouse_preempted): New variable.
17869 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
17870 (XMenuActivate): Preempt the mouse during menu-handling loop.
17871 Release the current time slice while idling in the menu-handling
17872 loop. Leave the loop only if the user pressed, then released the
17873 same button. Discard all mouse events that are pending in the
17874 event queue before exiting.
17875
178761998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17877
17878 * editfns.c (Fformat): Increase buffer size for floating format.
17879
178801998-10-17 Kenichi Handa <handa@etl.go.jp>
17881
17882 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
17883 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
17884 Declare auto-fill-chars as a Lisp variable and initialize it.
17885
17886 * charset.h (Vauto_fill_chars): Extern it.
17887
17888 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
17889
178901998-10-16 Kenichi Handa <handa@etl.go.jp>
17891
17892 * casefiddle.c (casify_object): Use make_string instead of
17893 make_specified_string to cope with byte-combining situation.
17894
17895 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
17896 1 when encountered with a code of the range 0x80..0x9F.
17897
178981998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
17899
17900 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
17901 trying $TMP and $TEMP, since the former is always set in msdos.c.
17902 (Fcall_process_region) [DOS_NT]: When looking for a place to put
17903 the temporary files, check $TMPDIR as well.
17904
179051998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
17906
427ec082 17907 * process.c (exec_sentinel, read_process_output):
26901792
DL
17908 Restore waiting_for_user_input_p after running Lisp code.
17909
17910 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
17911 (command_loop): Likewise.
17912
179131998-10-14 Kenichi HANDA <handa@etl.go.jp>
17914
17915 * data.c (Faset): Fix previous change.
17916
17917 * fns.c (Ffillarray): Fix previous change.
17918
17919 * insdel.c (adjust_markers_for_combining): This function deleted.
17920 (adjust_markers_for_replace): Correctly adjust marker positions.
17921 Don't record these adjustment because they were recorded already.
17922 (combine_bytes): Don't adjust markers here.
17923
179241998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
17925
17926 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
17927
179281998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
17929
17930 * keyboard.c (Fclear_this_command_keys): New function.
17931 (syms_of_keyboard): defsubr it.
17932
17933 * macros.c (Fexecute_kbd_macro): Set real_this_command.
17934
179351998-10-12 Kenichi Handa <handa@etl.go.jp>
17936
17937 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
17938
17939 * charset.c (Fstring): Call make_string instead of
17940 make_string_from_bytes.
17941 (Ffind_charset_region): Include `composition' in the returned list
17942 if the region contains any composite characters.
17943 (Ffind_charset_string): Include `composition' in the returned list
17944 if the string contains any composite characters.
17945 (find_charset_in_str): Handle CMPCHARP arg correctly.
17946
17947 * coding.c (shrink_decoding_region): If a charset other than ascii
17948 is initially designated to G0, don't shrink the region.
17949 (shrink_encoding_region): Likewise.
17950
17951 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
17952 byte-combining situation.
17953
17954 * fns.c (clear_string_char_byte_cache): New function.
17955 (Ffillarray): Handle multibyte string correctly.
17956
17957 * lisp.h (clear_string_char_byte_cache): Extern it.
17958
17959 * xselect.c (lisp_data_to_selection_data): Call
17960 find_charset_in_str with CMPCHARP arg 0.
17961 * w16select.c (Fw16_set_clipboard_data): Likewise.
17962 * w32select.c (Fw32_set_clipboard_data): Likewise.
17963
179641998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17965
17966 * keyboard.c (parse_menu_item): For top level of menu bar,
17967 accept ordinary commands, and treat them just like a keymap.
17968
179691998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
17970
17971 * xdisp.c (redisplay_window): Clear w->window_end_valid
17972 before running the window-scroll-functions hook, if appropriate.
17973
179741998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
17975
17976 * data.c (Fstring_to_number): Don't recognize floating point
17977 if base is not 10.
17978
17979 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
17980 (check_all_windows): New function for debugging tests.
17981 (syms_of_window): Initialize it.
17982
17983 * window.c (Qwindow_configuration_p): New variable.
17984 (Fwindow_configuration_frame): New function.
17985 (syms_of_window): defsubr it.
17986 (Fset_window_configuration): Return t if frame is live.
17987 Use Qwindow_configuration_p.
17988
17989 * xfns.c (check_x_display_info): Don't use selected_frame
17990 if it is dead.
17991
179921998-10-09 Geoff Voelker <voelker@cs.washington.edu>
17993
17994 * w32fns.c (x_create_bitmap_from_file): Skip special files.
17995
179961998-10-08 Kenichi Handa <handa@etl.go.jp>
17997
17998 * buffer.h (inhibit_modification_hooks): Extern it.
17999
18000 * buffer.c (inhibit_modification_hooks): New variable.
18001 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
18002
18003 * charset.c (invalid_character): Prepend `0' to octal
18004 representation. Give error sufficient args.
18005
18006 * coding.c (code_convert_region): Set inhibit_modification_hooks
18007 to 1 before calling Fset_text_properties.
18008
18009 * insdel.c (signal_before_change): If inhibit_modification_hooks
18010 is nonzero, do nothing.
18011 (signal_after_change): Likewise.
18012
180131998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18014
18015 * process.c: Doc fixes.
18016
180171998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18018
18019 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18020
180211998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18022
18023 * w32.c (init_ntproc): Check for Windows init file.
18024 (term_ntproc): Do not check for it here.
18025
180261998-09-28 Kenichi Handa <handa@etl.go.jp>
18027
18028 * coding.c (check_composing_code): Fix previous change. Now it
18029 alwasy returns 0 or -1.
18030 (decode_coding_iso2022): Adjusted for the above change.
18031 (encode_coding_iso2022): When encoding the last block, flush out
18032 tailing garbage bytes.
18033 (setup_coding_system): Delete unnecessary code.
18034 (shrink_decoding_region): Check translation table. If ASCII
18035 should be translated, give up shrinking.
18036 (shrink_encoding_region): Likewise.
18037 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18038 (SHRINK_CONVERSION_REGION): New macro.
18039 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18040 properties here.
18041 (code_convert_region): In the case of encoding, always calulate
18042 correct character number.
18043 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18044 (code_convert_region1): Don't delete text properties here.
18045
18046 * insdel.c (adjust_after_replace): Don't delete text properties here.
18047
18048 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18049
180501998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18051
18052 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18053
180541998-09-26 Kenichi Handa <handa@etl.go.jp>
18055
18056 * coding.h (struct coding_system): New member composed_chars.
18057
18058 * coding.c (check_composing_code): If the current composing
18059 sequence doesn't end properly, return -1.
18060 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18061 (DECODE_CHARACTER_DIMENSION1): Likewise.
18062 (decode_coding_iso2022): Check validity of a composing sequence.
18063 (code_convert_string): If the length of text to be converted is
18064 shrunk to zero, don't perform code conversion.
18065 (shrink_decoding_region): Fix previous change.
18066
18067 * editfns.c (Fformat): Check format control characters.
18068
180691998-09-25 Kenichi Handa <handa@etl.go.jp>
18070
18071 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18072 single CR code correctly.
18073 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18074 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18075
180761998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18077
18078 * w32fns.c (w32_color_map_lookup): New function.
18079 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18080
180811998-09-22 Kenichi Handa <handa@etl.go.jp>
18082
18083 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18084
18085 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18086 strings unibyte.
18087 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18088
180891998-09-22 Kenichi Handa <handa@etl.go.jp>
18090
18091 * callint.c (Fcall_interactively): Don't use input method when
18092 reading a character in the case of `c' code letter.
18093
180941998-09-21 Dave Love <fx@gnu.org>
18095
18096 * editfns.c (Fsave_restriction): Doc fix.
18097
180981998-09-21 Richard Stallman <rms@gnu.org>
18099
18100 * lread.c (build_load_history): Do add to Vload_history
18101 even when dumping Emacs.
18102
181031998-09-18 Kenichi Handa <handa@etl.go.jp>
18104
18105 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18106 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18107 cause error if the program is going to output some bytes. When
18108 outputing a string to notify an error, check the case that
18109 DST_BYTES is zero.
18110
427ec082 18111 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18112
18113 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18114 user or the CCL program executed an invalid command, return
18115 CODING_FINISH_INTERRUPT.
18116 (code_convert_region): Pay attention to the converters return
18117 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18118
181191998-09-16 Kenichi Handa <handa@etl.go.jp>
18120
18121 * coding.c (code_convert_region): Update beg_unchanged and
18122 end_unchanged after we delete the source text.
18123
18124 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18125 position if it is FROM.
18126 (adjust_markers_for_combining): New function.
18127 (combine_bytes): Call adjust_markers_for_combining instead of
18128 adjust_markers_for_replace.
18129 (adjust_after_replace): Record deletion of combining after bytes
18130 with the correct position.
18131 (replace_range): Likewise. Record the actual deletion after
18132 recoding deletions of combining bytes.
18133
18134 * xdisp.c (message_log_check_duplicate): Count byte length of the
18135 latest message correctly.
18136
181371998-09-12 Richard Stallman <rms@gnu.org>
18138
18139 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18140 instead of SET_PT_BOTH.
18141 (try_window_id, display_text_line): Likewise.
18142
181431998-09-12 Karl Heuer <kwzh@gnu.org>
18144
18145 * data.c (Fmake_local_variable): Doc fix.
18146
181471998-09-10 Dave Love <fx@gnu.org>
18148
18149 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18150
181511998-09-10 Richard Stallman <rms@gnu.org>
18152
18153 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18154 (bcopy, bcmp, bzero): Add #undef.
18155
18156 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18157 first exit if selected frame is dead (no live frames remain).
18158 (read_key_sequence): Likewise.
18159
181601998-09-10 Karl Heuer <kwzh@gnu.org>
18161
18162 * emacs.c (main): Mention --display and --eval in help.
18163
181641998-09-07 Paul Eggert <eggert@twinsun.com>
18165
18166 * editfns.c (emacs_memftime): New function.
18167 (Fformat_time_string): Use it to handle null bytes in formats
18168 correctly.
18169
181701998-09-08 Kenichi Handa <handa@etl.go.jp>
18171
18172 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18173 (Ffind_charset_string): For unibyte string, return (ascii).
18174
18175 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18176 arg MARKERS 1.
18177
18178 * insdel.c (adjust_after_replace): Don't add combining bytes to
18179 the args given to adjust_point. Handle correctly the case that
18180 there are both before and after combining bytes.
18181 (replace_range): Likewise.
18182
181831998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18184
18185 * fns.c (base64_decode_1, base64_encode_1): New functions.
18186 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18187 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18188
181891998-09-07 Karl Heuer <kwzh@gnu.org>
18190
18191 * eval.c (error): After enlarging buffer, write to it, not to buf.
18192
18193 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18194
181951998-09-07 Kenichi Handa <handa@etl.go.jp>
18196
18197 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18198 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18199 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18200
18201 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18202 chars in produced byte sequence.
18203 (Ffind_operation_coding_system): Doc-string fixed.
18204
18205 * insdel.c (count_combining_after): Check also preceding bytes at
18206 POS if all characters in STRING are not character head.
18207
182081998-09-06 Paul Eggert <eggert@twinsun.com>
18209
18210 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18211 Don't assume that localtime and gmtime return non-NULL.
18212
182131998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18214
18215 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18216 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18217 New functions.
18218
182191998-09-06 Richard Stallman <rms@gnu.org>
18220
18221 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18222
18223 * lread.c (Fload): Handle case where openp finds a magic file
18224 but it has no `load' handler or that handler calls `load'.
18225 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18226
182271998-09-04 Dave Love <fx@gnu.org>
18228
18229 * buffer.c (enable-multibyte-characters): Doc fix.
18230
182311998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18232
18233 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18234
182351998-09-01 Kenichi Handa <handa@etl.go.jp>
18236
18237 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18238 address in buffer from byte-position.
18239
182401998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18241
18242 * w16select.c (Vnext_selection_coding_system): New variable.
18243 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18244 Vselection_coding_system.
18245 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18246 Vnext_selection_coding_system if non-nil.
18247 (Fw16_get_clipboard_data): Always convert a string that includes
18248 non-ASCII characters. Use Vnext_selection_coding_system if
18249 non-nil.
18250
182511998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18252
18253 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18254 mouse capture.
18255
182561998-08-31 Kenichi Handa <handa@etl.go.jp>
18257
18258 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18259 x_list_font returns.
18260
182611998-08-31 Paul Eggert <eggert@twinsun.com>
18262
18263 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18264 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18265
182661998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18267
18268 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18269 cursor, save and restore previous cursor position in the
18270 minibuffer.
18271
182721998-08-31 Kenichi Handa <handa@etl.go.jp>
18273
18274 * charset.c (unibyte_char_to_multibyte):
18275 Vnonacii_translation_table will convert a 7-bit charcater.
18276 (multibyte_char_to_unibyte): Handle the case that
18277 Vnonacii_translation_table converts a multibyte charcater to a
18278 unibyte charcter of less than 128.
18279 (init_charset_once): Initialize nonascii_insert_offset and
18280 Vnonacii_translation_table.
18281
18282 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18283 processing if CODING requires flushing.
18284 (encode_coding): Likewise.
18285 (code_convert_region): Likewise.
18286 (code_convert_string): Likewise.
18287
18288 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18289 to convert a character less than 160 to multibyte.
18290 * insdel.c (copy_text): Likewise.
18291 (count_size_as_multibyte): Likewise.
18292 * xterm.c (dumpglyphs): Likewise.
18293
182941998-08-29 Paul Eggert <eggert@twinsun.com>
18295
18296 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18297 using negation, not subtraction; this makes a difference with
18298 IEEE floating point arithmetic (and also if integer arithmetic
18299 is ones' complement or signed-magnitude!).
18300
183011998-08-29 Karl Heuer <kwzh@gnu.org>
18302
18303 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18304
183051998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18306
18307 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18308
183091998-08-28 Paul Eggert <eggert@twinsun.com>
18310
18311 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18312 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18313 path only if we're not building with Motif.
18314
183151998-08-28 Kenichi Handa <handa@etl.go.jp>
18316
18317 * insdel.c (adjust_after_replace): Fix the code to record undo
18318 information for the case that `before combining' happens. Remove
18319 text properties which are added to the new text by
18320 offset_intervals.
18321
18322 * coding.c (code_convert_region1): Remove all text properties of
18323 the region.
18324
183251998-08-28 Kenichi Handa <handa@etl.go.jp>
18326
18327 * charset.h (CHAR_BYTES): New macro.
18328
18329 * charset.c (Fchar_bytes): Now always return 1.
18330 (char_bytes): New function.
18331
18332 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18333 range, return nil.
18334 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18335 nil.
18336
18337 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18338 * fns.c (concat): Likewise.
18339 * insdel.c (count_size_as_multibyte): Likewise.
18340 * xdisp.c (message_dolog): Likewise.
18341
183421998-08-27 Kenichi Handa <handa@etl.go.jp>
18343
18344 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18345 correctly. They are for SS2 and SS3 respectively.
18346 (ccl_coding_driver): Fix previous change.
18347
183481998-08-26 Paul Eggert <eggert@twinsun.com>
18349
18350 * xterm.c (fixup_locale): New function. For now, it resets
18351 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18352 resets LC_MESSAGES to "C".
18353 (x_term_init): Use it to fix up the locale after setlocale
18354 (LC_ALL, "").
18355
183561998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18357
18358 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18359 case it was prototyped the old way.
18360
183611998-08-25 Kenichi Handa <handa@etl.go.jp>
18362
18363 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18364 returns a null string. This happens when dxpc 3.7 is being used.
18365
183661998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18367
18368 * keyboard.c (input-method-previous-message): Doc fix.
18369
18370 * coding.c (file-coding-system-alist,
18371 select-safe-coding-system-function): Doc fix.
18372
183731998-08-23 Kenichi HANDA <handa@etl.go.jp>
18374
18375 * coding.c (detect_coding_iso2022): Don't check the byte length of
18376 succeeding codes (0xa0..0xFF) if the codes follows single shift
18377 code (SS2 or SS3).
18378
183791998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18380
18381 * coding.c (detect_coding_system): If detect_eol_type returns
18382 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18383 correctly.
18384
18385See ChangeLog.7 for earlier changes.