(Fccl_execute): Typo fixed.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
f92de4a6
KH
12000-07-07 Kenichi Handa <handa@etl.go.jp>
2
3 * ccl.c (Fccl_execute): Typo fixed.
4
dd8888a1
GM
52000-07-06 Gerd Moellmann <gerd@gnu.org>
6
e5c81191
GM
7 * window.c (window_loop): Add missing gcpro1 local variable.
8
dd8888a1
GM
9 * window.c (Fwindow_list): Reverse list at the end.
10 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
11 means allow windows on OWINDOW's frame, only.
12 (window_loop): Simplified; use Fwindow_list.
13
14 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
15
485266d0
GM
162000-07-05 Gerd Moellmann <gerd@gnu.org>
17
18 * xterm.c (XTread_socket): Increment handling_signal at the start,
19 decrement it at the end.
20
21 * eval.c (handling_signal): New variable.
22 (Fsignal): Abort if handling_signal is non-zero.
23
24 * lisp.h (handling_signal): External declaration.
25
26 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
27
80fcd514
KR
282000-07-05 Ken Raeburn <raeburn@gnu.org>
29
30 Sound support for NetBSD through "Linux emulation" support:
31 * config.in (HAVE_SOUNDCARD_H): Undef.
32 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
33 * Makefile.in (LIBSOUND): New variable.
34 (LIBES): Include it.
35 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
36 <soundcard.h>.
37 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
38 elsewhere.
39 (vox_open): Use DEFAULT_SOUND_DEVICE.
40 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
41
d5c5cddd
GM
422000-07-05 Gerd Moellmann <gerd@gnu.org>
43
44 * print.c (print_error_message): If Vsignaling_function is set,
45 show it in *Messages*.
46
47 * lisp.h (Vsignaling_function): External declaration.
48
49 * eval.c (Vsignaling_function): New variable.
50 (Fsignal): Compute it.
51 (syms_of_eval): Staticpro it.
52
65171e3a
DL
532000-07-05 Dave Love <fx@gnu.org>
54
55 * syswait.h: Use the autoconf recommended approach. Old code
56 #if'd out in case we need to revert.
57
58 * config.in (HAVE_SYS_WAIT_H): Added.
59
e2c46326
AI
602000-07-05 Andrew Innes <andrewi@gnu.org>
61
62 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
63 when non-NULL instead of __morecore, to take account of buffer
64 memory. This also solves a problem with spurious memory warnings
65 on Windows.
66
67 * ralloc.c: Make real_morecore non-static.
68
69 * eval.c (internal_condition_case): Comment out abort if
70 interrupt_input_blocked is not zero.
71
72 * makefile.nt: Add support for `bootstrap' and related targets.
73 Include minimal debug info in emacs.exe in release build.
74 Remove all dependencies on lisp.h, and fixup some others.
75
76 * w32.c (init_environment): Install code from 20.7 for providing
77 default values for environment variables, based on the
78 executable's own location.
79 (map_w32_filename): Handle filenames that are longer than
80 MAX_PATH.
81 (sys_socket): Install socket inheritance bug fix from 20.7.
82
83 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
84 here via blockinput.h).
85
a027a91b
SM
862000-07-05 Stefan Monnier <monnier@cs.yale.edu>
87
e4b31601
SM
88 * w32menu.c (w32_menu_display_help):
89 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
90
91 * keyboard.h (show_help_echo): Declare.
92
93 * keyboard.c (show_help_echo): New function, extracted from read_char.
94 Feval its `msg' argument if it's a cons cell.
95 (read_char): Use it.
96
97 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
98 (note_tool_bar_highlight, XTread_socket):
99 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
100 (dos_rawgetc):
101 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
102 (note_tool_bar_highlight, w32_read_socket):
103 Do not gratuitously ignore non-string `help-echo' properties.
104
88d75730
GM
1052000-07-05 Gerd Moellmann <gerd@gnu.org>
106
969f7e79
GM
107 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
108
71201b00
GM
109 * window.c (delete_all_subwindows): Reset Vwindow_list.
110
88d75730
GM
111 * xterm.c (x_append_glyph, x_append_composite_glyph)
112 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
113 changes in struct glyph starting 1999-12-27. Some bit-fields of
114 struct glyph were not set, which made glyphs unequal when compared
115 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
116 effects were the result. This also depended on the contents of
117 memory returned by xmalloc. If flickering happens again, activate
118 the code in clear_glyph_row that's in #if 0. If the flickering is
119 gone with that, chances are that it is caused by something
120 similar.
121
122 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
123
124 * dispextern.h: Add some comments.
125
126 * window.c (add_window_to_list): Add parameter LIST.
127 (window_list): Order list so that, for each frame, windows are
128 in canonical order, and so that frames appear in the list in
129 the order given by Vframe_list.
130 (next_window): Reverse the handling of NEXT_P.
131
53654733
GM
1322000-07-04 Gerd Moellmann <gerd@gnu.org>
133
87efd256
GM
134 * window.c (Vwindow_list): New variable.
135 (make_window, delete_window): Set Vwindow_list to nil.
136 (check_window_containing): New function.
137 (window_from_coordinates): Rewritten.
138 (add_window_to_list, window_list, candidate_window_p)
139 (decode_next_window_args, next_window): New functions.
140 (Fnext_window, Fprevious_window): Rewritten in terms of
141 next_window.
142 (Fwindow_list): New function.
143 (Fother_window): Cleaned up.
144 (foreach_window): Add a longer "variable argument list". Let
145 callback function return 0 to indicate that cycling over windows
146 should stop.
147 (foreach_window_1): Likewise.
148 (freeze_window_start): Return int.
149 (init_window): New function.
150 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
151
152 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
153 input_event with bzero.
154 (main): Call init_window.
155
53654733
GM
156 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
157 a menu filter.
158
4a8c194f
KH
1592000-07-04 Kenichi Handa <handa@etl.go.jp>
160
161 * composite.h (make_composition_value_copy): Extern it.
162
163 * composite.c (make_composition_value_copy): New function.
164
165 * editfns.c (Fformat): While copying text properties, make each
166 composition property value a copy.
167
168 * fns.c (concat): While copying text properties, make each
169 composition property value a copy.
170
831a6cb0
GM
1712000-07-03 Gerd Moellmann <gerd@gnu.org>
172
2f516940
GM
173 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
174
aee625fa
GM
175 * fns.c (sweep_weak_table): Mark only objects that are not
176 marked already.
177
831a6cb0
GM
178 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
179 include those frames as candidates which have their focus
180 redirected to the minibuffer frame.
181
d9c4f922
SM
1822000-07-03 Stefan Monnier <monnier@cs.yale.edu>
183
184 * fns.c (Fputhash): Return `value' rather than nil.
185
3780bc22
GM
1862000-06-30 Gerd Moellmann <gerd@gnu.org>
187
97d176db
GM
188 * frame.c (next_frame): Don't check focus redirection in case
189 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
190 unless their focus is redirected, which contradicts the
191 specification of next-frame, and leads to infinite loops in
192 certain situations when cycling through windows with next-window.
193
dca9961d
KH
1942000-06-30 Kenichi Handa <handa@etl.go.jp>
195
196 * coding.c (code_convert_region): Even if the length of text is
197 zero, try to convert it if coding->type is coding_type_ccl.
198 (decode_coding_string, encode_coding_string): Likewise.
199
d5483ab1
GM
2002000-06-28 Gerd Moellmann <gerd@gnu.org>
201
af5c25e1 202 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 203 the display if windows_or_buffers_changed.
af5c25e1
GM
204
205 * dispnew.c (struct row_entry): New structure.
206 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
207 (row_table_size, old_lines, new_lines, old_lines_size)
208 (new_lines_size, run_pool, runs_size, runs): New variables.
209 (add_row_entry): New function.
210 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 211 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
212 holding them in local variables. Use a larger hash table whose
213 size depends on glyph matrix sizes. Don't use bzero to clear the
214 hash table; instead, clear used slots only.
215
216 * fns.c (next_almost_prime): Make it externally visible.
217
218 * lisp.h (next_almost_prime): Add prototype.
219
d5483ab1
GM
220 * s/isc4-0.h (sigunblock): Define.
221
222 * s/sco5.h (sigunblock): Define.
223
93e40f40
DL
2242000-06-27 Dave Love <fx@gnu.org>
225
226 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
227 (moved to osf5-0.h).
228 [!NOT_C_CODE]: Protect string.h stuff.
229
230 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
231 (sys_siglist, NSIG): Definitions moved here from osf1.h.
232
3c4b7685
GM
2332000-06-27 Gerd Moellmann <gerd@gnu.org>
234
97d176db 235 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
236 below the last line from the needed window height.
237
32cad0aa
SM
2382000-06-26 Stefan Monnier <monnier@cs.yale.edu>
239
240 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
241 (Fwidget_get): Use it.
242 (syms_of_fns): Defsubr it.
243
2c69ced2
GM
2442000-06-26 Gerd Moellmann <gerd@gnu.org>
245
1d36487c
GM
246 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
247 display info for XIM.
248 (xim_open_dpy): Likewise.
249 (xim_close_dpy): Don't free the display info's XIM.
250
251 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
252
253 * config.in (USE_XIM): New define.
254
3fc720e4
GM
255 * keymap.c (get_keyelt): For menu-items containing a `:filter
256 FILTER', apply FILTER to the menu-item's definition to get the
257 real definition to use.
258
259 * lisp.h (QCfilter): External declaration.
260
2c69ced2
GM
261 * xfns.c (Fimage_size): New function.
262 (syms_of_xfns): Defsubr it.
263
f978b2a2
AS
2642000-06-26 Andreas Schwab <schwab@suse.de>
265
266 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
267 Fstring_as_unibyte.
268
94cc7892
DL
2692000-06-25 Dave Love <fx@gnu.org>
270
271 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
272 tgetnum.
273
274 * Makefile.in (blockinput.h): Depend on atimer.h.
275 (atimer.h): Depend on systime.h.
276
277 * blockinput.h: Protect against multiple inclusion. Include
278 atimer.h.
279
280 * atimer.h: Protect against multiple inclusion. Include
281 systime.h.
282
283 * lisp.h (swap_in_global_binding): Declare.
284
b8c24556
KR
2852000-06-24 Ken Raeburn <raeburn@gnu.org>
286
287 * process.c (Fopen_network_stream): Turn off atimers for duration
288 of call to connect. (Patch from Gerd.)
289
8cf8560b
DL
2902000-06-23 Dave Love <fx@gnu.org>
291
511c7541
DL
292 * ralloc.c: Maybe include unistd.h
293
8cf8560b
DL
294 * emacs.c (setgrp): Undefine before defining.
295 (malloc_warning, set_time_zone_rule, index): Prototype.
296
297 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
298 HAVE_STRUCT_TIMEZONE.
299
300 * s/osf1.h: Move string.h hack here from alpha.h and make it
301 conditional.
302 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
303 _XOPEN_SOURCE.
304 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
305 (SOCKLEN_TYPE): Don't define.
306
307 * m/alpha.h: Remove string.h hack.
308
309 * s/osf5-0.h: New file.
310
311 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
312 include time.h, done by systime.h.
313 [__FreeBSD__]: Remove redundant includes.
314
3fc720e4 315 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
316 (delete_temp_file): Return Qnil to avoid warning.
317
318 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
319
320 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
321 HAVE_X_WINDOWS.
322
323 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
324
325 * composite.h (compose_text): Declare.
326
327 * xterm.c: Don't include sys/types.h unconditionally. Don't
328 protect its inclusion with !USG (following xmenu.c).
329
ea055732
GM
3302000-06-23 Gerd Moellmann <gerd@gnu.org>
331
332 * xfns.c (x_create_tip_frame): Initialize frame's colors like
333 in x_create_frame.
334
74b01b80
EZ
3352000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
336
337 * coding.c (decode_eol_post_ccl): Special handling for undecided
338 and inconsistent EOL types.
339
64f3a166
GM
3402000-06-22 Gerd Moellmann <gerd@gnu.org>
341
16cf31f7
GM
342 * xrdb.c (x_load_resources): Add default resource for scroll bar's
343 trough color and main window's background color.
344
345 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
346 differently.
347
348 * xterm.h (Xt_app_con): External declaration.
349
350 * widget.c (EmacsFrameRealize): Fix typo.
351
486a103d
GM
352 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
353
64f3a166
GM
354 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
355 (handle_invisible_prop): Record the start of invisible text in
356 it->add_overlay_start.
357 (struct overlay_entry): Add member `overlay'.
358 (handle_overlay_change): Simplify.
359 (next_overlay_string): After having processed overlay strings at the
360 end of the buffer, record that fact in
361 it->overlay_strings_at_end_processed_p.
362 (compare_overlay_entries): If before- and after-strings come
363 from the same overlay, let before-strings come first.
364 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
365 (load_overlay_strings): Take it->add_overlay_start into account
366 when adding overlay strings.
367
368 * dispextern.h (struct it): Add member add_overlay_start.
369
bb746ea6
DL
3702000-06-22 Dave Love <fx@gnu.org>
371
372 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
373
374 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
375
a8f573f3
KH
3762000-06-22 Kenichi Handa <handa@etl.go.jp>
377
378 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
379 is greater than 0.
380
9f2bbc92
DL
3812000-06-21 Dave Love <fx@gnu.org>
382
383 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
384
3ee5041c
SM
3852000-06-21 Stefan Monnier <monnier@cs.yale.edu>
386
387 * syntax.c (back_comment): Simplify string-parity counting (with
388 the added benefit of handling multiple string-styles as long as
389 they are not intertwined).
390 Jump to the slow code as soon as a comment starter is found in
391 a "string_lossage" position. Fixes the case: " /* " /* " */.
392
4c343001
DL
3932000-06-21 Dave Love <fx@gnu.org>
394
395 * Makefile.in: Use GETLOADAVG_LIBS.
396
397 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
398 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
399
e6365855
SM
4002000-06-20 Stefan Monnier <monnier@cs.yale.edu>
401
402 * syntax.c (describe_syntax): Recognize the `n'estable bit.
403 (Fforward_comment, scan_lists):
404 Check the comstyle of single-char comment-starters.
405 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
406 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
407 Check the comstyle of single-char comment-starters.
408 Clarify control-flow around the Scomment case.
e6365855 409
5700d2cc
DL
4102000-06-20 Dave Love <fx@gnu.org>
411
d355bd8a
SM
412 * fns.c (make_hash_table, maybe_resize_hash_table):
413 Cast arg of next_almost_prime.
5700d2cc
DL
414
415 * tparam.c [emacs]: Include lisp.h.
416
417 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
418 and unistd.h.
419
4a27bdfb
GM
4202000-06-20 Gerd Moellmann <gerd@gnu.org>
421
a61d762c
GM
422 * keyboard.c (adjust_point_for_property): Check if display
423 property should be treated as intangible by looking at its
424 value.
425
426 * xdisp.c (single_display_prop_intangible_p)
427 (display_prop_intangible_p): New functions.
428
429 * dispextern.h (display_prop_intangible_p): Add prototype.
430
431 * xdisp.c (dump_glyph_row): Show type of glyph->object.
432
4a27bdfb
GM
433 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
434 argument to sigprocmask.
435
436 * s/sco5.h (sigblock): Redefined to pass a pointer as second
437 argument to sigprocmask.
438
439 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
440 sigprocmask_set, and pass a pointer to it to sigprocmask.
441
442 * sysdep.c (sigprocmask_set): New variable.
443
444 * fileio.c (make_temp_name): Don't use `%s' in string passed to
445 report_file_error.
446
427ec082
SS
4472000-06-20 Sam Steingold <sds@gnu.org>
448
449 * xrdb.c: Don't declare xmalloc, xrealloc.
450
8972fe79 4512000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
452
453 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
454 (re_comp): Cast gettext return value to avoid complaints when
455 !HAVE_LIBINTL.
456
074b6efe
DL
4572000-06-20 Dave Love <fx@gnu.org>
458
f85c008a
DL
459 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
460 HAVE_GETTIMEOFDAY.
461
5700d2cc 462 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 463
d355bd8a 464 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
465
466 * m/alpha.h: Don't declare xmalloc, xrealloc.
467
0af4f205
DL
468 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
469
470 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
471
472 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
473
474 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
475 HAVE_GETWD.
476
074b6efe
DL
477 * keyboard.h (poll_for_input_1): Declare.
478
479 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
480
481 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
482
483 * doprnt.c: Don't declare xmalloc, xrealloc.
484
485 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
486 (getenv, ctime, getwd): Removed.
487 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
488
489 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
490 x_set_tool_bar_lines.
491
492 * config.in: Add HAVE_GETWD. Move some definitions above
493 machine/system includes.
494
68a5e97b
KH
4952000-06-20 Kenichi Handa <handa@etl.go.jp>
496
95417e1e
KH
497 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
498
68a5e97b
KH
499 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
500 contain information about ENCODING.
501
502 * fontset.c (FONTSET_ASCII): Use the first element of char table
503 for an ASCII font, not defalt slot.
504 (fontset_ref_via_base): If FONTSET doesn't contain information for
505 C, try the default fontset.
506 (make_fontset): Don't copy the default fontset.
507 (fontset_font_pattern): Likewise.
508 (accumulate_font_info): If ELT is nil, use the corresponding
509 element in the default fontset.
510
3b4fa1b2
DL
5112000-06-19 Dave Love <fx@gnu.org>
512
943e731c
DL
513 * syntax.c (Fparse_partial_sexp): Doc fix.
514
515 * regex.h: Test PROTOTYPES as well as __STDC__.
516
3b4fa1b2
DL
517 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
518 errno, strerror. Put text after #endif in comment.
519
520 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
521 pcc).
522
523 * xterm.c (x_frame_of_widget): Likewise.
524
cdf0357b
GM
5252000-06-19 Gerd Moellmann <gerd@gnu.org>
526
527 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
528 to Vfundamental_mode_abbrev_table.
529
530 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
531 bogus objects are marked. This slows down GC by ~80 percent, but
532 it might be worth trying when debugging GC-related problems.
533 This feature requires conservative stack marking to be enabled.
534
535 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
536 returns XLookupChars, reset `modifiers' to zero.
537
998e9f8c
DL
5382000-06-19 Dave Love <fx@gnu.org>
539
540 * mktime.c: Unprotoized.
541
d1504184
GM
5422000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
543
544 * data.c (set_internal): If variable is frame-local,
545 store the new value immediately into the frame parameter alist.
546
140c4ac6
KR
5472000-06-19 Ken Raeburn <raeburn@gnu.org>
548
14358466
KR
549 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
550 in the custom handler pointer.
551
140c4ac6
KR
552 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
553 value, or checks for CHAR_META can fail when Lisp_Object is a
554 union type.
555 * keymap.c (get_keyelt): Likewise.
556
10d7bf84
KH
5572000-06-19 Kenichi Handa <handa@etl.go.jp>
558
559 * ccl.h (struct ccl_program): New member eol_type.
560 (struct ccl_spec): New member cr_carryover.
561
562 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
563 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
564
565 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
566 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
567 (decode_eol_post_ccl): New function.
568 (decode_coding): Don't detect EOL format here for CCL based coding
569 systems.
570 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
571 decode_eol_post_ccl after running the CCL program.
572 (code_convert_region): Don't detect EOL format here for CCL based
573 coding systems.
574 (decode_coding_string): Likewise.
575
52e386c2
KR
5762000-06-18 Ken Raeburn <raeburn@gnu.org>
577
578 * charset.c (update_charset_table): Use XINT on "iso_final_char"
579 when treating it as an integer.
580
581 * coding.h (encode_coding_string): Declare.
582
583 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
584 it as an integer.
585
586 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
587 "xkeymap" to avoid shadowing the "enum map_type" value that needs
588 to be passed to get_local_map.
589
590 * sound.c (Fplay_sound): Don't call make_number on
591 Frun_hook_with_args count argument.
592
593 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
594 for lisp objects in X event structure data field, when lisp
595 objects are represented with unions.
596 (x_scroll_bar_to_input_event): Ditto.
597
b357b9d4
KR
5982000-06-16 Ken Raeburn <raeburn@gnu.org>
599
600 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
601 termination of string. Fix sense of test whether
602 Vline_number_display_limit is an integer.
b357b9d4 603
a871441d
GM
6042000-06-16 Gerd Moellmann <gerd@gnu.org>
605
a9021acd
GM
606 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
607 only if HAVE_X_WINDOWS.
608
6344985d
GM
609 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
610 of titles.
611
427ec082 612 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
613 out of bounds.
614
228b083e
EZ
6152000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
616
617 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
618 of its headers.
619
c25b53a2
KH
6202000-06-15 Kenichi Handa <handa@etl.go.jp>
621
622 * coding.c (decode_coding_emacs_mule): Always set src_base at the
623 start of the while loop.
624
a6981b11
GM
6252000-06-15 Gerd Moellmann <gerd@gnu.org>
626
e9924e52
GM
627 * atimer.c (alarm_signal_handler): Add forward declaration.
628
a6981b11
GM
629 * data.c (set_internal): Remove debug code.
630
25fa6deb
GM
6312000-06-14 Gerd Moellmann <gerd@gnu.org>
632
dce6b995
GM
633 * Makefile.in (bootstrap-temacs): Add `-I../src'.
634
9f817ea4
GM
635 * unexec.c (toplevel) [COFF]: Include coff.h.
636
637 * s/lynxos.h: New file.
638
639 * keymap.c (Fsingle_key_description): Enclose function key and
640 event symbol names in angle brackets.
641
8a4e3c0c
GM
642 * xdisp.c (setup_echo_area_for_printing): Call
643 message_log_maybe_newline if message_buf_print is not set.
644
645 * print.c (printchar, strout): Don't check message_buf_print
427ec082 646 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
647 function does something useful even when message_buf_print is
648 already set.
649
25fa6deb
GM
650 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
651 variables.
652 (ensure_echo_area_buffers): Initialize echo buffer's
653 truncate lines setting to nil.
654 (with_echo_area_buffer): Don't set the echo buffer's truncate
655 lines setting here.
8a4e3c0c 656 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
657 of message_truncate_lines.
658 (resize_mini_window): Handle case that lines are truncated.
659 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
660 message-truncate-lines.
661
662 * keyboard.c (read_char): Bind message-truncate-lines to t
663 while displaying a help-echo.
664
665 * lisp.h (Qmessage_truncate_lines): External declaration.
666
163dcff3
GM
6672000-06-13 Gerd Moellmann <gerd@gnu.org>
668
1681ead6
GM
669 * xdisp.c (Vline_number_display_limit): Renamed from
670 line_number_display_limit.
671 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
672 Extend documentation string. Initialize
673 Vline_number_display_limit to nil meaning no limit.
674 (decode_mode_spec): Use Vline_number_display_limit with its new
675 meaning.
676
163dcff3
GM
677 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
678
6792000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
680
681 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 682
163dcff3
GM
683 * xfns.c (x_set_frame_parameters): Comment fix.
684
685 * frame.c (store_frame_param): Call swap_in_global_binding if the
686 variable's current binding was chosen based on this frame.
687
688 * data.c (swap_in_global_binding): New function.
689
a704139d
EZ
6902000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
691
692 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
693 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
694
9b6610db
EZ
6952000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
696
697 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
698
c68833d2
JR
6992000-06-12 Jason Rumney <jasonr@gnu.org>
700
701 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
702
703 * w32.h (EMACS_W32_H): Renamed from _NT_H_
704
705 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
706
707 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
708
ed1056b3
GM
7092000-06-12 Gerd Moellmann <gerd@gnu.org>
710
711 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
712 (syms_of_xfaces): Defsubr Sdump_colors.
713 (x_free_colors): Don't treat b&w specially on default visual.
714 (x_free_dpy_colors): New function.
715 (free_face_colors): Don't check visual class; it's done
716 in x_free_colors.
717
718 * xterm.c (x_frame_of_widget): New function.
719 (x_alloc_nearest_color_for_widget): Use it.
720 (x_copy_dpy_color): New function.
721 (x_destroy_window): Free various colors.
722
5050a2ef
KH
7232000-06-12 Kenichi Handa <handa@etl.go.jp>
724
725 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
726
727 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
728
729 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
730
731 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
732
733 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
734
fb1b041d
DL
7352000-06-11 Dave Love <fx@gnu.org>
736
737 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
738
ff96b5f4
EZ
7392000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
740
741 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
742
db8eeecd
GM
7432000-06-11 Gerd Moellmann <gerd@gnu.org>
744
ed1056b3 745 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
746 to `XEvent *'.
747
49b71c5f
KH
7482000-06-10 Kenichi Handa <handa@etl.go.jp>
749
c479bd55
KH
750 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
751 (regex_compile): Fix the code for handling the case of single byte
752 char and multibyte char being mixed in a range within [...].
753
ff6a65c2
KH
754 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
755 and dst_multibyte members of coding.
756
49b71c5f
KH
757 * charset.c (update_charset_table): Update the table
758 bytes_by_char_head.
759 (init_charset_once): Initialize elements of bytes_by_char_head to
760 1 except for leading codes for private charases.
761
762 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
763 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
764 sequence.
765
9e80b57d
KR
7662000-06-09 Ken Raeburn <raeburn@gnu.org>
767
768 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
769 access the data it doesn't point to.
770
f83fe4b4
GM
7712000-06-08 Gerd Moellmann <gerd@gnu.org>
772
773 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 774 will be translated to a switch-frame event when reading the
f83fe4b4
GM
775 event queue. This is necessary because Emacs otherwise won't
776 perform a switch-frame to a new frame until some other event, for
777 example a keystroke event, forces it to do so. This has various
778 effects, one visible being that the cursor of a frame created with
779 C-x 5 2 or switched to with a window manager key binding like
780 A-TAB stays hollow because selected_window isn't on the newly
781 focused frame until the switch-frame is performed.
782
783 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
784 generating a switch-frame event if necessary.
785
786 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
787
788 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
789 it's an integer.
790
0890801b
KH
7912000-06-08 Kenichi Handa <handa@etl.go.jp>
792
793 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
794 charset.
795
173cbca8
GM
7962000-06-07 Gerd Moellmann <gerd@gnu.org>
797
3091c2a6
GM
798 * window.c (displayed_window_lines): Take empty lines at
799 the bottom of a window into account.
427ec082 800
f38952fe
GM
801 * window.c (displayed_window_lines): New function.
802 (Fmove_to_window_line): Use displayed_window_lines to determine
803 the number of lines to move, instead of using the window's height.
804
805 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
806 to stop reading, even if the form read sets point to a different
807 value when evaluated.
808
427ec082 809 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
810 put the cursor.
811
6ba6c818
KH
8122000-06-07 Kenichi Handa <handa@etl.go.jp>
813
814 * fileio.c (e_write): Free composition data if stored in
815 coding->cmp_data.
816
5f1aea9a
GM
8172000-06-06 Gerd Moellmann <gerd@gnu.org>
818
666852af
GM
819 * xdisp.c (display_line): Set row's and iterator's
820 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
821 Set cursor even if row ends in the middle of a character.
822 (dump_glyph_row): Print values of new flags.
823 (redisplay_window) <cursor movement in unchanged window>: When
824 point has been moved forward, and PT is at the end of the cursor
825 row, don't place the cursor in the next row if the cursor row ends
826 in the middle of a character or at ZV.
827
828 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
829 (struct glyph_row): Add starts_in_middle_of_char_p and
830 ends_in_middle_of_char_p.
831 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
832 ends_in_middle_of_char_p flag.
833 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
834
d13f3e2e
GM
835 * term.c (append_glyph): Revert change of 2000-06-06.
836
837 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
838 padding glyph not fitting on line as whole character not
839 fitting on line.
840
5f1aea9a
GM
841 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
842 this isn't true for images with `:ascent 100'.
843
10cda9b0
KH
8442000-06-06 Kenichi Handa <handa@etl.go.jp>
845
ed00559d
KH
846 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
847 as modified if it is originally unmodified.
848
10cda9b0
KH
849 * term.c (encode_terminal_code): Change the way to check if
850 terminal coding does any conversion.
851 (append_glyph): Set glyph->pixel_width correctly.
852
853 * xdisp.c (display_line): While checking line continuation, pay
854 attention to a padding glyph.
855
1969fae2
GM
8562000-06-05 Gerd Moellmann <gerd@gnu.org>
857
858 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
859
162ccef4
DL
8602000-06-05 Dave Love <fx@gnu.org>
861
f19f32dd
DL
862 * xdisp.c: Include fontset.h.
863
864 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
865
866 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
867
868 * dispnew.c: Conditionally include term.h.
869
870 * coding.h: Declare code_convert_string_norecord.
871
872 * frame.h (struct frame): Use volatile unconditionally.
873
874 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
875
876 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
877
878 * systime.h: Protect against multiple inclusion.
879 (timezone) [USG5_4]: Define as time_t.
880
881 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
882 (Foptimize_char_table, make_temp_name): Declare.
883
884 * Makefile.in (xdisp.o): Depend on fontset.h.
885
886 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
887
888 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
889 (Foptimize_char_table, make_temp_name): Declare.
890
427ec082 891 * s/irix4-0.h:
162ccef4
DL
892 * s/irix5-0.h:
893 * s/netbsd.h: Don't define autoconfiscated MATHERR.
894
2082fe81
DL
8952000-06-02 Dave Love <fx@gnu.org>
896
897 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
898
dcf671d2
GM
8992000-06-02 Gerd Moellmann <gerd@gnu.org>
900
901 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 902 result face, set flags in that face indicating that colors may not
dcf671d2
GM
903 be freed.
904
905 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
906 glyph, use the ASCII NUL character to determine the face.
907
d42122a3
DL
9082000-06-02 Dave Love <fx@gnu.org>
909
910 * sysdep.c: Conditionally include stdlib.h, unistd.h.
911 (VFORK_RETURN_TYPE): Remove.
427ec082 912
d42122a3
DL
913 * config.in: Add NO_MATHERR.
914
dd432f16
DL
9152000-06-01 Dave Love <fx@gnu.org>
916
90aa4ea8
DL
917 * cmds.c (internal_self_insert): Don't check
918 Vbefore_change_function, Vafter_change_function.
919
920 * insdel.c (signal_before_change, signal_after_change): Likewise.
921
922 * buffer.c (Vbefore_change_function, Vafter_change_function):
923 Variables and their initializations deleted.
924
2330c9d4
DL
925 * callint.c (Fcall_interactively): Doc fix.
926
dd432f16
DL
927 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
928
bf9e8804
DL
9292000-05-31 Dave Love <fx@gnu.org>
930
931 * textprop.c: Revert last change -- duplicated.
932
3694b4ab
GM
9332000-05-31 Gerd Moellmann <gerd@gnu.org>
934
935 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
936 in #if 0.
937
938 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
939
f14156cd
JR
9402000-05-31 Jason Rumney <jasonr@gnu.org>
941
8119aab8
JR
942 * search.c (Fre_search_forward, Fre_search_backward)
943 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
944
f14156cd
JR
945 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
946
4aab9be3
JR
9472000-05-30 Jason Rumney <jasonr@gnu.org>
948
949 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
950 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
951
952 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
953 member.
954
955 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
956 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
957 expand a nil default_filename.
958
959 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
960 pointer to glyph_to_pixel_coords, not a frame.
961
962 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
963 coding.h to dependencies.
964
965 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
966
967 * w32console.c (glyph_to_pixel_coords): Change first parameter to
968 window pointer to be consistent with w32term.c and xterm.c.
969
970 * w32fns.c: Format and doc changes to bring closer to xfns.c.
971 (VIETNAMESE_CHARSET): Define if not defined in system headers.
972 (Qline_spacing, Qcenter): New variables.
973 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
974 (x_set_line_spacing): New function.
975 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
976 macros.
977 (x_specified_cursor_type): New function.
978 (x_set_cursor_type): Use it.
979 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
980 and icon strings.
981 (validate_x_resource_name, x_get_resource_string): Measure lengths
982 of external strings in bytes.
983 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
984 GetTextExtentPoint32 with NULL title.
985 (Fx_create_frame): Initialize Qline_spacing.
986 (w32_load_system_font): Initialize font->double_byte_p.
987 (x_to_w32_charset): Use Vw32_charset_info_alist.
988 (Image, busy cursor, tooltip functions): Merged changes from
989 xfns.c. Not yet functional on Windows.
990
991 * w32gui.h (W32FontStruct): Add double_byte_p member.
992
993 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
994 (emacs_button_translation): Use it.
995 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
996 in `mask' to be set.
997
998 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
999 menu strings.
1000
1001 * w32term.c: Format and doc changes to bring closer to xterm.c.
1002 (w32_char_font_type): New enum.
1003 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
1004 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
1005 (w32_encode_char): New function.
1006 (x_encode_char): Removed.
1007 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
1008 x_encode_char and w32_font_is_double_byte.
1009 (x_produce_image_glyph): Use image_ascent.
1010 (x_produce_glyphs): Use new version of w32_per_char_metric and
1011 handle NULL return value. Allow extra line spacing.
1012 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
1013 (w32_get_glyph_overhangs): Remove unicode_p param. Use
1014 w32_font_type member of glyph instead.
1015 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1016 (fast_find_position): Make sure not to consider rows not visible
1017 in the window.
1018 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1019 w32_menu_display_help with input blocked, as it can abort.
1020 (x_display_and_set_cursor): Choose cursor depending
1021 on buffer-local value of cursor_type.
1022 (x_draw_bar_cursor): Add parameter WIDTH.
1023
1024 * w32term.h (CP_DEFAULT): Define.
1025 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1026
10fc3187
GM
10272000-05-30 Gerd Moellmann <gerd@gnu.org>
1028
1029 * search.c (Fre_search_forward, Fre_search_backward)
1030 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1031
d0555360
KH
10322000-05-30 Kenichi Handa <handa@etl.go.jp>
1033
1034 * coding.c (detect_coding_iso2022): Fix code for checking
1035 CODING_CATEGORY_MASK_ISO_8_2.
1036
f1ad044f
SM
10372000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1038
1039 * regex.c (PREFETCH_NOLIMIT): New function.
1040 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1041
84ec3b4b
GM
10422000-05-29 Gerd Moellmann <gerd@gnu.org>
1043
66254a13
GM
1044 * syntax.c (find_defun_start): Move test for
1045 open_paren_in_column_0_is_defun_start outside of the loop.
1046
49e70dec
GM
1047 * xdisp.c (redisplay_window): Really switch buffers when
1048 displaying mode lines, and temporarily set selected_frame to the
1049 frame of the window that's redisplayed.
1050
84ec3b4b
GM
1051 * xfaces.c (free_realized_faces): Block/unblock input.
1052 (free_realized_multibyte_face): Ditto.
1053
869a3a14
DL
10542000-05-29 Dave Love <fx@gnu.org>
1055
1056 * textprop.c (Qkeymap): New variable.
1057 (syms_of_textprop): Intern it.
1058
1059 * keymap.c: Include intervals.h.
1060 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1061
1062 * Makefile.in (keymap.o): Depend on intervals.h.
1063
1064 * keyboard.c (menu_bar_items, tool_bar_items)
1065 (Fexecute_extended_command): Deal with `keymap' property.
1066 (read_key_sequence): Track map from `keymap' property as well as
1067 `local_map'.
1068
1069 * intervals.c (get_local_map): Extra arg to allow looking for
1070 `keymap' too.
1071
1072 * intervals.h (map_property): New enum.
1073 (get_local_map): Extra arg using it.
1074 (Qkeymap): Declare.
1075
84ec3b4b 1076 * lisp.h (get_local_map): Don't declare here.
869a3a14 1077
89d0c844
KH
10782000-05-29 Kenichi Handa <handa@etl.go.jp>
1079
1080 * Makefile.in (callproc.o): Depend on composite.h.
1081
1082 * callproc.c: Include composite.h.
1083 (Fcall_process): Handle composition correctly.
1084
1085 * coding.h (coding_allocate_composition_data): Extern it.
1086 (coding_restore_composition): Likewise.
1087
1088 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1089 yet allocated, finish decoding with result
1090 CODING_FINISH_INSUFFICIENT_CMP.
1091 (coding_allocate_composition_data): Make it non-static.
1092 (coding_restore_composition): Likewise.
1093
797a084a
EZ
10942000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1095
1096 * charset.c (syms_of_charset): Revert last change.
1097
cf872af5
EZ
10982000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1099
1100 * term.c (produce_glyphs): Treat characters from the eight-bit-*
1101 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1102 Handa.
1103
5b1ae051
EZ
11042000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1105
1106 * charset.c (syms_of_charset): Set width of character sets
1107 eight-bit-control and eight-bit-graphic to 1 column.
1108
34ec9ebe
GM
11092000-05-26 Gerd Moellmann <gerd@gnu.org>
1110
1111 * config.in (HAVE_SPEED_T): New define.
1112
1113 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1114 `extern speed_t'.
1115
dd854dc2
DL
11162000-05-26 Dave Love <fx@gnu.org>
1117
1118 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1119
1120 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1121 (Fsubr_arity): New function.
1122 (syms_of_data): Install them.
1123
ba9f8f95
KH
11242000-05-26 Kenichi Handa <handa@etl.go.jp>
1125
0f3e0672
KH
1126 * charset.c (init_charset_once): Set the table bytes_by_char_head
1127 correctly.
1128
cebefb44
KH
1129 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1130 the default fontset to what Emacs uses by default.
0f3e0672
KH
1131 (check_registry_encoding): This function deleted.
1132 (Fset_fontset_font): Remove the adhoc condition for the default
1133 fontset. Allow cons in FONTNAME.
cebefb44 1134
0f3e0672
KH
1135 * fns.c (map_char_table): Ignore char-table entries for
1136 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1137
7a18af49
KR
11382000-05-25 Ken Raeburn <raeburn@gnu.org>
1139
1140 * emacs.c (main): Initialize keyboard syms before initializing
1141 window code, so face names are available.
1142
d2af47df
SM
11432000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1144
1145 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1146 of an anchor at the beginning of a shy-group.
1147
fc6a6a4e
GM
11482000-05-25 Gerd Moellmann <gerd@gnu.org>
1149
1150 * xdisp.c (handle_invisible_prop): Don't try to skip over
1151 invisible text if end of text is already reached.
1152
005f0d35
DL
11532000-05-25 Dave Love <fx@gnu.org>
1154
02513cdd
DL
1155 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1156
005f0d35
DL
1157 * coding.c (encode_eol): Add null statement after label.
1158
89f6ca4e
EZ
11592000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1160
1161 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1162 2000-05-20.
1163
a4e1759e
KH
11642000-05-25 Kenichi Handa <handa@etl.go.jp>
1165
1166 * ccl.c (ccl_driver): Fix previous change.
1167
eacfd7fe
KH
11682000-05-25 Kenichi Handa <handa@etl.go.jp>
1169
46ab33a9
KH
1170 * coding.c (run_pre_post_conversion_on_str): Set point to the
1171 beginning of buffer before calling coding->post_read_conversion.
1172 (decode_coding_string): Give correct args to
1173 run_pre_post_conversion_on_str.
1174 (encode_coding_string): Likewise.
1175
eacfd7fe
KH
1176 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1177 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1178 eight-bit-graphic correctly.
1179
f8569325
DL
11802000-05-24 Kenichi HANDA <handa@etl.go.jp>
1181
1182 * fileio.c (Finsert_file_contents): Even if a file is not found,
1183 execute codes for setting up coding system. Call
1184 after-insert-file-functions unconditionally.
1185
04545643
GM
11862000-05-24 Gerd Moellmann <gerd@gnu.org>
1187
1188 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1189 BSD_PGRPS are not defined.
1190
747d90ea
KH
11912000-05-24 Kenichi Handa <handa@etl.go.jp>
1192
1193 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1194 DESCRIPTION.
1195 (syms_of_charset): Avoid building same strings.
1196
716e3b88
GM
11972000-05-23 Gerd Moellmann <gerd@gnu.org>
1198
1199 * lread.c (Fload): Add a comment about the meaning of
1200 Vuser_init_file being t.
1201
1202 * puresize.h (BASE_PURESIZE): Increase to 675000.
1203
1204 * s/gnu-linux.h (setpgrp): Don't define it here because this
1205 prevents compilation on GNU/Linux systems with glib 2.2.
1206
1207 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1208 as setpgid.
427ec082 1209
9aeb39fa
EZ
12102000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1211
1212 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1213 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1214 version.
1215 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1216
29ced61b
KH
12172000-05-23 Kenichi Handa <handa@etl.go.jp>
1218
0574a2ed
KH
1219 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1220 unconditionally.
1221
3d80f24d
KH
1222 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1223
1224 * term.c (encode_terminal_code): Set coding->src_multibyte
1225 properly.
1226
29ced61b
KH
1227 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1228
d7e00792
KH
12292000-05-22 Kenichi Handa <handa@etl.go.jp>
1230
c9d80d38
KH
1231 * keyboard.c (read_char): Allow character codes 128..255 to be
1232 handled by input-method-function.
1233
d7e00792
KH
1234 * insdel.c (adjust_markers_for_replace): Fix previous change.
1235 (adjust_after_replace): If PREV_TEXT is nil, call
1236 adjust_markers_for_insert, not adjust_markers_for_replace.
1237
087121cc 12382000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1239
087121cc
GM
1240 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1241 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1242 [HAVE_GRANDPT]: Define.
1243 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1244
1245 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1246 like SYSV_PTYS.
1247
1248 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1249
1250 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1251
c9671f81
KH
12522000-05-20 Kenichi Handa <handa@etl.go.jp>
1253
1254 The following changes are to handle 8-bit characters in a
1255 multibyte buffer/string without facing with byte combining
1256 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1257 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1258
1259 * Makefile.in (fns.o): Depend on charset.h.
1260
1261 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1262 convert it to unibyte.
1263 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1264
1265 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1266 apparent char boundary.
1267 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1268 0x80..0x9F to/from multibyte form.
1269
1270 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1271 to unibyte.
1272
1273 * callproc.c (Fcall_process): Always encode an argument string if
1274 it is multibyte. Setup src_multibyte and dst_multibyte members of
1275 process_coding properly.
ce75fd23 1276
c9671f81
KH
1277 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1278 SPLIT_NON_ASCII_CHAR.
1279
1280 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1281 as is.
1282 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1283
1284 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1285 variables.
1286 (SPLIT_CHARACTER_SEQ): This macro deleted.
1287 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1288 valid.
1289 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1290 and eight-bit-graphic.
1291 (char_to_string): Likewise. Signal an error for too large
1292 character code.
1293 (char_printable_p): Return 0 for 8-bit characters.
1294 (update_charset_table): Update iso_charset_table only when a final
1295 character is non-negative.
1296 (find_charset_in_text): Renamed from find_charset_in_str.
1297 Arguments and return value changed. Callers changed.
1298 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1299 be -1 if CHARSET is used only internally.
1300 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1301 eight-bit-graphic.
1302 (Fcharset_after): Simplified.
1303 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1304 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1305 (multibyte_chars_in_text): Simplified by assuming there's no
1306 invalid multibyte sequence.
1307 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1308 str_as_unibyte): New functions.
1309 (Fstring): Simpified by assuming that byte combining never
1310 happens.
1311 (init_charset_once): Initialization for
1312 LEADING_CODE_8_BIT_CONTROL.
1313 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1314 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1315 eight-bit-control and eight-bit-graphic.
1316
1317 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1318 CHARSET_8_BIT_GRAPHIC): New macros.
1319 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1320 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1321 (CHARSET_REVERSE_CHARSET): Likewise.
1322 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1323 eight-bit-graphic.
1324 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1325 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1326 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1327 encounter an invalid multibyte sequence.
1328 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1329 sequence is always valid.
1330 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1331 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1332 macros.
1333 (CHAR_STRING): For 8-bit characters, call char_to_string.
1334 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1335 multibyte sequence is always valid.
1336 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1337 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1338 str_as_unibyte): Extern them.
1339 (BCOPY_SHORT): Fix a bug.
1340 (CHAR_LEN): This macro deleted. Callers changed to use
1341 CHAR_BYTES.
1342 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1343 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1344 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1345
bd4bde7f 1346 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1347 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1348 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1349 EMIT_BYTES): New macros.
1350 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1351 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1352 macros deleted.
1353 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1354 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1355 check the validity of multibyte sequence.
1356 (decode_coding_emacs_mule): New function.
1357 (encode_coding_emacs_mule): New macro.
1358 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1359 the source.
1360 (DECODE_ISO_CHARACTER): Just return a character code.
1361 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1362 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1363 EMIT_CHAR to produced decoded characters. Exit the loop only by
1364 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1365 block here.
1366 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1367 only position codes for an invalid character.
1368 (encode_designation_at_bol): Return new destination pointer. 5th
1369 arg DSTP is changed to DST.
1370 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1371 from the source by ONE_MORE_CHAR. Don't handle the case of last
1372 block here.
1373 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1374 macros deleted.
1375 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1376 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1377 TWO_MORE_BYTES to fetch a byte from the source.
1378 (encode_eol): Pay attention to coding->src_multibyte.
1379 (detect_coding, detect_eol): Preserve members src_multibyte and
1380 dst_multibyte.
1381 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1382 (encoding_buffer_size): Set magnification to 3 for all coding
1383 systems that require encoding.
1384 (ccl_coding_driver): For decoding, be sure that the result is
1385 valid multibyte sequence.
1386 (decode_coding): Initialize coding->errors and coding->result.
1387 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1388 and raw-text, always call decode_eol. Handle the case of last
1389 block here. If not coding->dst_multibyte, convert the resulting
1390 sequence to unibyte.
1391 (encode_coding): Initialize coding->errors and coding->result.
1392 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1393 and raw-text, always call encode_eol. Handle the case of last
1394 block here.
1395 (shrink_decoding_region, shrink_encoding_region): Detect cases
1396 that we can't skip data more rigidly.
1397 (code_convert_region): Setup src_multibyte and dst_multibyte
1398 members of coding. For decoding, if the buffer is multibyte,
1399 convert the source sequence to unibyte in advance. For encoding,
1400 if the buffer is multibyte, convert the resulting sequence to
1401 multibyte afterward.
1402 (run_pre_post_conversion_on_str): New function.
1403 (code_convert_string): Deleted and divided into the following two.
1404 (decode_coding_string, encode_coding_string): New functions.
1405 (code_convert_string1, code_convert_string_norecord): Call one of
1406 above.
1407 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1408 MAKE_NON_ASCII_CHAR.
1409 (Fset_terminal_coding_system_internal,
1410 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1411 and dst_multibyte members.
1412 (init_coding_once): Initialize iso_code_class with new enum
1413 ISO_control_0 and ISO_control_1.
1414
1415 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1416 devided into ISO_control_0 and ISO_control_1.
1417 (struct coding_system): New members src_multibyte, dst_multibyte,
1418 errors, and result. Delete member fake_multibyte.
1419 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1420 nonzero.
1421 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1422 nonzero.
1423
1424 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1425 (Faset): Likewise.
1426
1427 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1428 multibyte form.
1429 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1430 combining occurs.
1431 (Ftranspose_region): Delete codes for handling byte combining.
1432
1433 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1434 dst_multibyte members of coding. On handling REPLACE on unibyte
1435 buffer, convert the result of decode_coding to unibyte. On
1436 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1437 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1438 multibyteness of the source (buffer or string).
1439
1440 * fns.c (concat): Handle 8-bit characters correctly.
1441 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1442 unibyte in the result.
1443 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1444 valid multibyte form in the result.
1445 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1446 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1447 return -1, signal an error.
1448 (base64_encode_1): New arg MULTIBYTE. Get each character by
1449 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1450 character is found, return -1.
1451 (Fbase64_decode_region): Delete codes for handling byte-combining.
1452 Treat each decoded byte as a unibyte character.
1453 (Fbase64_decode_string): Return unibyte string.
1454 (Fcompare_strings, concat, string_byte_to_char): Use
1455 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1456 FETCH_STRING_CHAR_ADVANCE.
1457 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1458 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1459
1460 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1461 SPLIT_NON_ASCII_CHAR.
1462 (fontset_ref_via_base, fontset_set): Likewise
1463
1464 * insdel.c (adjust_markers_for_record_delete): Deleted.
1465 (adjust_markers_for_insert): Argument changed. Caller changed.
1466 (adjust_markers_for_replace): Likewise.
1467 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1468 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1469 (copy_text): Delete unused local varialbe c_save. For converting
1470 to multibyte, be sure to make all 8-bit characters in valid
1471 multibyte form.
1472 (count_size_as_multibyte): Handle 8-bit characters correctly.
1473 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1474 adjust_after_replace, replace_range, del_range_2)
1475 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1476 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1477 adjust_after_replace, replace_range, del_range_2) Delete codes for
1478 handling byte combining.
1479 (adjust_before_replace): Deleted.
427ec082 1480
c9671f81
KH
1481 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1482 SPLIT_NON_ASCII_CHAR.
1483 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1484 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1485 unconditionally.
1486 (Fkey_description): Likewise.
1487
1488 * lread.c (read1): On reading multibyte string, be sure to make
1489 all 8-bit chararacters in valid multibyte form.
1490 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1491
1492 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1493 unconditionally.
1494
1495 * process.c (Fstart_process): GCPRO current_dir before calling
1496 Ffind_operation_coding_system. Encode arguments here.
1497 (create_process): Don't encode arguments here. Setup
1498 src_multibyte and dst_multibyte members of struct coding.
1499 (read_process_output): Setup src_multibyte and dst_multibyte
1500 members of struct coding. If the output is to multibyte buffer,
1501 always decode the output of the process. Adjust the
1502 representation of 8-bit characters to the multibyteness of the
1503 output.
1504 (send_process): Setup coding->src_multibyte according to the
1505 multibyteness of the source.
1506
1507 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1508 unconditionally.
1509 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1510 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1511
1512 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1513 CHAR_LEN.
1514
1515 * w16select.c (Fw16_set_clipboard_data): Setup members
1516 src_multibyte and dst_multibyte of coding. Adjusted for the
1517 change for find_charset_in_str.
1518 (Fw16_get_clipboard_data): Likewise.
1519
1520 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1521 dst_multibyte of coding.
1522 (x_to_w32_font): Likewise.
1523
1524 * w32select.c (Fw32_set_clipboard_data): Setup members
1525 src_multibyte and dst_multibyte of coding. Adjusted for the
1526 change for find_charset_in_str.
1527 (Fw32_get_clipboard_data): Likewise.
1528
1529 * xdisp.c (get_next_display_element): Handle 8-bit characters
1530 correctly.
1531 (next_element_from_display_vector): Use CHAR_BYTES instead of
1532 CHAR_LEN.
1533 (disp_char_vector): Use SPLIT_CHAR instead of
1534 SPLIT_NON_ASCII_CHAR.
1535
1536 * xselect.c (selection_data_to_lisp_data): Setup members
1537 src_multibyte and dst_multibyte of coding. Adjusted for the
1538 change for find_charset_in_str.
1539 (lisp_data_to_selection_data): Likewise.
1540
5f64c9e0
GM
15412000-05-19 Gerd Moellmann <gerd@gnu.org>
1542
2b63d473
GM
1543 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1544 buffer.
1545
5f64c9e0
GM
1546 * dispextern.h (Vimage_types): Add extern declaration.
1547
1548 * xdisp.c (Vimage_types): Moved here from xfns.c.
1549 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1550
1551 * xfns.c (Vimages_types): Moved to xdisp.c.
1552 (syms_of_xfns): Move `image-types' to xdisp.c.
1553
1554 * w32fns.c (Vimage_types): Removed.
1555 (syms_of_w32fns): Remove `image-types'.
1556
813086ea
KH
15572000-05-18 Kenichi Handa <handa@etl.go.jp>
1558
1559 * fns.c (map_char_table): Pay attention to character number of
1560 charset. Check the validity of charset at the first level. For
1561 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1562 the default value.
1563
1564 * fontset.c: Include "buffer.h".
1565 (fs_load_font): If the face has fontset, record the face ID in
1566 that fontset.
1567 (Finternal_char_font): New function.
1568 (accumulate_font_info): New function.
1569 (Ffontset_info): Rewritten for the new fontset implementation.
1570 (syms_of_fontset): Register Vdefault_fontset in the first element
1571 of Vfontset_table. Include Vdefault_fontset in
1572 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1573 function.
1574
bdaebbf0
DL
15752000-05-16 Dave Love <fx@gnu.org>
1576
1577 * m/iris5d.h: Deleted -- unused.
1578
cb613bb8
GM
15792000-05-16 Gerd Moellmann <gerd@gnu.org>
1580
b15f3b77
GM
1581 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1582 `invalid' instead of `illegal'.
1583
1584 * indent.c (Fmove_to_column): When ending within a tab, insert
1585 spaces first so that markers at the end of the tab get adjusted.
1586
835c1b36
GM
1587 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1588 buffer list that wasn't selected in that frame.
1589
cb613bb8
GM
1590 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1591 is needed on mescaline, use a 2 char prefix, and call
1592 make_temp_name with second arg non-zero.
1593
1594 * fileio.c (make_temp_name): New function, extracted from
1595 Fmake_temp_name.
1596 (Fmake_temp_name): Use it.
1597
f685bea9
EZ
15982000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1599
1600 * window.c (coordinates_in_window): Subtract 1 when computing
1601 right_x.
1602
a1b8d58b
GM
16032000-05-15 Gerd Moellmann <gerd@gnu.org>
1604
1605 * Makefile.in (lisp): Add env.elc.
1606
1607 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1608
a265079f
GM
16092000-05-12 Gerd Moellmann <gerd@gnu.org>
1610
1611 * search.c (Freplace_match): Handle case of `\N' in the
1612 replacement when there's no group N.
1613
da4496b6
GM
16142000-05-11 Gerd Moellmann <gerd@gnu.org>
1615
0ace421a
GM
1616 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1617 of the message to message_dolog.
1618
1172eb8d
GM
1619 * keyboard.c (read_char): Don't clear current message for help
1620 events; let the code handling help events handle this. Change
1621 code detecting help events that should be ignored.
1622
da4496b6
GM
1623 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1624 we're interating over a string.
1625
0623e40f
DL
16262000-05-09 Dave Love <fx@gnu.org>
1627
1628 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1629 that offset before writing. Move gcpro region past call of
1630 Ffile_regular_p.
1631
bae2503b
DL
16322000-05-04 Dave Love <fx@gnu.org>
1633
1634 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1635
ec82fb2f
GM
16362000-05-04 Gerd Moellmann <gerd@gnu.org>
1637
1638 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1639 of inserted characters when BUF equals the current buffer, and PT
1640 is in front of or equal to FROM.
1641
cbf18892
GM
16422000-05-03 Gerd Moellmann <gerd@gnu.org>
1643
4ff40dd0
GM
1644 * xdisp.c (handle_single_display_prop): If display property value
1645 is invalid, or something not supported on the frame, restore
1646 iterator's position to what it was initially. Make sure to return
1647 0 for invalid and unsupported property values.
1648
cbf18892
GM
1649 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1650 that x_per_char_metric returns null.
1651
1b0672c3
GM
16522000-05-02 Gerd Moellmann <gerd@gnu.org>
1653
576da55d
GM
1654 * xterm.h (struct face): Add forward declaration.
1655 (struct image): Ditto.
1656 (image_ascent): Add prototype.
1657
1658 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1659 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1660 image_ascent instead of using IMAGE_ASCENT.
1661
1662 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1663 (IMAGE_ASCENT): Removed.
1664
1665 * xfns.c (Qcenter): New variable.
1666 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1667 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1668 (image_ascent): New function.
1669 (lookup_image): Recognize `:ascent center'.
1670 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1671 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1672 (xbm_load): Don't set image's ascent here.
1673 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1674 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1675 check ascent values here.
1676 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1677 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1678 (syms_of_xfns): Initialize Qcenter.
1679
1b0672c3
GM
1680 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1681 to the limits, increase the limits.
1682
0d7811ed
KH
16832000-05-01 Kenichi Handa <handa@etl.go.jp>
1684
1685 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1686 Check Vfont_encoding_alist against the full name of the opened
1687 font.
1688
a943a5ca
GM
16892000-04-28 Gerd Moellmann <gerd@gnu.org>
1690
1691 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1692 taller than the window.
1693
5dba1e29
KH
16942000-04-28 Kenichi Handa <handa@etl.go.jp>
1695
1696 * xfaces.c (realize_x_face): Fix the argument of the second
1697 xassert. BASE_FACE may not be a face for ASCII.
1698
353964e3
GM
16992000-04-27 Gerd Moellmann <gerd@gnu.org>
1700
c76e04a8
GM
1701 * print.c (print_object): Treat print-length < 0 as nil.
1702
1703 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1704
1705 * s/freebsd.h (TERMCAP_OBJ): Removed.
1706 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1707
1708 * lread.c (read1): Don't treat period followed by certain
1709 characters as symbol start.
1710
1711 * xfns.c (slurp_file): New function.
1712 (xbm_image_p): Handle case of in-memory XBM files.
1713 (xbm_scan): Rewritten to work on memory buffers instead of files.
1714 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1715 Work on memory buffers instead of files. If DATA is null test
1716 if buffer looks like an in-memory XBM file.
1717 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1718 memory buffers instead of files.
1719 (xbm_file_p): New function.
1720 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1721
353964e3
GM
1722 * lread.c (end_of_file_error): New function.
1723 (read1): Call it instead of signaling `end-of-file' directly.
1724
427ec082 1725 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1726 with Fprinc instead of Fprin1.
1727
24d744ac
KR
17282000-04-26 Ken Raeburn <raeburn@gnu.org>
1729
1730 * window.c (freeze_window_start): Check that minibuffer scroll
1731 window isn't nil before extracting the window structure pointer
1732 from it.
1733
1734 * undo.c (record_delete): If we hit the end of the undo list, stop
1735 picking elements apart.
1736
7464346d
GM
17372000-04-26 Gerd Moellmann <gerd@gnu.org>
1738
1739 * xdisp.c (display_line): If lines are continued, restore
1740 iterator's ascent/descent information to the values before the
1741 first glyph not fitting on the line.
1742
612839b6
GM
17432000-04-25 Gerd Moellmann <gerd@gnu.org>
1744
1745 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1746 positions in glyph matrix. Don't compute new window end
1747 positions.
1748
1749 * dispnew.c (increment_matrix_positions): Renamed from
1750 increment_glyph_matrix_buffer_positions.
1751 (increment_row_positions): Renamed from
1752 increment_glyph_row_buffer_positions.
1753
1754 * dispextern.h: Change names of renamed functions from dispnew.c
1755 in prototypes.
1756
cc181e95
GM
17572000-04-24 Gerd Moellmann <gerd@gnu.org>
1758
abfcc168
GM
1759 * fileio.c (Fdo_auto_save): Create directories for auto-save
1760 list file if necessary.
1761
cc181e95
GM
1762 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1763 from buffer or frame.
1764 (automatic_hscrolling_p): New variable.
1765 (hscroll_windows): Scroll windows horizontally only if automatic
1766 hscrolling is allowed.
1767 (syms_of_xdisp): New variable `automatic-hscrolling'.
1768
1769 * frame.h (struct frame): Add member extra_line_spacing.
1770
1771 * xfns.c (x_set_line_spacing): New function.
1772 (Fx_create_frame): Set line spacing from resources.
1773 (Qline_spacing): New variable.
1774 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1775
cc181e95
GM
1776 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1777
1778 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1779 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1780 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1781 extra_line_spacing from default value.
1782 (init_buffer_once): Initialize default value of extra_line_spacing.
1783
1784 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1785 and extra3.
1786
1787 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1788 prompt_width. Add extra line spacing.
1789
1790 * term.c (produce_glyphs): Remove reference to struct it's
1791 prompt_width.
1792
1793 * dispextern.h (struct it): Remove member prompt_width, add
1794 extra_line_spacing.
1795
58827478
GM
17962000-04-22 Gerd Moellmann <gerd@gnu.org>
1797
1798 * dispnew.c (update_frame_line): When writing a whole line, make
1799 sure cursor is in the right row afterwards, otherwise a use of
1800 capability `ch' in cmgoto might leave the cursor in the row below.
1801
25a87f42
GM
18022000-04-21 Gerd Moellmann <gerd@gnu.org>
1803
1804 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1805
1806 * keyboard.c (timer_check): Fix typo in comment.
1807
54edf5c2
KH
18082000-04-21 Kenichi Handa <handa@etl.go.jp>
1809
1810 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1811 name change: ch -> character.
1812
3a64eef5
GM
18132000-04-20 Gerd Moellmann <gerd@gnu.org>
1814
1815 * keyboard.c (echo_message_buffer): New variable.
1816 (echo_now): Set echo_message_buffer to the echo area buffer used
1817 to display the echo.
1818 (cancel_echoing): Reset echo_message_buffer to nil.
1819 (read_char): Code rewritten that handles canceling an echo or
1820 echoing a dash, respectively.
1821
1822 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1823 directory doesn't exist.
1824
6142fdcb
DL
18252000-04-19 Dave Love <fx@gnu.org>
1826
1827 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1828 (concat): Don't allow numeric args.
1829 (Fconcat): Doc change.
6142fdcb 1830
ac6b5352
SM
18312000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1832
1833 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1834 instead define end_match(1|2) more carefully.
1835 Use GET_CHAR_BEFORE_2 for `begline'.
1836
cb9215e4
GM
18372000-04-19 Gerd Moellmann <gerd@gnu.org>
1838
5e3dac3f
GM
1839 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1840 on 64-bit systems where NULL is defined as `0'.
1841
1842 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1843 the `variable argument list' to make it work on Alpha.
1844
cb9215e4
GM
1845 * m/alpha.h (_LP64) [!_LP64]: Define.
1846 (ORDINARY_LINK): Define for NetBSD.
1847
1848 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1849
f532dca0
DL
18502000-04-19 Dave Love <fx@gnu.org>
1851
c750667e
DL
1852 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1853 change.
1854
1855 * Makefile.in (LIBS): Don't use.
1856 (GETLOADAVG_OBJ): Define again.
1857 (otherobj): Add GETLOADAVG_OBJ.
1858
f532dca0
DL
1859 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1860
1c7e22fd
GM
18612000-04-18 Gerd Moellmann <gerd@gnu.org>
1862
f6d3257b
GM
1863 * lread.c (read_filtered_event): Cancel and start busy cursor.
1864
427ec082 1865 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1866 that the per-character metrics may be null.
1867
e10f64e7
GM
18682000-04-17 Gerd Moellmann <gerd@gnu.org>
1869
0daee095
GM
1870 * buffer.c (clone_per_buffer_values): New function.
1871 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1872 clone_per_buffer_values if CLONE is not nil.
1873
e10f64e7
GM
1874 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1875
38687d43
DL
18762000-04-16 Dave Love <fx@gnu.org>
1877
1878 * Makefile.in: Remove obsolete localcpp stuff.
1879 (GETLOADAVG_OBJ): Don't define.
1880 (obj): Move LIBOBJS...
1881 (otherobj): ... to here.
1882 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1883 whitespace-only lines after the continuation (Irix).
1884
c21c7262
GM
18852000-04-14 Gerd Moellmann <gerd@gnu.org>
1886
1887 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1888
1889 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1890
314767c0
DL
18912000-04-14 Dave Love <fx@gnu.org>
1892
1893 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1894 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1895 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1896 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1897 NLIST_STRUCT.
1898
1899 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1900 autoconfiscated HAVE_GETLOADAVG.
1901
1902 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1903 BROKEN_MKTIME.
1904
a2522dca
GM
19052000-04-14 Gerd Moellmann <gerd@gnu.org>
1906
1907 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1908 (fill_in_lock_file_name): Avoid existing files that aren't
1909 links.
1910
33744b5d
DL
19112000-04-14 Dave Love <fx@gnu.org>
1912
c21c7262 1913 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1914 (INTERVAL_SRC): Convert to make variable.
1915 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1916 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1917 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1918 add LIBOBJS.
1919 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1920 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1921 (shortlisp): Add facemenu, float-sup, frame.
1922 (SOME_MACHINE_LISP): Remove them from here.
1923 (LIBES): Change unused LDLIBS to autoconf LIBS.
1924
1925 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1926
9d3d5916
KH
19272000-04-14 Kenichi Handa <handa@etl.go.jp>
1928
1929 * composite.c (update_compositions): If FROM and TO are not in a
1930 valid range, do nothing.
1931
198e3c7a
GM
19322000-04-13 Gerd Moellmann <gerd@gnu.org>
1933
1934 * tparam.c (tparam1): Abort when encountering an unknown
1935 `%'-specifier.
1936
1937 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1938 terminfo.o.
1939
1940 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1941 as TERMCAP_OBJ.
1942
055a28c9
EZ
19432000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1944
1945 * fileio.c (a_write): Remove redundant semi-colons.
1946 (e_write): Return -1 if failed to write all the data.
1947 This fixes the changes made at 1999-12-15.
1948
f5c75033
DL
19492000-04-12 Dave Love <fx@gnu.org>
1950
1951 * fns.c (mapcar1): Test for null vals to support mapc.
1952 (Fmapc): New function.
1953
0c3cfc51
EZ
19542000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1955
1956 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1957 (IT_frame_up_to_date): Support the buffer local value of
1958 cursor-type, if defined.
1959
33465a31
DL
19602000-04-10 Dave Love <fx@gnu.org>
1961
1962 * editfns.c (preceding-char, following-char): Doc fix.
1963
6ed56568
KR
19642000-04-10 Ken Raeburn <raeburn@gnu.org>
1965
1966 * Makefile.in (temacs): Revert 2000-03-12 change.
1967
7cf80d4e
JR
19682000-04-10 Jason Rumney <jasonr@gnu.org>
1969
1970 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1971
34f3f342
GM
19722000-04-10 Gerd Moellmann <gerd@gnu.org>
1973
1a1b1895
GM
1974 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1975 area buffer, if it's not set up yet.
1976
34f3f342
GM
1977 * indent.c (compute_motion): Set immediate_quit.
1978
be0dbdab
GM
19792000-04-09 Gerd Moellmann <gerd@gnu.org>
1980
c45be9ac
GM
1981 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1982 variable.
1983 (realize_tty_face): Suppress boldness if colors are the inverse of
1984 the default colors, and tty_suppress_bold_inverse_default_colors_p
1985 is set.
1986 (Ftty_suppress_bold_inverse_default_colors): New function.
1987 (syms_of_xfaces): Defsubr it.
1988
be0dbdab
GM
1989 * buffer.c (Frestore_buffer_modified_p): New function.
1990 (syms_of_buffer): Defsubr it.
1991
e8413c3b
KR
19922000-04-08 Ken Raeburn <raeburn@gnu.org>
1993
87f67317
KR
1994 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1995 charset id (int) argument, not a charset (Lisp_Object).
1996
e8413c3b
KR
1997 * coding.h (code_convert_string): Declare.
1998 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1999 object, as the fourth argument to code_convert_string.
2000
2001 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
2002 value.
2003 (Fset_fontset_font): Use EQ to compare lisp objects.
2004
7c752c80
KR
20052000-04-05 Ken Raeburn <raeburn@gnu.org>
2006
c0333abc
KR
2007 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
2008 a pointer that looks like a lisp object.
2009 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
2010 zero, instead see whether it's an integer object, since they can't
2011 have intervals.
2012 (GET_INTERVAL_OBJECT): Simply assign to the destination.
2013
7c752c80
KR
2014 * dispnew.c (allocate_matrices_for_frame_redisplay,
2015 direct_output_forward_char): Use X(U)INT and make_number as needed
2016 to convert between (unsigned) int values and lisp integers.
2017 * keyboard.c (read_key_sequence): Likewise.
2018 * lread.c (substitute_object_recurse): Likewise.
2019 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2020 * minibuf.c (do_completion, Fminibuffer_complete_word,
2021 Fminibuffer_completion_help): Likewise.
2022 * term.c (produce_special_glyphs): Likewise.
2023
2024 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2025 * print.c (print_preprocess, print_object): Likewise.
2026
2027 * search.c (compile_pattern): Use NILP when checking for nil.
2028
74e49b38
KR
2029 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2030 __OPTIMIZE__]: Provide a GNU C macro version that handles
2031 lisp-object unions.
2032 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2033 field, to better cope with ENABLE_CHECKING and calls that modify a
2034 Lisp_Object using its old value.
2035
685e5ed2
GM
20362000-04-04 Gerd Moellmann <gerd@gnu.org>
2037
c407c570
GM
2038 * window.c (compare_window_configurations): Signal an error
2039 if parameters C1 or C2 aren't window configurations.
2040
685e5ed2
GM
2041 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2042 AFTER_POTENTIAL_GC calls around calls to functions that can
2043 signal an error and thus invoke the debugger.
2044
587a49ab
GM
20452000-04-03 Gerd Moellmann <gerd@gnu.org>
2046
62f20204
GM
2047 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2048 an error if decoding fails.
2049
587a49ab
GM
2050 * keyboard.c (lispy_mouse_names): Variable removed.
2051 (Vlispy_mouse_stem): New variable.
2052 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2053 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2054 for any mouse button number. Increase size of mouse_syms and
2055 button_down_location as needed. Call modify_event_symbol with
2056 different arguments.
2057 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2058 Call modify_event_symbol with different arguments.
2059 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2060 for any button number. Call modify_event_symbol with different
2061 arguments.
2062 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2063 Accept a string for NAME_ALIST_OR_STEM.
2064
2065 * lisp.h (larger_vector): Add prototype.
2066
2067 * fns.c (larger_vector): Make externally visible.
2068
2069 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2070
2d1675e4
SM
20712000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2072
2073 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2074 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2075 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2076 we are between str1 and str2.
2077 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2078 (PATFETCH): Use `TRANSLATE'.
2079 (PATFETCH_RAW): Fetch multibyte char if applicable.
2080 (PATUNFETCH): Remove.
2081 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2082 When writing a char, write it directly into the pattern buffer rather
2083 than going needlessly through a temp char-array.
2084 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2085 multibyte magic and remove the useless `#ifdef emacs'.
2086 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2087 buffer.
2088
2089 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2090 conditional on `emacs'.
2091
2092 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2093
cc2d8c6b
KR
20942000-04-01 Ken Raeburn <raeburn@gnu.org>
2095
2096 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2097 non-union-type versions of XMARK and friends here, because XMARK
2098 and friends won't work on an integer field if NO_UNION_TYPE is not
2099 defined.
2100 (make_number): Define as a function if it's not defined as a
2101 macro.
2102
09654086
KR
2103 * composite.c (run_composite_function): Use NILP when checking for
2104 nil.
2105 (syms_of_composite): Delete local var NARGS, pass an int as first
2106 argument to Fmake_hash_table.
2107
2387b382
KR
2108 * editfns.c (text_property_stickiness): Use NILP to test
2109 Lisp_Object boolean value.
2110 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2111 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2112 problems reading from and changing the same lisp value in an
2113 XSETSTRING call.
2114
27660e89
GM
21152000-04-01 Gerd Moellmann <gerd@gnu.org>
2116
2117 * term.c (TN_no_color_video): New variable.
2118 (term_init): Intitialize TN_no_color_video.
2119 (enum no_color_bit): New enumeration.
2120 (MAY_USE_WITH_COLORS_P): New macro.
2121 (turn_on_face): Use it to determine if attributes may be used
2122 combined with colors.
2123
3578db3c
KR
21242000-04-01 Ken Raeburn <raeburn@gnu.org>
2125
2126 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2127 with int lvalues via casts; instead, just yield lisp object
2128 lvalues.
2129 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2130 proper accessor macros.
2131 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2132 (grow_mini_window): Fix typo getting int value of root->height.
2133
6fc556fd
KR
2134 * xdisp.c (compute_string_pos): Fix order of arguments to
2135 string_pos_nchars_ahead.
2136 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2137 count arg to variable-arg routines like Frun_hook_with_args and
2138 Fformat.
587a49ab
GM
2139 (back_to_previous_visible_line_start)
2140 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2141 fixed-arg routines like Fget_char_property and Fmake_string.
2142 (reconsider_clip_changes): Use XINT when comparing integer lisp
2143 objects, or passing them as int arguments.
587a49ab
GM
2144 (mark_window_display_accurate, insert_left_trunc_glyphs)
2145 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2146 storing or passing integer values as lisp objects.
2147 (set_cursor_from_row, highlight_trailing_whitespace): Use
2148 INTEGERP, not implicit test against zero, for glyph object.
2149 (try_window_id): Don't use make_number when we want an int value.
2150
2151 * xfaces.c (xlfd_symbolic_value): Make last argument a
2152 Lisp_Object, to be consistent with callers.
2153 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2154 (lface_hash): Apply XFASTINT to lisp values before folding in.
2155
2156 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2157 fill in window width and height. Pass an int, not a lisp object,
2158 as first arg to Finsert.
2159
6e7b2457
GM
21602000-04-01 Gerd Moellmann <gerd@gnu.org>
2161
610d841e
GM
2162 * xfaces.c (realize_basic_faces): Block input while realizing
2163 the faces.
2164
6e7b2457
GM
2165 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2166
2167 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2168
aa110c0c
GM
21692000-03-31 Gerd Moellmann <gerd@gnu.org>
2170
2171 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2172 or ASCII, handle case that per-char metric is null.
aa110c0c 2173
8801a864
KR
21742000-03-30 Ken Raeburn <raeburn@gnu.org>
2175
c6129d7e
KR
2176 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2177
8801a864
KR
2178 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2179 XSUBR, XBUFFER): Verify correct object type before returning
2180 pointer, using eassert.
2181 * frame.h (XFRAME): Likewise.
2182
2183 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2184 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2185 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2186 type.
2187 * data.c (set_internal): Likewise.
2188 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2189 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2190 * fileio.c (auto_save_1): Likewise.
2191 * insdel.c (check_markers): Likewise.
2192 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2193 * undo.c (record_insert): Likewise.
2194 * vmsproc.c (child_sig): Likewise.
2195 * window.c (unshow_buffer, window_loop): Likewise.
2196 * xterm.c (x_erase_phys_cursor): Likewise.
2197
8e7af858
GM
21982000-03-30 Gerd Moellmann <gerd@gnu.org>
2199
2200 * xfns.c (free_image_cache): Free the cache structure itself
2201 last, after all its members have been freed.
2202
2203 * lisp.h (xstrdup): Add prototype.
2204
2205 * alloc.c (xstrdup): Moved here from xfaces.c.
2206 (allocating_for_lisp): Variable removed.
2207 (lisp_malloc): Block input around the calls to malloc and
2208 mem_insert.
2209
2210 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2211 of Fsymbol_value.
2212 (xstrdup): Moved to alloc.c.
2213
e0b8c689
KR
22142000-03-29 Ken Raeburn <raeburn@gnu.org>
2215
b96f9fb7
KR
2216 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2217
2218 * emacs.c (main): Fix sense of no-loadup test.
2219
e0b8c689
KR
2220 * config.in (ENABLE_CHECKING): Undef.
2221
2222 * lisp.h (struct interval): Replace "parent" field with a union of
2223 interval pointer and Lisp_Object; add new bitfield to use as
2224 discriminant. Change other flag fields to bitfields.
2225 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2226 is defined and the supplied test fails, print a message and
2227 abort.
2228 (eassert): New macro. Use CHECK to provide an assert-like
2229 facility.
2230
2231 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2232 pointers; abort if the value looks like a lisp object.
2233 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2234 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2235 Modify for new interval parent definition.
2236
2237 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2238 UNMARK_BALANCE_INTERVALS): Update references that need an
2239 addressable lisp object in the interval structure.
2240 (die): New function.
2241 (suppress_checking): New variable.
2242
2243 * intervals.c (interval_start_pos): Just return 0 if there's no
2244 parent object.
2245
f83c5440
GM
22462000-03-29 Gerd Moellmann <gerd@gnu.org>
2247
2248 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2249 and earlier Emacs versions.
2250
2251 * keyboard.c (Ftop_level): Cancel busy-cursor.
2252
2253 * eval.c (call_debugger): Cancel busy-cursor.
2254
fdce64ff
KH
22552000-03-29 Kenichi Handa <handa@etl.go.jp>
2256
2257 * search.c (Freplace_match): Adjust multibyteness of the current
2258 buffer and NEWTEXT. Free allocated memory before signaling an
2259 error.
2260
f6a3f532
SM
22612000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2262
2263 * regex.c (analyse_first): New function obtained by ripping out most
2264 of re_compile_fastmap and generalizing it a little bit so that it
2265 can also just return whether a given (sub)pattern can match the empty
2266 string or not.
2267 (regex_compile): Use `analyse_first' to decide whether the loop-check
2268 needs to be done or not for *, +, *? and +? (the loop check is costly
2269 for non-greedy repetition).
2270 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2271
e9b309ac
DL
22722000-03-28 Dave Love <fx@gnu.org>
2273
bb15bd9a
DL
2274 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2275 alpha.
2276
e9b309ac
DL
2277 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2278
ed0767d8
SM
22792000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2280
2281 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2282 an expression.
2283 (enum re_opcode_t): Update description of succeed_n.
2284 (PATFETCH): Always define.
2285 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2286 operators, char classes, shy-groups and intervals).
2287 Optimize special cases of intervals so as to only use succeed_n and
2288 jump_n when really needed.
2289 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2290 that we don't have to handle the special cases any more.
2291 Simplify on_failure_jump handling as well.
2292
e11e7e46
JR
22932000-03-28 Jason Rumney <jasonr@gnu.org>
2294
2295 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2296
88faab89
GM
22972000-03-27 Gerd Moellmann <gerd@gnu.org>
2298
182ff242
GM
2299 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2300
2301 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2302
182ff242
GM
2303 * alloc.c (mark_maybe_object): New function.
2304 (mark_memory): Use it.
2305 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2306 (setjmp_tested_p, longjmp_done): New variables.
2307 (test_setjmp): New function.
2308 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2309 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2310
c1005d06
GM
2311 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2312 to DEC_TEXT_POS and INC_TEXT_POS.
2313
2314 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2315 with parameter MULTIBYTE_P.
2316
427ec082 2317 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2318 MULTIBYTE_P.
2319
7439e5b9 2320 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2321 buffers because it looks for multibyte character byte sequences
2322 which don't exist in unibyte text.
7439e5b9 2323
d9c545da
GM
2324 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2325
11fd416e 2326 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2327 [DEBUG_X_COLORS]: New functions.
2328 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2329
2330 * xfns.c (x_set_cursor_color): Get color reference counts right.
2331
2332 * xterm.c (x_copy_color): New function.
2333 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2334
2335 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2336 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2337 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2338 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2339 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2340 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2341 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2342 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2343 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2344 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2345
11fd416e
GM
2346 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2347 names for handling per-buffer variables.
d9c545da
GM
2348
2349 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2350 instead of MAX_BUFFER_LOCAL_VARS.
2351 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2352
2353 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2354
88faab89
GM
2355 * xfns.c (x_specified_cursor_type): New function.
2356 (x_set_cursor_type): Use it.
2357
2358 * buffer.h (struct buffer): Add cursor_type.
2359
d80f42b7
SM
23602000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2361
2362 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2363 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2364 opcode.
d80f42b7
SM
2365 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2366 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2367 executing it as well as when popping it off the stack to find infinite
2368 loops in non-greedy repetition operators.
2369
89e80928
GM
23702000-03-26 Gerd Moellmann <gerd@gnu.org>
2371
3d4ff2dd
GM
2372 * doc.c (Qfunction_documentation): New variable.
2373 (syms_of_doc): Initialize Qfunction_documentation.
2374 (Fdocumentation): If FUNCTION is a symbol with non-nil
2375 `function-documentation' property, return a documentation derived
2376 from that.
2377
bd96bd79
GM
2378 * buffer.c (syms_of_buffer): Add default-cursor-type.
2379 (init_buffer_once): Don't let cursor_type have a local value
2380 in every buffer.
2381
19d1bc27
GM
2382 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2383 on buffer-local value of cursor_type.
2384 (x_draw_bar_cursor): Add parameter WIDTH.
2385
2386 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2387 (init_buffer_once): Set default cursor_type value to t.
2388 Mark cursor_type as local everywhere.
2389 (syms_of_buffer): New per-buffer variable cursor-type.
2390
89e80928
GM
2391 * buffer.h (struct buffer): Remove member local_var_flags,
2392 add local_flags.
2393 (MAX_BUFFER_LOCAL_VARS): New macro.
2394 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2395 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2396 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2397 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2398
2399 * print.c (print_object): Use new macros for per-buffer
2400 variables.
2401
2402 * category.c (Fset_category_table): Use new macros for per-buffer
2403 variables.
2404
2405 * buffer.c (buffer_permanent_local_flags): Make a char array.
2406 (max_buffer_local_idx): New variable.
2407 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2408 for new handling of per-buffer variables.
2409 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2410 (init_buffer_once): Initialize per-buffer vars differently.
2411 Set max_buffer_local_idx.
2412
2413 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2414 variables.
2415
2416 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2417 variables.
2418
2419 * data.c (do_symval_forwarding, store_symval_forwarding)
2420 (find_symbol_value, set_internal, default_value, Fset_default)
2421 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2422 per-buffer variables.
2423
2424 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2425
9a0dd3dc
GM
24262000-03-24 Gerd Moellmann <gerd@gnu.org>
2427
b68c375f
GM
2428 * xterm.c (x_term_init): Unblock input around call1 of
2429 Qvendor_specific_keysyms.
2430
9a0dd3dc
GM
2431 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2432 (find_defun_start): Consider an open parenthesis in column 0
2433 a defun start only if open_paren_in_column_0_is_defun_start is set.
2434 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2435
7973e637
SM
24362000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2437
2438 * eval.c (Fautoload): Add entry in load-history (if after dump).
2439 * lread.c (load-history): Update docstring.
2440
39210e90
GM
24412000-03-24 Gerd Moellmann <gerd@gnu.org>
2442
2443 * indent.c (Fvertical_motion): Always use the current buffer.
2444 Temporarily change the window's buffer, if necessary.
2445
72db3ab5
GM
24462000-03-23 Gerd Moellmann <gerd@gnu.org>
2447
2448 * xterm.c (fast_find_position): Make sure not to consider rows
2449 not visible in the window.
2450
990b2375
SM
24512000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2452
2453 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2454 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2455
ff4df011
JR
24562000-03-22 Jason Rumney <jasonr@gnu.org>
2457
2458 * w32menu.c (single_submenu): Set help string to NULL if none.
2459 (w32_menu_show): Set help string correctly.
2460 (add-menu-item): Set help string in MIIM_DATA for menu item.
2461 Load SetMenuItemInfoA explicitly.
2462 (w32_menu_display_help): New function.
427ec082 2463
ff4df011
JR
2464 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2465 (QCdata): Moved to xdisp.c.
2466
2467 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2468 (Vw32_charset_to_codepage_alist): Removed.
2469 (Vw32_charset_info_alist): New variable.
2470 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2471 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2472 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2473 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2474 with TODO comment.
2475 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2476 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2477 Define Vw32_charset_info_alist and w32_charset symbols.
2478
24792000-03-22 Jason Rumney <jasonr@gnu.org>
2480
2481 * makefile.nt (w32bdf.obj): Update dependencies.
2482
2483 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2484
2485 * w32fns.c: Include fontset.h after dispextern.h.
2486 (Fx_create_frame): Do not create fontset.
2487 (w32_load_system_font): Doc fix.
2488 (Fx_close_connection): Free full_name if it is not shared.
2489
2490 * w32term.c: Include fontset.h after dispextern.h.
2491 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2492 updated.
2493 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2494 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2495 (w32_font_is_double_byte): New function, needs body.
2496 (x_append_glyph): Set glyph->glyph_not_available_p.
2497 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2498 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2499 character, convert it to a unibyte character.
2500 (struct glyph_string): Delete member `charset'.
2501 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2502 calculating it is found.
2503 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2504 the case that per char metric is not available correctly.
2505 (x_fill_glyph_string): Handle the case that the specific glyph is
2506 not available correctly.
2507 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2508 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2509 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2510 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2511 fontset. Don't call FS_LOAD_FONT.
2512
439d5cb4
KR
25132000-03-22 Ken Raeburn <raeburn@gnu.org>
2514
2515 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2516 (INT_LISPLIKE): New macro.
2517 (NULL_INTERVAL_P): Use it.
2518 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2519 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2520 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2521
2522 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2523 explicit references to "parent" field of struct interval and
2524 associated unclean type conversions.
2525 * intervals.c (create_root_interval, root_interval, rotate_right,
2526 rotate_left, balance_possible_root_interval, split_interval_right,
2527 split_interval_left, interval_start_pos, find_interval,
2528 next_interval, previous_interval, update_interval,
2529 adjust_intervals_for_insertion, delete_node, delete_interval,
2530 adjust_intervals_for_deletion, merge_interval_right,
2531 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2532 copy_intervals_to_string): Likewise.
2533 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2534 Likewise.
2535 * syntax.c (update_syntax_table): Likewise.
2536
2537 * intervals.c (reproduce_tree_obj): New function, like
2538 reproduce_tree but takes a Lisp_Object for the parent. Declare
2539 with prototype.
2540 (graft_intervals_into_buffer): Use it when appropriate.
2541 (reproduce_tree): Declare with prototype.
2542 (balance_possible_root_interval): Check that the parent is a lisp
2543 object before trying to examine its type.
2544
ee1c5b21
GM
25452000-03-22 Gerd Moellmann <gerd@gnu.org>
2546
2547 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2548 as strings only if both are known to be strings.
2549
2550 * s/openbsd.h (LIBS_TERMCAP): Undef.
2551
1fb352e0
SM
25522000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2553
2554 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2555 definitions for non-Emacs compilation.
2556 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2557 outside of `#ifdef emacs'.
2558 (print_partial_compiled_pattern): Update.
2559 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2560 (re_compile_fastmap): Merge handling of charset and charset_not (for
2561 emacs and non-emacs compilation as well).
2562 Similarly for (not)categoryspec and (not)syntaxspec.
2563 Don't use the fastmap when reaching `anychar' since the added
2564 complexity is not justified.
2565 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2566 and (not)syntaxspec. Merge (not)categoryspec.
2567
fdaa1f77
KH
25682000-03-22 Kenichi Handa <handa@etl.go.jp>
2569
ff1a0d8e
KH
2570 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2571 FACE_FOR_CHAR): Define them differently for the configuration of
2572 --without-x.
fdaa1f77 2573
d152fb46
DL
25742000-03-21 Dave Love <fx@gnu.org>
2575
2576 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2577 doc string.
2578
d2cafc8c
GM
25792000-03-21 Gerd Moellmann <gerd@gnu.org>
2580
2581 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2582 (lface_fully_specified_p): Don't check contents of
2583 LFACE_FONT_INDEX because that attribute is optional.
2584 (realize_x_face): Remove now unwarranted xassert.
2585
9111d4b5
KH
25862000-03-21 Kenichi HANDA <handa@etl.go.jp>
2587
2588 The following changes are to make font selection based on
2589 characters, not charset. In addition, they recover fontset
2590 facilities while utilizing the new font selection mechanism.
2591
6c4bfdc0
KH
2592 * Makefile.in (fontset.o): Depend on dispextern.h.
2593
2594 * alloc.c (mark_face_cache): Don't mark face->registry.
2595
9111d4b5
KH
2596 * dispextern.h (struct glyph): New member glyph_not_available_p.
2597 Use 22 bits for face_id.
2598 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2599 (struct face): Delete member registry, new member ascii_face.
2600 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2601 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2602 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2603 (struct it): Delete member charset, new member
2604 glyph_not_available_p.
2605
2606 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2607 (struct fontset_info, struct fontset_data): Structs removed.
2608 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2609 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2610 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2611 (fs_free_face_fontset, fontset_font_pattern,
2612 face_suitable_for_char_p, face_for_char,
2613 make_fontset_for_ascii_face): Extern them.
2614 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2615 (FS_LOAD_FACE_FONT): New macro.
2616
2617 * fontset.c: All codes rewritten or adjusted for the change of
2618 fontset implementation. Now fontset is represented by char table.
2619 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2620 removed.
2621 (my_strcasecmp): Function removed.
2622 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2623 variables.
2624 (AREF, ASIZE): New macros.
2625 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2626 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2627 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2628 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2629 fontset_id_valid_p, font_family_registry, fontset_name,
2630 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2631 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2632 New functions.
2633 (fs_load_font): New arg FACE. Caller changed.
2634 (fs_query_fontset): Argument changed. Caller changed.
2635 (Fquery_fontset): call fs_query_fontset.
2636 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2637 Functions removed.
2638 (clear_fontset_elements, check_registry_encoding,
2639 check_fontset_name): New functions.
2640 (syms_of_fontset): Set char-table-extra-slots property of fontset
2641 to 3. Staticpro and initialize Vfontset_table and
2642 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2643
2644 * frame.h (struct frame): Member `fontset_data' removed.
2645 (FRAME_FONTSET_DATA): Macro removed.
2646
2647 * frame.c (make_frame): Don't allocate f->fontset_data.
2648 (Fdelete_frame): Don't free f->fontset_data.
2649
6c4bfdc0
KH
2650 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2651
9111d4b5
KH
2652 * xdisp.c (charset_at_position): Function removed.
2653 (init_iterator): Don't set member charset of struct `it'.
2654 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2655 next_element_from_display_vector, insert_left_trunc_glyphs):
2656 Likewise.
2657 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2658 FACE_FOR_CHARSET.
2659 (get_next_display_element, append_space,
2660 extend_face_to_end_of_line): Likewise.
2661
2662 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2663 Variables removed.
2664 (clear_font_table, frame_update_line_height, load_face_font):
2665 Adjusted for the change of fontset implementation.
2666 (load_face_fontset_font): Function removed.
2667 (pixel_point_size): New function.
2668 (font_list): Argument type changed. Caller changed.
2669 (LFACE_FONT): New macro.
2670 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2671 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2672 Lisp_Object. Determine the font name by actually loading a font
2673 by the specified pattern. Set LFACE_FONT (lface) to the specified
2674 pattern. Even if a font is not found, don't try alternatives.
2675 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2676 (set_font_frame_param): If `font' is specified in lface, use it.
2677 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2678 (lface_same_font_attributes_p): Likewise.
2679 (make_realized_face): Arguent changed. Caller changed. Set
2680 face->ascii_face to face itself.
2681 (free_realized_face): Free face->fontset if face is for ASCII.
2682 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2683 deduce_unibyte_registry, x_charset_registry): Functions removed.
2684 (free_realized_multibyte_face): New function.
2685 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2686 changed. Caller changed.
2687 (try_font_list): Argument type changed.
2688 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2689 (choose_face_font): Argument changed. Handle fontset properly.
2690 (choose_face_fontset_font): Function removed.
2691 (realize_default_face, realize_named_face): Don't remove the
2692 former face here.
2693 (realize_face): Argument changed. Caller changed. Remove face
2694 with the arg former_face_id in advance. Load font for the new
2695 face.
2696 (realize_x_face): Argument changed. Caller changed. For a
2697 multibyte character, share fontset with base_face. For a single
2698 byte character, make a new realized fontset. Don't load a font
2699 here.
2700 (realize_tty_face): Argument changed. Caller changed.
2701 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2702 (face_at_buffer_position): Don't check multibyte_p for returning
2703 DEFAULT_FACE_ID.
2704 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2705 FACE_SUITABLE_FOR_CHARSET_P.
2706 (syms_of_xfaces): Remove code for Qx_charset_registry and
2707 Vface_default_registry.
2708
6c4bfdc0
KH
2709 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2710 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2711 (x_per_char_metric): Don't try FONT->default_char. Even if
2712 pcm->width is zero, glyph bits may exist.
2713 (x_encode_char): Always initialize char2b->byte1.
2714 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2715 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2716 changed.
2717 (x_append_glyph): Set glyph->glyph_not_available_p.
2718 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2719 it->charset. Handle the case that per char metric is not
2720 available. If it->multibyte_p is zero and it->c is a multibyte
2721 character, convert it to a unibyte character.
2722 (struct glyph_string): Delete member `charset'.
2723 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2724 the case that per char metric is not available correctly.
2725 (x_fill_glyph_string): Handle the case that the specific glyph is
2726 not available correctly.
2727 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2728 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2729 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2730 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2731 fontset. Don't call FS_LOAD_FONT.
2732
2733 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2734 (x_create_tip_frame): Likewise.
2735 (Fx_close_connection): Free full_name of font_info.
2736
2737 * fns.c (optimize_sub_char_table): New function.
2738 (Foptimize_char_table): New function.
2739 (syms_of_fns): Defsubr Soptimize_char_table.
2740
b33dd3b0
GM
27412000-03-20 Gerd Moellmann <gerd@gnu.org>
2742
2743 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2744 only if buffer is displayed in some window.
2745
2746 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2747 (try_window_reusing_current_matrix): Don't call scroll run
2748 function if run's current and desired position are the same;
2749 this prevents cursor flickering.
2750
4e8a9132
SM
27512000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2752
2753 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2754
2755 * regex.c (RE_STRING_CHAR): New macro.
2756 (GET_CHAR_AFER_2): Remove.
2757 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2758 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2759 (print_partial_compiled_pattern, re_compile_fastmap)
2760 (re_match_2_internal): Remove on_failure_jump_exclusive.
2761 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2762 optimization only need to work for * (ie. can use of_keep_string_jump).
2763 Remove the special case for .*\n since it is now covered by the general
2764 optimization.
2765 (re_search_2): Don't bother with `room'.
2766 (skip_one_char): New function.
2767 (skip_noops): Simplify since `memory' is not needed any more.
2768 (mutually_exclusive_p): Restructure slightly to use `switch' and
2769 add handling for "all" remaining cases.
2770 (re_match_2_internal): Change on_failure_jump_smart to use
2771 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2772 rather than on_failure_jump_exclusive.
2773
2136fdd4
GM
27742000-03-19 Gerd Moellmann <gerd@gnu.org>
2775
2776 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2777 number of bits per RGB because it's everywhere used as the depth
2778 of the visual.
2779
2780 * term.c (calculate_costs): Remove code dealing with X frames.
2781
e53ae11c
RS
27822000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2783
2784 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2785
d7b511c4
GM
27862000-03-18 Gerd Moellmann <gerd@gnu.org>
2787
2788 * lread.c (read_integer): Unread the last char not consumed.
2789
16b5d424
GM
27902000-03-17 Gerd Moellmann <gerd@gnu.org>
2791
2792 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2793 which are in the process of being deleted.
16b5d424 2794
1fa28578
GM
27952000-03-16 Gerd Moellmann <gerd@gnu.org>
2796
83488cce
GM
2797 * Makefile.in (mostlyclean): Add `*.core'.
2798 (clean): Add `bootstrap-emacs'.
2799
1fa28578
GM
2800 * lread.c (read_integer): New function.
2801 (read1): Support read syntax #o, #x, #b, #r.
2802
99633e97
SM
28032000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2804
1fa28578
GM
2805 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2806 make sure POINTER_TO_OFFSET gives the same value before and after
2807 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2808 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2809 (debug): Now only active if > 0 rather than if != 0.
2810 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2811 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2812 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2813 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2814 (store_op1, store_op2, insert_op1, insert_op2)
2815 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2816 (group_in_compile_stack): Move to after its arg's types are
2817 declared and add a prototype.
99633e97 2818 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2819 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2820 wrapper.
99633e97 2821 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2822 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2823 indentation of the greedy-op and shy-group code.
99633e97
SM
2824 (at_(beg|end)line_loc_p): Fix argument's types.
2825 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2826 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2827 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2828 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2829 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2830 QUIT unconditionally.
99633e97 2831
699238d9
GM
28322000-03-15 Gerd Moellmann <gerd@gnu.org>
2833
2834 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2835 a sole completion.
2836
2837 * process.c (send_process): Add a hint that the function
2838 can call Lisp code to its comment.
2839
2840 * lread.c (load_dangerous_libraries): New variable.
2841 (Vbytecomp_version_regexp): New variable.
2842 (safe_to_load_p): New function.
2843 (Fload): Handle files not compiled with Emacs specially.
2844 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2845
34e23e5a
GM
28462000-03-14 Gerd Moellmann <gerd@gnu.org>
2847
9c763cca
GM
2848 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2849
2850 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2851 support functions only if HAVE_X11R6_XIM is defined.
2852 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2853
2854 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2855
2856 * xfns.c (X_I18N_INHIBITED): Don't define.
2857 (create_frame_xic): Remove conditional compilation on
2858 X_I18N_INHIBITED.
2859 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2860
2861 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2862 (HAVE_X11R6_XIM): Define.
2863
2864 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2865
34e23e5a
GM
2866 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2867 If set, call XSynchronize.
2868
66f0296e
SM
28692000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2870
34e23e5a
GM
2871 * regex.c: Declare a new type `re_char' used throughout the code
2872 for the string char type. It's `const unsigned char' to match the
2873 rest of Emacs. Consistently make sure all pointers to strings use
2874 it and make sure all pointers into the pattern use `unsigned
2875 char'.
66f0296e 2876 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2877 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2878 code duplication.
66f0296e
SM
2879
2880 * charset.h (GET_CHAR_AFTER_2): Remove.
2881 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2882
854a025c
KR
28832000-03-12 Ken Raeburn <raeburn@gnu.org>
2884
2885 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2886 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2887 of them try to use backquotes.
2888
b9d2c7e2
DL
28892000-03-12 Dave Love <fx@gnu.org>
2890
2891 * unexelf.c: Restore changes of 1999-10-19.
2892 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2893 fix its type and alignment; copy it from current process.
2894
5e5dff44
GM
28952000-03-12 Gerd Moellmann <gerd@gnu.org>
2896
9b2f3c38
GM
2897 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2898 has been found. Fix bug not computing timer's predecessor.
2899
427ec082 2900 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
2901 file name.
2902
e1cff360
GM
2903 * window.c (Fsave_window_excursion): Doc fix.
2904
5e5dff44
GM
2905 * xfns.c (x_defined_color): Rewritten to use
2906 x_allocate_nearest_color.
2907
e411ce4b
EZ
29082000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2909
2910 * msdos.c (vga_installed): New function, code moved from
2911 dos_set_window_size.
2912 (Qbar, Qcursor_type, outside_cursor): New variables.
2913 (syms_of_msdos): Intern and staticpro them.
2914 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2915 shape used outside Emacs when called for the first time.
2916 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2917 cursor shape used outside Emacs.
2918 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2919 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2920 type has changed.
2921 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2922 parameters specify the cursor. Make qreverse a global
2923 variable (renamed to Qreverse).
2924
80460654
GM
29252000-03-09 Gerd Moellmann <gerd@gnu.org>
2926
2927 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2928
95cd4c40
SM
29292000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2930
2931 This is a big redesign of failure-stack and register handling, prompted
2932 by bugs revealed when trying to add shy-groups. Overall, what happened
2933 is that loops are now structured a little differently, groups can be
2934 shy and the code is a little simpler.
2935
2936 * regex.h: Update the copyright.
2937 (RE_SHY_GROUPS): New value.
2938 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2939 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2940
80460654
GM
2941 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2942 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2943 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2944 for (start|stop)_memory since they now only take one argument (the
2945 second has becomes unnecessary).
2946 (print_partial_compiled_pattern): Adjust for changes in
2947 re_opcode_t.
2948 (print_compiled_pattern): Use %ld to printf long ints and flush to
2949 make debugging a little easier.
95cd4c40
SM
2950 (union fail_stack_elt): Make the integer unsigned.
2951 (struct fail_stack_type): Add a `frame' element.
2952 (INIT_FAIL_STACK): Init `frame' as well.
2953 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2954 (DEBUG_PUSH, DEBUG_POP): Remove.
2955 (NUM_REG_ITEMS): Remove.
2956 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2957 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2958 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2959 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2960 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2961 macros.
2962 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2963 address pushed is not the destination of the jump but the source
2964 of it instead.
95cd4c40
SM
2965 (NUM_FAILURE_ITEMS): Remove.
2966 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2967 registers before the actual failure point). Don't hardcode any
2968 meaning for str==NULL anymore.
95cd4c40 2969 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2970 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2971 Remove.
95cd4c40
SM
2972 (REG_UNSET_VALUE): Use NULL (why not?).
2973 (compile_range): Remove declaration since it doesn't exist.
2974 (struct compile_stack_elt_t): Remove inner_group_offset.
2975 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2976 (regex_grow_registers): Remove dead code.
2977 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2978 (regex_compile): Add shy-groups Change loops to use
2979 on_failure_jump_smart&jump instead of
2980 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2981 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2982 variable to me). Use `jump' instead of `jump_past_alt' and don't
2983 bother with push_dummy_failure in alternatives since it is now
2984 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2985 emacs' for (re)allocating the stack.
2986 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2987 from loop when bufp->can_be_null rather than jumping to `done'.
2988 Avoid jumping backwards so as to ensure termination. Use
2989 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2990 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2991 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2992 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2993 improve mutually_exclusive_p to handle ".+\n".
2994 (lowest_active_reg, highest_active_reg,
2995 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2996 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2997 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2998 variables. Push register (in `start_memory') on the stack rather
2999 than storing it in old_reg(start|end). Remove the cycle detection
3000 from `stop_memory', replaced by the use of on_failure_jump_loop
3001 for greedy loops. Add code for the new on_failure_jump_<foo>.
3002 Remove ad-hoc code in `on_failure_jump' to push more registers in
3003 the case of a loop. Take out code from `maybe_pop_jump' into
3004 separate functions and adapt it to the semantics of
3005 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
3006 and push_dummy_failure. Remove dummy_failure handling and
3007 handling of `failures to jump to on_failure_jump' (this last one
3008 was already dead code, it seems).
3009 (group_match_null_string_p, alt_match_null_string_p)
3010 (common_op_match_null_string_p): Remove.
95cd4c40 3011
7397acc4
DL
30122000-03-08 Dave Love <fx@gnu.org>
3013
3014 * config.in: Don't depend on __STDC__ for volatile.
3015 Add POINTER_TYPE, PTR, PROTOTYPES.
3016
3017 * hftctl.c, strftime.c: Use PROTOTYPES.
3018 * eval.c (find_handler_clause): Likewise.
3019
3020 * mem-limits.h: Use POINTER_TYPE.
3021
3022 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3023 (memory_warnings): Declare using POINTER_TYPE.
3024
5e91ff9e
GM
30252000-03-08 Gerd Moellmann <gerd@gnu.org>
3026
feab4fba
GM
3027 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3028
25edb08f
GM
3029 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3030 collection.
3031
5e91ff9e
GM
3032 * xfns.c: Remove obsolete code in #if 0.
3033 (Fx_focus_frame): New function.
3034
a735b7e1
KH
30352000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3036
3037 * coding.c (coding_category_name): Add coding-category-utf-8,
3038 coding-category-utf-16-be, coding-category-utf-16-le.
3039 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3040 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3041 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3042 (detect_coding_utf_8): New function.
3043 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3044 UTF_16_LOW_SURROGATE_P): New macros.
3045 (detect_coding_utf_16): New function
3046 (detect_coding_mask): When priorities are specified, skip any
3047 categories that have `nil' coding-system. Fix bug of returning
3048 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3049 returns a mask not set in PRIORITIES.
3050 (detect_eol_type_in_2_octet_form): New function.
3051 (detect_eol): selects detect_eol_type_XXX to call according to
3052 cooding->category_idx.
3053 (detect_coding_system): Remove `nil' coding-system in the result.
3054 (Fupdate_coding_systems_internal): Update all coding-categories.
3055
3056 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3057 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3058 macros.
3059 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3060 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3061 CODING_CATEGORY_IDX_UTF_16_LE.
3062 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3063 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3064 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3065 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3066
9994cc69
GM
30672000-03-07 Gerd Moellmann <gerd@gnu.org>
3068
e9b4e5ff
GM
3069 * doc.c (Fdocumentation_property): If value is not a string,
3070 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3071
f7daf1e1
GM
3072 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3073 close the display with XtCloseDisplay. This caused a bus error
3074 on OpenWindows.
3075
9994cc69
GM
3076 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3077 complete but not unique.
3078
4336c705
GM
30792000-03-06 Gerd Moellmann <gerd@gnu.org>
3080
18bb0684
GM
3081 * process.c (send_process): Remove local variable `procname' that
3082 might become invalid when a GC happens. Instead, access the
3083 process name slot directly.
3084
4336c705
GM
3085 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3086 orig_height if set.
3087
3088 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3089 orig_height if set.
3090
515d0d0e
EZ
30912000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3092
3093 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3094 glyph matrices have been freed.
3095
100b3cbb
GM
30962000-03-05 Gerd Moellmann <gerd@gnu.org>
3097
50df5e5a 3098 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3099 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3100
3101 * xfns.c (QCdata): Moved to xdisp.c.
3102
3103 * xdisp.c (QCdata): Moved here from xfns.c.
3104 (syms_of_xdisp): Initialize QCdata.
3105
3106 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3107
3108 * window.c (coordinates_in_window): Use
3109 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3110 FRAME_INTERNAL_BORDER_WIDTH.
3111
100b3cbb 3112 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3113 it is obviously invalid.
100b3cbb
GM
3114
3115 * xterm.c (x_term_init): Create a colormap if not using the
3116 default visual.
3117
3118 * xterm.h (select_visual): Change prototype.
3119
3120 * xfns.c (select_visual): Rewritten. Recognize user-specified
3121 visual classes.
3122 (visual_classes): New variable.
3123
64d739c4
GM
31242000-03-04 Gerd Moellmann <gerd@gnu.org>
3125
3126 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3127 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3128 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3129 (x_decode_color): Don't handle allocation of white and black
3130 specially.
3131 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3132 XtNcolormap resources.
3133 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3134 (Fx_create_frame): Initialize color members of x_output structure.
3135 (xpm_load): Pass colormap to XPM lib.
3136
3137 * xfaces.c (x_free_colors): Access colormap of frame using
3138 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3139 when default colormap is used.
3140
3141 * xterm.c (x_term_init): Set Colormap member of x_display_info
3142 structure. Copy colormap if resource `privateColormap' is
3143 specified (PseudoColor only).
3144 (x_setup_relief_color): Access colormap of frame using
3145 FRAME_X_COLORMAP.
3146
3147 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3148 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3149
c3cee013
JR
31502000-03-04 Jason Rumney <jasonr@gnu.org>
3151
3152 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3153 other non-platform-specific equivalents.
64d739c4 3154 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3155 specific functions and macros as their w32 equivalents where
3156 non-platform-specifics are not available.
3157 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3158 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3159 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3160 (frame_update_line_height): Use macros to access f->output_data.
3161 (defined_color): Remove FIXME comments; fixed.
3162 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3163 into #ifdef blocks. Add WINDOWSNT blocks.
3164 (Fx_list_fonts): Use macros for accessing font data.
3165 (set_lface_from_font_name): Different default fonts for X and
3166 WINDOWSNT.
3167 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3168 scalable for backward compatibility.
64d739c4 3169 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3170 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3171
64d739c4 3172 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3173 syms_of_w32faces.
3174
3175 * makefile.nt (w32faces.obj): Remove.
3176 (xfaces.obj): Add.
3177
807cc41c
JR
31782000-03-03 Jason Rumney <jasonr@gnu.org>
3179
3180 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3181 correct parameters.
3182
0007072a
KR
31832000-03-03 Ken Raeburn <raeburn@gnu.org>
3184
3185 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3186 standard ELF definitions here if the system header does not.
3187
71a6ba55
GM
31882000-03-03 Gerd Moellmann <gerd@gnu.org>
3189
3190 * xterm.c (PER_CHAR_METRIC): Removed.
3191 (x_per_char_metric_1, x_default_char): New functions.
3192 (x_per_char_metric): If font's default char is invalid, return
3193 metrics of a suitably chosen usable default char.
3194 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3195 char, replace occurrences of unprintable chars with a suitably
3196 chosen usable default char.
71a6ba55 3197
900fa1f1
GM
31982000-03-02 Gerd Moellmann <gerd@gnu.org>
3199
42f55fe0
GM
3200 * xterm.c (note_mouse_highlight): Return quickly if frame's
3201 glyph matrices have been freed.
3202
3203 * dispnew.c (free_glyphs): Block input while freeing matrices.
3204
900fa1f1
GM
3205 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3206
3207 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3208 x_free_colors.
3209
3210 * dispextern.h (x_free_colors): Add prototype.
3211
3212 * xfaces.c (x_free_colors): New function.
3213 (unload_color, free_face_colors): Use it.
3214
2f950292
EZ
32152000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3216
3217 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3218
3219 * window.c [MSDOS]: Include msdos.h.
3220
54d04320
DL
32212000-03-02 Dave Love <fx@gnu.org>
3222
3223 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3224
3225 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3226 set C_OPTIMIZE_SWITCH for gcc.
3227
0ba93ac4
KH
32282000-03-02 Kenichi Handa <handa@etl.go.jp>
3229
3230 * coding.c (coding_save_composition): Be sure to allocate
3231 composition data area in coding even if there's no composition in
3232 the current run.
3233
a2bc11d4
JR
32342000-03-01 Jason Rumney <jasonr@gnu.org>
3235
3236 * w32term.c: Equivalent changes to those made to xterm.c on
3237 2000-02-25 and 2000-02-24.
3238
3239 * w32fns.c: Equivalent changes to those made to xfns.c on
3240 2000-02-25 and 2000-02-21.
3241
3242 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3243 correct line-end convention is followed.
3244
3245 * w32menu.c [HAVE_BOXES]: Remove #undef.
3246 (single_keymap_panes): Remove code for simulating checkmarks.
3247 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3248 Remove code for drawing simulated checkmarks.
3249 (w32_menu_show): make unibyte help string correctly.
3250 (add_menu_item): draw standard Windows checkmarks. Draw radio
3251 buttons as radio buttons if possible.
3252
72d19d75
GM
32532000-03-01 Gerd Moellmann <gerd@gnu.org>
3254
2df636f4
GM
3255 * sysdep.c (start_of_text): Don't define this function for NetBSD
3256 with ELF.
3257
427ec082 3258 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3259 Don't define.
3260 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3261 (LINKER): Don't undef if __NetBSD__ is defined.
3262
3263 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3264
3265 * fileio.c [__NetBSD__]: Define `unix'.
3266
72d19d75
GM
3267 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3268
ed4d0512
GM
32692000-02-29 Gerd Moellmann <gerd@gnu.org>
3270
50b1039f
GM
3271 * atimer.c (start_atimer): Don't abort when timers are stopped.
3272 (append_atimer_lists): New function.
3273 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3274 arbitrary lists of stopped and running atimers.
3275
ed4d0512
GM
3276 * atimer.c (cancel_atimer): Handle canceling an atimer when
3277 some timers are stopped.
3278
3279 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3280 after canceling it.
3281
3282 * fns.c (maybe_resize_hash_table): Handle case of new size
3283 coming out as being the same as old size.
3284
387023ee
JR
32852000-02-27 Jason Rumney <jasonr@gnu.org>
3286
3287 * makefile.nt: Add atimer.h to dependencies.
3288 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3289 * w32console.c: Only disable window system features for dispextern.h
3290 (initialize_w32_display): Build a display info for the console.
3291 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3292 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3293 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3294 as 2 button mice.
3295 * w32gui.h (struct W32FontStruct): Revert last change after change
3296 to xdisp.c.
3297 * w32menu.c (single_submenu): Set up help string.
3298 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3299 (w32_dialog_show): Set up help string.
3300 * w32term.c (w32_display_info_for_display): Remove unused function.
3301 (w32_draw_bitmap): Use pre-built bitmaps.
3302 (w32_initialize_display_info): New function to initialize parts of
3303 display info that are common to both GUI and console frames.
3304 (w32_term_init): Use w32_initialize_display_info. Do not set
3305 Vw32_num_mouse_buttons here, as it is not called for console
3306 frames. Build bitmaps for indicating truncated lines etc.
3307 (x_delete_display): Destroy pre-built bitmaps.
3308 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3309 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3310
4516715a
DL
33112000-02-27 Dave Love <fx@gnu.org>
3312
3313 * lisp.h: Add a bunch of prototypes.
3314
171ca836
KH
33152000-02-26 Kenichi Handa <handa@etl.go.jp>
3316
3317 * keyboard.c (read_char): Set `usec' correctly.
3318
4013921d
KH
33192000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3320
3321 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3322 `lambda', set reg[RRR] to the map index.
3323 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3324 reg[RRR] to 0. Otherwise, set it to -1.
3325
9244a058
GM
33262000-02-25 Gerd Moellmann <gerd@gnu.org>
3327
2df636f4 3328 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3329
f43d79c1 33302000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3331
f43d79c1
GM
3332 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3333 and contains a `:', prepend `/:'.
3334
3335 * window.c (select_window_1): If selected_window is nil,
3336 don't "swap out" the buffer's point.
3337 (Fset_window_configuration): Set selected_window to nil
3338 before calling Fselect_window.
3339 (unshow_buffer): Don't set point in buffer from window's point
3340 if another more recently selected window also shows the buffer.
3341
bed0c171
GM
33422000-02-25 Gerd Moellmann <gerd@gnu.org>
3343
449c3c52
GM
3344 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3345
f5b58615
GM
3346 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3347 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3348 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3349 variables.
3350 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3351 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3352 (hide_busy_cursor): New functions.
3353 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3354
3355 * minibuf.c (read_minibuf): Cancel busy-cursor.
3356
3357 * keyboard.c (command_loop_1): Call start_busy_cursor before
3358 Fcommand_execute and cancel_busy_cursor after it.
3359 (timer_check): Remove busy-cursor code.
3360 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3361 cursor timer.
3362
3363 * process.c (wait_reading_process_input): Remove busy-cursor code.
3364
3365 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3366 Fx_hide_busy_cursor.
3367
3368 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3369 Remove prototyoes.
3370 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3371
3372 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3373
3374 * xterm.c (XTread_socket): Remove busy-cursor code.
3375
4eb8436f
GM
3376 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3377 (build_frame_matrix_from_leaf_window): Put code handling
3378 glyph row's not being a slice of a frame row in #if 0.
3379 (sync_window_with_frame_matrix_rows): New function.
3380 (frame_row_to_window): New function.
3381 (mirror_line_dance): Handle copies between windows.
3382
3cb65b0e
GM
3383 * lread.c (Fload): Use `xfree' instead of `free'.
3384 (init_obarray): Use `xmalloc' instead of `malloc'.
3385
bed0c171
GM
3386 * window.c (Fset_window_buffer): Set WINDOW to the window
3387 after decoding.
2add4349
GM
3388 (coordinates_in_window): Take frame's internal border width
3389 into account.
bed0c171 3390
42088c12
GM
33912000-02-24 Gerd Moellmann <gerd@gnu.org>
3392
3393 * xterm.c (x_display_and_set_cursor): Display cursor of
3394 non-selected windows depending on the setting of
3395 cursor_in_non_selected_windows.
3396
3397 * xdisp.c (cursor_in_non_selected_windows): New variable.
3398 (syms_of_xdisp): DEFVAR_BOOL it.
3399
d1e103b2
GM
34002000-02-23 Gerd Moellmann <gerd@gnu.org>
3401
723e779c
GM
3402 * data.c (Fstring_to_number): If number is greater than what
3403 fits into an integer, return a float.
3404
d1e103b2
GM
3405 * eval.c (specbind): Remove references to
3406 keyword_symbols_constant_flag.
3407
3408 * data.c (keyword_symbols_constant_flag): Removed.
3409 (Fmakunbound, set_internal, syms_of_data): Remove references to
3410 keyword_symbols_constant_flag.
3411
3412 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3413
214f877f
KH
34142000-02-23 Kenichi Handa <handa@etl.go.jp>
3415
3416 * syntax.c (multibyte_syntax_as_symbol): New variable.
3417 (syms_of_syntax): Declare it as a Lisp variable.
3418 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3419 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3420 nonzero, treat all multibyte characters as symbol.
42088c12 3421 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3422 characters.
3423
130adcb7
EZ
34242000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3425
3cb65b0e 3426 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3427 a deleted frame.
3428
17cbbf95
GM
34292000-02-21 Gerd Moellmann <gerd@gnu.org>
3430
3431 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3432
3433 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3434 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3435
beb0bc36
DL
34362000-02-21 Dave Love <fx@gnu.org>
3437
3438 * frame.c (Vmouse_position_function): New variable.
3439 (Fmouse_position): Use it.
3440 (syms_of_frame): Install it.
3441
3442 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3443
1d92afcd
GM
34442000-02-20 Gerd Moellmann <gerd@gnu.org>
3445
3446 * fileio.c (Finsert_file_contents): Unbind the binding of
3447 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3448
3449 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3450 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3451 (specbind, unbind_to): Handle most common case of non-constant
3452 symbol with trivial value specially.
3453
3454 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3455
2d06696f
RS
34562000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3457
3458 * data.c (Fmake_variable_buffer_local): Doc fix.
3459 Init found_for_buffer to 0.
3460 (Fmake_variable_frame_local): If the variable has already
3461 been buffer-local, set the check_frame field.
3462
1d4311c3
EZ
34632000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3464
3465 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3466 produced for CODING_MODE_LAST_BLOCK requires.
3467
2dc95ddd
DL
34682000-02-18 Dave Love <fx@gnu.org>
3469
3470 * keyboard.c (echo_keystrokes): Remove declaration.
3471 (Vecho_keystrokes) New variable.
3472 (read_char, record_menu_key, read_key_sequence): Use it to allow
3473 use of float value.
3474 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3475
3476 * lread.c: Undef feature selection macros before defining.
3477
f0930f35
GM
34782000-02-18 Gerd Moellmann <gerd@gnu.org>
3479
3480 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3481 for symbols other than the symbol in question.
3482
e3d4de90
DL
34832000-02-17 Dave Love <fx@gnu.org>
3484
3485 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3486
0b378936
GM
34872000-02-17 Gerd Moellmann <gerd@gnu.org>
3488
d621caf7
GM
3489 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3490
0b378936
GM
3491 * alloc.c (enum mem_type): Compile unconditionally.
3492
3b451f74
EZ
34932000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3494
3495 * xfaces.c (tty_defined_color): Don't return faulire indication
3496 for unspecified-fg and unspecified-bg pseudo-colors.
3497
10689a01
GM
34982000-02-17 Gerd Moellmann <gerd@gnu.org>
3499
1216f5e4
GM
3500 * alloc.c (mark_object): Don't mark symbol names in pure space.
3501 (gc_sweep): Don't unmark symbol names in pure space.
3502
3503 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3504 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3505 [GC_MARK_STACK]: New defines.
427ec082 3506 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3507 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3508
3509 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3510
3511 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3512 allocate_buffer instead of xmalloc.
3513
3514 * alloc.c (toplevel): Include setjmp.h.
3515 (PURE_POINTER_P): New define.
3516 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3517 (Vdead) [GC_MARK_STACK]: New variable.
3518 (lisp_malloc): Add parameter TYPE, call mem_insert if
3519 GC_MARK_STACK is defined.
3520 (allocate_buffer): New function.
427ec082 3521 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3522 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3523 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3524 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3525 (MEM_NIL) [GC_MARK_STACK]: New define.
3526 (struct mem_node) [GC_MARK_STACK]: New structure.
3527 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3528 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3529 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3530 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3531 (mark_stack) [GC_MARK_STACK]: New functions.
3532 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3533 (clear_marks): Removed.
3534 (gc_sweep): Set free conses' car, free floats' type, free
3535 symbols' function to Vdead. Use lisp_free to free buffers.
3536 (init_alloc_once): Initialize Vdead.
3537 (survives_gc_p): Return non-zero for pure objects.
3538
3539 * alloc.c: Add comments throughout the file.
3540
2503c8b1
GM
3541 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3542 that unblocks alarms.
3543
8389e1e2
GM
3544 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3545 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3546 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3547
10689a01 3548 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3549
bfc17d18
KH
35502000-02-17 Kenichi Handa <handa@etl.go.jp>
3551
4a09dee0
KH
3552 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3553 avoid infinite error signaling. Allocate sufficient memory for
3554 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3555
2b927d02
SM
35562000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3557
3558 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3559 depends on the previous behavior.
3560
b49cb764
GM
35612000-02-16 Gerd Moellmann <gerd@gnu.org>
3562
3563 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3564
99e95407
GM
35652000-02-15 Gerd Moellmann <gerd@gnu.org>
3566
3567 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3568
3569 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3570 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3571 write(2).
3572
6ffd3cf7
RS
35732000-02-15 Richard M. Stallman <rms@gnu.org>
3574
3575 * data.c (set_internal): Don't make variable buffer-local
3576 if within a let-binding for the same buffer.
3577 (let_shadows_buffer_binding_p): New function.
3578
3579 * eval.c (specbind): For buffer-local value,
3580 record the current buffer also.
3581 (unbind_to): Cope with that change.
3582
cad53475
GM
35832000-02-15 Gerd Moellmann <gerd@gnu.org>
3584
3585 * window.c (Fsave_window_excursion): Doc fix.
3586
1aa963c8
SM
35872000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3588
3589 * syntax.c (back_comment): Make sure we only consider comment-starters
3590 of the relevant style and return -1 in case of a failure to find the
3591 beginning of the comment.
3592 (Fforward_comment): If back_comment fails, go back to the position just
3593 after the comment-end.
3594 (scan_lists): Add comment describing a very minor bug.
3595
b9b84fd3
SM
35962000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3597
3598 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3599 `completion-regexp-list' in the docstring.
3600
3a28db80
DL
36012000-02-14 Dave Love <fx@gnu.org>
3602
3603 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3604
fb4a568d
SM
36052000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3606
3607 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3608 to Emacs' syntax. Also fix the comment about set/not-set meanings
3609 since Emacs syntax is not the value 0 any more.
3610 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3611 since it's now part of RE_SYNTAX_EMACS.
3612
1063ebb5
DL
36132000-02-12 Dave Love <fx@gnu.org>
3614
3615 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3616 Alpha.
3617
fb07a302
GM
36182000-02-12 Gerd Moellmann <gerd@gnu.org>
3619
3620 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3621
aaf2320c
DL
36222000-02-12 Dave Love <fx@gnu.org>
3623
3624 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3625
3626 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3627 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3628 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3629
3630 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3631
3632 * s/nextstep.h: Don't define HAVE_ALLOCA.
3633
3634 * config.in: Add vfork bits.
3635
eedf8bde
GM
36362000-02-12 Gerd Moellmann <gerd@gnu.org>
3637
3638 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3639 unwind function to undo the effect of stopping atimers.
3640
3641 * keyboard.c (bind_polling_period): Stop all timers except
3642 poll_timer.
3643
3644 * atimer.c (stopped_atimers): New variable.
3645 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3646 New functions.
3647
3648 * atimer.h (stop_other_atimers, run_all_atimers)
3649 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3650
eedf8bde
GM
3651 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3652
8476c2f8
KR
36532000-02-11 Ken Raeburn <raeburn@gnu.org>
3654
3655 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3656 library may depend on jpeg.
3657 (atimer.o): Depends on atimer.c.
3658
0e85e4a3
KH
36592000-02-11 Kenichi Handa <handa@etl.go.jp>
3660
3661 * insdel.c (del_range_1): Call update_compositions.
3662 (del_range_both): Call update_compositions just once..
3663
97fa0cc8
DL
36642000-02-10 Dave Love <fx@gnu.org>
3665
3666 * xfns.c (create_frame_xic): Fix initialization of automatic
3667 aggregates for pcc.
3668
25566a3c
KH
36692000-02-09 Kenichi Handa <handa@etl.go.jp>
3670
3671 * ccl.c (CCL_MAKE_CHAR): New macro.
3672 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3673 registers by CCL_MAKE_CHAR before calling translate_char.
3674 <CCL_TranslateCharacterConstTbl> Likewise.
3675
69da54ba
DL
36762000-02-08 Dave Love <fx@gnu.org>
3677
3678 * lread.c (__EXTENSIONS__): Define.
3679
f7136ee8
GM
36802000-02-08 Gerd Moellmann <gerd@gnu.org>
3681
3682 * puresize.h (BASE_PURESIZE): Increase to 650000.
3683
7768790b
EZ
36842000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3685
3686 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3687 the help message.
3688
38fd211b
EZ
36892000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3690
3691 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3692 md, mh, mb, mr, and me to the fake termcap entry.
3693
66e4690f
KR
36942000-02-06 Ken Raeburn <raeburn@gnu.org>
3695
3696 * sound.c (sound_cleanup): Don't call device close routine if the
3697 function pointer is null.
3698
a75dfea0
AI
36992000-02-06 Andrew Innes <andrewi@gnu.org>
3700
3701 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3702 around image definitions and prototypes.
3703 (gamma_correct) [WINDOWSNT]: New prototype.
3704
3705 * w32term.c (x_make_frame_visible): Replace call to
3706 input_poll_signal with poll_for_input.
3707
3708 * window.c [WINDOWSNT]: Include w32term.h.
3709
3710 * xdisp.c [WINDOWSNT]: Include w32term.h.
3711
3712 * makefile.nt: Add dependencies on w32gui.h.
3713 (OBJ1): Include atimer.obj.
3714 ($(BLD)\atimer.obj): New dependency rule.
3715
3716 * w32.c (sigmask): New function (does nothing).
3717 (sigunblock): Ditto.
3718
3719 * frame.c [WINDOWSNT]: Include w32term.h.
3720
3721 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3722
3723 * lread.c (syms_of_lread): Fix literal newlines.
3724
3725 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3726 the string constant limit (2048 bytes) in MSVC.
3727 (main): Ditto.
3728
59ddecde
GM
37292000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3730
3731 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3732 area.
3733 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3734 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3735 dispatch the event.
3736
07590973
DL
37372000-02-04 Dave Love <fx@gnu.org>
3738
3739 * fileio.c: Remove some unused vars.
3740 (_GNU_SOURCE): Define (for euidaccess).
3741
3742 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3743
3744 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3745 gcpro1, gcpro2.
3746 (read_minibuf): Deal with allow_props correctly.
3747
649351f9
EZ
37482000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3749
3750 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3751
66e4690f 37522000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3753
3754 * search.c (compile_pattern): If a cache entry has a nil regexp,
3755 fill in that entry instead of clobbering a previously cached
3756 string regexp.
3757
66e4690f 37582000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3759
3760 * puresize.h (BASE_PURESIZE): Increase to 610000.
3761
d240a249
GM
37622000-02-02 Gerd Moellmann <gerd@gnu.org>
3763
3764 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3765 can GC.
3766
ca91fb26
KH
37672000-02-02 Kenichi Handa <handa@etl.go.jp>
3768
25660570
KH
3769 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3770 instead of incrementing ic directly.
3771 <CCL_WriteExprConst> Likewise.
3772 <ccl_set_expr>: Set ic to jump_address.
3773
ca91fb26
KH
3774 * fileio.c (e_write): Fix the handling of
3775 CODING_FINISH_INSUFFICIENT_SRC.
3776
2ede9689
DL
37772000-02-01 Dave Love <fx@gnu.org>
3778
3779 * editfns.c (Fpropertize): Doc fix.
3780
3781 * process.c (Fstart_process): Doc fix.
3782
3783 * eval.c: Fix various doc strings not to duplicate information
3784 from help-manyarg-func-alist.
3785
3786 * window.c (Fset_window_margins): Don't make interactive. Doc
3787 fix.
3788
3789 * doc.c (Vhelp_manyarg_func_alist): New variable.
3790 (Fdocumentation): Use it.
3791 (syms_of_doc): Define it.
3792
b6680a0e
GM
37932000-01-31 Gerd Moellmann <gerd@gnu.org>
3794
2cb750ba
GM
3795 * xterm.c (xim_open_dpy): Remove unused local variable.
3796
74e9213b
GM
3797 * emacs.c (USAGE): Use term `display options' instead of `X
3798 options'.
3799
3800 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3801 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3802
b6680a0e
GM
3803 * fns.c (sweep_weak_table): New function.
3804 (sweep_weak_hash_tables): Use it. Keep on marking until there
3805 is no more change.
3806
994c5afe
GM
38072000-01-30 Gerd Moellmann <gerd@gnu.org>
3808
3809 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3810 that XTread_socket does not crash by trying to call XNoOp on a
3811 closed display.
427ec082 3812
f00276e3
JR
38132000-01-30 Jason Rumney <jasonr@gnu.org>
3814
3815 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3816 Change selected_frame to SELECTED_FRAME ().
3817 (w32_console_mouse_position): Remove #ifndef MULE from around
3818 `insist' parameter.
3819
3820 * makefile.nt: Remove dosfns.obj.
3821
3822 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3823
3824 * w32fns.c (w32_defined_color): Check for valid frame before
3825 applying gamma correction. Eliminate dependency on frame elsewhere.
3826 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3827 (w32_to_x_font): Use resx and resy not height_in and width_in.
3828 (x_to_w32_font): Doc fix.
3829 (xlfd_strip_height): New function to strip and return font height.
3830 (w32_font_match): Compare height separately from rest of xlfd
3831 spec, using xlfd_strip_height.
3832
3833 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3834 width_in. Use w32_defined_color in place of defined_color.
3835
3836 * w32faces.c: Merge more of DOS and X specifics in preparation for
3837 merge with xfaces.c.
3838 (defined_color): Remove FIXME comment.
3839 (tty_color_name): Provide w32-specific function.
3840 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3841
3842 * w32console.c (turn_on_face, turn_off_face): Removed.
3843 (w32_face_attributes): New function.
3844 (Global_variables): Reduce scope where possible.
3845 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3846 fill attribute.
3847 (hl_mode): Don't modify text attributes.
3848 (write_glyphs): Don't do anything if len <= 0. Use
3849 w32_face_attributes to get attributes for drawing. Write
3850 terminating codes using char_attr_normal.
3851 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3852 (update_begin, update_end): Likewise.
3853 (vga_stdcolor_name): New function.
3854 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3855 (Fset_screen_color): Remove char_attr_reverse.
3856
b08e8bb2
GM
38572000-01-29 Gerd Moellmann <gerd@gnu.org>
3858
3859 * xfns.c (xic_set_preeditarea): Take window parameter and
3860 window-relative pixel-positions.
3861
3862 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3863 is its frame's selected window.
3864 (xim_instantiate_callback): Likewise.
3865
3866 * xfns.c (x_create_im): Removed.
3867 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3868 (supported_xim_styles): Renamed from supported_styles.
3869 (best_xim_style): Renamed from best_style.
3870 (create_frame_xic): Renamed from xic_create_frame.
3871 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3872
b08e8bb2
GM
38732000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3874
3875 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3876 our frames, call XFilterEvent with 2nd parameter `None'.
3877 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3878 returning XBufferOverflow.
3879 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3880 area.
3881 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3882 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3883 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3884 (xim_initialize, xim_close)
3885 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3886 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3887 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3888 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3889
3890 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3891 and `xim_styles'.
3892 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3893 `xic_style' and `xic_xfs'.
3894 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3895 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3896 (FRAME_XIM): Removed.
3897
3898 * xfns.c (supported_styles): New variable.
3899 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3900 (xic_create_xfontset, best_style, xic_create_frame)
3901 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3902 (xic_set_xfontset): New functions.
3903
142e109c
DL
39042000-01-28 Dave Love <fx@gnu.org>
3905
3906 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3907
3908 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3909
b02786f9
GM
39102000-01-28 Gerd Moellmann <gerd@gnu.org>
3911
d060bc9f
GM
3912 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3913 for *scratch* if it already existed.
3914
b02786f9
GM
3915 * emacs.c (USAGE): New macro.
3916 (main): Use it to display usage information.
3917
2c52d7e4
EZ
39182000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3919
3920 Support for the menu-help feature:
3921
3922 * msdos.h: Change prototypes of XMenuAddSelection and
3923 XMenuActivate.
3924
3925 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3926 part of the line to the termscript file.
3927 (IT_clear_to_end): Clear the entire line, not just its beginning.
3928 (menu_help_message, prev_menu_help_message): New variables.
3929 (IT_menu_make_room): Make room for the help_text member.
3930 (IT_menu_display): New argument disp_help; all callers changed.
3931 If disp_help is non-zero, store the help text of the active menu
3932 item in menu_help_message.
3933 (XMenuAddPane): Initialize the help_text member to NULL.
3934 (XMenuAddSelection): New argument help_text. Store it in the
3935 XMenu structure.
3936 (XMenuActivate): New argument help_callback. If the value of
3937 menu_help_message has changed since the last time, display the
3938 menu help message text while waiting for the mouse to move. Clear
3939 the echo area before exiting.
3940 (XMenuDestroy): Free the help_text member.
3941
ffe0bcd1
GM
39422000-01-27 Gerd Moellmann <gerd@gnu.org>
3943
3944 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3945 XMenuAddSelection. Pass help callback to XMenuActivate.
3946 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3947
50dbd23f
EZ
39482000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3949
3950 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3951 and EMACS_SET_USECS.
3952
f5941bf8
GM
39532000-01-26 Dave Love <fx@gnu.org>
3954
6c67ddee
DL
3955 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3956
f5941bf8
GM
3957 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3958 an error may be signalled.
3959
9e49c990
GM
39602000-01-26 Gerd Moellmann <gerd@gnu.org>
3961
fc3cb460
GM
3962 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3963 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3964
9e49c990
GM
3965 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3966
d0c037d8
GM
39672000-01-25 Gerd Moellmann <gerd@gnu.org>
3968
3969 * charset.c (Fstring): If there is a multibyte char among
3970 the args, always return a multibyte string.
3971
e12489f9
GM
39722000-01-25 Gerd Moellmann <gerd@gnu.org>
3973
3974 * sysdep.c (sys_select): Turn atimers off and on instead of
3975 recording and restoring old alarm handler
3976
3977 * process.c (toplevel): Include atimer.h.
3978 (create_process_1): Rewritten.
3979 (create_process): Use atimers instead of alarm.
3980 (wait_reading_process_input) [hpux]: Turn atimers off instead
3981 of turning off SIGALRM.
3982 (wait_reading_process_input): Turn off atimers instead off
3983 calling stop_polling.
3984
3985 * emacs.c (main): Call init_atimer.
3986
3987 * keyboard.c (toplevel): Include systime.h and atimer.h.
3988 (polling_for_input): Removed because unused.
3989 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3990 (poll_timer): New variable.
3991 (poll_for_input, poll_for_input_1): New functions.
3992 (start_polling, stop_polling): Rewritten.
3993
3994 * keyboard.h (polling_for_input): Removed.
427ec082 3995
e12489f9
GM
3996 * atimer.h, atimer.c: New files.
3997
3998 * Makefile.in (obj): Add atimer.o.
3999 (atimer.o): New target.
4000
4001 * blockinput.h (pending_atimers): Add extern declaration.
4002 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
4003
4004 * lisp.h (popup_activated_flag): Add extern declaration.
4005
4006 * xmenu.c (popup_activated_flag): Make externally visible.
4007 (popup_activate_callback) [USE_MOTIF]: Increment
4008 popup_activated_flag.
4009 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
4010
4011 * xterm.c (toplevel): Include atimer.h.
4012 (toolkit_scroll_bar_interaction): New variable.
4013 (Fxt_process_timeouts): Removed.
4014 (x_process_timeouts): New function.
4015 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4016 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4017 (x_make_frame_visible): Call poll_for_input_1 instead of
4018 input_poll_signal. Don't call alarm.
4019 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4020
1e5279b9
DL
40212000-01-24 Dave Love <fx@gnu.org>
4022
6c67ddee 4023 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4024 Don't use -cckr -- apparently not now necessary.
4025
edf6aeb8
EZ
40262000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4027
4028 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4029 screen boundary.
4030
9badad41
JR
40312000-01-23 Jason Rumney <jasonr@gnu.org>
4032
4033 * w32fns.c (w32_defined_color): Apply gamma correction before
4034 trying to map to the palette.
4035 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4036 to w32_clear_rect.
4037
4038 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4039 here. Callers changed to always pass real device context.
4040 (w32_draw_bitmap): Likewise.
4041 (w32_get_glyph_overhangs): Likewise.
4042 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4043 one.
4044 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4045 pfnSetScrollInfo and SetScrollRange.
4046 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4047 back into MULE characters after decoding them.
4048 (x_get_glyph_face_and_encoding): Likewise.
4049 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4050 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4051 (x_produce_glyphs): Calculate per char metrics for a character
4052 that we know exists in default font when font_not_found_p is true.
4053
63bd786b
JR
40542000-01-22 Jason Rumney <jasonr@gnu.org>
4055
4056 * makefile.nt (intervals.obj, composite.obj): New modules.
4057 (composite.h): Added as dependency where appropriate.
4058
4059 * w32gui.h (XGCValue): New struct for emulating X GCs.
4060
4061 * w32term.h (XCharStruct): New struct for emulating X.
4062
4063 * w32console.c (turn_on_face, turn_off_face): New functions.
4064 (change_line_highlight): New prototype for new redisplay.
4065 (write_glyphs): Support multibyte text. Support faces.
4066
4067 * w32faces.c: Complete rewrite for new redisplay based on new
4068 xfaces.c.
4069
4070 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4071 throughout. struct frame * in place of FRAME_PTR.
4072 Skeleton support for images, toolbars, tooltips from xfns.c.
4073 (Fx_create_frame): Use system default for default scroll bar
4074 width.
4075 (w32_get_arg): Renamed from x_get_arg.
4076 (Fx_file_dialog): New function.
4077 (w32_list_fonts): Check cache before asking system.
4078 (Vw32_enable_synthesized_fonts): New variable.
4079 (Vw32_enable_italics): Obsolete, removed.
4080
4081 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4082 Use SELECTED_FRAME macro.
4083
4084 * w32menu.c: Add skeleton support for help strings on menus.
4085 (add_menu_item): Native checkbox and radio support added, but not
4086 yet enabled due to bugs.
4087 (push_menu_item): Add parameters type, selection and help.
4088 Callers updated.
4089 Formatting changes to reduce unnecessary diffs with xmenu.c.
4090
4091 * w32select.c (Fw32_set_clipboard_data): Update call to
4092 find_charset_in_str.
4093
4094 * w32term.c: Complete rewrite for new redisplay based on new
4095 xterm.c with necessary sections merged back in from old w32term.c.
4096
6ffd3cf7 40972000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4098
4099 * data.c (set_internal): Further fix in same criterion.
4100
6ffd3cf7 41012000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4102
4103 * data.c (set_internal): Fix the criteria for whether
4104 to swap out the old cached binding.
4105
60af03f1
DL
41062000-01-19 Dave Love <fx@gnu.org>
4107
4108 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4109
f9be074f
KH
41102000-01-18 Kenichi Handa <handa@etl.go.jp>
4111
4112 * regex.c (re_compile_fastmap): While checking a range table for
4113 `charset', skip flag bits for a character class correctly.
4114
52b8dbf9
GM
41152000-01-17 Gerd Moellmann <gerd@gnu.org>
4116
d36100c9
GM
4117 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4118
52b8dbf9
GM
4119 * xfns.c (x_window): Call lw_create_widget with new parameter
4120 list.
4121
4122 * widget.c (EmacsFrameSetCharSize): Change size of children first
4123 because of problems with main window geometry management under
4124 Lesstif.
4125
4126 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4127 MENU_ITEMS_ITEM_.*.
4128 (MENU_ITEMS_ITEM_HELP): New enumerator.
4129 (push_menu_item): Add parameter HELP. Record help in menu_items.
4130 (single_menu_item, single_submenu, list_of_items): Call
4131 push_menu_item with new parameter.
4132 (single_submenu): Set help string in widget value.
4133 (menu_highlight_callback): New function.
4134 (set_frame_menubar): Call lw_create_widget with new
4135 parameter list.
4136 (xmenu_show, xdialog_show): Ditto.
4137
3139018f
GM
41382000-01-13 Gerd Moellmann <gerd@gnu.org>
4139
4140 * sound.c (Fplay_sound): Improve doc string.
4141
83c8f461
RS
41422000-01-11 Richard M. Stallman <rms@gnu.org>
4143
4144 * lisp.h (set_internal): Enter the new arg.
4145
4146 * eval.c (specbind): Record buffer-local variables specially,
4147 indicating which buffer's binding was saved.
4148 (unbind_to): Restore buffer-local variables specially
4149 in the proper buffer.
4150
4151 * data.c (set_internal): New arg BUF.
427ec082 4152
83c8f461
RS
4153 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4154 * data.c (Fset): Pass new arg to set_internal.
4155 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4156
1fab1775
GM
41572000-01-11 Gerd Moellmann <gerd@gnu.org>
4158
4159 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4160 xprintsym.
4161
83c8f461 41622000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4163
4164 * minibuf.c (Ftry_completion): Doc fix.
4165
7a85e4df
GM
41662000-01-11 Gerd Moellmann <gerd@gnu.org>
4167
4168 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4169 vector, too.
4170
a970dae4
AS
41712000-01-11 Andreas Schwab <schwab@suse.de>
4172
4173 * coding.c (code_convert_region): Initialize total_skip.
4174
c65d14ee
DL
41752000-01-08 Dave Love <fx@gnu.org>
4176
4177 * eval.c (Fuser_variable_p): Check customizability too.
4178
834938d2
GM
41792000-01-07 Gerd Moellmann <gerd@gnu.org>
4180
4181 * minibuf.c (Fcompleting_read): Doc fix.
4182
e0303cd6
GM
41832000-01-05 Gerd Moellmann <gerd@gnu.org>
4184
8a26744b
GM
4185 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4186 -L /usr/local/lib.
4187
e0303cd6
GM
4188 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4189 Check that input style is supported before trying to create an
4190 IC for it.
4191 (x_window): Call x_create_im.
427ec082 4192
2e471eb5
GM
41932000-01-04 Gerd Moellmann <gerd@gnu.org>
4194
560a7bd2
GM
4195 * xfns.c (current_gif_memory_src): New variable.
4196 (gif_load): Record the address of the current memory source
4197 in current_gif_memory_src.
4198 (gif_read_from_memory): Use current_gif_memory_src.
4199
f9ee84a3
GM
4200 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4201 macros statement form.
4202
d1299cde
GM
4203 * sound.c (struct sound): Renamed from struct sound_file.
4204 (struct sound): Add members `data' and `header_size'.
4205 (enum sound_attr): Add SOUND_DATA.
4206 (current_sound, current_sound_device): Variables renamed from
4207 sound_file and sound_device.
4208 (parse_sound): Parse :data.
4209 (parse_sound): Handle sound data in strings.
4210 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4211 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4212 needed header size.
4213 (wav_play, au_play): Play sounds from string data.
4214
2e471eb5
GM
4215 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4216
4217 * lisp.h: Add prototype for allocate_string_data.
4218
4219 * alloc.c (Fgarbage_collect): Return number of live and free
4220 strings.
4221
4222 * alloc.c (mark_buffer): Remove code in #if 0.
4223 (gc_sweep): Ditto.
4224 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4225 (strings_consed): New variable.
4226 (allocate_string): Set it.
4227 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4228 (Fmemory_use_counts): Return strings_consed. Use Flist.
4229
4230 * alloc.c: General cleanup in comments etc. Remove conditional
4231 compilation for `standalone'.
4232
4233 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4234
4235 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4236 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4237 (DONT_COPY_FLAG): Removed.
4238 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4239 (struct sdata, struct sblock): New
4240 (struct string_block): Rewritten.
4241 (STRINGS_IN_STRING_BLOCK): New macro.
4242 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4243 (large_sblocks, string_blocks, string_free_list): New variables.
4244 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4245 (init_strings): Rewritten.
4246 (allocate_string, allocate_string_data, compact_small_strings)
4247 (free_large_strings, sweep_strings): New functions.
4248 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4249 (struct string_block_head, current_string_block)
4250 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4251 (STRING_PAD): Removed.
4252 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4253 (Fgarbage_collect): Don't set mark bit in large strings.
4254 (mark_object): Mark strings differently. Mark symbol names
4255 differently.
4256 (survives_gc_p): Test marked strings differently.
427ec082 4257 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4258 symbol names.
4259 (compact_strings): Removed.
4260
42608ba8
EZ
42612000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4262
4263 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4264 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4265
e0a09e1a
KH
42662000-01-04 Kenichi Handa <handa@etl.go.jp>
4267
dd9f0750 4268 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4269 in a non-empty buffer.
dd9f0750 4270
3c0f3b15 4271 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4272
44cd3ae5
GM
42732000-01-03 Gerd Moellmann <gerd@gnu.org>
4274
4275 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4276 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4277
4278 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4279
c182a70f
EZ
42802000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4281
4282 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4283 need to test for MSDOS frames.
4284
24480d5b
EZ
42852000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4286
4287 * dosfns.c (unspecified_colors): Remove.
4288 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4289 unspecified_bg.
4290 (msdos_stdcolor_name): Return strings for unspecified fore- and
4291 back-ground colors.
4292
4293 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4294 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4295 (tty_color_name): Return Lisp strings for unspecified fore- and
4296 back-ground colors.
4297 (Finternal_set_lisp_face_attribute): Remove the special treatment
4298 for Qunspecified_{f,b}g.
4299 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4300 string.
4301
047f434a
GM
43022000-01-03 Gerd Moellmann <gerd@gnu.org>
4303
4304 * xdisp.c (reseat_at_next_visible_line_start): Position before
4305 newline only if ending up on a newline.
4306 (next_element_from_ellipsis): Return success. Handle case of
4307 displaying no ellipsis. Fix case of ellipsis defined in display
4308 table.
4309 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4310 returns 0.
4311
d684c676
EZ
43122000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4313
4314 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4315 (Fcolor_supported_p): Renamed from face-color-supported-p.
4316
5fe1d139
EZ
43172000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4318
4319 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4320 list of colors renamed to tty-defined-color-alist.
4321 (tty_color_name): Pass the frame to tty-color-by-index.
4322 (realize_tty_face): tty-color-alist is now a function which
4323 accepts the frame as argument.
4324
4325 * term.c (Ftty_display_color_p): Accept an optional argument
4326 FRAME.
4327
816be8b8
EZ
43282000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4329
4330 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4331 encode_terminal_code.
4332
b635321e
EZ
43332000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4334
4335 * dispnew.c (mode_line_string): Support termcap frames as well.
4336
9b784e96
GM
43372000-01-01 Gerd Moellmann <gerd@gnu.org>
4338
27189709
GM
4339 * syntax.c (Fforward_word): Undo previous change.
4340
4341 * editfns.c (Fconstrain_to_field): Don't constrain if
4342 inhibit-field-text-motion is non-nil.
4343 (Fline_beginning_position): Undo previous change.
4344 (Fline_end_position): Ditto.
4345
4346 * syntax.c (Fforward_word): Notice field boundaries only if
4347 inhibit-field-text-motion is nil.
4348
4349 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4350
4351 * editfns.c (Vinhibit_field_text_motion): New variable.
4352 (inhibit-field-text-motion): New DEFVAR_LISP.
4353 (Fline_beginning_position, Fline_end_position): Notice field
4354 boundaries only if inhibit-field-text-motion is nil.
4355
45158a91
GM
4356 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4357 All calls adjusted.
4358 (x_build_heuristic_mask): Likewise.
4359 (xbm_load_image_from_file): Change error output.
4360 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4361 (gif_load, gs_load, x_kill_gs_process): Ditto.
4362
9b784e96
GM
4363 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4364 color indices when accessing raster pixels.
63cec32f
GM
4365 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4366 one of :file or :data.
4367 (enum pbm_keyword_index): Add PBM_DATA.
4368 (pbm_format): Add :data.
4369 (pbm_image_p): Allow either :file or :data.
4370 (pbm_read_file): New function.
4371 (pbm_scan_number): Rewritten to read from string.
4372 (pbm_load): Support :data.
9b784e96 4373
5ad6a5fb
GM
43741999-12-31 Gerd Moellmann <gerd@gnu.org>
4375
4376 * xfns.c: New image functions adapted to Emacs conventions.
4377 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4378 variable `file'.
4379
63448a4d
WP
43801999-12-31 William M. Perry <wmperry@aventail.com>
4381
4382 * xfns.c (jpeg_format): Added the :data keyword
4383 (jpeg_image_p): JPEG is valid with :file _or_ :data
4384 (jpeg_memory_src): Defined new JPEG image source to read from a
4385 memory buffer.
4386 (jpeg_load): Pay attention to the :data keyword if specified.
4387 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4388 found.
4389 (png_format): Added the :data keyword
4390 (png_image_p): PNG is valid with :file _or_ :data
4391 (png_read_from_memory): New PNG read function to read from a
4392 memory buffer.
4393 (png_load): Pay attention to the :data keyword if specified. Uses
4394 png_set_read_fn() instead of png_init_io() if specified.
4395 (tiff_format): Added the :data keyword for TIFF images.
4396 (tiff_image_p): TIFF is valid with :file _or_ :data
4397 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4398 from a memory buffer.
4399 (tiff_load): Pay attention to the :data keyword if specified.
4400 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4401 (gif_format): Added the :data keyword
4402 (gif_image_p): GIF is valid with :file _or_ :data
4403 (gif_read_from_memory): New GIF input function to read from a
4404 memory buffer.
c65d14ee 4405 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4406 instead of DGifOpenFileName() if specified.
4407
c880678e
GM
44081999-12-31 Gerd Moellmann <gerd@gnu.org>
4409
4410 * xdisp.c (next_element_from_buffer): Change assertion at the end
4411 because it doesn't hold when there's an overlay string at the end
4412 from which we deliver an image.
4413
8ccb9a54
EZ
44141999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4415
4416 * msdos.c (IT_update_begin): Don't dereference members of struct
4417 window for deleted windows.
4418
12ce2351
GM
44191999-12-30 Gerd Moellmann <gerd@gnu.org>
4420
a915c648
GM
4421 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4422 a hook, and the hook has a non-nil `no-self-insert' property, let
4423 the return value of the hook specify whether an expansion took
4424 place. If it returns nil, no expansion has been performed.
4425
12ce2351
GM
4426 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4427 differently.
4428
04ee4f45
EZ
44291999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4430
4431 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4432
7f4bc0c3
EZ
44331999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4434
4435 * dispnew.c (mode_line_string): Support MS-DOS frames.
4436
dac204bc
GM
44371999-12-29 Gerd Moellmann <gerd@gnu.org>
4438
4439 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4440
7b712ad8
KH
44411999-12-29 Kenichi Handa <handa@etl.go.jp>
4442
4443 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4444 to signal_after_change.
4445
adb9900f
EZ
44461999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4447
41ad069b
EZ
4448 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4449 dimensions changed, invalidate the mouse highlight info.
4450 (disable_mouse_highlight, help_echo, previous_help_echo): New
4451 variables.
4452 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4453 (fast_find_position, IT_note_mode_line_highlight)
4454 (IT_note_mouse_highlight): New functions.
4455 (IT_update_begin): If the redisplay affects the window where the
4456 mouse highlight is, clear the highlight. If the frame where the
4457 highlight was displayed was killed, invalidate the highlight
4458 info.
4459 (IT_update_end): Reset the highlight flag. Reset the mouse
4460 highlight-defer flag.
4461 (IT_frame_up_to_date): New function, if mouse highlight was
4462 deferred due to GC, do it now.
4463 (internal_terminal_init): Initialize mouse-highlight related
4464 members of the_only_x_display. Assign IT_frame_up_to_date to
4465 frame_up_to_date_hook.
4466 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4467 help_echo changed value, generate a HELP_EVENT event.
4468 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4469
adb9900f
EZ
4470 * msdos.h (struct display_info): New.
4471 (struct x_output): Add the display_info member.
4472 (FRAME_X_DISPLAY_INFO): New macro.
4473
481b5054
GM
44741999-12-28 Gerd Moellmann <gerd@gnu.org>
4475
4476 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4477 if MODIFF > 1.
6448a6b3 4478 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4479
4480 * buffer.c (modify_overlay): Always compute unchanged info.
4481
a2882b0d
KH
44821999-12-27 Kenichi Handa <handa@etl.go.jp>
4483
4484 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4485
89ba5b5f
KH
44861999-12-27 Kenichi Handa <handa@etl.go.jp>
4487
4488 The following changes are to use more bits for face IDs.
4489
4490 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4491 lowest 8 bits are single byte character code, the bits above are
4492 face ID.
481b5054 4493 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4494 above.
481b5054
GM
4495 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4496 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4497
4498 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4499 of GLYPH_MASK_CHAR.
4500
4501 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4502 of GLYPH_MASK_CHAR.
4503
4504 * dispextern.h (struct glyph): Make face_id and padding_p the top
4505 level members. Change members in union `u'.
4506 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4507 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4508 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4509 (CHAR_GLYPH_PADDING_P): Likewise.
4510 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4511 characters.
4512
481b5054 4513 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4514 for the change of struct glyph.
4515 (line_draw_cost): Adjusted for the change of
4516 GLYPH_FROM_CHAR_GLYPH.
4517 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4518
4519 * term.c (encode_terminal_code): Adjusted for the change of struct
4520 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4521 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4522 change of struct glyph.
4523
4524 * xdisp.c: All codes adjusted for the change of struct glyph.
4525
4526 * xterm.c: All codes adjusted for the change of struct glyph.
4527
5bcd116c
KH
45281999-12-27 Kenichi Handa <handa@etl.go.jp>
4529
4530 * composite.h (struct composition): Change the order of declaring
4531 members to reduce the byte size of the structure.
4532
f21b06b7
GM
45331999-12-25 Gerd Moellmann <gerd@gnu.org>
4534
4535 * search.c (looking_at_1): Reset immediate_quit before modifying
4536 global data.
4537
e36557c9
KH
45381999-12-24 Kenichi Handa <handa@etl.go.jp>
4539
4540 * process.c (read_process_output): Fix the arg FROM to
4541 update_compositions.
4542
83c8f461 45431999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4544
4545 * search.c (Freplace_match): For nonliteral replacement in buffer,
4546 construct all the new text first, then insert all at once.
4547
0b863bd9
DL
45481999-12-22 Dave Love <fx@gnu.org>
4549
4550 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4551
6d8e8ef3
GM
45521999-12-22 Gerd Moellmann <gerd@gnu.org>
4553
28d7281d
GM
4554 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4555 lead to size changes to after the X window has been created.
4556
e22ef6eb 4557 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4558 variable in xassert.
4559
8affcced
KH
45601999-12-22 Kenichi Handa <handa@etl.go.jp>
4561
4562 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4563 only when the frame is not for a window system.
8affcced 4564
f2be1146
GM
45651999-12-22 Gerd Moellmann <gerd@gnu.org>
4566
deca1348
GM
4567 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4568 redisplay after changing the multibyteness of a buffer.
4569
f2be1146
GM
4570 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4571 frame's X window to XFilterEvent instead of None because that's
4572 the X window for which the IC was created. This makes dead
4573 accents work when the pointer is not in Emacs' frame.
4574 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4575
a744a2ec
DL
45761999-12-20 Dave Love <fx@gnu.org>
4577
4578 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4579
9e6985ed
GM
45801999-12-19 Gerd Moellmann <gerd@gnu.org>
4581
4582 * eval.c (debugger_may_continue): New variable.
4583 (syms_of_eval): Add a DEFVAR_BOOL for it.
4584 (call_debugger): Bind it.
4585
3b620731
EZ
45861999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4587
4588 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4589 fp->tty_reverse_p is set, unless the computed colors are identical
4590 to frame colors. Print both original and computed colors to
4591 termscript file.
4592 (IT_write_glyphs): Track the changes in handling of composite
4593 characters.
4594 (IT_set_frame_parameters): Don't set frame colors from
4595 unspecified-fg and unspecified-bg pseudo-colors.
4596
0f9a51c4
DL
45971999-12-17 Dave Love <fx@gnu.org>
4598
4599 * data.c (Fkeywordp): New function.
4600 (syms_of_data): Install it.
4601
363e4e42
EZ
46021999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4603
4604 * xfaces.c (tty_defined_color): Fix last change.
4605
cfad01b4
GM
46061999-12-15 Gerd Moellmann <gerd@gnu.org>
4607
4608 * xdisp.c (redisplay_window) <optional new window start>: Check
4609 that window start is in [BEGV..ZV].
4610
f9d2fdc4
EZ
46111999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4612
4613 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4614 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4615
4616 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4617 (syms_of_xfaces): Initialize and staticpro them.
4618 (tty_defined_color): If the color name is unspecified-fg or
4619 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4620 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4621 (tty_color_name): If the color pixel value is either
4622 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4623 Qunspecified_fg or Qunspecified_bg, respectively.
4624 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4625 and Qunspecified_bg for foreground and background colors.
4626 (realize_default_face): If the foreground and background colors
4627 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4628 (realize_tty_face): By default, set the face colors to
4629 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4630 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4631 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4632 Reverse the colors if the default colors were reversed.
4633
4634 * dispnew.c (init_display): Initialize the frame pixels of the
4635 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4636 FACE_TTY_DEFAULT_BG_COLOR.
4637
4638 * term.c (turn_on_face): If the default fore- and background
4639 colors are reversed, enter inverse video mode. Don't send color
4640 escape sequences for unspecified foreground and background colors.
4641 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4642
4643 * dosfns.c (unspecified_colors): New variable.
4644 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4645 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4646 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4647 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4648 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4649 Qunspecified_bg, respectively.
4650
4651 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4652 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4653
e19539f1
KH
46541999-12-15 Kenichi Handa <handa@etl.go.jp>
4655
4656 * coding.c (code_convert_region): Fix the secoding arg to
4657 update_compositions.
4658
5ec14d3c
KH
46591999-12-15 Kenichi Handa <handa@etl.go.jp>
4660
4661 The following changes are for the new composition mechanism. We
4662 have deleted `composition' charset and composite characters,
4663 instead introduced a special text property `composition'.
4664
4665 * Makefile.in (INTERVAL_SRC): Include composite.h.
4666 (INTERVAL_OBJ): Include composite.o.
4667 (SOME_MACHINE_OBJECTS): Include composite.o.
4668 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4669 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4670 Depend on composite.h.
4671 (doc.o): Depend on charset.h.
4672 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4673 (composite.o): New target.
427ec082 4674
5ec14d3c
KH
4675 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4676
4677 * callproc.c (Fcall_process): Call code_convert_string to encode
4678 arguments. Use CODING_REQUIRE_DECODING to check if the process
4679 output should be decoded.
4680
4681 * casefiddle.c: Include composite.h.
4682 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4683 multibyte character. Adjusted for the change of CHAR_STRING.
4684 (casify_region): Likewise. Call update_compositions.
4685
4686 * category.h (CATEGORY_SET): Delete codes for a composite
4687 character.
4688
4689 * category.c (word_boundary_p): Delete codes for a composite
4690 character.
4691 (Fmake_category_table): New function.
4692 (syms_of_category): Defsubr it.
4693
4694 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4695 (ccl_driver): Delete codes for a composite character.
4696
4697 * charset.h: In this entry, just `Modified' means that codes for a
4698 composite character is deleted.
4699 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4700 (charset_composition) (MIN_CHAR_COMPOSITION)
4701 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4702 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4703 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4704 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4705 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4706 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4707 Modified.
4708 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4709 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4710 non_ascii_char_to_string.
4711 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4712 (STRING_CHAR_AND_LENGTH): Likewise.
4713 (FETCH_CHAR_ADVANCE): New macro.
4714 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4715 (MAX_MULTIBYTE_LENGTH): New macro.
4716 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4717 (find_charset_in_str): Argument adjusted.
4718 (CHAR_LEN): Modified.
427ec082 4719
5ec14d3c
KH
4720 * charset.c: In this entry, just `Modified' means that codes for a
4721 composite character is deleted.
4722 (Qcomposition) (leading_code_composition)
4723 (charset_composition) (min_composite_char) (cmpchar_table)
4724 (cmpchar_table_size) (n_cmpchars): Deleted.
4725 (SPLIT_COMPOSITE_SEQ): Deleted.
4726 (SPLIT_MULTIBYTE_SEQ): Modified.
4727 (char_to_string): Renamed from non_ascii_char_to_string.
4728 Modified.
4729 (string_to_char): Renamed from string_to_non_ascii_char.
4730 (split_string): Renamed from split_non_ascii_string.
4731 (char_printable_p) (Fsplit_char)
4732 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4733 (char_bytes) (Fchar_width) (strwidth): Modified.
4734 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4735 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4736 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4737 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4738 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4739 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4740 (Fcmpchar_cmp_count): Deleted.
4741 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4742 (init_charset_once): Modified.
4743 (syms_of_charset): Modified.
4744
4745 * cmds.c (internal_self_insert): Adjusted for the change of
4746 CHAR_STRING.
4747
4748 * coding.h (emacs_code_class_type): Delete the member
4749 EMACS_leading_code_composition.
4750 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4751 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4752 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4753 (COMPOSING_WITH_RULE_P): Macros deleted.
4754 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4755 macros.
4756 (struct composition_data): New structure.
4757 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4758 (struct coding_system): New members composition_rule_follows,
4759 cmp_data, cmp_data_start, cmp_data_index.
4760 (coding_save_composition) (coding_free_composition_data)
4761 (coding_adjust_composition_offset): Extern them.
4762
4763 * coding.c: Include composite.h.
4764 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4765 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4766 of multibyte code here.
4767 (DECODE_CHARACTER_DIMENSION2): Likewise.
4768 (detect_coding_emacs_mule): Change the case label from
4769 EMACS_leading_code_composition to 0x80.
4770 (detect_coding_iso2022): Handle new composition sequence.
4771 (DECODE_ISO_CHARACTER): Likewise.
4772 (check_composing_code): Deleted.
4773 (coding_allocate_composition_data): New function.
4774 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4775 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4776 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4777 (decode_coding_iso2022): Handle new composition sequence.
4778 (ENCODE_ISO_CHARACTER): Don't check composition here.
4779 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4780 (ENCODE_COMPOSITION_NO_RULE_START)
4781 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4782 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4783 (ENCODE_COMPOSITION_FAKE_START): New macro.
4784 (encode_coding_iso2022): Handle new composition sequence.
4785 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4786 (encode_coding_sjis_big5): Ignore composition.
4787 (setup_coding_system): Initialize new members of struct
4788 coding_system. Enable composition only when the coding system has
4789 `composition' property t.
4790 (coding_free_composition_data) (coding_adjust_composition_offset)
4791 (coding_save_composition) (coding_restore_composition): New
4792 functions.
4793 (code_convert_region): Call coding_save_composition for encoding
4794 and coding_allocate_composition_data for decoding. Don't skip
4795 ASCII characters if we handle composition on encoding. Call
4796 signal_after_change with Check_BORDER.
4797 (code_convert_string): Call coding_save_composition for encoding
4798 and coding_allocate_composition_data for decoding. Don't skip
4799 ASCII characters if we handle composition on encoding.
4800 (code_convert_string1): Set Vlast_coding_system_used after calling
4801 code_convert_string.
4802 (code_convert_string_norecord): Disable composition.
4803 (Fset_terminal_coding_system_internal): Likewise.
4804 (Fset_safe_terminal_coding_system_internal): Likewise.
4805 (Fset_keyboard_coding_system_internal): Likewise.
4806 (init_coding_once): Set emacs_code_class[0x80] to
4807 EMACS_invalid_code.
4808
4809 * composite.h: New file.
4810
4811 * composite.c: New file.
4812
4813 * data.c (Faref): Delete codes for a composite character..
4814 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4815
4816 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4817 (struct glyph): Add new sub-structure cmp to the union `u'.
4818 (enum display_element_type): New member IT_COMPOSITION.
4819 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4820 (struct it): New members cmp_id, cmp_len.
4821
4822 * dispnew.c (direct_output_forward_char): Check point moving into
4823 or out of a composition. If so, give up direct method.
4824
4825 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4826
4827 * editfns.c (Fchar_to_string): Adjusted for the change of
4828 CHAR_STRING.
4829 (general_insert_function): Likewise.
4830 (Finsert_char): Likewise.
4831 (Fsubst_char_in_region): Likewise. Call update_compositions.
4832 (Ftranslate_region): Call update_compositions.
4833 (Ftranspose_regions): Call update_compositions.
4834
4835 * emacs.c (main): Call syms_of_composite.
4836
4837 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4838 CHAR_STRING.
4839 (Finsert_file_contents): Set Vlast_coding_system_used before
4840 calling signal_after_change. Call update_compositions if some
4841 texts are inserted..
4842 (Fwrite_region): Adjusted for the change of a_write and e_write.
4843 (a_write): Argument changed. Work based on character position,
4844 not byte position.
4845 (e_write): Argument changed. Handle new way of composition.
4846
4847 * fns.c (Flength): The length of char-table is MAX_CHAR.
4848 (concat): Adjusted for the change of CHAR_STRING.
4849 (Ffillarray): Adjusted for the change of CHAR_STRING.
4850 (Fset_char_table_default): Delete codes for a composite character.
4851 (hash_put): Return hash index.
4852
4853 * fontset.h (struct font_info): New member vertical_centering.
4854 (Vvertical_centering_font_regexp): Extern it.
4855
4856 * fontset.c (Vvertical_centering_font_regexp): New variable.
4857 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4858 Set Vignore_relative_composition to nil.
4859 (fs_load_font): Initialize `vertical_centering' of struct
4860 font_info.
4861
4862 * indent.c (check_composition): New function.
4863 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4864 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4865 (current_column_1): Handle new way of composition.
4866 (Fmove_to_column): Likewise.
4867 (compute_motion): Likewise.
4868
4869 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4870 (insert_char): Likewise.
4871 (insert): Call update_compositions.
4872 (insert_and_inherit): Likewise.
4873 (insert_before_markers): Likewise.
4874 (insert_before_markers_and_inherit): Likewise.
4875 (insert_from_string): Likewise.
4876 (insert_from_string_before_markers): Likewise.
4877 (insert_from_buffer): Likewise.
4878 (replace_range): Likewise.
4879 (count_combining_composition): Deleted.
4880 (count_combining_before): Delete codes for a composite character.
4881 (count_combining_after): Likewise.
4882 (del_range_1): Call update_compositions.
4883 (del_range_byte): Likewise.
4884 (del_range_both): Likewise.
4885 (Fcombine_after_change_execute): Likewise.
4886
4887 * intervals.h: Include composite.h.
4888 (get_property_and_range): Extern it.
4889 (Vtext_property_default_nonsticky): Extern it.
427ec082 4890
5ec14d3c
KH
4891 * intervals.c (adjust_intervals_for_insertion): To check stickines
4892 of properties, pay attention to text-property-default-nonsticky.
4893 (merge_properties_sticky): Likewise.
4894 (get_property_and_range): New function.
4895
4896 * keyboard.c (Vdisable_point_adjustment): New variable.
4897 (Vglobal_disable_point_adjustment): New variable.
4898 (syms_of_keyboard): Declare them as Lisp variables.
4899 (command_loop_1): Check them and call adjust_point_for_property if
4900 necessary.
4901 (adjust_point_for_property): New function.
4902
4903 * keymap.c (push_key_description): Adjusted for the change of
4904 CHAR_STRING.
4905 (Ftext_char_description): Likewise.
4906
4907 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4908 (hash_put): Adjusted for the change of the definition.
4909 (signal_after_change): Likewise.
4910 (check_point_in_composition): Extern it.
4911
4912 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4913 Delete a code that handles an invalid too-long multibyte sequence
4914 because we are now sure that we never encounter with such a
4915 sequence.
4916 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4917 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4918 (init_obarray): Likewise.
4919 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4920
4921 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4922
4923 * process.c: Include composite.h.
4924 (read_process_output): Call update_compositions.
4925
4926 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4927
4928 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4929
4930 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4931 character.
4932
4933 * term.c (encode_terminal_code): Delete codes for a composite
4934 character. Adjusted for the change of CHAR_STRING.
4935 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4936 Delete codes for a composite character.
4937
4938 * textprop.c (Vtext_property_default_nonsticky): New variable
4939 (syms_of_textprop): Declare it as a Lisp variable.
4940
4941 * window.c (Frecenter): Clear all caches of compositions.
4942
4943 * xdisp.c (it_props): Add an entry for composition.
4944 (face_before_or_after_it_pos): For composition, check face of a
4945 character after the composition.
4946 (handle_composition_prop): New function.
4947 (get_next_display_element): Adjusted for the change of
4948 CHAR_STRING.
4949 (set_iterator_to_next): Handle the case that it->method ==
4950 next_element_from_composition.
4951 (next_element_from_composition): New function.
4952 (message_dolog): Adjusted for the change of CHAR_STRING.
4953 (set_message_1): Likewise.
4954 (check_point_in_composition): New function.
4955 (reconsider_clip_changes): If point moved into or out of
4956 composition, set b->clip_changed to 1 to force updating of the
4957 screen.
4958 (disp_char_vector): Delete codes for a composite character.
4959 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4960
4961 * xfaces.c (choose_face_fontset_font): Delete codes for a
4962 composite character.
4963 (realize_x_face): Likewise. Change a place to set local variable
4964 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4965
4966 * xfns.c: Include intervals.h.
4967 (syms_of_xfns): Make `display' property nonsticky by default.
4968
4969 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4970 for find_charset_in_str.
4971
4972 * xterm.h (struct x_output): Change member font_baseline to
4973 baseline_offset.
4974
4975 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4976 for composition.
4977 (x_append_composite_glyph): New function.
4978 (VCENTER_BASELINE_OFFSET): New macro.
4979 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4980 of struct it for the composition. Cache pixel offsets in the
4981 struct composition. Delete codes for a composite character.
4982 Handle Vignore_relative_composition in composition code.
4983 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4984 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4985 (x_compute_glyph_string_overhangs): Likewise.
4986 (x_get_glyph_overhangs): Delete codes for a composite character.
4987 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4988 (x_draw_glyph_string_background): Likewise. Delete codes for
4989 checking s->gidx for a composition.
4990 (x_draw_glyph_string_foreground): Delete code for a composite
4991 character.
4992 (x_draw_composite_glyph_string_foreground): New function.
4993 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4994 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4995 (struct work): Deleted.
4996 (x_fill_composite_glyph_string): Argument changed. Mostly
4997 rewritten for that.
4998 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4999 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
5000 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
5001 (BUILD_GLYPH_STRINGS): For composition, call
5002 BUILD_COMPOSITE_GLYPH_STRING.
5003 (x_new_font): Initialize f->output_data.x->baseline_offset, not
5004 f->output_data.x->font_baseline.
5005
c3c60f13
GM
50061999-12-14 Gerd Moellmann <gerd@gnu.org>
5007
5008 * xterm.c (show_mouse_face): Don't use updated_area, use
5009 TEXT_AREA.
5010
83c8f461 50111999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5012
5013 * minibuf.c (Fall_completions): Doc fix.
5014
83c8f461 50151999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5016
5017 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5018 has been changed by the Lisp code.
5019
d8eccf12
GM
50201999-12-12 Gerd Moellmann <gerd@gnu.org>
5021
5022 * xfns.c: Indentation fixes.
5023
ae56feae
SM
50241999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5025
5026 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5027
dfa1c6ae
GM
50281999-12-10 Gerd Moellmann <gerd@gnu.org>
5029
5030 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5031 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5032
5033 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5034 to frame.h.
5035
ec18280f
SM
50361999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5037
5038 * keyboard.c (Qratio): New symbol.
5039 (scroll_bar_parts): Add `Qratio' to it.
5040 (syms_of_keyboard): Init `Qratio'.
5041 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5042 * xterm.c (#includes): Allow compilation with only Xaw.
5043 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5044 (xt_action_hook): Replace XAW3D by XAW.
5045 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5046 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5047 Determine epsilon dynamically and don't try to be too clever.
5048 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5049 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5050 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5051 scrollbar (using `ratio').
5052 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5053 scrollbar we have so as to set it up more optimally and to fix
5054 xaw3d_arrow_scroll and xaw3d_pick_top.
5055 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5056 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5057 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5058 is not ignored, using a major gross hack.
5059 (x_initialize): Init default values for xaw3d_arrow_scroll and
5060 xaw3d_pick_top.
5061
83b6d970
DL
50621999-12-09 Dave Love <fx@gnu.org>
5063
5064 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5065
3648c842
GM
50661999-12-08 Gerd Moellmann <gerd@gnu.org>
5067
5068 * eval.c: Remove conditional compilation on `standalone'.
5069 (call_debugger): When entering the debugger while redisplaying,
5070 reset redisplaying_p, and go back to the top-level if the debugger
5071 returns.
5072
05e71564
GM
50731999-12-07 Gerd Moellmann <gerd@gnu.org>
5074
5075 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5076 basic faces are realized before trying to use face `menu'.
5077
5078 * window.c (delete_window): Block input for the time window
5079 matrices are being changed.
5080
b46cd536
DL
50811999-12-07 Dave Love <fx@gnu.org>
5082
5083 * lread.c (Fintern_soft): Fix newlines in doc string.
5084
96acb1f7
GM
50851999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5086
5087 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5088 duplicate definition of ElfW.
5089 (find_section): Copied from unexsgi.c.
5090 (unexec): Use find_section. Adjust whitespace. Initialize
5091 new_data2_offset based on old_data, not sbss (this fixes a bug on
5092 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5093 Adjust test for presence of .mdebug section to the new return
5094 value of find_section.
427ec082 5095
96acb1f7
GM
50961999-12-07 Gerd Moellmann <gerd@gnu.org>
5097
5098 * unexelf.c: Merge changes from 20.5.
5099 (unexec): Handle .lit4 and .lit8 unconditionally.
5100
5101 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5102 unexsgi.o again.
427ec082 5103
96acb1f7
GM
5104 * m/iris5d.h (UNEXEC): Likewise.
5105
7dae4502
SM
51061999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5107
5108 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5109 (syms_of_editfns): Register it.
5110 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5111 (del_range_1, del_range_2): Add a ret_string argument to
5112 request that the deleted text be returned.
5113 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5114 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5115 * casefiddle.c (casify_region): Update del_range_1 call.
5116 * coding.c (code_convert_region): Update del_range_2 call.
5117 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5118
397e4fae
GM
51191999-12-06 Gerd Moellmann <gerd@gnu.org>
5120
5121 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5122
3d973f71
GM
51231999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5124
5125 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5126
740e985f
EZ
51271999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5128
5129 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5130
5131 * insdel.c (adjust_markers_for_delete): Fix last change.
5132
2d764c78
EZ
51331999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5134
5135 Changes for automatic remapping of X colors on terminal frames:
5136
5137 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5138 frames.
5139 (Vface_tty_color_alist): Remove.
5140 (tty_defined_color): New function.
5141 (defined_color): Rewrite to support any type of frame.
5142 (tty_color_name): New function.
5143 (face_color_supported_p, Fface_color_gray_p,
5144 Fface_color_supported_p): Support non-X frames.
5145 (load_color): Enclose the color name in quotes, in the log
5146 messages. Remove DOS-specific version of load_color.
5147 (realize_tty_face): Take the supported colors from
5148 tty-color-alist. Support translation of X colors to the closest
5149 tty color, for both MSDOS and tty frames.
5150 [MSDOS]: Don't invert face colors if they were taken from the
5151 frame colors.
5152 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5153
5154 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5155 Define a mostly empty surrogate.
5156 (tty_display): Declare.
5157
5158 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5159 tty_display.
5160 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5161 frames when the frame's param_alist includes 'reverse.
5162 (tty_display): Define.
5163 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5164 output_data.x member.
5165 (Fframe_parameters): Return foreground and background color names
5166 on tty frames as well, in addition to MSDOS frames.
5167
5168 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5169 selected_frame.
5170 (struct x_output): Remove unused members; document who uses each
5171 member.
5172 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5173 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5174 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5175 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5176 unused macro definintions.
5177
5178 * msdos.c (IT_set_frame_parameters): Don't call
5179 recompute_basic_faces, the next redisplay will, anyway.
5180 (x_current_display): Remove unused variable.
5181 Many functions: changes for Lisp_object selected_frame.
5182 (IT_set_face): If the tty_reverse_p flag is set for the face,
5183 reverse the foreground and background colors.
5184 (Fmsdos_remember_default_colors): New function.
5185 (syms_of_msdos): Defsubr it.
5186 (IT_set_frame_parameters): Use initial_screen_colors[] when
5187 creating a new frame. If the frame parameters include 'reverse,
5188 swap the foreground and background colors.
5189 (internal_terminal_init): Initialize initial_screen_colors to -1.
5190 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5191 cus-start.el.
5192
5193 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5194
5195 * xfns.c (x_defined_color): Rename from defined_color. All
5196 callers changed.
5197 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5198 all callers changed.
5199 (Fxw_color_values): Renamed from Fx_color_values; all callers
5200 changed.
5201 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5202 callers changed.
5203 (x_window_to_frame, x_any_window_to_frame,
5204 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5205 x_top_window_to_frame): Use !FRAME_X_P instead of
5206 f->output_data.nothing.
5207 * xterm.h (x_defined_color): Rename from defined_color.
5208
5209 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5210 f->output_data.nothing.
5211 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5212 all callers changed.
5213 (Fxw_color_values): Renamed from Fx_color_values; all callers
5214 changed.
5215 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5216 callers changed.
5217
5218 * dispextern.h (tty_color_name): Add prototype.
5219
5220 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5221 f->output_data.nothing.
5222 * w32menu.c (menubar_id_to_frame): Likewise.
5223 * w32term.h (w32_output): Declare.
5224
5225 * dosfns.c (Qmsdos_color_translate): Remove.
5226 (msdos_stdcolor_name): Now returns a Lisp_Object.
5227 * dosfns.h (Qmsdos_color_translate): Remove.
5228
5229 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5230
b3e5232e
KH
52311999-12-06 Kenichi Handa <handa@etl.go.jp>
5232
5233 * fileio.c (decide_coding_unwind): Renamed from
5234 set_auto_coding_unwind.
5235 (Finsert_file_contents): Make single unwind protect to call both
5236 Vset_auto_coding_function and Ffind_operation_coding_system.
5237
5238 * insdel.c (adjust_markers_for_delete): Make it non-static.
5239
db0e466c
SM
52401999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5241
5242 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5243 operators and handle them properly.
5244 * regex.h (RE_ALL_GREEDY): New option.
5245 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5246 sorting would put it.
5247 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5248 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5249
22afa6e8
DL
52501999-12-04 Dave Love <d.love@dl.ac.uk>
5251
5252 * m/arm.h: New file.
5253
40afb967
DL
52541999-12-03 Dave Love <fx@gnu.org>
5255
5256 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5257
ddf8eff5
GM
52581999-12-02 Gerd Moellmann <gerd@gnu.org>
5259
5260 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5261 for building with Motif.
5262
5263 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5264 unexelf.o.
427ec082 5265
ddf8eff5
GM
5266 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5267
fa09a82d
DL
52681999-12-01 Dave Love <fx@gnu.org>
5269
5270 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5271
ddf8eff5
GM
52721999-11-28 Gerd Moellmann <gerd@gnu.org>
5273
5274 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5275 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5276 macros.
5277
5278 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5279
fa09a82d
DL
52801999-11-28 eliz <eliz@dlpx1>
5281
5282 * emacs.c (synchronize_locale): Avoid compiler warnings about
5283 pointer type mismatch.
5284
f9632fc8
GM
52851999-11-28 Gerd Moellmann <gerd@gnu.org>
5286
717d0121
GM
5287 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5288 out of range position.
5289
427ec082 5290 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5291 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5292
59c65f1e
EZ
52931999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5294
613a8346
EZ
5295 * charset.c (Fmake_char_internal): Print the charset ID when
5296 signalling an error.
5297
59c65f1e
EZ
5298 * emacs.c (synchronize_locale): Avoid compiler warnings about
5299 pointer type mismatch.
5300
83c8f461 53011999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5302
5303 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5304
18df9369
GM
53051999-11-26 Gerd Moellmann <gerd@gnu.org>
5306
65a3ccf7
GM
5307 * puresize.h (BASE_PURESIZE): Increase to 550000.
5308
b3b98592
GM
5309 * textprop.c (set_text_properties): New function. Like
5310 Fset_text_properties, but with additional parameter
5311 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5312 changes.
5313 (Fset_text_properties): Use it.
5314
5315 * insdel.c (insert_1_both): Call set_text_properties with last
5316 parameter nil so that no after changes will be signaled.
5317
5318 * lisp.h: Add prototype for set_text_properties.
5319
18df9369
GM
5320 * xfaces.c (set_lface_from_font_name): Fix previous change.
5321 (recompute_basic_faces): Change assert to abort.
5322
71a8e74b
DL
53231999-11-25 Dave Love <fx@gnu.org>
5324
5325 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5326 (Fmember, Fdelq, Fdelete): Inline car.
5327 (Fy_or_n_p): Doc fix.
5328
bc6a5782
GM
53291999-11-25 Gerd Moellmann <gerd@gnu.org>
5330
3221576b 5331 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5332 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5333 is not set, try to use a reasonable default.
5334
bc6a5782
GM
5335 * dispnew.c (direct_output_for_insert): Set glyph row's
5336 displays_text_p flag. Correct window's window_end_vpos if
5337 necessary.
5338
0c8559bb
PE
53391999-11-25 Paul Eggert <eggert@twinsun.com>
5340
5341 * emacs.c (fixup_locale): Don't bother to record initial locale.
5342 (synchronize_locale): If the desired locale is nil,
5343 treat it as if it were the empty string,
5344 so that we set the locale from the environment.
5345
35737351
KH
53461999-11-25 Kenichi Handa <handa@etl.go.jp>
5347
5348 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5349 of the current buffer via Fset.
5350
5562b47f
DL
53511999-11-24 Dave Love <fx@gnu.org>
5352
5562b47f
DL
5353 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5354
5355 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5356
00da0e4a
GM
53571999-11-24 Gerd Moellmann <gerd@gnu.org>
5358
5359 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5360
5361 * emacs.c (PVEC_FLAG): New variable.
5362
b1775dc1
GM
53631999-11-23 Gerd Moellmann <gerd@gnu.org>
5364
5365 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5366 that fails on IBM PowerPC, AIX 4.2.
427ec082 5367
08de6200
EZ
53681999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5369
5370 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5371 string of mode-line-format. Remove the obsolete %t.
5372
02fda8ff
GM
53731999-11-22 Gerd Moellmann <gerd@gnu.org>
5374
f2fa858f
GM
5375 * dispnew.c (direct_output_for_insert): Increment glyph positions
5376 for glyphs from buffer text only.
5377
02fda8ff
GM
5378 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5379 (gdb_data_seg_bits): New variables.
427ec082 5380
02fda8ff
GM
5381 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5382 work on systems not allowing enumerators > INT_MAX, and it
5383 won't work if EMACS_INT is long long.
5384
1b0d24e7
PE
53851999-11-22 Paul Eggert <eggert@twinsun.com>
5386
5387 Port to SunOS 4.1.x again. Help out with Alpha port.
5388 Rename messages-locale to system-messages-locale,
5389 and likewise for time-locale.
427ec082 5390
1b0d24e7
PE
5391 * callproc.c (strerror): Remove decl.
5392 * fileio.c (strerror): Likewise.
5393 * process.c (strerror): Likewise.
5394 * emacs.c (strerror): Likewise.
5395 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5396 All uses changed.
5397 (Vprevious_system_messages_locale): Likewise, from
5398 Vprevious_messages_locale.
5399 (Vsystem_time_locale): Likewise, from Vtime_locale.
5400 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5401 (ABORT_RETURN_TYPE): New macro.
5402 (abort): Return type is now ABORT_RETURN_TYPE.
5403 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5404 defined.
5405 (syms_of_emacs): messages-locale -> system-messages-locale,
5406 previous-messages-locale -> previous-system-messages-locale,
5407 time-locale -> system-time-locale,
5408 previous-time-locale -> previous-system-time-locale.
5409
5410 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5411 (const): Do not define; that's config.h's job.
5412 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5413 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5414 (<stddef.h>): Include if STDC_HEADERS is defined.
5415 (FREE_RETURN_TYPE): New macro.
5416 (free): Return type is now FREE_RETURN_TYPE.
5417
5418 * lisp.h (synchronize_system_time_locale): Renamed from
5419 synchronize_time_locale. All uses changed.
5420 (synchronize_system_messages_locale): Likewise, from
5421 synchronize_messages_locale.
5422
5423 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5424 stdlib.h now does this.
5425
5426 * process.c (sys_siglist): Remove.
5427
5428 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5429 New macros.
5430
5431 * syntax.c (scan_sexps_forward): Use abort, not assert.
5432
5433 * sysdep.c (my_sys_siglist): New var.
5434 (sys_siglist): New macro. Remove old initialized vars of same name.
5435 (init_signals): Initialize sys_siglist.
5436
5437 * xfns.c (abort): Remove decl; stdlib.h now does this.
5438
0dcd5b54
DL
54391999-11-18 Dave Love <fx@gnu.org>
5440
946173ad
DL
5441 * filelock.c: Add forward declaration for get_boot_time_1.
5442
0dcd5b54
DL
5443 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5444
71447e8f
GM
54451999-11-18 Gerd Moellmann <gerd@gnu.org>
5446
5447 * buffer.h (struct buffer_text): Add comment about moving
5448 buffer text if REL_ALLOC is defined.
5449
eeedff63
KH
54501999-11-18 Kenichi Handa <handa@etl.go.jp>
5451
5452 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5453
5454 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5455 memory for push_key_description.
5456
5457 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5458 allocate memory for push_key_description.
5459 (describe_buffer_bindings): Likewise.
5460
5d7e4a2c
GM
54611999-11-17 Gerd Moellmann <gerd@gnu.org>
5462
5463 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5464 (Fx_hide_busy_cursor): Ditto.
5465
54661999-11-17 Marco Walther <walther@siemens-pyramid.com>
5467
5468 * unexsni.c (unexec): Handle .rel.dyn section.
5469
b5b41e02
DL
54701999-11-16 Dave Love <fx@gnu.org>
5471
5472 * doc.c (Fdocumentation): Remove gcpro here too.
5473
e35b6123
GM
54741999-11-16 Gerd Moellmann <gerd@gnu.org>
5475
5476 * keyboard.c (command_loop_1): Remove no_redisplay.
5477
83c8f461 54781999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5479
5480 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5481 in noninteractive.
5482
b05d3bee
GM
54831999-11-14 Gerd Moellmann <gerd@gnu.org>
5484
5bcfeb49
GM
5485 * xdisp.c (ensure_echo_area_buffers): New.
5486 (with_echo_area_buffer): Use it.
5487 (setup_echo_area_for_printing): Ditto.
5488
b05d3bee
GM
5489 * buffer.c (indicate-empty-lines): Doc-fix.
5490
9b2e6e4c
GM
54911999-11-12 Gerd Moellmann <gerd@gnu.org>
5492
e7f90eab
GM
5493 * term.c (term_init): If "op" isn't available, don't support color
5494 because we can't switch back to the default foreground and
5495 background.
5496
9b2e6e4c
GM
5497 * doc.c (Fdocumentation_property): Remove GCPRO because
5498 Fsubstitute_command_keys gcpro's the string.
5499
1bf21027
KH
55001999-11-12 Kenichi Handa <handa@etl.go.jp>
5501
5502 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5503
3bc6df53
GM
55041999-11-11 Gerd Moellmann <gerd@gnu.org>
5505
5506 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5507 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5508 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5509
35a5514b
GM
55101999-11-10 Gerd Moellmann <gerd@gnu.org>
5511
5512 * xfns.c (QCuser_data): Removed.
5513 (syms_of_xfns): Initialization of QCuser_data removed.
5514 (parse_image_spec): Don't handle :user-data specially. Allow
5515 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5516 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5517 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5518 parse_image_spec accordingly.
5519
83c8f461 55201999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5521
5522 * cmds.c (Fbeginning_of_line): Doc fix.
5523 (Fend_of_line): Doc fix.
5524
5525 * editfns.c (Fline_beginning_position): If N is not 1,
5526 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5527
5528 * syntax.c (Fforward_word): Handle fields even if would have hit
5529 an edge of the buffer. Return nil if affected by fields.
5530
83c8f461 55311999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5532
5533 * editfns.c (preceding_pos): Function deleted.
5534 (text_property_stickiness): Decrement POS directly.
5535 Fix a confusion that used PT instead of POS.
5536
5537 * editfns.c (find_field): Properly handle the case
5538 of a field boundary where `field' inherits from neither side.
5539
5540 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5541 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5542
fa9aabf6
GM
55431999-11-08 Gerd Moellmann <gerd@gnu.org>
5544
5545 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5546 BEFORE_POTENTIAL_GC before DISCARD.
5547
4015b3c0
GM
55481999-11-07 Gerd Moellmann <gerd@gnu.org>
5549
033a5fa3
GM
5550 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5551
5552 * lisp.h: Add prototype for unmark_byte_stack.
5553
5554 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5555 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5556 XUNMARK.
5557
55b064bd
GM
5558 * xdisp.c (resize_mini_window): Fix computation of needed
5559 mini-window height.
5560
5561 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5562 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5563
4015b3c0 5564 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5565 locally there. Rearrange case statements so that those most
4015b3c0
GM
5566 frequently executed come first. Avoid goto's in frequently
5567 executed cases.
5568
fe512f27
GM
55691999-11-05 Gerd Moellmann <gerd@gnu.org>
5570
dd59e217
GM
5571 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5572 AFTER_POTENTIAL_GC around internal_catch.
5573
bcf28080
GM
5574 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5575 relocate_byte_pcs.
5576 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5577
5578 * eval.c (struct catchtag): Add member byte_stack.
5579 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5580 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5581 catchtag.
5582 (unwind_to_catch): Restore byte_stack_list from catchtag.
5583
5584 * lisp.h: Add prototypes for new functions in bytecode.c.
5585 Add extern declaration for byte_stack_list.
5586
5587 * bytecode.c (struct byte_stack): New.
5588 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5589 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5590 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5591 (HANDLE_RELOCATION): Removed.
5592 (Fbyte_code): Use byte_stack structures.
5593
4d59c34c
GM
5594 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5595
fe512f27
GM
5596 * buffer.c (syms_of_buffer): Extend documentation of
5597 mode-line-format.
5598
60b64cd6
GM
55991999-11-04 Gerd Moellmann <gerd@gnu.org>
5600
5601 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5602
5603 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5604 Ferase_field instead of Fdelete_field.
5605
b51b619b
GM
56061999-11-03 Gerd Moellmann <gerd@gnu.org>
5607
5608 * dispnew.c (Finternal_show_cursor): Change it to set the
5609 cursor on/off, not toggle its state.
5610 (Finternal_show_cursor_p): New.
5611 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5612
5865af0d
DL
56131999-11-03 Dave Love <fx@gnu.org>
5614
5615 * charset.c (split_non_ascii_string): Define return value.
5616
82a700f3
GM
56171999-11-03 Gerd Moellmann <gerd@gnu.org>
5618
edfef199
GM
5619 * minibuf.c (string_to_object): New.
5620 (read_minibuf_noninteractive): New.
5621 (read_minibuf): Call read_minibuf_noninteractive if
5622 noninteractive. Use string_to_object.
5623
82a700f3
GM
5624 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5625
b5540f0d
DL
56261999-11-02 Dave Love <fx@gnu.org>
5627
e69dcd60
DL
5628 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5629
827a1788
DL
5630 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5631 declared with glibc2.
b5540f0d 5632
a69a6e61
GM
56331999-11-02 Gerd Moellmann <gerd@gnu.org>
5634
5635 * lisp.h (QUIT): Give it statement form.
5636
87e21fbd
DL
56371999-11-02 Dave Love <fx@gnu.org>
5638
5639 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5640
1b335865
GM
56411999-11-02 Gerd Moellmann <gerd@gnu.org>
5642
9fb5e03d
GM
5643 * xfns.c (QCuser_data): New.
5644 (syms_of_xfns): Initialize QCuser_data.
5645 (parse_image_spec): Ignore :user-data DATA properties.
5646
1b335865
GM
5647 * xdisp.c (display_line): Set charpos of first glyph in blank
5648 lines not corresponding to any text to -1, even if no glyphs are
5649 filled in in that line.
5650
e76f1c44
GM
56511999-11-01 Gerd Moellmann <gerd@gnu.org>
5652
427ec082 5653 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5654 png_get_sRGB in #ifdef.
5655
111259b4
GM
5656 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5657 (syms_of_display): Use the new name.
5658
dd5c96e8
GM
5659 * textprop.c (verify_interval_modification): Signal text-read-only
5660 instead of calling error.
5661
db8878fb
GM
5662 * data.c (Qtext_read_only): New built-in error.
5663 (syms_of_data): Initialize it.
5664
5665 * lisp.h: Add extern declaration for Qtext_read_only.
5666
e76f1c44
GM
5667 * syntax.c: Remove whitespace after open or in front of closing
5668 parentheses.
5669
83c8f461 56701999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5671
5672 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5673
7843e09c
GM
56741999-10-31 Gerd Moellmann <gerd@gnu.org>
5675
575ed805
GM
5676 * xdisp.c (resize_mini_window): Compute needed height differently.
5677
7843e09c
GM
5678 * fns.c (Flength): Unroll loop over lists.
5679
5680 * xdisp.c (append_space): Return non-zero if space was appended.
5681 (display_line): Set charpos of first glyph to -1 only if that
5682 glyph is the space added by append_glyph.
5683
83c8f461 56841999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5685
5686 * print.c (strout): Consider `noninteractive' and use stdout
5687 only when PRINTCHARFUN is t.
5688
5689 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5690 (gcpro_level): Declare it extern.
5691 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5692 Alternate definitions that set `level' and increment `gcpro_level'.
5693 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5694
5695 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5696 (init_eval) [DEBUG_GCPRO]: Initialize it.
5697 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5698 from remaining gcprolist.
5699
3636f7a3
KH
57001999-10-29 Kenichi Handa <handa@etl.go.jp>
5701
5702 * coding.c (code_convert_region): Update `dst' correctly.
5703
a2ad7096
GM
57041999-10-28 Gerd Moellmann <gerd@gnu.org>
5705
5706 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5707 (Frassoc): Rewritten.
5708
1e3196e8
GM
57091999-10-27 Noah Friedman <friedman@splode.com>
5710
5711 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5712 Define PTY_NAME_SPRINTF.
5713 Redefine PTY_TTY_NAME_SPRINTF.
5714 * config.in: Add undef for HAVE_DEV_PTMX.
5715
83c8f461 57161999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5717
5718 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5719 as arg to DEBUG_POP and DEBUG_PRINT.
5720
83c8f461 57211999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5722
5723 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5724 (Ffset): Call Qad_activate_internal.
5725 (syms_of_data): Initialize Qad_activate_internal.
5726
26922151
GM
57271999-10-27 Gerd Moellmann <gerd@gnu.org>
5728
5729 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5730 Vterminal_frame is selected and Vwindow_system is non-nil.
5731
67a5596f
GM
57321999-10-26 Gerd Moellmann <gerd@gnu.org>
5733
2bea706b
GM
5734 * xdisp.c (echo_area_display): Put previous change in #if 0.
5735
67a5596f
GM
5736 * emacs.c (standard_args): Add `file' as synonym for `visit',
5737 `execute' as synonym for `eval'.
5738 (main): Add new options to usage message.
5739
81dc5de5
GM
57401999-10-25 Gerd Moellmann <gerd@gnu.org>
5741
5742 * data.c (Qhash_table): New.
5743 (Ftype_of): Return it for hash tables.
5744 (syms_of_data): Initialize Qhash_table.
5745
83c8f461 57461999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5747
5748 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5749
66e4690f 57501999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5751
7539e11f
KR
5752 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5753 lisp.h.
5754
5755 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5756 Fbuffer_local_variables, Fother_buffer, record_buffer,
5757 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5758 swap_out_buffer_local_variables, overlays_at, overlays_in,
5759 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5760 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5761 Foverlay_put, report_overlay_modification, evaporate_overlays):
5762 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5763 references.
5764 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5765 swap_in_symval_forwarding, set_internal, default_value,
5766 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5767 Fmake_variable_frame_local, Flocal_variable_p,
5768 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5769 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5770 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5771 * emacs.c (main): Likewise.
5772 * fontset.c (fs_load_font, fs_register_fontset,
5773 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5774 Fnew_fontset, Fset_fontset_font): Likewise.
5775 * frame.c (do_switch_frame, next_frame, prev_frame,
5776 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5777 Likewise.
5778 * keyboard.c (read_char, help_char_p, event_to_kboard,
5779 kbd_buffer_get_event, timer_start_idle, timer_check,
5780 make_lispy_event, apply_modifiers, reorder_modifiers,
5781 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5782 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5783 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5784 Fcommand_execute, Fexecute_extended_command): Likewise.
5785 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5786 Fall_completions): Likewise.
5787 * window.c (Fset_window_margins): Likewise.
5788
5789 * callint.c (quotify_args): Don't explicitly use struct
5790 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5791
3a7093d8
KR
5792 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5793 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5794 if __ELF__ is defined.
5795
2a3d7146
GM
57961999-10-24 Gerd Moellmann <gerd@gnu.org>
5797
5798 * window.c (Fnext_window): Add a QUIT in the loop.
5799
8ac52782
GM
58001999-10-23 Gerd Moellmann <gerd@gnu.org>
5801
427ec082 5802 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5803 New targets.
5804
05f0d15a
DL
58051999-10-22 Dave Love <fx@gnu.org>
5806
5807 * emacs.c (main): Enable profiling conditional on __linux also.
5808
882fb0e6
GM
58091999-10-20 Gerd Moellmann <gerd@gnu.org>
5810
5811 * xrdb.c (x_load_resources): Set default resources for resource
5812 classes instead of for the specific Emacs.
5813
b5f5bc31
GM
58141999-10-19 Gerd Moellmann <gerd@gnu.org>
5815
66f4dd69
GM
5816 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5817 defines it that way.
427ec082 5818
b5f5bc31
GM
5819 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5820 if selected_frame is equal to Vterminal_frame.
5821
68c45bf0 58221999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5823
68c45bf0 5824 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5825
68c45bf0
PE
5826 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5827 when dumping, so that the dumped Emacs doesn't have stray locale info.
5828 (dired.o): Depend on systime.h.
5829 (editfns.o): Depend on coding.h.
5830
5831 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5832 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5833 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5834 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5835 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5836 Include <config.h> before any system include files.
5837
5838 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5839 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5840 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5841 xmenu.c, xterm.c:
5842 Do not include <stdlib.h>, as <config.h> does this now.
5843
5844 * callproc.c (Fcall_process):
5845 Synchronize messages locale before invoking strerror.
5846 Decode resulting string with locale-coding-system.
5847
5848 * coding.c (Vlocale_coding_system): New var.
5849 (syms_of_coding): Adjust to above change.
5850 (emacs_strerror): New function.
5851
5852 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5853
68c45bf0
PE
5854 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5855 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5856 HAVE_STRSIGNAL): New macros.
5857 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5858 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5859
5860 * dired.c: Include "systime.h".
5861 (Ffile_attributes): Do not cast s.st_size to int; this loses
5862 information if int is 32 bits but st_size and EMACS_INT are larger.
5863 Treat large device numbers like large inode numbers.
5864
5865 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5866
5867 * editfns.c: Include coding.h.
5868 (emacs_strftime): Remove decl.
5869 (emacs_strftimeu): New decl.
5870 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5871 Use emacs_strftimeu instead of emacs_strftime.
5872 (Fformat_time_string): Convert format string using
5873 Vlocale_coding_system, and convert result back. Synchronize time
5874 locale before invoking lower level function. Invoke
5875 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5876
68c45bf0
PE
5877 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5878 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5879 Vprevious_time_locale): New variables.
5880 (main): Invoke setlocale early, so that initial error messages are
5881 localized properly. But skip locale-setting if LC_ALL is "C".
5882 Fix up locale when it's safe to do so.
5883 (fixup_locale): Moved here from xterm.c.
5884 (synchronize_locale, synchronize_time_locale,
5885 synchronize_messages_locale): New functions.
5886 (syms_of_emacs): Accommodate above changes.
5887
5888 * fileio.c (report_file_error): Convert strerror output according
5889 to Vlocale_coding_system.
5890 (Finsert_file_contents): Check for arithmetic overflow in
5891 computations that depend on file size. Report IO errors
5892 with emacs_strerror, not strerror.
5893
5894 * fns.c (Fgethash): Declare dflt parameter.
5895
5896 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5897 is defined; that's config.h's job.
5898
5899 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5900 default these values to long, BITS_PER_LONG, and unsigned long.
5901 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5902 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5903 (code_convert_string_norecord, fixup_locale,
5904 synchronize_messages_locale, synchronize_time_locale,
5905 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5906 All Emacs callers of open, close, read, write changed to use
5907 emacs_open, emacs_close, emacs_read, emacs_write.
5908
5909 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5910 changed to file_tell.
5911 (saved_doc_string_position, prev_saved_doc_string_position): Now
5912 of type file_offset.
5913 (init_lread): Do not fix locale here; fixup_locale now does this.
5914
5915 * m/amdahl.h, s/usg5-4.h:
5916 (NSIG): Remove.
5917 (NSIG_MINIMUM): New macro.
5918
5919 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5920 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5921 s/umips.h, s/usg5-4.h:
5922 (SIGIO): Do not undef.
5923 (BROKEN_SIGIO): New macro.
5924
5925 * m/ustation.h:
5926 (SIGTSTP): Do not undef.
5927 (BROKEN_SIGTSTP): New macro.
5928
5929 * s/gnu-linux.h:
5930 (SIGPOLL, SIGURG): Do not undef.
5931 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5932
5933 * s/ptx4.h:
5934 (SIGINFO): Do not undef.
5935 (BROKEN_SIGINFO): New macros.
427ec082 5936
68c45bf0
PE
5937 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5938
5939 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5940 some Emacs-related changes merged.
5941
5942 * print.c (float_to_string): Prepend "-" to representation of a
5943 NaN if the NaN is negative.
5944
5945 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5946 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 5947
68c45bf0
PE
5948 * process.c (status_message, sigchld_handler): Synchronize locale,
5949 then use strsignal istead of sys_siglist.
5950 * w32proc.c (sys_wait): Likewise.
427ec082 5951
68c45bf0
PE
5952 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5953 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5954 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5955 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5956 (open, close, read, write, INTERRUPTIBLE_OPEN,
5957 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5958
5959 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5960
5961 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5962 sys_open, open): Remove.
5963 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5964 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5965 macros are no longer used.
5966 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5967 (emacs_close): Renamed from sys_close.
5968 (emacs_read): Renamed from sys_read.
5969 (emacs_write): Renamed from sys_write.
5970 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5971 (dup2): Do not print error on failure; the real dup2 doesn't.
5972 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5973
5974 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5975 is defined.
5976 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5977 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5978 (strsignal): Declare if !HAVE_STRSIGNAL.
5979
5980 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5981 (ElfW): Define in terms of ElfExpandBitsW.
5982
5983 * w32proc.c (sys_siglist): Remove decl.
5984
5985 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5986 with ANSI C.
5987 (display_string): Declare face_string_pos arg.
5988
5989 * xfns.c (Fx_show_tip): Declare timeout param.
5990
5991 * xterm.c: No need to include locale.h.
5992 (x_alloc_lighter_color, x_setup_relief_color):
5993 Pass arg as double, not float, for compatibility with ANSI C.
5994 (fixup_locale): Move to emacs.c.
5995 (x_term_init): Do not setlocale or fixup locale; the main program
5996 does this now.
5997
2f0b74ea
DL
59981999-10-18 Dave Love <fx@gnu.org>
5999
6000 * doc.c (Fdocumentation_property): Gcpro `tem'.
6001
471aa4a0
KH
60021999-10-18 Kenichi Handa <handa@etl.go.jp>
6003
6004 * lread.c (Fload): Calculate bytes of filename correctly.
6005 (openp): Likewise.
6006
aca2020b
KH
60071999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
6008
6009 * print.c (print_preprocess): In case print-circle is nil,
6010 add OBJ to Vprint_number_table only when OBJ is a symbol.
6011
1f5fe392 60121999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
6013
6014 * coding.c (code_convert_string): Add record_unwind_protect to
6015 assure setting inhibit_pre_post_conversion back to zero. Take
6016 care of the multibyteness of the working buffer.
6017
6018 * coding.c (inhibit_pre_post_conversion): New variable.
6019 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6020 ignore post-read-conversion and pre-write-conversion property of
6021 the coding system.
6022 (code_convert_region_unwind): New function.
6023 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6024 running pre-write-conversion and post-read-conversion.
6025 (code_convert_string): Likewise.
6026
cd876a91
GM
60271999-10-17 Miles Bader <miles@gnu.org>
6028
6029 * editfns.c: Doc fix.
6030
60311999-10-17 Miles Bader <miles@gnu.org>
6032
6033 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6034 argument preconditions of find_before_next_newline in the case
6035 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6036 was indeed at the edge.
6037
60381999-10-17 Miles Bader <miles@gnu.org>
6039
6040 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6041 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6042
6043 * editfns.c (text_property_eq, text_property_stickiness): Don't
6044 use initializers for auto variables of type Lisp_Object.
6045 (find_field): Likewise. Use braces around nested ifs.
6046 (Fline_end_position): Store the raw eol in a variable, so that the
6047 final expression doesn't look so ugly.
6048 (Fconstrain_to_field): Doc fix.
6049 (preceding_pos): Renamed from `preceeding_pos'.
6050 (text_property_stickiness, find_field): Call preceding_pos,
6051 not preceeding_pos.
6052
60531999-10-17 Miles Bader <miles@gnu.org>
6054
6055 * editfns.c (Ffield_string_no_properties): New function.
6056 (text_property_stickiness, preceeding_pos): New functions.
6057 (Ffield_string): Remove PROPS parameter.
6058 (find_field): Add MERGE_AT_BOUNDARY parameter.
6059 Rewrite to use stickiness of `field' property to resolve
6060 ambiguous cases.
6061 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6062 (Fconstrain_to_field): Likewise.
6063 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6064 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6065 Supply new MERGE_AT_BOUNDARY argument to find_field.
6066 (Fline_beginning_position, Fline_end_position): Supply new
6067 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6068 Pass a value of Qt for the ONLY_IN_LINE argument to
6069 Fconstrain_to_field (only matters if N != 1).
6070 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6071 to Fconstrain_to_field.
6072
6073 * minibuf.c (Fminibuffer_complete_word): Use
6074 Ffield_beginning to find the prompt end.
6075
60761999-10-17 Miles Bader <miles@gnu.org>
6077
6078 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6079 behavior when NEW_POS is nil.
6080 (find_field): Use XSETFASTINT instead of make_number.
6081 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6082 input string by seeing where the field begins, instead of
6083 looking at text-properties.
6084
60851999-10-17 Miles Bader <miles@gnu.org>
6086
6087 * editfns.c (Qfield): New variable.
6088 (find_field, Ferase_field, Ffield_string,
6089 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6090 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6091 (make_buffer_string_both): Remove minibuffer-prompt hack.
6092 (syms_of_editfns): Initialize Qfield, and subr entries for
6093 field functions above.
6094 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6095 minibuf_save_list.
6096 Don't initialize minibuffer prompt length.
6097 Wrap prompt text-properties around the entire prompt.
6098 Add 'prompt text-property to prompt.
6099 Get final value with Ffield_string instead of make_buffer_string.
6100 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6101 minibuf_save_list.
6102 (do_completion): Get minibuffer input with Ffield_string
6103 instead of Fbuffer_string.
6104 Erase minibuffer input with Ferase_field instead of erase_buffer.
6105 (Fminibuffer_complete_and_exit): Likewise.
6106 Test whether buffer is empty by looking for the 'prompt text
6107 property at the end.
6108 Set prompt length by looking for the end of the prompt text property,
6109 and save prompt length for later use (since there is no longer a
6110 buffer variable to get it from).
6111 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6112 (syms_of_minibuf): Remove initializations of
6113 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6114 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6115 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6116 Don't initialize prompt_end_charpos field.
6117 * syntax.c (Fforward_word): Likewise.
6118 Constrain to any field.
6119
3f6f7508
GM
61201999-10-16 Gerd Moellmann <gerd@gnu.org>
6121
6122 * window.c (enum save_restore_action): New.
6123 (save_restore_orig_size): Change parameter list. Add
6124 functionality to check for valid orig_top and orig_height members
6125 in a window tree.
6126 (grow_mini_window): Call save_restore_orig_size with new parameter
6127 list.
6128 (shrink_mini_window): Restore old window sizes only if old
6129 size information is valid in all windows in a window tree.
427ec082 6130
06482119
GM
61311999-10-15 Gerd Moellmann <gerd@gnu.org>
6132
2710454d
GM
6133 * xmenu.c (set_frame_menubar): Don't call
6134 x_set_menu_resources_from_menu_face here.
6135 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6136
06482119
GM
6137 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6138
17fa2837
DL
61391999-10-14 Dave Love <fx@gnu.org>
6140
6141 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6142
45f93416
GM
61431999-10-14 Gerd Moellmann <gerd@gnu.org>
6144
6145 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6146 fails and h_errno is TRY_AGAIN.
6147
c765b723
DL
61481999-10-13 Dave Love <fx@gnu.org>
6149
6150 * filelock.c (lock_file): Move gcpro of `fn'.
6151
dace7f4e
GM
61521999-10-10 Gerd Moellmann <gerd@gnu.org>
6153
6154 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6155
83c8f461 61561999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6157
6158 * print.c (print): When removing objects from Vprint_number_table,
6159 only scan the newly added objects.
6160 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6161 unconditionally force it to stay in the table.
6162
85177c86
GM
61631999-10-09 Gerd Moellmann <gerd@gnu.org>
6164
6165 * xfns.c (prepare_image_for_display): Don't try to load image if
6166 loading it failed before.
6167 (lookup_image, prepare_image_for_display): Remember if loading the
6168 image failed.
6169 (xpm_load): Add missing UNBLOCK_INPUT.
6170
6171 * dispextern.h (struct image): New member load_failed_p.
6172
11e4de5d
SM
61731999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6174
f28eba7b 6175 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6176 in the docstring.
6177
f1da8f06
GM
61781999-10-08 Gerd Moellmann <gerd@gnu.org>
6179
6180 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6181 Don't call XSetInputFocus because that can generate additional
6182 FocusIn events.
427ec082 6183
c37bbd4f
GM
61841999-10-07 Jeffrey C Honig <jch@bsdi.com>
6185
6186 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6187
83c8f461 61881999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6189
6190 * process.c (wait_reading_process_input): When trying to suck
6191 input from one process, for accept-process-output,
6192 exit that loop if we get EAGAIN or EWOULDBLOCK.
6193
577d9e2f
GM
61941999-10-07 Gerd Moellmann <gerd@gnu.org>
6195
6196 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6197 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6198 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6199 Fpixmap_spec_p and Qpixmap_spec_p.
6200 (load_face_colors, check_lface_attrs,
6201 merge_face_vector_with_property,
6202 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6203 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6204 Fbitmap_spec_p.
6205
f5737ad2
GM
62061999-10-07 Gerd Moellmann <gerd@gnu.org>
6207
6208 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6209 MODE_LINE_FACE_ID.
6210
6211 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6212 (struct x_resources) [USE_X_TOOLKIT]: New.
6213 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6214 [USE_MOTIF]: New.
6215 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6216 [USE_LUCID]: New.
6217 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6218 (Qmenu): New.
6219 (syms_of_xfaces): Initialize Qmenu.
6220 (realize_basic_faces): Realize face `menu'.
6221 (resolve_face_name): New.
6222 (lface_from_face_name): Use it.
6223 (Finternal_set_lisp_face_attribute): Ditto.
6224 (Fpixmap_spec_p): Rewritten. Extend doc string.
6225
6226 * xmenu.c (set_frame_menubar, xmenu_show): Call
6227 x_set_menu_resources_from_menu_face.
6228
6229 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6230 (toplevel): Include X11/Intrinsic.h.
6231
6a1aa823
DL
62321999-10-03 Ken'ichi Handa <handa@gnu.org>
6233
6234 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6235 correctly.
6236
26901792
DL
62371999-09-30 Kenichi Handa <handa@etl.go.jp>
6238
6239 * category.c (modify_lower_category_set): Set default value of
6240 TABLE correctly.
6241
6242 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6243 size correctly.
6244
62451999-09-29 Gerd Moellmann <gerd@gnu.org>
6246
6247 * editfns.c (Fpropertize): Renamed from Fproperties.
6248
62491999-09-29 Gerd Moellmann <gerd@gnu.org>
6250
6251 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6252 frame that hasn't been initialized yet.
6253
83c8f461 62541999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6255
6256 * keymap.c (Fsingle_key_description): Make tem big enough.
6257 (describe_buffer_bindings): Make buf big enough.
6258
83c8f461 62591999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6260
6261 * intervals.c (get_local_map): Use indirect_function,
6262 not Findirect_function.
6263
26901792
DL
62641999-09-27 Dave Love <fx@gnu.org>
6265
6266 * cm.h: Remove unneeded declaration of ospeed.
6267
62681999-09-26 Gerd Moellmann <gerd@gnu.org>
6269
6270 * lisp.h (toplevel): Add prototype for
6271 next_single_char_property_change.
6272
6273 * textprop.c (next_single_char_property_change): New.
6274
6275 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6276 next_single_char_property_change.
6277
62781999-09-25 Gerd Moellmann <gerd@gnu.org>
6279
6280 * editfns.c (Fproperties): New.
6281 (syms_of_editfns): Defsubr it.
6282
6283 * xfns.c (lookup_image): Set image's timestamp because it's
6284 used when we look it up.
6285
62861999-09-23 Gerd Moellmann <gerd@gnu.org>
6287
6288 * window.c (enlarge_window): Add window parameter instead of using
6289 selected_window.
6290 (Fdisplay_buffer): Call it with window parameter instead of
6291 setting selected_window.
6292 (Fenlarge_window, Fshrink_window): Ditto.
6293 (shrink_mini_window): If there is no recorded height and position
6294 info, resize mini-window to height 1.
6295
6296 * xfns.c (image_error): Use add_to_log.
6297
6298 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6299 (load_face_font_or_fontset, load_color,
6300 merge_face_vector_with_property): Ditto.
6301
6302 * dispextern.h: Add prototype for add_to_log.
6303
6304 * xfaces.c (add_to_log): Move to xdisp.c.
6305
6306 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6307 parameter.
6308
63091999-09-23 Gerd Moellmann <gerd@gnu.org>
6310
6311 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6312 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6313
6314 * xdisp.c (resize_mini_window): Use grow_mini_window and
6315 shrink_mini_window.
6316
6317 * window.c (window_min_size): Add parameter ignore_fixed_p.
6318 (change_window_height): Call window_min_size with new parameter.
6319 (shrink_window_lowest_first, save_restore_orig_size,
6320 grow_mini_window, shrink_mini_window): New.
6321 (make_window, replace_window): Initialize orig_top and
6322 orig_height.
6323 (enlarge_window): Renamed from change_window_height. Make it
6324 static.
6325 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6326 enlarge_window instead of change_window_height.
6327
6328 * window.h (struct window): New members orig_top, orig_height.
6329 (toplevel): Add prototypes for grow_mini_window and
6330 shrink_mini_window. Remove prototype for change_window_height.
6331
63321999-09-21 Eli Zaretskii <eliz@gnu.org>
6333
6334 * frame.c (frame_name_fnn_p): Fix previous change.
6335
63361999-09-20 Gerd Moellmann <gerd@gnu.org>
6337
6338 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6339
6340 * dispnew.c (direct_output_for_insert): Cast arguments to
6341 safe_bcopy to char *.
6342
6343 * lread.c (readchar): Remove unused variables.
6344 (read_filtered_event, read1, Fmapatoms): Ditto.
6345 (toplevel): Include intervals.h.
6346
6347 * eval.c (Fsignal): Remove unused variables.
6348 (Fcommandp, do_autoload): Ditto.
6349
6350 * lisp.h: Add prototype for safe_bcopy, fatal.
6351
6352 * editfns.c (init_editfns): Remove unused variables.
6353 (Fgoto_char, Fchar_after, Fformat): Ditto.
6354 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6355
6356 * data.c (find_symbol_value): Remove unused variables.
6357 (Faref, Fstring_to_number): Ditto.
6358 (toplevel): Include stdio.h.
6359 (Fnumber_to_string): Cast XINT to long for %ld.
6360
6361 * casefiddle.c (casify_object): Remove unused variables.
6362 (casify_region): Ditto.
6363
427ec082 6364 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6365 conditinally compiled section in #ifdef.
6366 (toplevel): Include stdio.h.
6367
6368 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6369 keys_of_keymap, syms_of_keymap): Remove unused variables.
6370
63711999-09-20 Gerd Moellmann <gerd@gnu.org>
6372
6373 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6374 whose corresponding window rows have been disabled in
6375 try_window_id.
6376
63771999-09-20 Gerd Moellmann <gerd@gnu.org>
6378
6379 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6380 that window start is out of range.
6381 (handle_display_prop, handle_single_display_prop): Replace
6382 marginal area specifications like `left-margin' with `(margin
6383 left-margin)'.
6384 (Qmargin): New.
6385 (syms_of_xdisp): Initialize Qmargin.
6386
63871999-09-19 Gerd Moellmann <gerd@gnu.org>
6388
6389 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6390 describe_syntax, skip_chars): Remove unused variables.
6391 (back_comment, forw_comment): Add braces to if-statement with
6392 if-else as dependent statement.
6393
6394 * process.c (list_processes_1): Remove unused variables.
6395 (Fopen_network_stream, create_process): Add parentheses to
6396 conditional expressions.
6397 (create_process): Put declaration of sigchld in #if 0.
6398 (Fopen_network_stream): Removed unused variables.
6399 (Fopen_network_stream, wait_reading_process_input,
6400 wait_reading_process_input, send_process, send_process): Ditto.
6401 (toplevel): Add prototypes for set_waiting_for_input and
6402 keyboard_bit_set.
6403
6404 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6405
6406 * textprop.c (Fset_text_properties): Remove unused variables.
6407 (text_property_list, verify_interval_modification,
6408 interval_has_all_properties): Ditto.
6409
6410 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6411 (Fcall_process): Remove unused variable.
6412
6413 * keyboard.c (Frecursive_edit): Remove unused variable.
6414 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6415 timer_check, make_lispy_event, menu_bar_items,
6416 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6417 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6418 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6419 read_key_sequence): Ditto. Fread_key_sequence,
6420 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6421 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6422 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6423 (Fexecute_extended_command): Cast XINT to long for %ld.
6424 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6425 (toplevel): Include sys/types.h.
6426
6427 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6428 (toplevel): Add prototypes for stuff_char, and
6429 code_convert_string_norecord.
6430
64311999-09-19 Gerd Moellmann <gerd@gnu.org>
6432
6433 * buffer.h: Add prototype for r_re_alloc.
6434
6435 * insdel.c (copy_text): Removed unused variables.
6436 (count_combining_after, count_combining_after, insert_1_both,
6437 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6438 (adjust_after_replace, replace_range): Add parentheses to logical
6439 expressions. Remove unused variables.
6440 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6441 expression.
6442
6443 * alloc.c (Fgarbage_collect): Remove unused variable.
6444 (compact_strings): Add parentheses around assignments in
6445 conditional context.
6446 (toplevel): Put declaration of unused function clear_marks
6447 in #if 0 like its definition.
6448
6449 * lisp.h: Add prototype for shrink_regexp_cache,
6450 sweep_weak_hash_tables.
6451
64521999-09-19 Dave Love <fx@gnu.org>
6453
6454 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6455
6456 * doc.c (read_bytecode_char): Declare arg.
6457
6458 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6459 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6460
64611999-09-18 Richard Stallman <rms@gnu.org>
6462
6463 * xdisp.c (echo_area_display): Turn off code that returned
6464 without doing anything when using a terminal frame.
6465
83c8f461 64661999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6467
6468 * unexelf.c (unexec): Don't get confused by a short section
6469 just before the bss section.
6470
26901792
DL
64711999-09-16 Gerd Moellmann <gerd@gnu.org>
6472
6473 * emacs.c (main): Remove unused variables.
6474 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6475
6476 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6477 init_fileio_once, syms_of_sound, init_xfns, init_fns
6478 init_sound, check_message_stack.
6479
6480 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6481
6482 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6483 ambiguous else warning.
6484 (split_interval_left): Remove unused variables.
6485 (previous_interval, adjust_intervals_for_deletion,
6486 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6487 (icount, idepth, zero_length): Move into #if 0 section below
6488 original position where these are used.
6489
6490 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6491
6492 * buffer.c (Fkill_buffer): Remove unused variables.
6493 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6494 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6495 init_buffer_once, (syms_of_buffer): Ditto.
6496
6497 * xrdb.c (get_fallback): Remove unused variable.
6498 (x_load_resources): Ditto. Put local variable used for Motif only
6499 in #ifdef USE_MOTIF.
6500
65011999-09-16 Gerd Moellmann <gerd@gnu.org>
6502
6503 * minibuf.c (read_minibuf): Remove unused variables.
6504 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6505 (do_completion): Move assignment out of conditional context.
6506 (Fdisplay_completion_list): Add parentheses to conditional expression.
6507
6508 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6509
6510 * lisp.h: Add prototype for no_switch_window.
6511
6512 * window.c (Fset_window_buffer): Remove unused variables.
6513 (Fset_window_margins): Ditto.
6514
6515 * xdisp.c (resize_mini_window): Temporarily set the selected
6516 window's or Vminibuf_scroll_window's height to "fixed" around
6517 the call the change_window_height.
6518
6519 * window.c (window_fixed_size_p): Check window's height_fixed_p
6520 flag.
6521
6522 * window.h (struct window): New member height_fixed_p.
6523
6524 * dispnew.c (direct_output_forward_char): Don't use this method
6525 if showing a message or a message was just cleared because we
6526 might need to resize the mini-window.
6527
65281999-09-16 Gerd Moellmann <gerd@gnu.org>
6529
6530 * frame.c (Fdelete_frame): Correct local variable pointing to
6531 selected frame after selecting new frame.
6532
65331999-09-15 Richard Stallman <rms@gnu.org>
6534
6535 * puresize.h (BASE_PURESIZE): Increase to 525000.
6536
6537 * filelock.c (Vtemporary_file_directory): New variable.
6538 (syms_of_filelock): Set up Lisp variable.
6539
65401999-09-15 Gerd Moellmann <gerd@gnu.org>
6541
6542 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6543 (encode_terminal_code): Remove unused variables.
6544 (turn_off_face): Ditto.
6545 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6546
6547 * dispnew.c (update_frame_line): If writing whole desired line,
6548 don't clear to end of line if already at the end.
6549
65501999-09-15 Gerd Moellmann <gerd@gnu.org>
6551
6552 * xdisp.c (resize_mini_window): Don't report changed window
6553 height if it actually hasn't changed.
6554
427ec082 6555 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6556 unused variables.
6557 (mark_shell_size_user_specified): Put in #if 0 because not used.
6558 (create_frame_gcs): Put in #if 0 because currently unused.
6559 (first_frame_p): Ditto.
6560
6561 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6562 single_submenu, update_frame_menubar, set_frame_menubar,
6563 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6564 variables.
6565
6566 * print.c (PRINTFULLP): Removed because it is no longer used and
6567 is misleading.
6568 (Ferror_message_string): Remove unused variables.
6569 (print_object): Cast argument of sprintf to long for `%ld'
6570 specifier. Remove unused variable.
6571
65721999-09-14 Gerd Moellmann <gerd@gnu.org>
6573
6574 * sound.c (Fplay_sound): Remove usused variables.
6575 (be2hs): Put in #if 0 because it's currently not used.
6576
65771999-09-14 Ken Raeburn <raeburn@gnu.org>
6578
6579 * print.c (Ferror_message_string, print_error_message,
6580 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6581 member access.
6582
65831999-09-14 Gerd Moellmann <gerd@gnu.org>
6584
6585 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6586
6587 * frame.c (Fnext_frame): Remove unused variable(s).
6588 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6589 (store_frame_param): Add parentheses to conditional expression.
6590 (Fmodify_frame_parameters): Remove unused variables.
6591 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6592 Ditto.
6593
6594 * xfns.c (x_set_background_color): Remove unused variable(s).
6595 (x_set_border_pixel): Ditto.
6596 (x_set_menu_bar_lines): Put local variable used only for
6597 non-toolkit case in #ifdef/#endif.
6598 (x_figure_window_size): Remove unused variable(s).
427ec082 6599 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6600 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6601 png_load, jpeg_load, gif_load, x_create_tip_frame,
6602 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6603
6604 * xterm.c (x_scroll_bar_handle_click): Compile only if
6605 not USE_TOOLKIT_SCROLL_BARS.
6606 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6607
6608 * dispextern.h: Add prototypes for gamma_correct and
6609 x_kill_gs_process.
6610
6611 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6612 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6613 x_set_toolkit_scroll_bar_thumb): Ditto.
6614 (x_scroll_bar_create): Move local variable to the
6615 conditionally compiled section of code where it is used.
6616 (x_scroll_bar_create): Remove unused variable(s).
6617 (x_scroll_bar_remove, XTread_socket): Ditto.
6618 (XTread_socket) <ConfigureNotify>: Move variables used for
6619 non-toolkit case into conditionally compiled section of code.
6620
6621 * window.h (freeze_window_starts): Fix typo in prototype.
6622
6623 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6624 variable(s).
6625
6626 * lisp.h: Add prototype for debug_print.
6627
6628 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6629 to use do-while.
6630
6631 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6632 (Fchar_table_range, Fset_char_table_default, mapcar1,
6633 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6634
6635 * lisp.h: Add prototype for getloadavg.
6636
66371999-09-14 Andreas Schwab <schwab@gnu.org>
6638
6639 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6640
6641 * lisp.h: Declare close_file_unwind.
6642
66431999-09-14 Richard Stallman <rms@gnu.org>
6644
6645 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6646
66471999-09-13 Gerd Moellmann <gerd@gnu.org>
6648
6649 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6650 is always set correctly.
6651
66521999-09-13 Dave Love <fx@gnu.org>
6653
6654 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6655 declaration.
6656
66571999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6658
6659 * xdisp.c (QCfile): Move here from xfns.c.
6660 (syms_of_xdisp): Initialize it.
6661 (message2_nolog): Change for Lisp_Object selected_frame.
6662 (message3_nolog, message_with_string, message,
6663 setup_echo_area_for_printing, truncate_echo_area,
6664 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6665
66661999-09-13 Dave Love <fx@gnu.org>
6667
6668 * xterm.c: Don't continue #define args for benefit of old cc.
6669 (xt_action_hook): Indent #error for benefit of K&R cc.
6670
66711999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6672
6673 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6674 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6675 (XRINGBELL): Removed.
6676
66771999-09-13 Dave Love <fx@gnu.org>
6678
6679 * xfns.c (x_put_x_image): Make type consistent with declaration.
6680
6681 * fns.c (Fmake_hash_table): Fix string continuation.
6682
66831999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6684
6685 * xfns.c (QCfile): Moved to xdisp.c.
6686 (syms_of_xfns): Don't initialize QCfile.
6687 (check_x_frame): Change for Lisp_Object selected_frame.
6688 (check_x_display_info, x_get_resource_string): Ditto.
6689
66901999-09-13 Gerd Moellmann <gerd@gnu.org>
6691
6692 * minibuf.c (choose_minibuf_frame): Don't try to set the
6693 mini-buffer window's buffer, if the buffer is invalid.
6694
6695 * xfns.c (QCfile): Moved to xdisp.c.
6696 (syms_of_xfns): Don't initialize QCfile.
6697
6698 * xdisp.c (QCfile): Move here from xfns.c.
6699 (syms_of_xdisp): Initialize it.
6700
6701 * lisp.h (selected_frame): Add external declaration.
6702
6703 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6704 (Fx_store_cut_buffer_internal): Ditto.
6705 (Fx_rotate_cut_buffers_internal): Ditto.
6706
6707 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6708 selected_frame.
6709 (Finternal_set_lisp_face_attribute): Ditto.
6710 (Finternal_get_lisp_face_attribute): Ditto.
6711 (Finternal_lisp_face_empty_p): Ditto.
6712 (Fdump_face): Ditto.
6713
6714 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6715 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6716 set_terminal_window, set_scroll_region, reassert_line_highlight,
6717 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6718 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6719 encode_terminal_code, write_glyphs, term_init): Ditto.
6720
6721 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6722 (kbd_input_ast, read_input_waiting): Ditto.
6723
6724 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6725 selected_frame.
6726 (read_minibuf): Ditto.
6727
6728 * keyboard.c (command_loop_1): Change for Lisp_Object
6729 selected_frame.
6730 (cmd_error_internal, command_loop_1, read_char,
6731 kbd_buffer_get_event, read_avail_input,
6732 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6733 interrupt_signal, quit_throw_to_read_char): Ditto.
6734
6735 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6736 (Ffontset_info): DItto.
6737
6738 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6739
6740 * dispnew.c (selected_frame): Make it a Lisp_Object.
6741 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6742 (direct_output_for_insert, direct_output_forward_char,
6743 init_display): Ditto.
6744
6745 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6746 selected_frame.
6747 (set_internal): Ditto.
6748
6749 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6750 (record_buffer): Ditto.
6751
6752 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6753 (do_switch_frame): Change for Lisp_Object selected_frame.
6754 (Fselected_frame): Ditto.
6755 (Fframe_first_window): Use SELECTED_FRAME.
6756 (Fframe_root_window): Change for Lisp_Object selected_frame.
6757 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6758 Fprevious_frame, other_visible_frames, Fdelete_frame,
6759 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6760 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6761 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6762 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6763 Fset_frame_height, Fset_frame_width): Ditto.
6764
67651999-09-13 Gerd Moellmann <gerd@gnu.org>
6766
6767 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6768 (message3_nolog, message_with_string, message,
6769 setup_echo_area_for_printing, truncate_echo_area,
6770 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6771
6772 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6773 (Fx_popup_dialog): Ditto.
6774
6775 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6776 (check_x_display_info, x_get_resource_string): Ditto.
6777
6778 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6779 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6780 (XRINGBELL): Removed.
6781
6782 * window.c (Fminibuffer_window): Change for Lisp_Object
6783 selected_frame.
6784 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6785 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6786 Fcurrent_window_configuration, init_window_once): Ditto.
6787
6788 * frame.h (SELECTED_FRAME): New.
6789
67901999-09-12 Ken Raeburn <raeburn@gnu.org>
6791
6792 * category.c (word_boundary_p): Use XCAR and XCDR.
6793 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6794 Fregister_code_conversion_map): Likewise.
6795 * coding.c (setup_coding_system, detect_coding_system,
6796 Ffind_operation_coding_system, Fset_coding_priority_internal):
6797 Likewise.
6798 * doc.c (get_doc_string, Fdocumentation,
6799 store_function_docstring): Likewise.
6800 * editfns.c (save_restriction_restore): Likewise.
6801 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6802 skip_debugger, find_handler_clause, Fautoload, Fapply,
6803 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6804 Likewise.
6805 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6806 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6807 Fread_file_name): Likewise.
6808 * filelock.c (unlock_all_files): Likewise.
6809 * insdel.c (Fcombine_after_change_execute): Likewise.
6810 * intervals.c (adjust_intervals_for_insertion): Likewise.
6811 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6812 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6813 store_in_keymap, Fcopy_keymap, define_as_prefix,
6814 current_minor_maps, Faccessible_keymaps,
6815 accessible_keymaps_char_table, Fkey_description,
6816 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6817 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6818 describe_map): Likewise.
6819 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6820 read_list, init_lread): Likewise.
6821 * search.c (Fmatch_data): Likewise.
6822 * sunfns.c (Fsun_menu_internal): Likewise.
6823 * syntax.c (describe_syntax): Likewise.
6824 * undo.c (record_insert, record_delete, Fundo_boundary,
6825 truncate_undo_list): Likewise.
6826 * vmsproc.c (child_sig): Likewise.
6827
6828 * editfns.c (Fformat): Use XFLOAT_DATA.
6829
68301999-09-12 Gerd Moellmann <gerd@gnu.org>
6831
6832 * keyboard.c (command_loop_1): Resize mini-window to the
6833 exact size of a message displayed, if any.
6834
6835 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6836 to exact size if exact_p is non-zero.
6837 (display_echo_area_1): Call resize_mini_window with
6838 new parameter.
6839 (redisplay_internal): Ditto.
6840 (resize_echo_area_axactly): New.
6841
6842 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6843 new parameter.
6844
6845 * dispextern.h: Change prototype of resize_mini_window.
6846 Add prototype for resize_echo_area_axactly.
6847
6848 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6849 (syms_of_xfaces): Defsubr accordingly.
6850
6851 * xdisp.c (hscroll_window_tree): Choose cursor row from
6852 desired or current matrix.
6853 (redisplay_internal): Hscroll before updating.
6854
68551999-09-12 Gerd Moellmann <gerd@gnu.org>
6856
6857 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6858 of minibuffer_prompt_length.
6859
6860 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6861 of minibuffer_prompt_length.
6862 (read_minibuf_unwind): Ditto.
6863 (Fminibuffer_complete_and_exit): Ditto.
6864 (Fminibuffer_complete_word): Ditto.
6865 (Fminibuffer_prompt_end): Ditto.
6866
6867 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6868 of minibuffer_prompt_length.
6869 (Fline_beginning_position): Ditto.
6870
6871 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6872 of minibuffer_prompt_length.
6873 (Fmake_indirect_buffer): Ditto.
6874 (Fkill_buffer): Ditto.
6875 (Ferase_buffer): Ditto.
6876
6877 * buffer.h (prompt_end_charpos): Replaces
6878 minibuffer_prompt_length.
6879
427ec082 6880 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6881 without the prompt.
6882
6883 * editfns.c (make_buffer_string_both): Take out the code
6884 to handle mini-buffer prompts.
6885 (Fbuffer_string): Handle the prompt here, instead.
6886
6887 * xfaces.c (lface_from_face_name): Resolve face aliases.
6888 (Qmode_line): Replaces Qmodeline.
6889 (realize_basic_faces): Use Qmode_line.
6890 (syms_of_xfaces): Initialize Qmode_line.
6891
68921999-09-12 Gerd Moellmann <gerd@gnu.org>
6893
6894 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6895 current column after inserting prompt.
6896 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6897
6898 * xfaces.c (Qframe_update_face_colors): New.
6899 (syms_of_xfaces): Initialize call.
6900 (update_face_from_frame_parameter): Call that function when
6901 the frame's background changes.
6902
69031999-09-12 Richard Stallman <rms@gnu.org>
6904
6905 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6906
69071999-09-12 Ken Raeburn <raeburn@gnu.org>
6908
6909 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6910 mark_object, mark_buffer): Use XCAR and XCDR.
6911 * bytecode.c (Fbyte_code): Likewise.
6912 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6913 Likewise.
6914 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6915 getenv_internal): Likewise.
6916 * dired.c (file_name_completion): Likewise.
6917 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6918 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6919 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6920 * indent.c (Fcompute_motion): Likewise.
6921 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6922 list_processes_1, Fstart_process, Fopen_network_stream,
6923 wait_reading_process_input, read_process_output_call,
6924 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6925 status_notify, wait_reading_process_input): Likewise.
6926 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6927 extend_property_ranges): Likewise.
6928 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6929 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6930 x_report_frame_params, x_set_cursor_type, x_icon_type,
6931 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6932 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6933 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6934 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6935 x_display_info_for_name, Fx_display_list): Likewise.
6936 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6937 Fx_popup_menu, Fx_popup_dialog): Likewise.
6938 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6939 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6940 w32_term_init, x_delete_display): Likewise.
6941 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6942 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6943 x_top_window_to_frame, x_set_frame_parameters,
6944 x_report_frame_params, x_set_cursor_type, x_icon_type,
6945 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6946 Fx_display_list, x_create_tip_frame): Likewise.
6947 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6948 Fx_popup_menu, Fx_popup_dialog): Likewise.
6949 * xselect.c (x_own_selection, x_get_local_selection,
6950 x_handle_selection_request, x_handle_selection_clear,
6951 x_clear_frame_selections, wait_for_property_change_unwind,
6952 wait_for_property_change, x_handle_property_notify,
6953 copy_multiple_data, x_get_foreign_selection,
6954 lisp_data_to_selection_data, clean_local_selection_data,
6955 x_handle_selection_notify, Fx_get_selection_internal,
6956 x_disown_buffer_selections): Likewise.
6957 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6958 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6959 Likewise.
6960
6961 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6962 XFLOAT_DATA.
6963 * bytecode.c (Fbyte_code): Likewise.
6964 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6965 fmod_float): Likewise.
6966
69671999-09-11 Richard Stallman <rms@gnu.org>
6968
6969 * xdisp.c (run_window_scroll_functions): If hook functions switch
6970 buffers, switch back after.
6971
69721999-09-11 Ken Raeburn <raeburn@gnu.org>
6973
6974 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6975 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6976 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6977 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6978 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6979 XCDR.
6980 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6981 XCDR.
6982
69831999-09-10 Richard Stallman <rms@gnu.org>
6984
6985 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6986 not RevertToPointerRoot.
6987 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6988 Fix the code to clear around the scroll bar.
6989
69901999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6991
6992 * print.c: Support print-circle and related features.
6993 (Vprint_gensym_alist): Removed.
6994 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6995 Vprint_number_table): New variables.
6996 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6997 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6998 (print, print_preprocess, print_preprocess_string, print_object):
6999 New/modified functions with print-circle feature. Use
7000 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
7001 (syms_of_print): Defined new Lisp variables `print-circle',
7002 `print-continuous-numbering', `print-number-table'.
7003
70041999-09-10 Gerd Moellmann <gerd@gnu.org>
7005
7006 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
7007 as background color specification instead of an integer.
7008 (image-cache-eviction-delay): Replaces image-eviction-seconds.
7009 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
7010 (clear_image_cache, syms_of_xfns): Use it.
7011 (Qpostscript): Replaces Qghostscript.
7012 (gs_type): Use it.
7013 (gs_image_p): Ditto.
7014 (syms_of_xfns): Initialize Qpostscript.
7015
70161999-09-10 Richard Stallman <rms@gnu.org>
7017
7018 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7019
70201999-09-09 Richard Stallman <rms@gnu.org>
7021
7022 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7023
7024 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7025
70261999-09-09 Gerd Moellmann <gerd@gnu.org>
7027
7028 * fns.c (Fmakehash): Accept just one optional argument TEST.
7029
7030 * xfns.c (QCindex): New.
7031 (syms_of_xfns): Initialize QCindex.
7032 (gif_load): Use it instead of `:image'.
7033
70341999-09-09 Richard Stallman <rms@gnu.org>
7035
7036 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7037 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7038
70391999-09-08 Gerd Moellmann <gerd@gnu.org>
7040
7041 * xdisp.c (Qwhen): Replaces QCwhen.
7042 (syms_of_xdisp): Initialized it instead of QCwhen.
7043 (handle_single_display_prop): Use it instead of QCwhen.
7044
70451999-09-08 Ken'ichi Handa <handa@gnu.org>
7046
7047 * charset.c (translate_char): Reset MSBs of arguments of
7048 MAKE_CHAR.
7049 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7050
70511999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7052
7053 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7054
7055 * fns.c (Fbase64_decode_region): Don't place point outside of the
7056 current accessible portion.
7057
70581999-09-07 Richard Stallman <rms@gnu.org>
7059
7060 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7061 parent is an ancestor of SUBMAP; otherwise, add it as the
7062 ultimate ancestor.
7063
70641999-09-07 Gerd Moellmann <gerd@gnu.org>
7065
7066 * xdisp.c (handle_single_display_prop): Change conditional
7067 display property to `:when FORM . VALUE'.
7068
70691999-09-07 Richard Stallman <rms@gnu.org>
7070
7071 * fileio.c (Fwrite_region): Doc fix.
7072
70731999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7074
7075 * fileio.c (Qexcl): New variable.
7076 (report_file_error): Handle EEXIST specially.
7077 (Fwrite_region): Special handling for CONFIRM = `excl'.
7078 (syms_of_fileio): Initialize Qexcl.
7079
70801999-09-07 Gerd Moellmann <gerd@gnu.org>
7081
7082 * xfns.c (x_set_foreground_color): Call
7083 update_face_from_frame_parameter.
7084 (x_set_background_color): Ditto.
7085 (x_set_mouse_color): Ditto.
7086 (x_set_cursor_color): Ditto.
7087 (x_set_border_color): Ditto.
7088 (x_set_scroll_bar_foreground): Ditto.
7089 (x_set_scroll_bar_background): Ditto.
7090
7091 * xfaces.c (recompute_basic_faces): Clear face cache.
7092 (Finternal_set_lisp_face_attribute): Modify frame parameters
7093 if attributes of certain faces are changed.
7094 (update_face_from_frame_parameter): New.
7095
7096 * xfaces.c (realize_basic_faces): Realize new basic faces.
7097
7098 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7099 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7100
7101 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7102 (syms_of_xfaces): Intialize new symbols.
7103
7104 * fns.c (Fmakehash): Take one argument, test, make all the
7105 rest keyword arguments.
7106
7107 * window.c (Fset_window_margins): Make window the first argument.
7108 (set_window_buffer): Call Fset_window_margins with window as first
7109 argument.
7110
71111999-09-07 Gerd Moellmann <gerd@gnu.org>
7112
7113 * xfaces.c (Qfringe): Replaces Qmargin.
7114
71151999-09-07 Kenichi Handa <handa@etl.go.jp>
7116
7117 * charset.h: Lots of comments fixed.
7118 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7119 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7120
7121 * charset.c : Lots of comments fixed.
7122 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7123 (CHAR_COMPONENTS_VALID_P): Name changed from
7124 CHAR_COMPONENT_VALID_P. Caller changed.
7125
71261999-09-06 Richard Stallman <rms@gnu.org>
7127
7128 * insdel.c (syms_of_insdel): Define Lisp variable
7129 inhibit-modification-hooks.
7130
71311999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7132
7133 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7134 unexaix.c.
7135
7136 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7137
71381999-09-06 Dave Love <fx@gnu.org>
7139
7140 * unexaix.c: New version incorporating Michael Sperber's changes
7141 from XEmacs. Should solve problems on AIX 4.3.
7142
7143 * lread.c (Vbyte_boolean_vars): New variable.
7144 (defvar_bool, syms_of_lread): Use it.
7145
71461999-09-05 Richard Stallman <rms@gnu.org>
7147
7148 * minibuf.c (read_minibuf): Put all three properties on the
7149 same range, the whole prompt.
7150
71511999-09-05 Gerd Moellmann <gerd@gnu.org>
7152
7153 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7154 (Fplay_sound, syms_of_sound): Use it.
7155 (parse_sound): Allow float volume values in the range [0, 1].
7156 (Fplay_sound): Ditto.
7157
7158 * window.c (Fset_window_vscroll): Make window the first argument,
7159 amount to scroll the second. Take non-negative vscroll as
7160 argument.
7161 (Fwindow_vscroll): Return non-negative vscroll.
7162
7163 * xfns.c (Fx_show_tip): Improve documentation.
7164
71651999-09-05 Gerd Moellmann <gerd@gnu.org>
7166
7167 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7168 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7169 `top-line' and `top_line' to `header-line' and `header_line'.
7170 Likewise for similar spellings.
7171
71721999-09-05 Gerd Moellmann <gerd@gnu.org>
7173
7174 * xdisp.c (row_containing_pos): New.
7175 (try_window_id): Use it.
7176
7177 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7178 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7179 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7180 Likewise for upper-case etc.
7181
71821999-09-05 Gerd Moellmann <gerd@gnu.org>
7183
7184 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7185 Fix reference to renamed variable.
7186
71871999-09-04 Gerd Moellmann <gerd@gnu.org>
7188
7189 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7190 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7191 Qfixed_window_size.
7192 (syms_of_window): Ditto.
7193
7194 * fns.c (Fmakehash): Exchange optional test and size arguments.
7195
71961999-09-03 Gerd Moellmann <gerd@gnu.org>
7197
7198 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7199 under newly created scroll bar.
7200 (expose_window): If window is not yet fully initialized, do
7201 nothing. This can happen when toolkit scroll bars are used and a
7202 window is split. Reconfiguring the scroll bars will generate an
7203 expose for a newly created window.
7204
7205 * frame.h (struct frame): New member `gamma'.
7206
7207 * xfns.c: Include math.h. Add extern declaration for atof in case
7208 we don't see one.
7209 (Qscreen_gamma): New.
7210 (struct x_frame_parm_table): Add prototypes, add
7211 x_set_screen_gamma.
7212 (gamma_correct): New function.
7213 (defined_color): Call it.
7214 (x_set_screen_gamma): New.
7215 (x_set_title): Add parameter old_value.
7216 (RES_TYPE_FLOAT): New.
7217 (x_get_arg): Handle RES_TYPE_FLOAT.
7218 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7219 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7220 new prototype.
7221 (lookup_rgb_color): Ditto.
7222 (syms_of_xfns): Initialize Qscreen_gamma.
7223
7224 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7225 New. Allocate color for lwlib widgets.
7226 (x_alloc_nearest_color): Change parameter list include the
7227 frame on which to allocate colors. Gamma-correct colors.
7228 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7229 parameter list.
7230
7231 * xterm.h: Change protorype of x_alloc_nearest_color.
7232
72331999-09-03 Richard Stallman <rms@gnu.org>
7234
7235 * callproc.c: Delete the system-independent include of stdlib.h
7236 (leaving only the one in the WINDOWSNT conditional).
7237
72381999-09-03 Andrew Choi <choi@cs.hku.hk>
7239
7240 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7241 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7242
26901792
DL
7243 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7244 Window types and macros.
7245
7246 * frame.h: Do nothing if included a second time.
7247 (enum output_method): Add mac_output frame type.
7248 (union output_data): Add new alternative `mac'.
7249 (FRAME_MAC_P): New macro.
427ec082 7250
26901792
DL
7251 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7252 (syms_of_frame_1): Initialize Qmac.
7253 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7254 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7255 (Fmodify_frame_parameters) [macintosh]: Call
7256 mac_set_frame_parameter in macterm.c.
427ec082 7257
26901792
DL
7258 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7259 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7260
26901792
DL
7261 * make-docfiles.c: Correctly handle input files with Mac-style
7262 eol's.
427ec082 7263
26901792 7264 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7265
26901792
DL
7266 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7267 file of an X Window environment.
427ec082 7268
26901792
DL
7269 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7270 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7271
26901792
DL
7272 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7273 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7274 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7275 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7276 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7277 New functions, replacing POSIX features.
427ec082 7278
26901792
DL
7279 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7280 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7281 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7282
7283 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7284 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7285 (myPasswdDir, TempDirName, sys_siglist): New variables.
7286
7287 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7288 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7289 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7290 Define empty stubs so Emacs will link.
7291
72921999-09-03 Gerd Moellmann <gerd@gnu.org>
7293
7294 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7295
7296 * window.h: New member frozen_window_start_p.
7297
7298 * window.c (foreach_window, foreach_window_1): New.
7299 (freeze_window_start, freeze_window_starts): New.
7300 (make_window): Initialize frozen_window_start_p.
7301 (replace_window): Ditto.
7302 (Fset_window_point): Remove references to deleted variables.
7303 (Fset_window_start): Ditto.
7304
7305 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7306 resize_mini_initial_height): Removed.
7307 (syms_of_xdisp): Remove references to these variables.
7308 (resize_mini_window): Don't save window configuration, freeze
7309 window starts instead. Enlarge window until displaying an empty
7310 buffer, then shrink it. Make the function externally visible.
7311 (redisplay_window): Treat frozen window start like forced start,
7312 but accept point outside of the window.
7313
7314 * dispextern.h: Add function prototype for resize_mini_window.
7315
7316 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7317 reaching minibuf_level 0.
7318
7319 * lisp.h: Remove extern declarations for variables deleted from
7320 xdisp.c.
7321
7322 * dispnew.c (adjust_frame_glyphs): Remove reference to
7323 Vresize_mini_config.
7324
73251999-09-03 Gerd Moellmann <gerd@gnu.org>
7326
7327 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7328 to USE_TOOLKIT_SCROLL_BARS.
7329
7330 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7331 here.
7332 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7333 under newly created scroll bar. Put toolkit scroll bars in the
7334 middle of the area reserved for the scroll bar.
7335
73361999-09-03 Kenichi Handa <handa@etl.go.jp>
7337
7338 The following changes are for the new handling of mulitbyte
7339 sequence. Now, except for a composite character, no multibyte
7340 character in string/buffer has trailing garbage bytes. For
7341 instance, the length of string "\201\300\300" is now 2, the first
7342 character is Latin-1 A-grave, the second is raw \300.
7343
7344 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7345 are negative.
7346 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7347 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7348 (PARSE_COMPOSITE_SEQ): New macro.
7349 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7350 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7351 (CHAR_PRINTABLE_P): New macro.
7352 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7353 (STRING_CHAR_AND_LENGTH): Likewise.
7354 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7355 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7356 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7357
7358 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7359 (SPLIT_CHARACTER_SEQ): New macro.
7360 (SPLIT_MULTIBYTE_SEQ): New macro.
7361 (CHAR_COMPONENT_VALID_P): New macro.
7362 (non_ascii_char_to_string): Generate a multibyte sequence as far
7363 as possible.
7364 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7365 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7366 (split_non_ascii_string): Likewise.
7367 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7368 (char_printable_p): New function.
7369 (translate_char): Check character by NATNUMP instead of INTEGERP.
7370 (unibyte_char_to_multibyte): Call char_valid_p instead of
7371 VALID_MULTIBYTE_CHAR_P.
7372 (Fmake_char_internal): Check the arguments more rigidly.
7373 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7374 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7375 (Fmultibyte_char_to_unibyte): Check the validity of character by
7376 CHAR_VALID_P.
7377 (chars_in_text): Call multibyte_chars_in_text.
7378 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7379 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7380 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7381
7382 * data.c (Faset): Adjust the way to check byte-combining
7383 possibility for the new handling of multibyte sequence.
7384
7385 * editfns.c (Fsubst_char_in_region): Likewise.
7386
7387 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7388 (string_char_to_byte): Likewise.
7389 (string_byte_to_char): Likewise.
7390
7391 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7392 macro STRING_CHAR_AND_LENGTH. Caller changed.
7393
7394 * insdel.c (count_combining_composition): New function.
7395 (count_combining_before): Adjust the way to check byte-combining
7396 possibility for the new handling of multibyte sequence. Call
7397 count_combining_composition for a composite character.
7398 (count_combining_after): Likewise.
7399
7400 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7401 (print): Likewise.
7402
7403 * dispextern.h (struct it): Change the size of the member
7404 `ctl_chars'.
7405
7406 * xdisp.c (get_next_display_element): Display incomplete multibyte
7407 sequence (e.g. \222\300) by octal form.
7408
74091999-09-02 Gerd Moellmann <gerd@gnu.org>
7410
7411 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7412
7413 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7414 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7415
74161999-09-02 Gerd Moellmann <gerd@gnu.org>
7417
7418 * buffer.c (set_buffer_internal): Never set
7419 windows_or_buffers_changed.
7420
7421 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7422 if we have displayed to the bottom of the window.
7423
7424 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7425 in both directions. Extend documentation.
7426
74271999-09-01 Gerd Moellmann <gerd@gnu.org>
7428
7429 * minibuf.c (read_minibuf): Flush display after setting cursor to
7430 column 0.
7431
74321999-08-31 Gerd Moellmann <gerd@gnu.org>
7433
7434 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7435 already defined. This avoids a warning from buffer.c.
7436
74371999-08-30 Gerd Moellmann <gerd@gnu.org>
7438
7439 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7440 of both margins.
7441 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7442 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7443 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7444
7445 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7446 once instead of twice.
7447 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7448
7449 * xterm.c: Remove unused bitmaps.
7450 (continued_bits, continuation_bits, overlay_bits): Change images.
7451 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7452 instead of FRAME_X_FLAGS_AREA_WIDTH.
7453 (x_after_update_window_line): Ditto.
7454 (x_draw_bitmap): Likewise.
7455 (x_draw_row_bitmaps): Likewise.
7456 (x_draw_glyph_string_box): Likewise.
7457 (x_draw_glyphs): Likewise.
7458 (x_scroll_run): Likewise.
7459 (expose_window_tree): Likewise.
7460 (note_mode_line_highlight): Likewise.
7461 (XTset_vertical_scroll_bar): Likewise.
7462 (x_clip_to_row): Likewise.
7463 (x_set_window_size): Likewise.
7464
7465 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7466 of 2 * that value.
7467
7468 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7469 2 * that value.
7470 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7471 FRAME_FLAGS_AREA_WIDTH.
7472
7473 * window.c (coordinates_in_window): Use
7474 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7475 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7476 instead of twice.
7477
427ec082 7478 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7479 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7480 (EmacsFrameSetCharSize): Ditto.
7481
7482 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7483 instead of FRAME_FLAGS_AREA_WIDTH.
7484
7485 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7486 FRAME_FLAGS_AREA_COLS once.
7487 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7488 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7489
74901999-08-30 Gerd Moellmann <gerd@gnu.org>
7491
7492 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7493 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7494
74951999-08-30 Gerd Moellmann <gerd@gnu.org>
7496
7497 * fns.c (QCweakness): Replaces QCweak.
7498 (Fmake_hash_table): Ditto.
7499 (Fmakehash): Ditto.
7500 (syms_of_fns): Ditto.
7501
75021999-08-29 Richard Stallman <rms@gnu.org>
7503
7504 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7505
7506 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7507
7508 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7509 Add support for nested comments.
7510
863476d1
SM
7511 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7512 Consolidate the forward comment code into the new `forw_comment'.
7513 (forw_comment): New subroutine. Added support for nested comments.
7514 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7515 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7516
75171999-08-28 Ken Raeburn <raeburn@gnu.org>
7518
7519 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7520 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7521 defined, to help detect code that uses knowledge of the Lisp
7522 internals that it shouldn't have.
7523 (XFLOAT_DATA): New macro.
7524
75251999-08-25 Gerd Moellmann <gerd@gnu.org>
7526
7527 * syntax.c (Fforward_word): If in a mini-buffer and moving
7528 backwards, stop in front of the prompt to prevent accidentially
7529 moving into the read-only prompt.
7530
7531 * window.c (Frecenter): Clear frame if called with nil or no arg.
7532
7533 * xdisp.c (resize_mini_window): Don't resize if
7534 Vmax_mini_window_height is nil. Otherwise, use a default if
7535 Vmax_mini_window_height is not ot a number.
7536 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7537
75381999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7539
7540 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7541 * m/iris4d.h: Use unexelf for IRIX 5.*.
7542 * m/iris5d.h: Use unexelf for IRIX 6.*.
7543 * unexsgi.c: Deleted.
7544
7545 * unexelf.c: Auto-detect .sbss section.
7546 (round_up): Make it static.
7547 (unexec): Declare alignment as Elf Word. Skip ``Program
7548 segment above .bss'' test on MIPS without .sbss.
7549 Copy sections .got and .sdata1 sections. Adjust offsets in
7550 sections .sdata, .lit4, .lit8, .got and .sdata1.
7551
75521999-08-25 Gerd Moellmann <gerd@gnu.org>
7553
7554 * xdisp.c (try_window_id): Remove typo.
7555
75561999-08-24 Gerd Moellmann <gerd@gnu.org>
7557
7558 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7559 unchanged text at the bottom when computing the cursor position.
7560 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7561 set.
7562
7563 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7564
75651999-08-24 Gerd Moellmann <gerd@gnu.org>
7566
7567 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7568 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7569 (syms_of_xfaces): Ditto.
7570
7571 * window.c (Fset_window_point): Reset Vresize_mini_config.
7572 (Fset_window_start): Ditto.
7573 (set_window_buffer): Ditto.
7574
7575 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7576
7577 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7578 before calling try_window.
7579 (echo_area_display): If height has changed, update other windows.
7580 (resize_mini_frame, resize_mini_initial_height): New.
7581 (resize_mini_window): Save/restore window configuration
7582 differently.
7583
427ec082 7584 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7585 resize_mini_initial_height): Add extern declarations.
7586
7587 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7588 CANON_X_UNIT.
7589
7590 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7591 being redefined in jconfig.h.
7592
75931999-08-23 Ken'ichi Handa <handa@gnu.org>
7594
7595 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7596
75971999-08-22 Gerd Moellmann <gerd@gnu.org>
7598
7599 * alloc.c (mark_glyph_matrix): Mark strings only.
7600
7601 * xdisp.c (redisplay_internal): Clear garbaged frames after
7602 resizing mini-window.
7603
76041999-08-22 Gerd Moellmann <gerd@gnu.org>
7605
7606 * xdisp.c (unwind_with_echo_area_buffer): Use
7607 set_buffer_internal_1 instead of set_buffer_internal.
7608 (with_echo_area_buffer): Ditto.
7609
7610 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7611 only if buffer is displayed somewhere.
7612
7613 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7614
7615 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7616 (gap_right): Ditto.
7617 (modify_region): Ditto.
7618
7619 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7620
7621 * xdisp.c (Vresize_mini_config): New.
7622 (resize_mini_window): Use it to save restore original window
7623 configuration
7624 (syms_of_xdisp): Initialize it.
7625
7626 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7627
7628 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7629
7630 * xdisp.c (reconsider_clip_changes): New.
7631 (redisplay_internal, redisplay_window): Call it.
7632 (mark_window_display_accurate, redisplay_internal): Set current
7633 matrix' buffer, begv, zv.
7634
7635 * window.c (Fset_window_hscroll): Set
7636 prevent_redisplay_optimizations_p instead of clip_changed.
7637 (Fset_window_hscroll): Ditto.
7638 (temp_output_buffer_show): Ditto.
7639 (Fset_window_vscroll): Ditto.
7640
7641 * buffer.c (reset_buffer): Set clip_changed to 0 and
7642 prevent_redisplay_optimizations_p to 1.
7643 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7644
7645 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7646 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7647 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7648 END_UNCHANGED): New.
7649 (struct buffer_text): Add beg_unchanged, end_unchanged,
7650 unchanged_modified, overlay_unchanged_modified.
7651
7652 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7653 overlay_unchanged_modified): Removed.
7654 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7655 (unwind_with_echo_area_buffer): Don't restore them.
7656 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7657 (text_outside_line_unchanged_p, redisplay_internal,
7658 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7659 (redisplay_window): Let try_window_id be called if more than one
7660 window is displayed. Use/set buffer-specific beg/end_unchanged.
7661 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7662 try_window_id):
7663 Use buffer-specific beg/end_unchanged.
7664
7665 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7666 overlay_unchanged_modified): Remove extern declarations.
7667
7668 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7669 buffer.
7670
7671 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7672 (gap_right): Ditto.
7673 (adjust_after_replace): Likewise.
7674 (replace_range, del_range_2, modify_region): Likewise.
7675
7676 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7677 and unchanged_modified per buffer.
7678
7679 * coding.c (code_convert_region): Compute beg/end_unchanged per
7680 buffer.
7681
7682 * buffer.c (modify_overlay): Compute beg/end_unchanged
7683 per buffer.
427ec082 7684 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7685 structure.
7686
76871999-08-22 Gerd Moellmann <gerd@gnu.org>
7688
7689 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7690
7691 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7692 (Qkey_value_weak): Removed.
7693 (make_hash_table): Use nil, `key', `value', t for weakness.
7694 (Fmake_hash_table): Ditto.
7695 (copy_hash_table): New.
7696 (Fcopy_hash_table): New.
7697
76981999-08-22 Gerd Moellmann <gerd@gnu.org>
7699
7700 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7701 new parameter.
26901792
DL
7702
77031999-08-21 Gerd Moellmann <gerd@gnu.org>
7704
7705 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7706 well.
427ec082 7707 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7708 have changed.
7709 (display_echo_area): Reset displayed echo_area_buffer to nil
7710 at the end if we're displaying a nil message.
7711
77121999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7713
26901792
DL
7714 * fns.c (hash_lookup): Test with EQ before calling key comparion
7715 function.
7716 (hash_remove): Ditto.
7717 (cmpfn_eq): Removed.
7718 (cmpfn_eql): Don't test with EQ.
7719 (cmpfn_equal): Ditto.
7720 (make_hash_table): Set comparison function for `eq' to null.
7721
7722 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7723 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7724
7725 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7726
7727 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7728 xterm.c: Call change_frame_size and do_pending_window_change with
7729 new parameter.
7730
7731 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7732 (change_frame_size): Ditto.
7733 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7734 and not called from a safe place.
7735 (window_change_signal): Call change_frame_size with new parameter.
7736
7737 * dispextern.h: Change prototypes for do_pending_window_change
7738 and change_frame_size.
7739
7740 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7741 window's buffers equals current_buffer; this is not the
26901792
DL
7742 case during echo area display.
7743
77441999-08-21 Gerd Moellmann <gerd@gnu.org>
7745
7746 * xdisp.c, minibuf.c: Remove conditional compilation on
7747 NO_PROMPT_IN_BUFFER.
7748
7749 * minibuf.c (Fminibuffer_prompt_end): New.
7750 (syms_of_minibuf): Defsubr it. Remove
7751 minibuffer-prompt-in-buffer.
7752 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7753 Extend documentation.
7754
7755 * xdisp.c (get_next_display_element): Display \r as ^M.
7756
7757 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7758 under scroll bar widget.
7759
77601999-08-21 Gerd Moellmann <gerd@gnu.org>
7761
7762 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7763 anywhere.
7764 (unwind_redisplay): Return nil.
7765 (clear_garbaged_frames): New.
7766 (redisplay_internal): Use it.
7767 (echo_area_display): Ditto.
7768 (resize_mini_window): Mew.
7769 (display_echo_area_1): Use it to resize echo area window.
7770 (redisplay_internal): Use it to resize active mini-window.
7771
7772 * dispextern.h, lisp.h: Add function prototypes.
7773
427ec082 7774 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7775 cursor_in_echo_area case only for a mini-window showing
7776 a message. Don't let cursor end up after the end of a row.
7777
7778 * xdisp.c (echo_area_glyphs, echo_area_message,
7779 echo_area_glyphs_length, previous_echo_glyphs,
7780 previous_echo_area_message, previous_echo_area_glyphs_length):
7781 Removed.
7782 (Vmessage_stack, echo_area_buffer, echo_buffer,
7783 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7784 (message2_nolog): Use set_message and clear_message.
7785 (message3): Rename parameter len to nbytes to make clear what
7786 it is.
7787 (message3_nolog): Ditto. Use set_message and clear_message.
7788 (update_echo_area): Rewritten.
7789 (with_echo_area_buffer): New.
7790 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7791 (setup_echo_area_for_printing): New.
7792 (display_echo_area, display_echo_area_1): New.
7793
7794 (current_message, current_message_1): New.
427ec082 7795 (push_message, restore_message, pop_message,
26901792
DL
7796 check_message_stack): New.
7797 (truncate_echo_area): Rewritten.
7798 (truncate_message_1): New.
7799 (set_message, set_message_1, clear_message): New.
7800 (echo_area_display): Rewritten.
7801 (redisplay_internal): Check for needed echo area update
7802 differently.
7803 (redisplay_preserve_echo_area): Rewritten.
427ec082 7804 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7805 message differently.
7806 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7807 Remove initialzation of removed variables.
7808 (init_xdisp): Remove references to removed variables.
7809
7810 * dispnew.c (adjust_frame_message_buffer): Removed references
7811 to echo_area_glyphs and previous_echo_glyphs.
7812 (direct_output_for_insert): Check for mini-window displaying
7813 echo area message differently.
7814 (update_frame): Likewise.
7815 (set_window_cursor_after_update): Likewise. In echo area,
7816 don't try to set cursor on rows that aren't enabled.
7817
7818 * print.c: Remove conditional compilation on `standalone'.
7819 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7820 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7821 longer used in that way.
7822 (PRINTDECLARE): Add multibyte.
7823 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7824 (printbufidx): Removed.
7825 (printchar, strout): Rewritten.
7826
7827 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7828 a struct kboard.
7829 (echo_kboard): New.
7830 (echo_now): Set echo_kboard to the current kboard.
7831 (cancel_echoing): Set echo_kboard to null.
7832 (cmd_error_internal): Use clear_message, remove references
7833 to echo_area_glyphs and echo_area_message.
7834 (command_loop_1): Check for echo area messages differently.
7835 (read_char): Likewise.
7836 (record_menu_key): Use clear_message.
7837 (Fexecute_extended_command): Check for echo area messages
7838 differently. Use push_message, restore_message, pop_message.
7839
7840 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7841 pop_message.
7842
7843 * emacs.c (shut_down_emacs): Call check_message_stack.
7844
7845 * lisp.h: Add function prototypes and extern declarations for
7846 new functions and variables.
7847
7848 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7849 pop_message.
7850
427ec082 7851 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7852 setting echo_area_glyphs.
7853 (Fminibuffer_completion_help): Ditto.
7854
7855 * editfns.c (Fcurrent_message): Rewritten.
7856
7857 * frame.c, window.h: Remove references to echo_area_glyphs
7858 and previous_echo_glyphs.
7859
78601999-08-21 Dave Love <fx@gnu.org>
7861
7862 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7863 * aix4-1.h: Likewise.
7864
7865 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7866
78671999-08-20 Gerd Moellmann <gerd@gnu.org>
7868
7869 * xfns.c: Remove tiff34 prefix from include.
7870
78711999-08-20 Dave Love <fx@gnu.org>
7872
7873 * cm.c: Revert previous change.
7874
78751999-08-19 Gerd Moellmann <gerd@gnu.org>
7876
7877 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7878 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7879
78801999-08-18 Dave Love <fx@gnu.org>
7881
7882 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7883 stdlib.h.
7884
7885 * doprnt.c: Use stdlib.h, unistd.h.
7886
7887 * config.in: Add HAVE_TERMCAP_H.
7888
7889 * cm.c: Use termcap.h.
7890
78911999-08-18 Gerd Moellmann <gerd@gnu.org>
7892
7893 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7894 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7895 cannot be created we will already have crashed earlier. Call
7896 lw_set_main_areas with a null menu-bar widget, so that we have
7897 a reasonable default.
7898 (Fx_create_frame): Rearranged so that Lisp errors during frame
7899 initialization cause less damage. Initialize menu bar widget
7900 here.
7901
79021999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 7903
26901792
DL
7904 * dispnew.c (update_frame_line): Fix previous change. If writing
7905 whole line clear to end of frame.
7906
79071999-08-17 Gerd Moellmann <gerd@gnu.org>
7908
7909 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7910 and `right-bitmap-area' if position is in the bitmap areas. This
7911 avoids an error when clicking on the bitmap areas. Instead, they
7912 are currently treated like clicks inside the window.
7913 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7914 (Qleft_bitmap_area, Qright_bitmap_area): New.
7915 (syms_of_window): Initialize new symbols.
7916
7917 * dispnew.c (update_frame_line): If writing whole line,
7918 don't write trailing spaces unless we must.
7919
7920 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7921 (redisplay_internal): Register unwind_redisplay with
7922 register_unwind_protect.
7923 (try_window_reusing_current_matrix): If new start > old start,
7924 give up if start pos of first reusable row is not equal to new
7925 start.
7926
7927 * eval.c (Fsignal): Don't reset redisplaying_p here.
7928
7929 * xterm.c (expose_area): If row extends face to end of line,
7930 write the whole line.
7931
79321999-08-16 Gerd Moellmann <gerd@gnu.org>
7933
7934 * dispextern.h (struct it): Remove member
7935 show_trailing_whitespace_p.
7936
7937 * dispnew.c (direct_output_for_insert): Use
7938 Vshow_trailing_whitespace instead of former iterator member
7939 show_trailing_whitespace_p.
7940 (direct_output_forward_char): Don't do it if hightlighting
7941 trailing whitespace.
7942
7943 * xdisp.c (Qshow_trailing_whitespace): Removed.
7944 (Vshow_trailing_whitespace): Added.
7945 (init_iterator): Remove initialization code for
7946 show_trailing_whitespace_p.
7947 (redisplay_internal): Don't try cursor movement in this_line
7948 if showing trailing whitespace.
7949 (redisplay_window): Likewise for cursor movement in current
7950 matrix and try_window_id.
7951 (try_window_reusing_current_matrix): Likewise.
7952 (trailing_whitespace_p): Return 0 if trailing whitespace is
7953 in front of point.
7954 (display_line): Use Vshow_trailing_whitespace instead of
7955 former iterator member show_trailing_whitespace_p.
7956 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7957
79581999-08-16 Gerd Moellmann <gerd@gnu.org>
7959
7960 * window.c (Fpos_visible_in_window_p): Rewritten.
7961
7962 * xfaces.c (add_to_log): Renamed from display_message.
7963 Don't display messages in echo area.
7964
7965 * xterm.c (x_draw_glyph_string_box): Use the background width
7966 of the glyph string for the width of the box.
7967
79681999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7969
7970 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7971
79721999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7973
7974 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7975 background first, and then set other parameters that might
7976 depend upon their new values.
7977
79781999-08-15 Gerd Moellmann <gerd@gnu.org>
7979
7980 * xfaces.c (Vfont_list_limit): New.
7981 (syms_of_xfaces): Make it a user-variable.
7982 (DEFAULT_FONT_LIST_LIMIT): New.
7983 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7984 maximally that number of fonts, otherwise use
7985 DEFAULT_FONT_LIST_LIMIT.
427ec082 7986 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
7987 until we have all fonts.
7988 (Fxfont_list): Additionally return the full names of fonts and
7989 their registry and encoding.
7990
427ec082 7991 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
7992 Simplify clearing "under" scroll bar.
7993
7994 * window.c (Qfixed_window_size): New.
7995 (syms_of_window): Initialiaze it.
7996 (check_all_windows): Add return type void.
7997 (window_fixed_size_p): New. Return non-zero if window
7998 is fixed-size.
7999 (window_min_size_1): New.
8000 (window_min_size): Handle fixed-size windows.
8001 (size_window): New. Rewritten combination of set_window_height and
8002 set_window_width that handles fixed-size windows.
8003 (set_window_height): Call it.
8004 (set_window_width): Call it.
8005 (Fsplit_window): Give an error on attempt to split a fixed-size
8006 window.
8007 (change_window_height): Partly rewritten to handle fixed-size
8008 windows.
8009
80101999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8011
8012 * process.c (Fopen_network_stream): Fix previous change.
8013
80141999-08-13 Karl Heuer <kwzh@gnu.org>
8015
8016 * xdisp.c (line_number_display_limit_width): New var.
8017 (decode_mode_spec): Use it instead of hardcoded value.
8018 (syms_of_xdisp): Defvar it.
8019
80201999-08-13 Richard M. Stallman <rms@gnu.org>
8021
8022 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8023 (run_hook_with_args): Likewise.
8024
8025 * window.h (struct window): New field too_small_ok.
8026
427ec082 8027 * window.c (set_window_height, set_window_width):
26901792
DL
8028 If window starts out "too small", set its too_small_ok flag.
8029 If window's too_small_ok flag is set, don't delete it
8030 unless it is so small it would cause a crash.
8031
80321999-08-13 Gerd Moellmann <gerd@gnu.org>
8033
8034 * window.c (MINSIZE): Removed.
8035 (window_min_size): New.
8036 (set_window_height): Use window_min_size.
8037 (change_window_height): Ditto.
8038
80391999-08-12 Gerd Moellmann <gerd@gnu.org>
8040
8041 * indent.c (vmotion): Don't add in mini-buffer prompt width
8042 if prompts are inserted into mini-buffer.
8043
80441999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8045
8046 * config.in: Add HAVE_GETADDRINFO.
8047 * process.c (Fopen_network_stream): Use getaddrinfo.
8048
80491999-08-11 Gerd Moellmann <gerd@gnu.org>
8050
8051 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8052 glyphs to -1.
8053
8054 * xdisp.c (face_before_or_after_it_pos): If position after
8055 or before iterator's current position in the buffer is out
8056 of bounds, return the iterator's original face id.
8057
8058 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8059 just swap glyphs pointers between current and desired row.
8060 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8061 desired matrix method string to current matrix.
8062
80631999-08-11 Kenichi Handa <handa@etl.go.jp>
8064
8065 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8066
8067 * lread.c (read_escape): For Control modifier, pay attention to
8068 multibyte character.
8069 (read1): Likewise. Singal error or a multibyte character which
8070 has a modifer bit. Check validity of Shift modifer.
8071
8072 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8073 the same as Lisp reader.
8074
80751999-08-10 Richard M. Stallman <rms@gnu.org>
8076
8077 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8078
80791999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8080
8081 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8082
80831999-08-10 Eli Zaretskii <eliz@gnu.org>
8084
8085 * msdos.c (IT_set_face): Abort if the default face is not realized
8086 and cached.
8087 (IT_write_glyphs): Reset the screen face to the default face
8088 before writing glyphs.
8089
8090 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8091 colors from the frame here.
8092 (realize_tty_face) [MSDOS]: Do it here. Update the face
8093 attributes with the actual name of the color taken from the
8094 frame.
8095
8096 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8097 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8098
8099 * frame.c (Fframe_parameters): Swap foreground and background
8100 colors returned in frame parameters if the frame has reverse in
8101 its parameter alist.
8102 (Fmake_terminal_frame): Make a unique copy of face_alist for
8103 each frame.
8104
81051999-08-07 Richard Stallman <rms@gnu.org>
8106
8107 * buffer.c (Fprevious_overlay_change): Just return
8108 the answer obtained from overlays_at.
8109
8110 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8111 Use XpmCloseness and attrs.closeness instead.
8112
81131999-08-06 Richard Stallman <rms@gnu.org>
8114
8115 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8116
81171999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8118
427ec082 8119 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8120 Ffile_attributes_lessp): New functions.
8121 (Fdirectory_files): Use directory_files_internal.
8122 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8123 Ffile_attributes_lessp.
8124
8125 * w32.c (stat): Check for directory ending in separator when
8126 doing readdir fast path.
8127
8128 * w32fns.c (x_set_icon_type): Support setting frame icons.
8129 * w32term.c (x_bitmap_icon): New function.
8130 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8131
26901792
DL
81321999-08-06 Gerd Moellmann <gerd@gnu.org>
8133
8134 * xdisp.c (set_iterator_to_next): After delivering a character
8135 from a display vector, restore face and charset to what they were
8136 before the display vector was processed.
8137
81381999-08-06 Gerd Moellmann <gerd@gnu.org>
8139
8140 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8141 on_newline_p.
8142 (set_iterator_to_next): After delivering last char
427ec082 8143 from display vector, reseat on next visible line start if
26901792
DL
8144 dpvec_char_len < 0.
8145 (next_element_from_buffer): Set dpvec_char_len to -1 for
8146 selective display.
8147
81481999-08-06 Gerd Moellmann <gerd@gnu.org>
8149
8150 * xdisp.c (compute_line_metrics): If first line's physical ascent
8151 is larger than its logical ascent, use the physical ascent, and
8152 make the row taller. Set row's overlapping_p flag.
8153
8154 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8155 (direct_output_for_insert): Ditto.
8156
8157 * dispextern.h (struct glyph_row): Add overlapping_p.
8158
8159 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8160
8161 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8162 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8163
8164 * dispnew.c (direct_output_for_insert): Don't use this method if
8165 row is overlapped by others.
8166 (update_text_area): Write full line if current line is overlapped.
8167 (redraw_overlapped_rows): New.
8168 (update_window): Call it.
8169 (redraw_overlapping_rows): New.
8170 (update_window): Call it.
8171 (scrolling_window): Make sure overlapped_p flag in current rows is
8172 unchanged.
8173 (row_equal_p): Take rows overlapped_p flag into account.
8174
8175 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8176
8177 * xterm.c (x_fix_overlapping_area): New.
8178 (x_redisplay_interface): Add x_fix_overlapping_area.
8179
8180 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8181
81821999-08-06 Gerd Moellmann <gerd@gnu.org>
8183
8184 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8185 (struct glyph_string): Add member for_overlaps_p.
8186 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8187 of overlapping rows, clip to window bottom.
8188 (x_fill_glyph_string): Add parameter overlaps_p.
8189 (x_fill_composite_glyph_string): Ditto.
8190 (BUILD_GLYPH_STRINGS): Ditto.
8191 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8192 (x_draw_glyph_string): Don't draw anything but the foreground
8193 if glyph string draws row overlaps.
8194
8195 * dispnew.c (direct_output_for_insert): Don't use this
8196 optimization for rows that overlap others.
8197 (update_window_line): Return non-zero if display has changed.
8198 (update_text_area): Ditto.
8199 (update_window): Record if display has been changed.
8200
8201 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8202
8203 * dispextern.h (struct redisplay_interface): Add
8204 fix_overlapping_area.
8205
8206 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8207
8208 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8209
8210 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8211 ascent and descent.
8212 (x_produce_stretch_glyph): Ditto.
8213 (x_produce_glyphs): Ditto.
8214
8215 * xdisp.c (init_iterator): Reset physical line height info
8216 after producing special glyphs.
8217 (display_toolbar_line): Set physical line height info.
8218 (compute_line_metrics): Ditto.
8219 (display_line): Ditto.
8220 (display_string): Ditto.
8221
8222 * term.c (produce_glyphs): Set iterator's physical height
8223 information.
8224
8225 * dispnew.c (blank_row): Compute glyph row's physical height.
8226 (row_equal_p): Take physical row heights into account.
8227 (direct_output_for_insert): Ditto.
8228 (update_text_area): Ditto.
8229
8230 * dispextern.h (struct glyph_row): Add phys_ascent and
8231 phys_height.
8232 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8233 max_phys_descent.
8234
82351999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8236
8237 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8238 Fswitch_to_buffer.
8239 (no_switch_buffer): New function.
8240 (Fswitch_to_buffer): Call them. Don't get confused
8241 by "same-window" buffers in a dedicated frame.
8242
8243 * window.c (display-buffer): Don't get confused
8244 by "same-window" buffers in a dedicated frame.
8245
82461999-08-04 Andreas Schwab <schwab@gnu.org>
8247
8248 * insdel.c (insert_from_string_1): Check gap size against number
8249 of outgoing bytes, not incoming bytes.
8250
82511999-08-03 Tom Breton <tob@world.std.com>
8252
8253 * lread.c (read1): Added circular reading code to #N=.
8254 (SUBSTITUTE): New macro.
8255 (seen_list): New variable.
8256 (substitute_object_in_subtree): New function.
8257 (substitute_object_recurse): New function.
8258 (substitute_in_interval): New function.
8259
82601999-08-02 Eli Zaretskii <eliz@gnu.org>
8261
8262 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8263
8264 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8265 noninteractive, for termcap frames as well.
8266
8267 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8268 frames.
8269
82701999-08-01 Richard Stallman <rms@gnu.org>
8271
8272 * fns.c (internal_equal): Correct overlay comparison.
8273
83c8f461 82741999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8275
427ec082 8276 * xfns.c (x_set_internal_border_width):
26901792
DL
8277 Call do_pending_window_change. Don't block input, don't call XFlush.
8278 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8279 (x_set_scroll_bar_width, x_set_font): Likewise.
8280
8281 * frame.c (Fset_frame_height): Call do_pending_window_change.
8282 (Fset_frame_width, Fset_frame_size): Likewise.
8283
8284 * xterm.c (x_set_window_size): When calling change_frame_size,
8285 specify 1 for DELAY.
8286
8287 * widget.c (EmacsFrameSetCharSize): Don't call
8288 do_pending_window_change here.
8289
82901999-07-30 Dave Love <fx@gnu.org>
8291
8292 * config.in: Add HAVE_STDLIB_H.
8293
82941999-07-30 Richard M. Stallman <rms@gnu.org>
8295
8296 * process.c (create_process): Detect failure of `pipe'.
8297
82981999-07-30 Keisuke Nishida <kei@psn.net>
8299
8300 * alloc.c (allocate_vectorlike): Add missing increment.
8301
8302 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8303
8304 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8305 before calling indirect_function.
8306
83071999-07-30 Eli Zaretskii <eliz@gnu.org>
8308
8309 * dispextern.h (load_color, lookup_derived_face): Declare
8310 prototypes.
8311
8312 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8313 it will be done later.
8314
8315 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8316 init_frame_faces if non-interactive.
8317 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8318 array with a call to msdos_stdcolor_name. The font name is now
8319 "ms-dos", consistent with realize_tty_face.
8320
8321 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8322 MSDOS frame.
8323
8324 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8325 x_set_toolbar_lines.
8326
8327 * xfaces.c (load_color): Remove static from definition and remove
8328 prototype.
8329 [MSDOS]: Add a DOS-specific version of load_color.
8330 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8331 (lookup_derived_face): New function.
8332 (realize_default_face): Support MSDOS frames.
8333 [MSDOS]: If fore/background colors are unspecified, inherit them
8334 from the frame.
8335 (realize_face): Support MSDOS frames.
8336 (realize_tty_face): Support MSDOS frames.
8337 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8338 load_color to try to find a suitable approximation. If the face
8339 is inverse-video, swap the foreground and background colors.
8340
8341 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8342 functions.
8343
8344 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8345
8346 * msdos.h: Remove redundant declarations (most of them are now in
8347 dispextern.h).
8348
8349 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8350 Use default frame colors if the face doesn't specify them; invert
8351 the colors if highlight is ON.
8352 (IT_write_glyphs): Rewritten for the new redisplay engine.
8353 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8354 how the hook is called by term.c.
8355 (IT_copy_glyphs): New function, copies an area of the display in
8356 video RAM.
8357 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8358 redisplay now calls it even if char_ins_del_ok is zero.
8359 (IT_set_frame_parameters): Prototype changed. Calls the new
8360 load_color. Puts the new fore/background colors into the default
8361 face on current frame.
8362 (IT_menu_display): Rewritten to handle the new struct glyph
8363 instead of a char array.
8364 (XMenuActivate): Call lookup_derived_face to create and use
8365 special faces for the pop-up and drop-down menus.
8366
83671999-07-29 Gerd Moellmann <gerd@gnu.org>
8368
8369 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8370 XawScrollbarSetThumb if thumb parameters haven't changed because
8371 that function apparently isn't optimized for this case.
8372
83731999-07-29 Eli Zaretskii <eliz@gnu.org>
8374
8375 * msdos.c (getdefdir): Don't return failure indication when
8376 _fixpath sets errno to ENOSYS.
8377
83781999-07-28 Gerd Moellmann <gerd@gnu.org>
8379
8380 * xdisp.c (string_char_and_length): New. Use it everywhere
8381 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8382
83831999-07-28 Kenichi Handa <handa@etl.go.jp>
8384
8385 * fns.c (count_combining): New function.
8386 (struct textprop_rec): New structure.
8387 (concat): Copy text properties correctly when byte combining
8388 occurs.
8389
83901999-07-28 Gerd Moellmann <gerd@gnu.org>
8391
8392 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8393 if display is mono.
8394 (x_draw_row_bitmaps): If face has stipple, don't switch
8395 to foreground color for clearing areas, and set the fill style.
8396
8397 * xfaces.c (load_face_colors): Load background color if setting
8398 stipple, too.
427ec082 8399 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8400 FillStippled.
8401
84021999-07-26 Ken'ichi Handa <handa@gnu.org>
8403
8404 * xterm.c (x_find_ccl_program): Add casting.
8405
8406 * w32fns.c (w32_find_ccl_program): Add casting.
8407
84081999-07-27 Gerd Moellmann <gerd@gnu.org>
8409
8410 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8411
8412 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8413 because this will try to access a nonexisting widget.
8414
84151999-07-26 Markus Rost <rost@gnu.org>
8416
427ec082 8417 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8418 (Fputhash): Ditto.
8419 (Fremhash): Ditto.
8420
84211999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8422
26901792
DL
8423 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8424 value to frame width and height.
8425
8426 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8427 into account for full-width windows. Don't add scroll bar width
8428 to width of clip rect.
8429 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8430 (x_set_glyph_string_background_width): Add 1 to background width.
8431 (x_draw_glyphs): Take internal border into account for full-width
8432 lines.
8433
84341999-07-26 Richard M. Stallman <rms@gnu.org>
8435
8436 * xfns.c (x_set_mouse_color): Always unload the old color.
8437 Don't allow nil as color value.
427ec082 8438 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8439 Always unload the old color.
8440
8441 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8442
84431999-07-26 Karl Heuer <kwzh@gnu.org>
8444
8445 * fns.c (Fy_or_n_p): Doc fix.
8446
84471999-07-26 Kenichi Handa <handa@etl.go.jp>
8448
8449 * ccl.h (setup_ccl_program): The type is changed to `int'.
8450
8451 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8452 stored in the following CCL code. Adjusted for the change of
8453 Vccl_program_table.
8454 (resolve_symbol_ccl_program): Adjusted for the new style of
8455 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8456 is resolving failed.
8457 (ccl_get_compiled_code): New function.
8458 (setup_ccl_program): Function type changed from `void' to `int'.
8459 Resolve symbols in CCL_PROG.
8460 (Fccl_program_p): New function.
8461 (Fccl_execute): Get compiled CCL code by just calling
8462 setup_ccl_program.
8463 (Fccl_execute_on_string): Likewise.
8464 (Fregister_ccl_program): Adjusted for the change of
8465 Vccl_program_table.
8466
8467 * coding.c (setup_coding_system): Get compiled CCL code by just
8468 calling setup_ccl_program.
8469
8470 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8471 calling setup_ccl_program.
8472
8473 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8474 calling setup_ccl_program.
8475
84761999-07-23 Gerd Moellmann <gerd@gnu.org>
8477
8478 * xfaces.c (frame_update_line_height): Just use the height of the
8479 frame's fontset or font, instead of taking face fonts into
8480 account.
8481
8482 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8483
84841999-07-23 Richard M. Stallman <rms@gnu.org>
8485
8486 * window.c (Fsplit_window): For default size, round up for left window.
8487
84881999-07-21 Joe Ramey <ramey@ti.com>
8489
8490 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8491 has returned -1 (lockfile exists but is not a symlink?).
8492
84931999-07-20 Gerd Moellmann <gerd@gnu.org>
8494
8495 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8496 because of a change in cursor_gc made in 20.4.
8497
84981999-07-19 Gerd Moellmann <gerd@gnu.org>
8499
8500 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8501 for YNegative, if using X toolkit.
8502
427ec082 8503 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8504 from positions returned.
8505
85061999-07-17 Gerd Moellmann <gerd@gnu.org>
8507
8508 * xrdb.c (x_load_resources): Set double-click time defaults
8509 for Motif list boxes from double-click-time.
8510
8511 * fns.c (Vhash_table_tests): Remvoed.
8512 (Qhash_table_test): New.
8513 (syms_of_fns): Initialize Qhash_table_test.
8514 (Fmake_hash_table): Look up user-defined tests in symbol prop
8515 `hash-table-test'.
8516 (Fdefine_hash_table_test): Store test and hash function as
8517 symbol prop `hash-table-test'.
8518 (make_hash_table): Add parameters user_test and user_hash.
8519
8520 * window.c (set_window_buffer): Set window margins for tty
8521 frames, too.
8522 (Fset_window_margins): Ditto.
8523
8524 * term.c (append_glyph): Use glyph area of iterator instead of
8525 always TEXT_AREA.
8526
8527 * dispnew.c (update_frame_1): Add left margin width to cursor
8528 hpos.
8529 (direct_output_for_insert): Ditto.
8530 (direct_output_forward_char): Ditto.
8531
8532 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8533
8534 * dispextern.h (struct glyph_matrix): Add top_line_p.
8535
85361999-07-16 Gerd Moellmann <gerd@gnu.org>
8537
8538 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8539 instead.
8540
8541 * fns.c (cmpfn_eq): Add hash code parameters.
8542 (cmpfn_eql): Ditto.
8543 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8544 (cmpfn_user_defined): Likewise.
8545
85461999-07-15 Gerd Moellmann <gerd@gnu.org>
8547
8548 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8549
8550 * fns.c (maybe_resize_hash_table): Correct computation of
8551 index vector size.
8552 (make_hash_table): Ditto.
8553 (Fmakehash): New.
8554
8555 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8556
8557 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8558 (survives_gc_p): Make it externally visible.
8559 (mark_object): Ditto.
8560
8561 * fns.c (remove_hash_entry): Removed.
8562 (sweep_weak_hash_tables): New.
8563
8564 * print.c (print): Print more information about hash tables.
8565
8566 * xfns.c (image_spec_hash): Removed.
8567 (lookup_image): Use sxhash instead of image_spec_hash.
8568 (image_spec_equal_p): Removed.
8569 (lookup_image): Use Fequal instead of image_spec_equal_p.
8570
85711999-07-14 Gerd Moellmann <gerd@gnu.org>
8572
8573 * lisp.h (P_): Moved to top of file.
8574
8575 * fns.c (make_hash_table): Set new members.
8576
8577 * alloc.c (mark_object): Mark hash table's user_hash_function.
8578 Mark index vector for weak hash tables.
8579
8580 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8581 user_hash_function, cmpfn, and hashfn.
8582
8583 * fns.c (build_hash): Removed.
8584 (hash_test): Removed.
8585 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8586 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8587
85881999-07-13 Gerd Moellmann <gerd@gnu.org>
8589
8590 * alloc.c (survives_gc_p): New.
8591
8592 * print.c (print): Add hash table handling.
8593
8594 * alloc.c (mark_object): Add code to mark hash tables.
8595
8596 * lisp.h (GC_HASH_TABLE_P): New.
8597
8598 * emacs.c (main): Call init_fns.
8599
8600 * fns.c (init_fns): New.
8601
8602 * fns.c: Add hash table implementation.
8603
8604 * lisp.h (PVEC_HASH_TABLE): New.
8605 (struct Lisp_Hash_Table): New.
8606 (XHASH_TABLE): New.
8607 (XSET_HASH_TABLE): New.
8608 (HASH_TABLE_P): New.
8609 (CHECK_HASH_TABLE): New.
8610 (DEFAULT_HASH_SIZE): New.
8611 (DEFAULT_REHASH_THRESHOLD): New.
8612 (DEFAULT_REHASH_SIZE): New.
8613
8614 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8615 (x_write_glyphs): Compute overwritten cursor using real start
8616 and end positions of display.
8617 (x_insert_glyphs): Ditto.
8618
86191999-07-10 Gerd Moellmann <gerd@gnu.org>
8620
8621 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8622
8623 * dispnew.c (blank_row): Add y-position as parameter. Compute
8624 visible height.
8625
8626 * xdisp.c (next_element_from_string): Give padding spaces
8627 a position of -1.
8628
427ec082 8629 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8630 marginals areas on tty frames in a future version.
8631 (allocate_matrices_for_frame_redisplay): Ditto.
8632
8633 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8634 to zero if number of glyphs in the row is <= 1.
8635
86361999-07-09 Gerd Moellmann <gerd@gnu.org>
8637
8638 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8639 into account.
8640
8641 * xdisp.c (handle_display_prop): Don't reset area if handing
8642 a property from a string that came from a `display' property.
8643 (handle_single_display_prop): Don't handle recursive `display'
8644 properties.
8645 (handle_single_display_prop): Handle some display property
8646 forms for terminal frames.
8647 (Qimage): Moved here from xfns.c.
8648
8649 * dispextern.h (struct it): New field string_from_display_prop_p.
8650
8651 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8652 line.
8653
86541999-07-08 Gerd Moellmann <gerd@gnu.org>
8655
8656 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8657
8658 * window.c (set_window_buffer): Set window's vscroll to zero.
8659
8660 * xdisp.c (QCwhen): New.
8661 (display_prop_end): New.
8662 (handle_single_display_prop): Use it.
8663 (debug_method_add): Print buffer name if tracing.
8664 (try_window_reusing_current_matrix): Compute visible height
8665 of reused rows. Fix cursor position calculation in case of
8666 top-line.
8667
8668 * dispextern.h (struct redisplay_interface): Add parameter
8669 cursor_on_p to update_window_end_hook.
8670
8671 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8672
86731999-07-07 Gerd Moellmann <gerd@gnu.org>
8674
427ec082 8675 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8676 doesn't become negative when decrementing it.
8677
8678 * eval.c (Fsignal): Reset redisplaying_p to zero.
8679
8680 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8681 for window update.
8682 (try_window_id): Ditto.
8683
8684 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8685 (x_scroll_run): Ditto.
8686 (any_help_event_p): New.
8687 (x_initialize): Set it to zero.
8688 (XTread_socket): Clear help echo only if any_help_event_p.
8689
8690 * xdisp.c (init_iterator): Set top_line_p.
8691 (start_display): Use correct initial y if top-line is present.
8692 (make_cursor_line_fully_visible): Bug fixes for top-line.
8693 (try_scrolling): Ditto.
8694 (try_window_reusing_current_matrix): Ditto.
8695
8696 * dispextern.h (struct it): Add top_line_p.
8697
8698 * dispnew.c (shift_glyph_matrix): Move some computations out
8699 of the loop.
8700
427ec082 8701 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8702 XFLOATINT.
8703
87041999-07-06 Gerd Moellmann <gerd@gnu.org>
8705
8706 * dispnew.c (update_frame_1): When setting cursor in echo area,
8707 skip only over padding spaces at the end.
8708
8709 * xfaces.c (realize_tty_face): Set face's font_name field to
8710 "tty".
8711
8712 * term.c (update_end): Turn cursor on only if selected window's
8713 cursor_off_p flag is not set.
8714
87151999-07-05 Gerd Moellmann <gerd@gnu.org>
8716
8717 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8718 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8719 (TS_cursor_invisible): New.
8720 (term_init): Initialize TS_cursor_invisible.
8721 (tty_hide_cursor): New.
8722 (tty_show_cursor): New.
8723 (update_end): Show tty cursor.
8724 (update_begin): Hide tty cursor to prevent cursor flickering
8725 during redisplays triggered by timers (stealth fontification).
8726
8727 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8728
8729 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8730 in scroll bars.
8731 (x_handle_toolbar_click): Set modifier bits.
8732
87331999-07-04 Gerd Moellmann <gerd@gnu.org>
8734
8735 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8736 instead of a pointer to a volatile input_event.
427ec082 8737 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8738 declaration of local variable `sp'.
8739 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8740 to kbd_fetch_ptr.
8741
87421999-07-03 Gerd Moellmann <gerd@gnu.org>
8743
8744 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8745 only if buffer is modified. Return quickly if changes are
8746 above window start.
8747
87481999-07-02 Gerd Moellmann <gerd@gnu.org>
8749
8750 * dispextern.h (HSCROLL_WINDOWS): Removed.
8751
8752 * xdisp.c (mark_window_display_accurate): Don't set
8753 w->region_showing.
8754 (redisplay_internal): Don't call redraw_garbaged_frames.
8755
87561999-07-01 Gerd Moellmann <gerd@gnu.org>
8757
8758 * xdisp.c (echo_area_display): Don't display truncation marks
8759 for messages because 20.4 doesn't do it either.
8760 (redisplay_window): Case same window start. Instead of giving
8761 up when cursor is partially visible, make it fully visible.
8762 (mark_window_display_accurate): Some cleanup. Record window's
8763 last cursor information.
8764 (debug_method_add): Improved.
8765 (redisplay_internal): Record last cursor info only if not
8766 consider_all_windows_p.
8767
8768 * dispnew.c (update_window): Update top line after scrolling.
8769 (blank_row): Renamed from make_empty_enabled_row.
8770 (increment_glyph_row_buffer_positions): Increment positions
8771 in buffers, only.
8772
8773 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8774 string.
8775
87761999-06-30 Gerd Moellmann <gerd@gnu.org>
8777
8778 * dispnew.c (update_window): Check that updated row is visible.
8779
8780 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8781 top of window differently.
8782
8783 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8784 if region is showing.
8785
8786 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8787 avoiding matrix reallocation. Set window_vscroll in matrix.
8788
8789 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8790
26901792
DL
8791 * xdisp.c (debug_method_add): New.
8792 (debug_redisplay_method): Removed.
8793 (try_window_reusing_current_matrix): Handle case where old
8794 window start is the same as new window start.
8795
8796 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8797 an array instead of a pointer.
8798
26901792
DL
8799 * xfns.c (Fx_show_tip): Undo previous change.
8800
8801 * xterm.c (x_append_glyph): Clear glyph->u.val.
8802
8803 * dispextern.h (struct glyph): Increase size of face_id bit-field
8804 for CHAR_GLYPH to 12.
8805
88061999-06-29 Gerd Moellmann <gerd@gnu.org>
8807
8808 * xfaces.c (x_charset_registry): Make it externally visible.
8809
88101999-06-28 Gerd Moellmann <gerd@gnu.org>
8811
427ec082 8812 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8813 instead of WINDOW_WANTS_MODELINE_P.
8814
8815 * xterm.c (clear_mouse_face): Make externally visible.
8816
8817 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8818
8819 * xterm.c (expose_line): Handle exposure of top-lines.
8820
8821 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8822 if mouse_face_mouse_frame is null.
8823
8824 * xdisp.c (redisplay_window): If window is echo_area_window,
8825 and update_mode_line is set, update menubar and toolbar.
8826
8827 * dispnew.c (space_glyph): Set its charpos to -1.
8828 (update_frame_1): Ignore trailing padding spaces.
8829
8830 * xdisp.c (next_element_from_c_string): Set position of padding
8831 glyphs to -1.
8832
88331999-06-27 Gerd Moellmann <gerd@gnu.org>
8834
8835 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8836 XQueryColor.
8837
8838 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8839 (set_cursor_from_row): Skip over glyphs having a null object at
8840 the start of rows.
8841 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8842 glyphs.
8843 (handle_invisible_prop): Compute next change only when needed.
8844 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8845 line.
8846
88471999-06-26 Gerd Moellmann <gerd@gnu.org>
8848
8849 * xrdb.c (x_load_resources): Don't set resource for double-click
8850 time.
8851
8852 * xdisp.c (try_window_id): Return quickly if all changes are
8853 below the window's current matrix end.
8854
8855 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8856 parameter.
8857
8858 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8859 in desired not in current matrix.
8860 (try_window_reusing_current_matrix): Rotate matrices starting
8861 at start_vpos instead of 0.
8862
8863 * xterm.c (expose_window): Use window_text_bottom_y.
8864 (fast_find_position): Ditto.
8865
8866 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8867 (try_window_reusing_current_matrix): Ditto.
8868 (get_last_unchanged_at_beg_row): Ditto.
8869 (init_iterator): Ditto.
8870
8871 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8872 more row.
8873 (check_matrix_invariants): Use window_text_bottom_y.
8874 (update_window): Ditto.
8875 (scrolling_window): Ditto.
8876
8877 * xdisp.c (window_text_bottom_y): New.
8878
88791999-06-25 Gerd Moellmann <gerd@gnu.org>
8880
8881 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8882 clearing mouse face.
8883 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8884 event.xcrossing.focus is not set, and focus is in the menu bar,
8885 set focus frame as if event.xcrossing.focus were set.
8886
88871999-06-24 Gerd Moellmann <gerd@gnu.org>
8888
8889 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8890 * keyboard.c (make_lispy_movement): Ditto.
8891
8892 * window.c (coordinates_in_window): Return 4 if on top line.
8893 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8894
8895 * xdisp.c (window_box_height): Subtract top line height.
8896 (window_box): Add top line height to top y position if top line
8897 exists.
8898 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8899 the top line row of the window. Set initial y-position to
8900 window's top line height plus delta.
8901 (start_display): Choose start glyph row depending on whether
8902 window has a top line.
8903 (try_scrolling): Take top line height into account for aggressive
8904 scrolling.
8905 (compute_window_start_on_continuation_line): Take top line into
8906 account.
427ec082 8907 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
8908 trigger a new redisplay.
8909 (try_window_reusing_current_matrix): Take top line into account.
8910 (find_last_row_displaying_text): Ditto.
8911 (get_last_unchanged_at_beg_row): DItto.
8912 (try_window_id): Ditto.
8913 (compute_line_metrics): Ditto.
8914
8915 * dispnew.c (shift_glyph_matrix): Compute visible row height
8916 taking top line of window into account.
8917 (update_window): Update top line. If scrolling_window detects
8918 that all rows are equal, only set cursor.
8919 (update_window_line): Call after_update_window_line_hook if
8920 mode_line_p flag of rows has changed.
8921 (scrolling_window): Add parameter top_line_p. Return -1 if
8922 all rows are equal.
8923 (mode_line_string): Add parameter mode_line_p. Handle strings
8924 in top lines.
8925
8926 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8927 (MATRIX_FIRST_TEXT_ROW): New.
8928 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8929 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8930 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8931 (MATRIX_TOP_LINE_HEIGHT): New.
8932 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8933 (CURRENT_TOP_LINE_HEIGHT): New.
8934 (DESIRED_TOP_LINE_HEIGHT): New.
8935 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8936 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8937 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8938 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8939
8940 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8941 lines.
8942 (x_draw_row_bitmaps): Take top line into account when clearing
8943 bitmap area.
8944 (x_estimate_mode_line_height): Replacement for
8945 x_frame_mode_line_height.
8946 (x_get_glyph_string_clip_rect): Take top line into account.
8947 (x_clear_end_of_line): Ditto.
8948 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8949 top lines.
8950 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8951 (x_erase_phys_cursor): Take top line into account.
8952
8953 * xdisp.c (window_box_height): Subtract top line height if
8954 window wants a top line.
8955 (display_mode_lines): New.
8956 (redisplay_window): Call it.
8957 (display_mode_line): Add parameters face_id and format.
8958
8959 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8960 (MATRIX_TOP_LINE_HEIGHT): New.
8961
8962 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8963
8964 * term.c (estimate_mode_line_height): Renamed from
8965 frame_mode_line_height. Add parameter face_id.
8966 (estimate_mode_line_height_hook): Renamed from
8967 frame_mode_line_height_hook.
8968 (produce_special_glyphs_hook): Removed.
8969 (produce_glyphs_hook): Removed.
8970
89711999-06-23 Gerd Moellmann <gerd@gnu.org>
8972
8973 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8974 (struct glyph_row): Add mode_line_p.
8975
8976 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8977 (Qtop_line): New.
8978 (syms_of_xfaces): Initialize Qtop_line.
8979
8980 * dispextern.h (TOP_LINE_FACE_ID): New.
8981
8982 * buffer.c (init_buffer_once): Set default for
8983 top_line_format to nil.
8984 (init_buffer_once): Init top_line_format.
8985 (default-top-line-format): New.
8986 (top-line-format): New buffer-local variable.
8987
8988 * buffer.h: Add top_line_format.
8989
8990 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8991
89921999-06-17 Dave Love <fx@gnu.org>
8993
8994 * xfns.c: Move the PNG section before the JPEG one to avoid
8995 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 8996
26901792
DL
89971999-06-17 Gerd Moellmann <gerd@gnu.org>
8998
8999 * xfns.c (x_kill_gs_process): Don't free colors.
9000
90011999-06-17 Dave Love <fx@gnu.org>
9002
9003 * s/gnu-linux.h: Zap spurious ~.
9004
90051999-06-16 Gerd Moellmann <gerd@gnu.org>
9006
9007 * xfns.c (gif_load): Improve multi-image support.
9008
90091999-06-15 Gerd Moellmann <gerd@gnu.org>
9010
9011 * xfns.c (gif_load): Support multi-image files.
9012
9013 * Makefile.in (LIBGIF): Use libungif.
9014
9015 * configure.in (HAVE_GIF): Use libungif instead of libgif
9016 because the former doesn't contain patented compression code.
9017
9018 * xdisp.c (compute_window_start_on_continuation_line): Don't
9019 do it if line start is too far away from window start.
9020
90211999-06-14 Gerd Moellmann <gerd@gnu.org>
9022
9023 * buffer.c (init_buffer_once): Set buffer_local_flags for
9024 scroll_*_aggressively.
9025 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9026 (init_buffer_once): Set defaults for these variables.
9027 (syms_of_buffer): Add default-scroll-*-aggressively.
9028
9029 * buffer.h (scroll_up_aggressively): New.
9030 (scroll_down_aggressively): New.
9031
9032 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9033 a static PNG library.
9034
9035 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9036 in case it's a static library.
9037
9038 * Makefile.in (ctagsfiles): Split so that files starting
9039 with an `x' are found before files starting with `w32'.
9040 (ctagsfiles1): New.
9041 (ctagsfiles2): New.
9042 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9043
9044 * xdisp.c (compute_window_start_on_continuation_line): New.
9045 (redisplay_window): Use it.
9046 (INFINITY): New.
9047 (reseat_to_string): Use it.
9048 (hscroll_window_tree): Ditto.
9049 (compute_window_start_on_continuation_line): Ditto.
9050 (redisplay_window): Don't force display with a new window start.
9051
90521999-06-06 Gerd Moellmann <gerd@gnu.org>
9053
9054 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9055 if widget not present.
9056
9057 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9058
90591999-06-04 Gerd Moellmann <gerd@gnu.org>
9060
9061 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9062 value of realize_basic_faces.
9063 (load_face_font_or_fontset): Store full font name in face.
9064 (realize_default_face): Use full font name.
9065
26901792
DL
9066 * xterm.c (x_produce_glyphs): Set member char_to_display.
9067 (x_append_glyph): Store char_to_display in glyphs.
9068
9069 * dispextern.h (struct it): Add char_to_display.
9070
9071 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9072 if faces haven't been initialized.
9073 (Fx_create_frame): Call face-set-after-frame-default after
9074 faces have been initialized, and widget has been created.
9075
9076 * puresize.h (BASE_PURESIZE): Increased.
9077
90781999-06-01 Gerd Moellmann <gerd@gnu.org>
9079
9080 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9081 (Finternal_set_lisp_face_attribute): If frame is t when
9082 :font attribute is set, use the selected frame.
9083 (clear_face_cache): Add parameter clear_fonts_p.
9084 (Fclear_face_cache): Add optional parameter thorougly.
9085
9086 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9087 in table.
9088 (Fclear_face_cache): New.
9089 (choose_face_fontset_font): If fontset doesn't contain font
9090 pattern for the given charset, use CHARSET_ASCII.
9091 (Finternal_set_lisp_face_attribute): Fix handling of nil
9092 stipple attribute.
9093 (Finternal_set_lisp_face_attribute): Fix handling of changing
9094 font-related face attributes of the default face.
9095 (set_lface_from_font_name): Set only attributes that aren't
9096 specified.
9097
90981999-05-31 Gerd Moellmann <gerd@gnu.org>
9099
9100 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9101 font support.
9102 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9103 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9104 scalable fonts depending on the setting of SCALABLE_FONTS.
9105 (first_font_matching): List more than one font to find the
9106 first non-scalable matching font.
9107 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9108 depending on SCALABLE_FONTS.
9109 (better_font_p): New parameter compare_pt_p. If zero, don't
9110 compare point sizes of fonts.
9111 (exact_face_match_p) [SCALABLE_FONTS]: New.
9112 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9113 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9114 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9115 (syms_of_xfaces): Add scalable-fonts-allowed.
9116
91171999-05-26 Gerd Moellmann <gerd@gnu.org>
9118
9119 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9120 mask only if image contains simple transparency information.
9121 Otherwise, combine image with frame background color.
9122
9123 * configure.in (--with-png, HAVE_PNG): New.
9124
9125 * config.in (HAVE_PNG): New.
9126
9127 * Makefile.in: Add PNG library.
9128
9129 * xfns.c: Add PNG support.
9130
91311999-05-25 Gerd Moellmann <gerd@gnu.org>
9132
9133 * xdisp.c (init_xdisp): Initialize echo_area_message and
9134 previous_echo_area_message to nil.
9135
9136 * keyboard.c (read_char): Rename local variable echo_area_message
9137 because it shadows the global one.
9138
91391999-05-05 Gerd Moellmann <gerd@gnu.org>
9140
9141 * xterm.c (note_mode_line_highlight): Restructured.
9142
9143 * window.c (coordinates_in_window): Handle windows that don't have
9144 a mode line because their buffer's mode-line-format is nil.
9145 Recognize the mode line under x positions that correspond to
9146 flags areas and left scroll bar.
9147
91481999-05-02 Dave Love <fx@gnu.org>
9149
9150 * xterm.c (note_mouse_highlight): Separate help-echo processing
9151 from check on mouse-face so that it works generally.
9152
91531999-04-21 Gerd Moellmann <gerd@gnu.org>
9154
9155 * sound.c (Fplay_sound): Run hook play-sound-hook.
9156 (Qplay_sound_hook): New.
9157
91581999-04-20 Gerd Moellmann <gerd@gnu.org>
9159
9160 * xdisp.c (update_echo_area): Handle echo_area_message.
9161
91621999-04-19 Gerd Moellmann <gerd@gnu.org>
9163
9164 * editfns.c (Fmessage): Use message3.
9165
9166 * print.c (printchar): Set echo_area_message to nil.
9167 (strout): Ditto.
9168
9169 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9170 (Fminibuffer_completion_help): Ditto.
9171
9172 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9173 (command_loop_1): Test echo_areA_message.
9174 (read_char): Ditto.
9175 (record_menu_key): Set echo_area_message to nil.
9176 (Fexecute_extended_command): Test echo_area_message.
9177 (Fexecute_extended_command): Handle echo_area_message.
9178
9179 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9180 is set.
9181
9182 * editfns.c (Fcurrent_message): If echo_area_message is set,
9183 return a substring of that string.
9184
9185 * dispnew.c (direct_output_for_insert): Test echo_area_message
9186 in addition to echo_area_glyphs.
9187 (set_window_cursor_after_update): Ditto.
9188 (update_frame_1): Ditto.
9189
9190 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9191 old Lisp message string.
9192
9193 * xdisp.c (echo_area_message): New.
9194 (previous_echo_area_message): New.
9195 (syms_of_xdisp): Initialize and staticpro new variables.
9196 (echo_area_display): Display echo_area_message if set.
9197 (message2_nolog): Set echo_area_message and
9198 previous_echo_area_message.
9199 (echo_area_display): Set previous_echo_area_message.
9200 (redisplay_internal): Display echo area if echo_area_message
9201 or previous_echo_area_message are set.
9202 (redisplay_preserve_echo_area): Test/set echo_area_message and
9203 previous_echo_area_message.
9204 (redisplay_window): Test echo_area_message.
9205 (message3_nolog): New.
9206 (message3): New.
9207
9208 * editfns.c (Fformat): Add text properties to the result string
9209 from properties of the format string and properties of string
9210 arguments.
9211
9212 * textprop.c (text_property_list): New.
9213 (add_text_properties_from_list): New.
9214 (extend_property_ranges): New.
9215
92161999-03-29 Gerd Moellmann <gerd@gnu.org>
9217
9218 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9219 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9220 Use these symbols for the box face attribute instead of the
9221 removed ones.
9222
92231999-03-12 Gerd Moellmann <gerd@gnu.org>
9224
9225 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9226 Correct wrong test for slant.
9227
92281999-03-10 Gerd Moellmann <gerd@gnu.org>
9229
9230 * xfaces.c: Use `unspecified' for unspecified face attributes,
9231 use t and nil for on/off.
9232
92331999-03-06 Gerd Moellmann <gerd@gnu.org>
9234
9235 * buffer.c (syms_of_buffer): Extend doc string of
9236 mode-line-format.
9237
9238 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9239 (first_font_matching): New.
9240 (set_lface_from_font_name): Use it if font name is a pattern.
9241 (font_field_wildcard_p): Removed.
9242
9243 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9244 Recompute visible height of rows.
9245
9246 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9247 Don't accept non-strings for help-echo from overlays.
9248
92491999-03-04 Dave Love <fx@gnu.org>
9250
9251 * xterm.c (note_mouse_highlight): Check overlays for help-text
9252 property.
9253 (XTread_socket): Fix compiler warning.
427ec082 9254
26901792
DL
92551999-03-05 Gerd Moellmann <gerd@gnu.org>
9256
427ec082 9257 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9258 overlay to 10. Call overlays_at so that it doesn't try to
9259 extend the vector.
9260
9261 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9262 height.
9263
9264 * dispnew.c (row_equal_p): Compare visible row height, only.
9265 (update_text_area): Draw whole line if visible heights of
9266 rows differ.
9267 (update_window_line): Call after_update_window_line_hook
9268 if visible row height has changed.
9269
9270 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9271 (struct glyph_row): New member visible_height.
9272
9273 * xfaces.c (font_field_wildcard_p): New.
9274 (set_lface_from_font_name): Remove parameter force_p. Accept
9275 font names containing wildcards.
9276
92771999-03-04 Gerd Moellmann <gerd@gnu.org>
9278
9279 * xterm.c (x_after_update_window_line): Clear internal border
9280 when windows_or_buffers_changed.
9281
9282 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9283 buffer has a nil mode_line_format.
9284
92851999-03-03 Gerd Moellmann <gerd@gnu.org>
9286
9287 * xterm.c (x_setup_relief_colors): Use either background color
9288 or specified color.
9289
9290 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9291
9292 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9293
9294 * xterm.c (x_draw_box_rect): New.
9295 (x_draw_glyph_string_box): Renamed from
9296 x_draw_glyph_string_relief. Call x_draw_box_rect.
9297
9298 * xfns.c (QCrelief): New.
9299 (syms_of_xfns): Initialize it.
9300
9301 * dispextern.h (struct glyph): Rename left_shadow_p to
9302 left_box_line_p, right_shadow_p to right_box_line_p.
9303 (MAX_RELIEF_THICKNESS): Removed.
9304 (struct it): Rename members having `relief' in their names
9305 to contain `box' instead.
9306
9307 * xfaces.c (realize_x_face): Handle new box attribute values.
9308 (QCrelief, Qbox): Removed.
9309 (QCshadow, QCcolor, Qraised, Qsunken): New.
9310 (syms_of_xfaces): Initialize new symbols.
9311
93121999-03-02 Gerd Moellmann <gerd@gnu.org>
9313
9314 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9315
9316 * xfaces.c (LFACE_RELIEF): Removed.
9317 (merge_face_vector_with_property): Remove handling of `:relief'.
9318 (Finternal_set_lisp_face_attribute): Ditto.
9319 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9320 (Finternal_get_lisp_face_attribute): Ditto.
9321 (realize_default_face): Ditto.
9322 (lface_hash): Don't compute hash from relief.
9323
9324 * dispextern.h (struct face): Replace member `relief' by
9325 `box_line_width'. Add member `box'.
9326 (face_box_type): New.
9327
9328 * xterm.c (x_produce_glyphs): If face has overline, add overline
9329 thickness + 1 to ascent.
9330
93311999-03-01 Gerd Moellmann <gerd@gnu.org>
9332
9333 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9334 strike-through, and boxes.
9335 (x_draw_glyph_string_underline): Removed.
9336
9337 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9338 (Qoverline, Qstrike_through, Qbox): New.
9339 (syms_of_xfaces): Define these symbols.
9340 (check_lface_attrs): Add checks for overline, strike-through,
9341 and box.
9342 (Finternal_set_lisp_face_attribute): Set new attributes.
9343 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9344 (load_color): Handle new attributes.
9345 (realize_x_face): Ditto.
9346 (merge_face_vector_with_property): Ditto.
9347 (free_face_colors): Ditto.
9348 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9349 (Finternal_get_lisp_face_attribute): Ditto.
9350 (Finternal_lisp_face_attribute_values): Ditto.
9351
9352 * dispextern.h (lface_attribute_index): Add enumerators for
9353 overstrike, strike-through, and box.
9354 (struct face): Add members for overline, strike-through, and
9355 box.
9356
93571999-02-17 Dave Love <fx@gnu.org>
9358
9359 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9360 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9361 files.
9362
93631999-02-16 Gerd Moellmann <gerd@gnu.org>
9364
9365 * keyboard.c (toolbar_items): Call access_keymap with third
9366 parameter 1, so that we don't get inherited toolbar item
9367 definitions.
9368
9369 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9370 the window end vpos when in empty first line of window.
9371
93721999-02-15 Gerd Moellmann <gerd@gnu.org>
9373
9374 * xfaces.c (set_font_frame_param): New.
9375 (Finternal_set_lisp_face_attribute): Call it.
9376
9377Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9378
9379 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9380 Accept specifications of color for underline.
9381
93821999-02-13 Gerd Moellmann <gerd@gnu.org>
9383
9384 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9385 `frame' is t, operate on face defaults for new frames. If it
9386 is nil, operate on the selected frame.
9387
93881999-02-12 Gerd Moellmann <gerd@gnu.org>
9389
9390 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9391 (update_window): Put the call to check_matrix_invariants in #if 0.
9392
9393Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9394
9395 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9396 Remove definition of UNDERLINE_COLOR.
9397
9398Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9399
9400 * xfaces.c (free_face_colors): Free the color for underline.
9401
9402 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9403 to the GC.
9404
9405Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9406
9407 * dispextern.h (UNDERLINE_COLOR): Defined.
9408 (struct face): Added two new members.
9409 underline_color, underline_defaulted_p.
9410
427ec082 9411 * xfaces.c (merge_face_vector_with_property):
26901792 9412 (check_lface_attrs): Accept the string value for underline.
427ec082 9413 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9414
9415 * xfaces.c (load_color): Change the last argument type to enum
9416 lface_attribute_index from int. And addec code for underling coloring.
9417 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9418
26901792
DL
94191999-02-12 Gerd Moellmann <gerd@gnu.org>
9420
9421 * xfns.c (Fx_image_header): Removed.
9422
94231999-02-07 Gerd Moellmann <gerd@gnu.org>
9424
9425 * xterm.c: Don't include <bitmaps/gray>.
9426 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9427
9428 * xfns.c (Fx_image_header): Add missing `\n\'.
9429 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9430
94311999-02-01 Gerd Moellmann <gerd@gnu.org>
9432
9433 * xterm.c (x_scroll_bar_create): Set background pixel from
9434 specified scroll bar color.
9435 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9436
9437 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9438 (x_set_scroll_bar_background): Ditto.
9439
9440 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9441
9442 * xfns.c (x_default_scroll_bar_color_parameter): New.
9443 (Fx_create_frame): Call it.
9444
94451999-01-31 Gerd Moellmann <gerd@gnu.org>
9446
9447 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9448 values in x_output structure.
26901792
DL
9449 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9450 (syms_of_xfns): Initialize these symbols.
9451
9452 * xterm.h (struct x_output): Add scroll bar pixel colors.
9453
9454 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9455 (x_set_scroll_bar_foreground): New.
9456 (x_set_scroll_bar_background): New.
9457
26901792
DL
94581999-01-12 Gerd Moellmann <gerd@gnu.org>
9459
9460 * xdisp.c (handle_single_display_prop): New.
9461 (handle_display_prop): Call it.
9462 (handle_raise_prop): Removed.
9463 (handle_height_prop): Removed.
9464 (handle_space_width_prop): Removed.
9465 (handle_face_prop): Remove handling of raised text.
9466 (handle_display_prop): Do it here.
9467
9468 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9469 (RAISE_PROP_IDX): Removed.
9470 (HEIGHT_PROP_IDX): Removed.
9471 (SPACE_WIDTH_PROP_IDX): Removed.
9472
9473 * xdisp.c (Qdisplay): Replaces Qglyph.
9474 (handle_display_prop): Formerly handle_glyph_prop.
9475
94761999-01-11 Gerd Moellmann <gerd@gnu.org>
9477
9478 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9479 (handle_stop): Set position in display vector to -1. Don't
9480 check overlay strings when set up to deliver characters from a
9481 display vector.
9482 (set_iterator_to_next): At the end of a run of characters from a
9483 display vector, check whether the display vector display replaces
9484 the display of a character.
9485
94861999-01-05 Gerd Moellmann <gerd@gnu.org>
9487
9488 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9489 X window hasn't been created yet.
9490
94911998-12-06 Gerd Moellmann <gerd@gnu.org>
9492
9493 * sound.c: New.
9494
94951998-12-04 Gerd Moellmann <gerd@gnu.org>
9496
9497 * config.in (HAVE_SOUND): New.
9498
9499 * emacs.c (main): Call syms_of_sound and init_sound.
9500
9501 * Makefile.in (obj): Add sound.o.
9502
9503 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9504
9505 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9506 (HAVE_SYS_SOUNDCARD_H): New.
9507
95081998-12-03 Gerd Moellmann <gerd@gnu.org>
9509
9510 * buffer.h (struct buffer): indicate_empty_lines renamed from
9511 indicate_zv_lines.
9512
9513 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9514 (default-indicate-zv-lines): Likewise.
9515
9516 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9517 to indicate_empty_line_p.
9518
9519 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9520 to next_element_from_buffer.
9521
9522 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9523
9524 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9525 and `N-'.
9526
9527 * xfns.c (xbm_scan): New.
9528 (xbm_read_hexint): Removed.
9529 (xbm_read_bitmap_file_data): Use xbm_scan.
9530
9531 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9532
95331998-12-02 Gerd Moellmann <gerd@gnu.org>
9534
9535 * xfns.c (xbm_read_hexint): New.
9536 (xbm_read_bitmap_file_data): New.
9537 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9538 instead of XReadBitmapFileData.
9539
9540 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9541
9542 * xfaces.c (face_with_height): New.
9543
9544 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9545 (eval_form): Renamed from eval_mode_element.
9546 (handle_face_prop): Use it.
9547 (Qheight): Replaces Qsmaller.
9548 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9549 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9550 integer, evaluate it to get the font height to use.
9551
9552 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9553 (struct it): Use `font_height' instead of `smaller'.
9554
95551998-12-01 Gerd Moellmann <gerd@gnu.org>
9556
9557 * xdisp.c (reseat_1): New.
9558 (reseat): Call it.
9559 (move_it_vertically_backward): Ditto.
9560 (redisplay_window): Don't abort when cursor not found in recenter.
9561
95621998-11-30 Gerd Moellmann <gerd@gnu.org>
9563
9564 * xdisp.c (reseat_at_next_visible_line_start): When not
9565 currently delivering display elements from the current buffer,
9566 restore buffer position first.
9567 (init_from_display_pos): Don't set IT's position from the
9568 position passed to this function.
9569
95701998-11-28 Gerd Moellmann <gerd@gnu.org>
9571
9572 * config.in (PROTO): Removed.
9573
9574 * xterm.h: Change PROTO to P_.
9575
95761998-11-26 Gerd Moellmann <gerd@gnu.org>
9577
9578 * xterm.c (take_vertical_position_into_account): New.
9579 (x_produce_image_glyph): Call it.
9580 (x_produce_stretch_glyph): Ditto.
9581 (x_produce_glyphs): Ditto.
9582 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9583 (x_fill_composite_glyph_string): Ditto.
9584 (x_fill_image_glyph_string): Ditto.
9585 (x_fill_stretch_glyph_string): Ditto.
9586
9587 * xdisp.c (display_line): Always compute row height from
9588 max_ascent and max_descent.
9589
9590 * dispextern.h (struct glyph): Add voffset.
9591 (struct it): Replace height by descent, max_height by max_descent.
9592
9593 * xterm.c (x_append_glyph): Set voffset
9594 (x_append_stretch_glyph): Ditto.
9595 (x_produce_image_glyph): Ditto.
9596 (x_produce_glyphs): Take voffset into account.
9597 (x_produce_image_glyph): Ditto.
9598 (x_produce_stretch_glyph): Ditto.
9599
9600 * dispextern.h (struct it): Add voffset.
9601 * xdisp.c (push_it): Save voffset.
9602 (pop_it): Restore it.
9603
9604 * xdisp.c (it_props): Add entry for `raise'.
9605 (handle_raise_prop): New.
9606
9607 * dispextern.h (RAISE_PROP_IDX): New.
9608
9609 * xdisp.c (Qraise): New.
9610 (syms_of_xdisp): Define Qraised.
9611
9612 * xterm.c (x_scroll_bar_move): Clear to the left and right
9613 of toolkit scroll bars differently.
9614 (x_scroll_bar_move): Removed.
9615 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9616
9617 * dispextern.h: Make it compilable --with-x=no.
9618 * alloc.c: Ditto.
9619 * emacs.c: Ditto.
9620 * dispnew.c: Ditto.
9621 * keyboard.c: Ditto.
9622 * term.c: Ditto.
9623 * xdisp.c: Ditto.
9624 * xfaces.c: Ditto.
9625 * xfns.c: Ditto.
9626 * xmenu.c: Ditto.
9627
96281998-11-25 Gerd Moellmann <gerd@gnu.org>
9629
9630 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9631
96321998-11-24 Gerd Moellmann <gerd@gnu.org>
9633
9634 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9635 update slider size, only.
9636 (xm_scroll_callback): Set dragging member of the scroll bar.
9637 (xt_action_hook): Reset last_scroll_bar_part.
9638 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9639
26901792
DL
9640 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9641 window on newly created frames that don't have one.
9642
96431998-11-23 Gerd Moellmann <gerd@gnu.org>
9644
9645 * xdisp.c (restore_overlay_strings): Removed.
9646 (restore_dpvec): Removed.
9647 (init_from_display_pos): Inline both functions above.
9648
9649 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9650 (parse_image_spec): Handle it.
9651 (xbm_format): Use it.
9652 (xpm_format): Ditto.
9653 (pbm_format): Ditto.
9654 (jpeg_format): Ditto.
9655 (tiff_format): Ditto.
9656 (gif_format): Ditto.
9657 (gs_format): Ditto.
9658
9659 * xdisp.c (set_window_cursor): Removed.
9660 (redisplay_internal): Case cursor motion in cursor line of
9661 selected window; use set_cursor_from_row.
9662
96631998-11-22 Gerd Moellmann <gerd@gnu.org>
9664
9665 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9666 into account.
9667
96681998-11-21 Gerd Moellmann <gerd@gnu.org>
9669
9670 * xterm.c (expose_frame): Redraw menu bar window.
9671
9672 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9673 in menu item.
9674
9675 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9676 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9677
9678 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9679 to determine vertical_scroll_bar_extra.
9680 (EmacsFrameSetCharSize): Ditto.
9681 * xfns.c (x_figure_window_size): Ditto.
9682
9683 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9684 (x_draw_bitmap): Ditto.
9685
9686 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9687 * xfaces.c (realize_basic_faces): Realize it.
9688
96891998-11-20 Gerd Moellmann <gerd@gnu.org>
9690
9691 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9692 under LessTif Use the widget of the frame as parent for the
26901792
DL
9693 menu, again.
9694
96951998-11-19 Gerd Moellmann <gerd@gnu.org>
9696
9697 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9698 When EnterNotify, don't generate a mouse movement event if
9699 notification is from a busy-cursor child window.
9700
9701 * xterm.h (struct x_output): Add busy_window, remove cursor.
9702
9703 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9704 Use a transparent window to display the busy-cursor.
9705 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9706
97071998-11-17 Gerd Moellmann <gerd@gnu.org>
9708
9709 * xdisp.c (check_window_end): New, for debugging.
9710 (CHECK_WINDOW_END): New.
9711 (try_window_id): Use it.
9712
9713 * xterm.c (process_expose_from_menu): Return int.
9714
9715 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9716 TOOLBAR_EVENT events in last_nonmenu_event.
9717
97181998-11-16 Gerd Moellmann <gerd@gnu.org>
9719
9720 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9721 window end isn't reliable, so set window_end_valid to nil.
9722 (redisplay_internal): If overlay arrow has changed, set
9723 windows_or_buffers_changed to redisplay thoroughly.
9724
9725 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9726 necessary.
9727
9728 * xfns.c (file_dialog_cb): New.
9729 (Fx_file_dialog): New.
9730 * fileio.c (Fread_file_name): Call it.
9731
427ec082 9732 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9733 selection dialog.
9734
97351998-11-14 Gerd Moellmann <gerd@gnu.org>
9736
9737 * xterm.c (note_mouse_highlight): Don't highlight when popup
9738 is active.
9739
26901792
DL
9740 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9741 timer-event-handler. This busy cursor tends to be anoying if
9742 fontifying stealthily.
9743
9744 * dispnew.c (direct_output_for_insert): Give up if current row
9745 contains trailing whitespace.
9746
97471998-11-13 Gerd Moellmann <gerd@gnu.org>
9748
9749 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9750
9751 * xdisp.c (handle_fontified_prop): New.
9752 (Vfontification_functions): New.
9753 (Qfontification_functions): New.
9754 (it_props): Add handle_fontified_prop.
9755
97561998-11-12 Gerd Moellmann <gerd@gnu.org>
9757
9758 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9759 Otherwise, under LessTif, after the popup has gone, all button
9760 press events come in for the frame's widget, and release events
9761 come in for the edit_widget.
9762 * xterm.c (XTread_socket): Remove workaround for that problem.
9763 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9764 XmScrollBarSetValues.
9765 (SET_SAVED_MENU_EVENT): Give it statement form.
9766
26901792
DL
9767 * xfaces.c (display_message): If waiting_for_input, don't display
9768 the message.
9769
9770 * window.c (scroll_command): If not acting on current_buffer,
9771 make redisplay consider all windows.
9772
9773 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9774
9775 * xdisp.c (handle_glyph_prop): Set it->object for images to
9776 the object having the glyph property.
9777
9778 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9779 invisible.
9780
97811998-11-11 Gerd Moellmann <gerd@gnu.org>
9782
9783 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9784 (x_term_init): Create the gray pixmap.
9785 (x_setup_relief_color): Use it.
9786 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9787 internal border at the top of a frame.
9788 (x_init_glyph_string): Likewise.
427ec082 9789 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9790 full-width lines.
9791 (XTflash): Don't flash the toolbar window.
9792
9793 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9794 in case of ButtonPress events.
9795
97961998-11-10 Gerd Moellmann <gerd@gnu.org>
9797
9798 * xrdb.c (x_load_resources): Add grey background colors as
9799 defaults for menus, scroll bars, and dialogs.
9800
9801 * insdel.c (prepare_to_modify_buffer): Move setting
9802 windows_or_buffers_changed from modify_region here.
9803
9804 * xfns.c (Fx_show_tip): Inhibit redisplay.
9805 (Fx_hide_tip): Ditto.
9806 (Fx_image_header): New.
9807
98081998-11-09 Gerd Moellmann <gerd@gnu.org>
9809
9810 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9811 when clearing current window matrices.
9812
98131998-11-08 Gerd Moellmann <gerd@gnu.org>
9814
9815 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9816 position from a string position. Use the right end position
9817 if the property spans a whole overlay string.
9818
98191998-11-07 Gerd Moellmann <gerd@gnu.org>
9820
9821 * xmenu.c (menubar_selection_callback): Remove workaround for
9822 Lesstif not calling XmNpopdownCallback because it doesn't
9823 handle the case where users don't select any menu item.
9824
26901792
DL
9825 * insdel.c (modify_region): Set windows_or_buffers_changed.
9826
9827 * buffer.c (set_buffer_internal): Don't set
9828 windows_or_buffers_changed.
9829
26901792
DL
9830 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9831
26901792
DL
9832 * xmenu.c (menubar_selection_callback): Add workaround for
9833 Lesstif not calling XmNpopdownCallback.
9834
9835 * xdisp.c (eval_mode_element): New.
9836 (eval_mode_handler): New.
9837 (display_mode_element): Use eval_mode_element.
9838
9839 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9840 Remove code looking at text props of default value.
9841
9842 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9843
26901792
DL
98441998-11-06 Gerd Moellmann <gerd@gnu.org>
9845
427ec082 9846 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9847 BUTTON_TYPE_NONE.
9848 (single_submenu): Likewise for panes and menu items.
9849 (set_frame_menubar): Set button_type of menu bar to none.
9850 (xmenu_show): Likewise.
9851 (single_submenu): Set widget values selected slot.
9852 (xmenu_show): Likewise.
9853
26901792
DL
9854 * xmenu.c (push_menu_item): Add parameters `type' and
9855 `selected'. Store it in menu_items.
9856 (MENU_ITEMS_ITEM_TYPE): New.
9857 (MENU_ITEMS_ITEM_SELECTED): New.
9858 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9859
9860 * xfns.c (clear_image_cache): Get the current time, before
9861 doing anything.
9862 (cache_image): Set prev pointer of next image.
9863 (clear_image_cache): Clear current matrices if any image was
9864 freed.
9865
9866 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9867
9868 * xfns.c (x_set_cursor): New.
9869 (Fx_display_busy_cursor): New.
9870 (Fx_undisplay_busy_cursor): New.
9871
9872 * xterm.h (struct x_output): Add busy_cursor.
9873
9874 * xfns.c (Vx_busy_pointer_shape): New.
9875 (x_set_mouse_color): Create busy cursor.
9876
9877 * process.c (wait_reading_process_input): Show and hide busy
9878 cursor.
9879
9880 * keyboard.c (command_loop_1): Display busy cursor.
9881
9882 * eval.c (Fsignal): Hide busy cursor.
9883
9884 * buffer.c (set_buffer_internal): Don't set
9885 windows_or_buffers_changed.
9886
9887 * xterm.c (redo_mouse_highlight): New.
9888
98891998-11-04 Gerd Moellmann <gerd@gnu.org>
9890
26901792
DL
9891 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9892 (x_build_heuritic_mask): New.
9893 (lookup_image): Call it.
9894
9895 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9896 (previous_help_echo): New.
9897 (XTread_socket): Generate help event with nil message when
9898 leaving a region with help-echo.
9899 (note_mouse_highlight): Handle `help-echo' over text.
9900 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9901 CirculateRequest.
9902 (clear_mouse_face): Don't clear if tooltip is shown.
9903 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9904 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9905
9906 * keyboard.c (Vshow_help_function): New.
9907 (read_char): Use it.
9908
99091998-11-03 Gerd Moellmann <gerd@gnu.org>
9910
9911 * xfns.c (x_create_tip_frame): New.
9912 (Fx_show_tip): New.
9913 (Fx_hide_tip): New.
9914
427ec082 9915 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
9916 a widget.
9917
9918 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9919 to full_width_p. Add internal_border_p.
9920
99211998-11-02 Gerd Moellmann <gerd@gnu.org>
9922
9923 * xterm.c (note_mode_line_highlight): Check the charpos of
9924 the glyph under the mouse pointer before accessing text
9925 properties at that position.
9926
99271998-11-01 Gerd Moellmann <gerd@gnu.org>
9928
9929 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9930
9931 * xdisp.c (auto-raise-toolbar-buttons): New.
9932 (build_desired_toolbar_string): Handle the flag.
9933 (toolbar-button-margin): New.
9934 (toolbar-button-relief): New.
9935 (build_desired_toolbar_string): Use margin and relief.
9936
9937 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9938 for FreeBSD.
9939 (note_mode_line_highlight): New.
9940 (note_mouse_highlight): Call it.
9941
99421998-10-31 Gerd Moellmann <gerd@gnu.org>
9943
9944 * s/freebsd.h (NARROWPROTO): New.
9945
9946 * xdisp.c (display_string): New parameter face_string.
9947 (display_mode_element): When displaying a symbol with a string
9948 value, use text properties from the symbol's default value, maybe.
9949
9950 * xrdb.c (x_load_resources): Add font defaults for menus and
9951 dialogs.
9952
99531998-10-30 Gerd Moellmann <gerd@gnu.org>
9954
9955 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9956
99571998-10-29 Gerd Moellmann <gerd@gnu.org>
9958
9959 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9960 produced for characters with codes < 32 under certain
9961 circumstances.
9962
9963 * xdisp.c (redisplay_window): Handle values of PT in front
9964 of invisible, intangible text.
427ec082 9965 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
9966 displaying lines.
9967 (display_mode_element): Assign to glyphs written for a mode
9968 line spec `%x' as object the Lisp format string, as position
9969 the position of the `%' in that string.
9970 (display_string): If displaying a C string, optionally get
9971 the face to use from a Lisp string.
9972
9973 * xterm.c (expose_window_tree): Include mode line height.
9974
9975 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9976
99771998-10-27 Gerd Moellmann <gerd@gnu.org>
9978
9979 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9980 over mode line.
9981
99821998-10-26 Gerd Moellmann <gerd@gnu.org>
9983
9984 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9985
9986 * xdisp.c (redisplay_window): If mode line height has changed,
9987 arrange for a thorough immediate redisplay using the correct mode
9988 line height.
9989 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9990
9991 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9992 (CURRENT_MODE_LINE_HEIGHT): New.
9993 (DESIRED_MODE_LINE_HEIGHT): New.
9994
9995 * keyboard.c (make_lispy_event): Add string and string position
9996 info to mouse-click events.
9997 (read_key_sequence): Handle `local-map' property of mode line
9998 strings.
9999
10000 * keyboard.h (POSN_STRING): New.
10001
100021998-10-25 Gerd Moellmann <gerd@gnu.org>
10003
10004 * dispnew.c (mode_line_string): Mew.
10005
10006 * xterm.c (xt_action_hook): New.
10007 (x_create_toolkit_scroll_bar): Add action hook.
10008 (xm_scroll_callback): Implement dragging.
10009
10010 * keyboard.c (Qend_scroll): New.
10011 (scroll_bar_parts): Add it.
10012
10013 * termhooks.h (scroll_bar_end_scroll): New.
10014
10015 * xterm.c (XTread_socket): Bug fix.
10016
100171998-10-24 Gerd Moellmann <gerd@gnu.org>
10018
10019 * xdisp.c (redisplay_window): Finish scroll bars after
10020 redisplaying toolbar.
10021
10022 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10023 (syms_of_keyboard): Add Qbottom.
10024
10025 * termhooks.h (scroll_bar_to_top): New.
10026 (scroll_bar_to_bottom): New.
10027
10028 * xdisp.c (redisplay_window): Always resize toolbar window if
10029 auto_resize_toolbar_p is non-zero.
10030 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10031 (window_box): New.
10032 (window_box_height): New.
10033 (window_box_width): New.
10034 (window_box_left): New.
10035 (window_box_right): New.
10036 (window_box_edges): New.
10037
100381998-10-23 Gerd Moellmann <gerd@gnu.org>
10039
10040 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10041 XawScrollbarSetThumb in FreeBSD.
10042 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10043 to true.
10044
10045 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10046 is out of range.
10047
10048 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10049 (x_term_init): Initialize it.
10050
10051 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10052
10053 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10054 cursor.
10055
100561998-10-22 Gerd Moellmann <gerd@gnu.org>
10057
10058 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10059 differently when using toolkit scroll bars.
10060
10061 * xterm.c (x_send_scroll_bar_event): New.
10062 (x_scroll_bar_to_input_event): New.
10063 (xaw3d_scroll_callback): New.
10064 (xaw3d_jump_callback): New.
10065 (xm_scroll_callback): New.
10066 (x_toolkit_scroll_p): New.
10067 (XTread_socket): Handle scroll bar client message.
10068 (x_term_init): Initialize Xatom_Scrollbar.
10069 (x_scroll_bar_create): Set cursor.
10070 (xm_scroll_callback):
10071 (x_create_toolkit_scroll_bar): New.
10072 (x_set_toolkit_scroll_bar_thumb): New.
10073 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10074 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10075
10076 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10077
100781998-10-21 Gerd Moellmann <gerd@gnu.org>
10079
10080 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10081 (XTread_socket): Don't handle mouse button events for scroll bars
10082 if using toolkit scroll bars.
10083 (XTset_vertical_scroll_bar): Set thumb size and position for
10084 Athena scroll bar.
10085
10086 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10087
10088 * xterm.c (XTread_socket): Dispatch expose event to widget
10089 if using toolkit scroll bars.
10090 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10091 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10092 if using toolkit scroll bars.
10093 (x_scroll_bar_move): Handle tookit scroll bars.
10094
10095 * Makefile.in (LIBW): Use Xaw3d if present.
10096
10097 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10098 (HAVE_XAW3D): New.
427ec082 10099
26901792
DL
10100 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10101 (HAVE_XAW3D): New.
10102
427ec082 10103 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10104 right vertical scroll bar.
10105
101061998-10-20 Gerd Moellmann <gerd@gnu.org>
10107
10108 * xfns.c (xpm_load): Support reading XPM images from string
10109 buffers containing data in the same format as an XPM file.
10110 Support `:color-symbols'.
10111 (xpm_format): Add `:data'.
10112 (xpm_keyword_index): Add XPM_DATA.
10113 (syms_of_xfns): Add `:color-symbols'.
10114 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10115 (xpm_valid_color_symbols_p): New.
10116 (xpm_image_p): Call it.
10117
10118 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10119 attribute to the image if item is not enabled.
10120
10121 * xfns.c (x_laplace): New.
10122 (x_laplace_read_row): New.
10123 (x_laplace_write_row): New.
10124 (lookup_image): Handle common image attributes here. New
10125 attribute `:algorithm'.
10126
10127 * xfaces.c (clear_face_cache): Call clear_image_cache.
10128
10129 * xterm.c (x_inverted_image_mask): Removed.
10130 (x_draw_image_foreground_1): New.
10131 (x_draw_image_glyph_string): Draw images with mask to a temporary
10132 pixmap to reduce flickering.
10133
10134 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10135 (display_toolbar_line): Remove parameter `margin'.
10136
101371998-10-19 Gerd Moellmann <gerd@gnu.org>
10138
10139 * xdisp.c (toolbar_lines_needed): New.
10140 (auto-resize-toolbars): New.
10141
10142 * xfns.c (cache_image): Correct call to xrealloc.
10143
10144 * dispnew.c (Fset_toolbar_height): Removed.
10145
10146 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10147 FRAME_MENU_BAR_LINES.
10148
10149 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10150 instead of FRAME_MENU_BAR_LINES.
10151 (check_frame_size): Ditto.
10152
10153 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10154 instead of FRAME_MENU_BAR_LINES.
10155 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10156 (build_frame_matrix): Ditto.
10157 (change_frame_size_1): Ditto.
10158
10159 * frame.h (FRAME_TOOLBAR_LINES): New.
10160 (FRAME_TOP_MARGIN): New.
10161
10162 * window.c (struct save_window_data): Add frame_toolbar_lines.
10163 (Fset_window_configuration): Handle toolbar lines.
10164 (Fcurrent_window_configuration): Save toolbar lines.
10165
10166 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10167
10168 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10169
10170 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10171
10172 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10173 (x_set_toolbar_lines): New.
10174
10175 * keyboard.c (cmd_error_internal): Bug fix.
10176
10177 * xterm.c: Remove double include of syssignal.h.
10178
101791998-10-18 Gerd Moellmann <gerd@gnu.org>
10180
10181 * xterm.c (x_toolbar_item): New.
10182 (x_handle_toolbar_click): Use it.
10183 (note_toolbar_highlight): Use it.
10184
10185 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10186 and toolbar_items_vectors.
10187
10188 * xterm.c (help_echo): New.
10189 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10190 (x_set_glyph_string_gc): Handle them.
10191 (x_after_update_window_line): Don't do anything in pseudo-windows.
10192 (x_produce_image_glyph): Take image margin and face relief into
10193 account.
10194 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10195 (x_draw_glyph_string_background): Optimize case when face has
10196 relief.
10197 (x_setup_relief_color): Take frame instead of glyph string
10198 parameter.
10199 (x_draw_relief_rect): New.
10200 (x_draw_glyph_string_relief): Call it.
10201 (x_draw_image_glyph_string_foreground): Handle margin and image
10202 relief.
10203 (x_draw_image_glyph_string_background): Ditto.
10204 (expose_frame): Redraw toolbar window.
10205 (expose_window): Don't draw cursor for pseudo-windows.
10206 (x_y_to_hpos_vpos): Handle pseudo-windows.
10207 (frame_to_window_pixel_xy): New.
10208 (note_mouse_highlight): Call note_toolbar_highlight.
10209 (x_handle_toolbar_click): New.
10210 (note_toolbar_highlight): New.
10211 (show_mouse_face): Change int parameter `hl' to parameter of
10212 type enum draw_glyphs_face. Handle image highlighting.
10213 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10214 non-nil. Use x_handle_toolbar_click.
10215
10216 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10217
10218 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10219 IMAGE_BOOL_VALUE.
10220 (parse_image_spec): Handle them.
10221 (image_spec_value): Additional parameter found.
427ec082 10222 (free_image): Remove image from the vector `images' of the
26901792
DL
10223 image cache.
10224 (clear_image_cache): Additional parameter force_p.
10225 (Fclear_image_cache): New.
10226 (x_find_image_file): New.
10227 (xbm_load): Handle `:margin' and `:relief'. Use
10228 x_find_image_file.
10229 (xpm_load): Likewise.
10230 (pbm_load): Likewise.
10231 (jpeg_load): Likewise.
10232 (tiff_load): Likewise.
10233 (gif_load): Likewise.
10234
10235 * keyboard.c (Qhelp_echo): New symbol.
10236 (read_char): Handle `toolbar' and `help_echo' events.
10237 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10238 (make_lispy_event): Handle TOOLBAR_EVENT.
10239 (toolbar_items): New.
10240 (process_toolbar_item): New.
10241 (PROP): New.
10242 (init_toolbar_items): New.
10243 (append_toolbar_item): New.
10244 (read_char_x_menu_prompt): Handle `toolbar' event.
10245 (read_key_sequence): Ditto.
10246
10247 * xfaces.c (Qtoolbar): New.
10248 (realize_basic_faces): Realize `toolbar' face.
10249 (face_at_string_position): Remove parameter modeline_p, add
10250 base_face_id.
10251
10252 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10253 to read data.
10254
102551998-10-17 Gerd Moellmann <gerd@gnu.org>
10256
10257 * xdisp.c (init_iterator): Replace parameter modeline_p with
10258 base_face_id.
10259 (next_element_from_string): Call get_next_display_element
10260 recursively after handling text properties.
10261 (prepare_menu_bars): Call update_toolbar.
10262 (update_toolbar): New.
10263 (build_desired_toolbar_string): New.
10264 (display_toolbar_line): New.
10265 (redisplay_toolbar): New.
10266 (toolbar_item_info): New.
10267 (redisplay_window): Call redisplay_toolbar.
10268 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10269
10270 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10271 window.
10272 (clear_desired_matrices): Ditto.
10273 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10274 (free_glyphs): Free matrices of toolbar window.
10275 (update_frame): Update toolbar window.
10276 (change_frame_size_1): Take toolbar into account.
10277 (Fset_toolbar_height): New.
10278
10279 * dispextern.h (struct it): Remove member modeline_p, add
10280 base_face_id.
10281 (struct image): Add members relief and margin.
10282 (IMAGE_ASCENT): Include margin in height.
10283
102841998-10-14 Gerd Moellmann <gerd@gnu.org>
10285
10286 * xfns.c (Fclear_image_cache): New.
10287
10288 * xfaces.c (realize_basic_faces): Realize toolbar face.
10289 (face_at_string_position): Remove parameter modeline_p, add
10290 base_face_id.
10291
10292 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10293
102941998-10-13 Gerd Moellmann <gerd@gnu.org>
10295
10296 * keyboard.c (syms_of_keyboard): Intern `:help'.
10297
102981998-10-12 Gerd Moellmann <gerd@gnu.org>
10299
10300 * xterm.c (note_toolbar_highlight): New.
10301 (note_mouse_highlight): Call it.
10302
10303 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10304 (coordinates_in_window): Handle toolbar window.
10305
10306 * keyboard.c (toolbar_items): New.
10307 (process_toolbar_item): New.
10308 (parse_toolbar_item): New.
10309 (init_toolbar_items): New.
10310 (append_toolbar_item): New.
10311
10312 * dispextern.h (enum toolbar_item_idx): New.
10313 (enum toolbar_item_image): New.
10314
10315 * frame.h (struct frame): Add toolbar-related members.
10316
10317 * xfaces.c (face_at_string_position): Remove assertion that
10318 current_buffer == window's buffer. This is not the case when
10319 called for the toolbar window.
10320
10321 * frame.c (make_frame): Initialize toolbar members.
10322
10323 * alloc.c (mark_object): Mark toolbar data of frames.
10324
10325 * frame.h (struct frame): Add toolbar-related members
10326 toolbar_window, desired_toolbar_items, current_toolbar_items,
10327 desired_toolbar_string, current_toolbar_string,
10328 n_desired_toolbar_items, n_current_toolbar_items. Add
10329 window_height.
10330
10331 * xterm.c (x_after_update_window_line): Don't draw bitmap
10332 areas for pseudo-windows.
10333 (expose_frame): Handle toolbar window.
10334 (expose_window): Don't do cursor stuff for pseudo-windows.
10335
10336 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10337
103381998-10-11 Gerd Moellmann <gerd@gnu.org>
10339
10340 * frame.c (make_frame): Initialize toolbar_window.
10341
10342 * alloc.c (mark_object): Make the toolbar window.
10343
10344 * dispnew.c (update_frame): Update frame's toolbar_window.
10345 (clear_current_matrices): Likewise.
10346 (clear_desired_matrices): Likewise.
10347 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10348 (free_glyphs): Free the toolbar window and its matrices.
10349
10350 * frame.h (struct frame): Add toolbar_window.
10351
10352 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10353 with relief.
10354
103551998-10-10 Gerd Moellmann <gerd@gnu.org>
10356
427ec082 10357 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10358 window start is not in the range BEGV..ZV.
10359
103601998-10-09 Gerd Moellmann <gerd@gnu.org>
10361
10362 * xdisp.c (try_scrolling): Experimentally handle the case
10363 that scroll-preserve-screen-position is set to `always'.
10364
10365 * window.c (Vscroll_preserve_screen_position): Replacement for
10366 scroll_preserve_screen_position.
10367
103681998-10-08 Gerd Moellmann <gerd@gnu.org>
10369
10370 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10371 doesn't like it.
10372 * xdisp.c: Ditto.
10373
10374 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10375
103761998-10-06 Gerd Moellmann <gerd@gnu.org>
10377
427ec082 10378 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10379 i_byte when prompts are inserted into minibuffers.
10380
10381 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10382 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10383 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10384
103851998-10-04 Gerd Moellmann <gerd@gnu.org>
10386
10387 * xdisp.c (make_cursor_line_fully_visible): New.
10388 (try_scrolling): New.
10389 (redisplay_window): Move scrolling code to try_scrolling.
10390 (make_cursor_line_fully_visible): Handle case of window too small
10391 to show a single line.
10392 (redisplay_window): Case forced window start---use
10393 make_cursor_line_fully_visible.
10394 (redisplay_window): Case cursor movement via current matrix.
10395 If ending up on a partially visible line, make it fully visible
10396 instead of recentering.
10397 (try_scrolling): Additional parameter scroll_smoothly.
10398
10399 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10400
104011998-09-28 Gerd Moellmann <gerd@gnu.org>
10402
10403 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10404 instead of y-position for scroll-preserved-screen-position.
10405
104061998-09-07 Gerd Moellmann <gerd@gnu.org>
10407
10408 * dispnew.c (update_frame_line): If current row is not enabled,
10409 write the whole line.
10410
104111998-09-06 Gerd Moellmann <gerd@gnu.org>
10412
10413 * lisp.h (HAVE_FACES): Removed.
10414
10415 * dispextern.h (HAVE_FACES): Removed.
10416
10417 * config.in (HAVE_FACES): Removed.
10418
10419 * dispnew.c (HAVE_FACES): Removed.
10420
10421 * xdisp.c (HAVE_FACES): Removed.
10422
10423 * xfaces.c (HAVE_FACES): Removed.
10424
104251998-09-05 Gerd Moellmann <gerd@gnu.org>
10426
10427 * xdisp.c (init_iterator): If face_change_count is non-zero,
10428 free realized faces.
10429
10430 * xfaces.c (free_all_realized_faces): Make it externally visible.
10431 (Finternal_set_lisp_face_attribute): Increment
10432 windows_or_buffers_changed.
10433
10434 * dispnew.c (direct_output_for_insert): Give up if
10435 face_change_count is non-zero.
10436 (direct_output_forward_char): Ditto.
10437
10438 * xfaces.c (face_change_count): New.
10439
104401998-09-04 Gerd Moellmann <gerd@gnu.org>
10441
10442 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10443 of range.
10444
104451998-09-03 Gerd Moellmann <gerd@gnu.org>
10446
10447 * term.c (Ftty_display_color_p): New.
10448
104491998-09-02 Gerd Moellmann <gerd@gnu.org>
10450
10451 * xfaces.c (Ftty_defined_colors): New.
10452
10453 * xterm.c (x_produce_glyphs): Fix computation of
10454 contains_overlapping_glyphs_p for ASCII.
10455
10456 * dispnew.c (Fshow_cursor): Don't change cursor state while
10457 redisplaying.
10458 (direct_output_for_insert): If a glyph with lbearing or rbearing
10459 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10460
104611998-09-01 Gerd Moellmann <gerd@gnu.org>
10462
10463 * term.c (OUTPUT_IF): Make replacement text have statement form.
10464 (OUTPUT1_IF): Ditto.
10465 (TS_italic_mode, TS_end_italic_mode): Removed.
10466 (TS_bold_mode): Removed.
10467 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10468 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10469 (TS_enter_reverse_mode): New.
10470 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10471 (TN_magic_cookie_glitch_ul): New.
10472 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10473 (TS_exit_attribute_mode): New.
10474 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10475 (TS_set_foreground, TS_set_background): New.
10476 (reset_terminal_modes): Switch colors back to default.
10477 (write_glyphs): Turn face on before writing text, turn it off
10478 afterwards.
10479 (insert_glyphs): Ditto.
10480 (term_init): Initialize new terminal capability variables.
10481 (turn_on_face): Turn a face on.
10482 (turn_off_face): Turn a face off.
10483
10484 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10485 (GLYPH_CHAR): Ditto.
10486 (GLYPH_FACE): Ditto.
10487
10488 * xfaces.c (Vface_tty_color_alist): New.
10489 (face-register-tty-color): New.
10490 (face-clear-tty-colors): New.
10491
10492 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10493 (struct it): Remove member faces_p since we now always have faces.
10494
104951998-08-31 Gerd Moellmann <gerd@gnu.org>
10496
10497 * dispextern.h (struct face): Add tty appearance flags.
10498
10499 * xdisp.c (init_iterator): Always handle faces.
10500 (extend_face_to_end_of_line): Handle tty frames.
10501
10502 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10503 passed in.
10504
105051998-08-30 Gerd Moellmann <gerd@gnu.org>
10506
10507 * xfaces.c (realize_default_face): Use empty strings to indicate
10508 that the face should use the default foreground/background
427ec082 10509 color of the terminal. Fill font-related attributes with
26901792
DL
10510 appropriate values for tty frames.
10511
10512 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10513
10514 * xfaces.c (realize_default_face): If face `default' is not
10515 yet known, create it.
10516
10517 * frame.c (make_terminal_frame): Call init_frame_faces
10518 unconditionally.
10519
10520 * xfaces.c (init_frame_faces): Make it work for tty frames.
10521 (free_frame_faces): Ditto.
10522 (clear_face_cache): Ditto.
10523 (recompute_basic_faces): Ditto.
10524 (Fframe_face_alist): Ditto.
10525 (free_realized_face): Ditto.
10526 (prepare_face_for_display): Ditto.
10527 (clear_face_gcs): Ditto.
10528 (lookup_face): Ditto.
10529 (smaller_face): Ditto.
10530 (realize_default_face): Ditto.
10531 (realize_face): Ditto.
10532 (realize_face): Dispatch to functions depending on the frame type.
10533 (realize_x_face): X way of realizing faces.
10534 (realize_tty_face): TTY way of realizing faces.
10535
105361998-08-29 Gerd Moellmann <gerd@gnu.org>
10537
10538 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10539 compute it instead.
10540 (lookup_face): Remove local variable unibyte_registry.
10541
105421998-08-22 Gerd Moellmann <gerd@gnu.org>
10543
10544 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10545 1 pixel longer.
10546
427ec082 10547 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10548 of face in buffer.
10549
10550 * editfns.c (make_buffer_string_both): If prompt in buffer,
10551 prevent start > end.
10552
10553 * indent.c (Fvertical_motion): Set current_buffer to window's
10554 buffer if it isn't already.
10555
105561998-08-21 Gerd Moellmann <gerd@gnu.org>
10557
10558 * dispextern.h (GLYPH_DEBUG): Use default 0.
10559
10560 * xdisp.c (it_props): New member `smaller'.
10561 (init_iterator): Initialize it.
10562 (Qsmaller): New.
10563 (push_it): Save value of `smaller' value on the stack.
10564 (pop_it): Restore `smaller' from the stack.
10565 (handle_smaller_prop): New.
10566 (handle_face_prop): Use `smaller' text property to select a
10567 suitable face.
10568
10569 * dispextern.h (SMALLER_PROP_IDX): New.
10570 (struct it): Add member `smaller'.
10571
10572 * xfaces.c (smaller_face): New.
10573
10574 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10575
10576 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10577 total pixel width of window differently.
10578
10579 * xdisp.c (init_iterator): Compute width of mode line differently.
10580
10581 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10582 of bitmap areas.
10583
10584 * window.c (Fsplit_window): Include width of bitmap areas in
10585 window width.
10586 (window_internal_width): Subtract width of bitmap areas from
10587 total width.
10588
105891998-08-18 Gerd Moellmann <gerd@gnu.org>
10590
10591 * xdisp.c: Functions reordered for better readability.
10592
10593 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10594 lbearing.
10595 (update_window_tree): Parameter no_scrolling_p removed.
10596 (update_single_window): Ditto.
10597
10598 * xterm.c (x_get_char_font_and_encoding): Renamed to
10599 x_get_char_face_and_encoding.
10600
10601 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10602 if end of current row reached.
10603
10604 * xterm.c (x_get_glyph_face_and_encoding): New.
10605 (x_get_glyph_overhangs): Call it.
10606
10607 * xdisp.c (Qshow_trailing_whitespace): New.
10608 (Qtrailing_whitespace): New.
10609 (enum prop_handled): New.
10610 (struct props, it_props): New.
10611 (next_overlay_change): New. Works like Fnext_overlay_change
10612 but doesn't use xmalloc.
10613 (handle_stop): Restructured.
10614 (face_before_or_after_it_pos): Case iteration over a string: fix
10615 handling of face before current position.
10616
106171998-08-16 Gerd Moellmann <gerd@gnu.org>
10618
10619 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10620 reallocation matrix if fonts_changed_p.
10621 (update_text_area): Handle glyphs with lbearing.
10622
106231998-08-14 Gerd Moellmann <gerd@gnu.org>
10624
10625 * xdisp.c (struct props): New.
10626 (it_props): New.
10627 (compute_prop_info): New.
10628 (handle_stop): New.
10629
10630 * textprop.c (validate_interval_range): Make it externally
10631 visible.
10632
10633 * dispnew.c (direct_output_for_insert): Remove calls
10634 to compute_stop_pos.
10635
10636 * dispextern.h (struct it): Remove check_charpos,
10637 next_overlay_pos. Add what_changes.
10638
106391998-08-10 Gerd Moellmann <gerd@gnu.org>
10640
10641 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10642
10643 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10644 face_default_registry instead.
10645
10646 * syntax.c (scan_sexps_forward): Set up syntax table before
10647 jumping to initial state label.
10648
106491998-08-09 Gerd Moellmann <gerd@gnu.org>
10650
10651 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10652 >= ZV specially.
10653
106541998-08-08 Gerd Moellmann <gerd@gnu.org>
10655
10656 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10657 ends up in partially visible row, try to scroll. Case forced
10658 window start---handle windows not tall enough to show a single
10659 line.
10660
10661 * window.h (struct window): Member dy renamed vscroll.
10662
10663 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10664 fonts.
10665 (x_draw_stretch_glyph_string): Set clipping if using GC that
10666 hasn't set it yet.
10667
10668 * xdisp.c (redisplay_window): Case forced window start -
10669 don't let cursor end on partially visible row. Use desired
10670 matrix to find a suitable PT if it doesn't appear.
10671 (decode_mode_spec): Merged with 20.2.97.
10672 (try_window_reusing_current_matrix): Give up if old or
10673 new display is vscrolled.
10674 (redisplay_window): Reset vscrolling if forced window start,
10675 or if recentering.
10676
106771998-08-06 Gerd Moellmann <gerd@gnu.org>
10678
10679 * xfaces.c (realize_default_face): Use the fontset name instead of
10680 the alias for the family attribute of the default face because we
10681 can't easily determine a good alias from fontset-alias-alist.
10682 (face_fontset): Use Fquery_fontset to find the fontset.
10683 (font_list): Additional pattern parameter.
10684 (try_font_list): Ditto.
10685 (set_lface_from_font_name): Set face family from font foundry
10686 and family.
10687 (font_list): If family contains a hyphen, build pattern differently.
10688
106891998-08-05 Gerd Moellmann <gerd@gnu.org>
10690
10691 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10692 changed instead of setting the frame garbaged.
10693
10694 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10695 all attribute values. This is wrong if values are unspecified,
10696 i.e. nil.
10697
10698 * xdisp.c (try_window_id): Give up if window start changed.
10699
10700 * xfaces.c (make_realized_face): Store registry as Lisp object.
10701 (load_face_font_or_fontset): Compute registry of a face
10702 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10703 possible.
10704
10705 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10706 differently.
10707
10708 * alloc.c (mark_face_cache): Mark the registry member of faces.
10709
10710 * dispextern.h (struct face): Make registry a Lisp string.
10711
107121998-08-04 Gerd Moellmann <gerd@gnu.org>
10713
10714 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10715 multibyte_p. Handle unibyte text.
10716 (x_append_glyph): Set the multibyte_p flag of glyphs.
10717 (x_produce_image_glyph): Ditto.
10718 (x_append_stretch_glyph): Ditto.
10719 (x_produce_glyphs): Handle unibyte text like ASCII.
10720
10721 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10722 stack.
10723 (pop_it): Restore it.
10724 (face_before_or_after_it_pos): Handle the case that the string or
10725 buffer is unibyte.
10726 (get_overlay_strings): Set the multibyte flag of the iterator if
10727 the new overlay string is multibyte.
10728 (get_glyph_property): Likewise.
10729 (get_next_display_element): Don't check for charset changes in
10730 unibyte text.
10731 (append_space): Compute face differently for unibyte text.
10732 (extend_face_to_end_of_line): Don't return quickly if face has
10733 stipple.
10734
10735 * xfaces.c (load_face_font_or_fontset): Store registry and
10736 encoding of the font in the registry member of the face.
10737 (make_realized_face): Additional parameter `registry'.
10738 (free_realized_face): Free the registry of a realized face.
10739 (face_suitable_for_charset_p): Function form of the macro
10740 with the same name in uppercase.
10741 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10742 (choose_face_font): New parameter unibyte_registry.
10743 (choose_face_fontset_font): Ditto.
10744 (realize_default_face): Remember the registry and encoding of
10745 the specified frame font in Vx_unibyte_registry_and_encoding.
10746 (face_at_buffer_position): Handle unibyte.
10747 (face_at_string_position): Likewise.
427ec082 10748 (realize_face): New parameter unibyte_registry.
26901792
DL
10749 (compute_char_face): Handle the unibyte case.
10750
10751 * dispextern.h (struct glyph): Add bit multibyte_p.
10752 (struct face): New member registry holding the registry and
10753 encoding of the X font of the face.
10754 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10755 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10756 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10757 text.
10758 (struct iterator_stack_entry): Add multibyte_p.
10759
10760 * xdisp.c (string_pos): Use string_char_to_byte.
10761 (char_charset): Removed.
10762
107631998-08-03 Gerd Moellmann <gerd@gnu.org>
10764
10765 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10766 rectangle for a block cursor over an image without a mask.
10767 (x_stretch_block_cursor): Added. Non-zero means don't draw
10768 a block cursor over a stretch as wide as that stretch.
10769 (x_draw_stretch_glyph_string): Use it.
10770 (x_draw_hollow_cursor): Ditto.
10771
10772 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10773 (read_minibuf): Add front-sticky text property for prompt.
10774
10775 * xdisp.c (char_charset): Return charset of a character,
10776 depending on whether or not multi-byte characters are enabled.
10777
10778 * xfaces.c (Fset_face_charset_registry): Removed.
10779 (x_charset_registry): Determine registry from charset plist.
10780
107811998-08-02 Gerd Moellmann <gerd@gnu.org>
10782
10783 * xdisp.c (get_next_display_element): Don't check for charset
10784 changes if multi-byte characters are not enabled.
427ec082 10785
26901792 10786 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10787 redisplay interface.
26901792
DL
10788 * keyboard.c (detect_input_pending_run_timers): Likewise.
10789
10790 * dispextern.h (produce_*glyphs_hook): Removed.
10791 * term.c (produce_*glyphs): Ditto.
10792 (cursor_to): Remove pixel position parameters.
10793
10794 * dispnew.c: Remove hooks for window-based redisplay, introduce
10795 a redisplay interface structure.
10796
10797 * xterm.c (x_per_char_metric): Return default char metrics if per
10798 char metric exists but contains a zero width. Adobe Courier seems
10799 to contain such characters.
10800
10801 * xdisp.c (compute_line_metrics): Compute the width of rows
10802 without stopping at glyphs with zero width.
10803
108041998-08-01 Gerd Moellmann <gerd@gnu.org>
10805
10806 * xdisp.c (display_mode_line): If nothing was displayed at all,
10807 display a space.
10808 (hscroll_window_tree): Don't subtract 1 from target point if equal
10809 to ZV and window is not the selected window.
10810
10811 * dispnew.c (check_matrix_invariants): Remove check for window
10812 start at BEGV or after newline. This happens in rare cases
10813 intentionally.
10814
108151998-07-31 Gerd Moellmann <gerd@gnu.org>
10816
10817 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10818 (syms_of_xfaces): Add Vface_default_registry.
10819 (x_charset_registry): Use it.
10820
10821 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10822 (redisplay_window): Use it.
10823
10824 * dispnew.c (update_text_area): Handle lbearing of deleted text
10825 by backing up one character.
10826
108271998-07-30 Gerd Moellmann <gerd@gnu.org>
10828
427ec082 10829 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10830 decide to do nothing.
10831
10832 * xfaces.c (face_at_string_position): Additional parameter
10833 mode_line_p. If non-zero, merge with the mode line face
10834 instead of the default face.
10835 * dispextern.h (struct it): Add mode_line_p.
10836 * xdisp.c (init_iterator): Set it.
10837 (compute_face_in_string): Use it.
10838 (face_before_or_after_it_pos): Handle strings.
10839 (get_next_display_element): Don't look for relief end in C strings.
10840 (next_element_from_string): Deliver string position instead of
10841 buffer position.
10842
10843 * xterm.c (x_flush): Flush X output buffer.
10844 (XTflash): Use it.
10845
10846 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10847 Allow strings as face names.
10848
10849 * xfns.c (forall_images_in_image_cache): Check that frame is
10850 alive.
10851
10852 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10853 it's also called from x_destroy_window. Since this function is
10854 called from X, freeing stuff allocated with xmalloc is dangerous
10855 here, anyway.
10856
10857 * xfaces.c (free_realized_faces): Don't clear current matrices
10858 of a frame being destroyed.
10859
427ec082 10860 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10861 Fset_window_buffer.
10862
10863 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10864 with an additional argument specifying whether or not hooks may
10865 be called.
10866 (Fset_window_buffer): Call it.
10867
10868 * dispnew.c (clear_desired_matrices): Check that frame has
10869 a valid root window before clearing matrices in the window tree.
10870 (clear_current_matrices): Ditto.
10871 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10872 vchild are valid windows if not nil.
10873
10874 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10875 for :inverse-video.
10876 (Finternal_set_lisp_face_attribute): Ditto.
10877 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10878 (Finternal_get_lisp_face_attribute): Ditto.
10879 (Finternal_lisp_face_attribute_values): Ditto.
10880 (syms_of_xfaces): Define the symbol `:reverse-video'.
10881
10882 * xdisp.c (get_glyph_property): Renamed from
10883 fill_iterator_from_glyph_property.
10884 (next_element_from_buffer): Handle case that no `glyph' property
10885 was found correctly.
10886 (display_line): Extend face to end of line only if we have faces.
10887
108881998-07-29 Gerd Moellmann <gerd@gnu.org>
10889
10890 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10891 additional window argument.
10892
10893 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10894 set_iterator_to_previous_visible_line_start.
10895 (reseat_at_next_visible_line_start): Likewise.
10896 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10897 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10898 (compute_face_in_buffer): Renamed from
10899 compute_face_at_iterator_position.
10900 (compute_face_in_string): Renamed from
10901 compute_face_at_iterator_string_position.
10902 (get_space_width): Renamed from get_iterator_space_width.
10903 (next_overlay_string): Renamed from
10904 set_iterator_to_next_overlay_string.
10905 (get_overlay_strings): Renamed from
10906 get_overlay_strings_at_iterator_position.
10907 (restore_overlay_strings): Renamed from
10908 setup_overlay_strings_from_glyph_pos.
10909 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10910 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10911 (init_to_row_start): Renamed from init_iterator_to_row_start.
10912 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10913
10914 * xterm.c: Merge with 20.2.97.
10915 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10916
10917 * dispextern.h (struct glyph): Replace text_pos position with
10918 simple charpos.
10919
10920 * xdisp.c (this_line_start_pos): Use struct text_pos.
10921 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10922 (enum move_it_result): Renamed from move_iterator_result.
10923 (string_pos_nchars_ahead): Compute text_pos in a string from a
10924 known text_pos plus a character delta.
10925 (string_pos): Compute text_pos in string from charpos.
10926 (c_string_pos): Likewise for a C string.
10927 (number_of_chars): Return number of characters in a possibly
10928 multi-byte C string.
10929 (check_it): Renamed from check_iterator. Check that charpos and
10930 bytepos are in sync.
10931 (push_it): Renamed from save_iterator_settings.
10932 (pop_it): Renamed from restore_iterator_settings.
10933 (move_it_.*): Renamed from move_iterator_.*.
10934 (charset_at_position): Take charpos/bytepos into account.
10935 (back_to_previous_line_start): Set iterator to previous line start.
10936 (forward_to_next_line_start): Set iterator to next line start.
427ec082 10937 (back_to_previous_visible_line_start): Renamed from
26901792
DL
10938 move_iterator_previous_visible_line_start.
10939 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10940 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10941 Handle charpos/bytepos.
10942 (compute_face_at_iterator_position): Handle charpos/bytepos.
10943 (compute_face_at_iterator_string_position): Likewise.
10944 (get_iterator_space_width): Likewise.
10945 (load_overlay_strings): Likewise.
10946 (get_overlay_strings_at_iterator_position): Likewise.
10947 (reseat_iterator): Take a text_pos position argument.
10948 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10949 bytepos.
10950 (init_iterator): Take additional bytepos parameter.
10951 (reseat_iterator_to_string): Handle charpos/bytepos.
10952 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10953 (next_element_from_string): Handle charpos/bytepos.
10954 (next_element_from_c_string): Likewise.
10955 (fill_iterator_from_glyph_property): Likewise.
10956 (next_element_from_buffer): Likewise.
10957 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10958 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10959 (move_it_to): Likewise.
10960 (move_it_vertically_backward): Likewise.
10961 (move_it_vertically): Likewise.
10962 (move_it_by_lines): Likewise.
10963 (hscroll_window_tree): Likewise.
10964 (redisplay_internal): Likewise.
10965 (set_cursor_from_row): Likewise.
10966 (redisplay_window): Likewise.
10967 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10968 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10969 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10970 (try_window_id): Handle charpos/bytepos.
10971 (Ftrace_redisplay_toggle): Return Qnil.
10972 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10973 (insert_left_trunc_glyphs): Likewise.
10974
10975 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10976 do a real merge).
10977 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10978 (increment_glyph_row_buffer_positions): Ditto.
10979 (copy_glyph_row_contents): Ditto.
10980 (check_matrix_invariants): Add additional checks for charpos/
10981 bytepos consistency.
10982 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 10983 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
10984 `direction-reversed' in #if 0.
10985
10986 * xterm.h: Merge with 20.2.97.
427ec082 10987
26901792
DL
10988 * frame.h: Merge with 20.2.97.
10989
10990 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10991
10992 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10993 start.
10994 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10995 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10996 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10997 (struct it): Various members renamed from .*pos to .*charpos.
10998 (IT_CHARPOS): Access current buffer character position of an
10999 iterator.
11000 (IT_BYTEPOS): Access current buffer byte position of an iterator.
11001 (IT_STRING_CHARPOS): Access current string character position of
11002 an iterator.
11003 (IT_STRING_BYTEPOS): Access current string byte position of
11004 an iterator.
11005 (globally): Add function prototypes from 20.2.97.
11006
11007 * everywhere: Use P_ instead of PROTO for function prototypes
11008 because everyone else seems to use P_.
11009
11010 * dispextern.h (struct text_pos): Structure describing a charpos/
11011 bytepos position in text.
11012 (BYTEPOS): Access the byte position part of a text_pos.
11013 (CHARPOS): Likewise for the character position.
11014 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11015 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11016 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11017 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11018 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11019 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11020 for buffer and string positions.
11021 (struct glyph): Use text_pos.
11022 (struct it): Renamed from display_iterator. Use text_pos.
11023
110241998-07-23 Gerd Moellmann <gerd@gnu.org>
11025
11026 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11027 pixmap.
11028
110291998-07-21 Gerd Moellmann <gerd@gnu.org>
11030
11031 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11032 * xterm.c (x_draw_row_bitmaps): Use it.
11033 * dispnew.c (row_equal_p): Ditto.
11034 (update_window_line): Ditto.
11035
11036 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11037 flag of images.
11038
11039 * dispextern.h (struct image): Removed member loading_failed_p.
11040 It's probably better to have the chance to try to load an image
11041 again.
11042
110431998-07-20 Gerd Moellmann <gerd@gnu.org>
11044
11045 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11046 at ZV if `indicate-zv-lines' is non-nil.
11047 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11048
11049 * dispnew.c (row_equal_p): Compare displays_text_p and
11050 ends_at_zv_p flags of rows.
11051 (update_window_line): Ditto.
11052
11053 * buffer.h (struct buffer): New member indicate_zv_lines.
11054
11055 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11056 (init_buffer_once): New variable `default-indicate-zv-lines'.
11057 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11058
11059 * xdisp.c (redisplay_window): Don't try moving the cursor
11060 if current glyph row w->last_cursor.vpos isn't enabled.
11061
11062 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11063
11064 * window.c (Fset_window_vscroll): Allow only negative scroll
11065 values. Others don't seem to make sense, and this way it's easy
11066 to restore a vscroll of zero.
11067
11068 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11069 allocated.
11070 (x_draw_image_glyph_string_background): Don't clip if pixmap
11071 could not be created.
11072
11073 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11074 be created.
11075 (xbm_load): Ditto.
11076 (gs_load): Ditto.
11077
11078 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11079 glyphs into account.
11080
11081 * xfaces.c (realize_default_face): Don't set font family of
11082 the default face from the fontset alias name for `fontset-startup'.
11083
11084 * xfns.c (gs_load): Pass frame's pixel foreground and background
11085 color to the Lisp loader.
11086
110871998-07-19 Gerd Moellmann <gerd@gnu.org>
11088
11089 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11090 libtiff34.
11091
11092 * configure.in (--with-tiff, HAVE_TIFF): Added.
11093
11094 * config.in (HAVE_TIFF): Added.
11095
11096 * Makefile.in (LIBTIFF): Added.
11097
11098 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11099
11100 * Makefile.in (LIBJPEG): Added.
11101
11102 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11103 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11104 jpeglib.h.
11105
427ec082 11106 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11107 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11108 configure must be run with `--x-includes=/usr/X11R6/include:
11109 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11110
111111998-07-18 Gerd Moellmann <gerd@gnu.org>
11112
11113 * config.in (HAVE_JPEG): Added.
11114
11115 * xfns.c (ct_init): Initialize color table used to map RGB colors
11116 from images to X pixel colors.
11117 (ct_free): Free color table.
11118 (ct_lookup): Look an RGB color up.
11119 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11120 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11121 image specification.
11122 (pbm_scan_number): Scan a decimal ASCII number from a file.
11123 (pbm_load): Load a PPM image.
11124
11125 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11126 necessary. Take canonical character units as parameter.
11127 (Fwindow_vscroll): Return canonical character units.
11128
11129 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11130 w->dy to display height for which glyph rows must be allocated.
11131
111321998-07-17 Gerd Moellmann <gerd@gnu.org>
11133
11134 * xfaces.c (face_at_string_position): Merge in region face
11135 so that it won't overwrite the font in the region.
11136 (face_at_buffer_position): Ditto.
11137 (realize_basic_faces): Don't realize region face.
11138
11139 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11140
11141 * xterm.c (x_set_glyph_string_background_width): Don't let
11142 cursor face extend to end of line.
11143
11144 * xdisp.c (append_space): If adding space of default face,
11145 make sure glyph ist produced with right face.
11146
11147 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11148 background color of a glyph string.
11149 (x_draw_glyph_string_background): Call it.
11150 (x_draw_glyph_string_bg_rect): Ditto.
11151 (x_draw_stretch_glyph_string): Ditto.
11152
111531998-07-15 Gerd Moellmann <gerd@gnu.org>
11154
11155 * xdisp.c (init_iterator): Initialize it->current_y to the
11156 window's vscroll w->dy.
11157
11158 * window.c (Fwindow_vscroll): Return number of pixels window
11159 is vscrolled smoothly.
11160 (Fset_window_vscroll): Set the number.
11161
11162 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11163 to_pos in truncated part of a line.
11164
111651998-07-14 Gerd Moellmann <gerd@gnu.org>
11166
11167 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11168 doesn't fit on the line, truncate it, despite truncate_lines nil.
11169 (display_line): Ditto.
11170
11171 * xfns.c: Experimental support for Ghostscript images.
11172
11173 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11174 (XTread_socket): React on events from Ghostscript.
11175 (expose_frame): If width or height are zero, redraw entire frame.
11176 (XTread_socket): Call expose_frame after receiving event from
11177 Ghostscript.
11178
11179 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11180 for Ghostscript support.
11181
11182 * xdisp.c (redisplay_internal): Return quickly if called
11183 recursively.
11184
11185 * alloc.c (NSTATICS): Increased to 1024.
11186
111871998-07-08 Gerd Moellmann <gerd@gnu.org>
11188
11189 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11190 iterator's glyph row.
11191 (x_produce_stretch_glyph): Call it.
11192 (x_produce_glyphs): Handle `space-width' property; call
11193 x_append_stretch_glyph.
11194
11195 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11196 property.
11197 (get_iterator_space_width): Determine value of `space-width'
11198 property at iterator's position.
11199 (reseat_iterator): Call it.
11200 (next_element_from_string): Ditto.
11201 (next_element_from_buffer): Ditto.
11202 (init_iterator): Initialize space_width of iterator.
11203 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11204 moved, but cursor blinks.
11205 (redisplay_internal): Set w->last_cursor_off_p after update.
11206
11207 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11208 (struct display_iterator): Add new member space_width.
11209
11210 * window.h (struct window): Add last_cursor_off_p.
11211
112121998-07-07 Gerd Moellmann <gerd@gnu.org>
11213
11214 * Saved.
11215
11216 * window.c (Fpos_visible_in_window_p): Case window not up to
11217 date---return nil if iterator hasn't reached position.
11218
112191998-07-06 Gerd Moellmann <gerd@gnu.org>
11220
11221 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11222 overlays have changed.
11223 (redisplay_window): Case cursor movement. Don't try it if
11224 last_cursor.vpos is out of range.
11225
11226 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11227 way, the display optimization for the line containing the cursor
11228 is used more frequently, esp. when we have a blinking cursor.
11229 (display_line): Don't set this_line_.* variables.
11230
11231 * xterm.c (x_redraw_cursor): Removed.
11232 (x_display_and_set_cursor): Set cursor type depending on
11233 cursor_off_p flag of window.
11234
11235 * dispnew.c (redraw_cursor_hook): Removed.
11236 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11237 member of the selected window.
11238
11239 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11240
11241 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11242 Return glyph area under x/y.
11243 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11244
11245 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11246 after redisplaying.
11247
112481998-07-05 Gerd Moellmann <gerd@gnu.org>
11249
11250 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11251 are all outside of a line of text.
11252 (redisplay_internal): Use it.
11253
112541998-06-30 Gerd Moellmann <gerd@gnu.org>
11255
11256 * xdisp.c (next_element_from_buffer): After skipping over
11257 invisible text, look for the `glyph' property.
11258 (set_iterator_stop_pos): Ignore check positions in front
11259 of an iterator's current position.
11260
11261 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11262 anymore or which are marked as not having valid contents.
11263
11264 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11265 realized faces if new attribute value is equal to old value.
11266
112671998-06-29 Gerd Moellmann <gerd@gnu.org>
11268
11269 * xfaces.c (Finternal_make_lisp_face): Increment
11270 lface_id_to_name_size when lface_id_to_name is reallocated.
11271
112721998-06-27 Gerd Moellmann <gerd@gnu.org>
11273
11274 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11275 as minimum of endpos and overlay_pos.
11276 (load_overlay_strings): Set next_overlay_pos of iterator to
11277 -1 if we don't have to check for more overlay strings.
11278
112791998-05-09 Gerd Moellmann <gerd@gnu.org>
11280
11281 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11282 do anything if iterator is at ZV because scan_buffer doesn't
11283 work otherwise.
11284
11285 * xterm.c (x_encode_char): Inline it.
11286 (x_get_char_font_and_encoding): Simplified.
11287 (x_per_char_metric): Inline it.
11288
11289 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11290
11291 * xdisp.c (get_next_display_element): Check for end of relief
11292 face moved here from next_element_from_buffer.
11293
11294 * xterm.c (x_produce_image_glyph): Add relief thickness.
11295 (x_produce_stretch_glyph): Ditto.
11296
112971998-05-08 Gerd Moellmann <gerd@gnu.org>
11298
11299 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11300 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11301
11302 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11303 from a glyph property.
11304 (x_produce_glyphs): Use it.
11305
11306 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11307
427ec082 11308 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11309 in text area.
11310 (x_produce_glyphs): Ditto.
11311
427ec082 11312 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11313 marginal areas.
11314
427ec082 11315 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11316 background of an image glyph string.
427ec082 11317 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11318 the background of a glyph string.
11319 (x_draw_image_glyph_string_foreground): Draw the foreground of
11320 an image glyph string.
11321 (x_inverted_image_mask): Return the inverted mask of an image.
11322
11323 * xfns.c (x_draw_image): Removed.
11324
11325 * dispextern.h (struct image_type): Remove drawing function.
11326
11327 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11328
11329 * xdisp.c (get_next_display_element): In marginal areas, translate
11330 newlines, tabs, etc. like normal control characters.
11331
11332 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11333 and color.
11334 (free_realized_faces): Set frame garbaged.
11335
11336 * xfaces.c (syms_of_xfaces): Add defsubr for
11337 internal-lisp-face-attribute-values.
11338
113391998-05-07 Gerd Moellmann <gerd@gnu.org>
11340
11341 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11342 full.
11343 (x_produce_image_glyph): Set IT->nglyphs to 1.
11344 (x_draw_image_glyph_string): Use inverted mask to draw background.
11345
11346 * dispextern.h (struct image_type): Additional clipping rect
11347 parameters for drawing functions.
11348
427ec082 11349 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11350 a glyph string.
11351 (x_draw_image_glyph_string): Use it and pass the rect to the
11352 image drawing function.
11353
11354 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11355 first character with `glyph' property as image position. Set
11356 iterator back to that position as long as the image hasn't been
11357 consumed with set_iterator_to_next.
11358 (set_cursor_from_row): Accept when glyph with given position is
11359 not found in the row. Set cursor x to end of line in that case,
11360 so that we can hscroll.
11361 (redisplay_internal): Correct computation of delta by which
11362 positions have changed in redisplay optimization for cursor
11363 row of selected window.
11364
11365 * xdisp.c (display_line): Remove start_pos.
427ec082 11366 (display_line): Fix bug preventing display optimization for
26901792
DL
11367 cursor line of selected window.
11368 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11369 instead.
11370
11371 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11372 (update_text_area): Take glyph pixel width into account
11373 when trying to find a resync point.
11374 (row_equal_p): Compare glyphs in all areas.
11375
113761998-05-06 Gerd Moellmann <gerd@gnu.org>
11377
11378 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11379
11380 * dispextern.h (struct glyph_row): Use unsigned hash value.
11381
11382 * xdisp.c (display_line): Simplified and made faster by setting
11383 the cursor with set_cursor_from_row.
11384 (set_cursor_from_row): Handle rows of desired matrix.
11385
113861998-05-05 Gerd Moellmann <gerd@gnu.org>
11387
11388 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11389 with type != CHAR_GLYPH.
11390 (fill_iterator_from_glyph_property): Return void. Set
11391 method to next_element_from_image.
11392 (next_element_from_image): Dummy function for delivering a
11393 single image id.
11394 (set_iterator_to_next): Add method next_element_from_image.
11395 (redisplay_window): When recentering, and cursor vpos is -1
11396 after display, assume middle of window is in first line displayed
11397 in window, and display again.
427ec082 11398 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11399 the position of the first character having the glyph property.
11400
11401 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11402 * xfns.c (x_draw_image): Use it.
11403 * xterm.c (x_produce_image_glyph): Use it.
11404
11405 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11406
11407 * Makefile.in: Extraneous #define of LIBXPM removed.
11408
11409 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11410 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11411 stretch glyph.
11412 (x_compute_glyph_string_overhangs): Compute overhangs only
11413 for text glyph strings.
11414 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11415 (x_draw_glyph_string): Call it.
11416
11417 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11418 (struct glyph): Add sub-structure for stretchable glyphs.
11419 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11420
11421 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11422 #ifdef HAVE_FACES.
11423
11424 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11425
11426 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11427 setup_iterator_from_glyph_property. Don't do it for terminal
11428 frames.
11429
11430 * xterm.c (x_produce_image_glyph): Produce glyph for image
11431 that can't be loaded.
11432
11433 * xfns.c (lookup_image): If image can't be loaded, set its
11434 width and height so that we can draw a rectangle.
11435 (x_draw_image): Draw a rectangle for images that don't have
11436 a pixmap.
11437 (make_image): Set hash value.
11438 (image_spec_equal_p): Use image_spec_value.
11439
11440 * xterm.c (expose_frame): Don't try to redraw if basic faces
11441 haven't benn realized yet.
427ec082 11442 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11443 is not as tall as row.
11444
114451998-05-04 Gerd Moellmann <gerd@gnu.org>
11446
11447 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11448 (LIBX)[HAVE_X11]: Add LIBXPM.
11449
11450 * xfns.c (xpm_image_p): Implementation of image type functions
11451 for XPM.
11452 (xpm_load): Ditto.
11453
11454 * dispextern.h (struct image): Add mask pixmap for XPM.
11455
11456 * xfns.c (x_draw_image): Handle images with masks.
11457
11458 * configure.in: --with-xpm added. Code detecting -lXpm added.
11459
11460 * config.in: Add HAVE_XPM.
11461
11462 * xfns.c (xbm_draw): Removed.
11463 (x_draw_image): Default implementation for drawing images.
11464 (xbm_keyword_index): Remove XBM_DEPTH.
11465 (xbm_format): Remove `:depth'.
11466 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11467 (xbm_load_image_from_file): Added for the same reason.
26901792 11468
427ec082 11469 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11470 glyph string.
11471 (x_draw_image_glyph_string): Pass ybase to image draw function.
11472
11473 * xfns.c (make_image): Set default baseline.
11474
11475 * xterm.c (x_produce_image_glyph): Compute ascent of image
11476 from its height and baseline percentage.
11477
11478 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11479 (xbm_format): Add description for `:baseline'.
11480 (xbm_image_spec_from_file): Add keywords from original spec to
11481 result.
11482 (xbm_load): Set baseline of image.
11483 (xbm_image_p): Check range for baseline.
11484
11485 * dispextern.h (struct image): Add member baseline.
11486
11487 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11488
11489 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11490
11491 * xdisp.c (get_next_display_element): Do character translations
11492 only if delivering characters.
11493
114941998-05-03 Gerd Moellmann <gerd@gnu.org>
11495
427ec082 11496 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11497 DISP_CHARACTER.
11498
11499 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11500 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11501
115021998-05-02 Gerd Moellmann <gerd@gnu.org>
11503
11504 * xfns.c (prepare_image_for_display): Set image timestamp.
11505 (clear_image_cache): Clear images if image's timestamp +
11506 Vimage_eviction_seconds is > now.
11507 (syms_of_xfns): New variables image-eviction-seconds, and
11508 image-types.
11509 (add_image_format): Add to image-types.
11510 (xbm_load): Support new image spec format.
11511 (x_alloc_image_color): Allocate a color for an image.
11512
11513 * dispextern.h (struct image): Add timestamp.
11514
11515 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11516 vectors of bool-vectors.
11517 (xbm_lisp_object_from_file): Build new format image spec.
11518
115191998-05-01 Gerd Moellmann <gerd@gnu.org>
11520
11521 * xfaces.c (init_frame_faces): Initialize image cache.
11522 (free_frame_faces): Free it.
11523
11524 * xterm.c (x_delete_display): Don't free image cache.
11525
11526 * emacs.c (main): Call init_xfns.
11527
115281998-04-30 Gerd Moellmann <gerd@gnu.org>
11529
11530 * alloc.c (mark_object): Mark objects in image cache.
11531
427ec082 11532 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11533 widget_store_internal_border_width.
11534
11535 * widget.c (widget_store_internal_border): Return void.
11536
11537 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11538 void.
11539 (init_x_parm_symbols): Return void.
11540 (x_report_frame_params): Ditto.
11541 (x_set_border_pixel): Ditto.
11542 (syms_of_xfns): Ditto.
11543 (x_destroy_all_bitmaps): Use xfree instead of free.
11544
11545 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11546
11547 * xterm.c (x_term_init): Initialize image_cache of display info.
11548 (x_delete_display): Free image cache.
11549
11550 * xterm.h (struct x_display_info): Add image_cache.
11551
11552 * xfns.c (make_image_cache): Allocate a new image cache.
11553 (free_image_cache): Free an image cache.
11554 (make_image): Allocate an image.
11555 (free_image): Free an image.
11556
11557 * dispextern.h (struct image): Structure describing an image.
11558 (struct image_cache): Structure describing an image cache.
11559
115601998-04-29 Gerd Moellmann <gerd@gnu.org>
11561
11562 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11563 non-zero if iterator is filled with something to return.
11564 (next_element_from_buffer): Immediately return if
11565 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11566 (next_element_from_string): Likewise.
11567
11568 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11569
11570 * dispextern.h (struct glyph): Add pixmap_id.
11571 (display_element_type): Add DISP_PIXMAP.
11572
11573 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11574 malloc/free.
11575
11576 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11577 (clear_face_cache): Call it.
11578
11579 * xterm.c (x_query_font): Don't look at empty font table slots.
11580 (x_compute_min_glyph_bounds): Likewise.
11581 (x_term_init): Initialize font_table to null.
11582 (x_load_font): Change allocation of font_info structures so
11583 that it is possible to free fonts.
11584
427ec082 11585 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11586 Only free fonts from filled font table entries.
11587
11588 * xfaces.c (best_matching_font): Support use of scalable fonts.
11589 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11590
11591 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11592 and resy.
11593 * xterm.c (x_term_init): Compute resx and resy.
11594
11595 * xfaces.c (split_font_name): Don't reject scalable fonts.
11596
427ec082 11597 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11598 in #if 0.
11599
11600 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11601 point size cannot be determined.
11602
11603 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11604 width over all fonts on a frame.
11605 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11606 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11607 macros.
11608
11609 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11610 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11611 (x_load_font): Use x_compute_min_char_bounds.
11612
11613 * xterm.h (struct x_display_info): New members smallest_char_width
11614 and smallest_font_height.
11615
116161998-04-28 Gerd Moellmann <gerd@gnu.org>
11617
11618 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11619 the same name if GC of face is zero.
11620
11621 * dispextern.h (struct face): Member non_ascii_gc removed.
11622
11623 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11624 for characters < 0177 in default face. Prepare face for
26901792
DL
11625 display before returning it.
11626 (x_produce_glyphs): Use it->charset.
11627 (x_get_char_font_and_encoding): Simplified.
11628 (x_encode_char): Remove parameter `font'.
11629
11630 * xfaces.c (choose_face_font): If registry from charset symbol
11631 doesn't contain a `-', make it a pattern by appending "*-*".
11632
11633 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11634 glyph_check_pos computation to character boundary.
11635
116361998-04-27 Gerd Moellmann <gerd@gnu.org>
11637
11638 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11639
11640 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11641 ASCII face for a given Lisp face id.
11642
11643 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11644 account.
427ec082 11645 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11646 new position is < original position.
11647 (check_iterator_glyph_property): Handle glyph property in strings.
11648 (next_element_from_string): Call above function.
11649 (next_element_from_display_vector): Handle faces in glyphs.
11650 (get_next_display_element): Set face_id of glyphs for
11651 control chars to zero.
11652
11653 * Makefile.in (term.o): Add dependency on dispextern.h.
11654
11655 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11656 (display_line): Handle marginal areas.
11657 (move_iterator_in_display_line_to): Likewise.
11658
11659 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11660
11661 * xfaces.c (face_at_buffer_position): Don't merge with nil
11662 text property.
11663 (face_at_string_position): Ditto.
11664
11665 * dispextern.h (struct display_iterator): Use a stack of saved
11666 values instead of saving check positions etc. individually.
11667
11668 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11669 maybe pop the iterator's stack.
11670 (save_iterator_settings): Push a value on iterator's stack.
11671 (get_overlay_strings_at_iterator_position): Use it.
11672 (restore_iterator_settings): Pop the stack.
11673 (set_iterator_to_next_overlay_string): Use it.
11674
11675 * xfaces.c (try_font_list): Use alternative font families.
11676
116771998-04-26 Gerd Moellmann <gerd@gnu.org>
11678
11679 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11680 font selection matches fonts.
11681 (Fface_font_sort_order): Return the font sort order.
11682 (best_matching_font): Find best matching font based on sort order.
11683 (cmp_font_names): Sort by given sort order.
11684
11685 * dispextern.h (struct display_iterator): New member faces_p.
11686 * xdisp.c (init_iterator): Initialize it->faces_p.
11687 (compute_face_at_iterator_string_position): Use it.
11688 (compute_face_at_iterator_position): Use it.
11689 (init_iterator): Use it.
11690 (display_mode_line): Ditto.
11691
11692 * xdisp.c (get_next_display_element): Put code choosing a face
11693 when the charset changes in #ifdef HAVE_FACES.
11694
427ec082 11695 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11696 lookup_face_for_charset.
11697
11698 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11699 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11700
117011998-04-25 Gerd Moellmann <gerd@gnu.org>
11702
11703 * xfaces.c (best_matching_font): Return the name of the best
11704 matching font in an array of font_name structures.
11705 (choose_face_font): Use it.
11706 (choose_face_fontset_font): Use it.
11707 (find_best_weight_font): If final font found has same weight as
11708 the font we started with, return the original font because it is a
11709 better match for the resolution of the display.
11710 (find_best_slant_font): Likewise.
11711 (merge_face_vector_with_property): Check more invalid attribute
11712 values.
11713 (lface_suitable_for_charset_p): Replaced by a macro with the same
11714 name in upper-case.
11715
117161998-04-24 Gerd Moellmann <gerd@gnu.org>
11717
11718 * dispextern.h (struct face): Member
11719 fontset_chosen_for_realization_p removed.
11720
11721 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11722 end of the collision list, so that we find more specific faces
11723 first.
11724 (lookup_face_for_charset): Look up a new face if face->fontset >=
11725 0, and charset != CHARSET_COMPOSITION.
11726
11727 * xfaces.c (split_font_name): Return zero if point size of font
11728 couldn't be computed.
11729 (realize_default_face): Use ASCII font of a fontset to determine
11730 font-related attributes of the default face.
11731 (face_fontset): Return fontset id for face family.
11732 (font_list): Additional parameter font_pattern. If non-nil,
11733 return fonts matching that pattern.
11734
117351998-04-23 Gerd Moellmann <gerd@gnu.org>
11736
11737 * xfaces.c (choose_face_fontset): If new fontset cannot be
11738 constructed, or fontset name cannot be split, return the id of the
11739 standard fontset.
11740
11741 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11742 When Emacs starts, it may be called for the initial frame which
11743 isn't an X frame.
11744
11745 * dispextern.h (struct face): New members foreground_defaulted_p,
11746 background_defaulted_p.
11747 (struct face): Members `mask' and `cache' removed.
11748
11749 * xfaces.c (load_color): Set them.
11750 (free_face_colors): Check them.
427ec082 11751 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11752 font unknown.
11753
11754 * xfaces.c (free_font): Removed.
11755 (load_face_font_or_fontset): Renamed from load_font.
11756 (load_face_font_or_fontset): Use message2 instead of signalling.
11757 (load_color): Likewise.
11758 (load_pixmap): Likewise.
11759
11760 * xterm.h (struct x_display_info): Add screen_dpi.
11761 * xterm.c (x_term_init): Initialize it.
11762 * xfaces.c (xlfd_point_size): Use it.
11763 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11764 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11765 similar to that of the frame appear first in the result.
11766
11767 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11768 is set for the face to cache, add it to the end of the collision
11769 list.
11770 (try_font_list): If fonts for given family and registry cannot
11771 be found, first try to keep the registry, and choose a different
11772 family.
11773 (choose_face_font): Allow nfonts == 0.
11774 (try_font_list): Give up if no font matches given registry.
11775
117761998-04-22 Gerd Moellmann <gerd@gnu.org>
11777
11778 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11779 font info id of the face.
11780
11781 * xfaces.c (load_font): Set font_info_id.
11782 (realize_face): Ditto.
11783
11784 * dispextern.h (struct face): Change member font_info to
11785 font_info_id.
11786
11787 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11788 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11789
11790 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11791 isn't ASCII, get the ASCII face before adding a space.
11792 (append_space): Likewise.
11793 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11794 to -1 so that it will compute the right face for the truncation
11795 glyphs.
11796
11797 * xfaces.c (realize_face): Set
11798 face->fontset_chosen_for_realization_p.
11799 (lookup_face_for_charset): If fontset wasn't specified originally
11800 and new charset != CHARSET_COMPOSITION, get a new face for that
11801 charset.
11802
11803 * dispextern.h (struct face): New member
11804 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11805 realize_face has chosen a fontset to display composite characters
11806 for a Lisp face not specifying a fontset.
11807
11808 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11809 face and line already filled here. Don't do anything if current
11810 face hasn't a relief or has a background equal to the frame
11811 background.
11812
11813 * xfaces.c (split_font_name): Additional parameter numeric_p.
11814 Don't compute numeric values if it is non-zero.
11815 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11816 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11817 font whose name cannot be split into fields.
11818
118191998-04-21 Gerd Moellmann <gerd@gnu.org>
11820
427ec082 11821 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11822 possibly using less restrictive patterns.
11823 (choose_face_font): Use it.
11824
11825 * xterm.c (x_get_char_font_and_encoding): For charset !=
11826 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11827
11828 * dispextern.h (struct face): New member font_info.
11829
11830 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11831 specifying a fontset as well as those not having a fontset.
11832 (free_font): Make it empty.
11833 (realize_face): Use changed load_font.
11834
11835 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11836 fit for charset, get the right one.
11837
11838 * xfaces.c (load_font): Take frame and name parameter, return
11839 font.
11840 (free_font): Likewise.
11841 (split_font_name): Compute numeric values for height, swidth etc.
11842 (cmp_font_names): Use them.
11843 (find_best_width_font): Ditto.
11844 (find_best_height_font): Ditto.
11845 (find_best_weight_font): Ditto.
11846 (find_best_slant_font): Ditto.
11847 (lface_hash): Add weight, slant, swidth and relief to hash value.
11848 (lface_equal_p): Make it faster.
11849 (lface_from_symbol): Use assq_no_quit.
11850 (Fnote_default_face_changed): Removed.
11851 (cmp_font_names): Use strcmp instead of xstricmp.
11852 (face_charset_registries): Removed.
11853
118541998-04-20 Gerd Moellmann <gerd@gnu.org>
11855
11856 * frame.h (CHECK_FRAME): Give this macro a statement form.
11857 (CHECK_LIVE_FRAME): Ditto.
11858
11859 * xfaces.c (find_best_width_font): Find the best matching font
11860 for a given width.
11861 (find_best_height_font): Likewise for height.
11862 (find_best_weight_font): Likewise for weight.
11863 (find_best_slant_font): Likewise for slant.
11864 (choose_face_font): Use them.
11865 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11866 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11867 global face attributes.
11868
11869 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11870 Lisp face attributes.
11871
118721998-04-19 Gerd Moellmann <gerd@gnu.org>
11873
11874 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11875 and :italic for compatibility.
11876 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11877 :bold and :italic. Handle boolean resource values for
26901792
DL
11878 :underline and :italic.
11879
11880 * xfns.c (display_x_get_resource): Make it externally visible.
11881
11882 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11883 If that frame is non-null, return the frame-local face.
11884 (Finternal_make_lisp_face): Additional frame argument.
11885 (lface_attributes): Get face attributes from global and frame-local
11886 definitions.
11887 (Finternal_lisp_face_equal_p): Additional frame argument.
11888 (merge_lisp_face_vector_with_property): Ditto.
11889 (Frealize_basic_faces): Removed.
11890 (Finternal_get_lisp_face_attribute): Additional frame argument.
11891 (Finternal_lisp_face_p): Ditto.
11892 (load_color) [MSDOS]: Removed because it isn't clear how
11893 to do this for MS-DOS.
11894
11895 * xfaces.c (lface_from_symbol): Get global face definition
11896 from face-global-alist.
11897
11898 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11899 as values for :underline and :inverse-video.
11900 (Finternal_set_lisp_face_attribute): Allow nil values.
11901
119021998-04-17 Gerd Moellmann <gerd@gnu.org>
11903
11904 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11905
11906 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11907 (Finternal_make_lisp_face): Add new face to Vall_faces.
11908
11909 * xdisp.c (echo_area_display): Remove code recomputing faces.
11910 (redisplay_internal): Ditto.
11911 (init_iterator): Do it here.
11912
11913 * xfaces.c (choose_face_font): Check that swidth doesn't change
11914 for subusequent attributes.
11915 (xlfd_point_size): Return int.
11916
11917 * xdisp.c (redisplay_internal, echo_area-display): If realized
11918 faces have been cleared, call recompute_basic_faces.
11919
11920 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11921 face_attributes_changed_p.
427ec082 11922 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
11923 all frames.
11924 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11925
11926 * xdisp.c (redisplay_internal): If face attributes have been
11927 changed since the last redisplay, recompute basic faces.
11928 (echo_area_display): Ditto.
11929
11930 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11931
11932 * xfaces.c (min_char_bounds): If face cache not yet present,
11933 don't try to get font dimensions from faces.
11934
11935 * xterm.c (x_frame_mode_line_height): If face cache not present
11936 set, return default height.
11937
11938 * alloc.c (mark_face_cache): Check for null faces. Correct
11939 index bug.
11940
11941 * dispextern.h (struct face): Renamed from struct rface. Member
11942 underline renamed underline_p. Make it a bit-field.
11943
11944 * xfaces.c (init_frame_faces): Allocate face cache.
11945 (free_frame_faces): Free face cache.
11946 (recompute_basic_faces): Realize basic faces only if face cache is
11947 allocated, i.e. after init_frame_faces has been called.
11948
11949 * frame.c (make_frame): Initialze face cache with null.
11950
11951 * xfaces.c (same_size_fonts): Removed.
11952
427ec082 11953 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
11954 s->gc != 0.
11955 (x_set_mouse_face_gc): Ditto.
11956 (x_set_mode_line_face_gc): Ditto.
11957
427ec082
SS
11958 * xfaces.c (realize_default_face): Return int. Value is
11959 zero if frame params don't contain enough information to
26901792
DL
11960 realize the default face.
11961 (realize_basic_faces): Ditto.
11962 (init_frame_faces): Realize basic faces.
11963
11964 * xfns.c (x_set_font): First store real font name in frame
11965 parameters, then call recompute_basic_faces.
11966
11967 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11968
119691998-04-16 Gerd Moellmann <gerd@gnu.org>
11970
11971 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11972
11973 * xfns.c (Fx_face_fixed_p): Removed.
11974 (Fx_list_fonts): Moved to xfaces.c.
11975
11976 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11977 face_at_buffer_position. Parameter charset removed; always
11978 compute face for CHARSET_ASCII.
11979 (face_at_string_position): Renamed from
11980 compute_face_at_string_pos. Parameter charset removed; always
11981 compute for CHARSET_ASCII.
427ec082 11982 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
11983 face_cache.
11984 (lookup_face): Ditto.
11985 (compute_char_face): Renamed from compute_glyph_face.
11986
11987 * xdisp.c (init_iterator): Initialize charset member.
11988 (reseat_iterator_to_string): Ditto.
11989 (get_charset_at_buffer_position): Determine charset at
11990 buffer position in current_buffer.
11991 (reseat_iterator): Call above function.
11992 (compute_face_at_iterator_position): Call
11993 compute_face_at_buffer_pos.
11994 (compute_face_at_iterator_string_position): Call
11995 compute_face_at_string_pos.
11996 (get_face_from_id): Removed.
11997 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11998 Call get_charset_at_buffer_position.
11999 (reseat_iterator): Determine face if charset at pos differs
12000 from iterator's charset.
12001 (reseat_iterator_to_glyph_pos): Removed.
12002
12003 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
12004 Determine charset from buffer position.
12005 (compute_string_char_face): Renamed to compute_face_at_string_pos.
12006 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
12007
12008 * dispextern.h (struct display_iterator): Add member charset.
12009
120101998-04-15 Gerd Moellmann <gerd@gnu.org>
12011
12012 * xfaces.c (compute_char_face): Removed.
12013
12014 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12015 with new parameter list.
12016
12017 * xfaces.c (region_face): Removed.
12018 (allocate_face): Removed.
12019 (copy_face): Ditto.
12020 (face_eql): Removed.
12021 (intern_face): Removed.
12022 (clear_face_cache): Removed.
12023 (load_font): Ditto.
12024 (unload_font): Ditto.
12025 (load_color): Ditto.
12026 (unload_color): Ditto.
12027 (new_computed_face): Ditto.
12028 (intern_computed_face): Ditto.
12029 (ensure_face_ready): Ditto.
12030 (merge_faces): Ditto.
12031 (compute_base_face): Ditto.
12032 (merge_face_list): Ditto.
12033 (Fmake_face_internal): Removed.
12034 (Fset_face_attribute_internal): Ditto.
12035 (face_name_id_number): Removed.
12036 (Fframe_face_alist): Ditto.
12037 (Fset_frame_face_alist): Ditto.
12038 (Finternal_next_face_id): Ditto.
12039
12040 * xterm.h (struct x_output): Remove computed_faces, and
12041 param_faces. Remove macros accessing them.
12042
12043 * xfaces.c: Entirely new face implementation added.
12044
120451998-04-11 Gerd Moellmann <gerd@gnu.org>
12046
12047 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12048 `charpos'.
12049
120501998-04-10 Gerd Moellmann <gerd@gnu.org>
12051
12052 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12053 scroll bar window to reduce flickering. Clear entire height.
12054
12055 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12056 current_x and hpos to zero after moving to previous line
12057 start.
12058
120591998-04-03 Gerd Moellmann <gerd@gnu.org>
12060
12061 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12062
12063 * xfaces.c (xlfd_point_size): Compute relative point size of
12064 fonts from font and frame resolution.
12065 (sort_fonts): New function to sort fonts, temporarily setting
12066 font_frame to the frame in effect.
12067 (xlfd_point_size): Take additional frame parameter to be able
12068 to get at the display's resolution.
12069
12070 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12071 BLACK_PIX_DEFAULT.
12072 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12073 screen of display.
12074
120751998-03-31 Gerd Moellmann <gerd@gnu.org>
12076
12077 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12078
12079 * fontset.h: Add external declarations for Vfontset_alias_alist
12080 and Vglobal_fontset_alist.
12081
12082 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12083 (realize_default_face): If frame parameters contain an artificial
12084 font name naming a fontset, set the family of the default face to
12085 the fontset name given by the registry.
12086
12087 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12088
120891998-03-22 Gerd Moellmann <gerd@gnu.org>
12090
12091 * alloc.c (mark_object): Add function prototype. Add cast to
12092 Lisp_Object pointer in call to mark_object for symbol names
12093 because this otherwise gives a warning from gcc 2.8.1.
12094 (mark_face_cache): Mark Lisp objects in realized faces.
12095
120961998-03-19 Gerd Moellmann <gerd@gnu.org>
12097
12098 * frame.h (struct frame): Add member face_cache.
12099
12100 * alloc.c (mark_object): Mark face cache.
12101 (mark_face_cache): Mark Lisp faces in face cache of frame.
12102
12103 * frame.c (make_frame): Initialize face_cache.
12104 (Fdelete_frame): Free it.
12105
121061998-03-18 Gerd Moellmann <gerd@gnu.org>
12107
12108 * xfaces.c: Very first skeleton of functions for face realization,
12109 face merging, face cache etc.
12110
12111 * dispextern.h (struct rface): Realized faces. Will replace
12112 struct face when tested.
12113 (struct face_cache): Realized face caches.
12114
12115 * xdisp.c (init_iterator): Initialize area member of display
12116 iterator.
12117
121181998-03-17 Gerd Moellmann <gerd@gnu.org>
12119
12120 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12121
12122 * dispextern.h (struct display_iterator): New member area.
12123
12124 * xterm.c (note_overwritten_text_cursor): Note when the text
12125 cursor of a window is overwritten.
12126
12127 * xdisp.c (set_cursor_from_row): If PT is not found in the
12128 row, display the cursor at the start of the row.
12129
12130 * dispnew.c (direct_output_forward_char): Call
12131 set_cursor_from_row.
12132
12133 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12134 position is not in an overlay string, set iterator's position and
12135 method explicitly so.
427ec082 12136 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12137 Make it externally visible.
12138 (redisplay_window): Call set_cursor_from_row so that there is only
12139 one place where the cursor position is calculated from a current
12140 row.
12141
12142 * dispextern.h (struct display_iterator): New member
12143 overlay_strings_at_end_processed_p.
12144
12145 * xdisp.c (check_iterator): Perform sanity checks on
12146 display_iterators.
12147 (next_element_from_buffer): Check for overlay strings at ZV.
12148
121491998-03-16 Gerd Moellmann <gerd@gnu.org>
12150
12151 * buffer.c (init_buffer_once): Add left_margin_width and
12152 right_margin_width to buffer_local_flags.
12153
12154 * dispnew.c (margin_glyphs_to_reserve): Function computing
12155 number of glyphs to reserve for a marginal area.
12156 (adjust_glyph_matrix): Call it.
12157 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12158 is not alive.
12159
12160 * window.c (Fset_window_margins): Allow floats.
12161
12162 * buffer.c (syms_of_buffer): Add buffer-local variables
12163 left-margin-width and right-margin-width. Add defaults
12164 default-left-margin-width and default-right-margin-width.
12165
12166 * buffer.h (struct buffer): New members left_margin_width
12167 and right_margin_width.
12168
12169 * window.c (Fset_window_margins): Make window the last and
12170 optional argument.
12171
12172 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12173 flag no_marginal_areas_p differently.
12174 (x_clear_end_of_line): Ditto.
12175 (x_draw_glyph_string_relief): Compute width of relief differently
12176 for rows with flag no_marginal_areas_p.
12177
12178 * dispnew.c (update_window_line): Update marginal areas only
12179 for rows that don't have no_marginal_areas_p set.
12180
12181 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12182 (display_menu_bar): Ditto.
12183
12184 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12185
12186 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12187 marginal areas in window-based redisplay.
12188
12189 * dispextern.h (struct glyph_matrix): New members
12190 left_margin_glyphs and right_margin_glyphs.
12191
121921998-03-15 Gerd Moellmann <gerd@gnu.org>
12193
12194 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12195
12196 * charset.c (non_ascii_char_to_string): Use char type parameters
12197 because the function is used that way from outside. Use unsigned
12198 char internally.
12199
12200 * window.c (change_window_height): Return void.
12201 (make_dummy_parent): Return void.
12202 (init_window_once): Return void.
12203 (syms_of_window): Ditto.
12204 (keys_of_window): Ditto.
12205 (delete_window): Correct return with and without value.
12206
12207 * buffer.c (record_buffer): Return void.
12208
12209 * marker.c (unchain_marker): Return void.
12210
12211 * window.c (unshow_buffer): Return void.
12212 (replace_window): Ditto.
12213 (delete_window): Ditto.
12214
12215 * term.c (delete_glyphs_hook): Void return type.
12216 (ring_bell_hook): Ditto.
12217 (set_terminal_window_hook): Ditto.
12218
12219 * sysdep.c (init_sigio): Return void.
12220
12221 * xterm.c (x_set_window_size): Return void.
12222 (x_calc_absolute_position): Ditto.
12223 (x_set_offset): Ditto.
12224 (x_focus_on_frame): Ditto.
12225 (x_unfocus_frame): Ditto.
12226 (x_make_frame_visible): Ditto.
12227 (x_make_frame_invisible): Ditto.
12228 (x_iconify_frame): Ditto.
12229 (x_destroy_window): Ditto.
12230 (x_wm_set_window_state): Ditto.
12231 (x_wm_set_icon_pixmap): Ditto.
12232 (x_wm_set_icon_position): Ditto.
12233 (x_initialize): Ditto.
12234 (x_error_quitter): Ditto.
12235 (x_destroy_window): Use xfree instead of free.
12236
12237 * keyboard.c (clear_waiting_for_input): Return void.
12238
12239 * xterm.c (x_wm_set_size_hint): Return void.
12240 (x_raise_frame): Ditto.
12241 (refreshicon): Ditto.
12242 (x_error_catcher): Ditto.
12243 (x_clear_errors): Ditto.
12244
12245 * keyboard.c (record_asynch_buffer_change): Return void.
12246
bb6677a8
GM
12247 The first line of the following paragraph was garbled for an
12248 unknown reason. It couldn't be fully reconstructed.
12249
12250 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12251 (x_lower_frame): Ditto.
12252 (x_scroll_bar_clear): Ditto.
12253 (XTflash): Add default case in switch for -Wall.
12254 (construct_mouse_click): Return Qnil.
12255 (cancel_mouse_face): Return void.
12256 (x_queue_event): Use xmalloc instead of malloc.
12257 (x_unqueue_events): Use xfree instead of free.
12258
12259 * ccl.c (ccl_driver): Return int.
12260
12261 * keyboard.c (stop_polling): Return void.
12262 (start_polling): Ditto.
12263
12264 * term.c (keys): Add braces in initializer list for -Wall.
12265
12266 * sysdep.c (tabs_safe_p): Return int.
12267 (init_baud_rate): Return void.
12268
12269 * xterm.c (x_draw_bitmap): Add default case.
12270 (x_setup_relief_colors): Use DefaultScreen instead of
12271 DefaultScreenOfDisplay.
12272 (x_delete_glyphs): Return void.
12273 (construct_menu_click): Put in #if 0 because it isn't called.
12274
12275 * xdisp.c (load_overlay_strings): Remove extraneous argument
12276 in call to qsort.
12277 (get_overlay_arrow_glyph_row): Add missing return value.
12278
12279 * window.c (set_window_height): Return void.
12280 (set_window_width): Ditto.
12281
12282 * sysdep.c (request_sigio): Return void.
12283 (unrequest_sigio): Ditto.
12284 (get_frame_size): Ditto.
12285
12286 * scroll.c (scroll_cost): Return int.
12287 (do_line_insertion_deletion_costs): Return void.
12288
12289 * frame.c (Fdelete_frame): Use xfree instead of free.
12290
12291 * fileio.c (report_file_error): Return void.
12292
12293 * dispnew.c: Make compilable with -Wall.
12294 * term.c: Ditto.
12295
12296 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12297
122981998-03-14 Gerd Moellmann <gerd@gnu.org>
12299
12300 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12301 increased.
12302 (x_setup_relief_color): Free color only for appropriate visual
12303 classes.
12304
12305 * xterm.c (expose_window): Fix calculation of intersection of mode
12306 line rectangle with exposed rectangle.
12307
12308 * xdisp.c (redisplay_window): Don't do cursor movement based
12309 on current matrix if w->last_point is not valid.
12310
123111998-03-09 Gerd Moellmann <gerd@gnu.org>
12312
12313 * xterm.c (expose_line): Redraw mode line and menu lines
12314 differently because they reach into the scroll bar area.
12315
12316 * xdisp.c (redisplay_window): If redisplaying with same window
12317 start, don't accept cursor on partially visible line.
12318
123191998-03-08 Gerd Moellmann <gerd@gnu.org>
12320
12321 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12322 for wider mode lines.
12323 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12324
12325 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12326 scroll bar width for mode lines.
12327
12328 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12329 vertical scroll bar width in width calculation so that we can
12330 display mode lines wider.
12331
12332 * xdisp.c (redisplay_window): Restore buffers before returning
12333 when fonts have changed.
12334
12335 * dispnew.c (update_window): Mark invisible rows in the current
12336 matrix invalid.
12337
12338 * xdisp.c (try_window_id): Force update of first row displayed
12339 at window end.
12340 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12341
123421998-03-05 Gerd Moellmann <gerd@gnu.org>
12343
12344 * dispextern.h (struct glyph_row): Member max_ascent renamed
12345 ascent. Member max_descent replaced by height.
12346 (struct display_iterator): Member max_descent replaced by height.
12347 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12348
12349 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12350 class makes it unnecessary or dangerous.
12351
12352 * xdisp.c (redisplay_window): Case only point has changed, and
12353 point has moved forward. Move forward over overlay strings.
12354 (display_line): Don't set cursor if first glyph from PT is part of
12355 a continuation line.
12356
123571998-02-21 Gerd Moellmann <gerd@gnu.org>
12358
12359 * xdisp.c (start_display): When computing continuation lines
12360 width, add current_x to the continuation lines width because
12361 move_iterator_to will stop in front of the buffer position moved
12362 to.
12363
123641998-02-20 Gerd Moellmann <gerd@gnu.org>
12365
12366 * xdisp.c (redisplay_window): Don't try try_window_id if
12367 windows_or_buffers_changed.
12368
12369 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12370 determine a color.
12371 (x_setup_relief_color): Allocate/ change one relief.
12372 (x_setup_relief_colors): Call above function.
12373
12374 * xterm.h (struct relief): New structure type holding relief info:
12375 GCs, colors, and whether colors are allocated.
12376
427ec082 12377 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12378 produces the same color, try adding a delta to RGB values.
12379 (x_setup_relief_colors): Free color cells.
12380
427ec082 12381 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12382 black_relief_pixel holding the foreground colors allocated for
12383 relief GCs. New members white_allocated_p, black_allocated_p.
12384
12385 * xterm.c (x_scroll_run): Don't set updated_window to null.
12386 This resets updated_window when called from scrolling_window.
12387
12388 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12389
26901792
DL
12390 * xterm.c (x_scroll_run): Additional window parameter. Set
12391 and reset updated_window.
12392
12393 * dispnew.c (line_dance_hook): Additional window parameter.
12394
12395 * xdisp.c (try_window_reusing_current_matrix): Don't call
12396 update_window_begin/end here. The end function would display the
12397 cursor on a wrong position and the additional functionality of
12398 update_window_begin is not needed anyway. Just set
12399 updated_window.
12400 (try_window_id): Ditto.
12401
12402 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12403 Don't redraw cursor during redisplay.
12404
12405 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12406
12407 * xdisp.c (redisplay_window): For window-based redisplay, alway
12408 try try_window_id.
12409
12410 * xterm.c (struct glyph_string): New member two_byte_p that is
12411 non-zero if 16-bit drawing functions must be used.
12412 (x_fill_composite_glyph_string): Set it.
12413 (x_fill_glyph_string): Set it.
12414 (x_draw_glyph_string_foreground): Use it.
12415 (x_draw_vertical_border): Make line 1 pixel less tall.
12416 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12417 side by 1 pixel if window is not right-most hasn't vertical scroll
12418 bars.
12419 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12420 out of bounds.
12421 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12422 hl == DRAW_CURSOR.
12423
12424 * xdisp.c (start_display): Check that window start is at line
12425 start if GLYPH_DEBUG != 0.
12426
12427 * window.c (window_scroll_pixel_based): Move assertion to
12428 start_display.
12429
124301998-02-19 Gerd Moellmann <gerd@gnu.org>
12431
427ec082 12432 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
12433 frame hasn't the focus.
12434
12435 * window.c (make_window): Initialize dy.
12436 (replace_window): Ditto.
12437
12438 * window.h (window): New member dy specifying the amount by which
12439 a window is scrolled "smoothly".
12440
12441 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 12442 y-position because it can be negative.
26901792
DL
12443 (x_draw_row_bitmaps): Don't clear with negative y-position like
12444 above.
12445 (x_clear_end_of_line): Same theme as above.
12446
12447 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
12448 exact match exists, the nearest existing color. Patterned after
12449 defined_color.
12450 (x_alloc_lighter_color): Allocate a color that is lighter or
12451 darker than a given color by a specified factor.
427ec082 12452 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
12453 the background color of a glyph string face.
12454 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
12455
12456 * xfns.c (x_make_gc): Don't allocate relief GCs.
12457 * widget.c (create_frame_gcs): Don't allocate relief GCs.
12458 (setup_frame_gcs): Don't change relief GCs.
12459
12460 * xterm.h (struct x_output): New member relief_background giving
12461 the background pixel color for which relief GCs can be used.
12462 Set by x_setup_relief_colors.
12463
12464 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
12465 for mode and menu lines.
12466
12467 * xdisp.c (set_next_iterator_stop_pos): No longer static.
12468
12469 * dispnew.c (direct_output_for_insert): Call
12470 set_next_iterator_stop_pos after having changed it2.endpos.
12471
124721998-02-17 Gerd Moellmann <gerd@gnu.org>
12473
12474 * dispnew.c (update_window): Work on selected_window, only.
12475
12476 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
12477 hpos is >= number of glyphs in the cursor row.
12478
12479 * xdisp.c (try_window_id): Bug fix; update_window_end was not
12480 called.
12481
124821998-02-16 Gerd Moellmann <gerd@gnu.org>
12483
12484 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
12485 and menu lines.
12486
12487 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
12488 enough glyphs to display a mode line or menu line which draws over
12489 flags areas.
12490
12491 * xterm.c (XTset_vertical_scroll_bar): Use
12492 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
12493 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 12494 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
12495 or menu.
12496 (x_set_glyph_string_clipping): Set clipping differently if drawing
12497 a mode line or menu line.
12498
12499 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
12500
12501 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
12502 menu lines.
12503 (x_scroll_bar_create): Don't clear flags areas.
12504 (x_draw_row_bitmaps): Clear visible row height, only.
12505
12506 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
12507
125081998-02-15 Gerd Moellmann <gerd@gnu.org>
12509
12510 * dispnew.c (direct_output_for_insert): When checking for tabs in
12511 the line, set it2.endpos to ZV.
427ec082 12512
26901792
DL
12513 * window.h (struct window): New member cursor_off_p.
12514 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
12515 for X.
12516 * dispnew.c (redraw_cursor_hook): If non-null, function that can
12517 be called to display or erase the cursor.
12518 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
12519 or selected_window.
12520
12521 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
12522
12523 * dispnew.c (update_window_line): Special handling of inverse
12524 lines in #if 0 removed.
12525
12526 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
12527 (x_insert_glyphs): Renamed from XTinsert_glyphs.
12528 (x_clear_frame): Renamed from XTclear_frame.
12529 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
12530 (x_ins_del_lines): Renamed from XTins_del_lines.
12531 (x_change_line_height): Renamed from XTchange_line_height.
12532 (x_delete_glyphs): Renamed from XTdelete_glyphs.
12533 (x_clear_cursor): Renamed from clear_cursor.
12534 (x_update_begin): Renamed from XTupdate_begin.
12535 (x_update_end): Renamed from XTupdate_end.
12536 (x_update_window_begin): Renamed from XTupdate_window_begin.
12537 (x_update_window_end): Renamed from XTupdate_window_end.
12538 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
12539 (x_produce_glyphs): Renamed from XTproduce_glyphs.
12540 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
12541 (x_produce_special_glyphs): Implementation in #if 0 removed.
12542
12543 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
12544 flag in the dump.
12545
12546 * dispnew.c (update_text_area): Handling of glyphs with pixel
12547 width zero removed. Decrement desired stop pos if desired row
12548 fills its line.
12549
12550 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
12551 width zero removed.
12552 (BUILD_GLYPH_STRINGS): Set glyph string flag
12553 extends_to_end_of_line_p based on row's flag fill_line_p and face
12554 background and stipple. Make sure it works for composite characters.
12555
12556 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
12557 fill_line_p. For window-based redisplay, add a space only if
12558 the row is empty so that we know the face to draw.
12559
12560 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
12561 means draw the face of the last glyph in the text area to the
12562 right end of the text area.
12563
12564 * xdisp.c (init_iterator): Show region in window mini-buffer
12565 window refers to.
12566
427ec082 12567 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
12568 region_showing_p removed. Test for region_beg > 0 instead.
12569
12570 * dispnew.c (update_text_area): Clear to end of line if cursor is
12571 beyond the end of the desired line. Necessary because we don't
12572 have a phys_cursor_glyph with which to erase the cursor. We don't
12573 have one because this method of drawing a cursor doesn't work with
12574 lbearing/rbearing.
12575
12576 * xterm.c (XTinsert_glyphs): Block input.
12577
125781998-02-14 Gerd Moellmann <gerd@gnu.org>
12579
12580 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
12581 glyph strings.
12582 (x_draw_glyph_string_background): Fill background with background
12583 pixel for the first glyph of a composite character.
12584
12585 * xdisp.c (try_window): Change return type to int. Value is zero
12586 if fonts were loaded during redisplay.
12587 (redisplay_window): Return if fonts have been loaded during
12588 redisplay.
12589 (append_space): New parameter default_face_p.
12590
125911998-02-13 Gerd Moellmann <gerd@gnu.org>
12592
12593 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
12594 don't let a partially visible line in a current matrix stay
12595 enabled.
12596
125971998-02-09 Gerd Moellmann <gerd@gnu.org>
12598
12599 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
12600 in #if PROMPT_IN_BUFFER.
12601
12602 * xdisp.c (display_line): If row ends in ZV, make the space
12603 that is added to place the cursor on it appear in default face.
12604
427ec082 12605 * xterm.c (expose_area): New function redrawing a single
26901792
DL
12606 glyph row area.
12607 (expose_line): Use it to redraw all areas of a row.
12608
12609 * dispextern.h (move_operation_enum): New enum
12610 move_operation_enum.
12611
12612 * window.c (window_scroll_pixel_based): Remove now unnecessary
12613 code that made sure that it->current_y doesn't become negative.
12614
12615 * xdisp.c (move_iterator_in_display_line_to): New parameter
12616 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
12617 (move_iterator_to): Ditto.
12618
12619 * dispextern.h (struct glyph_matrix): New member window_width.
12620
12621 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
12622 case of changing window height.
12623
12624 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 12625 border to the left.
26901792
DL
12626
12627 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
12628 says this aspect of Emacs is currently redesigned.
12629
12630 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
12631 have to draw a vertical border.
12632
12633 * window.c (window_scroll_pixel_based): When scrolling down by
12634 screen-fulls, make sure it.current_y doesn't get negative because
12635 this would confuse move_iterator_vertically.
12636
12637 * xdisp.c (move_iterator_vertically_backward): Bug fix for
12638 the case continuation lines are involved.
12639 (try_window_id): Don't set the cursor into scroll margins.
12640
126411998-02-08 Gerd Moellmann <gerd@gnu.org>
12642
12643 * xterm.c (x_append_glyph): Don't compute left_overhang and
12644 right_overhang.
12645 (XTproduce_glyphs): left_overhang and right_overhang removed.
12646 Set it->glyph_row->contains_overlapping_glyphs_p.
12647
12648 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
12649 and right_overhang removed.
12650
12651 * dispextern.h (struct glyph_row): New member
12652 contains_overlapping_glyphs_p used to optimize glyph drawing.
12653 (struct display_iterator): left_overhang and right_overhang
12654 removed.
12655 (struct glyph): Ditto.
12656
12657 * xterm.c (x_draw_relief): Removed.
12658 (x_draw_bitmap): Renamed from draw_bitmap.
12659 (x_draw_glyphs): Completely new implementation of draw_glyphs
12660 capable of handling arbitrary lbearing and rbearing values.
12661 Several sub-functions not mentioned here.
12662
126631998-01-30 Gerd Moellmann <gerd@gnu.org>
12664
12665 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 12666 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
12667 other cases.
12668 (draw_glyphs): Move start to the left and end to the right if they
427ec082 12669 overlap with previous or following characters.
26901792 12670 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 12671 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
12672 character under the cursor would be invisible.
12673 (x_draw_bar_cursor): Don't draw over previous character if it
12674 has right_overhang.
12675
12676 * window.c (get_phys_cursor_glyph): Return the glyph under a
12677 window's physical cursor.
427ec082 12678
26901792
DL
12679 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
12680 (x_draw_bar_cursor): Ditto.
12681 (x_erase_phys_cursor): Ditto.
12682 (x_phys_cursor_in_rect_p): Ditto.
12683 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
12684
12685 * window.c (make_window): Remove reference to phys_cursor_glyph.
12686 (replace_window): Ditto.
12687
12688 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 12689 now always a glyph present for placing the cursor on it in
26901792
DL
12690 each glyph row, even at the end of a line.
12691
12692 * xdisp.c (append_space): Function to add a space to an iterators
12693 glyph row.
12694 (display_line): Add spaces at the end of lines that are used to
12695 place the cursor on them.
12696 (compute_line_metrics): If row consists of a space only that was
427ec082 12697 added to place the cursor on it, use that space's height as the
26901792
DL
12698 line height.
12699
127001998-01-29 Gerd Moellmann <gerd@gnu.org>
12701
12702 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
12703 glyphs.
12704
127051998-01-28 Gerd Moellmann <gerd@gnu.org>
12706
12707 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
12708 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
12709
12710 * dispextern.h (struct glyph): Add left_overhang and
427ec082 12711 right_overhang.
26901792
DL
12712 (struct display_iterator): Ditto.
12713
12714 * dispnew.c (direct_output_for_insert): Give up if newly inserted
12715 glyphs have different ascent or descent than original row.
12716
12717 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
12718 row->max_descent only if unknown.
12719 (display_line): Compute row->max_ascent and row->max_descent.
12720 (display_string): Ditto.
12721
12722 * window.h (struct window): New members phys_cursor_ascent and
427ec082 12723 phys_cursor_descent.
26901792
DL
12724
12725 * xterm.c (x_phys_cursor_in_rect_p): Use them.
12726 (x_draw_hollow_cursor): Ditto.
12727 (x_erase_phys_cursor): Ditto.
12728 (x_display_and_set_cursor): Set them.
12729 (x_append_glyph): Don't set glyph members that were removed.
12730
12731 * dispextern.h (struct glyph): Members ascent, descent,
12732 contributes_to_line_height_p removed.
12733
127341998-01-25 Gerd Moellmann <gerd@gnu.org>
12735
12736 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
12737 names for face ids of frame default face and mode line face.
12738
12739 * xdisp.c (compute_face_at_iterator_string_position): If
12740 displaying a mode line use MODE_LINE_FACE_ID instead of
12741 DEFAULT_FACE_ID.
12742
12743 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
12744 (display_string): Ditto, additional parameter lisp_string.
12745 (display_line): Call display_string with Lisp mini-buffer prompt
12746 string.
12747 (display_menu_bar): Call display_string with Lisp string.
12748 (display_mode_element): Ditto.
12749 (next_element_from_string): Make it work for non-overlay Lisp
12750 strings with field width and precision.
12751
12752 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
12753 PROMPT_IN_BUFFER.
12754
12755 * xfaces.c (compute_string_char_face): Fix face computation
12756 for overlay strings.
12757
12758 * xdisp.c (struct overlay_entry): Add member after_string_p.
12759 (load_overlay_strings): Simplify.
12760
12761 * window.c (delete_window): Defer glyph matrix adjustment.
12762 (Fsplit_window): Ditto.
12763 (change_window_height): Ditto.
12764 (Fset_window_configuration): Ditto.
12765 (Fset_window_margins): Ditto.
12766 * frame.c (set_menu_bar_lines): Ditto.
12767 (Fmake_terminal_frame): Ditto.
12768 * dispnew.c (change_frame_size_1): Ditto.
12769
127701998-01-24 Gerd Moellmann <gerd@gnu.org>
12771
12772 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
12773
427ec082 12774 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
12775 position has overlay strings.
12776
12777 * xdisp.c (display_line): Don't set cursor if row ends in middle
12778 of overlay string.
12779 (Fdump_redisplay_state): Print complete row start and end
12780 position.
12781 (redisplay_window): Cursor movement when matrix hasn't changed---
12782 if PT < last_point, maybe move forward if row ends at PT and
12783 in middle of char.
12784
12785 * minibuf.c (read_minibuf): Save the value of
12786 minibuffer_prompt_length in minibuf_save_list.
12787 (read_minibuf_unwind): Restore minibuffer_prompt_length.
12788
12789 * xdisp.c (redisplay_window): Add assertion for cursor movement
12790 case, PT < last_point.
12791 (move_iterator_in_display_line_to): If to_pos specified, move
12792 over before-strings.
12793
12794 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
12795 start.string_index > 0.
12796
12797 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
12798 is set. Retry redisplay if fonts_changed_p is set before update.
12799
12800 * xterm.c (x_load_font): Set fonts_changed_p.
12801
12802 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
12803
12804 * dispnew.c (adjust_glyphs_for_font_change): Removed.
12805
12806 * xdisp.c (try_window): Check fonts_changed_p.
12807 (try_window_reusing_current_matrix): Ditto.
12808 (try_window_id): Ditto.
12809
12810 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
12811 (fonts_changed_p): Flag indicating a font change since the last
12812 glyph matrix adjustment.
12813
12814 * xterm.c (x_per_char_metric): Use font->max_bounds as
12815 char metric of the font's default char if the default char
12816 hasn't per char metric itself.
12817
12818 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
12819 for font change.
12820 (min_char_bounds): Check face->font != NULL.
427ec082 12821 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
12822 case of invalid min_bounds contents.
12823 (min_char_bounds): Call font_min_bounds.
12824
128251998-01-22 Gerd Moellmann <gerd@gnu.org>
12826
12827 * xdisp.c (start_display): Don't set it->prompt_width if
12828 PROMPT_IN_BUFFER.
12829 (move_iterator_in_display_line_to): Ditto.
12830 (display_line): Don't display prompt via display_string if
12831 PROMPT_IN_BUFFER.
12832
12833 * minibuf.c (Fminibuffer_prompt_width): Return value from
12834 current_buffer if PROMPT_IN_BUFFER.
427ec082 12835 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
12836 mini-buffer and make it read-only.
12837 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
12838 minibuffer_prompt_length instead of BEGV.
12839 (Fminibuffer_complete_word): Ditto.
12840 (Fminibuffer_complete_word): Ditto.
12841
12842 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
12843 is less than mini-buffer prompt width, use prompt width as start.
12844
12845 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
12846 position is less than mini-buffer prompt width, use the prompt
12847 width as start.
12848
12849 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
12850 end of prompt if applied to a mini-buffer and BEG reached.
12851
128521998-01-21 Gerd Moellmann <gerd@gnu.org>
12853
12854 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
12855 length to start position.
12856
12857 * buffer.c (Fget_buffer_create): Initialize
12858 minibuffer_prompt_length.
12859 (Fmake_indirect_buffer): Ditto.
12860 (Fkill_buffer): Ditto.
12861
12862 * buffer.h (struct buffer): Add member minibuffer_prompt_length
12863 if PROMPT_IN_BUFFER.
12864
128651998-01-19 Gerd Moellmann <gerd@gnu.org>
12866
12867 * xdisp.c (next_element_from_string): Make it work for arbitrary
12868 Lisp strings.
12869 (set_iterator_to_next): Advance to next overlay string only
12870 if it->string is an overlay string.
12871
12872 * dispextern.h (struct display_iterator):
12873 next_ovstr_face_check_pos renamed next_string_face_check_pos.
12874
427ec082 12875 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
12876 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
12877
12878 * xdisp.c (next_element_from_string): Renamed from
12879 next_element_from_overlay_string.
427ec082 12880 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
12881 compute_face_at_iterator_overlay_string_position.
12882
12883 * dispextern.h (struct display_iterator): Member overlay_string
12884 renamed string.
12885
12886 * xdisp.c (next_element_from_c_string): Renamed from
12887 next_element_from_string.
12888
12889 * dispextern.h (struct glyph_pos): Reversed meaning of
12890 overlay_string_index and string_index.
12891
12892 * xdisp.c (next_element_from_overlay_string): Fix bug that made
12893 this function always return the first character of an overlay
12894 string.
12895
128961998-01-18 Gerd Moellmann <gerd@gnu.org>
12897
12898 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
12899 forced or new pos > next_invisible_check_pos.
12900 (redisplay_window): Don't try same window start if PT < window
12901 start.
12902 (move_iterator_vertically): Bug fix satisfying post-condition
12903 when ZV is reached and no newline in front.
12904 (move_iterator_vertically_backward): New implementation.
12905 (move_iterator_vertically_backward): Bug fixes.
12906
12907 * xterm.c (XTmouse_position): Change call to min_char_bounds.
12908 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
12909 (adjust_glyphs_for_font_change): Always adjust.
12910
12911 * dispnew.c (struct dim): Use int.
12912
12913 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
12914 (allocate_face): Initialize it.
12915 (load_font): Use XLoadQueryFont again instead of x_load_font.
12916 (unload_font): Use XFreeFont again.
12917 (min_char_bounds): Iterate over fonts of faces. Use frame's
12918 font sizes as default. Remove parameter except_last_font_p.
12919
12920 * dispextern.h (struct face): Add font_name.
12921
129221998-01-17 Gerd Moellmann <gerd@gnu.org>
12923
12924 * xdisp.c (move_iterator_vertically): Check post-condition. Move
12925 to start of line if ending at ZV and no newline in front.
12926 (move_iterator_to): If to_y specified, always first move to x = 0,
12927 so that move stops at line start instead of line end. This is
12928 probably what callers would expect to happen.
12929
12930 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
12931 can handle different line heights.
12932 (window_scroll_line_based): Formerly window_scroll.
12933 (window_scroll): Call both.
12934
12935 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
12936 (move_iterator_in_display_line_to): Ditto.
12937 (display_line): Ditto.
12938
12939 * minibuf.c (read_minibuf): Conditionally insert prompt into
12940 buffer instead of handling prompts specially. Change other
12941 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
12942
12943 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
12944 upper window. Optimize calls to xrealloc if same width.
12945
12946 * xdisp.c (redisplay_window): Don't use
12947 try_window_reusing_current_matrix if window scroll functions
12948 exist.
12949
12950 * dispextern.h (struct display_iterator): Member
12951 redisplay_end_trigger_p removed.
12952
12953 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
12954 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
12955
129561998-01-16 Gerd Moellmann <gerd@gnu.org>
12957
12958 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
12959 nil. Optimize truncate-lines t and moving backward.
12960 (move_iterator_to_previous_visible_line_start): Contains the heart
12961 of the previous set_iterator_to_previous_visible_line_end. Don't
12962 reseat the iterator. Used by move_iterator_by_lines.
12963 (set_iterator_to_previous_visible_line_start): Call function
12964 above.
12965 (move_iterator_in_display_line_to): Check TO_POS before doing
12966 anything else. Otherwise to_pos == PT would move to x of PT+1.
12967
12968 * indent.c (Fvertical_motion): Use display_iterator.
12969
12970 * xdisp.c (move_iterator_by_lines): New function moving by screen
12971 lines.
12972 (redisplay_window): Use it.
12973 (move_iterator_to): Correct branch of to_vpos specified.
12974 (move_iterator_vertically_backward): Increment nlines after having
12975 backed up over some lines because the last line was not backed up
12976 over.
12977 (move_iterator_via_matrix): Look for it->pos in the matrix, and
12978 calculate it->vpos and it->current_y relative to this row.
427ec082 12979 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
12980 have a big effect and it is complex.
12981 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
12982
129831998-01-15 Gerd Moellmann <gerd@gnu.org>
12984
12985 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
12986 join nicely. Lines with widths > 2 don't join nicely under X.
12987 * xterm.h (struct x_output): Remove member relief_gc_line_width.
12988 * widget.c (setup_frame_gcs): Initialize relief GC's to line
12989 width 1; remove references to relief_gc_line_width.
12990 * xfns.c (x_make_gc): Ditto.
12991
12992 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
12993 if relief changes.
12994 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
12995 to get a relief because they can be negative.
12996
12997 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
12998 positions are for the middle of lines under X.
12999
13000 * xdisp.c (try_window_id): Always search for the cursor by setting
13001 w->cursor.vpos = -1. Search in unchanged rows at the top and
13002 bottom if cursor not found in displayed lines.
427ec082 13003 (display_mode_line): First extend face, then set right shadow
26901792
DL
13004 flag. Otherwise the wrong glyph gets the right shadow.
13005
13006 * dispnew.c (direct_output_for_insert): Give up if line contains
13007 a tab. The number of spaces inserted for a tab changes if we
13008 insert glyphs in front of it.
13009
13010 * xterm.c (x_list_fonts): Changes undone because the Lisp
13011 implementation for make-face-smaller, make-face-larger, and
13012 make-face-fixed can do without them.
13013
13014 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13015 inserted.
13016
13017 * xdisp.c (try_window_id): First compute beg_unchanged, then
13018 compare with window start pos.
13019
13020 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13021 fixed-width font.
13022 (syms_of_xfns): defsubr for x-face-fixed-p.
13023
13024 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13025 enabled, don't do anything because this row will be newly drawn
13026 anyway and because we can additionally no longer determine the row
13027 height.
13028
13029 * xdisp.c (display_line): Bug fix cursor positioning.
13030
13031 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13032 removed. x-list-fonts.c is now obsolete.
13033 (Qfixed, Qvariable): Moved here from xfaces.c.
13034
130351998-01-14 Gerd Moellmann <gerd@gnu.org>
13036
13037 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13038 FETCH_BYTE for truncated lines.
13039 (display_line): Set cursor differently.
13040 (display_line): Fixed bug setting last_pos_on_this_line wrong
13041 for truncated lines.
13042
13043 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13044 redisplay.
13045
13046 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13047
13048 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13049 assertion that character dimensions are not zero.
13050
13051 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13052 input is blocked.
13053
13054 * xdisp.c (decode_mode_spec): Faster implementation of line number
13055 display.
13056
13057 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13058 bitmaps if bitmaps don't fill the entire area.
13059 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13060
427ec082 13061 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13062 pixel height of flags bitmaps.
13063
13064 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13065 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13066
13067 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13068 in pixels of a flags area of a frame.
13069 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13070 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13071 occupied by a flags area.
13072
130731998-01-13 Gerd Moellmann <gerd@gnu.org>
13074
13075 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13076 window_end_valid.
13077
13078 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13079 GLYPH_DEBUG != 0.
13080
13081 * xdisp.c (display_line): Correct wrong calculation of row->x for
13082 the case of nglyphs == 1.
13083 (hscroll_window_tree): Renamed from hscroll_windows.
13084 (hscroll_windows): New function calling hscroll_window_tree that
13085 clears desired matrices on a frame when hscroll has been changed.
13086 (redisplay_p): Global flag set during redisplay.
13087 (redisplay_internal): Set and clear redisplay_p.
13088
13089 * xfaces.c (min_char_bounds): Add assertion that width and height
13090 are not zero at the end. Initialize *height and *width to -1,
13091 instead of using BITS_PER_SHORT. If font has min_bounds.width
13092 zero, use its max_bounds.width.
13093
13094 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13095 width and height.
13096
130971998-01-12 Gerd Moellmann <gerd@acm.org>
13098
13099 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13100 changed. Don't clear desired matrices.
13101
13102 * xdisp.c (hscroll_windows): Compute pt after setting
13103 current_buffer.
13104 (redisplay_window): Don't do cursor movement based on current
13105 matrix if just_this_one_p is zero.
13106
13107 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13108 specifying that fixed-width, variable-width fonts or both
26901792
DL
13109 should be returned.
13110
13111 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13112 (syms_of_xfaces): Initialize them.
13113
13114 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13115 cached information.
13116
131171998-01-11 Gerd Moellmann <gerd@acm.org>
13118
13119 * xdisp.c (display_mode_line): Extend face to end of line.
13120
13121 * xdisp.c (echo_area_display): Don't call display_string with
13122 echo_area_glyphs_length == 0 which would mean infinite precision.
13123 (redisplay_internal): Adjust window_end_vpos if necessary.
13124
131251998-01-07 Gerd Moellmann <gerd@acm.org>
13126
13127 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13128
131291998-01-05 Gerd Moellmann <gerd@acm.org>
13130
13131 * xdisp.c (get_row_start_continuation_line_width): Removed.
13132 (init_iterator_to_row_start): Set it.current_x from row.
13133 (try_window_id): Set it.continuation_lines_width directly from
13134 row.
13135
13136 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13137 selected_window.
13138 (hscroll_windows): Center cursor in window.
13139 (hscroll_windows): Call move_iterator_in_display_line_to.
13140
131411998-01-04 Gerd Moellmann <gerd@acm.org>
13142
13143 * xdisp.c (hscroll_windows): Check hscroll < 0.
13144 (redisplay_window): Allow quick cursor movement if overlay arrow
13145 but frame uses window-based redisplay.
13146 (display_line): Take special case for nglyphs == 1 out of #if 0.
13147 (display_line): Set row->ends_at_zv_p after the loop displaying
13148 glyphs because ZV can be in truncated text.
13149 (hscroll_windows): Use init_iterator_to_row_start.
13150
13151 * dispnew.c (scrolling_window): Calculation of overlapping
13152 runs fixed.
13153 (row_equal_p): Compare continued_p and continuation_line_p.
13154
131551998-01-02 Gerd Moellmann <gerd@acm.org>
13156
13157 * xterm.c (x_get_mode_line_face_gc): Renamed from
13158 x_get_modeline_face_gc.
13159
13160 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13161 buffer position to look for text properties.
13162 (get_face_from_cursor_pos): Use it.
13163 (compute_face_at_iterator_position): Use it.
13164 (next_element_from_buffer): Use it.
13165
13166 * dispnew.c (scrolling_window): Decrement run's y-position
13167 when extending it backwards.
13168
13169 * xterm.c (do_line_dance): Don't ever copy more than window height.
13170
131711998-01-01 Gerd Moellmann <gerd@acm.org>
13172
13173 * xdisp.c (redisplay_window): Cursor motion in unchanged
13174 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13175 (init_iterator_to_next_row_start): Special handling of lines
13176 ending in middle of char removed.
13177 (hscroll_windows): Hscroll windows only if window_end_valid is not
13178 nil.
13179 (try_window_reusing_current_matrix): Call hscroll_windows.
13180 (init_iterator_to_row_start): Initialize iterator for display
13181 starting at a position given by a glyph_row->start.
13182 (redisplay_window): Don't use vmotion because it gives wrong
13183 results if lines are continued and variable width fonts are used.
13184
427ec082 13185 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13186 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13187 the middle of a character.
427ec082 13188 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13189 the middle of a character.
13190
13191 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13192 it.
13193 (next_element_from_display_vector): Use it->dpvec_index.
13194 (reseat_iterator): Reset it.
13195 (init_iterator): Reset it.
13196 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13197 it->pos.dpvec_index from a glyph_pos structure.
13198 (init_iterator_from_glyph_pos): Call the function above.
13199 (reseat_iterator_to_glyph_pos): Ditto.
13200
13201 * dispnew.c (direct_output_forward_char): Don't use this method at
13202 overlay boundaries or near invisible text.
13203 (direct_output_forward_char): Step through glyph row to find
13204 cursor position.
13205
427ec082 13206 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13207 frame font if line height differs from font height.
13208
13209 * xdisp.c (set_iterator_to_next): Renamed from
13210 move_iterator_forward to avoid confusion with other move_.*
13211 functions.
13212
13213 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13214
132151997-12-31 Gerd Moellmann <gerd@acm.org>
13216
13217 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13218 same naming convention as for other GC functions.
13219 (draw_glyphs): Don't fill background when drawing a cursor and
13220 font height is less than line height.
13221
132221997-12-30 Gerd Moellmann <gerd@acm.org>
13223
13224 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13225 init_iterator_.*.
13226
13227 * xdisp.c (move_iterator_forward): Restore it->len from
13228 it->dpvec_char_len if dpend reached.
13229 (get_next_display_element): Don't consume translated char
13230 prematurely.
13231 (display_line): Don't set this_.* variables if row is continued.
13232 (start_display): Move to start of continuation line if ending
13233 up at end of continued line.
13234
13235 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13236
13237 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13238 checking TO_X and continuation lines.
13239 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13240 of a continued line, don't consider this line as unchanged because
13241 it may no longer be continued.
13242
132431997-12-29 Gerd Moellmann <gerd@acm.org>
13244
13245 * xdisp.c (try_window_id): Catch the case that moving over
13246 continuation lines moves first_unchanged_at_end_row to a row not
13247 displaying text.
13248
13249 * dispextern.h (struct glyph_row): New member
13250 continuation_lines_width. Member continuation_line_p removed.
427ec082 13251 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13252 continuation line.
13253 * xdisp.c (display_line): Set row->continuation_lines_width.
13254 (get_row_start_continuation_line_width): Set continuation lines
13255 width of iterator from continuation lines width of glyph row.
13256 (get_row_start_continuation_line_width): Make it inline.
13257 (set_window_cursor): Make it inline.
13258 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13259 (Fdump_redisplay_state): Ditto.
427ec082 13260
26901792
DL
13261 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13262 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13263
13264 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13265 after determining the continuation lines width for
13266 last_unchanged_at_beg_row.
13267
13268 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13269
13270 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13271 which support faces.
13272 (init_display_iterator): Ditto.
13273 (move_iterator_via_matrix): Skip over truncation glyph at the row
13274 start on terminal frames.
13275 (hscroll_windows): Choose hscroll margin differently for window
13276 system and terminal frames.
13277
132781997-12-28 Gerd Moellmann <gerd@acm.org>
13279
13280 * xdisp.c (hscroll_windows): Change hscroll of windows.
13281 (redisplay_internal): Call it.
13282
427ec082 13283 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13284 doesn't fit completely on the line.
13285 (direct_output_forward_char): Give up for non-ASCII chars.
13286 (direct_output_forward_char): Set redisplay_performed_directly_p.
13287
13288 * dispextern.h (struct display_iterator): Make first_visible_x
13289 and last_visible_x ints; this is for very long truncated lines.
13290
13291 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13292 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13293 positioning problems with the mouse.
13294 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13295 >= it->last_visible_x instead of >.
13296 (display_line): Ditto.
13297
13298 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13299 loaded.
13300 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13301 non-ASCII chars differently. Always produce 1 glyph for composite
13302 chars. If font not found, use CHARSET_WIDTH to calculate width of
13303 non-ASCII chars.
13304 (x_get_char_font_and_encoding): Return null if font could not be
13305 loaded. Reset font to null if fontset could not be loaded.
13306 (draw_glyphs): Fill background if font not found.
13307 (draw_glyphs): Unused parameter just_foreground_p removed. New
13308 parameter composite_glyph.
13309 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13310 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13311 draw_glyphs when calling it recursively for composite chars.
13312
133131997-12-27 Gerd Moellmann <gerd@acm.org>
13314
13315 * xterm.c: Patches from handa.etl.go.jp integrated.
13316 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13317 find a font_info.
13318
13319 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13320 for nglyphs == 1.
13321
13322 * xterm.c (x_draw_relief): Draw relief lines.
13323 (draw_glyphs): Call x_draw_relief.
13324
133251997-12-26 Gerd Moellmann <gerd@acm.org>
13326
13327 * xfns.c (x_make_gc): Create relief GC's.
13328
13329 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13330 (setup_frame_gcs): Initialize them.
13331 (EmacsFrameDestroy): Free them.
13332
427ec082 13333 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13334 last_unchanged_at_beg_row is continued or a continuation line.
13335 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13336 (redisplay_window): Case point has changed, and it has not
26901792
DL
13337 moved off the frame. Don't increment row if PT equals the row
13338 end if the row ends in ZV.
13339
13340 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13341 (expose_line): Call it.
13342 (x_after_update_window_line): Call it.
13343
13344 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13345 reached.
13346
13347 * xterm.c (x_after_update_window_line): Draw continuation line
13348 bitmap.
13349
13350 * dispnew.c (update_window_line): Call
13351 after_update_window_line_hook when row's continuation_line_p
13352 changes.
13353
13354 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13355
13356 * xdisp.c (display_line): Handle continued lines on window system
13357 frames differently since continuation glyphs are not displayed.
13358 (move_iterator_in_display_line_to): Ditto.
13359 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13360 into account.
13361 (move_iterator_vertically_backward): Handle dy == 0 specially.
13362 (redisplay_window): Catch the case of small windows when
13363 recentering where moving back window_height/2 moves us beyond the
13364 top of the display area of the window.
13365
133661997-12-18 Gerd Moellmann <gerd@acm.org>
13367
13368 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13369 dvpos removed.
13370
133711997-12-17 Gerd Moellmann <gerd@acm.org>
13372
13373 * dispnew.c (direct_output_forward_char): Correct new cursor
13374 x-position.
13375
133761997-12-16 Gerd Moellmann <gerd@acm.org>
13377
13378 * xterm.c (x_after_update_window_line): Remove unused parameters.
13379 (XTclear_end_of_line): Clear to display_height instead of
13380 display_height - 1.
13381
13382 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13383 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13384 rows have different y-positions, or different height.
13385
133861997-12-14 Gerd Moellmann <gerd@acm.org>
13387
13388 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13389
13390 * window.c (coordinates_in_window): Call frame_mode_line_height.
13391
13392 * xterm.c (x_draw_3d_border): Removed.
13393 (x_draw_row_borders): Removed.
13394
13395 * dispnew.c (update_window): References to
13396 FRAME_MODE_LINE_BORDER_WIDTH removed.
13397
13398 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13399 (FRAME_MODE_LINE_HEIGHT): Removed.
13400
13401 * xterm.c (draw_3d_borders_p): Removed.
13402 (draw_glyphs): Ditto.
13403 (XTwrite_glyphs): Ditto.
13404 (expose_line): Ditto.
13405 (x_initialize): Ditto.
13406
13407 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13408 frame_mode_line_height.
13409
13410 * term.c (frame_mode_line_height): Get the pixel height of a
13411 frame's mode line.
13412 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13413 versions.
13414
26901792
DL
13415 * xterm.c (x_initialize): Set the hook.
13416 (XTframe_mode_line_height): X version of frame_mode_line_height.
13417
13418 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13419 output buffer.
13420 (display_string): Don't add right truncation mark if line ends in
13421 padding space.
13422 (init_display_iterator): If called with modeline_p non-zero, set
13423 face_id to 1, which is the id of the mode line face.
13424
13425 * keyboard.c (cmd_error_internal): Write to stderr if selected
13426 frame is Vterminal_frame under X. This is the case when a font
13427 cannot be loaded when Emacs starts. Replace test for
13428 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
13429
13430 * xfaces.c (compute_overlay_string_char_face): Compute the
13431 face of a character in an overlay string.
13432 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 13433 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
13434 Use it.
13435
13436 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
13437 set_iterator_to_next_overlay.
13438 (struct overlay_entry): Structure used to sort overlay strings.
13439 (compare_overlay_entries): Compare overlay strings.
13440 (load_iterator_with_overlay_strings): Load a chunk of overlay
13441 strings.
13442 (get_overlay_strings_at_iterator_position): Call it.
13443 (next_element_from_overlay_string): Set it->object to the overlay
13444 string. Prepare for setting it->position to a string position.
13445 (get_overlay_strings_at_iterator_position): Renamed from
13446 get_overlays_at_iterator_position.
13447 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
13448 chunks of overlay strings.
13449 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
13450
13451 * dispextern.h (struct display_iterator): New vector
13452 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
13453 overlays and n_overlays.
13454 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
13455 renamed to string_index.
13456
134571997-12-13 Gerd Moellmann <gerd@acm.org>
13458
13459 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
13460 when allocating a vector.
13461 (release_iterator): Removed.
13462 (restore_iterator): Removed.
13463 (copy_iterator): Removed.
13464
134651997-12-08 Gerd Moellmann <gerd@acm.org>
13466
13467 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
13468 clearing a mini-buffer window that is not active.
13469 (redisplay_window): Do not scroll one line too early when last
13470 window line is completely visible.
13471 (init_display_iterator): Leave some room to display the cursor
13472 after the last glyph on a continued line.
13473
13474 * xterm.h (struct x_output): trunc_area_extra renamed
13475 flags_areas_extra.
13476 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
13477
13478 * dispnew.c (update_window_line): Call
13479 after_update_window_line_hook when current row is not enabled
13480 which is the case after a frame has been cleared.
13481
13482 * xdisp.c (display_mode_line): Reset row flags for truncation
13483 on right side for the mode line.
13484
13485 * xterm.c (bitmap_type): Type of bitmap to display in flags
13486 area of frame.
13487 (x_after_update_window_line): Use the enum.
13488 (draw_bitmap): Ditto.
13489
134901997-12-07 Gerd Moellmann <gerd@acm.org>
13491
13492 * xterm.c (x_clip_to_row): Include width of both flag areas.
13493 (do_line_dance): Ditto.
13494 (expose_window_tree): Ditto.
13495 * dispnew.c (update_window_line): Call
13496 after_update_window_line_hook for right truncation and continuation.
13497 * xdisp.c (init_display_iterator): Don't subtract width of
13498 continuation glyphs for window-based redisplay.
13499 * xterm.c (draw_bitmap): Draw continuation bitmap.
13500 * widget.c (set_frame_size): Double trunc_area_extra.
13501 (EmacsFrameSetCharSize): Ditto.
13502 * xfns.c (x_figure_window_size): Ditto.
13503 * xterm.c (x_set_window_size): Ditto.
13504 (x_after_update_window_line): Draw right truncation mark.
13505
13506 * xterm.c (draw_glyphs): Bug fix buffer overrun.
13507
13508 * window.h: Include blocker around dispextern.h removed.
13509
13510 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 13511
26901792
DL
13512 * dispextern.h (struct display_iterator): Former ovstr made a
13513 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
13514 next_ovstr_invisble_check_pos; check at these positions for
13515 face changes and changes in invisible text property.
13516 (struct glyph_pos): Former ovlen now overlay_string_index.
13517
13518 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
13519 overlay_string.
13520 (set_iterator_to_next_overlay_string): Set overlay_string and
13521 pos.overlay_string_index.
13522 (get_overlays_at_iterator_position): Use overlay_string and
13523 overlay_string_index.
13524 (next_element_from_overlay_string): Use overlay_string and
13525 overlay_string_index.
13526 (move_iterator_forward): Increment overlay_string_index.
13527 (try_window_id): Use overlay_string and overlay_string_index.
13528 (move_iterator_forward): At end of dpvec, maybe use method
13529 next_element_from_overlay_string for the case a character from an
13530 overlay string was translated via a display table.
13531 (reseat_iterator_to_string): Take a Lisp string.
13532 (display_string): Pass a Lisp string to reseat_iterator_to_string.
13533 (compute_face_at_iterator_overlay_string_position): Compute face
13534 based on text properties for an overlay string.
13535 (next_element_from_overlay_string): Check invisible and face text
13536 properties.
bb6677a8 13537
26901792
DL
13538 (set_iterator_to_next_overlay_string): Restore face id before
13539 overlay strings when no more overlay strings are found to return.
13540 Initialize next_ovstr_.*check_pos for each new overlay string
bb6677a8
GM
13541
13542 A line in the following paragraph was garbled for an unknown
13543 reason. It couldn't be fully reconstructed.
13544
13545 (compute_base_face): Made public.
26901792
DL
13546 (merge_face_list): Ditto.
13547 (intern_computed_face): Ditto.
13548
427ec082 13549 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
13550 window if PT > w->last_point. Goto try_to_scroll if bottom Y
13551 of row is > instead of >= last_y.
13552
13553 * buffer.h (overlays_at): Function prototype.
13554
13555 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
13556 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
13557
427ec082 13558 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
13559 memory of a display_iterator.
13560 (copy_iterator): Copy an iterator.
13561 (restore_iterator): Restore an iterator from a backup copy.
13562 (global): Use the functions above.
13563 * window.c (Fpos_visible_in_window_p): Call release_iterator.
13564 * dispnew.c (direct_output_for_insert): Call release_iterator.
13565
13566 * dispextern.h (struct display_iterator): Allocate overlays
13567 vector dynamically.
13568
135691997-12-06 Gerd Moellmann <gerd@acm.org>
13570
13571 * Makefile.in (window.o): Depends on dispextern.h.
13572
13573 * buffer.c (overlays_at): Make it work when extending vectors
13574 and an initial vector of zero size.
13575
13576 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
13577 from set_cursor_to_previous_visible_line_end.
13578 (set_iterator_to_next_visible_line_start): Renamed from
13579 set_cursor_to_next_visible_line_end.
13580 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
13581 (compute_face_at_iterator_position): Renamed from
13582 compute_cursor_face.
13583 (set_iterator_to_next_overlay_string): Renamed from
13584 cursor_to_next_overlay_string.
13585 (get_overlays_at_iterator_position): Renamed from
13586 get_overlays_for_cursor.
13587 (reseat_iterator): Renamed from reseat_cursor.
13588 (setup_iterator_overlays_from_glyph_pos): Renamed from
13589 setup_overlays_from_pos.
13590 (init_string_iterator): Renamed from init_string_cursor.
13591 (get_next_display_element): Renamed from next_display_element.
13592 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 13593 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
13594 dynamically.
13595
13596 * xdisp.c: display_cursor renamed display_iterator.
13597 * dispextern.h: Ditto.
13598 * dispnew.c: Ditto.
13599
136001997-12-01 Gerd Moellmann <gerd@acm.org>
13601
13602 * window.c (mark_window_cursors_off): Function comment added.
13603 (window_topmost_p, window_rightmost_p): Removed because not used.
13604
136051997-11-30 Gerd Moellmann <gerd@acm.org>
13606
13607 * emacs.c (main): Function prototypes removed in profiling code.
13608 Use safe_bcopy as start of text.
13609
13610 * dispnew.c (update_frame_line): update_line -> update_frame_line;
13611 mirrored_make_current -> make_current.
13612
13613 * xdisp.c: (store_frame_title_char): New function to store a
13614 single character for the frame title with re-allocation of
13615 frame_title_buf.
13616 (init_xdisp): Intialize frame_title_.* variables to null.
13617
13618 * dispnew.c (quit_error_check): Removed.
13619
13620 * eval.c (Fsignal): Call to quit_error_check removed.
13621 * keyboard.c (quit_throw_to_read_char): Ditto.
13622
136231997-11-23 Gerd Moellmann <gerd@acm.org>
13624
13625 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
13626 to mean a zero relief.
13627
26901792
DL
136281997-11-19 Gerd Moellmann <gerd@acm.org>
13629
13630 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
13631 unconditionally.
13632 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
13633 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
13634 (check_glyph_memory): Define function body unconditionally.
13635
136361997-11-17 Gerd Moellmann <gerd@acm.org>
13637
13638 * dispnew.c (scrolling_window): Alternative version of this
13639 function removed.
13640
136411997-11-16 Gerd Moellmann <gerd@acm.org>
13642
13643 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
13644 of height CANON_Y_UNIT.
13645 * dispextern.h: Prototype for that function.
427ec082 13646 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
13647 produce empty rows. Use make_empty_enabled_row instead.
13648
13649 * dispnew.c (scrolling_window): New version using diff-like
13650 algorithm activated.
427ec082 13651
26901792
DL
136521997-11-15 Gerd Moellmann <gerd@acm.org>
13653
13654 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
13655 (clear_desired_matrices): Ditto.
13656 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
13657 for menu_bar_window.
13658
13659 * alloc.c (mark_object): Mark menu_bar_window of frames.
13660
13661 * xterm.c (XTupdate_window_end): Don't display cursor if
13662 pseudo_window_p.
13663
13664 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
13665 set mini_p.
13666 (update_window): Don't set cursor if pseudo_window_p.
13667
13668 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
13669
13670 * window.h (struct window): New flag pseudo_window_p set to
13671 1 for windows that aren't really part of the window tree, like
13672 menu_bar_window's of frames.
13673 * window.c (make_window): Initialize it.
13674 (replace_window): Ditto.
13675 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13676
13677 * frame.c (make_frame): Initialize menu_bar_window to nil.
13678
13679 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
13680 FACE_RELIEF
13681
13682 * xfaces.c (copy_face): shadow_thickness -> relief.
13683 (face_eql): Ditto.
13684 (merge_faces): Ditto.
13685 (compute_base_face): Ditto.
13686 (Fset_face_attribute_internal): Ditto.
13687 * dispextern.h (struct face): Ditto.
13688
13689 * dispnew.c (update_frame): Update menu_bar_window of the frame if
13690 it is non-nil.
13691
13692 * xdisp.c (display_menu_bar): Display the menu bar in
13693 f->menu_bar_window if appropriate.
13694 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
13695
13696 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
13697 dummy window and window matrices for f->menu_bar_window.
13698 (free_glyphs): Free the dummy window and its glyph matrices.
13699
13700 * frame.h (struct frame): New member menu_bar_window.
13701
137021997-11-09 Gerd Moellmann <gerd@acm.org>
13703
13704 * dispnew.c (scrolling_window): New version with diff-like
13705 algorithm.
13706
13707 * xdisp.c (try_window_reusing_current_matrix): If new_start >
13708 old_start always start displaying at start of
13709 first_row_to_display. The previous scheme failed if the last row
13710 was fully visible.
13711
13712 * dispnew.c (update_window): Remove cost calculations. Remove
13713 redundant preempt_count calculations.
13714
13715 * xterm.c (x_clip_to_row): Set clipping for non-text rows
13716 differently.
13717
13718 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
13719
427ec082 13720 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
13721 WITH_MARGINAL_AREAS is defined.
13722
427ec082 13723 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
13724 removed.
13725
13726 * dispnew.c (scrolling): Call line_hash_code because hash values
13727 are not set in the frame matrix.
13728
13729 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
13730 (redisplay_window): Check line_ins_del_ok before calling
13731 try_window_id.
13732 (try_window_reusing_current_matrix): Give up for terminal frames
13733 if window is not full width or we cannot insert/delete lines.
13734 (try_window_reusing_current_matrix): Fixed scrolling for terminal
13735 frames.
13736
13737 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
13738 Lisp_Object to mark_object.
13739
13740 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
13741 window rows have the same glyph pointers.
13742 (try_window_id): Call it.
13743
13744 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
13745 a glyph matrix.
13746 (mark_object): Call it.
13747
13748 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
13749 truncations.
13750 (display_line): Ditto.
13751 (display_line): Ditto for DISP_CONTINUATION.
13752 (display_line): Truncation on right: test current_x >
13753 last_visible_x.
13754 (skip_in_display_line_to): Ditto.
13755 (skip_via_matrix): Stop skipping in glyph row at face extending
13756 glyphs or at padding spaces.
13757
13758 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
13759
13760 * xdisp.c (display_line): Use glyph->object == 0 for padding
13761 glyphs.
13762 (redisplay_window): Don't let cursor move over padding
13763 spaces.
13764
13765 * dispextern.h (struct glyph): Fix comment for object.
13766
137671997-11-08 Gerd Moellmann <gerd@acm.org>
13768
13769 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
13770 has a mode line.
13771 * xdisp.c (redisplay_window): Use it.
13772 (display_mode_line): Check that window wants mode line.
13773
137741997-11-03 Gerd Moellmann <gerd@acm.org>
13775
13776 * xdisp.c (display_menu_bar): Enable menu bar rows.
13777
13778 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
13779 (x_erase_phys_cursor): Ditto.
13780 (x_draw_bar_cursor): Ditto.
13781
137821997-11-02 Gerd Moellmann <gerd@acm.org>
13783
13784 * dispnew.c (update_marginal_area): Update a marginal area.
13785 (update_text_area): Update text area.
13786 (update_window_line): Call both.
13787
13788 * xterm.c (XTclear_end_of_line): Translate coordinates area
13789 dependent.
13790
13791 * dispnew.c (updated_area): Row area being updated in
13792 update_window_line.
13793 (update_window_line): Set it.
13794 (update_marginal_area): Clear to end of line if not in text area.
13795
13796 * window.c (Fset_window_margins): Increment
13797 windows_or_buffer_changed. Adjust glyphs.
13798
13799 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
13800 area X coordinates to frame coordinates.
427ec082 13801 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
13802 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
13803 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
13804
13805 * xterm.c (draw_glyphs): Use text area width as display width.
13806
13807 * xdisp.c (init_display_info): Subtract widths of marginal areas
13808 from last_visible_x.
13809
13810 * alloc.c (mark_object): Mark objects in glyphs only if they are
13811 overlays. Mark only if current_matrix != 0. Activate the code.
13812
13813 * window.c (Fset_window_margins): Set margins.
13814 (Fwindow_margins): Return margin area widths.
13815 (syms_of_window): Add defsubr's.
13816
13817 * window.h (struct window): left_margin_width, right_margin_width.
13818
13819 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
13820 and cols.
13821
13822 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
13823 truncation/overlay arrow area.
13824 (struct frame): trunc_area_pixel_width, and _cols.
13825
13826 * window.c (Fsplit_window): Use it.
13827
13828 * window.c (Fsplit_window): Set cursor vpos to -1 after
13829 splitting.
13830 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
13831 split windows.
13832
13833 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 13834 of bounds cursor positions.
26901792
DL
13835
13836 * xdisp.c (redisplay_internal): Check that after cursor motion
13837 within line, PT is on same line.
13838
13839 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
13840 FRAME_TRUNC_WIDTH.
13841
13842 * xterm.h (struct x_output): trunc_area_extra.
13843 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
13844 (PIXEL_TO_CHAR_WIDTH): Subtract it.
13845 * widget.c (set_frame_size): Set it.
13846 (EmacsFrameSetCharSize): Ditto.
13847 * xfns.c (x_figure_window_size): Ditto.
13848 * xterm.c (x_set_window_size): Ditto.
13849
13850 * dispnew.c (check_matrix_invariants): First try to check window
13851 ends (in #if 0).
13852
13853 * xdisp.c (try_window_reusing_current_matrix): Try window
13854 redisplay with different window start.
13855
138561997-11-01 Gerd Moellmann <gerd@acm.org>
13857
13858 * window.c (make_window): Set window_end_pos/vpos.
13859 (Fsplit_window): Zero last_cursor, window_end_valid.
13860 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
13861
13862 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
13863
138641997-10-31 Gerd Moellmann <gerd@acm.org>
13865
13866 * window.c (make_window): Initialize last_cursor.
13867 (replace_window): Ditto.
13868
138691997-10-29 Gerd Moellmann <gerd@acm.org>
13870
13871 * window.h: New member last_cursor.
13872 * dispnew.c (direct_output_for_insert): Set it.
13873 (direct_output_forward_char): Ditto.
13874 * xdisp.c (redisplay_internal): Ditto.
13875
138761997-10-28 Gerd Moellmann <gerd@acm.org>
13877
13878 * xdisp.c (redisplay_internal): Optimization 1 change partially
13879 reverted. Check this again later.
13880 (skip_via_matrix): Remove redundent test for
427ec082 13881 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
13882
138831997-10-27 Gerd Moellmann <gerd@acm.org>
13884
13885 * dispnew.c (update_window_line): Call
13886 after_update_window_line_hook only for interesting constellations.
13887 (free_glyph_matrix): Fix memory leak.
13888
13889 * window.h: Include blocker WINDOW_H_INCLUDED, include
13890 dispextern.h.
13891 (struct window): phys_cursor_glyph as struct glyph. * window.c
13892 (make_window): Initialize it.
427ec082 13893 (replace_window): Ditto.
26901792
DL
13894 * dispnew.c (free_window_matrices): Remove freeing of
13895 phys_cursor_glyph.
13896 (check_matrix_invariants): Renamed from check_current_matrix_...
13897 * xterm.c: All references to phys_cursor_glyph changed.
13898
13899 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
13900
13901 * xfaces.c: Comment update.
13902
13903 * window.h (struct window): Make phys_cursor_glyph a struct glyph
13904 pointer. Remove phys_cursor_ascent, descent, etc.
13905 * dispnew.c (free_window_matrices): Free it.
13906 * window.c (make_window): Allocate it.
13907 (replace_window): Ditto.
13908 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
13909 (x_display_and_set_cursor): Fill it.
13910 (x_phys_cursor_in_rect_p): Use it.
13911 (x_draw_hollow_cursor): Ditto.
13912 (x_draw_bar_cursor): Ditto.
13913 (x_erase_phys_cursor): Ditto.
13914
13915 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
13916
13917 * xterm.c (XTget_display_info): Handle 3D facess.
13918 (draw_glyphs): Ditto.
13919
13920 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
13921
13922 * xfaces.c (Fset_face_attribute_internal): New face attribute
13923 shadow-thickness.
13924 (copy_face): Handle shadow_thickness.
13925 (face_eql): Ditto.
13926 (merge_faces): Ditto.
13927 (compute_base_face): Ditto.
13928
13929 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
13930 (struct display_info): Ditto.
13931 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
13932 * xdisp.c (compute_cursor_face): Set it.
13933 (advance_display_cursor): Clear it.
13934
13935 * xdisp.c (init_string_cursor): Initialize face_id to -1.
13936 (init_string_cursor): Init face_id to zero.
13937
13938 * dispextern.h (struct face): New member shadow_thickness.
13939
427ec082 13940 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
13941 search to 100.
13942
13943 * dispnew.c (update_window_line): Try to resynch with current line
13944 to prevent mode line flickering.
13945
139461997-10-26 Gerd Moellmann <gerd@acm.org>
13947
427ec082 13948 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
13949 on cursor_in_echo_area >= 0.
13950
13951 * xdisp.c (echo_area_display): Clear desired matrix before
13952 displaying into it.
13953 (display_menu_bar): Clear glyph row instead of hoping it is not
13954 enabled. This is safer.
13955
13956 * dispnew.c (check_current_matrix_invariants): Check only
13957 visible rows.
13958
13959 * xdisp.c (try_window_id): Handle window end setting in case of
13960 display to end of window, but only non-text lines displayed.
13961
13962 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
13963 (check_current_matrix_invariants): Check used counts.
13964
13965 * Revisiob v114.
13966
13967 * dispnew.c (scrolling): Use hash codes from rows.
13968
13969 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
13970
13971 * dispnew.c (scrolling_window): Invalidate conflicting runs.
13972
139731997-10-25 Gerd Moellmann <gerd@acm.org>
13974
13975 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
13976 * dispnew.c (update_window): Use it.
13977 (clear_glyph_matrix): Clear it.
13978 * xdisp.c (try_window_id): Set it.
13979
13980 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
13981
13982 * xdisp.c (redisplay_internal): Increment glyph positions differently.
13983
13984 * dispextern.h: More comments etc.
13985
139861997-10-24 Gerd Moellmann <gerd@acm.org>
13987
13988 * dispnew.c (set_window_cursor_after_update): Set cursor
13989 for cursor_in_echo_area == 0 to (0, 0).
13990
13991 * dispextern.h (struct glyph_row): New flags continuation_line_p
13992 and displays_text_p.
13993 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
13994 * xdisp.c (display_line): Set them.
13995 (try_window_id): Move to start of continuation line to find out
13996 continuation_line_width.
13997 (first_unchanged_current_row): Don't retract row if continued,
13998 truncated etc.
13999
14000 * xterm.c: Map X coordinates.
14001
140021997-10-23 Gerd Moellmann <gerd@acm.org>
14003
14004 * dispnew.c (buffer_posn_from_coords): Translate X for right to
14005 left text.
14006
14007 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
14008
14009 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
14010
f28eba7b 14011 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
14012
14013 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
14014
14015 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14016 Set this to functions to be called before/after window updates.
14017 (direct_output_for_insert): Call them.
14018 (update_window): Ditto.
14019 (update_frame): Call update_begin/ update_end for windows.
14020
14021 * xterm.c (XTupdate_window_begin): Called before window updates.
14022 (XTupdate_end): Called after window updates.
14023 (x_initialize): Set hooks to above.
14024
14025 * xdisp.c (init_display_info): Initialize c and len of
14026 display_info.
14027
14028 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14029 fonts more than once.
14030
140311997-10-22 Gerd Moellmann <gerd@acm.org>
14032
14033 * xdisp.c (display_line): Handle most common case of current_x <
14034 last_visible_x separately.
14035
14036 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14037
14038 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14039 so that face extending space doesn't compare equal to normal space
14040 with same face.
14041
14042 * xdisp.c (display_line): Make sure we have a position for
14043 a line end in an otherwise blank line if face is extended.
14044
14045 * dispnew.c (direct_output_for_insert): Increment row end position.
14046
427ec082 14047 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14048 window_end_pos.
14049
14050 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14051
14052 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14053
14054 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14055 start and end positions in rows.
14056 (increment_glyph_row_buffer_positions): Stop adjusting at
14057 glyphs with positions <= 0.
14058
14059 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14060 position including position in overlay.
26901792
DL
14061 (struct glyph_row): Use it for start and end positions.
14062 (struct display_cursor): Use it.
14063 * xdisp.c: Use it.
14064 (display_line): Set row start and end positions.
14065
14066 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14067 assignment.
14068
140691997-10-21 Gerd Moellmann <gerd@acm.org>
14070
14071 * dispnew.c (update_window): Add scrolling_window again. It's
14072 necessary for scroll_step != 0.
14073
14074 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14075 scrolling.
14076
14077 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14078
14079 * xterm.c (XTupdate_end): Flush only for messages.
14080
14081 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14082 first_unchanged_row.
14083
14084 * xterm.c (XTupdate_end): Flush if miniwindow.
14085
14086 * dispnew.c (matrix_row_last_pos): New function.
14087 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14088 Large comment moved to xdisp.c.
26901792
DL
14089
14090 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14091 (skip_via_matrix): Check window_end_valid instead of
14092 display_completed.
14093
14094 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14095 (update_window): scrolling_window commented out. It has negative
14096 effect most of the time.
14097
14098 * xdisp.c (try_window_id): Correct parameters to
14099 scroll_glyph_matrix_range.
14100
427ec082 14101 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14102
14103 * window.h: Comments for window_end_pos/vpos.
14104
f28eba7b 14105 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14106 of the window in which we are skipping.
14107
14108 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14109
14110 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14111 reached.
14112
141131997-10-20 Gerd Moellmann <gerd@acm.org>
14114
14115 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14116 a face extending glyph.
14117
427ec082 14118 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14119 (set_cursor_from_row): Set cursor position from a glyph row.
14120
14121 * dispnew.c (update_window_line): Write entire line if hash
14122 codes of lines differ.
14123
14124 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14125 if glyph row has an infinite width glyph at its end.
14126
14127 * xdisp.c (last_unchanged_current_row): Respect partially visible
14128 lines when looking for the last row displaying text.
14129 (try_window_id): Handle partially visible lines better.
14130
141311997-10-19 Gerd Moellmann <gerd@acm.org>
14132
14133 * dispnew.c (update_window): Remove unused variable.
14134 (update_window_line): Simplified.
14135
14136 * xterm.c (x_get_char_font_and_encoding): Handle most common
14137 case at the beginning.
14138
14139 * xdisp.c (advance_display_cursor): Dispatch on method and
14140 order if statements by expected call frequency. Fixed unclosed
14141 comment.
14142
14143 * xdisp.c (try_window_id): New implementation.
14144
14145 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14146 rows displaying a line end, only.
14147
141481997-10-18 Gerd Moellmann <gerd@acm.org>
14149
14150 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14151
141521997-10-14 Gerd Moellmann <gerd@acm.org>
14153
14154 * xdisp.c (display_line): Mark empty lines not corresponding to
14155 text with position -1.
14156
14157 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14158 not within window matrix bounds.
14159
14160 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14161 (struct display_info): NGLYPHS_TO_IGNORE removed.
14162 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14163 * term.c: Ditto.
14164 * xterm.c: Ditto.
14165
14166 * xdisp.c (init_display_cursor): Set it.
14167 (display_line): Use it to set W->REGION_SHOWING.
14168
14169 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14170
14171 * region-cache.h: functino prototypes with PROTO.
14172
14173 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14174
14175 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14176 a position.
14177
427ec082 14178 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14179 rectangle based on minimum character bounds.
14180
f28eba7b 14181 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14182 glyph position calculations.
14183 (make_lispy_movement): Use buffer_posn_from_coords and window
14184 relative coordinates.
14185
14186 * xterm.c (construct_mouse_click): Remove #if 0 case.
14187
14188 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14189 given row.
14190
427ec082
SS
14191 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14192 date.
26901792
DL
14193 (skip_to): Use it.
14194 (redisplay_window): Remove code skipping using current matrix.
14195
141961997-10-13 Gerd Moellmann <gerd@acm.org>
14197
14198 * xdisp.c (redisplay_window): Use available current matrix to
14199 skip faster when only point is moved withing the window.
14200
427ec082 14201 * intervals.c: Include stdio.h.
26901792
DL
14202 (find_interval): Trace to stderr to catch some nasty error
14203 that did not yet occur again with tracing.
14204 (set_point): Ditto.
14205
14206 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14207 cursor positioning on partially visible lines.
14208 (set_window_cursor_after_update): Ditto.
14209
f28eba7b 14210 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14211
14212 * window.h (struct window): start_y removed.
14213
14214 * window.c (make_window): start_y removed.
14215 (replace_window): Ditto.
14216
427ec082 14217 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14218 descent values of the last line processed by skip_to.
14219 (redisplay_window): Use them.
14220 (skip_to): Set them.
14221
14222 * dispextern.h (struct display_cursor): New member METHOD.
14223
14224 * xdisp.c: Use function member METHOD.
14225
14226 * xdisp.c (set_next_stop_pos): Determine next position at which to
14227 check for face properties, invisible text properties, and overlays.
14228 (compute_cursor_face): Use it.
14229 (get_overlays_for_cursor): Ditto.
14230 (reseat_cursor): Ditto.
14231 (next_display_element): Ditto.
14232
14233Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14234
14235 * termhooks.h: Some hooks with prototypes.
14236
14237 * term.c: Some hooks with function prototypes.
427ec082 14238
26901792
DL
14239 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14240 computing face if possible.
14241
14242 * xdisp.c (next_display_element): Use face from glyph from display
14243 table only if != 0.
14244
14245 * emacs.c: FreeBSD headers for profiling removed.
14246
427ec082
SS
14247 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14248 display cursor, use DEC_POS instread.
26901792
DL
14249
14250 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14251 all fonts are in the font table.
26901792
DL
14252 (unload_font): Don't XFreeFont.
14253
14254 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14255 row height.
14256
14257 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14258 (x_erase_phys_cursor): Clear only visible part of row.
14259 (x_draw_bar_cursor): Set clipping.
14260 (x_draw_hollow_cursor): Ditto.
14261 (x_display_and_set_cursor): Remove clipping.
14262 (expose_window_tree): Take trunc border into account.
14263 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14264 (expose_window): Use it.
14265
14266 * xdisp.c (display_string): Catch case that we are called with
14267 current_x already beyond max_x.
14268 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14269 (init_display_info): Subtract vertical border glyph from
14270 last_visible_x.
14271
14272 * scroll.c (scrolling_window_1): Removed.
14273
14274 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14275 based on redisplay method used.
14276 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14277 based redisplay.
14278 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14279 window based redisplay.
14280
14281 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14282 on data structures.
14283
14284 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14285 Handle own storage for purely window based redisplay.
14286 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14287 allocate_matrices.
26901792
DL
14288 (allocate_matrices_for_window_redisplay): Ditto.
14289
14290 * dispextern.h (struct glyph_matrix): window_top_y,
14291 window_height.
14292
14293 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14294 and optimize some common cases of window changes.
14295
14296 * emacs.c (main): Remove own profiling code because 0.95 now
14297 has it in.
14298
14299Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14300
14301 * xterm.c (XTupdate_end): Draw horizontal border at right
14302 position.
14303 (expose_window): Draw vertical border.
14304 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14305 don't do anything.
14306
14307 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14308 for non full width windows only if not window redisplay.
14309
14310 * dispnew.c (update_window_tree): Or paused_p return of called
14311 functions.
14312
14313 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14314 of window.
14315
14316 * window.c (Fset_window_configuration): adjust_glyphs being
14317 called twice.
14318 (Fset_window_configuration): Set frame garbaged if not all
14319 leaf windows reused.
14320
143211997-08-21 Gerd Moellmann <gerd@acm.org>
14322
14323 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14324 that rows should really be cleared. Used for current matrices.
14325
14326 * dispnew.c (scrolling_window): Bug fix.
427ec082 14327 (line_dance_hook): Formerly line_dance_fn, take only one
26901792
DL
14328 parameter.
14329
14330 * dispextern.h (struct run): Remove current_vpos.
14331
14332 * xterm.c (do_line_dance): Only one parameter.
14333
f28eba7b 14334 * xdisp.c (display_line): Set continued_p.
26901792
DL
14335
14336 * dispextern.h (struct glyph_row): New flag continued_p.
14337 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14338 (struct glyph_row):
26901792
DL
14339
14340Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14341
14342 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14343 when calling skip_to for continued lines.
14344
14345 * dispnew.c (change_frame_size_1): Set frame garbaged.
14346
14347 * xterm.c (expose_window): Check enabled_p of rows.
14348
14349 * xdisp.c (redisplay_internal): Compare line heights before and
14350 now for redisplay optimization 2 (hit).
14351 (display_line): Set this_line_pixel_height.
14352
14353 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14354 value.
14355 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14356 (do_line_dance): Simplified and pixel corrected.
14357
14358 * dispnew.c (scrolling_window): Simplified.
14359
14360 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14361
14362 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14363 to mode line row->x.
14364
14365Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14366
14367 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14368 override font of face.
14369 (draw_glyphs): Correct return value.
14370 (XTclear_end_of_line): Compare differently with output cursor
14371 position.
14372 (x_draw_hollow_cursor): 2 parameters, window and row.
14373
14374 * dispnew.c (update_window_line): If rows have different height
14375 or y, write entire line.
14376
f28eba7b 14377 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14378 of info struct.
14379
427ec082 14380 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14381 frame_update_line_height.
14382 (merge_faces): Don't use default font if new font has different
14383 size.
14384
14385Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14386
14387 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
14388 unknown. Some fonts have min_width zero.
14389 (draw_glyphs): Don't draw underlines to the end of the display
14390 line if face is merely extended to that point.
14391 (draw_glyphs): Don't assume background is filled if
14392 just_foreground_p but extending to end of line.
14393
14394 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14395 for partially visible last lines.
14396 (x_clip_to_row): Ditto.
14397 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14398 display_height since line_height is really a line distance.
14399 (x_display_and_set_cursor): If cursor on padding glyph, use
14400 min_bounds pixel width.
14401
14402Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14403
14404 * xterm.c (x_clip_to_row): Height value was 1 too large.
14405 (XTclear_end_of_line): Clip to display area.
14406
14407 * xfns.c (x_figure_window_sizes): Add trunc border width
14408 to frame pixel width.
14409
14410 * xdisp.c (next_display_element): Don't display overlay strings
14411 within invisible text.
427ec082 14412 (skip_vertically_backward): Skip display lines.
26901792
DL
14413
14414Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14415
14416 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14417
14418 * xdisp.c (next_display_element): Next invisible
14419 text check position computed differently.
14420
14421 * dispextern.h (struct display_cursor): last_invisible_text_pos
14422 and display_ellipsis_for_invisible_p removed.
14423
14424 * xdisp.c (next_display_element): Set last_invisible_text_pos
14425 to the last position at which invisible text was found. Don't
14426 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14427 dpvec for `...' due to invisible text directly.
26901792
DL
14428 (redisplay_internal): Don't assert that cursor is at PT after
14429 skip_to. It may be in invisible text.
14430
427ec082 14431 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
14432 x_y_to_hpos_vpos.
14433
427ec082 14434 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
14435 next_overlay_pos is reached. Use limit cursor.pos + 100 when
14436 checking for invisible text.
14437
14438 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
14439
14440 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
14441
14442 * xfns.c (x_contour_region): Use pixel coordinates from window
14443 cursor instead of WINDOW_TO_FRAME_H/VPOS.
14444
14445 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
14446 Removed.
14447
14448 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
14449
14450 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
14451 pixel coordinates.
14452 (note_mouse_highlight): Use it.
14453
14454 * xdisp.c (echo_area_display): Ignore calls for terminal frames
14455 under a window system.
14456
427ec082 14457 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 14458 necessary.
427ec082 14459 (update_window_line): Add width of face padding glyph to
26901792
DL
14460 displayed widths of rows.
14461
14462 * xterm.c (x_display_and_set_cursor): Set clipping after
14463 erasing cursor.
427ec082
SS
14464
14465 * window.c (Fset_window_configuration): Free only those
26901792
DL
14466 window matrices not reused.
14467 (get_leaf_windows): Build vector of leaf windows.
14468 Corrupted archive restored from v77.
14469
f28eba7b 14470 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
14471 like display_line does.
14472
14473 * xdisp.c (display_mode_line): Don't hscroll mode line.
14474
14475 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
14476 windows.
14477 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
14478 garbage between mode lines when splitting windows horiz.
14479
14480 * dispnew.c (direct_output_for_insert): Bug fix.
14481
14482 * dispextern.h (struct display_cursor): New member string_length.
14483
14484 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 14485 (init_string_cursor): Take precision and field_width
26901792
DL
14486 (display_string): Use string cursor, skip over invisible text.
14487
14488Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
14489
14490 * xterm.c (x_clip_to_row): Clip to partially visible lines.
14491 (x_display_and_set_cursor): Call it.
14492 (draw_glyphs): Call it
14493 (draw_bitmap): Call it.
14494
427ec082 14495 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
14496 (allocate_leaf_matrix): Return flags.
14497 (row_equal_p): Compare enabled_p.
14498
14499 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
14500 for type == -1.
14501
14502 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 14503 (draw_glyphs): Clip height one pixel taller.
26901792 14504
427ec082 14505 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
14506 mini window.
14507
f28eba7b 14508 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 14509
427ec082
SS
14510 * xdisp.c (echo_area_display): Call update_single_window if
14511 possible.
26901792
DL
14512
14513 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 14514 (scrolling_window): Work on enabled desired lines only.
26901792
DL
14515 (update_single_window): Update a single window like update_frame
14516 does for all windows.
427ec082 14517 (update_window, update_window_tree): Additional argument
26901792
DL
14518 no_scrolling_p.
14519 (update_frame): Pass no_scrolling_p to update_window_tree.
14520 (update_window): Don't call scrolling_window if no_scrolling_p.
14521
14522 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
14523 Erase under hollow cursor.
14524 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
14525 not enabled. Draw bar cursor 1 pixel smaller.
14526
f28eba7b 14527 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
14528 since update will follow soon.
14529
14530 * xdisp.c (echo_area_display): Unitialized variable.
14531
f28eba7b 14532 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
14533 overlay arrow bitmap.
14534
f28eba7b 14535 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 14536 up to the final \n as part of the line for cursor positioning.
26901792 14537
f28eba7b
SM
14538 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
14539 (x_after_update_window_line): Clear trunc marks.
26901792
DL
14540
14541 * xterm.h (FRAME_X_TRUNC_WIDTH).
14542
f28eba7b 14543 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
14544 of a window reserved for truncation mark.
14545
427ec082 14546 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
14547
14548 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 14549 hook.
26901792
DL
14550
14551 * xdisp.c (display_line): Set overlay_arrow_p in row.
14552
14553 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
14554
14555 * xterm.c (x_after_update_window_line): Draw truncation marks.
14556
14557 * xdisp.c (display_line): Insert truncation for lines with
14558 current_x > 0.
14559
14560 * xterm.c (x_draw_row_borders): Convert y to frame coords.
14561 Correct y by 1.
14562 (x_display_cursor): Use default font width if width not
427ec082 14563 known.
26901792 14564
f28eba7b 14565 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
14566
14567 * dispnew.c (set_window_cursor_after_update): Don't assume
14568 all rows are enabled.
14569
14570 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
14571 of cursor.pos.
14572 (skip_in_display_line_to): Check cursor.position after call to
14573 next_display_element.
14574
427ec082 14575 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
14576 buffer position.
14577
14578 * xdisp.c (display_line): Set row->y here.
14579 (skip_in_display_line_to): Test for to_pos after all glyphs
14580 have been added to hpos so that hpos is at the end of all
14581 glyphs for to_pos.
14582 (start_display): Remove assertion.
14583
14584 * dispnew.c (direct_output_forward_char): Bug fix, = instead of
14585 ==.
14586 (update_window): Don't set row->y here.
14587
14588 * xdisp.c (next_display_element): Don't translate control chars
14589 from display table entries.
14590
427ec082 14591 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
14592 update end to prevent cursor flickering. Revert changes to
14593 setting cursor.endpos.
14594
14595Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
14596
14597 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
14598 to PT because this prevents multi-byte characters from being
14599 recognized.
14600
427ec082
SS
14601 * xdisp.c (skip_to, display_line): Advance cursor at end of
14602 truncated line.
26901792
DL
14603
14604 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
14605 replaced by XRectangle.
14606
14607 * dispnew.c (scrolling_window): New method.
14608
14609 * xterm.c (do_line_dance): New implementation, new method.
427ec082 14610
26901792
DL
14611 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
14612 visible part of line.
14613
14614 * dispnew.c (update_window_line): Fill inverse video lines
14615 with infinite width space.
14616 (update_window): Handle completely empty matrices.
14617 (set_window_cursor_after_update): Bug fix.
14618
427ec082 14619 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
14620
14621 * dispnew.c (update_window_line): Don't ignore spaces, don't
14622 fill with spaces.
14623
14624 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
14625 the first glyph having width 0.
14626
14627 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 14628 a glyph that extends to the end of the line.
26901792
DL
14629
14630 * xdisp.c (display_line): Insert one padding glyph
14631
14632 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
14633 amount from info.current_x.
14634 (display_line): Ditto.
14635
14636 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
14637 (change_frame_size_1): Correct cursor.x if frame gets too small.
14638 (update_window_line): Start at row->x.
14639
14640 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
14641 in xdisp.c).
14642
14643 * xterm.c (set_output_cursor): Use window relative X/Y.
14644 (global): Use window relative output cursor x/y.
14645 (draw_glyphs): Remove y param. Pass window relative x/y.
14646
14647 * dispnew.c (update_window): Start rows at start_y.
14648 (update_window): Don't try scrolling because it wouldn't work
14649 with variable height lines, anyway.
14650
14651 * dispextern.h (struct glyph_row): Remove shift_left_by,
14652 add x.
14653
14654 * window.h: (struct window): New member start_y.
14655
14656 * window.c (replace_window): Initialize start_y.
14657 (make_window): Ditto.
14658
14659Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
14660
14661 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 14662 the mode line.
26901792 14663
427ec082
SS
14664 * dispnew.c (update_window): Take mode line border into
14665 account.
26901792
DL
14666
14667 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 14668 of border around mode line.
26901792
DL
14669
14670 * xterm.c (x_draw_row_borders): Bug fix.
14671 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
14672 drawing functions.
14673
14674 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 14675 around modeline instead of inverting it.
26901792 14676
427ec082 14677 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
14678
14679 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
14680 window relative pixel coordinates as arguments.
14681
14682 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
14683 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
14684 COORDS mit new arguments.
14685
14686Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
14687
14688 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 14689 DISPLAY_LINE.
26901792
DL
14690
14691 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
14692 pixel coords.
14693 (make_lispy_movement): Same.
14694
14695 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
14696 with new parameter meaning.
14697
14698 * window.c (Fcoordinates_in_window_p): Convert Lisp params
14699 from canon units to pixels.
14700 (coordinates_in_window): Pixel based.
14701 (Fcoordinates_in_window_p): Convert result pixel values back
14702 to canonical units.
14703
14704 * window.h: phys_cursor_ascent + descent instead of height.
14705
14706 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
14707 chars with charset width 1.
14708
14709 * dispnew.c (direct_output_for_insert): Set updated_row.
14710
14711Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
14712
14713 * dispextern.h (struct glyph): Padding flag removed.
14714
14715Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
14716
14717 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
14718
14719 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
14720
14721 * dispnew.c (update_window_line): Use pixels.
14722
14723 * xdisp.c (compute_line_metrics): Correct pixel_width by
14724 shift_left_by.
14725
14726 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 14727 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
14728 glyph_row -> right_to_left_p. Change references to it.
14729
14730Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
14731
14732 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
14733
14734 * xterm.c (XTinsert_glyphs): Implement it.
14735
14736 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
14737 of a call from DIRECT_OUTPUT_FOR_INSERT.
14738
14739 * window.h (struct cursor_pos): Keeps both matrix positions
14740 and pixel positions.
14741 (struct window): Use it.
14742
14743 * dispnew.c (direct_output_for_insert): New version.
14744
14745 * xdisp.c (redisplay_internal): Don't do anything if it has
14746 already be done directly.
14747
14748 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
14749 for any character.
14750
14751Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
14752
14753 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
14754
14755Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
14756
14757 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
14758 (struct glyph): ASCENT, DESCENT.
14759 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
14760 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
14761
14762 * xterm.c (XTget_display_info): Correct tab computation.
14763
14764 * term.c (get_display_info): Correct tab computation.
14765
14766 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
14767 Renamed from CHAR_CURSOR.
14768
14769Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
14770
14771 * xdisp.c (display_text_line): Mostly pixel oriented.
14772
14773 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
14774
14775 * term.c (append_intermediate_glyph): Generate padding glyphs.
14776
14777 * xdisp.c (display_text_line): More into final direction.
14778
14779 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
14780 (XTget_char_info): Use tabs as multiples of spaces.
14781
14782 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
14783 Use tabs as multiples of spaces.
14784
14785 * dispextern.h (struct char_info ): WHAT field.
14786
14787 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
14788 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
14789
14790Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
14791
14792 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
14793 value.
14794 (init_char_info): Initialize with glyph row.
14795
14796 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
14797
14798 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
14799
14800 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
14801 glyphs.
14802
14803 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
14804 moved to xdisp.c.
14805
14806 * xdisp.c (display_text_line): Use CHAR_CURSOR.
14807
14808 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
14809 generation.
14810 (XTget_char_info): Ditto.
14811
14812 * term.c (get_char_info): Intermediate glyph generation.
14813 (append_intermediate_glyph): Ditto.
14814
14815Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
14816
427ec082 14817 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
14818 CHAR_CURSOR.
14819 (init_char_cursor): Initialize a CHAR_CURSOR.
14820 (get_char_and_advance): Get next character to display.
14821
14822 * dispextern.h (struct char_cursor): Cursor for iterating over
14823 display text of CURRENT_BUFFER.
14824
14825Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
14826
14827 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
14828
14829 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
14830 New member MAX_PIXEL_HEIGHT.
14831
14832 * xterm.c (x_per_char_metric): Get per character metrics.
14833 (XTget_char_info): More cases covered.
14834
14835 * term.c (get_char_and_info): Get next character and character
14836 display information.
14837 (get_char_info): Get character display information.
14838
14839 * dispextern.h: Character display information.
14840
427ec082 14841 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
14842 encode character.
14843 (XTget_char_info): Get display information about a character.
14844
14845Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
14846
14847 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
14848 zero if window is mini-window.
14849
14850 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
14851 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
14852
427ec082 14853 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
14854 (clear_glyph_row): Clear pixel height.
14855 (update_window): Use PIXEL_HEIGHT.
14856
14857 * xdisp.c (display_string): Set row pixel height temporarily.
14858 (display_text_line): Ditto.
14859
427ec082 14860 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
14861 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
14862
427ec082 14863 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
14864 line in default font.
14865 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
14866 in default font.
14867 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
14868
14869 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
14870 in pixels.
14871
14872 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
14873
14874 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
14875 (WINDOW_DISPLAY_PIXEL_HEIGHT):
14876 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
14877 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
14878 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
14879 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
14880 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
14881 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
14882 pixel values related to windows.
14883
14884Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
14885
14886 * xterm.c (XTflash): Flash last line of frame.
14887
14888 * dispextern.h (cursor_in_echo_area): Extern declaration.
14889
14890 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
14891 freezes stem from 16-bit functions.
14892
14893 * xterm.c (x_display_and_set_cursor): Don't display hollow
14894 cursor in mini windows.
14895
14896 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
14897 (make_window): Ditto.
14898
14899 * xterm.c (x_erase_phys_cursor): Erase cursor image.
14900 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
14901 and X_DISPLAY_BAR_CURSOR.
14902 (x_display_cursor): Use it.
14903 (x_update_window_cursor): Use it.
14904
14905 * xdisp.c (display_text_line): Set cursor for window even if not
14906 selected.
14907
14908 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
14909 of X and Y to denote matrix positions.
14910 (x_display_cursor): Ditto.
14911
14912 * dispnew.c (scrolling_window): Scrolling for windows.
14913
14914Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
14915
14916 * dispnew.c (build_frame_matrix): Work on windows with update
14917 flag set.
14918 (build_frame_matrix_from_window_tree): Ditto.
14919 (build_frame_matrix_from_leaf_window): Ditto.
14920
14921 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
14922 building frame matrix.
427ec082 14923 (redisplay_internal): Set window update flags instead of
26901792
DL
14924 building frame matrix.
14925
14926 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
14927 building frame matrix.
14928
14929 * window.c (make_window): Initialize new members.
14930 (replace_window): Ditto.
14931
14932 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
14933 I don't believe this is really necessary.
14934
14935 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 14936 border glyph once.
26901792
DL
14937
14938Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
14939
427ec082 14940 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
14941 window tree off.
14942
427ec082 14943 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
14944 window matrix.
14945 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
14946 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
14947 (x_update_cursor): Work on windows.
14948 (x_display_bar_cursor): Ditto.
14949 (x_draw_single_glyph): Ditto.
14950
14951 * xterm.h: Prototype for X_DISPLAY_CURSOR.
14952
14953 * xterm.c (XTcursor_to): Void return type. Test for
14954 UPDATED_WINDOW. Call x_display_cursor with window.
14955 (x_display_cursor): Void return type. Window instead of frame
14956 parameter.
14957
14958 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions
14959 below.
14960
14961 * window.c (window_rightmost_p, window_topmost_p): Based on
14962 window tree.
14963
14964 * dispnew.c (adjust_frame_message_buffer): Allocate with
14965 FRAME_MESSAGE_BUF_SIZE.
14966
14967 * window.h: PHYS_CURSOR_.* added.
14968
14969 * frame.h (struct frame): Cursor information removed.
14970
14971 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
14972 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
14973
14974 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
14975
14976 * window.c (window_internal_width): Scroll bars no longer
14977 part of window.
14978
14979 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH
14980 removed.
14981
14982 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH
14983 removed.
14984
14985 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
14986 (redisplay_internal): Ditto.
14987 (redisplay_window): Ditto.
14988 (redisplay_window): Ditto.
14989 (display_text_line): Ditto.
14990 (display_mode_line): Ditto.
14991
14992 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
14993
14994 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
14995 (direct_output_for_insert): Ditto.
14996 (direct_output_forward_char): Ditto.
14997 (update_frame_1): Ditto.
14998
14999Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
15000
15001 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
15002 being updated.
15003 (update_window): Set and clear it.
15004
15005 * dispnew.c (update_window_line, update_window, scrolling_window):
15006 First versions.
15007
15008 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
15009 bar for window borders.
15010 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
15011 with spaces.
15012 (fill_up_glyph_row_with_spaces): Call above function.
15013
15014 * xdisp.c (display_text_line): Don't add vertical bar for
15015 window borders.
15016 (display_string): Ditto.
15017
15018 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15019 (replace_window): Ditto.
15020
15021 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15022
15023 * xfns.c (Fx_contour_region): Use selected window cursor position.
15024 (Fx_uncontour_region): Ditto.
15025 (Fx_select_region): Ditto.
15026
15027 * frame.c (make_frame): Remove CURSOR_X/Y.
15028
15029 * xdisp.c (redisplay_internal): Use window cursor position.
15030
15031 * dispnew.c (update_frame_1): Use cursor position of selected
15032 window.
15033 (change_frame_size_1): Ditto.
15034
15035 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15036 (XTwrite_glyphs): Use cursor position of selected window.
15037
15038 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected
15039 window.
15040
15041 * dispnew.c (set_cursor_to): Set window cursor position.
15042 (direct_output_for_insert): Use window cursor position.
15043 (init_display): Don't use frame cursor position.
15044
15045 * window.h: CURSOR_VPOS/HPOS added.
15046
15047 * frame.h (struct frame): CURSOR_X/Y removed.
15048 (FRAME_CURSOR_X): Removed.
15049 (FRAME_CURSOR_Y): Ditto.
15050
15051 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15052 (direct_output_forward_char): Ditto.
15053
15054 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y
15055 removed.
15056
15057 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15058
15059 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15060
15061Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15062
15063 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15064 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15065
15066 * dispextern.h: Changed function names.
15067
15068 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15069 < 2.
15070 (clear_window_matrices): Formerly two functions for desired
15071 and current matrix.
15072 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15073 (update_frame): Return return value from UPDATE_FRAME_1.
15074
15075Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15076
15077 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15078 LAST_TEXT_VPOS.
15079
15080 * frame.c (set_menu_bar_lines): Adjust matrices.
15081
15082 * dispnew.c (set_cursor_to): Set cursor position.
15083
15084 * minibuf.c (read_minibuf): Build frame matrix.
15085
15086 * xdisp.c (this_line_start_hpos): Renamed to
15087 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15088 relative.
15089 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15090 reason.
15091
427ec082 15092 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15093 menu bar.
15094 (clear_window_records): Clear window rows.
15095 (clear_frame_records): Clear window and frame rows.
15096 (clear_glyph_matrix): Set all rows of a matrix to empty.
15097
15098 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P. Update
15099 frame if set.
15100 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15101 removed.
15102 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15103 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15104
15105 * dispnew.c (assign_row): Assign one glyph row to another.
15106 (mirrored_make_current): Use it.
15107 (mirror_make_current): Use it.
15108 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15109 used counters for the current glyph row.
427ec082 15110
26901792
DL
15111
15112Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15113
15114 * lisp.h: Prototype for SCAN_BUFFER.
15115
15116 * xdisp.c (redisplay_windows): Simplified.
15117
15118 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15119 with debug checks.
15120 (window_to_frame_hpos): Convert window to frame hpos with checks.
15121 (frame_to_window_vpos): Convert frame to window vpos with checks.
15122 (frame_to_window_hpos): Convert frame to window hpos with checks.
15123
15124 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15125
15126 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15127
15128 * xdisp.c (redisplay_internal): Another instance of
15129 DISPLAY_TEXT_LINE with window relative VPOS.
15130 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15131
15132 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15133 only.
15134
15135 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15136 (redisplay_internal): Ditto.
15137
15138 * dispnew.c (cancel_window_line): Use window matrix. Changed
15139 name to CANCEL_WINDOW_LINE.
15140
15141 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15142 relative VPOS.
15143
427ec082
SS
15144 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15145 to frame vpos.
26901792
DL
15146 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15147 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15148 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15149
15150 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15151 window relative VPOS.
15152 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15153 relative VPOS.
15154
15155 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15156 MATRIX_BUFFER_POSITIONS.
15157
15158 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15159
15160 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15161
427ec082 15162 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15163 matrix. Change name to scroll_full_width_window.
15164
15165 * xdisp.c (message2_nolog): Don't fwrite NULL message If
15166 NONINTERACTIVE.
15167
15168Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15169
15170 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15171 and window matrices.
26901792
DL
15172 (adjust_window_charstarts): Use window matrix.
15173 (cancel_my_columns): Use window matrix.
15174 (direct_output_for_insert): Use window matrix, only.
15175
15176 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15177 (display_string): Call display_glyphs.
15178 (display_menu_bar_string): Display a string in a menu bar line.
15179 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15180 (display_text_line): Use window matrix.
15181 (try_window): Use window relative positions.
15182
15183Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15184
15185 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
15186 (0, 0).
15187 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
15188 top-most windows.
15189
15190 * window.h (WINDOW_TOPMOST_P): Added.
15191
15192 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15193 (redisplay_window): Ditto.
15194 (display_text_line): Ditto.
15195 (display_menu_bar): Ditto.
15196 (display_mode_line): Ditto.
15197 (display_mode_line): Use window matrix.
15198 (display_string): Use window matrix.
15199 (display_mode_element): Ditto.
15200 (echo_area_display): Don't display if frame has no pools yet.
15201 (echo_area_display): Work with window matrix for mini window.
15202 (redisplay_window): Use window marix for mini window.
15203 (display_text_line): Assume HPOS and VPOS are window relative and
15204 use that for DISPLAY_STRING.
15205
15206 * dispextern.h: Prototype for prepare_desired_row.
15207
15208 * dispnew.c (prepare_desired_row): Replacement for
15209 GET_DISPLAY_LINE.
15210
15211 * dispnew.c (adjust_window_charstarts): Always allocate window
15212 matrices.
15213 (clear_glyph_row): Only reset used counters and flags.
15214
15215Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15216
15217 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15218 line is non-empty.
26901792
DL
15219 (realloc_glyph_pool): Don't add 1 to the pool size.
15220 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15221
15222 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15223 (line_draw_cost): Ditto.
15224 (update_line): Ditto.
15225 (update_line): Use SPACE_GLYPH.
15226 (count_blanks): Additional parameter LEN.
15227
15228 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15229 (display_text_line): Don't add null-glyph end marker.
15230 (display_string): Use SPACE_GLYPH.
15231 (display_string): Don't use null-glyph end marker.
15232
15233 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15234
15235 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15236 (fill_up_glyph_row_with_spaces): Ditto.
15237 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15238 rows, instead of null-glyphs.
15239 (direct_output_for_insert): Don't add null-glyph end marker.
15240
15241 * scroll.c (do_direct_scrolling): Change algorithm to construct
15242 vector of lines assigned. Call MIRRORED_LINE_DANCE:
15243 (do_scrolling): Ditto.
15244
15245 * dispnew.c (mirror_line_dance): Mirror line assignments in a
15246 frame matrix in window matrices.
15247 (mirrored_line_dance): Do line assignments during scrolling.
15248 Maybe do corresponding assignments in window matrices.
15249 (check_window_matrix_pointers): Check that window rows and frame
15250 rows agree about glyph pointers.
15251 (check_matrix_pointers): Ditto.
15252 (mirrored_make_current): Make a row of a desired matrix current;
15253 maybe mirror the operation in window matrices.
15254 (mirror_make_current): Make window desired matrix row current when
15255 frame matrix row was made current.
15256
15257Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15258
15259 * dispnew.c (check_matrix_pointer_lossage): Check against
15260 pointer lossage in matrices.
15261 (get_glyph_matrix_row): Removed.
15262
15263 * scroll.c (do_scrolling): Simplified.
15264 (do_direct_scrolling): Simplified.
15265 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
15266 DO_.*SCROLLING.
427ec082 15267
26901792
DL
15268
15269 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15270 (rotate_vector): Removed.
15271 (rotate_pointers): Removed.
15272 (scroll_frame_lines): Simplified.
15273
15274Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15275
15276 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15277
15278 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15279 what the name says.
15280 (clear_glyph_row): Make a glyph row structure empty.
15281 (make_matrix_row_current): Make a glyph row current.
15282 (make_window_matrix_row_current): Perform analogous row swaps
15283 for window matrices.
15284 (update_line): Call make_matrix_row_current.
15285
15286Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15287
15288 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15289 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15290 INVERSE_P.
15291 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15292 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15293
15294 * all files: use above new names.
15295
15296 * dispnew.c (scroll_frame_lines): Simplified. Use
15297 SCROLL_GLYPH_MATRIX.
15298 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15299 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15300 buffer positions in a glyph row.
15301 (increment_glyph_matrix_buffer_positions): Increment buffer
15302 positions in a range of rows.
15303 (scroll_glyph_matrix): Scroll a glyph matrix.
15304 (swap_glyphs_in_rows): Swap glyphs between rows.
15305 (swap_glyph_pointers): Swap pointers between rows.
15306 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15307 (init_display): Initialize SPACE_GLYPH.
15308 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15309 spaces.
26901792
DL
15310
15311Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15312
15313 * xterm.c (dumprectangle): Use vectors in glyph rows.
15314
15315 * xdisp.c (display_text_line): Use vectors in glyph rows.
15316 (display_string): Ditto.
15317
15318 * scroll.c (do_scrolling): Use vectors in glyph rows.
15319 (do_direct_scrolling): Ditto.
15320
15321 * alloc.c (mark_object): Use vectors in glyph rows.
15322 Mark for all frame types.
15323
15324 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15325 glyph rows.
15326 (get_glyph_matrix_row): Ditto.
15327 (matrix_row): Ditto.
15328 (rotate_pointers): Ditto.
15329 (scroll_frame_lines): Ditto.
15330 (preserve_other_columns): Ditto.
15331 (cancel_my_columns): Ditto.
15332 (update_line): Ditto.
15333 (direct_output_for_insert): Ditto.
15334
15335 * dispextern.h (struct glyph_row): Use a vector of pointers
15336 instead of individual members. Use a vector of used counters.
15337 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15338 (MATRIX_ROW_GLYPH_START): Ditto.
15339 (MATRIX_ROW_GLYPH_END): Ditto.
15340 (MATRIX_ROW_USED): Ditto.
15341 (MATRIX_ROW_SET_USED): Ditto.
15342
15343 * dispnew.c (line_hash_code): Simplified.
15344
15345Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15346
15347 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15348 CHANGE_FRAME_SIZE_1
15349 (preserve_other_columns): Void return.
15350 (cancel_my_columns): Void return type.
15351 (scrolling): Int return type.
15352 (do_pending_window_change): Void return type.
15353 (change_frame_size): Ditto.
15354 (bitch_at_user): Ditto.
15355 (init_display): Ditto.
15356 (syms_of_display): Ditto.
15357
15358 * dispextern.h: add prototypes for REDRAW_FRAME,
15359 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15360 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15361 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15362 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15363 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15364 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
15365 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15366
26901792
DL
15367 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
15368 void.
15369 (cancel_line): Return void.
15370 (clear_frame_records): Return void.
427ec082 15371
26901792
DL
15372 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15373 (SET_CHAR_GLYPH): Fill a character glyph.
15374 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15375 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15376 glyph.
26901792
DL
15377 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15378 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15379 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15380 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15381 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15382 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15383 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15384 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15385 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15386
15387 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15388
15389 * window.h (struct window): Add comment that no Lisp data may
15390 come below CURRENT_MATRIX.
15391
15392 * alloc.c (mark_object): Change window mark code to stop with
15393 member CURRENT_MATRIX.
15394
15395Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15396
15397 * scroll.c (do_scrolling): Change algorithm to use pointers.
15398 (do_direct_scrolling): Ditto.
15399
15400 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15401 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15402 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15403 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
15404 Returns 1 if pool changed.
15405 (matrix_row): Additional check for lost pointers to glyph rows.
15406 (compute_matrices): Additional parameter DIM_P set means that no
15407 allocation should take place. Addtional parameter
15408 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
15409 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
15410 when window matrix changes. Additional parameter DIM_ONLY_P set
15411 to 1 to indicate that no allocation should take place.
15412 (adjust_frame_glyphs): Construct new glyph pools and glyph
15413 matrices. Optimize frame redraws.
15414 (free_glyphs): Free pools.
15415 (check_glyph_memory): Check pools not freed.
15416 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15417 (scroll_frame_lines): Change algorithm to use pointers.
15418 (update_line): Ditto.
15419
15420 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15421 (global): All macro names changed from prefix FRAME_MATRIX to
15422 MATRIX.
15423
15424Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15425
15426 * dispextern.h (struct glyph_pool): Replacement for former
15427 FRAME_GLYPH_MATRIX.
15428 (struct glyph_matrix): No longer contains sizes of allocated
15429 areas.
15430
15431 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15432 no glyph pools.
15433
15434 * frame.c (make_frame): Initialize pools.
15435
15436Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
15437
427ec082 15438 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
15439 line moving algorithm has no intermediate steps.
15440 (do_scrolling): Ditto.
15441
15442 * Makefile.in (alloc.o): Add dependency dispextern.h.
15443
15444 * alloc.c: Include dispextern.h for glyph definitions.
15445
15446 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
15447 is legal, return 0 otherwise.
15448
15449 * window.h: Add comment that windows are marked specially.
15450
15451 * alloc.c (mark_object): Mark windows specially.
15452
15453
15454Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
15455
15456 * dispextern.h (struct glyph): Add member OBJECT
15457 referencing a Lisp object from which a glyph was drawn.
15458 Member TEXT_POSITION renamed POSITION.
15459 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
15460
15461 * alloc.c: Include dispextern.h
15462 (mark_object): Mark objects referenced from glyphs.
15463
f28eba7b 15464 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
15465
15466 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
15467 (do_scrolling): Ditto.
15468
427ec082 15469 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
15470 DECODE_MODE_SPEC_BUFFER added.
15471
15472 * window.h: TEMP_MATRIX removed.
15473
15474 * scroll.c: OPHYS_LINES removed.
15475
15476 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
15477 FRAME_PTR -> struct frame *.
15478
15479 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
15480 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15481
15482 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
15483 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15484
15485 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
15486 (do_verify_charstarts): Removed.
15487
15488 * frame.c (Fmake_terminal_frame): Adjust glyphs.
15489 (Fdelete_frame): Free glyphs.
15490 (make_frame): Initialize matrix fields in frame.
15491
f28eba7b 15492 * config.in (PROTO): Added.
26901792 15493
f28eba7b 15494 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
15495
15496 * window.c (Fdelete_window): Free window matrices.
15497 (Fset_window_configuration): Ditto.
15498 (Fdelete_window): Adjust glyphs.
15499 (Fsplit_window): Ditto.
15500 (change_window_height): Ditto.
15501 (Fset_window_configuration): Ditto.
15502 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
15503 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
15504
15505 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
15506
15507 * window.c: Include dispextern.h
15508
15509 * scroll.c (do_scrolling): Use new glyphs.
15510 (do_direct_scrolling): Ditto.
15511
15512 * xdisp.c: Some function prototypes.
15513 (redisplay_internal): Don't do anything if matrices not yet set.
15514 (redisplay_internal): Use new glyphs.
15515 (try_window_id): Ditto.
15516 (copy_part_of_rope): Ditto.
15517 (display_text_line): Ditto.
15518 (display_menu_bar): Ditto.
15519 (display_mode_line): Ditto.
15520 (display_string): Ditto.
15521
15522 * xterm.c: Prototypes for some local functions.
15523 (dumpglyphs): Use new glyphs.
15524 (XTwrite_glyphs): Ditto.
15525 (dumprectangle): Ditto.
15526 (note_mouse_highlight): Ditto.
15527 (fast_find_position): Ditto.
15528 (show_mouse_face): Ditto.
15529 (x_draw_single_glyph): Ditto.
15530 (x_display_bar_cursor): Ditto.
15531 (x_display_box_cursor): Ditto.
15532 (x_new_font): Adjust glyphs when font change.
15533
15534 * term.c (clear_end_of_line): Use new glyphs.
15535 (write_glyphs): Ditto.
15536 (insert_glyphs): Ditto.
15537
15538 * Makefile.in (term.o): term.c depends on dispextern.h
15539
15540 * term.c: Include dispextern.h
15541
15542 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 15543 removed, new inserted.
26901792
DL
15544 (line_hash_code): Use new glyphs.
15545 (line_draw_cost): Ditto
15546 (cancel_line): Ditto
15547 (clear_frame_records): Ditto.
15548 (init_desired_glyphs): Ditto.
15549 (get_display_line): Ditto
15550 (scroll_frame_lines): Ditto.
15551 (preserve_other_columns): Ditto.
15552 (adjust_window_charstarts): Ditto.
15553 (cancel_my_columns): Ditto.
15554 (direct_output_for_insert): Ditto.
15555 (update_frame): Ditto.
15556 (quit_error_check): Made empty.
15557 (scrolling): Use new glyphs.
15558 (count_blanks): Ditto.
15559 (count_match): Ditto.
15560 (update_line): Ditto.
15561 (init_display): Adjust glyphs initially.
15562 (change_frame_size_1): Adjust glyphs.
15563
15564 * dispextern.h: Old glyphs removed, new added.
15565
15566 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
15567
15568 * xterm.h: Prototype for min_char_bounds.
15569
15570 * window.h (struct window): Remove old glyphs, add new.
15571
15572 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 15573
26901792
DL
155741999-07-20 Dave Love <fx@gnu.org>
15575
15576 * buffer.c (syms_of_buffer): Make
15577 default-enable-multibyte-characters a user variable.
15578
155791999-07-14 Richard Stallman <rms@gnu.org>
15580
15581 * Version 20.4 released.
15582
155831999-07-14 Richard Stallman <rms@gnu.org>
15584
15585 * filelock.c (lock_file): Do nothing if purifying.
15586
155871999-07-10 Richard Stallman <rms@gnu.org>
15588
15589 * xterm.c (x_display_bar_cursor): Use the cursor-color
15590 to display the bar, not the cursor foreground pixel.
15591
155921999-07-09 Andrew Innes <andrewi@gnu.org>
15593
15594 * w32console.c (w32_use_full_screen_buffer): New variable.
15595 (syms_of_ntterm): Register it.
15596 (initialize_w32_display): Set initial frame size accordingly,
15597 respecting the LINES and COLUMNS environment variables if set.
15598
15599 * w32inevt.c (w32_console_read_socket): Use it.
15600
156011999-07-07 Kenichi Handa <handa@etl.go.jp>
15602
15603 * callproc.c (Fcall_process): Decide coding system for decoding
15604 after we set to the target buffer. If the output goes to a
15605 unibyte buffer, suppress character code conversion.
15606
15607 * fileio.c (Finsert_file_contents): If reading into a unibyte
15608 buffer, suppress character code conversion.
15609
15610 * process.c (create_process): If the output goes to a unibyte
15611 buffer, suppress character code conversion.p
15612
156131999-07-07 Andreas Schwab <schwab@gnu.org>
15614
15615 * xdisp.c (line-number-display-limit): Doc fix.
15616
156171999-07-05 Richard Stallman <rms@gnu.org>
15618
15619 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
15620 (Fcall_process_region): Likewise.
15621
156221999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
15623
15624 * callproc.c (init_callproc): Set exec_directory if
15625 installation_directory is non-nil, without a test of exec_path.
15626
156271999-07-01 Andrew Innes <andrewi@gnu.org>
15628
15629 * w32xfns.c (drain_message_queue): New function.
15630
15631 * w32term.h (drain_message_queue): Add extern.
15632
15633 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
15634 of WaitForMultipleObjects when user input is allowed, so we can
15635 handle incoming window messages. Call drain_message_queue when
15636 there are messages waiting; this ensures that windows created
15637 indirectly from the lisp thread get processed properly, and don't
15638 hang other applications by failing to respond to broadcasts.
15639
156401999-07-01 Andreas Schwab <schwab@gnu.org>
15641
15642 * callint.c (Fcall_interactively): Ignore first element of
15643 event-symbol-elements property.
15644
156451999-07-01 Richard Stallman <rms@gnu.org>
15646
15647 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
15648
156491999-07-01 Kenichi Handa <handa@etl.go.jp>
15650
15651 * minibuf.c (read_minibuf): Set the multibyteness of the
15652 minibuffer before inserting `initial' string.
15653
156541999-06-30 Richard Stallman <rms@gnu.org>
15655
15656 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
15657
156581999-06-29 Richard M. Stallman <rms@gnu.org>
15659
15660 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
15661 Move the handling of MALLOC_CHECK_ envvar here.
15662 (main): Moved from here.
15663
156641999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
15665
15666 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
15667 function, assigned to the global __malloc_initialize_hook pointer.
15668 (main): Move malloc_set_state call into malloc_initialize_hook
15669 so that it happens as early as possible.
15670
156711999-06-27 Richard M. Stallman <rms@gnu.org>
15672
15673 * keyboard.c (read_key_sequence): Properly reinitialize
15674 fkey_map after translating thru Vkey_translation_map.
15675 After translating thru Vfunction_key_map, don't reset
15676 keytrans-start to 0.
15677
156781999-06-24 Geoff Voelker <voelker@cs.washington.edu>
15679
15680 * w32.c (get_emacs_configuration): Use GetVersionEx to
15681 handle NT5.0 correctly. Include build number in configuration.
15682 w32heap.c (osinfo_cache): New variable.
15683 (cache_system_info): Initialize osinfo_cache.
15684 w32heap.h (osinfo_cache): Declare.
15685
156861999-06-24 Richard M. Stallman <rms@gnu.org>
15687
15688 * casefiddle.c (casify_object): Use make_multibyte_string
15689 if we casify a multibyte string.
15690
156911999-06-22 Ken'ichi Handa <handa@gnu.org>
15692
15693 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
15694 del_range_byte instead of del_range_1, set `inserted' to the
15695 number of characters actually inserted.
15696
156971999-06-17 Dave Love <fx@gnu.org>
15698
15699 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
15700
157011999-06-18 Paul Eggert <eggert@twinsun.com>
15702
15703 * filelock.c (BOOT_TIME_FILE): New macro.
15704 (get_boot_time): Use it instead of hardwiring the file name.
15705 Check BOOT_TIME_FILE only after inspecting the kernel directly.
15706
157071999-06-17 Dave Love <fx@gnu.org>
15708
15709 * xdisp.c (invalid_eol_type): Make it unsigned.
15710
157111999-06-17 Karl Heuer <kwzh@gnu.org>
15712
15713 * process.c (send_process): Delete unsafe/redundant assignment.
15714
157151999-06-17 Jason Rumney <jasonr@gnu.org>
15716
15717 * w32term.c (dumprectangle): Handle wide characters properly.
15718
157191999-06-16 Andrew Innes <andrewi@gnu.org>
15720
15721 * s/ms-w32.h (strerror): Override the default implementation of
15722 strerror, so we can map winsock error codes.
15723
15724 * w32.c (sys_strerror): New function.
15725
15726 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
15727
157281999-06-15 Ken'ichi Handa <handa@gnu.org>
15729
15730 * buffer.c (syms_of_buffer): Don't make
15731 enable-multibyte-characters customizable.
15732
157331999-06-15 Richard M. Stallman <rms@gnu.org>
15734
15735 * editfns.c (Fuser_full_name): Doc fix.
15736
157371999-06-14 Tak Ota <ota@atc.sel.sony.com>
15738
15739 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
15740 (get_bitmap_with_cache): Check if CreateBitmap failed.
15741 Adjust cache size dynamically so cache is never larger than the
15742 system limit of GDI resources.
15743 Do cache clearing inline. Move global variables to local scope.
15744
15745
157461999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
15747
15748 * unexsgi.c (unexec): Dump the .rodata section from memory
15749 under IRIX6.5 in order to be able to unexec with gcc.
15750
157511999-06-11 Greg Hudson <ghudson@MIT.EDU>
15752
15753 * indent.c (compute_motion): Fix boundary case.
15754
157551999-06-11 Jason Rumney <jasonr@altavista.net>
15756
15757 * w32term.c (cancel_mouse_face): New function. See equiv
15758 changes to xterm.c on 1996-10-31.
15759 (x_set_window_size): Use cancel_mouse_face.
15760 (w32_read_socket): Use cancel_mouse_face.
15761 Update frame position when size is restored.
15762
157631999-06-04 Richard M. Stallman <rms@gnu.org>
15764
15765 * lread.c (Vuser_init_file): New variable.
15766 (syms_of_lread): Set up Lisp variable.
15767 (Fload): Store the file name there, if var was t before.
15768
157691999-06-04 Paul Eggert <eggert@twinsun.com>
15770
15771 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
15772 doesn't work if the system date is changed, or if the system
15773 is suspended. Look at the last-modified time of
15774 /var/run/random-seed instead.
15775
157761999-06-03 Ken'ichi Handa <handa@gnu.org>
15777
15778 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15779 japanese-jisx0208-1978 correctly.
15780
157811999-06-03 Andrew Innes <andrewi@gnu.org>
15782
15783 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
15784 as possible to be dumped, for safety.
15785
157861999-06-02 Ken'ichi Handa <handa@gnu.org>
15787
15788 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15789 latin-jisx0201 correctly.
15790
157911999-05-26 Ken'ichi Handa <handa@gnu.org>
15792
15793 * charset.h (Vcharset_table): Comment fixed.
15794
157951999-05-24 Richard Stallman <rms@gnu.org>
15796
15797 * coding.c (syms_of_coding): Doc fix.
15798
15799 * buffer.c (syms_of_buffer): Doc fix.
15800
15801 * filelock.c (lock_if_free): After deleting a stale lock,
15802 try again to lock the file.
15803
158041999-05-22 Andrew Innes <andrewi@gnu.org>
15805
15806 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
15807 console window size.
15808 (w32_console_read_socket): Call maybe_generate_resize_event
15809 whenever input events are received, since we don't get told when
15810 the window size changes (as opposed to the buffer size, which we
15811 don't care about).
15812
15813 * w32console.c (clear_frame): Remember that the window width might
15814 be smaller than the screen buffer width.
15815 (write_glyphs): Remove redundant variable attrs. Use
15816 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
15817
158181999-05-20 Andrew Innes <andrewi@gnu.org>
15819
15820 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
15821 loses focus.
15822
15823 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
15824 frame loses focus, and that mouse button state is reset. Ditto
15825 when the menu bar is activated.
15826
158271999-05-18 Richard Stallman <rms@gnu.org>
15828
15829 * abbrev.c (Fdefine_abbrev): Doc fix.
15830
158311999-05-13 Paul Eggert <eggert@twinsun.com>
15832
15833 * filelock.c: Fix performance bug on hosts with large
15834 /var/adm/wtmp files with no boot records.
15835
15836 (boot_time_initialized): New var.
15837 (init_filelock): Initialize it.
15838 (get_boot_time): Use it, instead of nonzero boot_time,
15839 to test whether boot_time is initialized.
15840 Don't invoke utmp routines when dumping.
15841
15842 (get_boot_time): First, try to get the boot time from the
15843 current utmp file, as this can be much faster. Don't try to
15844 get the boot time from utmp and/or wtmp more than once.
15845
15846 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
15847 New arg LATEST. All uses changed.
15848
158491999-05-15 Andrew Innes <andrewi@gnu.org>
15850
15851 * w32term.c (dumpglyphs): Use correct colours for drawing
15852 rectangles in place of missing fonts, and make them the right
15853 size.
15854
158551999-05-14 Dave Love <fx@gnu.org>
15856
15857 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
15858 non-nil.
15859
158601999-05-11 Andrew Innes <andrewi@gnu.org>
15861
15862 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
15863 definition.
15864 (w32_wnd_proc): Reinstall debugging output.
15865 (w32_wnd_proc): Reinstall SetForegroundWindow change.
15866 (syms_of_w32fns): Reinstall new initializer for
15867 Vw32_phantom_key_code.
15868
15869 * w32fns.c (x_to_w32_charset): Do partial matching of charset
15870 names for most non-European charsets, to cope with wildcards or
15871 missing spec dates.
15872 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
15873 to avoid deadlock when activating the menu bar.
15874
158751999-05-10 Ken'ichi Handa <handa@gnu.org>
15876
15877 * search.c (boyer_moore): Get charset base value of `untranslated'
15878 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
15879
158801999-05-10 Andreas Schwab <schwab@gnu.org>
15881
15882 * fileio.c (Fread_file_name): Correct handling of dollars in file
15883 names. Protect dollars in strings put on the file-name-history.
15884 Substitute homedir by `~' also in default_filename.
15885
15886 * xdisp.c (try_window_id): Fix computation of tab_offset when
15887 backing up over a character that is splitted across lines.
15888
158891999-05-08 Kenichi HANDA <handa@etl.go.jp>
15890
15891 * coding.c (code_convert_region): If eol format is inconsistent,
15892 change coding->symbol to the sibling coding system of Unix like
15893 eol format.
15894
158951999-05-09 Richard M. Stallman <rms@gnu.org>
15896
15897 * s/irix5-2.h (NO_WTMP_FILE): Define it.
15898
15899 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
15900
159011999-05-05 Andrew Innes <andrewi@gnu.org>
15902
15903 * w32fns.c (w32_strict_painting): New variable.
15904 (w32_wnd_proc): Use it to select repaint rules.
15905 (syms_of_w32fns): Defvar it.
15906
159071999-05-04 Andrew Innes <andrewi@gnu.org>
15908
15909 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
15910 charsets to the standard Windows charset for Japanese.
15911
159121999-05-04 Ken'ichi Handa <handa@gnu.org>
15913
15914 * xterm.c (x_load_font): Fix typo (`>' -> `=').
15915
15916 * ccl.h (struct ccl_program): New member stack_idx.
15917
15918 * ccl.c (ccl_prog_stack_struct): Declare it as static.
15919 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
15920 before returing.
15921 (setup_ccl_program): Initialize ccl->stack_idx to 0.
15922
159231999-05-03 Jason Rumney <jasonr@altavista.net>
15924
15925 * w32term.c (dumpglyphs): Always fill background for italic fonts.
15926
159271999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
15928
15929 * dired.c (make_time): Make argument type be time_t.
15930
159311999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
15932
15933 * msdos.c (unibyte_display_via_language_environment): Add extern.
15934
83c8f461 159351999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
15936
15937 * xdisp.c (display_text_line): Convert unibyte char to multibyte
15938 if unibyte_display_via_language_environment is set.
15939 (unibyte_display_via_language_environment):
15940 Variable moved from xfns.c and elsewhere.
15941 (syms_of_xfns): Set up Lisp var.
15942
15943 * xfns.c (unibyte_display_via_language_environment):
15944 Variable moved to xdisp.c.
15945 (syms_of_xfns): Don't set up Lisp var here.
15946
15947 * msdos.c (unibyte_display_via_language_environment):
15948 Variable moved to xdisp.c.
15949 (syms_of_msdos): Don't set up Lisp var here.
15950
15951 * w32fns.c (unibyte_display_via_language_environment):
15952 Variable moved to xdisp.c.
15953 (syms_of_w32fns): Don't set up Lisp var here.
15954
159551999-05-02 Andrew Innes <andrewi@gnu.org>
15956
15957 * s/ms-w32.h (HAVE_FSYNC): New macro.
15958 (fsync): Map to _commit.
15959 (ftruncate): Map to _chsize.
15960
15961 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
15962 for ASCII, if enabled, to avoid memory allocation overhead for
15963 implicit Unicode conversion. Also, recognize that ASCII and
15964 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
15965 already contains the Unicode characters in that case.
15966 (construct_drag_n_drop): Remove old code that was
15967 trashing the drop location.
15968
15969 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
15970 nlines to encoding_buffer_size (real bug was in a ccl program in
15971 lisp/international/coding.el).
15972
15973 * w32reg.c (w32_get_string_resource): Check for name in current
15974 user area, and if not found look in the local machine area.
15975
15976 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
15977 (Fw32_shell_execute): New function; used to support browse-url.
15978 (syms_of_w32fns): Register it.
15979 (w32_load_system_font): Force max width to be average
15980 char width for fixed-pitch fonts, to avoid unnecessary redisplay
15981 slowdown.
15982 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
15983 already defined.
15984 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
15985
15986 * unexw32.c (get_section_info): Dump back the entire EMDATA
15987 section if we can put Emacs' initialized data in a separate
15988 section, otherwise use the my_begdata/my_edata method.
15989
15990 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
15991
15992 * coding.c (decode_eol): Set produced/consumed values to zero if
15993 src_bytes is <= 0 on entry.
15994
159951999-05-02 Jason Rumney <jasonr@altavista.net>
15996
15997 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
15998 w32_clear_frame, clear_cursor, x_display_bar_cursor,
15999 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
16000 field in frame.
16001 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
16002 (dumprectangle): Take into account the width of a left-side
16003 scroll bar.
16004
16005 * w32proc.c (sys_kill): Attach to current foreground thread
16006 when grabbing focus; necessary on NT 5.0.
16007
16008 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
16009 GetUpdateRect rather than BeginPaint.
16010 (w32_wnd_proc): Attach to current foreground thread
16011 when grabbing focus; necessary on NT 5.0.
16012 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
16013 debugging display messages.
16014 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16015 false matching.
16016
160171999-05-02 Kenichi HANDA <handa@etl.go.jp>
16018
16019 * coding.c (setup_raw_text_coding_system): Call
16020 setup_coding_system to initialize the fields of struct
16021 coding_system correctly.
427ec082 16022
26901792
DL
160231999-04-26 Kenichi HANDA <handa@etl.go.jp>
16024
16025 * xterm.c (x_list_fonts): Fix previous change.
16026
160271999-04-26 Richard Stallman <rms@gnu.org>
16028
16029 * config.in (HAVE_LIBXP): Add #undef.
16030 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16031
160321999-04-12 Ken'ichi Handa <handa@gnu.org>
16033
16034 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16035 by them.
16036
160371999-04-12 Karl Heuer <kwzh@gnu.org>
16038
16039 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16040
160411999-04-11 Ken'ichi Handa <handa@gnu.org>
16042
16043 * fontset.c (Fset_fontset_font): Fix previous change.
16044
160451999-04-09 Ken'ichi Handa <handa@gnu.org>
16046
16047 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16048 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16049
160501999-04-08 Richard Stallman <rms@gnu.org>
16051
16052 * process.c (Faccept_process_output): Check validity of PROCESS.
16053
160541999-04-08 Eli Zaretskii <eliz@gnu.org>
16055
16056 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16057
160581999-04-07 Richard Stallman <rms@gnu.org>
16059
16060 * xfns.c (x_set_font): Fix error message.
16061
16062 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16063 (Fnew_fontset, Fset_fontset_font): Check for them here.
16064 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16065 Fix error message syntax.
16066
16067 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16068 from the base buffer.
16069 (Fset_buffer_multibyte): Copy new multibyte status
16070 into the buffer's indirect buffers.
16071
160721999-04-07 Ken'ichi Handa <handa@gnu.org>
16073
16074 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16075 tail.
16076
160771999-04-06 Richard Stallman <rms@gnu.org>
16078
16079 * dired.c (Ffile_attributes): Doc fix.
16080
16081 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16082 Convert 0200 to meta only in a unibyte string.
16083 (Fkey_description): Likewise.
16084
16085 * eval.c (do_autoload): Preserve match data.
16086
160871999-04-06 Kenichi HANDA <handa@etl.go.jp>
16088
16089 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16090 encode_coding to avoid carryover.
16091
16092 * coding.c: Add comments for decode_coding and encode_coding.
16093
16094 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16095 a composite character by skipping its leading code.
16096 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16097 correctly.
16098
16099 * coding.c: Add comments for decode_coding and encode_coding.
16100
16101 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16102 a composite character by skipping its leading code.
16103 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16104 correctly.
16105
161061999-04-06 Eli Zaretskii <eliz@gnu.org>
16107
16108 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16109 table was used.
16110 (jp_kbd_translate_table): Support C-\.
16111 (it_kbd_translate_table): Map `>' correctly.
16112 (it_keyboard): Add `>'.
16113
161141999-04-06 Richard Stallman <rms@gnu.org>
16115
16116 * intervals.c (graft_intervals_into_buffer): Turn off
16117 inhibit_modification_hooks around calling Fset_text_properties.
16118
161191999-04-05 Kenichi HANDA <handa@etl.go.jp>
16120
16121 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16122 glyphs.
16123
161241999-04-05 Eli Zaretskii <eliz@gnu.org>
16125
16126 * msdos.c (jp_kbd_translate_table): Fix last change.
16127
161281999-04-04 Eli Zaretskii <eliz@gnu.org>
16129
16130 * msdos.c (struct kbd_translate): New struct, for key translation
16131 tables private to certain national keyboard layouts.
16132 (struct dos_keyboard_map): Add a pointer to a private translation
16133 table.
16134 (jp_kbd_translate_table): Private table for the Japanese
16135 keyboard.
16136 (jp_keyboard): Japanese keyboard layout.
16137 (it_kbd_translate_table): Private table for the Italian keyboard.
16138 (it_keyboard): Use it_kbd_translate_table.
16139 (keyboard_layout_list): Add the Japanese keyboard.
16140 (dos_rawgetc): Use the keyboard-private translation table, if
16141 available.
16142 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16143
161441999-04-02 Kenichi HANDA <handa@etl.go.jp>
16145
16146 * xdisp.c (redisplay_window): When we call compute_motion with
16147 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16148 (display_text_line): Stop the loop for processing overlay strings
16149 when we reach the right edge of the window.
16150
83c8f461 161511999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16152
16153 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16154 let the data control whether string is unibyte.
16155
161561999-03-30 Richard M. Stallman <rms@gnu.org>
16157
16158 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16159 (pop_kbd_macro): Restore the saved real_this_command.
16160 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16161
161621999-03-26 Richard M. Stallman <rms@gnu.org>
16163
16164 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16165 if buffer-file-name is nil.
16166
161671999-03-25 Jason Rumney <jasonr@altavista.net>
16168
16169 * w32select.c (Fw32_set_clipboard_data): Take into account line
16170 ends when calculating clipboard storage needed for non-ASCII text.
16171
161721999-03-25 Andrew Innes <andrewi@gnu.org>
16173
16174 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16175 (epaths.h): Renamed from paths.h.
427ec082
SS
16176 (clean):
16177 ($(BLD)\filelock.obj):
16178 ($(BLD)\lread.obj):
26901792
DL
16179 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16180
161811999-03-23 Ken'ichi Handa <handa@gnu.org>
16182
16183 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16184 ENCODE_ISO_CHARACTER for the previous change on this macro.
16185
161861999-03-23 Kenichi Handa <handa@etl.go.jp>
16187
16188 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16189 eoltype correctly for backward compatibility.
16190
161911999-03-20 Kenichi HANDA <handa@etl.go.jp>
16192
16193 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16194 invalid, produce the buffer internal byte sequence without encoding.
16195
161961999-03-19 Karl Heuer <kwzh@gnu.org>
16197
16198 * editfns.c (Fformat): Accept %i format.
16199
162001999-03-17 Karl Heuer <kwzh@gnu.org>
16201
16202 * filelock.c (get_boot_time): Test tempname, not filename.
16203
162041999-03-17 Jason Rumney <jasonr@altavista.net>
16205
e5619f6b
JR
16206 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16207 speed display.
16208
16209 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16210 speed display.
16211 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16212 New functions.
16213 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16214 Use bitmap cache.
26901792
DL
16215
16216 * w32fns.c (enum_font_cb2): Set the font height to be the
16217 character height, not the cell height.
16218 (Fw32_select_font): Initialize font dialog with current default font.
16219 (Vw32_system_coding_system): New variable.
16220 (w32_strict_filenames): Add comment.
16221 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16222 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16223 (syms_of_w32fns): Add w32-system-coding-system.
16224
162251999-03-15 Richard M. Stallman <rms@gnu.org>
16226
16227 * xterm.c (XTread_socket) <ConfigureNotify>:
16228 If cursor pos is outside the new frame size, mark cursor as off.
16229
162301999-03-14 Ken'ichi Handa <handa@gnu.org>
16231
16232 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16233
16234 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16235 by them.
16236
162371999-03-14 Richard M. Stallman <rms@gnu.org>
16238
16239 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16240 at beginning.
16241
162421999-03-14 Jason Rumney <jasonr@altavista.net>
16243
16244 * w32fns.c (w32_strict_fontnames): New variable.
16245 (Fx_create_frame): Formatting fix.
16246 (w32_load_system_font): Keep trying to load non-existant font
16247 if w32_strict_fontnames is nil. Formatting fix.
16248 (syms_of_w32fns): Add w32-strict-fontnames.
16249
16250 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16251 (dumpglyphs): Formatting fixes.
16252
162531999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16254
16255 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16256
162571999-03-10 Karl Heuer <kwzh@gnu.org>
16258
16259 * puresize.h (BASE_PURESIZE): Increase to 505000.
16260
162611999-03-09 Richard M. Stallman <rms@gnu.org>
16262
16263 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16264
16265 * filelock.c (init_filelock): New function.
16266
162671999-03-09 Dave Love <fx@gnu.org>
16268
16269 * fileio.c (Ffile_directory_p): Doc fix.
16270
83c8f461 162711999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16272
16273 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16274
162751999-03-08 Richard M. Stallman <rms@gnu.org>
16276
16277 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16278 to only the part that uses get_boot_time_1.
16279
162801999-03-07 Dave Love <fx@gnu.org>
16281
16282 * fileio.c (Finsert_file_contents): Use xfree.
16283
162841999-03-06 Kenichi Handa <handa@etl.go.jp>
16285
16286 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16287 term.o, xselect.o): Depend on ccl.h.
16288
162891999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16290
16291 * makefile.nt: Remove common multiple file compilation commands.
16292
162931999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16294
16295 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16296 newlines added when the arg NO-LINE-BREAK is nil.
16297
162981999-03-04 Karl Heuer <kwzh@gnu.org>
16299
16300 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16301
16302 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16303
163041999-03-04 Dave Love <fx@gnu.org>
16305
16306 * term.c (term_init): Use xmalloc, not malloc.
16307
16308 * callproc.c (Fcall_process): Use xmalloc, xfree.
16309
163101999-03-03 Andreas Schwab <schwab@gnu.org>
16311
16312 * eval.c (Fdefconst): Doc fix.
16313
163141999-03-01 Kenichi Handa <handa@etl.go.jp>
16315
16316 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16317
163181999-03-01 Eli Zaretskii <eliz@gnu.org>
16319
16320 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16321
163221999-02-28 Richard M. Stallman <rms@gnu.org>
16323
16324 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16325
16326 * cmds.c (internal_self_insert): Calculate column properly
16327 in overwrite-of-tab case.
16328
163291999-02-27 Andreas Schwab <schwab@gnu.org>
16330
16331 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16332 malloc in glibc 2.1.
16333
163341999-02-26 Richard Stallman <rms@gnu.org>
16335
16336 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16337
16338 * epaths.in: Renamed from paths.in.
16339 This avoids a conflict with a system header file paths.h on GNU/Linux.
16340
16341 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16342 Use epaths.h istead of paths.h.
16343
163441999-02-26 Andreas Schwab <schwab@gnu.org>
16345
16346 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16347 malloc.
16348
163491999-02-25 Dave Love <fx@gnu.org>
16350
16351 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16352
163531999-02-25 Richard Stallman <rms@gnu.org>
16354
16355 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16356 (WTMP_FILE): Default definition in case not defined.
16357 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16358
26901792
DL
163591999-02-25 Ken'ichi Handa <handa@gnu.org>
16360
16361 * keymap.c (push_key_description): If enable-multibyte-characters
16362 is nil and C is single byte, push C as is.
16363
163641999-02-24 Kenichi Handa <handa@etl.go.jp>
16365
16366 * keymap.c (push_key_description): If enable-multibyte-characters
16367 is non-nil, try to convert unibyte character to multibyte. For
16368 invalid multibyte character, show all bits by octal form.
16369 (Fsingle_key_description): Check the validity of charset for a
16370 generic character.
16371
163721999-02-23 Richard M. Stallman <rms@gnu.org>
16373
16374 * fileio.c (Ffile_regular_p): Undo previous change.
16375
16376 * eval.c (Fdefconst): Doc fix.
16377
16378 * filelock.c (get_boot_time): Don't use BUFSIZ.
16379
163801999-02-22 Andrew Innes <andrewi@gnu.org>
16381
16382 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16383 (EXTRA_LINK): Do version test with strings.
16384
163851999-02-22 Andreas Schwab <schwab@gnu.org>
16386
16387 * fns.c (Fbase64_encode_string): Fix last change.
16388
16389 * termhooks.h (event_kind): Add user_signal.
16390
16391 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16392 (syms_of_keyboard): Initialize them.
16393 (lispy_user_signals): New variable.
16394 (make_lispy_event): Handle user_signal event type.
16395
16396 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16397 (syms_of_emacs): Don't initialize them.
16398 (handle_USR1_signal, handle_USR2_signal): Set event type to
16399 user_signal instead of non_ascii_keystroke, and use plain integers
16400 as code instead of Lisp symbols.
16401
164021999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16403
16404 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16405
164061999-02-21 Richard Stallman <rms@gnu.org>
16407
16408 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16409
16410 * print.c (print_error_message): Don't crash if (cdr data)
16411 is not a list.
16412
164131999-02-21 Eli Zaretskii <eliz@gnu.org>
16414
16415 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16416
164171999-02-20 Andrew Innes <andrewi@gnu.org>
16418
16419 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16420 run, since size can vary from run to run.
16421
16422 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16423 data is included, to enable profiling.
16424 ($(EMACS)): Map file not needed for emacs.exe.
16425
16426 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16427 as malloc before calling uninterrupt_malloc, for consistency.
16428 This also enables profiling to work on WINDOWSNT.
16429
164301999-02-18 Richard Stallman <rms@gnu.org>
16431
16432 * Makefile.in (emacs.o): Depend on termhooks.h.
16433 (filelock.o): Depend on systime.h.
16434
164351999-02-18 Ken'ichi Handa <handa@gnu.org>
16436
16437 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
16438 (Fdecode_big5_char): Likewise.
16439
164401999-02-17 Richard Stallman <rms@gnu.org>
16441
16442 * insdel.c (adjust_markers_for_replace): When doing an insertion
16443 (replacing a region of zero length), handle markers at the
16444 insertion point properly.
16445
164461999-02-17 Andrew Innes <andrewi@gnu.org>
16447
16448 * w32fns.c (Vw32_quit_key): New variable.
16449 (post_character_message): Use it.
16450 (syms_of_w32fns): DEFVAR it.
16451
164521999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
16453
16454 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
16455
164561999-02-16 Richard Stallman <rms@gnu.org>
16457
16458 * filelock.c (within_one_second): New function.
16459 (current_lock_owner): Use that.
16460 (get_boot_time): Use /proc/uptime if available.
16461 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
16462 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 16463
26901792
DL
164641999-02-16 Richard Stallman <rms@gnu.org>
16465
16466 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16467 (syms_of_emacs): Init and staticpro them.
16468 (handle_USR1_signal): Don't run any code, just queue up an event.
16469 (handle_USR2_signal): Likewise.
16470
164711999-02-16 Eli Zaretskii <eliz@gnu.org>
16472
16473 * dired.c (Ffile_attributes): If the file's size doesn't fit in
16474 an integer, return it as a float. Doc string fixed.
16475
164761999-02-16 Richard Stallman <rms@gnu.org>
16477
16478 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16479 (syms_of_emacs): Init and staticpro them.
16480 (handle_USR1_signal): Don't run any code, just queue up an event.
16481 (handle_USR2_signal): Likewise.
16482
164831999-02-15 Kenichi Handa <handa@etl.go.jp>
16484
16485 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
16486 ASCII correctly. Signal error on invalid characters.
16487 (Fdecode_big5_char, Fencode_big5_char): Likewise.
16488
164891999-02-15 Eli Zaretskii <eliz@gnu.org>
16490
16491 * w16select.c (get_clipboard_data): Work around a bug in Windows95
16492 DOS box which doubles the reported size of text in the clipboard.
16493
164941999-02-15 Kenichi Handa <handa@etl.go.jp>
16495
16496 * coding.c (decode_coding_iso2022): Don't set
16497 coding->composed_chars to 0 here.
16498 (setup_coding_system): Set coding->composed_chars to 0 here.
16499
165001999-02-10 Richard Stallman <rms@gnu.org>
16501
16502 * fileio.c (Ffile_regular_p): Use lstat.
16503
165041999-02-09 Richard Stallman <rms@gnu.org>
16505
16506 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
16507 (unexec): Test this instead of specific systems.
16508
16509 * m/macppc.h: New file.
16510
165111999-02-08 Dave Love <fx@gnu.org>
16512
16513 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
16514
165151999-02-08 Ken'ichi Handa <handa@gnu.org>
16516
16517 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
16518 should be set to coding->produced.
16519
165201999-02-07 Paul Fisher <rao@gnu.org>
16521
16522 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
16523 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
16524
165251999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16526
16527 * editfns.c (Fformat): Doc fix.
16528
165291999-02-06 Richard Stallman <rms@gnu.org>
16530
16531 * process.c (syms_of_process): defsubr it.
16532 (Fprocess_running_child_p): New function.
16533
165341999-02-05 Andrew Innes <andrewi@gnu.org>
16535
16536 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
16537 recording drop position.
16538
165391999-02-05 Ken'ichi Handa <handa@gnu.org>
16540
16541 * coding.c (encode_coding_iso2022): Before writing out an invalid
16542 code, reset graphic planes and registers if necessary.
16543
16544 * term.c (encode_terminal_code): Fix previous change.
16545
165461999-02-04 Eli Zaretskii <eliz@gnu.org>
16547
16548 * w16select.c (last_clipboard_text, clipboard_storage_size): New
16549 static variables.
16550 (set_clipboard_data): Save a copy of the text we put into
16551 clipboard in last_clipboard_text.
16552 (get_clipboard_data): If the clipboard text is identical to what
16553 last_clipboard_text holds, pretend there's no data in the clipboard.
16554
165551999-02-03 Richard Stallman <rms@gnu.org>
16556
16557 * s/gnu.h (NLIST_STRUCT): Add #undef.
16558
165591999-02-03 Eli Zaretskii <eliz@gnu.org>
16560
16561 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
16562 encoded, set its pointer and size as returned by encode_coding.
16563
165641999-02-02 Ken'ichi Handa <handa@gnu.org>
16565
16566 * fns.c (Fset_char_table_default): To handle the case that CH is
16567 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
16568
165691999-02-02 Andrew Innes <andrewi@gnu.org>
16570
16571 * w32fns.c (syms_of_w32fns): Change default value of
16572 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
16573 some mice works properly.
16574
165751999-02-02 Eli Zaretskii <eliz@gnu.org>
16576
16577 * w16select.c (set_clipboard_data): Correctly null-terminate the
16578 string to be put into the Windows clipboard. Use xbuf_addr.
16579
165801999-02-01 Richard Stallman <rms@gnu.org>
16581
16582 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
16583
165841999-01-31 Richard Stallman <rms@gnu.org>
16585
16586 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
16587 then don't send the signal if the shell owns the terminal.
16588 (Finterrupt_process): Doc change.
427ec082 16589
26901792
DL
165901999-01-31 Andrew Innes <andrewi@gnu.org>
16591
16592 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
16593 (copy_executable_and_dump_data): Use it to ensure alignment slop
16594 is zeroed.
16595
165961999-01-30 Andrew Innes <andrewi@gnu.org>
16597
16598 * w32.c (init_environment): Change argv[0] to contain the full
16599 path to Emacs.
16600
16601 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
16602
166031999-01-29 Ken'ichi Handa <handa@gnu.org>
16604
16605 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
16606 returned by x_new_font (the resolved one) but use the font name
16607 set in the fontset specification.
16608 (x_load_font): For the height of font, if normarl ascent and
16609 descent value are larger than those in max_bounds field, use the
16610 former.
16611
166121999-01-28 Eli Zaretskii <eliz@gnu.org>
16613
16614 * xdisp.c (decode_mode_spec_coding): Fix previous change.
16615
166161999-01-27 Geoff Voelker <voelker@cs.washington.edu>
16617
16618 * makefile.nt: Use full path to temacs.exe when dumping.
16619
166201999-01-27 Jason Rumney <jasonr@altavista.net>
16621
16622 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
16623 list was reliable.
16624 (enum_fontex_cb1, enum_fontex_cb2): New functions.
16625 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
16626 (w32_list_synthesized_fonts): New function.
16627 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
16628 available instead of EnumFontFamilies. List synthesized fonts if
16629 Vw32_enable_italics is non-nil.
427ec082 16630
26901792
DL
166311999-01-27 Richard Stallman <rms@gnu.org>
16632
16633 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
16634 Don't complain if ttcompat does not exist.
16635
16636 * w32fns.c (x_set_frame_parameters): gcpro as needed.
16637
166381999-01-27 Andrew Innes <andrewi@gnu.org>
16639
16640 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
16641 the lwindow, rwindow and apps keys could not be used as function
16642 keys, because they were being passed to TranslateMessage which
16643 ignores them. Also, key was being changed to SPC.
16644
16645 * makefile.nt: Do make version comparison as strings.
16646
166471999-01-27 Eli Zaretskii <eliz@gnu.org>
16648
16649 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
16650 strings, not characters.
16651
16652 * coding.h: Likewise.
16653
16654 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
16655 string.
16656
166571999-01-26 Dave Love <fx@gnu.org>
16658
16659 * emacs.c (main): Up-date copyright.
16660
166611999-01-25 Dave Love <fx@gnu.org>
16662
16663 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16664
166651999-01-25 Andreas Schwab <schwab@gnu.org>
16666
16667 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
16668
166691999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
16670
16671 * xfns.c (x_set_frame_parameters): gcpro as needed.
16672
16673 * window.c (Fset_window_point): If WINDOW is selected but the
16674 current buffer is not its buffer, don't use Fgoto_char.
16675
166761999-01-22 Richard M. Stallman <rms@gnu.org>
16677
16678 * syntax.c (scan_sexps_forward): Delete duplicate code
16679 to set prev_from_syntax, above start of main loop.
16680 At startinstring, check syntax when checking for a match.
16681
166821999-01-22 Jason Rumney <jasonr@altavista.net>
16683
16684 * w32bdf.c: New file.
16685 * w32bdf.h: New file.
16686 * makefile.nt: Add w32bdf.c and w32bdf.h.
16687
16688 * w32gui.h: Include w32bdf.h.
16689 (W32FontStruct) Add bdf element.
16690
16691 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
16692 Support BDF fonts.
16693
16694 * w32term.c (W32_TEXTOUT): New macro.
16695 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
16696 Simplify baseline calculation. Detect SJIS by font, not glyph.
16697 Call SetTextAlign.
16698 (syms_of_w32term): Remove "jisx0212-sjis" from
16699 w32-charset-to-codepage-alist.
16700 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
16701 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 16702
26901792
DL
16703 * w32fns.c (Vw32_bdf_filename_alist): New variable.
16704 (x_destroy_bitmap): Returns void not int.
16705 (x_set_border_pixel): Returns void.
16706 (w32_load_bdf_font): New function.
16707 (w32_load_system_font): New function, was w32_load_font. List
16708 fonts before loading. Explicitly set encoding for SJIS fonts.
16709 Set default_ascent to 0 as comment indicates.
16710 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
16711 (w32_unload_font): Support BDF fonts.
16712 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
16713 Autodetect whether to use koi8-r instead of iso8859-5.
16714 Associate "ksc5601.1987" with HANGUEL_CHARSET.
16715 Associate "ksc5601.1992" with JOHAB_CHARSET.
16716 (x_to_w32_charset): Make consistent with w32_to_x_charset.
16717 (w32_to_x_font): Add resolution.
16718 (x_to_w32_font): Use font resolution to calculate height if supplied.
16719 (w32_font_match): Handle wildcards anywhere within field.
16720 (enumfont_t): Remove unused head pointer.
16721 (enum_font_cb2): Dereference elfLogFont.
16722 (w32_list_bdf_fonts): New function.
16723 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
16724 valid frame. Remove MessageBox. Support BDF fonts.
16725 (Fw32_find_bdf_fonts): New function.
16726 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
16727 Sw32_find_bdf_fonts.
16728
167291999-01-21 Andrew Innes <andrewi@gnu.org>
16730
16731 * makefile.nt (temacs): Use del to delete file, not rm.
16732
167331999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
16734
16735 * keyboard.c (read_key_sequence): Fix previous change.
16736
16737 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
16738 as the same. Treat "myname:0" as the same as those two.
16739
167401999-01-19 Jason Rumney <jasonr@altavista.net>
16741
16742 * w32fns.c (x_to_w32_charset): Add iso8859-9.
16743 (w32_to_x_charset): Fix charset mappings.
16744
16745 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
16746 (dumpglyphs): Move definitions out of block containing goto.
16747 Remove redundant code for BIG5.
16748 Use w32_codepage_for_font instead of
16749 w32_codepage_for_charset. Add cast to int where float
16750 operation is assigned to int.
16751 (Vw32_charset_to_codepage_alist): New variable.
16752 (w32_codepage_for_charset): Removed.
427ec082
SS
16753 (w32_codepage_for_font): New function, replacing
16754 w32_codepage_for_charset.
26901792
DL
16755 (syms_of_w32term): Add and initialize
16756 w32-charset-to-codepage-alist.
16757
167581999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
16759
16760 * xselect.c (x_handle_selection_clear): Don't clear the
16761 selection if Emacs still owns it through a different display.
16762
167631999-01-17 Andrew Innes <andrewi@gnu.org>
16764
16765 * w32proc.c: (w32_executable_type): Relax the check to identify
16766 cygwin-compiled applications, because the exact dll name varies
16767 with release. Now only require the name to start "cygwin".
16768
16769 * w32heap.h: (ROUND_UP):
16770 (ROUND_DOWN): New macros.
16771 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16772 (init_heap): New extern.
16773 (data_region_size):
16774 (recreate_heap):
16775 (read_in_bss):
16776 (map_in_heap):
16777 (round_to_next):
16778 (w32_fatal_reload_error):
16779 (get_section_size): Obsolete externs removed.
16780
16781 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
16782 current process.
16783 (round_to_next): Obsolete function removed.
16784 (preload_heap_section): New variable.
16785 (data_region_size): Obsolete variable removed.
16786 (allocate_heap): Modified to determine end of static heap section
16787 used during preload, and use that as initial base address for
16788 dynamic heap instead of hard-coded value.
16789 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
16790 calls to commit or decommit pages when allocating from static heap
16791 section during preload.
16792 (recreate_heap): Obsolete function removed.
16793 (init_heap): New function to initialize internal sbrk heap
16794 variables. Uses static heap section during preload, otherwise
16795 calls allocate_heap to reserve a heap region dynamically.
16796 (round_heap): Use ROUND_UP macro instead of round_to_next.
16797
16798 * unexw32.c: Major rewrite to support cleaner method of dumping; a
16799 static "bss" section is used for heap space during preload, and
16800 bss data is now written to the proper section area when dumping.
16801 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16802 (heap_index_in_executable): Obsolete variable removed.
16803 (data_section): New variable.
16804 (data_start_va): Renamed to data_start.
16805 (data_start_file): Obsolete variable removed.
16806 (bss_section):
16807 (extra_bss_size):
16808 (bss_section_static):
16809 (bss_start_static):
16810 (bss_size_static):
16811 (extra_bss_size_static):
16812 (heap_section): New variables.
16813 (_start): Remove code based on old unexec method. Call init_heap
16814 to initialize sbrk heap.
16815 (close_file_data): Update size of file when closing, so that
16816 unexec doesn't have to work out exact size in advance.
16817 (get_bss_info_from_map_file):
16818 (get_section_size): Obsolete functions removed.
16819 (rva_to_section): Fix minor bug, and add a work-around for a bug
16820 in very old linkers.
16821 (offset_to_section):
16822 (relocate_offset): New functions.
16823 (OFFSET_TO_RVA):
16824 (RVA_TO_OFFSET):
16825 (RVA_TO_SECTION_OFFSET):
16826 (PTR_TO_RVA):
16827 (PTR_TO_OFFSET):
16828 (OFFSET_TO_PTR): New macros.
16829 (get_section_info): Modify to support new unexec method;
16830 determines address ranges in process that need dumping, and COFF
16831 sections where data will be dumped. Allows for static and global
16832 bss data to be in separate ranges. No longer relies on knowledge
16833 of section names.
16834 (copy_executable_and_dump_data_section): Renamed
16835 copy_executable_and_dump_data. Completely rewritten to copy
16836 executable section by section, so that raw data areas can be
16837 expanded to hold dumped data as necessary. Allows for bss data to
16838 be in same section as initialized data. Reduces size of static
16839 heap section to that used during preload.
16840 (dump_bss_and_heap):
16841 (w32_fatal_reload_error):
16842 (read_in_bss):
16843 (map_in_heap): Obsolete functions removed.
16844 (unexec): Rounds off preload heap to nearest page rather than
16845 virtual allocation unit. Modified to match other changes.
16846
16847 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
16848 data_region_size.
16849
16850 * makefile.nt: (TEMACS_TMP): New macro.
16851 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
16852 processor to add static heap section in support of new unexec.
16853
16854 * lastfile.c: Include config.h to pick up data layout pragmas.
16855 [WINDOWSNT]: Remove explicit pragma.
16856
168571999-01-12 Kenichi Handa <handa@etl.go.jp>
16858
16859 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
16860 correctly.
16861 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
16862
168631999-01-11 Dave Love <fx@gnu.org>
16864
16865 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16866
168671999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
16868
16869 * keyboard.c (read_key_sequence): In key-translation-map and
16870 function-key-map, handle symbol with array as fn def.
16871 In function-key-map, handle symbol with keymap as fn def,
16872 and autoloaded definitions.
427ec082 16873
26901792
DL
16874 * puresize.h (BASE_PURESIZE): Increment to 500000.
16875
16876 * print.c (Qtemp_buffer_setup_hook): New variable.
16877 (syms_of_print): Init and staticpro that.
16878 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
16879
168801999-01-11 Kenichi Handa <handa@etl.go.jp>
16881
16882 * insdel.c (del_range_1): Call signal_after_change.
16883 (del_range_byte): Likewise.
16884 (del_range_both): Likewise.
16885 (del_range_2): Don't call signal_after_change.
16886
16887 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
16888 Lisp code here.
16889
168901999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
16891
16892 * eval.c (find_handler_clause): If SIG is nil (memory full error),
16893 never run the debugger, and don't bother checking the args
16894 to see whether the debugger should be run.
16895
168961999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
16897
16898 * keyboard.c (read_key_sequence):
16899 Tell get_keyelt to look handle autoloads.
16900 Handle symbols defined as keymaps, and autoloaded keymaps.
16901
169021999-01-06 Kenichi Handa <handa@etl.go.jp>
16903
16904 * search.c (search_buffer): Fix previous change.
16905
169061999-01-06 Eli Zaretskii <eliz@gnu.org>
16907
16908 * w16select.c (set_clipboard_data): Terminate the text with a null
16909 character. Don't allow to put binary data into the clipboard.
16910 Return zero in case of success, 1 or 2 otherwise.
16911 (get_clipboard_data): Only bail out if the null character is in
16912 the last 32-byte chunk of clipboard data
16913 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
16914 they save binary data, print a message in the echo area saying the
16915 text was not put into the clipboard.
16916
16917 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
16918
169191999-01-06 Andreas Schwab <schwab@gnu.org>
16920
16921 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
16922 _BSD_SOURCE, the latter is always defined.
16923
169241999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
16925
16926 * fns.c (Frequire): Don't fail to unbind bindings.
16927
169281999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
16929
16930 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
16931
16932 * charset.c (Ffind_charset_region): Fix doc typo.
16933
169341998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
16935
16936 * msdos.c (IT_write_glyphs): Convert unibyte characters to
16937 multibyte in unibyte buffers only.
16938
16939 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
16940 and pass it to Fmake_sparse_keymap.
16941
169421998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
16943
16944 * alloc.c (MMAP_MAX_AREAS): New macro.
16945 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
16946 (init_alloc_once): Use that.
16947
16948 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
16949
16950 * alloc.c (lisp_malloc, lisp_free): New functions.
16951 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
16952 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
16953 (n_interval_blocks, n_float_blocks): New variable.
16954 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
16955 (n_marker_blocks, n_string_blocks): New variable.
16956 (init_intervals, make_interval): Set a count variable.
16957 Use lisp_malloc instead of setting allocating_for_lisp.
16958 (init_float, make_float, init_cons, Fcons): Likewise.
16959 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
16960 (init_marker, allocate_misc, init_strings): Likewise.
16961 (make_uninit_multibyte_string): Likewise.
16962 (gc_sweep, compact_strings): Decrement the count variables.
16963
16964 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
16965 into the old_..._hook variables.
16966
169671998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
16968
16969 * keyboard.c: In each active map, for each menu bar item, use only
16970 the first submap.
16971 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
16972 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
16973 (syms_of_keyboard): Staticpro and init it.
16974
427ec082 16975 * xmenu.c (single_keymap_panes):
26901792
DL
16976
169771998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
16978
16979 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
16980 by complete_deferred_msg.
16981 (post_character_message): Cancel all deferred messages when
16982 quit_char is typed, in order to break out of potential deadlocks.
16983 (cancel_all_deferred_msgs): New function.
16984 (complete_deferred_msg): Don't abort if msg not found; may have
16985 been cancelled.
16986 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
16987 (Fw32_send_sys_command): Wait for system command to
16988 complete before returning.
427ec082 16989
26901792
DL
16990 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
16991 not set async_iconified flag though.
16992
16993 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
16994 (create_child): Use it.
16995 (syms_of_ntproc): Defvar it. Also fix docstrings for
16996 w32-start-process-share-console and w32-start-process-show-window.
16997
16998 * unexw32.c (_start): Force system calls accessing unmounted
16999 devices to fail without prompting.
17000
170011998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
17002
17003 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
17004 even when starting the dumped Emacs.
17005
17006 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
17007 (Fkey_description): Handle lists like vectors.
17008
170091998-12-21 Kenichi Handa <handa@etl.go.jp>
17010
17011 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
17012 because of the change of the second argument of Fread_char.
17013
17014 * charset.c (Fcharset_after): Check range. If POS is out of
17015 range, return nil.
17016
17017 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17018
17019 * lread.c (Fread_char): Change the meaning of the second argument.
17020 (Fread_event): Likewise.
17021 (Fread_char_exclusive): Likewise.
17022
17023 * print.c (printchar): Fix previous change.
17024
17025 * process.c (read_process_output): Decide the multibyteness of
17026 string given to a process filter by a coding system used for
17027 decoding the process output.
17028
170291998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17030
17031 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17032 nonascii-translation-table.
17033 * msdos.c (IT_write_glyphs): Likewise.
17034 * fns.c (concat): Likewise.
17035 * charset.c (unibyte_char_to_multibyte): Likewise.
17036 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17037
170381998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17039
17040 * doc.c (Fdocumentation): Change the doc string for prefix
17041 commands to make it a complete sentence in one line.
17042
170431998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17044
17045 * s/irix6-5.h: New file.
17046 * s/irix6-0.h (IRIX6): Define this symbol.
17047 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17048 (bcopy, bcmp, bzero): Likewise.
17049 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17050 (C_SWITCH_MACHINE): New value for irix6.5.
17051
170521998-12-15 Richard Stallman <rms@gnu.org>
17053
17054 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17055 Do free malloc'd memory even in case of failure. Use xfree, not free.
17056 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17057 (base64_decode_1): Don't fail for short lines.
17058
17059 * print.c (printchar): Outputting multibyte characters
17060 to echo area always makes it multibyte.
17061
17062 * search.c (search_buffer): Don't use Boyer-Moore
17063 to search for an invalid multibyte code.
17064 In unibyte case, no need to check whether there are translations
17065 in more than one charset; just set charset_base to 0.
17066
170671998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17068
17069 * print.c (printchar): Cancel previous change.
17070
170711998-12-15 Kenichi Handa <handa@etl.go.jp>
17072
17073 * callproc.c: Include "ccl.h".
17074 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17075 bit in argument_coding.mode to tell encoding procedure to flush
17076 data. While encoding arguments, if argument_coding uses CCL
17077 program, initialize it again after encoding.
17078 (Fcall_process_region): Doc-string modified. Handle the case that
17079 NARGS is 3.
17080
17081 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17082 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17083 Set `ic' to the head of this command.
17084 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17085 code for an invalid code.
17086 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17087 based on VEC.
17088
17089 * charset.c (Qunknown): New variable.
17090 (init_charset_once): Intern and staticpro Qunknown. Initialize
17091 all elements of Vcharset_symbol_table to Qunknown.
17092 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17093 unibyte characters only. For an invalid composition sequence, set
17094 CHARSETS[1] to 1.
17095 (Ffind_charset_region): Call find_charset_in_str with an
17096 appropriate MULTIBYTE arg. If undefined charsets are found,
17097 include `unknown' is the return value.
17098 (Ffind_charset_string): Likewise.
17099 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17100 (str_cmpchar_id): Max composite character code should be less than
17101 GENERIC_COMPOSITION_CHAR.
17102
17103 * charset.h (find_charset_in_str): Update declaration.
17104
17105 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17106 final_char is invalid.
17107 (decode_coding): If coding->type is coding_type_ccl, call
17108 ccl_coding_driver even if SRC_BYTES is zero.
17109 (code_convert_region): Update `inserted' correctly after calling
17110 coding->post_read_conversion. Even after the code converter
17111 consumed all source text, call it once more if it is
17112 coding_type_ccl to flush out data.
17113
17114 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17115 CODING is handled by CCL program, call code_convert_region.
17116
17117 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17118 correctly.
17119 (string_byte_to_char): Likesize.
17120
17121 * print.c (printchar): When outputting a multibyte character to
17122 echo area, always set message_enable_multibyte to 1.
17123
17124 * process.c (read_process_output): If NBYTES is zero and
17125 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17126 and try decoding again.
17127 (Fprocess_send_eof): If the coding system of PROCESS
17128 requires flushing, call send_process with null-string at first.
17129
17130 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17131 with MULTIBYTE arg 0.
17132 * w32select.c (Fw32_set_clipboard_data): Likewise.
17133 * xselect.c (lisp_data_to_selection_data): Likewise.
17134
171351998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17136
17137 * search.c (Freplace_match): Set OPOINT clearly for the case
17138 where point is in the middle of the text to be replaced.
17139
17140 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17141 if compute_motion fails to advance at all, don't back it up.
17142
171431998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17144
17145 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17146
427ec082 17147 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17148
171491998-12-09 Richard Stallman <rms@gnu.org>
17150
17151 * insdel.c (insert_from_buffer_1): Properly count the size
17152 of output from conversion to multibyte even when input
17153 is split across the gap.
17154
171551998-12-09 Karl Heuer <kwzh@gnu.org>
17156
17157 * keyboard.c: Doc fixes.
17158
17159 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17160
171611998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17162
17163 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17164 characters, only convert CRLF to LF.
17165
171661998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17167
17168 * makefile.nt: Do string comparision of _NMAKE_VER.
17169
171701998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17171
17172 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17173 coding.h, and disptab.h
17174
17175 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17176 (syms_of_msdos): DEFVAR_LISP it.
17177 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17178 (internal_terminal_init): Set up insert_glyphs_hook and
17179 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17180 (unibyte_display_via_language_environment): New variable.
17181 (syms_of_msdos): Devfar it.
17182 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17183 Encode the character codes of the glyphs according to the
17184 terminal_coding in effect.
17185
171861998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17187
17188 * fns.c (Fstring_as_unibyte): Doc fix.
17189
171901998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17191
17192 * charset.h: Declare char_valid_p.
17193
171941998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17195
17196 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17197
17198 * msdos.c (init_environment): Record the time we started up.
17199 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17200 fast after startup (aka crash).
17201
172021998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17203
17204 * w32.c (check_windows_init_file): Use decode_env_path when
17205 using EMACSLOADPATH.
17206
172071998-12-02 Jason Rumney <jasonr@altavista.net>
17208
17209 * w32term.c (dumpglyphs): Use unsigned char arrays.
17210 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17211 for various languages.
17212 Compensate for fonts that have underhangs (e.g., Thai).
17213
17214 * w32term.h (FONT_MAX_WIDTH): New macro.
17215
172161998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17217
17218 * keyboard.c (Qlanguage_change): New variable.
17219 (syms_of_keyboard): Init it.
17220 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17221 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17222 keys; add name for Escape key; extend to 256 elements.
17223 (parse_modifiers): Make non-static.
17224
17225 * keyboard.h (parse_modifiers): Declare prototype.
17226
17227 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17228
17229 * w32fns.c (w32_last_error): Fix cut+paste error.
17230 (Vw32_phantom_key_code): New variable.
17231 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17232 (syms_of_w32fns): Init and register them.
17233 (reset_modifiers): Use a more precise test for whether Emacs has
17234 keyboard focus. Synchronize state of all keys that can be used as
17235 modifiers, to overcome problems arising from hot-keys.
17236 (w32_key_to_modifier): Be careful not to call intern() to avoid
17237 requiring thread synchronization.
17238 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17239 (w32_wnd_proc): Ensure lock key indicator lights are updated
17240 promptly on Windows 9x, by passing key events on to the system.
17241 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17242 responding to Windows key events when not wanted.
17243 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17244 Ctrl-NumLock into pause by the system.
17245 (w32_wnd_proc): Don't translate key combinations containing any
17246 modifiers other than shift (and capslock).
17247 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17248 can't determine the key states until we have keyboard focus).
17249 (Fw32_toggle_lock_key): New function.
17250 (syms_of_w32fns): Defsubr it.
17251
17252 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17253 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17254 (w32_console_toggle_lock_key): New function.
17255
17256 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17257
172581998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17259
17260 * search.c (Freplace_match): Set OPOINT clearly for the case
17261 where point is in the middle of the text to be replaced.
17262
17263 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17264 if compute_motion fails to advance at all, don't back it up.
17265
172661998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17267
17268 * xfns.c (Qouter_window_id): New variable.
17269 (syms_of_xfns): Initialize it.
17270 (x_report_frame_params): Set up outer-window-id parameter.
17271
17272 * keymap.c (Fsingle_key_description): Fix previous change.
17273
172741998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17275
17276 * lisp.h (Frequire): Update declaration.
17277
172781998-11-26 Kenichi Handa <handa@etl.go.jp>
17279
17280 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17281 if the charset is ascii.
17282 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17283
17284 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17285 make an appropriate one byte string.
17286 (char_bytes): Handle the case that C is a single byte char or has
17287 modifier bits.
17288
17289 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17290
17291 * cmds.c (internal_self_insert): If C has modifier bits, insert
17292 appropriate one byte char.
17293
172941998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17295
17296 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17297 Clear text properties in the new string.
17298
172991998-11-24 Felix Lee <flee@cygnus.com>
17300
17301 * process.c (read_process_output): Call signal_after_change.
17302
173031998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17304
17305 * buffer.c (syms_of_buffer): Doc fix.
17306
17307 * keyboard.c (syms_of_keyboard): Doc fix.
17308
173091998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17310
17311 * frame.c (Fset_mouse_position): Doc fix.
17312
173131998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17314
17315 * keymap.c (Fmake_keymap): Doc fix.
17316
173171998-11-17 Kenichi Handa <handa@etl.go.jp>
17318
17319 * category.c (word_boundary_p): If C1 or C2 are composite
17320 characters, test their first components.
17321
173221998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17323
17324 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17325 don't do save-excursion, just restore selected window.
17326
17327 * window.c (window_loop): For UNSHOW_BUFFER,
17328 always do consider minibuffer windows.
427ec082 17329
26901792
DL
173301998-11-16 Kenichi Handa <handa@etl.go.jp>
17331
17332 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17333
17334 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17335
17336 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17337
17338 * s/bsdos4.h: New file.
17339
173401998-11-16 Kenichi Handa <handa@etl.go.jp>
17341
17342 * Makefile.in (abbrev.o): Depend on charset.h
17343 (bytecode.o): Depend on charset.h.
17344
17345 * bytecode.c: Include charset.h.
17346
17347 * abbrev.c: Include charset.h.
17348
17349 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17350 the first component.
17351
173521998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17353
17354 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17355
173561998-11-11 Richard Stallman <rms@gnu.org>
17357
17358 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17359
17360 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17361
17362 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17363 (INTERRUPT_INPUT): #define commented out.
17364
17365 * m/aviion-intel.h: New file.
17366
173671998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17368
17369 * fns.c (MAX_ALLOCA): New macro.
17370 (Fbase64_encode_region, Fbase64_encode_string,
17371 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17372 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17373
173741998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17375
17376 * insdel.c (byte_combining_error): Error message improved.
17377
17378 * charset.c (char_valid_p): Handle a composite character correctly.
17379
173801998-11-11 Kenichi Handa <handa@etl.go.jp>
17381
17382 * charset.c (str_cmpchar_id): Check the byte sequence for
17383 composition more rigidly.
17384 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17385 contains an invalid multibyte sequence.
17386
17387 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17388
173891998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17390
17391 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17392 (WM_EMACS_SETKEYBOARDLAYOUT):
17393 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17394 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17395 (LEFT_WIN_PRESSED):
17396 (RIGHT_WIN_PRESSED):
26901792
DL
17397 (APPS_PRESSED): New console keyboard modifier flags.
17398
17399 * w32term.c (convert_to_key_event): Removed.
17400 (is_dead_key): Copied to w32fns.c.
17401 (w32_read_socket): Generate language_change_event. Modify to work
17402 with keyboard handling changes in w32_wnd_proc.
17403
17404 * w32proc.c (sys_kill): Set extended key flag when faking
17405 Ctrl-Break keystrokes.
17406 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17407 arbitrary locale property using a numerical index.
17408 (Vw32_valid_codepages): New variable.
427ec082
SS
17409 (enum_codepage_fn):
17410 (Fw32_get_valid_codepages):
17411 (Fw32_get_console_codepage):
17412 (Fw32_set_console_codepage):
17413 (Fw32_get_console_output_codepage):
17414 (Fw32_set_console_output_codepage):
17415 (Fw32_get_codepage_charset):
17416 (Fw32_get_valid_keyboard_layouts):
17417 (Fw32_get_keyboard_layout):
26901792
DL
17418 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17419 handling functions.
17420 (syms_of_ntproc): Register them.
17421
17422 * w32inevt.c: Include w32term.h and w32heap.h.
17423 (map_keypad_keys):
17424 (Vw32_enable_caps_lock):
17425 (Vw32_enable_num_lock):
17426 (Vw32_pass_lwindow_to_system):
17427 (Vw32_pass_rwindow_to_system):
17428 (Vw32_lwindow_modifier):
17429 (Vw32_rwindow_modifier):
17430 (Vw32_apps_modifier):
17431 (Vw32_scroll_lock_modifier):
17432 (w32_key_to_modifier): Add externs.
17433 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17434 Scroll Lock as potential modifiers; exclude numpad keys from
17435 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
17436 code.
17437 (is_dead_key): Copy from w32fns.c.
17438 (w32_kbd_patch_key): Comment attempt to improve handling of
17439 dead-keys, and system bug relating to same on Windows NT. Work
17440 around the bug by calling ToUnicode and then converting to the
17441 correct codepage.
17442 (map_virt_key): Removed obsolete variable.
17443 (lispy_function_keys): Add extern.
17444 (key_event): Major rework of keyboard input handling: optionally
17445 recognize Windows keys and Apps key as modifiers; optionally treat
17446 NumLock, CapsLock and ScrollLock as function keys; let system
17447 translate keystrokes to characters to avoid system bugs relating
17448 to dead-key handling; preserve shift distinction for control
17449 characters. Remove some obsolete code.
17450
17451 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
17452 and w32heap.h.
17453
17454 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
17455 (Vw32_pass_lwindow_to_system):
17456 (Vw32_pass_rwindow_to_system):
17457 (Vw32_lwindow_modifier):
17458 (Vw32_rwindow_modifier):
17459 (Vw32_apps_modifier):
17460 (Vw32_enable_num_lock):
17461 (Vw32_enable_caps_lock):
17462 (Vw32_scroll_lock_modifier): New variables.
17463 (modifier_set): Return toggle state for Scroll Lock.
17464 (w32_key_to_modifier): New function. Returns chosen modifier bit
17465 for given key.
17466 (w32_get_modifiers): Returns modifier flags for
17467 non-keyboard input events.
17468 (construct_console_modifiers): Renamed from construct_modifiers;
17469 recognize Windows and Apps keys as modifiers.
17470 (w32_get_key_modifiers): New function. Returns modifier flags for
17471 keyboard input events.
17472 (map_keypad_keys): Make non-static. Use second arg as extended
17473 flag.
17474 (w32_grabbed_keys): New variable.
17475 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
17476 (register_hot_keys):
17477 (unregister_hot_keys):
17478 (lookup_vk_code):
17479 (w32_parse_hot_key):
17480 (Fw32_register_hot_key):
17481 (Fw32_unregister_hot_key):
17482 (Fw32_registered_hot_keys):
17483 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
17484 (post_character_message): New function.
17485 (w32_msg_pump): Handle new messages for using hotkeys and changing
17486 keyboard layout/language.
17487 (w32_wnd_proc): Major rework of keyboard input handling:
17488 optionally recognize Windows keys and Apps key as modifiers;
17489 optionally treat NumLock, CapsLock and ScrollLock as function
17490 keys; let system translate keystrokes to characters to avoid
17491 system bugs relating to dead-key handling; preserve shift
17492 distinction for control characters; forward keyboard
17493 layout/language changes to lisp; detect and convert hot-key events
17494 to normal keystrokes.
17495 (syms_of_w32fns): Register new functions and variables.
17496 (w32_last_error): New function for use in debugging.
17497
174981998-11-10 Kenichi Handa <handa@etl.go.jp>
17499
17500 * category.h (CATEGORY_SET): Adjusted for the change of
17501 cmpchar_component.
17502 (CATEGORY_SET): Likewise.
17503
17504 * charset.c (cmpchar_component): New arg NOERROR. Check
17505 composition char ID more strictly.
17506 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
17507 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
17508 return 255.
17509 (Fcompose_string): Signal error if STR contains a rule-based
17510 composition character.
17511
17512 * charset.h (cmpchar_component): Proto-type adjusted.
17513
175141998-11-09 Kenichi Handa <handa@etl.go.jp>
17515
17516 * charset.c (string_to_non_ascii_char): Return correct length for
17517 a charset of dimension 2 and composition character.
17518
175191998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17520
17521 * keymap.c (Fsingle_key_description): Handle generic characters.
17522
17523 * process.c (Fprocess_status): Doc fix.
17524
175251998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
17526
17527 * charset.c (init_charset_once): Fix previous change.
17528
175291998-11-06 Kenichi Handa <handa@etl.go.jp>
17530
17531 * charset.c (string_to_non_ascii_char): Fix previous change.
17532 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
17533
17534 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
17535 character correctly.
17536 (STRING_CHAR): Handle an invalid charater correctly.
17537
175381998-11-05 Kenichi Handa <handa@etl.go.jp>
17539
17540 * charset.c (string_to_non_ascii_char): Fix previous change.
17541
17542 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
17543
17544 * editfns.c (Fstring_to_char): Don't return a multibyte character
17545 if STRING is a unibyte string.
17546
17547 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
17548 character.
17549
17550 * xdisp.c (display_text_line): Check validity of a multibyte character.
17551 (display_string): Likewise. Handle an invalid character correctly.
17552
175531998-11-05 Karl Heuer <kwzh@gnu.org>
17554
17555 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
17556 If nothing to do, return immediately.
17557 (syms_of_insdel): Initialize combine_after_change_buffer.
17558
175591998-11-05 Richard Stallman <rms@gnu.org>
17560
17561 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
17562
175631998-11-04 Geoff Voelker <voelker@cs.washington.edu>
17564
17565 * w32term.c (w32_enable_unicode_output): Rename from
17566 w32_no_unicode_output.
17567 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
17568 and new semantics.
17569
175701998-11-04 Jason Rumney <jasonr@altavista.net>
17571
17572 * w32fns.c (w32_list_fonts): Report an error if a frame has not
17573 been created yet.
17574
17575 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
17576
175771998-11-04 Kenichi Handa <handa@etl.go.jp>
17578
17579 * charset.c (string_to_non_ascii_char): Change the check for the
17580 varidity of multibyte form.
17581 (update_charset_table): Check validity of BYTES. Don't set
17582 bytes_by_char_head here.
17583 (init_charset_once): Set bytes_by_char_head completely.
17584
17585 * frame.c (do_switch_frame): Cancel previous change.
17586
17587 * print.c (print_string): Check validity of a character.
17588 (print): Likewise.
17589
17590 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
17591
17592 * m/ews4800.h, s/ux4800.h: New files.
17593
175941998-11-03 Theodore Jump <tjump@tertius.com>
17595
17596 * makefile.nt: Compile multiple source files when possible.
17597
17598 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 17599
26901792
DL
176001998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
17601
17602 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
17603 so don't rely on it succeeding.
17604
17605 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
17606 LOGFONT struct if x font doesn't specify the charset.
17607 (x_to_w32_charset): Change >= to == when testing results of
17608 stricmp.
17609
176101998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
17611
17612 * fns.c (Frequire): New arg NOERROR.
17613
176141998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
17615
17616 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
17617
176181998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
17619
17620 * xfaces.c (Qmouse_face): Replace definition with extern decl.
17621 (syms_of_xfaces): Initialization deleted.
17622
17623 * textprop.c (Qmouse_face): Variable definition moved here.
17624 (syms_of_textprop): Initialize it.
17625
17626 * data.c (set_internal): For built-in maybe-local vars,
17627 when BINDFLAG is set, do not mark them as local.
17628
176291998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
17630
17631 * insdel.c (replace_range): Fix previous change.
17632
176331998-10-31 Kenichi Handa <handa@etl.go.jp>
17634
17635 * editfns.c (Fsubst_char_in_region): Fix previous change.
17636 (Ftranslate_region): Fix previous change.
17637
17638 * fns.c (Fbase64_decode_region): Fix previous change.
17639
17640 * frame.c (do_switch_frame): Update minibuf_window if necessary.
17641
17642 * insdel.c (byte_combining_error): New function.
17643 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
17644 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
17645 CHECK_BYTE_COMBINING_FOR_INSERT.
17646 (insert_from_buffer_1): Likewise.
17647 (adjust_after_replace): Check the posibility of inhibitted byte
17648 combining correctly.
17649 (replace_range): Before signaling an error for inhibitted byte
17650 combining, recover the buffer in a safe state.
17651 (del_range_2): Check the posibility of inhibitted byte combining
17652 correctly.
17653
176541998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
17655
17656 * xselect.c (Vselection_coding_system): Doc fix.
17657
17658 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
17659 when we have both char and byte position. Fix type clashes.
17660
17661 * eval.c (Fsignal): Use a separate format string when passing
17662 error message string to fatal, in case it contains %'s.
17663
17664 * editfns.c (Fchar_after): Fix type clashes.
17665
17666 * charset.c (Fchar_bytes): Doc fix.
17667 (char_bytes): Fix returned value to match returned type.
17668 (syms_of_charset): Fix type clash in initialisation of
17669 Vauto_fill_chars.
17670
176711998-10-29 Geoff Voelker <voelker@cs.washington.edu>
17672
17673 * w32console.c (initialize_w32_display): Use buffer coords
17674 instead of buffer size (which may be larger than the window).
17675
17676 * fileio.c (init_fileio_once): New function.
17677
17678 * emacs.c (main): Invoke init_fileio_once.
17679
176801998-10-28 Paul Eggert <eggert@twinsun.com>
17681
17682 * xterm.c (XTread_socket): Check the returned value of
17683 XmbLookupString more carefully.
17684
176851998-10-28 Kenichi Handa <handa@etl.go.jp>
17686
17687 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
17688 (DECODE_CHARACTER_DIMENSION1): Likewise.
17689 (DECODE_CHARACTER_DIMENSION2): Likewise.
17690 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
17691
17692 * editfns.c (Fsubst_char_in_region): Fix previous change.
17693 (Ftranslate_region): Fix previous change.
17694
17695 * insdel.c (check_markers): Check if markers are at character boundry.
17696 (adjust_markers_for_insert): Fix previous change.
17697 (count_combining_before): Don't limit the check at BEGV.
17698 (count_combining_after): Don't limit the check at ZV.
17699 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
17700 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
17701 (insert_from_string_1): Likewise.
17702 (insert_from_buffer_1): Likewise.
17703 (adjust_after_replace): Inhibit bytes combined across region
17704 boundary. Update end_unchanged correctly.
17705 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
17706 end_unchanged correctly.
17707 (del_range_2): Inhibit bytes combined across region boundary.
17708 Update end_unchanged correctly.
17709
177101998-10-27 Geoff Voelker <voelker@cs.washington.edu>
17711
17712 * w32.c (check_windows_init_file): Also look in load path specified
17713 in environment.
17714
17715 * w32console.c (Fset_message_beep): Recognize 'silent.
17716 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 17717
26901792
DL
17718 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
17719
17720 * w32select.c (Vnext_selection_coding_system): New variable.
17721 (syms_of_w32select): DEFVAR_LISP it.
17722 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
17723 non-nil. Always convert multibyte strings.
17724 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
17725 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 17726
26901792
DL
177271998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
17728
17729 * fns.c (Fbase64_decode_string): Doc fix.
17730 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
17731 Likewise.
17732
177331998-10-27 Dave Love <fx@gnu.org>
17734
17735 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
17736 newline in doc string.
17737
177381998-10-27 Kenichi Handa <handa@etl.go.jp>
17739
17740 * editfns.c (Fsubst_char_in_region): Correctly handle the case
17741 that byte combining before happens.
17742 (Ftranslate_region): Likewise.
17743
17744 * insdel.c (adjust_after_replace): Correctly handle the case that
17745 both byte combining before and byte combining after happen.
17746 (replace_range): Likewise.
17747
177481998-10-26 Kenichi Handa <handa@etl.go.jp>
17749
17750 * category.c (syms_of_category): Doc-string modified.
17751
17752 * coding.c (code_convert_region): Kill the work buffer created by
17753 pre-write-conversion.
17754
177551998-10-25 Jason Rumney <jasonr@altavista.net>
17756
17757 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
17758
177591998-10-23 Kenichi Handa <handa@etl.go.jp>
17760
17761 * coding.c (code_convert_region): While preserving the orignal
17762 point, pay attention to the byte combining problem.
17763
17764 * fns.c (Fbase64_decode_region): Pay attention to the byte
17765 combining problem.
17766
17767 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
17768 combined_before_bytes and combined_after_bytes into account.
17769 (count_combining_after): Handle the case that LENGTH is zero.
17770 (adjust_after_replace): Record deletion at correct buffer
17771 position. Handle the case that LEN is zero.
17772 (replace_range): Record deletion at correct buffer position.
17773 (del_range_2): Call adjust_makers_for_replace to adjust makers for
17774 combined bytes.
17775
177761998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
17777
17778 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 17779
26901792
DL
177801998-10-21 Kenichi Handa <handa@etl.go.jp>
17781
17782 * coding.c (setup_coding_system): Fix setting up
17783 coding->spec.ccl.valid_codes for CCL based coding system.
17784 (code_convert_region): Set point to FROM before inserting the
17785 result of pre-write-funciton. Preserve original point.
17786 (code_convert_string): If coding->type is coding_type_ccl, do
17787 conversion even if the length of conversion region is zero.
17788
17789 * fontset.c: Include frame.h before fontset.h.
427ec082 17790 (list_fonts_func): Fix prototype.
26901792
DL
17791
17792 * frame.c: Include frame.h before fontset.h.
17793
17794 * xterm.c: Likewise.
17795
177961998-10-21 Jason Rumney <jasonr@altavista.net>
17797
17798 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
17799 general macros. Don't call x_list_font directory, instead call a
17800 function set in list_fonts_func.
17801
17802 * fontset.h (list_fonts_func): Fix prototype.
17803
178041998-10-20 Jason Rumney <jasonr@altavista.net>
17805
17806 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
17807
17808 * w32faces.c: Update comments referring to obsolete structs.
17809 (allocate_face, copy_face, face_eql, load_font,
17810 Fpixmap_spec_p, free_frame_faces, new_computed_face,
17811 frame_update_line_height, merge_faces, compute_base_face,
17812 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
17813
17814 * w32fns.c: (Vx_pixel_size_width): New global variable.
17815 (unibyte_display_via_language_environment): New global variable.
17816 (x_set_font): Add support for setting fontsets.
17817 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
17818 font names to match xlfd-tight-regexp.
17819 (w32_load_font): Rewrite based on x_load_font.
17820 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
17821 `iso8859-1' rather than `ansi'.
17822 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
17823 end. Move charset into `charset registry' field.
17824 (enum_font_cb2): Check charsets match. Include width in font list.
17825 (w32_list_fonts): Rewrite based on x_list_fonts.
17826 Moved from w32term.c to have access to enumfont_t struct.
17827 (Fx_list_fonts): w32 specific version eliminated. Include
17828 `x-list-fonts.c'.
17829 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
17830 functions for fontset support - adapted from x_ equivalents.
17831 (syms_of_w32fns): New lisp variables initialised. Function
17832 pointers for fontset.c set up.
17833
427ec082 17834 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
17835 Add ENCODE_BIG5 macro from coding.c.
17836 (w32_no_unicode_output): New variable.
17837 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
17838 functions.
17839 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
17840 (dumpglyphs): Rewrite based on xterm.c equivalent.
17841 (x_new_font): Use functionality provided in fontset.c.
17842 (x_new_fontset): New function based on the one in xterm.c.
17843 (syms_of_w32term): Add w32-no-unicode-output flag.
17844
427ec082 17845 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
17846 (Vx_pixel_size_width_font_regexp,
17847 unibyte_display_via_language_environment): Declare variables.
427ec082 17848 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
17849 Declare functions.
17850 (w32_output): New fields font_baseline and fontset.
17851 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
17852
17853 * w32xfns.c: Include charset.h and fontset.h.
17854
178551998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17856
17857 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
17858
178591998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
17860
17861 * msdos.c (mouse_init): Reset the button press/release info of the
17862 mouse driver.
17863 (mouse_preempted): New variable.
17864 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
17865 (XMenuActivate): Preempt the mouse during menu-handling loop.
17866 Release the current time slice while idling in the menu-handling
17867 loop. Leave the loop only if the user pressed, then released the
17868 same button. Discard all mouse events that are pending in the
17869 event queue before exiting.
17870
178711998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17872
17873 * editfns.c (Fformat): Increase buffer size for floating format.
17874
178751998-10-17 Kenichi Handa <handa@etl.go.jp>
17876
17877 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
17878 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
17879 Declare auto-fill-chars as a Lisp variable and initialize it.
17880
17881 * charset.h (Vauto_fill_chars): Extern it.
17882
17883 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
17884
178851998-10-16 Kenichi Handa <handa@etl.go.jp>
17886
17887 * casefiddle.c (casify_object): Use make_string instead of
17888 make_specified_string to cope with byte-combining situation.
17889
17890 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
17891 1 when encountered with a code of the range 0x80..0x9F.
17892
178931998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
17894
17895 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
17896 trying $TMP and $TEMP, since the former is always set in msdos.c.
17897 (Fcall_process_region) [DOS_NT]: When looking for a place to put
17898 the temporary files, check $TMPDIR as well.
17899
179001998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
17901
427ec082 17902 * process.c (exec_sentinel, read_process_output):
26901792
DL
17903 Restore waiting_for_user_input_p after running Lisp code.
17904
17905 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
17906 (command_loop): Likewise.
17907
179081998-10-14 Kenichi HANDA <handa@etl.go.jp>
17909
17910 * data.c (Faset): Fix previous change.
17911
17912 * fns.c (Ffillarray): Fix previous change.
17913
17914 * insdel.c (adjust_markers_for_combining): This function deleted.
17915 (adjust_markers_for_replace): Correctly adjust marker positions.
17916 Don't record these adjustment because they were recorded already.
17917 (combine_bytes): Don't adjust markers here.
17918
179191998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
17920
17921 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
17922
179231998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
17924
17925 * keyboard.c (Fclear_this_command_keys): New function.
17926 (syms_of_keyboard): defsubr it.
17927
17928 * macros.c (Fexecute_kbd_macro): Set real_this_command.
17929
179301998-10-12 Kenichi Handa <handa@etl.go.jp>
17931
17932 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
17933
17934 * charset.c (Fstring): Call make_string instead of
17935 make_string_from_bytes.
17936 (Ffind_charset_region): Include `composition' in the returned list
17937 if the region contains any composite characters.
17938 (Ffind_charset_string): Include `composition' in the returned list
17939 if the string contains any composite characters.
17940 (find_charset_in_str): Handle CMPCHARP arg correctly.
17941
17942 * coding.c (shrink_decoding_region): If a charset other than ascii
17943 is initially designated to G0, don't shrink the region.
17944 (shrink_encoding_region): Likewise.
17945
17946 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
17947 byte-combining situation.
17948
17949 * fns.c (clear_string_char_byte_cache): New function.
17950 (Ffillarray): Handle multibyte string correctly.
17951
17952 * lisp.h (clear_string_char_byte_cache): Extern it.
17953
17954 * xselect.c (lisp_data_to_selection_data): Call
17955 find_charset_in_str with CMPCHARP arg 0.
17956 * w16select.c (Fw16_set_clipboard_data): Likewise.
17957 * w32select.c (Fw32_set_clipboard_data): Likewise.
17958
179591998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17960
17961 * keyboard.c (parse_menu_item): For top level of menu bar,
17962 accept ordinary commands, and treat them just like a keymap.
17963
179641998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
17965
17966 * xdisp.c (redisplay_window): Clear w->window_end_valid
17967 before running the window-scroll-functions hook, if appropriate.
17968
179691998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
17970
17971 * data.c (Fstring_to_number): Don't recognize floating point
17972 if base is not 10.
17973
17974 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
17975 (check_all_windows): New function for debugging tests.
17976 (syms_of_window): Initialize it.
17977
17978 * window.c (Qwindow_configuration_p): New variable.
17979 (Fwindow_configuration_frame): New function.
17980 (syms_of_window): defsubr it.
17981 (Fset_window_configuration): Return t if frame is live.
17982 Use Qwindow_configuration_p.
17983
17984 * xfns.c (check_x_display_info): Don't use selected_frame
17985 if it is dead.
17986
179871998-10-09 Geoff Voelker <voelker@cs.washington.edu>
17988
17989 * w32fns.c (x_create_bitmap_from_file): Skip special files.
17990
179911998-10-08 Kenichi Handa <handa@etl.go.jp>
17992
17993 * buffer.h (inhibit_modification_hooks): Extern it.
17994
17995 * buffer.c (inhibit_modification_hooks): New variable.
17996 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
17997
17998 * charset.c (invalid_character): Prepend `0' to octal
17999 representation. Give error sufficient args.
18000
18001 * coding.c (code_convert_region): Set inhibit_modification_hooks
18002 to 1 before calling Fset_text_properties.
18003
18004 * insdel.c (signal_before_change): If inhibit_modification_hooks
18005 is nonzero, do nothing.
18006 (signal_after_change): Likewise.
18007
180081998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
18009
18010 * process.c: Doc fixes.
18011
180121998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
18013
18014 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18015
180161998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18017
18018 * w32.c (init_ntproc): Check for Windows init file.
18019 (term_ntproc): Do not check for it here.
18020
180211998-09-28 Kenichi Handa <handa@etl.go.jp>
18022
18023 * coding.c (check_composing_code): Fix previous change. Now it
18024 alwasy returns 0 or -1.
18025 (decode_coding_iso2022): Adjusted for the above change.
18026 (encode_coding_iso2022): When encoding the last block, flush out
18027 tailing garbage bytes.
18028 (setup_coding_system): Delete unnecessary code.
18029 (shrink_decoding_region): Check translation table. If ASCII
18030 should be translated, give up shrinking.
18031 (shrink_encoding_region): Likewise.
18032 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18033 (SHRINK_CONVERSION_REGION): New macro.
18034 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18035 properties here.
18036 (code_convert_region): In the case of encoding, always calulate
18037 correct character number.
18038 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18039 (code_convert_region1): Don't delete text properties here.
18040
18041 * insdel.c (adjust_after_replace): Don't delete text properties here.
18042
18043 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18044
180451998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18046
18047 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18048
180491998-09-26 Kenichi Handa <handa@etl.go.jp>
18050
18051 * coding.h (struct coding_system): New member composed_chars.
18052
18053 * coding.c (check_composing_code): If the current composing
18054 sequence doesn't end properly, return -1.
18055 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18056 (DECODE_CHARACTER_DIMENSION1): Likewise.
18057 (decode_coding_iso2022): Check validity of a composing sequence.
18058 (code_convert_string): If the length of text to be converted is
18059 shrunk to zero, don't perform code conversion.
18060 (shrink_decoding_region): Fix previous change.
18061
18062 * editfns.c (Fformat): Check format control characters.
18063
180641998-09-25 Kenichi Handa <handa@etl.go.jp>
18065
18066 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18067 single CR code correctly.
18068 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18069 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18070
180711998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18072
18073 * w32fns.c (w32_color_map_lookup): New function.
18074 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18075
180761998-09-22 Kenichi Handa <handa@etl.go.jp>
18077
18078 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18079
18080 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18081 strings unibyte.
18082 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18083
180841998-09-22 Kenichi Handa <handa@etl.go.jp>
18085
18086 * callint.c (Fcall_interactively): Don't use input method when
18087 reading a character in the case of `c' code letter.
18088
180891998-09-21 Dave Love <fx@gnu.org>
18090
18091 * editfns.c (Fsave_restriction): Doc fix.
18092
180931998-09-21 Richard Stallman <rms@gnu.org>
18094
18095 * lread.c (build_load_history): Do add to Vload_history
18096 even when dumping Emacs.
18097
180981998-09-18 Kenichi Handa <handa@etl.go.jp>
18099
18100 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18101 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18102 cause error if the program is going to output some bytes. When
18103 outputing a string to notify an error, check the case that
18104 DST_BYTES is zero.
18105
427ec082 18106 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18107
18108 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18109 user or the CCL program executed an invalid command, return
18110 CODING_FINISH_INTERRUPT.
18111 (code_convert_region): Pay attention to the converters return
18112 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18113
181141998-09-16 Kenichi Handa <handa@etl.go.jp>
18115
18116 * coding.c (code_convert_region): Update beg_unchanged and
18117 end_unchanged after we delete the source text.
18118
18119 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18120 position if it is FROM.
18121 (adjust_markers_for_combining): New function.
18122 (combine_bytes): Call adjust_markers_for_combining instead of
18123 adjust_markers_for_replace.
18124 (adjust_after_replace): Record deletion of combining after bytes
18125 with the correct position.
18126 (replace_range): Likewise. Record the actual deletion after
18127 recoding deletions of combining bytes.
18128
18129 * xdisp.c (message_log_check_duplicate): Count byte length of the
18130 latest message correctly.
18131
181321998-09-12 Richard Stallman <rms@gnu.org>
18133
18134 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18135 instead of SET_PT_BOTH.
18136 (try_window_id, display_text_line): Likewise.
18137
181381998-09-12 Karl Heuer <kwzh@gnu.org>
18139
18140 * data.c (Fmake_local_variable): Doc fix.
18141
181421998-09-10 Dave Love <fx@gnu.org>
18143
18144 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18145
181461998-09-10 Richard Stallman <rms@gnu.org>
18147
18148 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18149 (bcopy, bcmp, bzero): Add #undef.
18150
18151 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18152 first exit if selected frame is dead (no live frames remain).
18153 (read_key_sequence): Likewise.
18154
181551998-09-10 Karl Heuer <kwzh@gnu.org>
18156
18157 * emacs.c (main): Mention --display and --eval in help.
18158
181591998-09-07 Paul Eggert <eggert@twinsun.com>
18160
18161 * editfns.c (emacs_memftime): New function.
18162 (Fformat_time_string): Use it to handle null bytes in formats
18163 correctly.
18164
181651998-09-08 Kenichi Handa <handa@etl.go.jp>
18166
18167 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18168 (Ffind_charset_string): For unibyte string, return (ascii).
18169
18170 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18171 arg MARKERS 1.
18172
18173 * insdel.c (adjust_after_replace): Don't add combining bytes to
18174 the args given to adjust_point. Handle correctly the case that
18175 there are both before and after combining bytes.
18176 (replace_range): Likewise.
18177
181781998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18179
18180 * fns.c (base64_decode_1, base64_encode_1): New functions.
18181 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18182 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18183
181841998-09-07 Karl Heuer <kwzh@gnu.org>
18185
18186 * eval.c (error): After enlarging buffer, write to it, not to buf.
18187
18188 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18189
181901998-09-07 Kenichi Handa <handa@etl.go.jp>
18191
18192 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18193 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18194 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18195
18196 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18197 chars in produced byte sequence.
18198 (Ffind_operation_coding_system): Doc-string fixed.
18199
18200 * insdel.c (count_combining_after): Check also preceding bytes at
18201 POS if all characters in STRING are not character head.
18202
182031998-09-06 Paul Eggert <eggert@twinsun.com>
18204
18205 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18206 Don't assume that localtime and gmtime return non-NULL.
18207
182081998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18209
18210 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18211 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18212 New functions.
18213
182141998-09-06 Richard Stallman <rms@gnu.org>
18215
18216 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18217
18218 * lread.c (Fload): Handle case where openp finds a magic file
18219 but it has no `load' handler or that handler calls `load'.
18220 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18221
182221998-09-04 Dave Love <fx@gnu.org>
18223
18224 * buffer.c (enable-multibyte-characters): Doc fix.
18225
182261998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18227
18228 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18229
182301998-09-01 Kenichi Handa <handa@etl.go.jp>
18231
18232 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18233 address in buffer from byte-position.
18234
182351998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18236
18237 * w16select.c (Vnext_selection_coding_system): New variable.
18238 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18239 Vselection_coding_system.
18240 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18241 Vnext_selection_coding_system if non-nil.
18242 (Fw16_get_clipboard_data): Always convert a string that includes
18243 non-ASCII characters. Use Vnext_selection_coding_system if
18244 non-nil.
18245
182461998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18247
18248 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18249 mouse capture.
18250
182511998-08-31 Kenichi Handa <handa@etl.go.jp>
18252
18253 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18254 x_list_font returns.
18255
182561998-08-31 Paul Eggert <eggert@twinsun.com>
18257
18258 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18259 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18260
182611998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18262
18263 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18264 cursor, save and restore previous cursor position in the
18265 minibuffer.
18266
182671998-08-31 Kenichi Handa <handa@etl.go.jp>
18268
18269 * charset.c (unibyte_char_to_multibyte):
18270 Vnonacii_translation_table will convert a 7-bit charcater.
18271 (multibyte_char_to_unibyte): Handle the case that
18272 Vnonacii_translation_table converts a multibyte charcater to a
18273 unibyte charcter of less than 128.
18274 (init_charset_once): Initialize nonascii_insert_offset and
18275 Vnonacii_translation_table.
18276
18277 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18278 processing if CODING requires flushing.
18279 (encode_coding): Likewise.
18280 (code_convert_region): Likewise.
18281 (code_convert_string): Likewise.
18282
18283 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18284 to convert a character less than 160 to multibyte.
18285 * insdel.c (copy_text): Likewise.
18286 (count_size_as_multibyte): Likewise.
18287 * xterm.c (dumpglyphs): Likewise.
18288
182891998-08-29 Paul Eggert <eggert@twinsun.com>
18290
18291 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18292 using negation, not subtraction; this makes a difference with
18293 IEEE floating point arithmetic (and also if integer arithmetic
18294 is ones' complement or signed-magnitude!).
18295
182961998-08-29 Karl Heuer <kwzh@gnu.org>
18297
18298 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18299
183001998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18301
18302 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18303
183041998-08-28 Paul Eggert <eggert@twinsun.com>
18305
18306 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18307 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18308 path only if we're not building with Motif.
18309
183101998-08-28 Kenichi Handa <handa@etl.go.jp>
18311
18312 * insdel.c (adjust_after_replace): Fix the code to record undo
18313 information for the case that `before combining' happens. Remove
18314 text properties which are added to the new text by
18315 offset_intervals.
18316
18317 * coding.c (code_convert_region1): Remove all text properties of
18318 the region.
18319
183201998-08-28 Kenichi Handa <handa@etl.go.jp>
18321
18322 * charset.h (CHAR_BYTES): New macro.
18323
18324 * charset.c (Fchar_bytes): Now always return 1.
18325 (char_bytes): New function.
18326
18327 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18328 range, return nil.
18329 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18330 nil.
18331
18332 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18333 * fns.c (concat): Likewise.
18334 * insdel.c (count_size_as_multibyte): Likewise.
18335 * xdisp.c (message_dolog): Likewise.
18336
183371998-08-27 Kenichi Handa <handa@etl.go.jp>
18338
18339 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18340 correctly. They are for SS2 and SS3 respectively.
18341 (ccl_coding_driver): Fix previous change.
18342
183431998-08-26 Paul Eggert <eggert@twinsun.com>
18344
18345 * xterm.c (fixup_locale): New function. For now, it resets
18346 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18347 resets LC_MESSAGES to "C".
18348 (x_term_init): Use it to fix up the locale after setlocale
18349 (LC_ALL, "").
18350
183511998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18352
18353 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18354 case it was prototyped the old way.
18355
183561998-08-25 Kenichi Handa <handa@etl.go.jp>
18357
18358 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18359 returns a null string. This happens when dxpc 3.7 is being used.
18360
183611998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18362
18363 * keyboard.c (input-method-previous-message): Doc fix.
18364
18365 * coding.c (file-coding-system-alist,
18366 select-safe-coding-system-function): Doc fix.
18367
183681998-08-23 Kenichi HANDA <handa@etl.go.jp>
18369
18370 * coding.c (detect_coding_iso2022): Don't check the byte length of
18371 succeeding codes (0xa0..0xFF) if the codes follows single shift
18372 code (SS2 or SS3).
18373
183741998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18375
18376 * coding.c (detect_coding_system): If detect_eol_type returns
18377 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18378 correctly.
18379
18380See ChangeLog.7 for earlier changes.