(TAGS-LISP): Don't use `$(lispsource)'.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
485266d0
GM
12000-07-05 Gerd Moellmann <gerd@gnu.org>
2
3 * xterm.c (XTread_socket): Increment handling_signal at the start,
4 decrement it at the end.
5
6 * eval.c (handling_signal): New variable.
7 (Fsignal): Abort if handling_signal is non-zero.
8
9 * lisp.h (handling_signal): External declaration.
10
11 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
12
80fcd514
KR
132000-07-05 Ken Raeburn <raeburn@gnu.org>
14
15 Sound support for NetBSD through "Linux emulation" support:
16 * config.in (HAVE_SOUNDCARD_H): Undef.
17 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
18 * Makefile.in (LIBSOUND): New variable.
19 (LIBES): Include it.
20 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
21 <soundcard.h>.
22 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
23 elsewhere.
24 (vox_open): Use DEFAULT_SOUND_DEVICE.
25 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
26
d5c5cddd
GM
272000-07-05 Gerd Moellmann <gerd@gnu.org>
28
29 * print.c (print_error_message): If Vsignaling_function is set,
30 show it in *Messages*.
31
32 * lisp.h (Vsignaling_function): External declaration.
33
34 * eval.c (Vsignaling_function): New variable.
35 (Fsignal): Compute it.
36 (syms_of_eval): Staticpro it.
37
65171e3a
DL
382000-07-05 Dave Love <fx@gnu.org>
39
40 * syswait.h: Use the autoconf recommended approach. Old code
41 #if'd out in case we need to revert.
42
43 * config.in (HAVE_SYS_WAIT_H): Added.
44
e2c46326
AI
452000-07-05 Andrew Innes <andrewi@gnu.org>
46
47 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
48 when non-NULL instead of __morecore, to take account of buffer
49 memory. This also solves a problem with spurious memory warnings
50 on Windows.
51
52 * ralloc.c: Make real_morecore non-static.
53
54 * eval.c (internal_condition_case): Comment out abort if
55 interrupt_input_blocked is not zero.
56
57 * makefile.nt: Add support for `bootstrap' and related targets.
58 Include minimal debug info in emacs.exe in release build.
59 Remove all dependencies on lisp.h, and fixup some others.
60
61 * w32.c (init_environment): Install code from 20.7 for providing
62 default values for environment variables, based on the
63 executable's own location.
64 (map_w32_filename): Handle filenames that are longer than
65 MAX_PATH.
66 (sys_socket): Install socket inheritance bug fix from 20.7.
67
68 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
69 here via blockinput.h).
70
a027a91b
SM
712000-07-05 Stefan Monnier <monnier@cs.yale.edu>
72
e2c46326
AI
73 * w32menu.c (w32_menu_display_help): * xmenu.c
74 (menu_help_callback): Use show_help_echo.
a027a91b
SM
75
76 * keyboard.h (show_help_echo): Declare.
77
78 * keyboard.c (show_help_echo): New function, extracted from read_char.
79 Feval its `msg' argument if it's a cons cell.
80 (read_char): Use it.
81
82 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
83 (note_tool_bar_highlight, XTread_socket):
84 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
85 (dos_rawgetc):
86 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
87 (note_tool_bar_highlight, w32_read_socket):
88 Do not gratuitously ignore non-string `help-echo' properties.
89
88d75730
GM
902000-07-05 Gerd Moellmann <gerd@gnu.org>
91
969f7e79
GM
92 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
93
71201b00
GM
94 * window.c (delete_all_subwindows): Reset Vwindow_list.
95
88d75730
GM
96 * xterm.c (x_append_glyph, x_append_composite_glyph)
97 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
98 changes in struct glyph starting 1999-12-27. Some bit-fields of
99 struct glyph were not set, which made glyphs unequal when compared
100 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
101 effects were the result. This also depended on the contents of
102 memory returned by xmalloc. If flickering happens again, activate
103 the code in clear_glyph_row that's in #if 0. If the flickering is
104 gone with that, chances are that it is caused by something
105 similar.
106
107 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
108
109 * dispextern.h: Add some comments.
110
111 * window.c (add_window_to_list): Add parameter LIST.
112 (window_list): Order list so that, for each frame, windows are
113 in canonical order, and so that frames appear in the list in
114 the order given by Vframe_list.
115 (next_window): Reverse the handling of NEXT_P.
116
53654733
GM
1172000-07-04 Gerd Moellmann <gerd@gnu.org>
118
87efd256
GM
119 * window.c (Vwindow_list): New variable.
120 (make_window, delete_window): Set Vwindow_list to nil.
121 (check_window_containing): New function.
122 (window_from_coordinates): Rewritten.
123 (add_window_to_list, window_list, candidate_window_p)
124 (decode_next_window_args, next_window): New functions.
125 (Fnext_window, Fprevious_window): Rewritten in terms of
126 next_window.
127 (Fwindow_list): New function.
128 (Fother_window): Cleaned up.
129 (foreach_window): Add a longer "variable argument list". Let
130 callback function return 0 to indicate that cycling over windows
131 should stop.
132 (foreach_window_1): Likewise.
133 (freeze_window_start): Return int.
134 (init_window): New function.
135 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
136
137 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
138 input_event with bzero.
139 (main): Call init_window.
140
53654733
GM
141 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
142 a menu filter.
143
4a8c194f
KH
1442000-07-04 Kenichi Handa <handa@etl.go.jp>
145
146 * composite.h (make_composition_value_copy): Extern it.
147
148 * composite.c (make_composition_value_copy): New function.
149
150 * editfns.c (Fformat): While copying text properties, make each
151 composition property value a copy.
152
153 * fns.c (concat): While copying text properties, make each
154 composition property value a copy.
155
831a6cb0
GM
1562000-07-03 Gerd Moellmann <gerd@gnu.org>
157
2f516940
GM
158 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
159
aee625fa
GM
160 * fns.c (sweep_weak_table): Mark only objects that are not
161 marked already.
162
831a6cb0
GM
163 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
164 include those frames as candidates which have their focus
165 redirected to the minibuffer frame.
166
d9c4f922
SM
1672000-07-03 Stefan Monnier <monnier@cs.yale.edu>
168
169 * fns.c (Fputhash): Return `value' rather than nil.
170
3780bc22
GM
1712000-06-30 Gerd Moellmann <gerd@gnu.org>
172
97d176db
GM
173 * frame.c (next_frame): Don't check focus redirection in case
174 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
175 unless their focus is redirected, which contradicts the
176 specification of next-frame, and leads to infinite loops in
177 certain situations when cycling through windows with next-window.
178
dca9961d
KH
1792000-06-30 Kenichi Handa <handa@etl.go.jp>
180
181 * coding.c (code_convert_region): Even if the length of text is
182 zero, try to convert it if coding->type is coding_type_ccl.
183 (decode_coding_string, encode_coding_string): Likewise.
184
d5483ab1
GM
1852000-06-28 Gerd Moellmann <gerd@gnu.org>
186
af5c25e1 187 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 188 the display if windows_or_buffers_changed.
af5c25e1
GM
189
190 * dispnew.c (struct row_entry): New structure.
191 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
192 (row_table_size, old_lines, new_lines, old_lines_size)
193 (new_lines_size, run_pool, runs_size, runs): New variables.
194 (add_row_entry): New function.
195 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 196 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
197 holding them in local variables. Use a larger hash table whose
198 size depends on glyph matrix sizes. Don't use bzero to clear the
199 hash table; instead, clear used slots only.
200
201 * fns.c (next_almost_prime): Make it externally visible.
202
203 * lisp.h (next_almost_prime): Add prototype.
204
d5483ab1
GM
205 * s/isc4-0.h (sigunblock): Define.
206
207 * s/sco5.h (sigunblock): Define.
208
93e40f40
DL
2092000-06-27 Dave Love <fx@gnu.org>
210
211 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
212 (moved to osf5-0.h).
213 [!NOT_C_CODE]: Protect string.h stuff.
214
215 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
216 (sys_siglist, NSIG): Definitions moved here from osf1.h.
217
3c4b7685
GM
2182000-06-27 Gerd Moellmann <gerd@gnu.org>
219
97d176db 220 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
221 below the last line from the needed window height.
222
32cad0aa
SM
2232000-06-26 Stefan Monnier <monnier@cs.yale.edu>
224
225 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
226 (Fwidget_get): Use it.
227 (syms_of_fns): Defsubr it.
228
2c69ced2
GM
2292000-06-26 Gerd Moellmann <gerd@gnu.org>
230
1d36487c
GM
231 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
232 display info for XIM.
233 (xim_open_dpy): Likewise.
234 (xim_close_dpy): Don't free the display info's XIM.
235
236 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
237
238 * config.in (USE_XIM): New define.
239
3fc720e4
GM
240 * keymap.c (get_keyelt): For menu-items containing a `:filter
241 FILTER', apply FILTER to the menu-item's definition to get the
242 real definition to use.
243
244 * lisp.h (QCfilter): External declaration.
245
2c69ced2
GM
246 * xfns.c (Fimage_size): New function.
247 (syms_of_xfns): Defsubr it.
248
f978b2a2
AS
2492000-06-26 Andreas Schwab <schwab@suse.de>
250
251 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
252 Fstring_as_unibyte.
253
94cc7892
DL
2542000-06-25 Dave Love <fx@gnu.org>
255
256 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
257 tgetnum.
258
259 * Makefile.in (blockinput.h): Depend on atimer.h.
260 (atimer.h): Depend on systime.h.
261
262 * blockinput.h: Protect against multiple inclusion. Include
263 atimer.h.
264
265 * atimer.h: Protect against multiple inclusion. Include
266 systime.h.
267
268 * lisp.h (swap_in_global_binding): Declare.
269
b8c24556
KR
2702000-06-24 Ken Raeburn <raeburn@gnu.org>
271
272 * process.c (Fopen_network_stream): Turn off atimers for duration
273 of call to connect. (Patch from Gerd.)
274
8cf8560b
DL
2752000-06-23 Dave Love <fx@gnu.org>
276
511c7541
DL
277 * ralloc.c: Maybe include unistd.h
278
8cf8560b
DL
279 * emacs.c (setgrp): Undefine before defining.
280 (malloc_warning, set_time_zone_rule, index): Prototype.
281
282 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
283 HAVE_STRUCT_TIMEZONE.
284
285 * s/osf1.h: Move string.h hack here from alpha.h and make it
286 conditional.
287 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
288 _XOPEN_SOURCE.
289 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
290 (SOCKLEN_TYPE): Don't define.
291
292 * m/alpha.h: Remove string.h hack.
293
294 * s/osf5-0.h: New file.
295
296 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
297 include time.h, done by systime.h.
298 [__FreeBSD__]: Remove redundant includes.
299
3fc720e4 300 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
301 (delete_temp_file): Return Qnil to avoid warning.
302
303 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
304
305 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
306 HAVE_X_WINDOWS.
307
308 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
309
310 * composite.h (compose_text): Declare.
311
312 * xterm.c: Don't include sys/types.h unconditionally. Don't
313 protect its inclusion with !USG (following xmenu.c).
314
ea055732
GM
3152000-06-23 Gerd Moellmann <gerd@gnu.org>
316
317 * xfns.c (x_create_tip_frame): Initialize frame's colors like
318 in x_create_frame.
319
74b01b80
EZ
3202000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
321
322 * coding.c (decode_eol_post_ccl): Special handling for undecided
323 and inconsistent EOL types.
324
64f3a166
GM
3252000-06-22 Gerd Moellmann <gerd@gnu.org>
326
16cf31f7
GM
327 * xrdb.c (x_load_resources): Add default resource for scroll bar's
328 trough color and main window's background color.
329
330 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
331 differently.
332
333 * xterm.h (Xt_app_con): External declaration.
334
335 * widget.c (EmacsFrameRealize): Fix typo.
336
486a103d
GM
337 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
338
64f3a166
GM
339 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
340 (handle_invisible_prop): Record the start of invisible text in
341 it->add_overlay_start.
342 (struct overlay_entry): Add member `overlay'.
343 (handle_overlay_change): Simplify.
344 (next_overlay_string): After having processed overlay strings at the
345 end of the buffer, record that fact in
346 it->overlay_strings_at_end_processed_p.
347 (compare_overlay_entries): If before- and after-strings come
348 from the same overlay, let before-strings come first.
349 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
350 (load_overlay_strings): Take it->add_overlay_start into account
351 when adding overlay strings.
352
353 * dispextern.h (struct it): Add member add_overlay_start.
354
bb746ea6
DL
3552000-06-22 Dave Love <fx@gnu.org>
356
357 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
358
359 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
360
a8f573f3
KH
3612000-06-22 Kenichi Handa <handa@etl.go.jp>
362
363 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
364 is greater than 0.
365
9f2bbc92
DL
3662000-06-21 Dave Love <fx@gnu.org>
367
368 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
369
3ee5041c
SM
3702000-06-21 Stefan Monnier <monnier@cs.yale.edu>
371
372 * syntax.c (back_comment): Simplify string-parity counting (with
373 the added benefit of handling multiple string-styles as long as
374 they are not intertwined).
375 Jump to the slow code as soon as a comment starter is found in
376 a "string_lossage" position. Fixes the case: " /* " /* " */.
377
4c343001
DL
3782000-06-21 Dave Love <fx@gnu.org>
379
380 * Makefile.in: Use GETLOADAVG_LIBS.
381
382 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
383 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
384
e6365855
SM
3852000-06-20 Stefan Monnier <monnier@cs.yale.edu>
386
387 * syntax.c (describe_syntax): Recognize the `n'estable bit.
388 (Fforward_comment, scan_lists):
389 Check the comstyle of single-char comment-starters.
390 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
391 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
392 Check the comstyle of single-char comment-starters.
393 Clarify control-flow around the Scomment case.
e6365855 394
5700d2cc
DL
3952000-06-20 Dave Love <fx@gnu.org>
396
d355bd8a
SM
397 * fns.c (make_hash_table, maybe_resize_hash_table):
398 Cast arg of next_almost_prime.
5700d2cc
DL
399
400 * tparam.c [emacs]: Include lisp.h.
401
402 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
403 and unistd.h.
404
4a27bdfb
GM
4052000-06-20 Gerd Moellmann <gerd@gnu.org>
406
a61d762c
GM
407 * keyboard.c (adjust_point_for_property): Check if display
408 property should be treated as intangible by looking at its
409 value.
410
411 * xdisp.c (single_display_prop_intangible_p)
412 (display_prop_intangible_p): New functions.
413
414 * dispextern.h (display_prop_intangible_p): Add prototype.
415
416 * xdisp.c (dump_glyph_row): Show type of glyph->object.
417
4a27bdfb
GM
418 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
419 argument to sigprocmask.
420
421 * s/sco5.h (sigblock): Redefined to pass a pointer as second
422 argument to sigprocmask.
423
424 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
425 sigprocmask_set, and pass a pointer to it to sigprocmask.
426
427 * sysdep.c (sigprocmask_set): New variable.
428
429 * fileio.c (make_temp_name): Don't use `%s' in string passed to
430 report_file_error.
431
427ec082
SS
4322000-06-20 Sam Steingold <sds@gnu.org>
433
434 * xrdb.c: Don't declare xmalloc, xrealloc.
435
8972fe79 4362000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
437
438 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
439 (re_comp): Cast gettext return value to avoid complaints when
440 !HAVE_LIBINTL.
441
074b6efe
DL
4422000-06-20 Dave Love <fx@gnu.org>
443
f85c008a
DL
444 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
445 HAVE_GETTIMEOFDAY.
446
5700d2cc 447 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 448
d355bd8a 449 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
450
451 * m/alpha.h: Don't declare xmalloc, xrealloc.
452
0af4f205
DL
453 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
454
455 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
456
457 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
458
459 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
460 HAVE_GETWD.
461
074b6efe
DL
462 * keyboard.h (poll_for_input_1): Declare.
463
464 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
465
466 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
467
468 * doprnt.c: Don't declare xmalloc, xrealloc.
469
470 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
471 (getenv, ctime, getwd): Removed.
472 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
473
474 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
475 x_set_tool_bar_lines.
476
477 * config.in: Add HAVE_GETWD. Move some definitions above
478 machine/system includes.
479
68a5e97b
KH
4802000-06-20 Kenichi Handa <handa@etl.go.jp>
481
95417e1e
KH
482 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
483
68a5e97b
KH
484 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
485 contain information about ENCODING.
486
487 * fontset.c (FONTSET_ASCII): Use the first element of char table
488 for an ASCII font, not defalt slot.
489 (fontset_ref_via_base): If FONTSET doesn't contain information for
490 C, try the default fontset.
491 (make_fontset): Don't copy the default fontset.
492 (fontset_font_pattern): Likewise.
493 (accumulate_font_info): If ELT is nil, use the corresponding
494 element in the default fontset.
495
3b4fa1b2
DL
4962000-06-19 Dave Love <fx@gnu.org>
497
943e731c
DL
498 * syntax.c (Fparse_partial_sexp): Doc fix.
499
500 * regex.h: Test PROTOTYPES as well as __STDC__.
501
3b4fa1b2
DL
502 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
503 errno, strerror. Put text after #endif in comment.
504
505 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
506 pcc).
507
508 * xterm.c (x_frame_of_widget): Likewise.
509
cdf0357b
GM
5102000-06-19 Gerd Moellmann <gerd@gnu.org>
511
512 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
513 to Vfundamental_mode_abbrev_table.
514
515 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
516 bogus objects are marked. This slows down GC by ~80 percent, but
517 it might be worth trying when debugging GC-related problems.
518 This feature requires conservative stack marking to be enabled.
519
520 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
521 returns XLookupChars, reset `modifiers' to zero.
522
998e9f8c
DL
5232000-06-19 Dave Love <fx@gnu.org>
524
525 * mktime.c: Unprotoized.
526
d1504184
GM
5272000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
528
529 * data.c (set_internal): If variable is frame-local,
530 store the new value immediately into the frame parameter alist.
531
140c4ac6
KR
5322000-06-19 Ken Raeburn <raeburn@gnu.org>
533
14358466
KR
534 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
535 in the custom handler pointer.
536
140c4ac6
KR
537 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
538 value, or checks for CHAR_META can fail when Lisp_Object is a
539 union type.
540 * keymap.c (get_keyelt): Likewise.
541
10d7bf84
KH
5422000-06-19 Kenichi Handa <handa@etl.go.jp>
543
544 * ccl.h (struct ccl_program): New member eol_type.
545 (struct ccl_spec): New member cr_carryover.
546
547 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
548 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
549
550 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
551 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
552 (decode_eol_post_ccl): New function.
553 (decode_coding): Don't detect EOL format here for CCL based coding
554 systems.
555 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
556 decode_eol_post_ccl after running the CCL program.
557 (code_convert_region): Don't detect EOL format here for CCL based
558 coding systems.
559 (decode_coding_string): Likewise.
560
52e386c2
KR
5612000-06-18 Ken Raeburn <raeburn@gnu.org>
562
563 * charset.c (update_charset_table): Use XINT on "iso_final_char"
564 when treating it as an integer.
565
566 * coding.h (encode_coding_string): Declare.
567
568 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
569 it as an integer.
570
571 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
572 "xkeymap" to avoid shadowing the "enum map_type" value that needs
573 to be passed to get_local_map.
574
575 * sound.c (Fplay_sound): Don't call make_number on
576 Frun_hook_with_args count argument.
577
578 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
579 for lisp objects in X event structure data field, when lisp
580 objects are represented with unions.
581 (x_scroll_bar_to_input_event): Ditto.
582
b357b9d4
KR
5832000-06-16 Ken Raeburn <raeburn@gnu.org>
584
585 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
586 termination of string. Fix sense of test whether
587 Vline_number_display_limit is an integer.
b357b9d4 588
a871441d
GM
5892000-06-16 Gerd Moellmann <gerd@gnu.org>
590
a9021acd
GM
591 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
592 only if HAVE_X_WINDOWS.
593
6344985d
GM
594 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
595 of titles.
596
427ec082 597 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
598 out of bounds.
599
228b083e
EZ
6002000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
601
602 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
603 of its headers.
604
c25b53a2
KH
6052000-06-15 Kenichi Handa <handa@etl.go.jp>
606
607 * coding.c (decode_coding_emacs_mule): Always set src_base at the
608 start of the while loop.
609
a6981b11
GM
6102000-06-15 Gerd Moellmann <gerd@gnu.org>
611
e9924e52
GM
612 * atimer.c (alarm_signal_handler): Add forward declaration.
613
a6981b11
GM
614 * data.c (set_internal): Remove debug code.
615
25fa6deb
GM
6162000-06-14 Gerd Moellmann <gerd@gnu.org>
617
dce6b995
GM
618 * Makefile.in (bootstrap-temacs): Add `-I../src'.
619
9f817ea4
GM
620 * unexec.c (toplevel) [COFF]: Include coff.h.
621
622 * s/lynxos.h: New file.
623
624 * keymap.c (Fsingle_key_description): Enclose function key and
625 event symbol names in angle brackets.
626
8a4e3c0c
GM
627 * xdisp.c (setup_echo_area_for_printing): Call
628 message_log_maybe_newline if message_buf_print is not set.
629
630 * print.c (printchar, strout): Don't check message_buf_print
427ec082 631 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
632 function does something useful even when message_buf_print is
633 already set.
634
25fa6deb
GM
635 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
636 variables.
637 (ensure_echo_area_buffers): Initialize echo buffer's
638 truncate lines setting to nil.
639 (with_echo_area_buffer): Don't set the echo buffer's truncate
640 lines setting here.
8a4e3c0c 641 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
642 of message_truncate_lines.
643 (resize_mini_window): Handle case that lines are truncated.
644 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
645 message-truncate-lines.
646
647 * keyboard.c (read_char): Bind message-truncate-lines to t
648 while displaying a help-echo.
649
650 * lisp.h (Qmessage_truncate_lines): External declaration.
651
163dcff3
GM
6522000-06-13 Gerd Moellmann <gerd@gnu.org>
653
1681ead6
GM
654 * xdisp.c (Vline_number_display_limit): Renamed from
655 line_number_display_limit.
656 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
657 Extend documentation string. Initialize
658 Vline_number_display_limit to nil meaning no limit.
659 (decode_mode_spec): Use Vline_number_display_limit with its new
660 meaning.
661
163dcff3
GM
662 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
663
6642000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
665
666 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 667
163dcff3
GM
668 * xfns.c (x_set_frame_parameters): Comment fix.
669
670 * frame.c (store_frame_param): Call swap_in_global_binding if the
671 variable's current binding was chosen based on this frame.
672
673 * data.c (swap_in_global_binding): New function.
674
a704139d
EZ
6752000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
676
677 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
678 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
679
9b6610db
EZ
6802000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
681
682 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
683
c68833d2
JR
6842000-06-12 Jason Rumney <jasonr@gnu.org>
685
686 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
687
688 * w32.h (EMACS_W32_H): Renamed from _NT_H_
689
690 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
691
692 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
693
ed1056b3
GM
6942000-06-12 Gerd Moellmann <gerd@gnu.org>
695
696 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
697 (syms_of_xfaces): Defsubr Sdump_colors.
698 (x_free_colors): Don't treat b&w specially on default visual.
699 (x_free_dpy_colors): New function.
700 (free_face_colors): Don't check visual class; it's done
701 in x_free_colors.
702
703 * xterm.c (x_frame_of_widget): New function.
704 (x_alloc_nearest_color_for_widget): Use it.
705 (x_copy_dpy_color): New function.
706 (x_destroy_window): Free various colors.
707
5050a2ef
KH
7082000-06-12 Kenichi Handa <handa@etl.go.jp>
709
710 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
711
712 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
713
714 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
715
716 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
717
718 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
719
fb1b041d
DL
7202000-06-11 Dave Love <fx@gnu.org>
721
722 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
723
ff96b5f4
EZ
7242000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
725
726 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
727
db8eeecd
GM
7282000-06-11 Gerd Moellmann <gerd@gnu.org>
729
ed1056b3 730 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
731 to `XEvent *'.
732
49b71c5f
KH
7332000-06-10 Kenichi Handa <handa@etl.go.jp>
734
c479bd55
KH
735 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
736 (regex_compile): Fix the code for handling the case of single byte
737 char and multibyte char being mixed in a range within [...].
738
ff6a65c2
KH
739 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
740 and dst_multibyte members of coding.
741
49b71c5f
KH
742 * charset.c (update_charset_table): Update the table
743 bytes_by_char_head.
744 (init_charset_once): Initialize elements of bytes_by_char_head to
745 1 except for leading codes for private charases.
746
747 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
748 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
749 sequence.
750
9e80b57d
KR
7512000-06-09 Ken Raeburn <raeburn@gnu.org>
752
753 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
754 access the data it doesn't point to.
755
f83fe4b4
GM
7562000-06-08 Gerd Moellmann <gerd@gnu.org>
757
758 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 759 will be translated to a switch-frame event when reading the
f83fe4b4
GM
760 event queue. This is necessary because Emacs otherwise won't
761 perform a switch-frame to a new frame until some other event, for
762 example a keystroke event, forces it to do so. This has various
763 effects, one visible being that the cursor of a frame created with
764 C-x 5 2 or switched to with a window manager key binding like
765 A-TAB stays hollow because selected_window isn't on the newly
766 focused frame until the switch-frame is performed.
767
768 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
769 generating a switch-frame event if necessary.
770
771 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
772
773 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
774 it's an integer.
775
0890801b
KH
7762000-06-08 Kenichi Handa <handa@etl.go.jp>
777
778 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
779 charset.
780
173cbca8
GM
7812000-06-07 Gerd Moellmann <gerd@gnu.org>
782
3091c2a6
GM
783 * window.c (displayed_window_lines): Take empty lines at
784 the bottom of a window into account.
427ec082 785
f38952fe
GM
786 * window.c (displayed_window_lines): New function.
787 (Fmove_to_window_line): Use displayed_window_lines to determine
788 the number of lines to move, instead of using the window's height.
789
790 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
791 to stop reading, even if the form read sets point to a different
792 value when evaluated.
793
427ec082 794 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
795 put the cursor.
796
6ba6c818
KH
7972000-06-07 Kenichi Handa <handa@etl.go.jp>
798
799 * fileio.c (e_write): Free composition data if stored in
800 coding->cmp_data.
801
5f1aea9a
GM
8022000-06-06 Gerd Moellmann <gerd@gnu.org>
803
666852af
GM
804 * xdisp.c (display_line): Set row's and iterator's
805 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
806 Set cursor even if row ends in the middle of a character.
807 (dump_glyph_row): Print values of new flags.
808 (redisplay_window) <cursor movement in unchanged window>: When
809 point has been moved forward, and PT is at the end of the cursor
810 row, don't place the cursor in the next row if the cursor row ends
811 in the middle of a character or at ZV.
812
813 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
814 (struct glyph_row): Add starts_in_middle_of_char_p and
815 ends_in_middle_of_char_p.
816 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
817 ends_in_middle_of_char_p flag.
818 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
819
d13f3e2e
GM
820 * term.c (append_glyph): Revert change of 2000-06-06.
821
822 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
823 padding glyph not fitting on line as whole character not
824 fitting on line.
825
5f1aea9a
GM
826 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
827 this isn't true for images with `:ascent 100'.
828
10cda9b0
KH
8292000-06-06 Kenichi Handa <handa@etl.go.jp>
830
ed00559d
KH
831 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
832 as modified if it is originally unmodified.
833
10cda9b0
KH
834 * term.c (encode_terminal_code): Change the way to check if
835 terminal coding does any conversion.
836 (append_glyph): Set glyph->pixel_width correctly.
837
838 * xdisp.c (display_line): While checking line continuation, pay
839 attention to a padding glyph.
840
1969fae2
GM
8412000-06-05 Gerd Moellmann <gerd@gnu.org>
842
843 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
844
162ccef4
DL
8452000-06-05 Dave Love <fx@gnu.org>
846
f19f32dd
DL
847 * xdisp.c: Include fontset.h.
848
849 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
850
851 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
852
853 * dispnew.c: Conditionally include term.h.
854
855 * coding.h: Declare code_convert_string_norecord.
856
857 * frame.h (struct frame): Use volatile unconditionally.
858
859 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
860
861 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
862
863 * systime.h: Protect against multiple inclusion.
864 (timezone) [USG5_4]: Define as time_t.
865
866 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
867 (Foptimize_char_table, make_temp_name): Declare.
868
869 * Makefile.in (xdisp.o): Depend on fontset.h.
870
871 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
872
873 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
874 (Foptimize_char_table, make_temp_name): Declare.
875
427ec082 876 * s/irix4-0.h:
162ccef4
DL
877 * s/irix5-0.h:
878 * s/netbsd.h: Don't define autoconfiscated MATHERR.
879
2082fe81
DL
8802000-06-02 Dave Love <fx@gnu.org>
881
882 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
883
dcf671d2
GM
8842000-06-02 Gerd Moellmann <gerd@gnu.org>
885
886 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 887 result face, set flags in that face indicating that colors may not
dcf671d2
GM
888 be freed.
889
890 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
891 glyph, use the ASCII NUL character to determine the face.
892
d42122a3
DL
8932000-06-02 Dave Love <fx@gnu.org>
894
895 * sysdep.c: Conditionally include stdlib.h, unistd.h.
896 (VFORK_RETURN_TYPE): Remove.
427ec082 897
d42122a3
DL
898 * config.in: Add NO_MATHERR.
899
dd432f16
DL
9002000-06-01 Dave Love <fx@gnu.org>
901
90aa4ea8
DL
902 * cmds.c (internal_self_insert): Don't check
903 Vbefore_change_function, Vafter_change_function.
904
905 * insdel.c (signal_before_change, signal_after_change): Likewise.
906
907 * buffer.c (Vbefore_change_function, Vafter_change_function):
908 Variables and their initializations deleted.
909
2330c9d4
DL
910 * callint.c (Fcall_interactively): Doc fix.
911
dd432f16
DL
912 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
913
bf9e8804
DL
9142000-05-31 Dave Love <fx@gnu.org>
915
916 * textprop.c: Revert last change -- duplicated.
917
3694b4ab
GM
9182000-05-31 Gerd Moellmann <gerd@gnu.org>
919
920 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
921 in #if 0.
922
923 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
924
f14156cd
JR
9252000-05-31 Jason Rumney <jasonr@gnu.org>
926
8119aab8
JR
927 * search.c (Fre_search_forward, Fre_search_backward)
928 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
929
f14156cd
JR
930 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
931
4aab9be3
JR
9322000-05-30 Jason Rumney <jasonr@gnu.org>
933
934 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
935 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
936
937 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
938 member.
939
940 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
941 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
942 expand a nil default_filename.
943
944 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
945 pointer to glyph_to_pixel_coords, not a frame.
946
947 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
948 coding.h to dependencies.
949
950 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
951
952 * w32console.c (glyph_to_pixel_coords): Change first parameter to
953 window pointer to be consistent with w32term.c and xterm.c.
954
955 * w32fns.c: Format and doc changes to bring closer to xfns.c.
956 (VIETNAMESE_CHARSET): Define if not defined in system headers.
957 (Qline_spacing, Qcenter): New variables.
958 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
959 (x_set_line_spacing): New function.
960 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
961 macros.
962 (x_specified_cursor_type): New function.
963 (x_set_cursor_type): Use it.
964 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
965 and icon strings.
966 (validate_x_resource_name, x_get_resource_string): Measure lengths
967 of external strings in bytes.
968 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
969 GetTextExtentPoint32 with NULL title.
970 (Fx_create_frame): Initialize Qline_spacing.
971 (w32_load_system_font): Initialize font->double_byte_p.
972 (x_to_w32_charset): Use Vw32_charset_info_alist.
973 (Image, busy cursor, tooltip functions): Merged changes from
974 xfns.c. Not yet functional on Windows.
975
976 * w32gui.h (W32FontStruct): Add double_byte_p member.
977
978 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
979 (emacs_button_translation): Use it.
980 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
981 in `mask' to be set.
982
983 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
984 menu strings.
985
986 * w32term.c: Format and doc changes to bring closer to xterm.c.
987 (w32_char_font_type): New enum.
988 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
989 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
990 (w32_encode_char): New function.
991 (x_encode_char): Removed.
992 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
993 x_encode_char and w32_font_is_double_byte.
994 (x_produce_image_glyph): Use image_ascent.
995 (x_produce_glyphs): Use new version of w32_per_char_metric and
996 handle NULL return value. Allow extra line spacing.
997 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
998 (w32_get_glyph_overhangs): Remove unicode_p param. Use
999 w32_font_type member of glyph instead.
1000 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
1001 (fast_find_position): Make sure not to consider rows not visible
1002 in the window.
1003 (w32_read_socket) [WM_MENUSELECT]: Cannot call
1004 w32_menu_display_help with input blocked, as it can abort.
1005 (x_display_and_set_cursor): Choose cursor depending
1006 on buffer-local value of cursor_type.
1007 (x_draw_bar_cursor): Add parameter WIDTH.
1008
1009 * w32term.h (CP_DEFAULT): Define.
1010 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
1011
10fc3187
GM
10122000-05-30 Gerd Moellmann <gerd@gnu.org>
1013
1014 * search.c (Fre_search_forward, Fre_search_backward)
1015 (Fposix_search_backward, Fposix_search_forward): Doc fix.
1016
d0555360
KH
10172000-05-30 Kenichi Handa <handa@etl.go.jp>
1018
1019 * coding.c (detect_coding_iso2022): Fix code for checking
1020 CODING_CATEGORY_MASK_ISO_8_2.
1021
f1ad044f
SM
10222000-05-29 Stefan Monnier <monnier@cs.yale.edu>
1023
1024 * regex.c (PREFETCH_NOLIMIT): New function.
1025 (re_match_2_internal): Use it and adjust the end_match_2 logic.
1026
84ec3b4b
GM
10272000-05-29 Gerd Moellmann <gerd@gnu.org>
1028
66254a13
GM
1029 * syntax.c (find_defun_start): Move test for
1030 open_paren_in_column_0_is_defun_start outside of the loop.
1031
49e70dec
GM
1032 * xdisp.c (redisplay_window): Really switch buffers when
1033 displaying mode lines, and temporarily set selected_frame to the
1034 frame of the window that's redisplayed.
1035
84ec3b4b
GM
1036 * xfaces.c (free_realized_faces): Block/unblock input.
1037 (free_realized_multibyte_face): Ditto.
1038
869a3a14
DL
10392000-05-29 Dave Love <fx@gnu.org>
1040
1041 * textprop.c (Qkeymap): New variable.
1042 (syms_of_textprop): Intern it.
1043
1044 * keymap.c: Include intervals.h.
1045 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
1046
1047 * Makefile.in (keymap.o): Depend on intervals.h.
1048
1049 * keyboard.c (menu_bar_items, tool_bar_items)
1050 (Fexecute_extended_command): Deal with `keymap' property.
1051 (read_key_sequence): Track map from `keymap' property as well as
1052 `local_map'.
1053
1054 * intervals.c (get_local_map): Extra arg to allow looking for
1055 `keymap' too.
1056
1057 * intervals.h (map_property): New enum.
1058 (get_local_map): Extra arg using it.
1059 (Qkeymap): Declare.
1060
84ec3b4b 1061 * lisp.h (get_local_map): Don't declare here.
869a3a14 1062
89d0c844
KH
10632000-05-29 Kenichi Handa <handa@etl.go.jp>
1064
1065 * Makefile.in (callproc.o): Depend on composite.h.
1066
1067 * callproc.c: Include composite.h.
1068 (Fcall_process): Handle composition correctly.
1069
1070 * coding.h (coding_allocate_composition_data): Extern it.
1071 (coding_restore_composition): Likewise.
1072
1073 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
1074 yet allocated, finish decoding with result
1075 CODING_FINISH_INSUFFICIENT_CMP.
1076 (coding_allocate_composition_data): Make it non-static.
1077 (coding_restore_composition): Likewise.
1078
797a084a
EZ
10792000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
1080
1081 * charset.c (syms_of_charset): Revert last change.
1082
cf872af5
EZ
10832000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1084
1085 * term.c (produce_glyphs): Treat characters from the eight-bit-*
1086 charsets as unibyte, with 1-column screen width. Sent by Kenichi
1087 Handa.
1088
5b1ae051
EZ
10892000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
1090
1091 * charset.c (syms_of_charset): Set width of character sets
1092 eight-bit-control and eight-bit-graphic to 1 column.
1093
34ec9ebe
GM
10942000-05-26 Gerd Moellmann <gerd@gnu.org>
1095
1096 * config.in (HAVE_SPEED_T): New define.
1097
1098 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
1099 `extern speed_t'.
1100
dd854dc2
DL
11012000-05-26 Dave Love <fx@gnu.org>
1102
1103 * coding.c (shrink_decoding_region): Initialize eol_conversion.
1104
1105 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
1106 (Fsubr_arity): New function.
1107 (syms_of_data): Install them.
1108
ba9f8f95
KH
11092000-05-26 Kenichi Handa <handa@etl.go.jp>
1110
0f3e0672
KH
1111 * charset.c (init_charset_once): Set the table bytes_by_char_head
1112 correctly.
1113
cebefb44
KH
1114 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
1115 the default fontset to what Emacs uses by default.
0f3e0672
KH
1116 (check_registry_encoding): This function deleted.
1117 (Fset_fontset_font): Remove the adhoc condition for the default
1118 fontset. Allow cons in FONTNAME.
cebefb44 1119
0f3e0672
KH
1120 * fns.c (map_char_table): Ignore char-table entries for
1121 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 1122
7a18af49
KR
11232000-05-25 Ken Raeburn <raeburn@gnu.org>
1124
1125 * emacs.c (main): Initialize keyboard syms before initializing
1126 window code, so face names are available.
1127
d2af47df
SM
11282000-05-25 Stefan Monnier <monnier@cs.yale.edu>
1129
1130 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
1131 of an anchor at the beginning of a shy-group.
1132
fc6a6a4e
GM
11332000-05-25 Gerd Moellmann <gerd@gnu.org>
1134
1135 * xdisp.c (handle_invisible_prop): Don't try to skip over
1136 invisible text if end of text is already reached.
1137
005f0d35
DL
11382000-05-25 Dave Love <fx@gnu.org>
1139
02513cdd
DL
1140 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
1141
005f0d35
DL
1142 * coding.c (encode_eol): Add null statement after label.
1143
89f6ca4e
EZ
11442000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
1145
1146 * w16select.c (Fw16_set_clipboard_data): Fix the change from
1147 2000-05-20.
1148
a4e1759e
KH
11492000-05-25 Kenichi Handa <handa@etl.go.jp>
1150
1151 * ccl.c (ccl_driver): Fix previous change.
1152
eacfd7fe
KH
11532000-05-25 Kenichi Handa <handa@etl.go.jp>
1154
46ab33a9
KH
1155 * coding.c (run_pre_post_conversion_on_str): Set point to the
1156 beginning of buffer before calling coding->post_read_conversion.
1157 (decode_coding_string): Give correct args to
1158 run_pre_post_conversion_on_str.
1159 (encode_coding_string): Likewise.
1160
eacfd7fe
KH
1161 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
1162 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
1163 eight-bit-graphic correctly.
1164
f8569325
DL
11652000-05-24 Kenichi HANDA <handa@etl.go.jp>
1166
1167 * fileio.c (Finsert_file_contents): Even if a file is not found,
1168 execute codes for setting up coding system. Call
1169 after-insert-file-functions unconditionally.
1170
04545643
GM
11712000-05-24 Gerd Moellmann <gerd@gnu.org>
1172
1173 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
1174 BSD_PGRPS are not defined.
1175
747d90ea
KH
11762000-05-24 Kenichi Handa <handa@etl.go.jp>
1177
1178 * charset.c (update_charset_table): Accept nil in LONG_NAME and
1179 DESCRIPTION.
1180 (syms_of_charset): Avoid building same strings.
1181
716e3b88
GM
11822000-05-23 Gerd Moellmann <gerd@gnu.org>
1183
1184 * lread.c (Fload): Add a comment about the meaning of
1185 Vuser_init_file being t.
1186
1187 * puresize.h (BASE_PURESIZE): Increase to 675000.
1188
1189 * s/gnu-linux.h (setpgrp): Don't define it here because this
1190 prevents compilation on GNU/Linux systems with glib 2.2.
1191
1192 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
1193 as setpgid.
427ec082 1194
9aeb39fa
EZ
11952000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
1196
1197 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
1198 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
1199 version.
1200 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
1201
29ced61b
KH
12022000-05-23 Kenichi Handa <handa@etl.go.jp>
1203
0574a2ed
KH
1204 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1205 unconditionally.
1206
3d80f24d
KH
1207 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1208
1209 * term.c (encode_terminal_code): Set coding->src_multibyte
1210 properly.
1211
29ced61b
KH
1212 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1213
d7e00792
KH
12142000-05-22 Kenichi Handa <handa@etl.go.jp>
1215
c9d80d38
KH
1216 * keyboard.c (read_char): Allow character codes 128..255 to be
1217 handled by input-method-function.
1218
d7e00792
KH
1219 * insdel.c (adjust_markers_for_replace): Fix previous change.
1220 (adjust_after_replace): If PREV_TEXT is nil, call
1221 adjust_markers_for_insert, not adjust_markers_for_replace.
1222
087121cc 12232000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1224
087121cc
GM
1225 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1226 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1227 [HAVE_GRANDPT]: Define.
1228 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1229
1230 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1231 like SYSV_PTYS.
1232
1233 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1234
1235 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1236
c9671f81
KH
12372000-05-20 Kenichi Handa <handa@etl.go.jp>
1238
1239 The following changes are to handle 8-bit characters in a
1240 multibyte buffer/string without facing with byte combining
1241 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1242 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1243
1244 * Makefile.in (fns.o): Depend on charset.h.
1245
1246 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1247 convert it to unibyte.
1248 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1249
1250 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1251 apparent char boundary.
1252 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1253 0x80..0x9F to/from multibyte form.
1254
1255 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1256 to unibyte.
1257
1258 * callproc.c (Fcall_process): Always encode an argument string if
1259 it is multibyte. Setup src_multibyte and dst_multibyte members of
1260 process_coding properly.
ce75fd23 1261
c9671f81
KH
1262 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1263 SPLIT_NON_ASCII_CHAR.
1264
1265 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1266 as is.
1267 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1268
1269 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1270 variables.
1271 (SPLIT_CHARACTER_SEQ): This macro deleted.
1272 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1273 valid.
1274 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1275 and eight-bit-graphic.
1276 (char_to_string): Likewise. Signal an error for too large
1277 character code.
1278 (char_printable_p): Return 0 for 8-bit characters.
1279 (update_charset_table): Update iso_charset_table only when a final
1280 character is non-negative.
1281 (find_charset_in_text): Renamed from find_charset_in_str.
1282 Arguments and return value changed. Callers changed.
1283 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1284 be -1 if CHARSET is used only internally.
1285 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1286 eight-bit-graphic.
1287 (Fcharset_after): Simplified.
1288 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1289 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1290 (multibyte_chars_in_text): Simplified by assuming there's no
1291 invalid multibyte sequence.
1292 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1293 str_as_unibyte): New functions.
1294 (Fstring): Simpified by assuming that byte combining never
1295 happens.
1296 (init_charset_once): Initialization for
1297 LEADING_CODE_8_BIT_CONTROL.
1298 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1299 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1300 eight-bit-control and eight-bit-graphic.
1301
1302 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1303 CHARSET_8_BIT_GRAPHIC): New macros.
1304 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1305 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1306 (CHARSET_REVERSE_CHARSET): Likewise.
1307 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1308 eight-bit-graphic.
1309 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1310 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1311 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1312 encounter an invalid multibyte sequence.
1313 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1314 sequence is always valid.
1315 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1316 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1317 macros.
1318 (CHAR_STRING): For 8-bit characters, call char_to_string.
1319 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1320 multibyte sequence is always valid.
1321 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1322 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1323 str_as_unibyte): Extern them.
1324 (BCOPY_SHORT): Fix a bug.
1325 (CHAR_LEN): This macro deleted. Callers changed to use
1326 CHAR_BYTES.
1327 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1328 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1329 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1330
bd4bde7f 1331 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1332 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1333 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1334 EMIT_BYTES): New macros.
1335 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1336 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1337 macros deleted.
1338 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1339 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1340 check the validity of multibyte sequence.
1341 (decode_coding_emacs_mule): New function.
1342 (encode_coding_emacs_mule): New macro.
1343 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1344 the source.
1345 (DECODE_ISO_CHARACTER): Just return a character code.
1346 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1347 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1348 EMIT_CHAR to produced decoded characters. Exit the loop only by
1349 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1350 block here.
1351 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1352 only position codes for an invalid character.
1353 (encode_designation_at_bol): Return new destination pointer. 5th
1354 arg DSTP is changed to DST.
1355 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1356 from the source by ONE_MORE_CHAR. Don't handle the case of last
1357 block here.
1358 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1359 macros deleted.
1360 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1361 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1362 TWO_MORE_BYTES to fetch a byte from the source.
1363 (encode_eol): Pay attention to coding->src_multibyte.
1364 (detect_coding, detect_eol): Preserve members src_multibyte and
1365 dst_multibyte.
1366 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1367 (encoding_buffer_size): Set magnification to 3 for all coding
1368 systems that require encoding.
1369 (ccl_coding_driver): For decoding, be sure that the result is
1370 valid multibyte sequence.
1371 (decode_coding): Initialize coding->errors and coding->result.
1372 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1373 and raw-text, always call decode_eol. Handle the case of last
1374 block here. If not coding->dst_multibyte, convert the resulting
1375 sequence to unibyte.
1376 (encode_coding): Initialize coding->errors and coding->result.
1377 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1378 and raw-text, always call encode_eol. Handle the case of last
1379 block here.
1380 (shrink_decoding_region, shrink_encoding_region): Detect cases
1381 that we can't skip data more rigidly.
1382 (code_convert_region): Setup src_multibyte and dst_multibyte
1383 members of coding. For decoding, if the buffer is multibyte,
1384 convert the source sequence to unibyte in advance. For encoding,
1385 if the buffer is multibyte, convert the resulting sequence to
1386 multibyte afterward.
1387 (run_pre_post_conversion_on_str): New function.
1388 (code_convert_string): Deleted and divided into the following two.
1389 (decode_coding_string, encode_coding_string): New functions.
1390 (code_convert_string1, code_convert_string_norecord): Call one of
1391 above.
1392 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1393 MAKE_NON_ASCII_CHAR.
1394 (Fset_terminal_coding_system_internal,
1395 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1396 and dst_multibyte members.
1397 (init_coding_once): Initialize iso_code_class with new enum
1398 ISO_control_0 and ISO_control_1.
1399
1400 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1401 devided into ISO_control_0 and ISO_control_1.
1402 (struct coding_system): New members src_multibyte, dst_multibyte,
1403 errors, and result. Delete member fake_multibyte.
1404 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1405 nonzero.
1406 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1407 nonzero.
1408
1409 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1410 (Faset): Likewise.
1411
1412 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1413 multibyte form.
1414 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1415 combining occurs.
1416 (Ftranspose_region): Delete codes for handling byte combining.
1417
1418 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1419 dst_multibyte members of coding. On handling REPLACE on unibyte
1420 buffer, convert the result of decode_coding to unibyte. On
1421 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1422 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1423 multibyteness of the source (buffer or string).
1424
1425 * fns.c (concat): Handle 8-bit characters correctly.
1426 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1427 unibyte in the result.
1428 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1429 valid multibyte form in the result.
1430 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1431 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1432 return -1, signal an error.
1433 (base64_encode_1): New arg MULTIBYTE. Get each character by
1434 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1435 character is found, return -1.
1436 (Fbase64_decode_region): Delete codes for handling byte-combining.
1437 Treat each decoded byte as a unibyte character.
1438 (Fbase64_decode_string): Return unibyte string.
1439 (Fcompare_strings, concat, string_byte_to_char): Use
1440 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1441 FETCH_STRING_CHAR_ADVANCE.
1442 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1443 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1444
1445 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1446 SPLIT_NON_ASCII_CHAR.
1447 (fontset_ref_via_base, fontset_set): Likewise
1448
1449 * insdel.c (adjust_markers_for_record_delete): Deleted.
1450 (adjust_markers_for_insert): Argument changed. Caller changed.
1451 (adjust_markers_for_replace): Likewise.
1452 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1453 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1454 (copy_text): Delete unused local varialbe c_save. For converting
1455 to multibyte, be sure to make all 8-bit characters in valid
1456 multibyte form.
1457 (count_size_as_multibyte): Handle 8-bit characters correctly.
1458 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1459 adjust_after_replace, replace_range, del_range_2)
1460 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1461 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1462 adjust_after_replace, replace_range, del_range_2) Delete codes for
1463 handling byte combining.
1464 (adjust_before_replace): Deleted.
427ec082 1465
c9671f81
KH
1466 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1467 SPLIT_NON_ASCII_CHAR.
1468 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1469 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1470 unconditionally.
1471 (Fkey_description): Likewise.
1472
1473 * lread.c (read1): On reading multibyte string, be sure to make
1474 all 8-bit chararacters in valid multibyte form.
1475 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1476
1477 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1478 unconditionally.
1479
1480 * process.c (Fstart_process): GCPRO current_dir before calling
1481 Ffind_operation_coding_system. Encode arguments here.
1482 (create_process): Don't encode arguments here. Setup
1483 src_multibyte and dst_multibyte members of struct coding.
1484 (read_process_output): Setup src_multibyte and dst_multibyte
1485 members of struct coding. If the output is to multibyte buffer,
1486 always decode the output of the process. Adjust the
1487 representation of 8-bit characters to the multibyteness of the
1488 output.
1489 (send_process): Setup coding->src_multibyte according to the
1490 multibyteness of the source.
1491
1492 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1493 unconditionally.
1494 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1495 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1496
1497 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1498 CHAR_LEN.
1499
1500 * w16select.c (Fw16_set_clipboard_data): Setup members
1501 src_multibyte and dst_multibyte of coding. Adjusted for the
1502 change for find_charset_in_str.
1503 (Fw16_get_clipboard_data): Likewise.
1504
1505 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1506 dst_multibyte of coding.
1507 (x_to_w32_font): Likewise.
1508
1509 * w32select.c (Fw32_set_clipboard_data): Setup members
1510 src_multibyte and dst_multibyte of coding. Adjusted for the
1511 change for find_charset_in_str.
1512 (Fw32_get_clipboard_data): Likewise.
1513
1514 * xdisp.c (get_next_display_element): Handle 8-bit characters
1515 correctly.
1516 (next_element_from_display_vector): Use CHAR_BYTES instead of
1517 CHAR_LEN.
1518 (disp_char_vector): Use SPLIT_CHAR instead of
1519 SPLIT_NON_ASCII_CHAR.
1520
1521 * xselect.c (selection_data_to_lisp_data): Setup members
1522 src_multibyte and dst_multibyte of coding. Adjusted for the
1523 change for find_charset_in_str.
1524 (lisp_data_to_selection_data): Likewise.
1525
5f64c9e0
GM
15262000-05-19 Gerd Moellmann <gerd@gnu.org>
1527
2b63d473
GM
1528 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1529 buffer.
1530
5f64c9e0
GM
1531 * dispextern.h (Vimage_types): Add extern declaration.
1532
1533 * xdisp.c (Vimage_types): Moved here from xfns.c.
1534 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1535
1536 * xfns.c (Vimages_types): Moved to xdisp.c.
1537 (syms_of_xfns): Move `image-types' to xdisp.c.
1538
1539 * w32fns.c (Vimage_types): Removed.
1540 (syms_of_w32fns): Remove `image-types'.
1541
813086ea
KH
15422000-05-18 Kenichi Handa <handa@etl.go.jp>
1543
1544 * fns.c (map_char_table): Pay attention to character number of
1545 charset. Check the validity of charset at the first level. For
1546 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1547 the default value.
1548
1549 * fontset.c: Include "buffer.h".
1550 (fs_load_font): If the face has fontset, record the face ID in
1551 that fontset.
1552 (Finternal_char_font): New function.
1553 (accumulate_font_info): New function.
1554 (Ffontset_info): Rewritten for the new fontset implementation.
1555 (syms_of_fontset): Register Vdefault_fontset in the first element
1556 of Vfontset_table. Include Vdefault_fontset in
1557 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1558 function.
1559
bdaebbf0
DL
15602000-05-16 Dave Love <fx@gnu.org>
1561
1562 * m/iris5d.h: Deleted -- unused.
1563
cb613bb8
GM
15642000-05-16 Gerd Moellmann <gerd@gnu.org>
1565
b15f3b77
GM
1566 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1567 `invalid' instead of `illegal'.
1568
1569 * indent.c (Fmove_to_column): When ending within a tab, insert
1570 spaces first so that markers at the end of the tab get adjusted.
1571
835c1b36
GM
1572 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1573 buffer list that wasn't selected in that frame.
1574
cb613bb8
GM
1575 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1576 is needed on mescaline, use a 2 char prefix, and call
1577 make_temp_name with second arg non-zero.
1578
1579 * fileio.c (make_temp_name): New function, extracted from
1580 Fmake_temp_name.
1581 (Fmake_temp_name): Use it.
1582
f685bea9
EZ
15832000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1584
1585 * window.c (coordinates_in_window): Subtract 1 when computing
1586 right_x.
1587
a1b8d58b
GM
15882000-05-15 Gerd Moellmann <gerd@gnu.org>
1589
1590 * Makefile.in (lisp): Add env.elc.
1591
1592 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1593
a265079f
GM
15942000-05-12 Gerd Moellmann <gerd@gnu.org>
1595
1596 * search.c (Freplace_match): Handle case of `\N' in the
1597 replacement when there's no group N.
1598
da4496b6
GM
15992000-05-11 Gerd Moellmann <gerd@gnu.org>
1600
0ace421a
GM
1601 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1602 of the message to message_dolog.
1603
1172eb8d
GM
1604 * keyboard.c (read_char): Don't clear current message for help
1605 events; let the code handling help events handle this. Change
1606 code detecting help events that should be ignored.
1607
da4496b6
GM
1608 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1609 we're interating over a string.
1610
0623e40f
DL
16112000-05-09 Dave Love <fx@gnu.org>
1612
1613 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1614 that offset before writing. Move gcpro region past call of
1615 Ffile_regular_p.
1616
bae2503b
DL
16172000-05-04 Dave Love <fx@gnu.org>
1618
1619 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1620
ec82fb2f
GM
16212000-05-04 Gerd Moellmann <gerd@gnu.org>
1622
1623 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1624 of inserted characters when BUF equals the current buffer, and PT
1625 is in front of or equal to FROM.
1626
cbf18892
GM
16272000-05-03 Gerd Moellmann <gerd@gnu.org>
1628
4ff40dd0
GM
1629 * xdisp.c (handle_single_display_prop): If display property value
1630 is invalid, or something not supported on the frame, restore
1631 iterator's position to what it was initially. Make sure to return
1632 0 for invalid and unsupported property values.
1633
cbf18892
GM
1634 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1635 that x_per_char_metric returns null.
1636
1b0672c3
GM
16372000-05-02 Gerd Moellmann <gerd@gnu.org>
1638
576da55d
GM
1639 * xterm.h (struct face): Add forward declaration.
1640 (struct image): Ditto.
1641 (image_ascent): Add prototype.
1642
1643 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1644 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1645 image_ascent instead of using IMAGE_ASCENT.
1646
1647 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1648 (IMAGE_ASCENT): Removed.
1649
1650 * xfns.c (Qcenter): New variable.
1651 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1652 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1653 (image_ascent): New function.
1654 (lookup_image): Recognize `:ascent center'.
1655 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1656 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1657 (xbm_load): Don't set image's ascent here.
1658 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1659 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1660 check ascent values here.
1661 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1662 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1663 (syms_of_xfns): Initialize Qcenter.
1664
1b0672c3
GM
1665 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1666 to the limits, increase the limits.
1667
0d7811ed
KH
16682000-05-01 Kenichi Handa <handa@etl.go.jp>
1669
1670 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1671 Check Vfont_encoding_alist against the full name of the opened
1672 font.
1673
a943a5ca
GM
16742000-04-28 Gerd Moellmann <gerd@gnu.org>
1675
1676 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1677 taller than the window.
1678
5dba1e29
KH
16792000-04-28 Kenichi Handa <handa@etl.go.jp>
1680
1681 * xfaces.c (realize_x_face): Fix the argument of the second
1682 xassert. BASE_FACE may not be a face for ASCII.
1683
353964e3
GM
16842000-04-27 Gerd Moellmann <gerd@gnu.org>
1685
c76e04a8
GM
1686 * print.c (print_object): Treat print-length < 0 as nil.
1687
1688 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1689
1690 * s/freebsd.h (TERMCAP_OBJ): Removed.
1691 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1692
1693 * lread.c (read1): Don't treat period followed by certain
1694 characters as symbol start.
1695
1696 * xfns.c (slurp_file): New function.
1697 (xbm_image_p): Handle case of in-memory XBM files.
1698 (xbm_scan): Rewritten to work on memory buffers instead of files.
1699 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1700 Work on memory buffers instead of files. If DATA is null test
1701 if buffer looks like an in-memory XBM file.
1702 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1703 memory buffers instead of files.
1704 (xbm_file_p): New function.
1705 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1706
353964e3
GM
1707 * lread.c (end_of_file_error): New function.
1708 (read1): Call it instead of signaling `end-of-file' directly.
1709
427ec082 1710 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1711 with Fprinc instead of Fprin1.
1712
24d744ac
KR
17132000-04-26 Ken Raeburn <raeburn@gnu.org>
1714
1715 * window.c (freeze_window_start): Check that minibuffer scroll
1716 window isn't nil before extracting the window structure pointer
1717 from it.
1718
1719 * undo.c (record_delete): If we hit the end of the undo list, stop
1720 picking elements apart.
1721
7464346d
GM
17222000-04-26 Gerd Moellmann <gerd@gnu.org>
1723
1724 * xdisp.c (display_line): If lines are continued, restore
1725 iterator's ascent/descent information to the values before the
1726 first glyph not fitting on the line.
1727
612839b6
GM
17282000-04-25 Gerd Moellmann <gerd@gnu.org>
1729
1730 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1731 positions in glyph matrix. Don't compute new window end
1732 positions.
1733
1734 * dispnew.c (increment_matrix_positions): Renamed from
1735 increment_glyph_matrix_buffer_positions.
1736 (increment_row_positions): Renamed from
1737 increment_glyph_row_buffer_positions.
1738
1739 * dispextern.h: Change names of renamed functions from dispnew.c
1740 in prototypes.
1741
cc181e95
GM
17422000-04-24 Gerd Moellmann <gerd@gnu.org>
1743
abfcc168
GM
1744 * fileio.c (Fdo_auto_save): Create directories for auto-save
1745 list file if necessary.
1746
cc181e95
GM
1747 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1748 from buffer or frame.
1749 (automatic_hscrolling_p): New variable.
1750 (hscroll_windows): Scroll windows horizontally only if automatic
1751 hscrolling is allowed.
1752 (syms_of_xdisp): New variable `automatic-hscrolling'.
1753
1754 * frame.h (struct frame): Add member extra_line_spacing.
1755
1756 * xfns.c (x_set_line_spacing): New function.
1757 (Fx_create_frame): Set line spacing from resources.
1758 (Qline_spacing): New variable.
1759 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1760
cc181e95
GM
1761 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1762
1763 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1764 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1765 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1766 extra_line_spacing from default value.
1767 (init_buffer_once): Initialize default value of extra_line_spacing.
1768
1769 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1770 and extra3.
1771
1772 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1773 prompt_width. Add extra line spacing.
1774
1775 * term.c (produce_glyphs): Remove reference to struct it's
1776 prompt_width.
1777
1778 * dispextern.h (struct it): Remove member prompt_width, add
1779 extra_line_spacing.
1780
58827478
GM
17812000-04-22 Gerd Moellmann <gerd@gnu.org>
1782
1783 * dispnew.c (update_frame_line): When writing a whole line, make
1784 sure cursor is in the right row afterwards, otherwise a use of
1785 capability `ch' in cmgoto might leave the cursor in the row below.
1786
25a87f42
GM
17872000-04-21 Gerd Moellmann <gerd@gnu.org>
1788
1789 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1790
1791 * keyboard.c (timer_check): Fix typo in comment.
1792
54edf5c2
KH
17932000-04-21 Kenichi Handa <handa@etl.go.jp>
1794
1795 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1796 name change: ch -> character.
1797
3a64eef5
GM
17982000-04-20 Gerd Moellmann <gerd@gnu.org>
1799
1800 * keyboard.c (echo_message_buffer): New variable.
1801 (echo_now): Set echo_message_buffer to the echo area buffer used
1802 to display the echo.
1803 (cancel_echoing): Reset echo_message_buffer to nil.
1804 (read_char): Code rewritten that handles canceling an echo or
1805 echoing a dash, respectively.
1806
1807 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1808 directory doesn't exist.
1809
6142fdcb
DL
18102000-04-19 Dave Love <fx@gnu.org>
1811
1812 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1813 (concat): Don't allow numeric args.
1814 (Fconcat): Doc change.
6142fdcb 1815
ac6b5352
SM
18162000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1817
1818 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1819 instead define end_match(1|2) more carefully.
1820 Use GET_CHAR_BEFORE_2 for `begline'.
1821
cb9215e4
GM
18222000-04-19 Gerd Moellmann <gerd@gnu.org>
1823
5e3dac3f
GM
1824 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1825 on 64-bit systems where NULL is defined as `0'.
1826
1827 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1828 the `variable argument list' to make it work on Alpha.
1829
cb9215e4
GM
1830 * m/alpha.h (_LP64) [!_LP64]: Define.
1831 (ORDINARY_LINK): Define for NetBSD.
1832
1833 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1834
f532dca0
DL
18352000-04-19 Dave Love <fx@gnu.org>
1836
c750667e
DL
1837 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1838 change.
1839
1840 * Makefile.in (LIBS): Don't use.
1841 (GETLOADAVG_OBJ): Define again.
1842 (otherobj): Add GETLOADAVG_OBJ.
1843
f532dca0
DL
1844 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1845
1c7e22fd
GM
18462000-04-18 Gerd Moellmann <gerd@gnu.org>
1847
f6d3257b
GM
1848 * lread.c (read_filtered_event): Cancel and start busy cursor.
1849
427ec082 1850 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1851 that the per-character metrics may be null.
1852
e10f64e7
GM
18532000-04-17 Gerd Moellmann <gerd@gnu.org>
1854
0daee095
GM
1855 * buffer.c (clone_per_buffer_values): New function.
1856 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1857 clone_per_buffer_values if CLONE is not nil.
1858
e10f64e7
GM
1859 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1860
38687d43
DL
18612000-04-16 Dave Love <fx@gnu.org>
1862
1863 * Makefile.in: Remove obsolete localcpp stuff.
1864 (GETLOADAVG_OBJ): Don't define.
1865 (obj): Move LIBOBJS...
1866 (otherobj): ... to here.
1867 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1868 whitespace-only lines after the continuation (Irix).
1869
c21c7262
GM
18702000-04-14 Gerd Moellmann <gerd@gnu.org>
1871
1872 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1873
1874 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1875
314767c0
DL
18762000-04-14 Dave Love <fx@gnu.org>
1877
1878 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1879 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1880 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1881 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1882 NLIST_STRUCT.
1883
1884 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1885 autoconfiscated HAVE_GETLOADAVG.
1886
1887 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1888 BROKEN_MKTIME.
1889
a2522dca
GM
18902000-04-14 Gerd Moellmann <gerd@gnu.org>
1891
1892 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1893 (fill_in_lock_file_name): Avoid existing files that aren't
1894 links.
1895
33744b5d
DL
18962000-04-14 Dave Love <fx@gnu.org>
1897
c21c7262 1898 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1899 (INTERVAL_SRC): Convert to make variable.
1900 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1901 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1902 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1903 add LIBOBJS.
1904 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1905 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1906 (shortlisp): Add facemenu, float-sup, frame.
1907 (SOME_MACHINE_LISP): Remove them from here.
1908 (LIBES): Change unused LDLIBS to autoconf LIBS.
1909
1910 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1911
9d3d5916
KH
19122000-04-14 Kenichi Handa <handa@etl.go.jp>
1913
1914 * composite.c (update_compositions): If FROM and TO are not in a
1915 valid range, do nothing.
1916
198e3c7a
GM
19172000-04-13 Gerd Moellmann <gerd@gnu.org>
1918
1919 * tparam.c (tparam1): Abort when encountering an unknown
1920 `%'-specifier.
1921
1922 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1923 terminfo.o.
1924
1925 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1926 as TERMCAP_OBJ.
1927
055a28c9
EZ
19282000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1929
1930 * fileio.c (a_write): Remove redundant semi-colons.
1931 (e_write): Return -1 if failed to write all the data.
1932 This fixes the changes made at 1999-12-15.
1933
f5c75033
DL
19342000-04-12 Dave Love <fx@gnu.org>
1935
1936 * fns.c (mapcar1): Test for null vals to support mapc.
1937 (Fmapc): New function.
1938
0c3cfc51
EZ
19392000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1940
1941 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1942 (IT_frame_up_to_date): Support the buffer local value of
1943 cursor-type, if defined.
1944
33465a31
DL
19452000-04-10 Dave Love <fx@gnu.org>
1946
1947 * editfns.c (preceding-char, following-char): Doc fix.
1948
6ed56568
KR
19492000-04-10 Ken Raeburn <raeburn@gnu.org>
1950
1951 * Makefile.in (temacs): Revert 2000-03-12 change.
1952
7cf80d4e
JR
19532000-04-10 Jason Rumney <jasonr@gnu.org>
1954
1955 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1956
34f3f342
GM
19572000-04-10 Gerd Moellmann <gerd@gnu.org>
1958
1a1b1895
GM
1959 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1960 area buffer, if it's not set up yet.
1961
34f3f342
GM
1962 * indent.c (compute_motion): Set immediate_quit.
1963
be0dbdab
GM
19642000-04-09 Gerd Moellmann <gerd@gnu.org>
1965
c45be9ac
GM
1966 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1967 variable.
1968 (realize_tty_face): Suppress boldness if colors are the inverse of
1969 the default colors, and tty_suppress_bold_inverse_default_colors_p
1970 is set.
1971 (Ftty_suppress_bold_inverse_default_colors): New function.
1972 (syms_of_xfaces): Defsubr it.
1973
be0dbdab
GM
1974 * buffer.c (Frestore_buffer_modified_p): New function.
1975 (syms_of_buffer): Defsubr it.
1976
e8413c3b
KR
19772000-04-08 Ken Raeburn <raeburn@gnu.org>
1978
87f67317
KR
1979 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1980 charset id (int) argument, not a charset (Lisp_Object).
1981
e8413c3b
KR
1982 * coding.h (code_convert_string): Declare.
1983 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1984 object, as the fourth argument to code_convert_string.
1985
1986 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1987 value.
1988 (Fset_fontset_font): Use EQ to compare lisp objects.
1989
7c752c80
KR
19902000-04-05 Ken Raeburn <raeburn@gnu.org>
1991
c0333abc
KR
1992 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1993 a pointer that looks like a lisp object.
1994 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1995 zero, instead see whether it's an integer object, since they can't
1996 have intervals.
1997 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1998
7c752c80
KR
1999 * dispnew.c (allocate_matrices_for_frame_redisplay,
2000 direct_output_forward_char): Use X(U)INT and make_number as needed
2001 to convert between (unsigned) int values and lisp integers.
2002 * keyboard.c (read_key_sequence): Likewise.
2003 * lread.c (substitute_object_recurse): Likewise.
2004 * fns.c (concat, hash_lookup, hash_remove): Likewise.
2005 * minibuf.c (do_completion, Fminibuffer_complete_word,
2006 Fminibuffer_completion_help): Likewise.
2007 * term.c (produce_special_glyphs): Likewise.
2008
2009 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
2010 * print.c (print_preprocess, print_object): Likewise.
2011
2012 * search.c (compile_pattern): Use NILP when checking for nil.
2013
74e49b38
KR
2014 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
2015 __OPTIMIZE__]: Provide a GNU C macro version that handles
2016 lisp-object unions.
2017 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
2018 field, to better cope with ENABLE_CHECKING and calls that modify a
2019 Lisp_Object using its old value.
2020
685e5ed2
GM
20212000-04-04 Gerd Moellmann <gerd@gnu.org>
2022
c407c570
GM
2023 * window.c (compare_window_configurations): Signal an error
2024 if parameters C1 or C2 aren't window configurations.
2025
685e5ed2
GM
2026 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
2027 AFTER_POTENTIAL_GC calls around calls to functions that can
2028 signal an error and thus invoke the debugger.
2029
587a49ab
GM
20302000-04-03 Gerd Moellmann <gerd@gnu.org>
2031
62f20204
GM
2032 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
2033 an error if decoding fails.
2034
587a49ab
GM
2035 * keyboard.c (lispy_mouse_names): Variable removed.
2036 (Vlispy_mouse_stem): New variable.
2037 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
2038 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
2039 for any mouse button number. Increase size of mouse_syms and
2040 button_down_location as needed. Call modify_event_symbol with
2041 different arguments.
2042 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
2043 Call modify_event_symbol with different arguments.
2044 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
2045 for any button number. Call modify_event_symbol with different
2046 arguments.
2047 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
2048 Accept a string for NAME_ALIST_OR_STEM.
2049
2050 * lisp.h (larger_vector): Add prototype.
2051
2052 * fns.c (larger_vector): Make externally visible.
2053
2054 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
2055
2d1675e4
SM
20562000-04-02 Stefan Monnier <monnier@cs.yale.edu>
2057
2058 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
2059 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
2060 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
2061 we are between str1 and str2.
2062 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
2063 (PATFETCH): Use `TRANSLATE'.
2064 (PATFETCH_RAW): Fetch multibyte char if applicable.
2065 (PATUNFETCH): Remove.
2066 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
2067 When writing a char, write it directly into the pattern buffer rather
2068 than going needlessly through a temp char-array.
2069 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
2070 multibyte magic and remove the useless `#ifdef emacs'.
2071 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
2072 buffer.
2073
2074 * regex.h (struct re_pattern_buffer): Make field `multibyte'
2075 conditional on `emacs'.
2076
2077 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
2078
cc2d8c6b
KR
20792000-04-01 Ken Raeburn <raeburn@gnu.org>
2080
2081 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
2082 non-union-type versions of XMARK and friends here, because XMARK
2083 and friends won't work on an integer field if NO_UNION_TYPE is not
2084 defined.
2085 (make_number): Define as a function if it's not defined as a
2086 macro.
2087
09654086
KR
2088 * composite.c (run_composite_function): Use NILP when checking for
2089 nil.
2090 (syms_of_composite): Delete local var NARGS, pass an int as first
2091 argument to Fmake_hash_table.
2092
2387b382
KR
2093 * editfns.c (text_property_stickiness): Use NILP to test
2094 Lisp_Object boolean value.
2095 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
2096 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
2097 problems reading from and changing the same lisp value in an
2098 XSETSTRING call.
2099
27660e89
GM
21002000-04-01 Gerd Moellmann <gerd@gnu.org>
2101
2102 * term.c (TN_no_color_video): New variable.
2103 (term_init): Intitialize TN_no_color_video.
2104 (enum no_color_bit): New enumeration.
2105 (MAY_USE_WITH_COLORS_P): New macro.
2106 (turn_on_face): Use it to determine if attributes may be used
2107 combined with colors.
2108
3578db3c
KR
21092000-04-01 Ken Raeburn <raeburn@gnu.org>
2110
2111 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
2112 with int lvalues via casts; instead, just yield lisp object
2113 lvalues.
2114 (enlarge_window): Variable sizep now points to Lisp_Object. Use
2115 proper accessor macros.
2116 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
2117 (grow_mini_window): Fix typo getting int value of root->height.
2118
6fc556fd
KR
2119 * xdisp.c (compute_string_pos): Fix order of arguments to
2120 string_pos_nchars_ahead.
2121 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
2122 count arg to variable-arg routines like Frun_hook_with_args and
2123 Fformat.
587a49ab
GM
2124 (back_to_previous_visible_line_start)
2125 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
2126 fixed-arg routines like Fget_char_property and Fmake_string.
2127 (reconsider_clip_changes): Use XINT when comparing integer lisp
2128 objects, or passing them as int arguments.
587a49ab
GM
2129 (mark_window_display_accurate, insert_left_trunc_glyphs)
2130 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
2131 storing or passing integer values as lisp objects.
2132 (set_cursor_from_row, highlight_trailing_whitespace): Use
2133 INTEGERP, not implicit test against zero, for glyph object.
2134 (try_window_id): Don't use make_number when we want an int value.
2135
2136 * xfaces.c (xlfd_symbolic_value): Make last argument a
2137 Lisp_Object, to be consistent with callers.
2138 (Fbitmap_spec_p): Use XINT to get numeric value of height.
2139 (lface_hash): Apply XFASTINT to lisp values before folding in.
2140
2141 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
2142 fill in window width and height. Pass an int, not a lisp object,
2143 as first arg to Finsert.
2144
6e7b2457
GM
21452000-04-01 Gerd Moellmann <gerd@gnu.org>
2146
610d841e
GM
2147 * xfaces.c (realize_basic_faces): Block input while realizing
2148 the faces.
2149
6e7b2457
GM
2150 * keyboard.c (lispy_mouse_names): Add additional mouse names.
2151
2152 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
2153
aa110c0c
GM
21542000-03-31 Gerd Moellmann <gerd@gnu.org>
2155
2156 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 2157 or ASCII, handle case that per-char metric is null.
aa110c0c 2158
8801a864
KR
21592000-03-30 Ken Raeburn <raeburn@gnu.org>
2160
c6129d7e
KR
2161 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
2162
8801a864
KR
2163 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
2164 XSUBR, XBUFFER): Verify correct object type before returning
2165 pointer, using eassert.
2166 * frame.h (XFRAME): Likewise.
2167
2168 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
2169 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
2170 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
2171 type.
2172 * data.c (set_internal): Likewise.
2173 * dispextern.h (WINDOW_WANTS_MODELINE_P,
2174 WINDOW_WANTS_HEADER_LINE_P): Likewise.
2175 * fileio.c (auto_save_1): Likewise.
2176 * insdel.c (check_markers): Likewise.
2177 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
2178 * undo.c (record_insert): Likewise.
2179 * vmsproc.c (child_sig): Likewise.
2180 * window.c (unshow_buffer, window_loop): Likewise.
2181 * xterm.c (x_erase_phys_cursor): Likewise.
2182
8e7af858
GM
21832000-03-30 Gerd Moellmann <gerd@gnu.org>
2184
2185 * xfns.c (free_image_cache): Free the cache structure itself
2186 last, after all its members have been freed.
2187
2188 * lisp.h (xstrdup): Add prototype.
2189
2190 * alloc.c (xstrdup): Moved here from xfaces.c.
2191 (allocating_for_lisp): Variable removed.
2192 (lisp_malloc): Block input around the calls to malloc and
2193 mem_insert.
2194
2195 * xfaces.c (realize_tty_face): Use find_symbol_value instead
2196 of Fsymbol_value.
2197 (xstrdup): Moved to alloc.c.
2198
e0b8c689
KR
21992000-03-29 Ken Raeburn <raeburn@gnu.org>
2200
b96f9fb7
KR
2201 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2202
2203 * emacs.c (main): Fix sense of no-loadup test.
2204
e0b8c689
KR
2205 * config.in (ENABLE_CHECKING): Undef.
2206
2207 * lisp.h (struct interval): Replace "parent" field with a union of
2208 interval pointer and Lisp_Object; add new bitfield to use as
2209 discriminant. Change other flag fields to bitfields.
2210 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2211 is defined and the supplied test fails, print a message and
2212 abort.
2213 (eassert): New macro. Use CHECK to provide an assert-like
2214 facility.
2215
2216 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2217 pointers; abort if the value looks like a lisp object.
2218 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2219 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2220 Modify for new interval parent definition.
2221
2222 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2223 UNMARK_BALANCE_INTERVALS): Update references that need an
2224 addressable lisp object in the interval structure.
2225 (die): New function.
2226 (suppress_checking): New variable.
2227
2228 * intervals.c (interval_start_pos): Just return 0 if there's no
2229 parent object.
2230
f83c5440
GM
22312000-03-29 Gerd Moellmann <gerd@gnu.org>
2232
2233 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2234 and earlier Emacs versions.
2235
2236 * keyboard.c (Ftop_level): Cancel busy-cursor.
2237
2238 * eval.c (call_debugger): Cancel busy-cursor.
2239
fdce64ff
KH
22402000-03-29 Kenichi Handa <handa@etl.go.jp>
2241
2242 * search.c (Freplace_match): Adjust multibyteness of the current
2243 buffer and NEWTEXT. Free allocated memory before signaling an
2244 error.
2245
f6a3f532
SM
22462000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2247
2248 * regex.c (analyse_first): New function obtained by ripping out most
2249 of re_compile_fastmap and generalizing it a little bit so that it
2250 can also just return whether a given (sub)pattern can match the empty
2251 string or not.
2252 (regex_compile): Use `analyse_first' to decide whether the loop-check
2253 needs to be done or not for *, +, *? and +? (the loop check is costly
2254 for non-greedy repetition).
2255 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2256
e9b309ac
DL
22572000-03-28 Dave Love <fx@gnu.org>
2258
bb15bd9a
DL
2259 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2260 alpha.
2261
e9b309ac
DL
2262 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2263
ed0767d8
SM
22642000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2265
2266 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2267 an expression.
2268 (enum re_opcode_t): Update description of succeed_n.
2269 (PATFETCH): Always define.
2270 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2271 operators, char classes, shy-groups and intervals).
2272 Optimize special cases of intervals so as to only use succeed_n and
2273 jump_n when really needed.
2274 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2275 that we don't have to handle the special cases any more.
2276 Simplify on_failure_jump handling as well.
2277
e11e7e46
JR
22782000-03-28 Jason Rumney <jasonr@gnu.org>
2279
2280 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2281
88faab89
GM
22822000-03-27 Gerd Moellmann <gerd@gnu.org>
2283
182ff242
GM
2284 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2285
2286 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2287
182ff242
GM
2288 * alloc.c (mark_maybe_object): New function.
2289 (mark_memory): Use it.
2290 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2291 (setjmp_tested_p, longjmp_done): New variables.
2292 (test_setjmp): New function.
2293 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2294 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2295
c1005d06
GM
2296 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2297 to DEC_TEXT_POS and INC_TEXT_POS.
2298
2299 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2300 with parameter MULTIBYTE_P.
2301
427ec082 2302 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2303 MULTIBYTE_P.
2304
7439e5b9 2305 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2306 buffers because it looks for multibyte character byte sequences
2307 which don't exist in unibyte text.
7439e5b9 2308
d9c545da
GM
2309 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2310
11fd416e 2311 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2312 [DEBUG_X_COLORS]: New functions.
2313 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2314
2315 * xfns.c (x_set_cursor_color): Get color reference counts right.
2316
2317 * xterm.c (x_copy_color): New function.
2318 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2319
2320 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2321 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2322 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2323 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2324 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2325 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2326 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2327 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2328 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2329 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2330
11fd416e
GM
2331 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2332 names for handling per-buffer variables.
d9c545da
GM
2333
2334 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2335 instead of MAX_BUFFER_LOCAL_VARS.
2336 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2337
2338 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2339
88faab89
GM
2340 * xfns.c (x_specified_cursor_type): New function.
2341 (x_set_cursor_type): Use it.
2342
2343 * buffer.h (struct buffer): Add cursor_type.
2344
d80f42b7
SM
23452000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2346
2347 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2348 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2349 opcode.
d80f42b7
SM
2350 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2351 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2352 executing it as well as when popping it off the stack to find infinite
2353 loops in non-greedy repetition operators.
2354
89e80928
GM
23552000-03-26 Gerd Moellmann <gerd@gnu.org>
2356
3d4ff2dd
GM
2357 * doc.c (Qfunction_documentation): New variable.
2358 (syms_of_doc): Initialize Qfunction_documentation.
2359 (Fdocumentation): If FUNCTION is a symbol with non-nil
2360 `function-documentation' property, return a documentation derived
2361 from that.
2362
bd96bd79
GM
2363 * buffer.c (syms_of_buffer): Add default-cursor-type.
2364 (init_buffer_once): Don't let cursor_type have a local value
2365 in every buffer.
2366
19d1bc27
GM
2367 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2368 on buffer-local value of cursor_type.
2369 (x_draw_bar_cursor): Add parameter WIDTH.
2370
2371 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2372 (init_buffer_once): Set default cursor_type value to t.
2373 Mark cursor_type as local everywhere.
2374 (syms_of_buffer): New per-buffer variable cursor-type.
2375
89e80928
GM
2376 * buffer.h (struct buffer): Remove member local_var_flags,
2377 add local_flags.
2378 (MAX_BUFFER_LOCAL_VARS): New macro.
2379 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2380 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2381 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2382 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2383
2384 * print.c (print_object): Use new macros for per-buffer
2385 variables.
2386
2387 * category.c (Fset_category_table): Use new macros for per-buffer
2388 variables.
2389
2390 * buffer.c (buffer_permanent_local_flags): Make a char array.
2391 (max_buffer_local_idx): New variable.
2392 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2393 for new handling of per-buffer variables.
2394 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2395 (init_buffer_once): Initialize per-buffer vars differently.
2396 Set max_buffer_local_idx.
2397
2398 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2399 variables.
2400
2401 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2402 variables.
2403
2404 * data.c (do_symval_forwarding, store_symval_forwarding)
2405 (find_symbol_value, set_internal, default_value, Fset_default)
2406 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2407 per-buffer variables.
2408
2409 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2410
9a0dd3dc
GM
24112000-03-24 Gerd Moellmann <gerd@gnu.org>
2412
b68c375f
GM
2413 * xterm.c (x_term_init): Unblock input around call1 of
2414 Qvendor_specific_keysyms.
2415
9a0dd3dc
GM
2416 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2417 (find_defun_start): Consider an open parenthesis in column 0
2418 a defun start only if open_paren_in_column_0_is_defun_start is set.
2419 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2420
7973e637
SM
24212000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2422
2423 * eval.c (Fautoload): Add entry in load-history (if after dump).
2424 * lread.c (load-history): Update docstring.
2425
39210e90
GM
24262000-03-24 Gerd Moellmann <gerd@gnu.org>
2427
2428 * indent.c (Fvertical_motion): Always use the current buffer.
2429 Temporarily change the window's buffer, if necessary.
2430
72db3ab5
GM
24312000-03-23 Gerd Moellmann <gerd@gnu.org>
2432
2433 * xterm.c (fast_find_position): Make sure not to consider rows
2434 not visible in the window.
2435
990b2375
SM
24362000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2437
2438 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2439 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2440
ff4df011
JR
24412000-03-22 Jason Rumney <jasonr@gnu.org>
2442
2443 * w32menu.c (single_submenu): Set help string to NULL if none.
2444 (w32_menu_show): Set help string correctly.
2445 (add-menu-item): Set help string in MIIM_DATA for menu item.
2446 Load SetMenuItemInfoA explicitly.
2447 (w32_menu_display_help): New function.
427ec082 2448
ff4df011
JR
2449 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2450 (QCdata): Moved to xdisp.c.
2451
2452 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2453 (Vw32_charset_to_codepage_alist): Removed.
2454 (Vw32_charset_info_alist): New variable.
2455 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2456 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2457 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2458 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2459 with TODO comment.
2460 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2461 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2462 Define Vw32_charset_info_alist and w32_charset symbols.
2463
24642000-03-22 Jason Rumney <jasonr@gnu.org>
2465
2466 * makefile.nt (w32bdf.obj): Update dependencies.
2467
2468 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2469
2470 * w32fns.c: Include fontset.h after dispextern.h.
2471 (Fx_create_frame): Do not create fontset.
2472 (w32_load_system_font): Doc fix.
2473 (Fx_close_connection): Free full_name if it is not shared.
2474
2475 * w32term.c: Include fontset.h after dispextern.h.
2476 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2477 updated.
2478 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2479 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2480 (w32_font_is_double_byte): New function, needs body.
2481 (x_append_glyph): Set glyph->glyph_not_available_p.
2482 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2483 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2484 character, convert it to a unibyte character.
2485 (struct glyph_string): Delete member `charset'.
2486 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2487 calculating it is found.
2488 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2489 the case that per char metric is not available correctly.
2490 (x_fill_glyph_string): Handle the case that the specific glyph is
2491 not available correctly.
2492 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2493 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2494 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2495 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2496 fontset. Don't call FS_LOAD_FONT.
2497
439d5cb4
KR
24982000-03-22 Ken Raeburn <raeburn@gnu.org>
2499
2500 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2501 (INT_LISPLIKE): New macro.
2502 (NULL_INTERVAL_P): Use it.
2503 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2504 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2505 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2506
2507 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2508 explicit references to "parent" field of struct interval and
2509 associated unclean type conversions.
2510 * intervals.c (create_root_interval, root_interval, rotate_right,
2511 rotate_left, balance_possible_root_interval, split_interval_right,
2512 split_interval_left, interval_start_pos, find_interval,
2513 next_interval, previous_interval, update_interval,
2514 adjust_intervals_for_insertion, delete_node, delete_interval,
2515 adjust_intervals_for_deletion, merge_interval_right,
2516 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2517 copy_intervals_to_string): Likewise.
2518 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2519 Likewise.
2520 * syntax.c (update_syntax_table): Likewise.
2521
2522 * intervals.c (reproduce_tree_obj): New function, like
2523 reproduce_tree but takes a Lisp_Object for the parent. Declare
2524 with prototype.
2525 (graft_intervals_into_buffer): Use it when appropriate.
2526 (reproduce_tree): Declare with prototype.
2527 (balance_possible_root_interval): Check that the parent is a lisp
2528 object before trying to examine its type.
2529
ee1c5b21
GM
25302000-03-22 Gerd Moellmann <gerd@gnu.org>
2531
2532 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2533 as strings only if both are known to be strings.
2534
2535 * s/openbsd.h (LIBS_TERMCAP): Undef.
2536
1fb352e0
SM
25372000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2538
2539 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2540 definitions for non-Emacs compilation.
2541 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2542 outside of `#ifdef emacs'.
2543 (print_partial_compiled_pattern): Update.
2544 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2545 (re_compile_fastmap): Merge handling of charset and charset_not (for
2546 emacs and non-emacs compilation as well).
2547 Similarly for (not)categoryspec and (not)syntaxspec.
2548 Don't use the fastmap when reaching `anychar' since the added
2549 complexity is not justified.
2550 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2551 and (not)syntaxspec. Merge (not)categoryspec.
2552
fdaa1f77
KH
25532000-03-22 Kenichi Handa <handa@etl.go.jp>
2554
ff1a0d8e
KH
2555 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2556 FACE_FOR_CHAR): Define them differently for the configuration of
2557 --without-x.
fdaa1f77 2558
d152fb46
DL
25592000-03-21 Dave Love <fx@gnu.org>
2560
2561 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2562 doc string.
2563
d2cafc8c
GM
25642000-03-21 Gerd Moellmann <gerd@gnu.org>
2565
2566 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2567 (lface_fully_specified_p): Don't check contents of
2568 LFACE_FONT_INDEX because that attribute is optional.
2569 (realize_x_face): Remove now unwarranted xassert.
2570
9111d4b5
KH
25712000-03-21 Kenichi HANDA <handa@etl.go.jp>
2572
2573 The following changes are to make font selection based on
2574 characters, not charset. In addition, they recover fontset
2575 facilities while utilizing the new font selection mechanism.
2576
6c4bfdc0
KH
2577 * Makefile.in (fontset.o): Depend on dispextern.h.
2578
2579 * alloc.c (mark_face_cache): Don't mark face->registry.
2580
9111d4b5
KH
2581 * dispextern.h (struct glyph): New member glyph_not_available_p.
2582 Use 22 bits for face_id.
2583 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2584 (struct face): Delete member registry, new member ascii_face.
2585 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2586 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2587 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2588 (struct it): Delete member charset, new member
2589 glyph_not_available_p.
2590
2591 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2592 (struct fontset_info, struct fontset_data): Structs removed.
2593 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2594 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2595 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2596 (fs_free_face_fontset, fontset_font_pattern,
2597 face_suitable_for_char_p, face_for_char,
2598 make_fontset_for_ascii_face): Extern them.
2599 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2600 (FS_LOAD_FACE_FONT): New macro.
2601
2602 * fontset.c: All codes rewritten or adjusted for the change of
2603 fontset implementation. Now fontset is represented by char table.
2604 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2605 removed.
2606 (my_strcasecmp): Function removed.
2607 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2608 variables.
2609 (AREF, ASIZE): New macros.
2610 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2611 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2612 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2613 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2614 fontset_id_valid_p, font_family_registry, fontset_name,
2615 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2616 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2617 New functions.
2618 (fs_load_font): New arg FACE. Caller changed.
2619 (fs_query_fontset): Argument changed. Caller changed.
2620 (Fquery_fontset): call fs_query_fontset.
2621 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2622 Functions removed.
2623 (clear_fontset_elements, check_registry_encoding,
2624 check_fontset_name): New functions.
2625 (syms_of_fontset): Set char-table-extra-slots property of fontset
2626 to 3. Staticpro and initialize Vfontset_table and
2627 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2628
2629 * frame.h (struct frame): Member `fontset_data' removed.
2630 (FRAME_FONTSET_DATA): Macro removed.
2631
2632 * frame.c (make_frame): Don't allocate f->fontset_data.
2633 (Fdelete_frame): Don't free f->fontset_data.
2634
6c4bfdc0
KH
2635 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2636
9111d4b5
KH
2637 * xdisp.c (charset_at_position): Function removed.
2638 (init_iterator): Don't set member charset of struct `it'.
2639 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2640 next_element_from_display_vector, insert_left_trunc_glyphs):
2641 Likewise.
2642 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2643 FACE_FOR_CHARSET.
2644 (get_next_display_element, append_space,
2645 extend_face_to_end_of_line): Likewise.
2646
2647 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2648 Variables removed.
2649 (clear_font_table, frame_update_line_height, load_face_font):
2650 Adjusted for the change of fontset implementation.
2651 (load_face_fontset_font): Function removed.
2652 (pixel_point_size): New function.
2653 (font_list): Argument type changed. Caller changed.
2654 (LFACE_FONT): New macro.
2655 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2656 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2657 Lisp_Object. Determine the font name by actually loading a font
2658 by the specified pattern. Set LFACE_FONT (lface) to the specified
2659 pattern. Even if a font is not found, don't try alternatives.
2660 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2661 (set_font_frame_param): If `font' is specified in lface, use it.
2662 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2663 (lface_same_font_attributes_p): Likewise.
2664 (make_realized_face): Arguent changed. Caller changed. Set
2665 face->ascii_face to face itself.
2666 (free_realized_face): Free face->fontset if face is for ASCII.
2667 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2668 deduce_unibyte_registry, x_charset_registry): Functions removed.
2669 (free_realized_multibyte_face): New function.
2670 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2671 changed. Caller changed.
2672 (try_font_list): Argument type changed.
2673 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2674 (choose_face_font): Argument changed. Handle fontset properly.
2675 (choose_face_fontset_font): Function removed.
2676 (realize_default_face, realize_named_face): Don't remove the
2677 former face here.
2678 (realize_face): Argument changed. Caller changed. Remove face
2679 with the arg former_face_id in advance. Load font for the new
2680 face.
2681 (realize_x_face): Argument changed. Caller changed. For a
2682 multibyte character, share fontset with base_face. For a single
2683 byte character, make a new realized fontset. Don't load a font
2684 here.
2685 (realize_tty_face): Argument changed. Caller changed.
2686 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2687 (face_at_buffer_position): Don't check multibyte_p for returning
2688 DEFAULT_FACE_ID.
2689 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2690 FACE_SUITABLE_FOR_CHARSET_P.
2691 (syms_of_xfaces): Remove code for Qx_charset_registry and
2692 Vface_default_registry.
2693
6c4bfdc0
KH
2694 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2695 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2696 (x_per_char_metric): Don't try FONT->default_char. Even if
2697 pcm->width is zero, glyph bits may exist.
2698 (x_encode_char): Always initialize char2b->byte1.
2699 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2700 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2701 changed.
2702 (x_append_glyph): Set glyph->glyph_not_available_p.
2703 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2704 it->charset. Handle the case that per char metric is not
2705 available. If it->multibyte_p is zero and it->c is a multibyte
2706 character, convert it to a unibyte character.
2707 (struct glyph_string): Delete member `charset'.
2708 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2709 the case that per char metric is not available correctly.
2710 (x_fill_glyph_string): Handle the case that the specific glyph is
2711 not available correctly.
2712 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2713 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2714 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2715 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2716 fontset. Don't call FS_LOAD_FONT.
2717
2718 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2719 (x_create_tip_frame): Likewise.
2720 (Fx_close_connection): Free full_name of font_info.
2721
2722 * fns.c (optimize_sub_char_table): New function.
2723 (Foptimize_char_table): New function.
2724 (syms_of_fns): Defsubr Soptimize_char_table.
2725
b33dd3b0
GM
27262000-03-20 Gerd Moellmann <gerd@gnu.org>
2727
2728 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2729 only if buffer is displayed in some window.
2730
2731 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2732 (try_window_reusing_current_matrix): Don't call scroll run
2733 function if run's current and desired position are the same;
2734 this prevents cursor flickering.
2735
4e8a9132
SM
27362000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2737
2738 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2739
2740 * regex.c (RE_STRING_CHAR): New macro.
2741 (GET_CHAR_AFER_2): Remove.
2742 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2743 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2744 (print_partial_compiled_pattern, re_compile_fastmap)
2745 (re_match_2_internal): Remove on_failure_jump_exclusive.
2746 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2747 optimization only need to work for * (ie. can use of_keep_string_jump).
2748 Remove the special case for .*\n since it is now covered by the general
2749 optimization.
2750 (re_search_2): Don't bother with `room'.
2751 (skip_one_char): New function.
2752 (skip_noops): Simplify since `memory' is not needed any more.
2753 (mutually_exclusive_p): Restructure slightly to use `switch' and
2754 add handling for "all" remaining cases.
2755 (re_match_2_internal): Change on_failure_jump_smart to use
2756 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2757 rather than on_failure_jump_exclusive.
2758
2136fdd4
GM
27592000-03-19 Gerd Moellmann <gerd@gnu.org>
2760
2761 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2762 number of bits per RGB because it's everywhere used as the depth
2763 of the visual.
2764
2765 * term.c (calculate_costs): Remove code dealing with X frames.
2766
e53ae11c
RS
27672000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2768
2769 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2770
d7b511c4
GM
27712000-03-18 Gerd Moellmann <gerd@gnu.org>
2772
2773 * lread.c (read_integer): Unread the last char not consumed.
2774
16b5d424
GM
27752000-03-17 Gerd Moellmann <gerd@gnu.org>
2776
2777 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2778 which are in the process of being deleted.
16b5d424 2779
1fa28578
GM
27802000-03-16 Gerd Moellmann <gerd@gnu.org>
2781
83488cce
GM
2782 * Makefile.in (mostlyclean): Add `*.core'.
2783 (clean): Add `bootstrap-emacs'.
2784
1fa28578
GM
2785 * lread.c (read_integer): New function.
2786 (read1): Support read syntax #o, #x, #b, #r.
2787
99633e97
SM
27882000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2789
1fa28578
GM
2790 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2791 make sure POINTER_TO_OFFSET gives the same value before and after
2792 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2793 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2794 (debug): Now only active if > 0 rather than if != 0.
2795 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2796 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2797 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2798 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2799 (store_op1, store_op2, insert_op1, insert_op2)
2800 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2801 (group_in_compile_stack): Move to after its arg's types are
2802 declared and add a prototype.
99633e97 2803 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2804 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2805 wrapper.
99633e97 2806 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2807 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2808 indentation of the greedy-op and shy-group code.
99633e97
SM
2809 (at_(beg|end)line_loc_p): Fix argument's types.
2810 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2811 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2812 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2813 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2814 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2815 QUIT unconditionally.
99633e97 2816
699238d9
GM
28172000-03-15 Gerd Moellmann <gerd@gnu.org>
2818
2819 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2820 a sole completion.
2821
2822 * process.c (send_process): Add a hint that the function
2823 can call Lisp code to its comment.
2824
2825 * lread.c (load_dangerous_libraries): New variable.
2826 (Vbytecomp_version_regexp): New variable.
2827 (safe_to_load_p): New function.
2828 (Fload): Handle files not compiled with Emacs specially.
2829 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2830
34e23e5a
GM
28312000-03-14 Gerd Moellmann <gerd@gnu.org>
2832
9c763cca
GM
2833 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2834
2835 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2836 support functions only if HAVE_X11R6_XIM is defined.
2837 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2838
2839 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2840
2841 * xfns.c (X_I18N_INHIBITED): Don't define.
2842 (create_frame_xic): Remove conditional compilation on
2843 X_I18N_INHIBITED.
2844 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2845
2846 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2847 (HAVE_X11R6_XIM): Define.
2848
2849 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2850
34e23e5a
GM
2851 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2852 If set, call XSynchronize.
2853
66f0296e
SM
28542000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2855
34e23e5a
GM
2856 * regex.c: Declare a new type `re_char' used throughout the code
2857 for the string char type. It's `const unsigned char' to match the
2858 rest of Emacs. Consistently make sure all pointers to strings use
2859 it and make sure all pointers into the pattern use `unsigned
2860 char'.
66f0296e 2861 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2862 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2863 code duplication.
66f0296e
SM
2864
2865 * charset.h (GET_CHAR_AFTER_2): Remove.
2866 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2867
854a025c
KR
28682000-03-12 Ken Raeburn <raeburn@gnu.org>
2869
2870 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2871 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2872 of them try to use backquotes.
2873
b9d2c7e2
DL
28742000-03-12 Dave Love <fx@gnu.org>
2875
2876 * unexelf.c: Restore changes of 1999-10-19.
2877 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2878 fix its type and alignment; copy it from current process.
2879
5e5dff44
GM
28802000-03-12 Gerd Moellmann <gerd@gnu.org>
2881
9b2f3c38
GM
2882 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2883 has been found. Fix bug not computing timer's predecessor.
2884
427ec082 2885 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
2886 file name.
2887
e1cff360
GM
2888 * window.c (Fsave_window_excursion): Doc fix.
2889
5e5dff44
GM
2890 * xfns.c (x_defined_color): Rewritten to use
2891 x_allocate_nearest_color.
2892
e411ce4b
EZ
28932000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2894
2895 * msdos.c (vga_installed): New function, code moved from
2896 dos_set_window_size.
2897 (Qbar, Qcursor_type, outside_cursor): New variables.
2898 (syms_of_msdos): Intern and staticpro them.
2899 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2900 shape used outside Emacs when called for the first time.
2901 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2902 cursor shape used outside Emacs.
2903 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2904 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2905 type has changed.
2906 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2907 parameters specify the cursor. Make qreverse a global
2908 variable (renamed to Qreverse).
2909
80460654
GM
29102000-03-09 Gerd Moellmann <gerd@gnu.org>
2911
2912 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2913
95cd4c40
SM
29142000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2915
2916 This is a big redesign of failure-stack and register handling, prompted
2917 by bugs revealed when trying to add shy-groups. Overall, what happened
2918 is that loops are now structured a little differently, groups can be
2919 shy and the code is a little simpler.
2920
2921 * regex.h: Update the copyright.
2922 (RE_SHY_GROUPS): New value.
2923 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2924 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2925
80460654
GM
2926 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2927 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2928 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2929 for (start|stop)_memory since they now only take one argument (the
2930 second has becomes unnecessary).
2931 (print_partial_compiled_pattern): Adjust for changes in
2932 re_opcode_t.
2933 (print_compiled_pattern): Use %ld to printf long ints and flush to
2934 make debugging a little easier.
95cd4c40
SM
2935 (union fail_stack_elt): Make the integer unsigned.
2936 (struct fail_stack_type): Add a `frame' element.
2937 (INIT_FAIL_STACK): Init `frame' as well.
2938 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2939 (DEBUG_PUSH, DEBUG_POP): Remove.
2940 (NUM_REG_ITEMS): Remove.
2941 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2942 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2943 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2944 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2945 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2946 macros.
2947 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2948 address pushed is not the destination of the jump but the source
2949 of it instead.
95cd4c40
SM
2950 (NUM_FAILURE_ITEMS): Remove.
2951 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2952 registers before the actual failure point). Don't hardcode any
2953 meaning for str==NULL anymore.
95cd4c40 2954 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2955 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2956 Remove.
95cd4c40
SM
2957 (REG_UNSET_VALUE): Use NULL (why not?).
2958 (compile_range): Remove declaration since it doesn't exist.
2959 (struct compile_stack_elt_t): Remove inner_group_offset.
2960 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2961 (regex_grow_registers): Remove dead code.
2962 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2963 (regex_compile): Add shy-groups Change loops to use
2964 on_failure_jump_smart&jump instead of
2965 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2966 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2967 variable to me). Use `jump' instead of `jump_past_alt' and don't
2968 bother with push_dummy_failure in alternatives since it is now
2969 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2970 emacs' for (re)allocating the stack.
2971 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2972 from loop when bufp->can_be_null rather than jumping to `done'.
2973 Avoid jumping backwards so as to ensure termination. Use
2974 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2975 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2976 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2977 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2978 improve mutually_exclusive_p to handle ".+\n".
2979 (lowest_active_reg, highest_active_reg,
2980 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2981 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2982 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2983 variables. Push register (in `start_memory') on the stack rather
2984 than storing it in old_reg(start|end). Remove the cycle detection
2985 from `stop_memory', replaced by the use of on_failure_jump_loop
2986 for greedy loops. Add code for the new on_failure_jump_<foo>.
2987 Remove ad-hoc code in `on_failure_jump' to push more registers in
2988 the case of a loop. Take out code from `maybe_pop_jump' into
2989 separate functions and adapt it to the semantics of
2990 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2991 and push_dummy_failure. Remove dummy_failure handling and
2992 handling of `failures to jump to on_failure_jump' (this last one
2993 was already dead code, it seems).
2994 (group_match_null_string_p, alt_match_null_string_p)
2995 (common_op_match_null_string_p): Remove.
95cd4c40 2996
7397acc4
DL
29972000-03-08 Dave Love <fx@gnu.org>
2998
2999 * config.in: Don't depend on __STDC__ for volatile.
3000 Add POINTER_TYPE, PTR, PROTOTYPES.
3001
3002 * hftctl.c, strftime.c: Use PROTOTYPES.
3003 * eval.c (find_handler_clause): Likewise.
3004
3005 * mem-limits.h: Use POINTER_TYPE.
3006
3007 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
3008 (memory_warnings): Declare using POINTER_TYPE.
3009
5e91ff9e
GM
30102000-03-08 Gerd Moellmann <gerd@gnu.org>
3011
feab4fba
GM
3012 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
3013
25edb08f
GM
3014 * xdisp.c (display_echo_area): Temporarily inhibit garbage
3015 collection.
3016
5e91ff9e
GM
3017 * xfns.c: Remove obsolete code in #if 0.
3018 (Fx_focus_frame): New function.
3019
a735b7e1
KH
30202000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3021
3022 * coding.c (coding_category_name): Add coding-category-utf-8,
3023 coding-category-utf-16-be, coding-category-utf-16-le.
3024 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
3025 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
3026 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
3027 (detect_coding_utf_8): New function.
3028 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
3029 UTF_16_LOW_SURROGATE_P): New macros.
3030 (detect_coding_utf_16): New function
3031 (detect_coding_mask): When priorities are specified, skip any
3032 categories that have `nil' coding-system. Fix bug of returning
3033 wrong mask when PRIORITIES is specified and detect_coding_XXX()
3034 returns a mask not set in PRIORITIES.
3035 (detect_eol_type_in_2_octet_form): New function.
3036 (detect_eol): selects detect_eol_type_XXX to call according to
3037 cooding->category_idx.
3038 (detect_coding_system): Remove `nil' coding-system in the result.
3039 (Fupdate_coding_systems_internal): Update all coding-categories.
3040
3041 * coding.h (CODING_CATEGORY_IDX_UTF_8,
3042 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
3043 macros.
3044 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
3045 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
3046 CODING_CATEGORY_IDX_UTF_16_LE.
3047 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
3048 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
3049 (CODING_CATEGORY_MASK_ANY): Include the above macros.
3050 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
3051
9994cc69
GM
30522000-03-07 Gerd Moellmann <gerd@gnu.org>
3053
e9b4e5ff
GM
3054 * doc.c (Fdocumentation_property): If value is not a string,
3055 and doesn't refer to etc/DOC, evaluate it to obtain a string.
3056
f7daf1e1
GM
3057 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
3058 close the display with XtCloseDisplay. This caused a bus error
3059 on OpenWindows.
3060
9994cc69
GM
3061 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
3062 complete but not unique.
3063
4336c705
GM
30642000-03-06 Gerd Moellmann <gerd@gnu.org>
3065
18bb0684
GM
3066 * process.c (send_process): Remove local variable `procname' that
3067 might become invalid when a GC happens. Instead, access the
3068 process name slot directly.
3069
4336c705
GM
3070 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
3071 orig_height if set.
3072
3073 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
3074 orig_height if set.
3075
515d0d0e
EZ
30762000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3077
3078 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
3079 glyph matrices have been freed.
3080
100b3cbb
GM
30812000-03-05 Gerd Moellmann <gerd@gnu.org>
3082
50df5e5a 3083 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 3084 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
3085
3086 * xfns.c (QCdata): Moved to xdisp.c.
3087
3088 * xdisp.c (QCdata): Moved here from xfns.c.
3089 (syms_of_xdisp): Initialize QCdata.
3090
3091 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
3092
3093 * window.c (coordinates_in_window): Use
3094 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
3095 FRAME_INTERNAL_BORDER_WIDTH.
3096
100b3cbb 3097 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 3098 it is obviously invalid.
100b3cbb
GM
3099
3100 * xterm.c (x_term_init): Create a colormap if not using the
3101 default visual.
3102
3103 * xterm.h (select_visual): Change prototype.
3104
3105 * xfns.c (select_visual): Rewritten. Recognize user-specified
3106 visual classes.
3107 (visual_classes): New variable.
3108
64d739c4
GM
31092000-03-04 Gerd Moellmann <gerd@gnu.org>
3110
3111 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
3112 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
3113 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
3114 (x_decode_color): Don't handle allocation of white and black
3115 specially.
3116 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
3117 XtNcolormap resources.
3118 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
3119 (Fx_create_frame): Initialize color members of x_output structure.
3120 (xpm_load): Pass colormap to XPM lib.
3121
3122 * xfaces.c (x_free_colors): Access colormap of frame using
3123 FRAME_X_COLORMAP. Be paranoid about freeing black and white
3124 when default colormap is used.
3125
3126 * xterm.c (x_term_init): Set Colormap member of x_display_info
3127 structure. Copy colormap if resource `privateColormap' is
3128 specified (PseudoColor only).
3129 (x_setup_relief_color): Access colormap of frame using
3130 FRAME_X_COLORMAP.
3131
3132 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
3133 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
3134
c3cee013
JR
31352000-03-04 Jason Rumney <jasonr@gnu.org>
3136
3137 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
3138 other non-platform-specific equivalents.
64d739c4 3139 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
3140 specific functions and macros as their w32 equivalents where
3141 non-platform-specifics are not available.
3142 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
3143 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
3144 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
3145 (frame_update_line_height): Use macros to access f->output_data.
3146 (defined_color): Remove FIXME comments; fixed.
3147 (x_face_list_fonts, prepare_face_for_display): Put X specifics
3148 into #ifdef blocks. Add WINDOWSNT blocks.
3149 (Fx_list_fonts): Use macros for accessing font data.
3150 (set_lface_from_font_name): Different default fonts for X and
3151 WINDOWSNT.
3152 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
3153 scalable for backward compatibility.
64d739c4 3154 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
3155 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
3156
64d739c4 3157 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
3158 syms_of_w32faces.
3159
3160 * makefile.nt (w32faces.obj): Remove.
3161 (xfaces.obj): Add.
3162
807cc41c
JR
31632000-03-03 Jason Rumney <jasonr@gnu.org>
3164
3165 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
3166 correct parameters.
3167
0007072a
KR
31682000-03-03 Ken Raeburn <raeburn@gnu.org>
3169
3170 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
3171 standard ELF definitions here if the system header does not.
3172
71a6ba55
GM
31732000-03-03 Gerd Moellmann <gerd@gnu.org>
3174
3175 * xterm.c (PER_CHAR_METRIC): Removed.
3176 (x_per_char_metric_1, x_default_char): New functions.
3177 (x_per_char_metric): If font's default char is invalid, return
3178 metrics of a suitably chosen usable default char.
3179 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
3180 char, replace occurrences of unprintable chars with a suitably
3181 chosen usable default char.
71a6ba55 3182
900fa1f1
GM
31832000-03-02 Gerd Moellmann <gerd@gnu.org>
3184
42f55fe0
GM
3185 * xterm.c (note_mouse_highlight): Return quickly if frame's
3186 glyph matrices have been freed.
3187
3188 * dispnew.c (free_glyphs): Block input while freeing matrices.
3189
900fa1f1
GM
3190 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
3191
3192 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
3193 x_free_colors.
3194
3195 * dispextern.h (x_free_colors): Add prototype.
3196
3197 * xfaces.c (x_free_colors): New function.
3198 (unload_color, free_face_colors): Use it.
3199
2f950292
EZ
32002000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3201
3202 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3203
3204 * window.c [MSDOS]: Include msdos.h.
3205
54d04320
DL
32062000-03-02 Dave Love <fx@gnu.org>
3207
3208 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3209
3210 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3211 set C_OPTIMIZE_SWITCH for gcc.
3212
0ba93ac4
KH
32132000-03-02 Kenichi Handa <handa@etl.go.jp>
3214
3215 * coding.c (coding_save_composition): Be sure to allocate
3216 composition data area in coding even if there's no composition in
3217 the current run.
3218
a2bc11d4
JR
32192000-03-01 Jason Rumney <jasonr@gnu.org>
3220
3221 * w32term.c: Equivalent changes to those made to xterm.c on
3222 2000-02-25 and 2000-02-24.
3223
3224 * w32fns.c: Equivalent changes to those made to xfns.c on
3225 2000-02-25 and 2000-02-21.
3226
3227 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3228 correct line-end convention is followed.
3229
3230 * w32menu.c [HAVE_BOXES]: Remove #undef.
3231 (single_keymap_panes): Remove code for simulating checkmarks.
3232 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3233 Remove code for drawing simulated checkmarks.
3234 (w32_menu_show): make unibyte help string correctly.
3235 (add_menu_item): draw standard Windows checkmarks. Draw radio
3236 buttons as radio buttons if possible.
3237
72d19d75
GM
32382000-03-01 Gerd Moellmann <gerd@gnu.org>
3239
2df636f4
GM
3240 * sysdep.c (start_of_text): Don't define this function for NetBSD
3241 with ELF.
3242
427ec082 3243 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3244 Don't define.
3245 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3246 (LINKER): Don't undef if __NetBSD__ is defined.
3247
3248 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3249
3250 * fileio.c [__NetBSD__]: Define `unix'.
3251
72d19d75
GM
3252 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3253
ed4d0512
GM
32542000-02-29 Gerd Moellmann <gerd@gnu.org>
3255
50b1039f
GM
3256 * atimer.c (start_atimer): Don't abort when timers are stopped.
3257 (append_atimer_lists): New function.
3258 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3259 arbitrary lists of stopped and running atimers.
3260
ed4d0512
GM
3261 * atimer.c (cancel_atimer): Handle canceling an atimer when
3262 some timers are stopped.
3263
3264 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3265 after canceling it.
3266
3267 * fns.c (maybe_resize_hash_table): Handle case of new size
3268 coming out as being the same as old size.
3269
387023ee
JR
32702000-02-27 Jason Rumney <jasonr@gnu.org>
3271
3272 * makefile.nt: Add atimer.h to dependencies.
3273 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3274 * w32console.c: Only disable window system features for dispextern.h
3275 (initialize_w32_display): Build a display info for the console.
3276 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3277 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3278 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3279 as 2 button mice.
3280 * w32gui.h (struct W32FontStruct): Revert last change after change
3281 to xdisp.c.
3282 * w32menu.c (single_submenu): Set up help string.
3283 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3284 (w32_dialog_show): Set up help string.
3285 * w32term.c (w32_display_info_for_display): Remove unused function.
3286 (w32_draw_bitmap): Use pre-built bitmaps.
3287 (w32_initialize_display_info): New function to initialize parts of
3288 display info that are common to both GUI and console frames.
3289 (w32_term_init): Use w32_initialize_display_info. Do not set
3290 Vw32_num_mouse_buttons here, as it is not called for console
3291 frames. Build bitmaps for indicating truncated lines etc.
3292 (x_delete_display): Destroy pre-built bitmaps.
3293 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3294 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3295
4516715a
DL
32962000-02-27 Dave Love <fx@gnu.org>
3297
3298 * lisp.h: Add a bunch of prototypes.
3299
171ca836
KH
33002000-02-26 Kenichi Handa <handa@etl.go.jp>
3301
3302 * keyboard.c (read_char): Set `usec' correctly.
3303
4013921d
KH
33042000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3305
3306 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3307 `lambda', set reg[RRR] to the map index.
3308 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3309 reg[RRR] to 0. Otherwise, set it to -1.
3310
9244a058
GM
33112000-02-25 Gerd Moellmann <gerd@gnu.org>
3312
2df636f4 3313 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3314
f43d79c1 33152000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3316
f43d79c1
GM
3317 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3318 and contains a `:', prepend `/:'.
3319
3320 * window.c (select_window_1): If selected_window is nil,
3321 don't "swap out" the buffer's point.
3322 (Fset_window_configuration): Set selected_window to nil
3323 before calling Fselect_window.
3324 (unshow_buffer): Don't set point in buffer from window's point
3325 if another more recently selected window also shows the buffer.
3326
bed0c171
GM
33272000-02-25 Gerd Moellmann <gerd@gnu.org>
3328
449c3c52
GM
3329 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3330
f5b58615
GM
3331 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3332 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3333 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3334 variables.
3335 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3336 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3337 (hide_busy_cursor): New functions.
3338 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3339
3340 * minibuf.c (read_minibuf): Cancel busy-cursor.
3341
3342 * keyboard.c (command_loop_1): Call start_busy_cursor before
3343 Fcommand_execute and cancel_busy_cursor after it.
3344 (timer_check): Remove busy-cursor code.
3345 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3346 cursor timer.
3347
3348 * process.c (wait_reading_process_input): Remove busy-cursor code.
3349
3350 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3351 Fx_hide_busy_cursor.
3352
3353 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3354 Remove prototyoes.
3355 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3356
3357 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3358
3359 * xterm.c (XTread_socket): Remove busy-cursor code.
3360
4eb8436f
GM
3361 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3362 (build_frame_matrix_from_leaf_window): Put code handling
3363 glyph row's not being a slice of a frame row in #if 0.
3364 (sync_window_with_frame_matrix_rows): New function.
3365 (frame_row_to_window): New function.
3366 (mirror_line_dance): Handle copies between windows.
3367
3cb65b0e
GM
3368 * lread.c (Fload): Use `xfree' instead of `free'.
3369 (init_obarray): Use `xmalloc' instead of `malloc'.
3370
bed0c171
GM
3371 * window.c (Fset_window_buffer): Set WINDOW to the window
3372 after decoding.
2add4349
GM
3373 (coordinates_in_window): Take frame's internal border width
3374 into account.
bed0c171 3375
42088c12
GM
33762000-02-24 Gerd Moellmann <gerd@gnu.org>
3377
3378 * xterm.c (x_display_and_set_cursor): Display cursor of
3379 non-selected windows depending on the setting of
3380 cursor_in_non_selected_windows.
3381
3382 * xdisp.c (cursor_in_non_selected_windows): New variable.
3383 (syms_of_xdisp): DEFVAR_BOOL it.
3384
d1e103b2
GM
33852000-02-23 Gerd Moellmann <gerd@gnu.org>
3386
723e779c
GM
3387 * data.c (Fstring_to_number): If number is greater than what
3388 fits into an integer, return a float.
3389
d1e103b2
GM
3390 * eval.c (specbind): Remove references to
3391 keyword_symbols_constant_flag.
3392
3393 * data.c (keyword_symbols_constant_flag): Removed.
3394 (Fmakunbound, set_internal, syms_of_data): Remove references to
3395 keyword_symbols_constant_flag.
3396
3397 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3398
214f877f
KH
33992000-02-23 Kenichi Handa <handa@etl.go.jp>
3400
3401 * syntax.c (multibyte_syntax_as_symbol): New variable.
3402 (syms_of_syntax): Declare it as a Lisp variable.
3403 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3404 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3405 nonzero, treat all multibyte characters as symbol.
42088c12 3406 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3407 characters.
3408
130adcb7
EZ
34092000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3410
3cb65b0e 3411 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3412 a deleted frame.
3413
17cbbf95
GM
34142000-02-21 Gerd Moellmann <gerd@gnu.org>
3415
3416 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3417
3418 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3419 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3420
beb0bc36
DL
34212000-02-21 Dave Love <fx@gnu.org>
3422
3423 * frame.c (Vmouse_position_function): New variable.
3424 (Fmouse_position): Use it.
3425 (syms_of_frame): Install it.
3426
3427 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3428
1d92afcd
GM
34292000-02-20 Gerd Moellmann <gerd@gnu.org>
3430
3431 * fileio.c (Finsert_file_contents): Unbind the binding of
3432 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3433
3434 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3435 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3436 (specbind, unbind_to): Handle most common case of non-constant
3437 symbol with trivial value specially.
3438
3439 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3440
2d06696f
RS
34412000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3442
3443 * data.c (Fmake_variable_buffer_local): Doc fix.
3444 Init found_for_buffer to 0.
3445 (Fmake_variable_frame_local): If the variable has already
3446 been buffer-local, set the check_frame field.
3447
1d4311c3
EZ
34482000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3449
3450 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3451 produced for CODING_MODE_LAST_BLOCK requires.
3452
2dc95ddd
DL
34532000-02-18 Dave Love <fx@gnu.org>
3454
3455 * keyboard.c (echo_keystrokes): Remove declaration.
3456 (Vecho_keystrokes) New variable.
3457 (read_char, record_menu_key, read_key_sequence): Use it to allow
3458 use of float value.
3459 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3460
3461 * lread.c: Undef feature selection macros before defining.
3462
f0930f35
GM
34632000-02-18 Gerd Moellmann <gerd@gnu.org>
3464
3465 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3466 for symbols other than the symbol in question.
3467
e3d4de90
DL
34682000-02-17 Dave Love <fx@gnu.org>
3469
3470 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3471
0b378936
GM
34722000-02-17 Gerd Moellmann <gerd@gnu.org>
3473
d621caf7
GM
3474 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3475
0b378936
GM
3476 * alloc.c (enum mem_type): Compile unconditionally.
3477
3b451f74
EZ
34782000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3479
3480 * xfaces.c (tty_defined_color): Don't return faulire indication
3481 for unspecified-fg and unspecified-bg pseudo-colors.
3482
10689a01
GM
34832000-02-17 Gerd Moellmann <gerd@gnu.org>
3484
1216f5e4
GM
3485 * alloc.c (mark_object): Don't mark symbol names in pure space.
3486 (gc_sweep): Don't unmark symbol names in pure space.
3487
3488 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3489 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3490 [GC_MARK_STACK]: New defines.
427ec082 3491 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3492 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3493
3494 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3495
3496 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3497 allocate_buffer instead of xmalloc.
3498
3499 * alloc.c (toplevel): Include setjmp.h.
3500 (PURE_POINTER_P): New define.
3501 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3502 (Vdead) [GC_MARK_STACK]: New variable.
3503 (lisp_malloc): Add parameter TYPE, call mem_insert if
3504 GC_MARK_STACK is defined.
3505 (allocate_buffer): New function.
427ec082 3506 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3507 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3508 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3509 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3510 (MEM_NIL) [GC_MARK_STACK]: New define.
3511 (struct mem_node) [GC_MARK_STACK]: New structure.
3512 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3513 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3514 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3515 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3516 (mark_stack) [GC_MARK_STACK]: New functions.
3517 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3518 (clear_marks): Removed.
3519 (gc_sweep): Set free conses' car, free floats' type, free
3520 symbols' function to Vdead. Use lisp_free to free buffers.
3521 (init_alloc_once): Initialize Vdead.
3522 (survives_gc_p): Return non-zero for pure objects.
3523
3524 * alloc.c: Add comments throughout the file.
3525
2503c8b1
GM
3526 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3527 that unblocks alarms.
3528
8389e1e2
GM
3529 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3530 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3531 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3532
10689a01 3533 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3534
bfc17d18
KH
35352000-02-17 Kenichi Handa <handa@etl.go.jp>
3536
4a09dee0
KH
3537 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3538 avoid infinite error signaling. Allocate sufficient memory for
3539 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3540
2b927d02
SM
35412000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3542
3543 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3544 depends on the previous behavior.
3545
b49cb764
GM
35462000-02-16 Gerd Moellmann <gerd@gnu.org>
3547
3548 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3549
99e95407
GM
35502000-02-15 Gerd Moellmann <gerd@gnu.org>
3551
3552 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3553
3554 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3555 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3556 write(2).
3557
6ffd3cf7
RS
35582000-02-15 Richard M. Stallman <rms@gnu.org>
3559
3560 * data.c (set_internal): Don't make variable buffer-local
3561 if within a let-binding for the same buffer.
3562 (let_shadows_buffer_binding_p): New function.
3563
3564 * eval.c (specbind): For buffer-local value,
3565 record the current buffer also.
3566 (unbind_to): Cope with that change.
3567
cad53475
GM
35682000-02-15 Gerd Moellmann <gerd@gnu.org>
3569
3570 * window.c (Fsave_window_excursion): Doc fix.
3571
1aa963c8
SM
35722000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3573
3574 * syntax.c (back_comment): Make sure we only consider comment-starters
3575 of the relevant style and return -1 in case of a failure to find the
3576 beginning of the comment.
3577 (Fforward_comment): If back_comment fails, go back to the position just
3578 after the comment-end.
3579 (scan_lists): Add comment describing a very minor bug.
3580
b9b84fd3
SM
35812000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3582
3583 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3584 `completion-regexp-list' in the docstring.
3585
3a28db80
DL
35862000-02-14 Dave Love <fx@gnu.org>
3587
3588 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3589
fb4a568d
SM
35902000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3591
3592 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3593 to Emacs' syntax. Also fix the comment about set/not-set meanings
3594 since Emacs syntax is not the value 0 any more.
3595 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3596 since it's now part of RE_SYNTAX_EMACS.
3597
1063ebb5
DL
35982000-02-12 Dave Love <fx@gnu.org>
3599
3600 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3601 Alpha.
3602
fb07a302
GM
36032000-02-12 Gerd Moellmann <gerd@gnu.org>
3604
3605 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3606
aaf2320c
DL
36072000-02-12 Dave Love <fx@gnu.org>
3608
3609 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3610
3611 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3612 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3613 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3614
3615 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3616
3617 * s/nextstep.h: Don't define HAVE_ALLOCA.
3618
3619 * config.in: Add vfork bits.
3620
eedf8bde
GM
36212000-02-12 Gerd Moellmann <gerd@gnu.org>
3622
3623 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3624 unwind function to undo the effect of stopping atimers.
3625
3626 * keyboard.c (bind_polling_period): Stop all timers except
3627 poll_timer.
3628
3629 * atimer.c (stopped_atimers): New variable.
3630 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3631 New functions.
3632
3633 * atimer.h (stop_other_atimers, run_all_atimers)
3634 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3635
eedf8bde
GM
3636 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3637
8476c2f8
KR
36382000-02-11 Ken Raeburn <raeburn@gnu.org>
3639
3640 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3641 library may depend on jpeg.
3642 (atimer.o): Depends on atimer.c.
3643
0e85e4a3
KH
36442000-02-11 Kenichi Handa <handa@etl.go.jp>
3645
3646 * insdel.c (del_range_1): Call update_compositions.
3647 (del_range_both): Call update_compositions just once..
3648
97fa0cc8
DL
36492000-02-10 Dave Love <fx@gnu.org>
3650
3651 * xfns.c (create_frame_xic): Fix initialization of automatic
3652 aggregates for pcc.
3653
25566a3c
KH
36542000-02-09 Kenichi Handa <handa@etl.go.jp>
3655
3656 * ccl.c (CCL_MAKE_CHAR): New macro.
3657 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3658 registers by CCL_MAKE_CHAR before calling translate_char.
3659 <CCL_TranslateCharacterConstTbl> Likewise.
3660
69da54ba
DL
36612000-02-08 Dave Love <fx@gnu.org>
3662
3663 * lread.c (__EXTENSIONS__): Define.
3664
f7136ee8
GM
36652000-02-08 Gerd Moellmann <gerd@gnu.org>
3666
3667 * puresize.h (BASE_PURESIZE): Increase to 650000.
3668
7768790b
EZ
36692000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3670
3671 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3672 the help message.
3673
38fd211b
EZ
36742000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3675
3676 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3677 md, mh, mb, mr, and me to the fake termcap entry.
3678
66e4690f
KR
36792000-02-06 Ken Raeburn <raeburn@gnu.org>
3680
3681 * sound.c (sound_cleanup): Don't call device close routine if the
3682 function pointer is null.
3683
a75dfea0
AI
36842000-02-06 Andrew Innes <andrewi@gnu.org>
3685
3686 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3687 around image definitions and prototypes.
3688 (gamma_correct) [WINDOWSNT]: New prototype.
3689
3690 * w32term.c (x_make_frame_visible): Replace call to
3691 input_poll_signal with poll_for_input.
3692
3693 * window.c [WINDOWSNT]: Include w32term.h.
3694
3695 * xdisp.c [WINDOWSNT]: Include w32term.h.
3696
3697 * makefile.nt: Add dependencies on w32gui.h.
3698 (OBJ1): Include atimer.obj.
3699 ($(BLD)\atimer.obj): New dependency rule.
3700
3701 * w32.c (sigmask): New function (does nothing).
3702 (sigunblock): Ditto.
3703
3704 * frame.c [WINDOWSNT]: Include w32term.h.
3705
3706 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3707
3708 * lread.c (syms_of_lread): Fix literal newlines.
3709
3710 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3711 the string constant limit (2048 bytes) in MSVC.
3712 (main): Ditto.
3713
59ddecde
GM
37142000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3715
3716 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3717 area.
3718 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3719 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3720 dispatch the event.
3721
07590973
DL
37222000-02-04 Dave Love <fx@gnu.org>
3723
3724 * fileio.c: Remove some unused vars.
3725 (_GNU_SOURCE): Define (for euidaccess).
3726
3727 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3728
3729 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3730 gcpro1, gcpro2.
3731 (read_minibuf): Deal with allow_props correctly.
3732
649351f9
EZ
37332000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3734
3735 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3736
66e4690f 37372000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3738
3739 * search.c (compile_pattern): If a cache entry has a nil regexp,
3740 fill in that entry instead of clobbering a previously cached
3741 string regexp.
3742
66e4690f 37432000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3744
3745 * puresize.h (BASE_PURESIZE): Increase to 610000.
3746
d240a249
GM
37472000-02-02 Gerd Moellmann <gerd@gnu.org>
3748
3749 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3750 can GC.
3751
ca91fb26
KH
37522000-02-02 Kenichi Handa <handa@etl.go.jp>
3753
25660570
KH
3754 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3755 instead of incrementing ic directly.
3756 <CCL_WriteExprConst> Likewise.
3757 <ccl_set_expr>: Set ic to jump_address.
3758
ca91fb26
KH
3759 * fileio.c (e_write): Fix the handling of
3760 CODING_FINISH_INSUFFICIENT_SRC.
3761
2ede9689
DL
37622000-02-01 Dave Love <fx@gnu.org>
3763
3764 * editfns.c (Fpropertize): Doc fix.
3765
3766 * process.c (Fstart_process): Doc fix.
3767
3768 * eval.c: Fix various doc strings not to duplicate information
3769 from help-manyarg-func-alist.
3770
3771 * window.c (Fset_window_margins): Don't make interactive. Doc
3772 fix.
3773
3774 * doc.c (Vhelp_manyarg_func_alist): New variable.
3775 (Fdocumentation): Use it.
3776 (syms_of_doc): Define it.
3777
b6680a0e
GM
37782000-01-31 Gerd Moellmann <gerd@gnu.org>
3779
2cb750ba
GM
3780 * xterm.c (xim_open_dpy): Remove unused local variable.
3781
74e9213b
GM
3782 * emacs.c (USAGE): Use term `display options' instead of `X
3783 options'.
3784
3785 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3786 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3787
b6680a0e
GM
3788 * fns.c (sweep_weak_table): New function.
3789 (sweep_weak_hash_tables): Use it. Keep on marking until there
3790 is no more change.
3791
994c5afe
GM
37922000-01-30 Gerd Moellmann <gerd@gnu.org>
3793
3794 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3795 that XTread_socket does not crash by trying to call XNoOp on a
3796 closed display.
427ec082 3797
f00276e3
JR
37982000-01-30 Jason Rumney <jasonr@gnu.org>
3799
3800 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3801 Change selected_frame to SELECTED_FRAME ().
3802 (w32_console_mouse_position): Remove #ifndef MULE from around
3803 `insist' parameter.
3804
3805 * makefile.nt: Remove dosfns.obj.
3806
3807 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3808
3809 * w32fns.c (w32_defined_color): Check for valid frame before
3810 applying gamma correction. Eliminate dependency on frame elsewhere.
3811 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3812 (w32_to_x_font): Use resx and resy not height_in and width_in.
3813 (x_to_w32_font): Doc fix.
3814 (xlfd_strip_height): New function to strip and return font height.
3815 (w32_font_match): Compare height separately from rest of xlfd
3816 spec, using xlfd_strip_height.
3817
3818 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3819 width_in. Use w32_defined_color in place of defined_color.
3820
3821 * w32faces.c: Merge more of DOS and X specifics in preparation for
3822 merge with xfaces.c.
3823 (defined_color): Remove FIXME comment.
3824 (tty_color_name): Provide w32-specific function.
3825 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3826
3827 * w32console.c (turn_on_face, turn_off_face): Removed.
3828 (w32_face_attributes): New function.
3829 (Global_variables): Reduce scope where possible.
3830 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3831 fill attribute.
3832 (hl_mode): Don't modify text attributes.
3833 (write_glyphs): Don't do anything if len <= 0. Use
3834 w32_face_attributes to get attributes for drawing. Write
3835 terminating codes using char_attr_normal.
3836 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3837 (update_begin, update_end): Likewise.
3838 (vga_stdcolor_name): New function.
3839 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3840 (Fset_screen_color): Remove char_attr_reverse.
3841
b08e8bb2
GM
38422000-01-29 Gerd Moellmann <gerd@gnu.org>
3843
3844 * xfns.c (xic_set_preeditarea): Take window parameter and
3845 window-relative pixel-positions.
3846
3847 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3848 is its frame's selected window.
3849 (xim_instantiate_callback): Likewise.
3850
3851 * xfns.c (x_create_im): Removed.
3852 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3853 (supported_xim_styles): Renamed from supported_styles.
3854 (best_xim_style): Renamed from best_style.
3855 (create_frame_xic): Renamed from xic_create_frame.
3856 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3857
b08e8bb2
GM
38582000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3859
3860 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3861 our frames, call XFilterEvent with 2nd parameter `None'.
3862 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3863 returning XBufferOverflow.
3864 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3865 area.
3866 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3867 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3868 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3869 (xim_initialize, xim_close)
3870 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3871 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3872 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3873 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3874
3875 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3876 and `xim_styles'.
3877 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3878 `xic_style' and `xic_xfs'.
3879 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3880 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3881 (FRAME_XIM): Removed.
3882
3883 * xfns.c (supported_styles): New variable.
3884 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3885 (xic_create_xfontset, best_style, xic_create_frame)
3886 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3887 (xic_set_xfontset): New functions.
3888
142e109c
DL
38892000-01-28 Dave Love <fx@gnu.org>
3890
3891 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3892
3893 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3894
b02786f9
GM
38952000-01-28 Gerd Moellmann <gerd@gnu.org>
3896
d060bc9f
GM
3897 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3898 for *scratch* if it already existed.
3899
b02786f9
GM
3900 * emacs.c (USAGE): New macro.
3901 (main): Use it to display usage information.
3902
2c52d7e4
EZ
39032000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3904
3905 Support for the menu-help feature:
3906
3907 * msdos.h: Change prototypes of XMenuAddSelection and
3908 XMenuActivate.
3909
3910 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3911 part of the line to the termscript file.
3912 (IT_clear_to_end): Clear the entire line, not just its beginning.
3913 (menu_help_message, prev_menu_help_message): New variables.
3914 (IT_menu_make_room): Make room for the help_text member.
3915 (IT_menu_display): New argument disp_help; all callers changed.
3916 If disp_help is non-zero, store the help text of the active menu
3917 item in menu_help_message.
3918 (XMenuAddPane): Initialize the help_text member to NULL.
3919 (XMenuAddSelection): New argument help_text. Store it in the
3920 XMenu structure.
3921 (XMenuActivate): New argument help_callback. If the value of
3922 menu_help_message has changed since the last time, display the
3923 menu help message text while waiting for the mouse to move. Clear
3924 the echo area before exiting.
3925 (XMenuDestroy): Free the help_text member.
3926
ffe0bcd1
GM
39272000-01-27 Gerd Moellmann <gerd@gnu.org>
3928
3929 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3930 XMenuAddSelection. Pass help callback to XMenuActivate.
3931 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3932
50dbd23f
EZ
39332000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3934
3935 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3936 and EMACS_SET_USECS.
3937
f5941bf8
GM
39382000-01-26 Dave Love <fx@gnu.org>
3939
6c67ddee
DL
3940 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3941
f5941bf8
GM
3942 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3943 an error may be signalled.
3944
9e49c990
GM
39452000-01-26 Gerd Moellmann <gerd@gnu.org>
3946
fc3cb460
GM
3947 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3948 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3949
9e49c990
GM
3950 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3951
d0c037d8
GM
39522000-01-25 Gerd Moellmann <gerd@gnu.org>
3953
3954 * charset.c (Fstring): If there is a multibyte char among
3955 the args, always return a multibyte string.
3956
e12489f9
GM
39572000-01-25 Gerd Moellmann <gerd@gnu.org>
3958
3959 * sysdep.c (sys_select): Turn atimers off and on instead of
3960 recording and restoring old alarm handler
3961
3962 * process.c (toplevel): Include atimer.h.
3963 (create_process_1): Rewritten.
3964 (create_process): Use atimers instead of alarm.
3965 (wait_reading_process_input) [hpux]: Turn atimers off instead
3966 of turning off SIGALRM.
3967 (wait_reading_process_input): Turn off atimers instead off
3968 calling stop_polling.
3969
3970 * emacs.c (main): Call init_atimer.
3971
3972 * keyboard.c (toplevel): Include systime.h and atimer.h.
3973 (polling_for_input): Removed because unused.
3974 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3975 (poll_timer): New variable.
3976 (poll_for_input, poll_for_input_1): New functions.
3977 (start_polling, stop_polling): Rewritten.
3978
3979 * keyboard.h (polling_for_input): Removed.
427ec082 3980
e12489f9
GM
3981 * atimer.h, atimer.c: New files.
3982
3983 * Makefile.in (obj): Add atimer.o.
3984 (atimer.o): New target.
3985
3986 * blockinput.h (pending_atimers): Add extern declaration.
3987 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3988
3989 * lisp.h (popup_activated_flag): Add extern declaration.
3990
3991 * xmenu.c (popup_activated_flag): Make externally visible.
3992 (popup_activate_callback) [USE_MOTIF]: Increment
3993 popup_activated_flag.
3994 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3995
3996 * xterm.c (toplevel): Include atimer.h.
3997 (toolkit_scroll_bar_interaction): New variable.
3998 (Fxt_process_timeouts): Removed.
3999 (x_process_timeouts): New function.
4000 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
4001 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
4002 (x_make_frame_visible): Call poll_for_input_1 instead of
4003 input_poll_signal. Don't call alarm.
4004 (x_initialize): Install timer calling x_process_timeouts.
427ec082 4005
1e5279b9
DL
40062000-01-24 Dave Love <fx@gnu.org>
4007
6c67ddee 4008 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
4009 Don't use -cckr -- apparently not now necessary.
4010
edf6aeb8
EZ
40112000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4012
4013 * msdos.c (IT_menu_display): Truncate long menu lines at the right
4014 screen boundary.
4015
9badad41
JR
40162000-01-23 Jason Rumney <jasonr@gnu.org>
4017
4018 * w32fns.c (w32_defined_color): Apply gamma correction before
4019 trying to map to the palette.
4020 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
4021 to w32_clear_rect.
4022
4023 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
4024 here. Callers changed to always pass real device context.
4025 (w32_draw_bitmap): Likewise.
4026 (w32_get_glyph_overhangs): Likewise.
4027 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
4028 one.
4029 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
4030 pfnSetScrollInfo and SetScrollRange.
4031 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
4032 back into MULE characters after decoding them.
4033 (x_get_glyph_face_and_encoding): Likewise.
4034 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
4035 GetCharABCWidthsW fails, since this is defined on Windows 9x.
4036 (x_produce_glyphs): Calculate per char metrics for a character
4037 that we know exists in default font when font_not_found_p is true.
4038
63bd786b
JR
40392000-01-22 Jason Rumney <jasonr@gnu.org>
4040
4041 * makefile.nt (intervals.obj, composite.obj): New modules.
4042 (composite.h): Added as dependency where appropriate.
4043
4044 * w32gui.h (XGCValue): New struct for emulating X GCs.
4045
4046 * w32term.h (XCharStruct): New struct for emulating X.
4047
4048 * w32console.c (turn_on_face, turn_off_face): New functions.
4049 (change_line_highlight): New prototype for new redisplay.
4050 (write_glyphs): Support multibyte text. Support faces.
4051
4052 * w32faces.c: Complete rewrite for new redisplay based on new
4053 xfaces.c.
4054
4055 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
4056 throughout. struct frame * in place of FRAME_PTR.
4057 Skeleton support for images, toolbars, tooltips from xfns.c.
4058 (Fx_create_frame): Use system default for default scroll bar
4059 width.
4060 (w32_get_arg): Renamed from x_get_arg.
4061 (Fx_file_dialog): New function.
4062 (w32_list_fonts): Check cache before asking system.
4063 (Vw32_enable_synthesized_fonts): New variable.
4064 (Vw32_enable_italics): Obsolete, removed.
4065
4066 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4067 Use SELECTED_FRAME macro.
4068
4069 * w32menu.c: Add skeleton support for help strings on menus.
4070 (add_menu_item): Native checkbox and radio support added, but not
4071 yet enabled due to bugs.
4072 (push_menu_item): Add parameters type, selection and help.
4073 Callers updated.
4074 Formatting changes to reduce unnecessary diffs with xmenu.c.
4075
4076 * w32select.c (Fw32_set_clipboard_data): Update call to
4077 find_charset_in_str.
4078
4079 * w32term.c: Complete rewrite for new redisplay based on new
4080 xterm.c with necessary sections merged back in from old w32term.c.
4081
6ffd3cf7 40822000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
4083
4084 * data.c (set_internal): Further fix in same criterion.
4085
6ffd3cf7 40862000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
4087
4088 * data.c (set_internal): Fix the criteria for whether
4089 to swap out the old cached binding.
4090
60af03f1
DL
40912000-01-19 Dave Love <fx@gnu.org>
4092
4093 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
4094
f9be074f
KH
40952000-01-18 Kenichi Handa <handa@etl.go.jp>
4096
4097 * regex.c (re_compile_fastmap): While checking a range table for
4098 `charset', skip flag bits for a character class correctly.
4099
52b8dbf9
GM
41002000-01-17 Gerd Moellmann <gerd@gnu.org>
4101
d36100c9
GM
4102 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
4103
52b8dbf9
GM
4104 * xfns.c (x_window): Call lw_create_widget with new parameter
4105 list.
4106
4107 * widget.c (EmacsFrameSetCharSize): Change size of children first
4108 because of problems with main window geometry management under
4109 Lesstif.
4110
4111 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
4112 MENU_ITEMS_ITEM_.*.
4113 (MENU_ITEMS_ITEM_HELP): New enumerator.
4114 (push_menu_item): Add parameter HELP. Record help in menu_items.
4115 (single_menu_item, single_submenu, list_of_items): Call
4116 push_menu_item with new parameter.
4117 (single_submenu): Set help string in widget value.
4118 (menu_highlight_callback): New function.
4119 (set_frame_menubar): Call lw_create_widget with new
4120 parameter list.
4121 (xmenu_show, xdialog_show): Ditto.
4122
3139018f
GM
41232000-01-13 Gerd Moellmann <gerd@gnu.org>
4124
4125 * sound.c (Fplay_sound): Improve doc string.
4126
83c8f461
RS
41272000-01-11 Richard M. Stallman <rms@gnu.org>
4128
4129 * lisp.h (set_internal): Enter the new arg.
4130
4131 * eval.c (specbind): Record buffer-local variables specially,
4132 indicating which buffer's binding was saved.
4133 (unbind_to): Restore buffer-local variables specially
4134 in the proper buffer.
4135
4136 * data.c (set_internal): New arg BUF.
427ec082 4137
83c8f461
RS
4138 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
4139 * data.c (Fset): Pass new arg to set_internal.
4140 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 4141
1fab1775
GM
41422000-01-11 Gerd Moellmann <gerd@gnu.org>
4143
4144 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
4145 xprintsym.
4146
83c8f461 41472000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
4148
4149 * minibuf.c (Ftry_completion): Doc fix.
4150
7a85e4df
GM
41512000-01-11 Gerd Moellmann <gerd@gnu.org>
4152
4153 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
4154 vector, too.
4155
a970dae4
AS
41562000-01-11 Andreas Schwab <schwab@suse.de>
4157
4158 * coding.c (code_convert_region): Initialize total_skip.
4159
c65d14ee
DL
41602000-01-08 Dave Love <fx@gnu.org>
4161
4162 * eval.c (Fuser_variable_p): Check customizability too.
4163
834938d2
GM
41642000-01-07 Gerd Moellmann <gerd@gnu.org>
4165
4166 * minibuf.c (Fcompleting_read): Doc fix.
4167
e0303cd6
GM
41682000-01-05 Gerd Moellmann <gerd@gnu.org>
4169
8a26744b
GM
4170 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
4171 -L /usr/local/lib.
4172
e0303cd6
GM
4173 * xfns.c (x_create_im): New function to set IM and IC of a frame.
4174 Check that input style is supported before trying to create an
4175 IC for it.
4176 (x_window): Call x_create_im.
427ec082 4177
2e471eb5
GM
41782000-01-04 Gerd Moellmann <gerd@gnu.org>
4179
560a7bd2
GM
4180 * xfns.c (current_gif_memory_src): New variable.
4181 (gif_load): Record the address of the current memory source
4182 in current_gif_memory_src.
4183 (gif_read_from_memory): Use current_gif_memory_src.
4184
f9ee84a3
GM
4185 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
4186 macros statement form.
4187
d1299cde
GM
4188 * sound.c (struct sound): Renamed from struct sound_file.
4189 (struct sound): Add members `data' and `header_size'.
4190 (enum sound_attr): Add SOUND_DATA.
4191 (current_sound, current_sound_device): Variables renamed from
4192 sound_file and sound_device.
4193 (parse_sound): Parse :data.
4194 (parse_sound): Handle sound data in strings.
4195 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 4196 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
4197 needed header size.
4198 (wav_play, au_play): Play sounds from string data.
4199
2e471eb5
GM
4200 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
4201
4202 * lisp.h: Add prototype for allocate_string_data.
4203
4204 * alloc.c (Fgarbage_collect): Return number of live and free
4205 strings.
4206
4207 * alloc.c (mark_buffer): Remove code in #if 0.
4208 (gc_sweep): Ditto.
4209 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4210 (strings_consed): New variable.
4211 (allocate_string): Set it.
4212 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4213 (Fmemory_use_counts): Return strings_consed. Use Flist.
4214
4215 * alloc.c: General cleanup in comments etc. Remove conditional
4216 compilation for `standalone'.
4217
4218 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4219
4220 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4221 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4222 (DONT_COPY_FLAG): Removed.
4223 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4224 (struct sdata, struct sblock): New
4225 (struct string_block): Rewritten.
4226 (STRINGS_IN_STRING_BLOCK): New macro.
4227 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4228 (large_sblocks, string_blocks, string_free_list): New variables.
4229 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4230 (init_strings): Rewritten.
4231 (allocate_string, allocate_string_data, compact_small_strings)
4232 (free_large_strings, sweep_strings): New functions.
4233 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4234 (struct string_block_head, current_string_block)
4235 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4236 (STRING_PAD): Removed.
4237 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4238 (Fgarbage_collect): Don't set mark bit in large strings.
4239 (mark_object): Mark strings differently. Mark symbol names
4240 differently.
4241 (survives_gc_p): Test marked strings differently.
427ec082 4242 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4243 symbol names.
4244 (compact_strings): Removed.
4245
42608ba8
EZ
42462000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4247
4248 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4249 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4250
e0a09e1a
KH
42512000-01-04 Kenichi Handa <handa@etl.go.jp>
4252
dd9f0750 4253 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4254 in a non-empty buffer.
dd9f0750 4255
3c0f3b15 4256 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4257
44cd3ae5
GM
42582000-01-03 Gerd Moellmann <gerd@gnu.org>
4259
4260 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4261 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4262
4263 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4264
c182a70f
EZ
42652000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4266
4267 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4268 need to test for MSDOS frames.
4269
24480d5b
EZ
42702000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4271
4272 * dosfns.c (unspecified_colors): Remove.
4273 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4274 unspecified_bg.
4275 (msdos_stdcolor_name): Return strings for unspecified fore- and
4276 back-ground colors.
4277
4278 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4279 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4280 (tty_color_name): Return Lisp strings for unspecified fore- and
4281 back-ground colors.
4282 (Finternal_set_lisp_face_attribute): Remove the special treatment
4283 for Qunspecified_{f,b}g.
4284 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4285 string.
4286
047f434a
GM
42872000-01-03 Gerd Moellmann <gerd@gnu.org>
4288
4289 * xdisp.c (reseat_at_next_visible_line_start): Position before
4290 newline only if ending up on a newline.
4291 (next_element_from_ellipsis): Return success. Handle case of
4292 displaying no ellipsis. Fix case of ellipsis defined in display
4293 table.
4294 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4295 returns 0.
4296
d684c676
EZ
42972000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4298
4299 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4300 (Fcolor_supported_p): Renamed from face-color-supported-p.
4301
5fe1d139
EZ
43022000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4303
4304 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4305 list of colors renamed to tty-defined-color-alist.
4306 (tty_color_name): Pass the frame to tty-color-by-index.
4307 (realize_tty_face): tty-color-alist is now a function which
4308 accepts the frame as argument.
4309
4310 * term.c (Ftty_display_color_p): Accept an optional argument
4311 FRAME.
4312
816be8b8
EZ
43132000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4314
4315 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4316 encode_terminal_code.
4317
b635321e
EZ
43182000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4319
4320 * dispnew.c (mode_line_string): Support termcap frames as well.
4321
9b784e96
GM
43222000-01-01 Gerd Moellmann <gerd@gnu.org>
4323
27189709
GM
4324 * syntax.c (Fforward_word): Undo previous change.
4325
4326 * editfns.c (Fconstrain_to_field): Don't constrain if
4327 inhibit-field-text-motion is non-nil.
4328 (Fline_beginning_position): Undo previous change.
4329 (Fline_end_position): Ditto.
4330
4331 * syntax.c (Fforward_word): Notice field boundaries only if
4332 inhibit-field-text-motion is nil.
4333
4334 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4335
4336 * editfns.c (Vinhibit_field_text_motion): New variable.
4337 (inhibit-field-text-motion): New DEFVAR_LISP.
4338 (Fline_beginning_position, Fline_end_position): Notice field
4339 boundaries only if inhibit-field-text-motion is nil.
4340
45158a91
GM
4341 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4342 All calls adjusted.
4343 (x_build_heuristic_mask): Likewise.
4344 (xbm_load_image_from_file): Change error output.
4345 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4346 (gif_load, gs_load, x_kill_gs_process): Ditto.
4347
9b784e96
GM
4348 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4349 color indices when accessing raster pixels.
63cec32f
GM
4350 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4351 one of :file or :data.
4352 (enum pbm_keyword_index): Add PBM_DATA.
4353 (pbm_format): Add :data.
4354 (pbm_image_p): Allow either :file or :data.
4355 (pbm_read_file): New function.
4356 (pbm_scan_number): Rewritten to read from string.
4357 (pbm_load): Support :data.
9b784e96 4358
5ad6a5fb
GM
43591999-12-31 Gerd Moellmann <gerd@gnu.org>
4360
4361 * xfns.c: New image functions adapted to Emacs conventions.
4362 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4363 variable `file'.
4364
63448a4d
WP
43651999-12-31 William M. Perry <wmperry@aventail.com>
4366
4367 * xfns.c (jpeg_format): Added the :data keyword
4368 (jpeg_image_p): JPEG is valid with :file _or_ :data
4369 (jpeg_memory_src): Defined new JPEG image source to read from a
4370 memory buffer.
4371 (jpeg_load): Pay attention to the :data keyword if specified.
4372 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4373 found.
4374 (png_format): Added the :data keyword
4375 (png_image_p): PNG is valid with :file _or_ :data
4376 (png_read_from_memory): New PNG read function to read from a
4377 memory buffer.
4378 (png_load): Pay attention to the :data keyword if specified. Uses
4379 png_set_read_fn() instead of png_init_io() if specified.
4380 (tiff_format): Added the :data keyword for TIFF images.
4381 (tiff_image_p): TIFF is valid with :file _or_ :data
4382 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4383 from a memory buffer.
4384 (tiff_load): Pay attention to the :data keyword if specified.
4385 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4386 (gif_format): Added the :data keyword
4387 (gif_image_p): GIF is valid with :file _or_ :data
4388 (gif_read_from_memory): New GIF input function to read from a
4389 memory buffer.
c65d14ee 4390 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4391 instead of DGifOpenFileName() if specified.
4392
c880678e
GM
43931999-12-31 Gerd Moellmann <gerd@gnu.org>
4394
4395 * xdisp.c (next_element_from_buffer): Change assertion at the end
4396 because it doesn't hold when there's an overlay string at the end
4397 from which we deliver an image.
4398
8ccb9a54
EZ
43991999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4400
4401 * msdos.c (IT_update_begin): Don't dereference members of struct
4402 window for deleted windows.
4403
12ce2351
GM
44041999-12-30 Gerd Moellmann <gerd@gnu.org>
4405
a915c648
GM
4406 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4407 a hook, and the hook has a non-nil `no-self-insert' property, let
4408 the return value of the hook specify whether an expansion took
4409 place. If it returns nil, no expansion has been performed.
4410
12ce2351
GM
4411 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4412 differently.
4413
04ee4f45
EZ
44141999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4415
4416 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4417
7f4bc0c3
EZ
44181999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4419
4420 * dispnew.c (mode_line_string): Support MS-DOS frames.
4421
dac204bc
GM
44221999-12-29 Gerd Moellmann <gerd@gnu.org>
4423
4424 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4425
7b712ad8
KH
44261999-12-29 Kenichi Handa <handa@etl.go.jp>
4427
4428 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4429 to signal_after_change.
4430
adb9900f
EZ
44311999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4432
41ad069b
EZ
4433 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4434 dimensions changed, invalidate the mouse highlight info.
4435 (disable_mouse_highlight, help_echo, previous_help_echo): New
4436 variables.
4437 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4438 (fast_find_position, IT_note_mode_line_highlight)
4439 (IT_note_mouse_highlight): New functions.
4440 (IT_update_begin): If the redisplay affects the window where the
4441 mouse highlight is, clear the highlight. If the frame where the
4442 highlight was displayed was killed, invalidate the highlight
4443 info.
4444 (IT_update_end): Reset the highlight flag. Reset the mouse
4445 highlight-defer flag.
4446 (IT_frame_up_to_date): New function, if mouse highlight was
4447 deferred due to GC, do it now.
4448 (internal_terminal_init): Initialize mouse-highlight related
4449 members of the_only_x_display. Assign IT_frame_up_to_date to
4450 frame_up_to_date_hook.
4451 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4452 help_echo changed value, generate a HELP_EVENT event.
4453 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4454
adb9900f
EZ
4455 * msdos.h (struct display_info): New.
4456 (struct x_output): Add the display_info member.
4457 (FRAME_X_DISPLAY_INFO): New macro.
4458
481b5054
GM
44591999-12-28 Gerd Moellmann <gerd@gnu.org>
4460
4461 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4462 if MODIFF > 1.
6448a6b3 4463 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4464
4465 * buffer.c (modify_overlay): Always compute unchanged info.
4466
a2882b0d
KH
44671999-12-27 Kenichi Handa <handa@etl.go.jp>
4468
4469 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4470
89ba5b5f
KH
44711999-12-27 Kenichi Handa <handa@etl.go.jp>
4472
4473 The following changes are to use more bits for face IDs.
4474
4475 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4476 lowest 8 bits are single byte character code, the bits above are
4477 face ID.
481b5054 4478 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4479 above.
481b5054
GM
4480 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4481 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4482
4483 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4484 of GLYPH_MASK_CHAR.
4485
4486 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4487 of GLYPH_MASK_CHAR.
4488
4489 * dispextern.h (struct glyph): Make face_id and padding_p the top
4490 level members. Change members in union `u'.
4491 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4492 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4493 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4494 (CHAR_GLYPH_PADDING_P): Likewise.
4495 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4496 characters.
4497
481b5054 4498 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4499 for the change of struct glyph.
4500 (line_draw_cost): Adjusted for the change of
4501 GLYPH_FROM_CHAR_GLYPH.
4502 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4503
4504 * term.c (encode_terminal_code): Adjusted for the change of struct
4505 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4506 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4507 change of struct glyph.
4508
4509 * xdisp.c: All codes adjusted for the change of struct glyph.
4510
4511 * xterm.c: All codes adjusted for the change of struct glyph.
4512
5bcd116c
KH
45131999-12-27 Kenichi Handa <handa@etl.go.jp>
4514
4515 * composite.h (struct composition): Change the order of declaring
4516 members to reduce the byte size of the structure.
4517
f21b06b7
GM
45181999-12-25 Gerd Moellmann <gerd@gnu.org>
4519
4520 * search.c (looking_at_1): Reset immediate_quit before modifying
4521 global data.
4522
e36557c9
KH
45231999-12-24 Kenichi Handa <handa@etl.go.jp>
4524
4525 * process.c (read_process_output): Fix the arg FROM to
4526 update_compositions.
4527
83c8f461 45281999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4529
4530 * search.c (Freplace_match): For nonliteral replacement in buffer,
4531 construct all the new text first, then insert all at once.
4532
0b863bd9
DL
45331999-12-22 Dave Love <fx@gnu.org>
4534
4535 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4536
6d8e8ef3
GM
45371999-12-22 Gerd Moellmann <gerd@gnu.org>
4538
28d7281d
GM
4539 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4540 lead to size changes to after the X window has been created.
4541
e22ef6eb 4542 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4543 variable in xassert.
4544
8affcced
KH
45451999-12-22 Kenichi Handa <handa@etl.go.jp>
4546
4547 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4548 only when the frame is not for a window system.
8affcced 4549
f2be1146
GM
45501999-12-22 Gerd Moellmann <gerd@gnu.org>
4551
deca1348
GM
4552 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4553 redisplay after changing the multibyteness of a buffer.
4554
f2be1146
GM
4555 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4556 frame's X window to XFilterEvent instead of None because that's
4557 the X window for which the IC was created. This makes dead
4558 accents work when the pointer is not in Emacs' frame.
4559 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4560
a744a2ec
DL
45611999-12-20 Dave Love <fx@gnu.org>
4562
4563 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4564
9e6985ed
GM
45651999-12-19 Gerd Moellmann <gerd@gnu.org>
4566
4567 * eval.c (debugger_may_continue): New variable.
4568 (syms_of_eval): Add a DEFVAR_BOOL for it.
4569 (call_debugger): Bind it.
4570
3b620731
EZ
45711999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4572
4573 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4574 fp->tty_reverse_p is set, unless the computed colors are identical
4575 to frame colors. Print both original and computed colors to
4576 termscript file.
4577 (IT_write_glyphs): Track the changes in handling of composite
4578 characters.
4579 (IT_set_frame_parameters): Don't set frame colors from
4580 unspecified-fg and unspecified-bg pseudo-colors.
4581
0f9a51c4
DL
45821999-12-17 Dave Love <fx@gnu.org>
4583
4584 * data.c (Fkeywordp): New function.
4585 (syms_of_data): Install it.
4586
363e4e42
EZ
45871999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4588
4589 * xfaces.c (tty_defined_color): Fix last change.
4590
cfad01b4
GM
45911999-12-15 Gerd Moellmann <gerd@gnu.org>
4592
4593 * xdisp.c (redisplay_window) <optional new window start>: Check
4594 that window start is in [BEGV..ZV].
4595
f9d2fdc4
EZ
45961999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4597
4598 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4599 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4600
4601 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4602 (syms_of_xfaces): Initialize and staticpro them.
4603 (tty_defined_color): If the color name is unspecified-fg or
4604 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4605 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4606 (tty_color_name): If the color pixel value is either
4607 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4608 Qunspecified_fg or Qunspecified_bg, respectively.
4609 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4610 and Qunspecified_bg for foreground and background colors.
4611 (realize_default_face): If the foreground and background colors
4612 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4613 (realize_tty_face): By default, set the face colors to
4614 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4615 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4616 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4617 Reverse the colors if the default colors were reversed.
4618
4619 * dispnew.c (init_display): Initialize the frame pixels of the
4620 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4621 FACE_TTY_DEFAULT_BG_COLOR.
4622
4623 * term.c (turn_on_face): If the default fore- and background
4624 colors are reversed, enter inverse video mode. Don't send color
4625 escape sequences for unspecified foreground and background colors.
4626 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4627
4628 * dosfns.c (unspecified_colors): New variable.
4629 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4630 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4631 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4632 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4633 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4634 Qunspecified_bg, respectively.
4635
4636 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4637 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4638
e19539f1
KH
46391999-12-15 Kenichi Handa <handa@etl.go.jp>
4640
4641 * coding.c (code_convert_region): Fix the secoding arg to
4642 update_compositions.
4643
5ec14d3c
KH
46441999-12-15 Kenichi Handa <handa@etl.go.jp>
4645
4646 The following changes are for the new composition mechanism. We
4647 have deleted `composition' charset and composite characters,
4648 instead introduced a special text property `composition'.
4649
4650 * Makefile.in (INTERVAL_SRC): Include composite.h.
4651 (INTERVAL_OBJ): Include composite.o.
4652 (SOME_MACHINE_OBJECTS): Include composite.o.
4653 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4654 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4655 Depend on composite.h.
4656 (doc.o): Depend on charset.h.
4657 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4658 (composite.o): New target.
427ec082 4659
5ec14d3c
KH
4660 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4661
4662 * callproc.c (Fcall_process): Call code_convert_string to encode
4663 arguments. Use CODING_REQUIRE_DECODING to check if the process
4664 output should be decoded.
4665
4666 * casefiddle.c: Include composite.h.
4667 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4668 multibyte character. Adjusted for the change of CHAR_STRING.
4669 (casify_region): Likewise. Call update_compositions.
4670
4671 * category.h (CATEGORY_SET): Delete codes for a composite
4672 character.
4673
4674 * category.c (word_boundary_p): Delete codes for a composite
4675 character.
4676 (Fmake_category_table): New function.
4677 (syms_of_category): Defsubr it.
4678
4679 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4680 (ccl_driver): Delete codes for a composite character.
4681
4682 * charset.h: In this entry, just `Modified' means that codes for a
4683 composite character is deleted.
4684 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4685 (charset_composition) (MIN_CHAR_COMPOSITION)
4686 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4687 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4688 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4689 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4690 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4691 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4692 Modified.
4693 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4694 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4695 non_ascii_char_to_string.
4696 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4697 (STRING_CHAR_AND_LENGTH): Likewise.
4698 (FETCH_CHAR_ADVANCE): New macro.
4699 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4700 (MAX_MULTIBYTE_LENGTH): New macro.
4701 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4702 (find_charset_in_str): Argument adjusted.
4703 (CHAR_LEN): Modified.
427ec082 4704
5ec14d3c
KH
4705 * charset.c: In this entry, just `Modified' means that codes for a
4706 composite character is deleted.
4707 (Qcomposition) (leading_code_composition)
4708 (charset_composition) (min_composite_char) (cmpchar_table)
4709 (cmpchar_table_size) (n_cmpchars): Deleted.
4710 (SPLIT_COMPOSITE_SEQ): Deleted.
4711 (SPLIT_MULTIBYTE_SEQ): Modified.
4712 (char_to_string): Renamed from non_ascii_char_to_string.
4713 Modified.
4714 (string_to_char): Renamed from string_to_non_ascii_char.
4715 (split_string): Renamed from split_non_ascii_string.
4716 (char_printable_p) (Fsplit_char)
4717 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4718 (char_bytes) (Fchar_width) (strwidth): Modified.
4719 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4720 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4721 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4722 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4723 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4724 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4725 (Fcmpchar_cmp_count): Deleted.
4726 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4727 (init_charset_once): Modified.
4728 (syms_of_charset): Modified.
4729
4730 * cmds.c (internal_self_insert): Adjusted for the change of
4731 CHAR_STRING.
4732
4733 * coding.h (emacs_code_class_type): Delete the member
4734 EMACS_leading_code_composition.
4735 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4736 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4737 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4738 (COMPOSING_WITH_RULE_P): Macros deleted.
4739 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4740 macros.
4741 (struct composition_data): New structure.
4742 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4743 (struct coding_system): New members composition_rule_follows,
4744 cmp_data, cmp_data_start, cmp_data_index.
4745 (coding_save_composition) (coding_free_composition_data)
4746 (coding_adjust_composition_offset): Extern them.
4747
4748 * coding.c: Include composite.h.
4749 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4750 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4751 of multibyte code here.
4752 (DECODE_CHARACTER_DIMENSION2): Likewise.
4753 (detect_coding_emacs_mule): Change the case label from
4754 EMACS_leading_code_composition to 0x80.
4755 (detect_coding_iso2022): Handle new composition sequence.
4756 (DECODE_ISO_CHARACTER): Likewise.
4757 (check_composing_code): Deleted.
4758 (coding_allocate_composition_data): New function.
4759 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4760 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4761 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4762 (decode_coding_iso2022): Handle new composition sequence.
4763 (ENCODE_ISO_CHARACTER): Don't check composition here.
4764 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4765 (ENCODE_COMPOSITION_NO_RULE_START)
4766 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4767 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4768 (ENCODE_COMPOSITION_FAKE_START): New macro.
4769 (encode_coding_iso2022): Handle new composition sequence.
4770 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4771 (encode_coding_sjis_big5): Ignore composition.
4772 (setup_coding_system): Initialize new members of struct
4773 coding_system. Enable composition only when the coding system has
4774 `composition' property t.
4775 (coding_free_composition_data) (coding_adjust_composition_offset)
4776 (coding_save_composition) (coding_restore_composition): New
4777 functions.
4778 (code_convert_region): Call coding_save_composition for encoding
4779 and coding_allocate_composition_data for decoding. Don't skip
4780 ASCII characters if we handle composition on encoding. Call
4781 signal_after_change with Check_BORDER.
4782 (code_convert_string): Call coding_save_composition for encoding
4783 and coding_allocate_composition_data for decoding. Don't skip
4784 ASCII characters if we handle composition on encoding.
4785 (code_convert_string1): Set Vlast_coding_system_used after calling
4786 code_convert_string.
4787 (code_convert_string_norecord): Disable composition.
4788 (Fset_terminal_coding_system_internal): Likewise.
4789 (Fset_safe_terminal_coding_system_internal): Likewise.
4790 (Fset_keyboard_coding_system_internal): Likewise.
4791 (init_coding_once): Set emacs_code_class[0x80] to
4792 EMACS_invalid_code.
4793
4794 * composite.h: New file.
4795
4796 * composite.c: New file.
4797
4798 * data.c (Faref): Delete codes for a composite character..
4799 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4800
4801 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4802 (struct glyph): Add new sub-structure cmp to the union `u'.
4803 (enum display_element_type): New member IT_COMPOSITION.
4804 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4805 (struct it): New members cmp_id, cmp_len.
4806
4807 * dispnew.c (direct_output_forward_char): Check point moving into
4808 or out of a composition. If so, give up direct method.
4809
4810 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4811
4812 * editfns.c (Fchar_to_string): Adjusted for the change of
4813 CHAR_STRING.
4814 (general_insert_function): Likewise.
4815 (Finsert_char): Likewise.
4816 (Fsubst_char_in_region): Likewise. Call update_compositions.
4817 (Ftranslate_region): Call update_compositions.
4818 (Ftranspose_regions): Call update_compositions.
4819
4820 * emacs.c (main): Call syms_of_composite.
4821
4822 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4823 CHAR_STRING.
4824 (Finsert_file_contents): Set Vlast_coding_system_used before
4825 calling signal_after_change. Call update_compositions if some
4826 texts are inserted..
4827 (Fwrite_region): Adjusted for the change of a_write and e_write.
4828 (a_write): Argument changed. Work based on character position,
4829 not byte position.
4830 (e_write): Argument changed. Handle new way of composition.
4831
4832 * fns.c (Flength): The length of char-table is MAX_CHAR.
4833 (concat): Adjusted for the change of CHAR_STRING.
4834 (Ffillarray): Adjusted for the change of CHAR_STRING.
4835 (Fset_char_table_default): Delete codes for a composite character.
4836 (hash_put): Return hash index.
4837
4838 * fontset.h (struct font_info): New member vertical_centering.
4839 (Vvertical_centering_font_regexp): Extern it.
4840
4841 * fontset.c (Vvertical_centering_font_regexp): New variable.
4842 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4843 Set Vignore_relative_composition to nil.
4844 (fs_load_font): Initialize `vertical_centering' of struct
4845 font_info.
4846
4847 * indent.c (check_composition): New function.
4848 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4849 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4850 (current_column_1): Handle new way of composition.
4851 (Fmove_to_column): Likewise.
4852 (compute_motion): Likewise.
4853
4854 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4855 (insert_char): Likewise.
4856 (insert): Call update_compositions.
4857 (insert_and_inherit): Likewise.
4858 (insert_before_markers): Likewise.
4859 (insert_before_markers_and_inherit): Likewise.
4860 (insert_from_string): Likewise.
4861 (insert_from_string_before_markers): Likewise.
4862 (insert_from_buffer): Likewise.
4863 (replace_range): Likewise.
4864 (count_combining_composition): Deleted.
4865 (count_combining_before): Delete codes for a composite character.
4866 (count_combining_after): Likewise.
4867 (del_range_1): Call update_compositions.
4868 (del_range_byte): Likewise.
4869 (del_range_both): Likewise.
4870 (Fcombine_after_change_execute): Likewise.
4871
4872 * intervals.h: Include composite.h.
4873 (get_property_and_range): Extern it.
4874 (Vtext_property_default_nonsticky): Extern it.
427ec082 4875
5ec14d3c
KH
4876 * intervals.c (adjust_intervals_for_insertion): To check stickines
4877 of properties, pay attention to text-property-default-nonsticky.
4878 (merge_properties_sticky): Likewise.
4879 (get_property_and_range): New function.
4880
4881 * keyboard.c (Vdisable_point_adjustment): New variable.
4882 (Vglobal_disable_point_adjustment): New variable.
4883 (syms_of_keyboard): Declare them as Lisp variables.
4884 (command_loop_1): Check them and call adjust_point_for_property if
4885 necessary.
4886 (adjust_point_for_property): New function.
4887
4888 * keymap.c (push_key_description): Adjusted for the change of
4889 CHAR_STRING.
4890 (Ftext_char_description): Likewise.
4891
4892 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4893 (hash_put): Adjusted for the change of the definition.
4894 (signal_after_change): Likewise.
4895 (check_point_in_composition): Extern it.
4896
4897 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4898 Delete a code that handles an invalid too-long multibyte sequence
4899 because we are now sure that we never encounter with such a
4900 sequence.
4901 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4902 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4903 (init_obarray): Likewise.
4904 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4905
4906 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4907
4908 * process.c: Include composite.h.
4909 (read_process_output): Call update_compositions.
4910
4911 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4912
4913 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4914
4915 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4916 character.
4917
4918 * term.c (encode_terminal_code): Delete codes for a composite
4919 character. Adjusted for the change of CHAR_STRING.
4920 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4921 Delete codes for a composite character.
4922
4923 * textprop.c (Vtext_property_default_nonsticky): New variable
4924 (syms_of_textprop): Declare it as a Lisp variable.
4925
4926 * window.c (Frecenter): Clear all caches of compositions.
4927
4928 * xdisp.c (it_props): Add an entry for composition.
4929 (face_before_or_after_it_pos): For composition, check face of a
4930 character after the composition.
4931 (handle_composition_prop): New function.
4932 (get_next_display_element): Adjusted for the change of
4933 CHAR_STRING.
4934 (set_iterator_to_next): Handle the case that it->method ==
4935 next_element_from_composition.
4936 (next_element_from_composition): New function.
4937 (message_dolog): Adjusted for the change of CHAR_STRING.
4938 (set_message_1): Likewise.
4939 (check_point_in_composition): New function.
4940 (reconsider_clip_changes): If point moved into or out of
4941 composition, set b->clip_changed to 1 to force updating of the
4942 screen.
4943 (disp_char_vector): Delete codes for a composite character.
4944 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4945
4946 * xfaces.c (choose_face_fontset_font): Delete codes for a
4947 composite character.
4948 (realize_x_face): Likewise. Change a place to set local variable
4949 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4950
4951 * xfns.c: Include intervals.h.
4952 (syms_of_xfns): Make `display' property nonsticky by default.
4953
4954 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4955 for find_charset_in_str.
4956
4957 * xterm.h (struct x_output): Change member font_baseline to
4958 baseline_offset.
4959
4960 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4961 for composition.
4962 (x_append_composite_glyph): New function.
4963 (VCENTER_BASELINE_OFFSET): New macro.
4964 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4965 of struct it for the composition. Cache pixel offsets in the
4966 struct composition. Delete codes for a composite character.
4967 Handle Vignore_relative_composition in composition code.
4968 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4969 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4970 (x_compute_glyph_string_overhangs): Likewise.
4971 (x_get_glyph_overhangs): Delete codes for a composite character.
4972 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4973 (x_draw_glyph_string_background): Likewise. Delete codes for
4974 checking s->gidx for a composition.
4975 (x_draw_glyph_string_foreground): Delete code for a composite
4976 character.
4977 (x_draw_composite_glyph_string_foreground): New function.
4978 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4979 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4980 (struct work): Deleted.
4981 (x_fill_composite_glyph_string): Argument changed. Mostly
4982 rewritten for that.
4983 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4984 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4985 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4986 (BUILD_GLYPH_STRINGS): For composition, call
4987 BUILD_COMPOSITE_GLYPH_STRING.
4988 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4989 f->output_data.x->font_baseline.
4990
c3c60f13
GM
49911999-12-14 Gerd Moellmann <gerd@gnu.org>
4992
4993 * xterm.c (show_mouse_face): Don't use updated_area, use
4994 TEXT_AREA.
4995
83c8f461 49961999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4997
4998 * minibuf.c (Fall_completions): Doc fix.
4999
83c8f461 50001999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
5001
5002 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
5003 has been changed by the Lisp code.
5004
d8eccf12
GM
50051999-12-12 Gerd Moellmann <gerd@gnu.org>
5006
5007 * xfns.c: Indentation fixes.
5008
ae56feae
SM
50091999-12-10 Stefan Monnier <monnier@cs.yale.edu>
5010
5011 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
5012
dfa1c6ae
GM
50131999-12-10 Gerd Moellmann <gerd@gnu.org>
5014
5015 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
5016 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
5017
5018 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
5019 to frame.h.
5020
ec18280f
SM
50211999-12-09 Stefan Monnier <monnier@cs.yale.edu>
5022
5023 * keyboard.c (Qratio): New symbol.
5024 (scroll_bar_parts): Add `Qratio' to it.
5025 (syms_of_keyboard): Init `Qratio'.
5026 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
5027 * xterm.c (#includes): Allow compilation with only Xaw.
5028 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
5029 (xt_action_hook): Replace XAW3D by XAW.
5030 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
5031 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
5032 Determine epsilon dynamically and don't try to be too clever.
5033 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
5034 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
5035 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
5036 scrollbar (using `ratio').
5037 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
5038 scrollbar we have so as to set it up more optimally and to fix
5039 xaw3d_arrow_scroll and xaw3d_pick_top.
5040 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
5041 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
5042 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
5043 is not ignored, using a major gross hack.
5044 (x_initialize): Init default values for xaw3d_arrow_scroll and
5045 xaw3d_pick_top.
5046
83b6d970
DL
50471999-12-09 Dave Love <fx@gnu.org>
5048
5049 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
5050
3648c842
GM
50511999-12-08 Gerd Moellmann <gerd@gnu.org>
5052
5053 * eval.c: Remove conditional compilation on `standalone'.
5054 (call_debugger): When entering the debugger while redisplaying,
5055 reset redisplaying_p, and go back to the top-level if the debugger
5056 returns.
5057
05e71564
GM
50581999-12-07 Gerd Moellmann <gerd@gnu.org>
5059
5060 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
5061 basic faces are realized before trying to use face `menu'.
5062
5063 * window.c (delete_window): Block input for the time window
5064 matrices are being changed.
5065
b46cd536
DL
50661999-12-07 Dave Love <fx@gnu.org>
5067
5068 * lread.c (Fintern_soft): Fix newlines in doc string.
5069
96acb1f7
GM
50701999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
5071
5072 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
5073 duplicate definition of ElfW.
5074 (find_section): Copied from unexsgi.c.
5075 (unexec): Use find_section. Adjust whitespace. Initialize
5076 new_data2_offset based on old_data, not sbss (this fixes a bug on
5077 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
5078 Adjust test for presence of .mdebug section to the new return
5079 value of find_section.
427ec082 5080
96acb1f7
GM
50811999-12-07 Gerd Moellmann <gerd@gnu.org>
5082
5083 * unexelf.c: Merge changes from 20.5.
5084 (unexec): Handle .lit4 and .lit8 unconditionally.
5085
5086 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
5087 unexsgi.o again.
427ec082 5088
96acb1f7
GM
5089 * m/iris5d.h (UNEXEC): Likewise.
5090
7dae4502
SM
50911999-12-06 Stefan Monnier <monnier@cs.yale.edu>
5092
5093 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
5094 (syms_of_editfns): Register it.
5095 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
5096 (del_range_1, del_range_2): Add a ret_string argument to
5097 request that the deleted text be returned.
5098 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 5099 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
5100 * casefiddle.c (casify_region): Update del_range_1 call.
5101 * coding.c (code_convert_region): Update del_range_2 call.
5102 * fileio.c (Finsert_file_contents): Update del_range_2 call.
5103
397e4fae
GM
51041999-12-06 Gerd Moellmann <gerd@gnu.org>
5105
5106 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
5107
3d973f71
GM
51081999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
5109
5110 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 5111
740e985f
EZ
51121999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5113
5114 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
5115
5116 * insdel.c (adjust_markers_for_delete): Fix last change.
5117
2d764c78
EZ
51181999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
5119
5120 Changes for automatic remapping of X colors on terminal frames:
5121
5122 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
5123 frames.
5124 (Vface_tty_color_alist): Remove.
5125 (tty_defined_color): New function.
5126 (defined_color): Rewrite to support any type of frame.
5127 (tty_color_name): New function.
5128 (face_color_supported_p, Fface_color_gray_p,
5129 Fface_color_supported_p): Support non-X frames.
5130 (load_color): Enclose the color name in quotes, in the log
5131 messages. Remove DOS-specific version of load_color.
5132 (realize_tty_face): Take the supported colors from
5133 tty-color-alist. Support translation of X colors to the closest
5134 tty color, for both MSDOS and tty frames.
5135 [MSDOS]: Don't invert face colors if they were taken from the
5136 frame colors.
5137 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
5138
5139 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
5140 Define a mostly empty surrogate.
5141 (tty_display): Declare.
5142
5143 * frame.c (make_terminal_frame) [!macintosh]: Don't use
5144 tty_display.
5145 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
5146 frames when the frame's param_alist includes 'reverse.
5147 (tty_display): Define.
5148 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
5149 output_data.x member.
5150 (Fframe_parameters): Return foreground and background color names
5151 on tty frames as well, in addition to MSDOS frames.
5152
5153 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
5154 selected_frame.
5155 (struct x_output): Remove unused members; document who uses each
5156 member.
5157 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
5158 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
5159 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
5160 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
5161 unused macro definintions.
5162
5163 * msdos.c (IT_set_frame_parameters): Don't call
5164 recompute_basic_faces, the next redisplay will, anyway.
5165 (x_current_display): Remove unused variable.
5166 Many functions: changes for Lisp_object selected_frame.
5167 (IT_set_face): If the tty_reverse_p flag is set for the face,
5168 reverse the foreground and background colors.
5169 (Fmsdos_remember_default_colors): New function.
5170 (syms_of_msdos): Defsubr it.
5171 (IT_set_frame_parameters): Use initial_screen_colors[] when
5172 creating a new frame. If the frame parameters include 'reverse,
5173 swap the foreground and background colors.
5174 (internal_terminal_init): Initialize initial_screen_colors to -1.
5175 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
5176 cus-start.el.
5177
5178 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
5179
5180 * xfns.c (x_defined_color): Rename from defined_color. All
5181 callers changed.
5182 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5183 all callers changed.
5184 (Fxw_color_values): Renamed from Fx_color_values; all callers
5185 changed.
5186 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5187 callers changed.
5188 (x_window_to_frame, x_any_window_to_frame,
5189 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
5190 x_top_window_to_frame): Use !FRAME_X_P instead of
5191 f->output_data.nothing.
5192 * xterm.h (x_defined_color): Rename from defined_color.
5193
5194 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
5195 f->output_data.nothing.
5196 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
5197 all callers changed.
5198 (Fxw_color_values): Renamed from Fx_color_values; all callers
5199 changed.
5200 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
5201 callers changed.
5202
5203 * dispextern.h (tty_color_name): Add prototype.
5204
5205 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5206 f->output_data.nothing.
5207 * w32menu.c (menubar_id_to_frame): Likewise.
5208 * w32term.h (w32_output): Declare.
5209
5210 * dosfns.c (Qmsdos_color_translate): Remove.
5211 (msdos_stdcolor_name): Now returns a Lisp_Object.
5212 * dosfns.h (Qmsdos_color_translate): Remove.
5213
5214 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5215
b3e5232e
KH
52161999-12-06 Kenichi Handa <handa@etl.go.jp>
5217
5218 * fileio.c (decide_coding_unwind): Renamed from
5219 set_auto_coding_unwind.
5220 (Finsert_file_contents): Make single unwind protect to call both
5221 Vset_auto_coding_function and Ffind_operation_coding_system.
5222
5223 * insdel.c (adjust_markers_for_delete): Make it non-static.
5224
db0e466c
SM
52251999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5226
5227 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5228 operators and handle them properly.
5229 * regex.h (RE_ALL_GREEDY): New option.
5230 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5231 sorting would put it.
5232 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5233 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5234
22afa6e8
DL
52351999-12-04 Dave Love <d.love@dl.ac.uk>
5236
5237 * m/arm.h: New file.
5238
40afb967
DL
52391999-12-03 Dave Love <fx@gnu.org>
5240
5241 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5242
ddf8eff5
GM
52431999-12-02 Gerd Moellmann <gerd@gnu.org>
5244
5245 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5246 for building with Motif.
5247
5248 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5249 unexelf.o.
427ec082 5250
ddf8eff5
GM
5251 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5252
fa09a82d
DL
52531999-12-01 Dave Love <fx@gnu.org>
5254
5255 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5256
ddf8eff5
GM
52571999-11-28 Gerd Moellmann <gerd@gnu.org>
5258
5259 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5260 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5261 macros.
5262
5263 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5264
fa09a82d
DL
52651999-11-28 eliz <eliz@dlpx1>
5266
5267 * emacs.c (synchronize_locale): Avoid compiler warnings about
5268 pointer type mismatch.
5269
f9632fc8
GM
52701999-11-28 Gerd Moellmann <gerd@gnu.org>
5271
717d0121
GM
5272 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5273 out of range position.
5274
427ec082 5275 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5276 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5277
59c65f1e
EZ
52781999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5279
613a8346
EZ
5280 * charset.c (Fmake_char_internal): Print the charset ID when
5281 signalling an error.
5282
59c65f1e
EZ
5283 * emacs.c (synchronize_locale): Avoid compiler warnings about
5284 pointer type mismatch.
5285
83c8f461 52861999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5287
5288 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5289
18df9369
GM
52901999-11-26 Gerd Moellmann <gerd@gnu.org>
5291
65a3ccf7
GM
5292 * puresize.h (BASE_PURESIZE): Increase to 550000.
5293
b3b98592
GM
5294 * textprop.c (set_text_properties): New function. Like
5295 Fset_text_properties, but with additional parameter
5296 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5297 changes.
5298 (Fset_text_properties): Use it.
5299
5300 * insdel.c (insert_1_both): Call set_text_properties with last
5301 parameter nil so that no after changes will be signaled.
5302
5303 * lisp.h: Add prototype for set_text_properties.
5304
18df9369
GM
5305 * xfaces.c (set_lface_from_font_name): Fix previous change.
5306 (recompute_basic_faces): Change assert to abort.
5307
71a8e74b
DL
53081999-11-25 Dave Love <fx@gnu.org>
5309
5310 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5311 (Fmember, Fdelq, Fdelete): Inline car.
5312 (Fy_or_n_p): Doc fix.
5313
bc6a5782
GM
53141999-11-25 Gerd Moellmann <gerd@gnu.org>
5315
3221576b 5316 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5317 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5318 is not set, try to use a reasonable default.
5319
bc6a5782
GM
5320 * dispnew.c (direct_output_for_insert): Set glyph row's
5321 displays_text_p flag. Correct window's window_end_vpos if
5322 necessary.
5323
0c8559bb
PE
53241999-11-25 Paul Eggert <eggert@twinsun.com>
5325
5326 * emacs.c (fixup_locale): Don't bother to record initial locale.
5327 (synchronize_locale): If the desired locale is nil,
5328 treat it as if it were the empty string,
5329 so that we set the locale from the environment.
5330
35737351
KH
53311999-11-25 Kenichi Handa <handa@etl.go.jp>
5332
5333 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5334 of the current buffer via Fset.
5335
5562b47f
DL
53361999-11-24 Dave Love <fx@gnu.org>
5337
5562b47f
DL
5338 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5339
5340 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5341
00da0e4a
GM
53421999-11-24 Gerd Moellmann <gerd@gnu.org>
5343
5344 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5345
5346 * emacs.c (PVEC_FLAG): New variable.
5347
b1775dc1
GM
53481999-11-23 Gerd Moellmann <gerd@gnu.org>
5349
5350 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5351 that fails on IBM PowerPC, AIX 4.2.
427ec082 5352
08de6200
EZ
53531999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5354
5355 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5356 string of mode-line-format. Remove the obsolete %t.
5357
02fda8ff
GM
53581999-11-22 Gerd Moellmann <gerd@gnu.org>
5359
f2fa858f
GM
5360 * dispnew.c (direct_output_for_insert): Increment glyph positions
5361 for glyphs from buffer text only.
5362
02fda8ff
GM
5363 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5364 (gdb_data_seg_bits): New variables.
427ec082 5365
02fda8ff
GM
5366 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5367 work on systems not allowing enumerators > INT_MAX, and it
5368 won't work if EMACS_INT is long long.
5369
1b0d24e7
PE
53701999-11-22 Paul Eggert <eggert@twinsun.com>
5371
5372 Port to SunOS 4.1.x again. Help out with Alpha port.
5373 Rename messages-locale to system-messages-locale,
5374 and likewise for time-locale.
427ec082 5375
1b0d24e7
PE
5376 * callproc.c (strerror): Remove decl.
5377 * fileio.c (strerror): Likewise.
5378 * process.c (strerror): Likewise.
5379 * emacs.c (strerror): Likewise.
5380 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5381 All uses changed.
5382 (Vprevious_system_messages_locale): Likewise, from
5383 Vprevious_messages_locale.
5384 (Vsystem_time_locale): Likewise, from Vtime_locale.
5385 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5386 (ABORT_RETURN_TYPE): New macro.
5387 (abort): Return type is now ABORT_RETURN_TYPE.
5388 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5389 defined.
5390 (syms_of_emacs): messages-locale -> system-messages-locale,
5391 previous-messages-locale -> previous-system-messages-locale,
5392 time-locale -> system-time-locale,
5393 previous-time-locale -> previous-system-time-locale.
5394
5395 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5396 (const): Do not define; that's config.h's job.
5397 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5398 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5399 (<stddef.h>): Include if STDC_HEADERS is defined.
5400 (FREE_RETURN_TYPE): New macro.
5401 (free): Return type is now FREE_RETURN_TYPE.
5402
5403 * lisp.h (synchronize_system_time_locale): Renamed from
5404 synchronize_time_locale. All uses changed.
5405 (synchronize_system_messages_locale): Likewise, from
5406 synchronize_messages_locale.
5407
5408 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5409 stdlib.h now does this.
5410
5411 * process.c (sys_siglist): Remove.
5412
5413 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5414 New macros.
5415
5416 * syntax.c (scan_sexps_forward): Use abort, not assert.
5417
5418 * sysdep.c (my_sys_siglist): New var.
5419 (sys_siglist): New macro. Remove old initialized vars of same name.
5420 (init_signals): Initialize sys_siglist.
5421
5422 * xfns.c (abort): Remove decl; stdlib.h now does this.
5423
0dcd5b54
DL
54241999-11-18 Dave Love <fx@gnu.org>
5425
946173ad
DL
5426 * filelock.c: Add forward declaration for get_boot_time_1.
5427
0dcd5b54
DL
5428 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5429
71447e8f
GM
54301999-11-18 Gerd Moellmann <gerd@gnu.org>
5431
5432 * buffer.h (struct buffer_text): Add comment about moving
5433 buffer text if REL_ALLOC is defined.
5434
eeedff63
KH
54351999-11-18 Kenichi Handa <handa@etl.go.jp>
5436
5437 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5438
5439 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5440 memory for push_key_description.
5441
5442 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5443 allocate memory for push_key_description.
5444 (describe_buffer_bindings): Likewise.
5445
5d7e4a2c
GM
54461999-11-17 Gerd Moellmann <gerd@gnu.org>
5447
5448 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5449 (Fx_hide_busy_cursor): Ditto.
5450
54511999-11-17 Marco Walther <walther@siemens-pyramid.com>
5452
5453 * unexsni.c (unexec): Handle .rel.dyn section.
5454
b5b41e02
DL
54551999-11-16 Dave Love <fx@gnu.org>
5456
5457 * doc.c (Fdocumentation): Remove gcpro here too.
5458
e35b6123
GM
54591999-11-16 Gerd Moellmann <gerd@gnu.org>
5460
5461 * keyboard.c (command_loop_1): Remove no_redisplay.
5462
83c8f461 54631999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5464
5465 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5466 in noninteractive.
5467
b05d3bee
GM
54681999-11-14 Gerd Moellmann <gerd@gnu.org>
5469
5bcfeb49
GM
5470 * xdisp.c (ensure_echo_area_buffers): New.
5471 (with_echo_area_buffer): Use it.
5472 (setup_echo_area_for_printing): Ditto.
5473
b05d3bee
GM
5474 * buffer.c (indicate-empty-lines): Doc-fix.
5475
9b2e6e4c
GM
54761999-11-12 Gerd Moellmann <gerd@gnu.org>
5477
e7f90eab
GM
5478 * term.c (term_init): If "op" isn't available, don't support color
5479 because we can't switch back to the default foreground and
5480 background.
5481
9b2e6e4c
GM
5482 * doc.c (Fdocumentation_property): Remove GCPRO because
5483 Fsubstitute_command_keys gcpro's the string.
5484
1bf21027
KH
54851999-11-12 Kenichi Handa <handa@etl.go.jp>
5486
5487 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5488
3bc6df53
GM
54891999-11-11 Gerd Moellmann <gerd@gnu.org>
5490
5491 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5492 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5493 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5494
35a5514b
GM
54951999-11-10 Gerd Moellmann <gerd@gnu.org>
5496
5497 * xfns.c (QCuser_data): Removed.
5498 (syms_of_xfns): Initialization of QCuser_data removed.
5499 (parse_image_spec): Don't handle :user-data specially. Allow
5500 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5501 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5502 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5503 parse_image_spec accordingly.
5504
83c8f461 55051999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5506
5507 * cmds.c (Fbeginning_of_line): Doc fix.
5508 (Fend_of_line): Doc fix.
5509
5510 * editfns.c (Fline_beginning_position): If N is not 1,
5511 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5512
5513 * syntax.c (Fforward_word): Handle fields even if would have hit
5514 an edge of the buffer. Return nil if affected by fields.
5515
83c8f461 55161999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5517
5518 * editfns.c (preceding_pos): Function deleted.
5519 (text_property_stickiness): Decrement POS directly.
5520 Fix a confusion that used PT instead of POS.
5521
5522 * editfns.c (find_field): Properly handle the case
5523 of a field boundary where `field' inherits from neither side.
5524
5525 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5526 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5527
fa9aabf6
GM
55281999-11-08 Gerd Moellmann <gerd@gnu.org>
5529
5530 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5531 BEFORE_POTENTIAL_GC before DISCARD.
5532
4015b3c0
GM
55331999-11-07 Gerd Moellmann <gerd@gnu.org>
5534
033a5fa3
GM
5535 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5536
5537 * lisp.h: Add prototype for unmark_byte_stack.
5538
5539 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5540 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5541 XUNMARK.
5542
55b064bd
GM
5543 * xdisp.c (resize_mini_window): Fix computation of needed
5544 mini-window height.
5545
5546 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5547 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5548
4015b3c0 5549 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5550 locally there. Rearrange case statements so that those most
4015b3c0
GM
5551 frequently executed come first. Avoid goto's in frequently
5552 executed cases.
5553
fe512f27
GM
55541999-11-05 Gerd Moellmann <gerd@gnu.org>
5555
dd59e217
GM
5556 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5557 AFTER_POTENTIAL_GC around internal_catch.
5558
bcf28080
GM
5559 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5560 relocate_byte_pcs.
5561 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5562
5563 * eval.c (struct catchtag): Add member byte_stack.
5564 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5565 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5566 catchtag.
5567 (unwind_to_catch): Restore byte_stack_list from catchtag.
5568
5569 * lisp.h: Add prototypes for new functions in bytecode.c.
5570 Add extern declaration for byte_stack_list.
5571
5572 * bytecode.c (struct byte_stack): New.
5573 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5574 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5575 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5576 (HANDLE_RELOCATION): Removed.
5577 (Fbyte_code): Use byte_stack structures.
5578
4d59c34c
GM
5579 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5580
fe512f27
GM
5581 * buffer.c (syms_of_buffer): Extend documentation of
5582 mode-line-format.
5583
60b64cd6
GM
55841999-11-04 Gerd Moellmann <gerd@gnu.org>
5585
5586 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5587
5588 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5589 Ferase_field instead of Fdelete_field.
5590
b51b619b
GM
55911999-11-03 Gerd Moellmann <gerd@gnu.org>
5592
5593 * dispnew.c (Finternal_show_cursor): Change it to set the
5594 cursor on/off, not toggle its state.
5595 (Finternal_show_cursor_p): New.
5596 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5597
5865af0d
DL
55981999-11-03 Dave Love <fx@gnu.org>
5599
5600 * charset.c (split_non_ascii_string): Define return value.
5601
82a700f3
GM
56021999-11-03 Gerd Moellmann <gerd@gnu.org>
5603
edfef199
GM
5604 * minibuf.c (string_to_object): New.
5605 (read_minibuf_noninteractive): New.
5606 (read_minibuf): Call read_minibuf_noninteractive if
5607 noninteractive. Use string_to_object.
5608
82a700f3
GM
5609 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5610
b5540f0d
DL
56111999-11-02 Dave Love <fx@gnu.org>
5612
e69dcd60
DL
5613 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5614
827a1788
DL
5615 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5616 declared with glibc2.
b5540f0d 5617
a69a6e61
GM
56181999-11-02 Gerd Moellmann <gerd@gnu.org>
5619
5620 * lisp.h (QUIT): Give it statement form.
5621
87e21fbd
DL
56221999-11-02 Dave Love <fx@gnu.org>
5623
5624 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5625
1b335865
GM
56261999-11-02 Gerd Moellmann <gerd@gnu.org>
5627
9fb5e03d
GM
5628 * xfns.c (QCuser_data): New.
5629 (syms_of_xfns): Initialize QCuser_data.
5630 (parse_image_spec): Ignore :user-data DATA properties.
5631
1b335865
GM
5632 * xdisp.c (display_line): Set charpos of first glyph in blank
5633 lines not corresponding to any text to -1, even if no glyphs are
5634 filled in in that line.
5635
e76f1c44
GM
56361999-11-01 Gerd Moellmann <gerd@gnu.org>
5637
427ec082 5638 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5639 png_get_sRGB in #ifdef.
5640
111259b4
GM
5641 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5642 (syms_of_display): Use the new name.
5643
dd5c96e8
GM
5644 * textprop.c (verify_interval_modification): Signal text-read-only
5645 instead of calling error.
5646
db8878fb
GM
5647 * data.c (Qtext_read_only): New built-in error.
5648 (syms_of_data): Initialize it.
5649
5650 * lisp.h: Add extern declaration for Qtext_read_only.
5651
e76f1c44
GM
5652 * syntax.c: Remove whitespace after open or in front of closing
5653 parentheses.
5654
83c8f461 56551999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5656
5657 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5658
7843e09c
GM
56591999-10-31 Gerd Moellmann <gerd@gnu.org>
5660
575ed805
GM
5661 * xdisp.c (resize_mini_window): Compute needed height differently.
5662
7843e09c
GM
5663 * fns.c (Flength): Unroll loop over lists.
5664
5665 * xdisp.c (append_space): Return non-zero if space was appended.
5666 (display_line): Set charpos of first glyph to -1 only if that
5667 glyph is the space added by append_glyph.
5668
83c8f461 56691999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5670
5671 * print.c (strout): Consider `noninteractive' and use stdout
5672 only when PRINTCHARFUN is t.
5673
5674 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5675 (gcpro_level): Declare it extern.
5676 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5677 Alternate definitions that set `level' and increment `gcpro_level'.
5678 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5679
5680 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5681 (init_eval) [DEBUG_GCPRO]: Initialize it.
5682 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5683 from remaining gcprolist.
5684
3636f7a3
KH
56851999-10-29 Kenichi Handa <handa@etl.go.jp>
5686
5687 * coding.c (code_convert_region): Update `dst' correctly.
5688
a2ad7096
GM
56891999-10-28 Gerd Moellmann <gerd@gnu.org>
5690
5691 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5692 (Frassoc): Rewritten.
5693
1e3196e8
GM
56941999-10-27 Noah Friedman <friedman@splode.com>
5695
5696 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5697 Define PTY_NAME_SPRINTF.
5698 Redefine PTY_TTY_NAME_SPRINTF.
5699 * config.in: Add undef for HAVE_DEV_PTMX.
5700
83c8f461 57011999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5702
5703 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5704 as arg to DEBUG_POP and DEBUG_PRINT.
5705
83c8f461 57061999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5707
5708 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5709 (Ffset): Call Qad_activate_internal.
5710 (syms_of_data): Initialize Qad_activate_internal.
5711
26922151
GM
57121999-10-27 Gerd Moellmann <gerd@gnu.org>
5713
5714 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5715 Vterminal_frame is selected and Vwindow_system is non-nil.
5716
67a5596f
GM
57171999-10-26 Gerd Moellmann <gerd@gnu.org>
5718
2bea706b
GM
5719 * xdisp.c (echo_area_display): Put previous change in #if 0.
5720
67a5596f
GM
5721 * emacs.c (standard_args): Add `file' as synonym for `visit',
5722 `execute' as synonym for `eval'.
5723 (main): Add new options to usage message.
5724
81dc5de5
GM
57251999-10-25 Gerd Moellmann <gerd@gnu.org>
5726
5727 * data.c (Qhash_table): New.
5728 (Ftype_of): Return it for hash tables.
5729 (syms_of_data): Initialize Qhash_table.
5730
83c8f461 57311999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5732
5733 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5734
66e4690f 57351999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5736
7539e11f
KR
5737 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5738 lisp.h.
5739
5740 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5741 Fbuffer_local_variables, Fother_buffer, record_buffer,
5742 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5743 swap_out_buffer_local_variables, overlays_at, overlays_in,
5744 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5745 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5746 Foverlay_put, report_overlay_modification, evaporate_overlays):
5747 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5748 references.
5749 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5750 swap_in_symval_forwarding, set_internal, default_value,
5751 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5752 Fmake_variable_frame_local, Flocal_variable_p,
5753 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5754 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5755 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5756 * emacs.c (main): Likewise.
5757 * fontset.c (fs_load_font, fs_register_fontset,
5758 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5759 Fnew_fontset, Fset_fontset_font): Likewise.
5760 * frame.c (do_switch_frame, next_frame, prev_frame,
5761 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5762 Likewise.
5763 * keyboard.c (read_char, help_char_p, event_to_kboard,
5764 kbd_buffer_get_event, timer_start_idle, timer_check,
5765 make_lispy_event, apply_modifiers, reorder_modifiers,
5766 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5767 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5768 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5769 Fcommand_execute, Fexecute_extended_command): Likewise.
5770 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5771 Fall_completions): Likewise.
5772 * window.c (Fset_window_margins): Likewise.
5773
5774 * callint.c (quotify_args): Don't explicitly use struct
5775 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5776
3a7093d8
KR
5777 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5778 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5779 if __ELF__ is defined.
5780
2a3d7146
GM
57811999-10-24 Gerd Moellmann <gerd@gnu.org>
5782
5783 * window.c (Fnext_window): Add a QUIT in the loop.
5784
8ac52782
GM
57851999-10-23 Gerd Moellmann <gerd@gnu.org>
5786
427ec082 5787 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5788 New targets.
5789
05f0d15a
DL
57901999-10-22 Dave Love <fx@gnu.org>
5791
5792 * emacs.c (main): Enable profiling conditional on __linux also.
5793
882fb0e6
GM
57941999-10-20 Gerd Moellmann <gerd@gnu.org>
5795
5796 * xrdb.c (x_load_resources): Set default resources for resource
5797 classes instead of for the specific Emacs.
5798
b5f5bc31
GM
57991999-10-19 Gerd Moellmann <gerd@gnu.org>
5800
66f4dd69
GM
5801 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5802 defines it that way.
427ec082 5803
b5f5bc31
GM
5804 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5805 if selected_frame is equal to Vterminal_frame.
5806
68c45bf0 58071999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5808
68c45bf0 5809 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5810
68c45bf0
PE
5811 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5812 when dumping, so that the dumped Emacs doesn't have stray locale info.
5813 (dired.o): Depend on systime.h.
5814 (editfns.o): Depend on coding.h.
5815
5816 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5817 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5818 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5819 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5820 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5821 Include <config.h> before any system include files.
5822
5823 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5824 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5825 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5826 xmenu.c, xterm.c:
5827 Do not include <stdlib.h>, as <config.h> does this now.
5828
5829 * callproc.c (Fcall_process):
5830 Synchronize messages locale before invoking strerror.
5831 Decode resulting string with locale-coding-system.
5832
5833 * coding.c (Vlocale_coding_system): New var.
5834 (syms_of_coding): Adjust to above change.
5835 (emacs_strerror): New function.
5836
5837 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5838
68c45bf0
PE
5839 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5840 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5841 HAVE_STRSIGNAL): New macros.
5842 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5843 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5844
5845 * dired.c: Include "systime.h".
5846 (Ffile_attributes): Do not cast s.st_size to int; this loses
5847 information if int is 32 bits but st_size and EMACS_INT are larger.
5848 Treat large device numbers like large inode numbers.
5849
5850 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5851
5852 * editfns.c: Include coding.h.
5853 (emacs_strftime): Remove decl.
5854 (emacs_strftimeu): New decl.
5855 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5856 Use emacs_strftimeu instead of emacs_strftime.
5857 (Fformat_time_string): Convert format string using
5858 Vlocale_coding_system, and convert result back. Synchronize time
5859 locale before invoking lower level function. Invoke
5860 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5861
68c45bf0
PE
5862 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5863 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5864 Vprevious_time_locale): New variables.
5865 (main): Invoke setlocale early, so that initial error messages are
5866 localized properly. But skip locale-setting if LC_ALL is "C".
5867 Fix up locale when it's safe to do so.
5868 (fixup_locale): Moved here from xterm.c.
5869 (synchronize_locale, synchronize_time_locale,
5870 synchronize_messages_locale): New functions.
5871 (syms_of_emacs): Accommodate above changes.
5872
5873 * fileio.c (report_file_error): Convert strerror output according
5874 to Vlocale_coding_system.
5875 (Finsert_file_contents): Check for arithmetic overflow in
5876 computations that depend on file size. Report IO errors
5877 with emacs_strerror, not strerror.
5878
5879 * fns.c (Fgethash): Declare dflt parameter.
5880
5881 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5882 is defined; that's config.h's job.
5883
5884 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5885 default these values to long, BITS_PER_LONG, and unsigned long.
5886 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5887 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5888 (code_convert_string_norecord, fixup_locale,
5889 synchronize_messages_locale, synchronize_time_locale,
5890 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5891 All Emacs callers of open, close, read, write changed to use
5892 emacs_open, emacs_close, emacs_read, emacs_write.
5893
5894 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5895 changed to file_tell.
5896 (saved_doc_string_position, prev_saved_doc_string_position): Now
5897 of type file_offset.
5898 (init_lread): Do not fix locale here; fixup_locale now does this.
5899
5900 * m/amdahl.h, s/usg5-4.h:
5901 (NSIG): Remove.
5902 (NSIG_MINIMUM): New macro.
5903
5904 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5905 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5906 s/umips.h, s/usg5-4.h:
5907 (SIGIO): Do not undef.
5908 (BROKEN_SIGIO): New macro.
5909
5910 * m/ustation.h:
5911 (SIGTSTP): Do not undef.
5912 (BROKEN_SIGTSTP): New macro.
5913
5914 * s/gnu-linux.h:
5915 (SIGPOLL, SIGURG): Do not undef.
5916 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5917
5918 * s/ptx4.h:
5919 (SIGINFO): Do not undef.
5920 (BROKEN_SIGINFO): New macros.
427ec082 5921
68c45bf0
PE
5922 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5923
5924 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5925 some Emacs-related changes merged.
5926
5927 * print.c (float_to_string): Prepend "-" to representation of a
5928 NaN if the NaN is negative.
5929
5930 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5931 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 5932
68c45bf0
PE
5933 * process.c (status_message, sigchld_handler): Synchronize locale,
5934 then use strsignal istead of sys_siglist.
5935 * w32proc.c (sys_wait): Likewise.
427ec082 5936
68c45bf0
PE
5937 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5938 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5939 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5940 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5941 (open, close, read, write, INTERRUPTIBLE_OPEN,
5942 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5943
5944 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5945
5946 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5947 sys_open, open): Remove.
5948 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5949 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5950 macros are no longer used.
5951 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5952 (emacs_close): Renamed from sys_close.
5953 (emacs_read): Renamed from sys_read.
5954 (emacs_write): Renamed from sys_write.
5955 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5956 (dup2): Do not print error on failure; the real dup2 doesn't.
5957 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5958
5959 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5960 is defined.
5961 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5962 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5963 (strsignal): Declare if !HAVE_STRSIGNAL.
5964
5965 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5966 (ElfW): Define in terms of ElfExpandBitsW.
5967
5968 * w32proc.c (sys_siglist): Remove decl.
5969
5970 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5971 with ANSI C.
5972 (display_string): Declare face_string_pos arg.
5973
5974 * xfns.c (Fx_show_tip): Declare timeout param.
5975
5976 * xterm.c: No need to include locale.h.
5977 (x_alloc_lighter_color, x_setup_relief_color):
5978 Pass arg as double, not float, for compatibility with ANSI C.
5979 (fixup_locale): Move to emacs.c.
5980 (x_term_init): Do not setlocale or fixup locale; the main program
5981 does this now.
5982
2f0b74ea
DL
59831999-10-18 Dave Love <fx@gnu.org>
5984
5985 * doc.c (Fdocumentation_property): Gcpro `tem'.
5986
471aa4a0
KH
59871999-10-18 Kenichi Handa <handa@etl.go.jp>
5988
5989 * lread.c (Fload): Calculate bytes of filename correctly.
5990 (openp): Likewise.
5991
aca2020b
KH
59921999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5993
5994 * print.c (print_preprocess): In case print-circle is nil,
5995 add OBJ to Vprint_number_table only when OBJ is a symbol.
5996
1f5fe392 59971999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
5998
5999 * coding.c (code_convert_string): Add record_unwind_protect to
6000 assure setting inhibit_pre_post_conversion back to zero. Take
6001 care of the multibyteness of the working buffer.
6002
6003 * coding.c (inhibit_pre_post_conversion): New variable.
6004 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
6005 ignore post-read-conversion and pre-write-conversion property of
6006 the coding system.
6007 (code_convert_region_unwind): New function.
6008 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
6009 running pre-write-conversion and post-read-conversion.
6010 (code_convert_string): Likewise.
6011
cd876a91
GM
60121999-10-17 Miles Bader <miles@gnu.org>
6013
6014 * editfns.c: Doc fix.
6015
60161999-10-17 Miles Bader <miles@gnu.org>
6017
6018 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
6019 argument preconditions of find_before_next_newline in the case
6020 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
6021 was indeed at the edge.
6022
60231999-10-17 Miles Bader <miles@gnu.org>
6024
6025 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
6026 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
6027
6028 * editfns.c (text_property_eq, text_property_stickiness): Don't
6029 use initializers for auto variables of type Lisp_Object.
6030 (find_field): Likewise. Use braces around nested ifs.
6031 (Fline_end_position): Store the raw eol in a variable, so that the
6032 final expression doesn't look so ugly.
6033 (Fconstrain_to_field): Doc fix.
6034 (preceding_pos): Renamed from `preceeding_pos'.
6035 (text_property_stickiness, find_field): Call preceding_pos,
6036 not preceeding_pos.
6037
60381999-10-17 Miles Bader <miles@gnu.org>
6039
6040 * editfns.c (Ffield_string_no_properties): New function.
6041 (text_property_stickiness, preceeding_pos): New functions.
6042 (Ffield_string): Remove PROPS parameter.
6043 (find_field): Add MERGE_AT_BOUNDARY parameter.
6044 Rewrite to use stickiness of `field' property to resolve
6045 ambiguous cases.
6046 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
6047 (Fconstrain_to_field): Likewise.
6048 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 6049 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
6050 Supply new MERGE_AT_BOUNDARY argument to find_field.
6051 (Fline_beginning_position, Fline_end_position): Supply new
6052 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
6053 Pass a value of Qt for the ONLY_IN_LINE argument to
6054 Fconstrain_to_field (only matters if N != 1).
6055 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
6056 to Fconstrain_to_field.
6057
6058 * minibuf.c (Fminibuffer_complete_word): Use
6059 Ffield_beginning to find the prompt end.
6060
60611999-10-17 Miles Bader <miles@gnu.org>
6062
6063 * editfns.c (Fconstrain_to_field): Add get/set-current-point
6064 behavior when NEW_POS is nil.
6065 (find_field): Use XSETFASTINT instead of make_number.
6066 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
6067 input string by seeing where the field begins, instead of
6068 looking at text-properties.
6069
60701999-10-17 Miles Bader <miles@gnu.org>
6071
6072 * editfns.c (Qfield): New variable.
6073 (find_field, Ferase_field, Ffield_string,
6074 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
6075 (Fline_beginning_position, Fline_end_position): Constrain to any field.
6076 (make_buffer_string_both): Remove minibuffer-prompt hack.
6077 (syms_of_editfns): Initialize Qfield, and subr entries for
6078 field functions above.
6079 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
6080 minibuf_save_list.
6081 Don't initialize minibuffer prompt length.
6082 Wrap prompt text-properties around the entire prompt.
6083 Add 'prompt text-property to prompt.
6084 Get final value with Ffield_string instead of make_buffer_string.
6085 (read_minibuf_unwind): Don't restore minibuffer prompt length from
6086 minibuf_save_list.
6087 (do_completion): Get minibuffer input with Ffield_string
6088 instead of Fbuffer_string.
6089 Erase minibuffer input with Ferase_field instead of erase_buffer.
6090 (Fminibuffer_complete_and_exit): Likewise.
6091 Test whether buffer is empty by looking for the 'prompt text
6092 property at the end.
6093 Set prompt length by looking for the end of the prompt text property,
6094 and save prompt length for later use (since there is no longer a
6095 buffer variable to get it from).
6096 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
6097 (syms_of_minibuf): Remove initializations of
6098 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
6099 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 6100 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
6101 Don't initialize prompt_end_charpos field.
6102 * syntax.c (Fforward_word): Likewise.
6103 Constrain to any field.
6104
3f6f7508
GM
61051999-10-16 Gerd Moellmann <gerd@gnu.org>
6106
6107 * window.c (enum save_restore_action): New.
6108 (save_restore_orig_size): Change parameter list. Add
6109 functionality to check for valid orig_top and orig_height members
6110 in a window tree.
6111 (grow_mini_window): Call save_restore_orig_size with new parameter
6112 list.
6113 (shrink_mini_window): Restore old window sizes only if old
6114 size information is valid in all windows in a window tree.
427ec082 6115
06482119
GM
61161999-10-15 Gerd Moellmann <gerd@gnu.org>
6117
2710454d
GM
6118 * xmenu.c (set_frame_menubar): Don't call
6119 x_set_menu_resources_from_menu_face here.
6120 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
6121
06482119
GM
6122 * xfns.c (gif_load): Fix handling of interlaced GIFs.
6123
17fa2837
DL
61241999-10-14 Dave Love <fx@gnu.org>
6125
6126 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
6127
45f93416
GM
61281999-10-14 Gerd Moellmann <gerd@gnu.org>
6129
6130 * process.c (Fopen_network_stream): Don't loop if gethostbyname
6131 fails and h_errno is TRY_AGAIN.
6132
c765b723
DL
61331999-10-13 Dave Love <fx@gnu.org>
6134
6135 * filelock.c (lock_file): Move gcpro of `fn'.
6136
dace7f4e
GM
61371999-10-10 Gerd Moellmann <gerd@gnu.org>
6138
6139 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 6140
83c8f461 61411999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
6142
6143 * print.c (print): When removing objects from Vprint_number_table,
6144 only scan the newly added objects.
6145 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
6146 unconditionally force it to stay in the table.
6147
85177c86
GM
61481999-10-09 Gerd Moellmann <gerd@gnu.org>
6149
6150 * xfns.c (prepare_image_for_display): Don't try to load image if
6151 loading it failed before.
6152 (lookup_image, prepare_image_for_display): Remember if loading the
6153 image failed.
6154 (xpm_load): Add missing UNBLOCK_INPUT.
6155
6156 * dispextern.h (struct image): New member load_failed_p.
6157
11e4de5d
SM
61581999-10-08 Stefan Monnier <monnier@cs.yale.edu>
6159
f28eba7b 6160 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
6161 in the docstring.
6162
f1da8f06
GM
61631999-10-08 Gerd Moellmann <gerd@gnu.org>
6164
6165 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
6166 Don't call XSetInputFocus because that can generate additional
6167 FocusIn events.
427ec082 6168
c37bbd4f
GM
61691999-10-07 Jeffrey C Honig <jch@bsdi.com>
6170
6171 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
6172
83c8f461 61731999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
6174
6175 * process.c (wait_reading_process_input): When trying to suck
6176 input from one process, for accept-process-output,
6177 exit that loop if we get EAGAIN or EWOULDBLOCK.
6178
577d9e2f
GM
61791999-10-07 Gerd Moellmann <gerd@gnu.org>
6180
6181 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
6182 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
6183 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
6184 Fpixmap_spec_p and Qpixmap_spec_p.
6185 (load_face_colors, check_lface_attrs,
6186 merge_face_vector_with_property,
6187 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
6188 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
6189 Fbitmap_spec_p.
6190
f5737ad2
GM
61911999-10-07 Gerd Moellmann <gerd@gnu.org>
6192
6193 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
6194 MODE_LINE_FACE_ID.
6195
6196 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
6197 (struct x_resources) [USE_X_TOOLKIT]: New.
6198 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
6199 [USE_MOTIF]: New.
6200 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
6201 [USE_LUCID]: New.
6202 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6203 (Qmenu): New.
6204 (syms_of_xfaces): Initialize Qmenu.
6205 (realize_basic_faces): Realize face `menu'.
6206 (resolve_face_name): New.
6207 (lface_from_face_name): Use it.
6208 (Finternal_set_lisp_face_attribute): Ditto.
6209 (Fpixmap_spec_p): Rewritten. Extend doc string.
6210
6211 * xmenu.c (set_frame_menubar, xmenu_show): Call
6212 x_set_menu_resources_from_menu_face.
6213
6214 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6215 (toplevel): Include X11/Intrinsic.h.
6216
6a1aa823
DL
62171999-10-03 Ken'ichi Handa <handa@gnu.org>
6218
6219 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6220 correctly.
6221
26901792
DL
62221999-09-30 Kenichi Handa <handa@etl.go.jp>
6223
6224 * category.c (modify_lower_category_set): Set default value of
6225 TABLE correctly.
6226
6227 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6228 size correctly.
6229
62301999-09-29 Gerd Moellmann <gerd@gnu.org>
6231
6232 * editfns.c (Fpropertize): Renamed from Fproperties.
6233
62341999-09-29 Gerd Moellmann <gerd@gnu.org>
6235
6236 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6237 frame that hasn't been initialized yet.
6238
83c8f461 62391999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6240
6241 * keymap.c (Fsingle_key_description): Make tem big enough.
6242 (describe_buffer_bindings): Make buf big enough.
6243
83c8f461 62441999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6245
6246 * intervals.c (get_local_map): Use indirect_function,
6247 not Findirect_function.
6248
26901792
DL
62491999-09-27 Dave Love <fx@gnu.org>
6250
6251 * cm.h: Remove unneeded declaration of ospeed.
6252
62531999-09-26 Gerd Moellmann <gerd@gnu.org>
6254
6255 * lisp.h (toplevel): Add prototype for
6256 next_single_char_property_change.
6257
6258 * textprop.c (next_single_char_property_change): New.
6259
6260 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6261 next_single_char_property_change.
6262
62631999-09-25 Gerd Moellmann <gerd@gnu.org>
6264
6265 * editfns.c (Fproperties): New.
6266 (syms_of_editfns): Defsubr it.
6267
6268 * xfns.c (lookup_image): Set image's timestamp because it's
6269 used when we look it up.
6270
62711999-09-23 Gerd Moellmann <gerd@gnu.org>
6272
6273 * window.c (enlarge_window): Add window parameter instead of using
6274 selected_window.
6275 (Fdisplay_buffer): Call it with window parameter instead of
6276 setting selected_window.
6277 (Fenlarge_window, Fshrink_window): Ditto.
6278 (shrink_mini_window): If there is no recorded height and position
6279 info, resize mini-window to height 1.
6280
6281 * xfns.c (image_error): Use add_to_log.
6282
6283 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6284 (load_face_font_or_fontset, load_color,
6285 merge_face_vector_with_property): Ditto.
6286
6287 * dispextern.h: Add prototype for add_to_log.
6288
6289 * xfaces.c (add_to_log): Move to xdisp.c.
6290
6291 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6292 parameter.
6293
62941999-09-23 Gerd Moellmann <gerd@gnu.org>
6295
6296 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6297 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6298
6299 * xdisp.c (resize_mini_window): Use grow_mini_window and
6300 shrink_mini_window.
6301
6302 * window.c (window_min_size): Add parameter ignore_fixed_p.
6303 (change_window_height): Call window_min_size with new parameter.
6304 (shrink_window_lowest_first, save_restore_orig_size,
6305 grow_mini_window, shrink_mini_window): New.
6306 (make_window, replace_window): Initialize orig_top and
6307 orig_height.
6308 (enlarge_window): Renamed from change_window_height. Make it
6309 static.
6310 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6311 enlarge_window instead of change_window_height.
6312
6313 * window.h (struct window): New members orig_top, orig_height.
6314 (toplevel): Add prototypes for grow_mini_window and
6315 shrink_mini_window. Remove prototype for change_window_height.
6316
63171999-09-21 Eli Zaretskii <eliz@gnu.org>
6318
6319 * frame.c (frame_name_fnn_p): Fix previous change.
6320
63211999-09-20 Gerd Moellmann <gerd@gnu.org>
6322
6323 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6324
6325 * dispnew.c (direct_output_for_insert): Cast arguments to
6326 safe_bcopy to char *.
6327
6328 * lread.c (readchar): Remove unused variables.
6329 (read_filtered_event, read1, Fmapatoms): Ditto.
6330 (toplevel): Include intervals.h.
6331
6332 * eval.c (Fsignal): Remove unused variables.
6333 (Fcommandp, do_autoload): Ditto.
6334
6335 * lisp.h: Add prototype for safe_bcopy, fatal.
6336
6337 * editfns.c (init_editfns): Remove unused variables.
6338 (Fgoto_char, Fchar_after, Fformat): Ditto.
6339 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6340
6341 * data.c (find_symbol_value): Remove unused variables.
6342 (Faref, Fstring_to_number): Ditto.
6343 (toplevel): Include stdio.h.
6344 (Fnumber_to_string): Cast XINT to long for %ld.
6345
6346 * casefiddle.c (casify_object): Remove unused variables.
6347 (casify_region): Ditto.
6348
427ec082 6349 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6350 conditinally compiled section in #ifdef.
6351 (toplevel): Include stdio.h.
6352
6353 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6354 keys_of_keymap, syms_of_keymap): Remove unused variables.
6355
63561999-09-20 Gerd Moellmann <gerd@gnu.org>
6357
6358 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6359 whose corresponding window rows have been disabled in
6360 try_window_id.
6361
63621999-09-20 Gerd Moellmann <gerd@gnu.org>
6363
6364 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6365 that window start is out of range.
6366 (handle_display_prop, handle_single_display_prop): Replace
6367 marginal area specifications like `left-margin' with `(margin
6368 left-margin)'.
6369 (Qmargin): New.
6370 (syms_of_xdisp): Initialize Qmargin.
6371
63721999-09-19 Gerd Moellmann <gerd@gnu.org>
6373
6374 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6375 describe_syntax, skip_chars): Remove unused variables.
6376 (back_comment, forw_comment): Add braces to if-statement with
6377 if-else as dependent statement.
6378
6379 * process.c (list_processes_1): Remove unused variables.
6380 (Fopen_network_stream, create_process): Add parentheses to
6381 conditional expressions.
6382 (create_process): Put declaration of sigchld in #if 0.
6383 (Fopen_network_stream): Removed unused variables.
6384 (Fopen_network_stream, wait_reading_process_input,
6385 wait_reading_process_input, send_process, send_process): Ditto.
6386 (toplevel): Add prototypes for set_waiting_for_input and
6387 keyboard_bit_set.
6388
6389 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6390
6391 * textprop.c (Fset_text_properties): Remove unused variables.
6392 (text_property_list, verify_interval_modification,
6393 interval_has_all_properties): Ditto.
6394
6395 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6396 (Fcall_process): Remove unused variable.
6397
6398 * keyboard.c (Frecursive_edit): Remove unused variable.
6399 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6400 timer_check, make_lispy_event, menu_bar_items,
6401 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6402 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6403 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6404 read_key_sequence): Ditto. Fread_key_sequence,
6405 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6406 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6407 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6408 (Fexecute_extended_command): Cast XINT to long for %ld.
6409 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6410 (toplevel): Include sys/types.h.
6411
6412 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6413 (toplevel): Add prototypes for stuff_char, and
6414 code_convert_string_norecord.
6415
64161999-09-19 Gerd Moellmann <gerd@gnu.org>
6417
6418 * buffer.h: Add prototype for r_re_alloc.
6419
6420 * insdel.c (copy_text): Removed unused variables.
6421 (count_combining_after, count_combining_after, insert_1_both,
6422 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6423 (adjust_after_replace, replace_range): Add parentheses to logical
6424 expressions. Remove unused variables.
6425 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6426 expression.
6427
6428 * alloc.c (Fgarbage_collect): Remove unused variable.
6429 (compact_strings): Add parentheses around assignments in
6430 conditional context.
6431 (toplevel): Put declaration of unused function clear_marks
6432 in #if 0 like its definition.
6433
6434 * lisp.h: Add prototype for shrink_regexp_cache,
6435 sweep_weak_hash_tables.
6436
64371999-09-19 Dave Love <fx@gnu.org>
6438
6439 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6440
6441 * doc.c (read_bytecode_char): Declare arg.
6442
6443 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6444 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6445
64461999-09-18 Richard Stallman <rms@gnu.org>
6447
6448 * xdisp.c (echo_area_display): Turn off code that returned
6449 without doing anything when using a terminal frame.
6450
83c8f461 64511999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6452
6453 * unexelf.c (unexec): Don't get confused by a short section
6454 just before the bss section.
6455
26901792
DL
64561999-09-16 Gerd Moellmann <gerd@gnu.org>
6457
6458 * emacs.c (main): Remove unused variables.
6459 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6460
6461 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6462 init_fileio_once, syms_of_sound, init_xfns, init_fns
6463 init_sound, check_message_stack.
6464
6465 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6466
6467 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6468 ambiguous else warning.
6469 (split_interval_left): Remove unused variables.
6470 (previous_interval, adjust_intervals_for_deletion,
6471 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6472 (icount, idepth, zero_length): Move into #if 0 section below
6473 original position where these are used.
6474
6475 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6476
6477 * buffer.c (Fkill_buffer): Remove unused variables.
6478 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6479 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6480 init_buffer_once, (syms_of_buffer): Ditto.
6481
6482 * xrdb.c (get_fallback): Remove unused variable.
6483 (x_load_resources): Ditto. Put local variable used for Motif only
6484 in #ifdef USE_MOTIF.
6485
64861999-09-16 Gerd Moellmann <gerd@gnu.org>
6487
6488 * minibuf.c (read_minibuf): Remove unused variables.
6489 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6490 (do_completion): Move assignment out of conditional context.
6491 (Fdisplay_completion_list): Add parentheses to conditional expression.
6492
6493 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6494
6495 * lisp.h: Add prototype for no_switch_window.
6496
6497 * window.c (Fset_window_buffer): Remove unused variables.
6498 (Fset_window_margins): Ditto.
6499
6500 * xdisp.c (resize_mini_window): Temporarily set the selected
6501 window's or Vminibuf_scroll_window's height to "fixed" around
6502 the call the change_window_height.
6503
6504 * window.c (window_fixed_size_p): Check window's height_fixed_p
6505 flag.
6506
6507 * window.h (struct window): New member height_fixed_p.
6508
6509 * dispnew.c (direct_output_forward_char): Don't use this method
6510 if showing a message or a message was just cleared because we
6511 might need to resize the mini-window.
6512
65131999-09-16 Gerd Moellmann <gerd@gnu.org>
6514
6515 * frame.c (Fdelete_frame): Correct local variable pointing to
6516 selected frame after selecting new frame.
6517
65181999-09-15 Richard Stallman <rms@gnu.org>
6519
6520 * puresize.h (BASE_PURESIZE): Increase to 525000.
6521
6522 * filelock.c (Vtemporary_file_directory): New variable.
6523 (syms_of_filelock): Set up Lisp variable.
6524
65251999-09-15 Gerd Moellmann <gerd@gnu.org>
6526
6527 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6528 (encode_terminal_code): Remove unused variables.
6529 (turn_off_face): Ditto.
6530 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6531
6532 * dispnew.c (update_frame_line): If writing whole desired line,
6533 don't clear to end of line if already at the end.
6534
65351999-09-15 Gerd Moellmann <gerd@gnu.org>
6536
6537 * xdisp.c (resize_mini_window): Don't report changed window
6538 height if it actually hasn't changed.
6539
427ec082 6540 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6541 unused variables.
6542 (mark_shell_size_user_specified): Put in #if 0 because not used.
6543 (create_frame_gcs): Put in #if 0 because currently unused.
6544 (first_frame_p): Ditto.
6545
6546 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6547 single_submenu, update_frame_menubar, set_frame_menubar,
6548 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6549 variables.
6550
6551 * print.c (PRINTFULLP): Removed because it is no longer used and
6552 is misleading.
6553 (Ferror_message_string): Remove unused variables.
6554 (print_object): Cast argument of sprintf to long for `%ld'
6555 specifier. Remove unused variable.
6556
65571999-09-14 Gerd Moellmann <gerd@gnu.org>
6558
6559 * sound.c (Fplay_sound): Remove usused variables.
6560 (be2hs): Put in #if 0 because it's currently not used.
6561
65621999-09-14 Ken Raeburn <raeburn@gnu.org>
6563
6564 * print.c (Ferror_message_string, print_error_message,
6565 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6566 member access.
6567
65681999-09-14 Gerd Moellmann <gerd@gnu.org>
6569
6570 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6571
6572 * frame.c (Fnext_frame): Remove unused variable(s).
6573 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6574 (store_frame_param): Add parentheses to conditional expression.
6575 (Fmodify_frame_parameters): Remove unused variables.
6576 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6577 Ditto.
6578
6579 * xfns.c (x_set_background_color): Remove unused variable(s).
6580 (x_set_border_pixel): Ditto.
6581 (x_set_menu_bar_lines): Put local variable used only for
6582 non-toolkit case in #ifdef/#endif.
6583 (x_figure_window_size): Remove unused variable(s).
427ec082 6584 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6585 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6586 png_load, jpeg_load, gif_load, x_create_tip_frame,
6587 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6588
6589 * xterm.c (x_scroll_bar_handle_click): Compile only if
6590 not USE_TOOLKIT_SCROLL_BARS.
6591 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6592
6593 * dispextern.h: Add prototypes for gamma_correct and
6594 x_kill_gs_process.
6595
6596 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6597 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6598 x_set_toolkit_scroll_bar_thumb): Ditto.
6599 (x_scroll_bar_create): Move local variable to the
6600 conditionally compiled section of code where it is used.
6601 (x_scroll_bar_create): Remove unused variable(s).
6602 (x_scroll_bar_remove, XTread_socket): Ditto.
6603 (XTread_socket) <ConfigureNotify>: Move variables used for
6604 non-toolkit case into conditionally compiled section of code.
6605
6606 * window.h (freeze_window_starts): Fix typo in prototype.
6607
6608 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6609 variable(s).
6610
6611 * lisp.h: Add prototype for debug_print.
6612
6613 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6614 to use do-while.
6615
6616 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6617 (Fchar_table_range, Fset_char_table_default, mapcar1,
6618 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6619
6620 * lisp.h: Add prototype for getloadavg.
6621
66221999-09-14 Andreas Schwab <schwab@gnu.org>
6623
6624 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6625
6626 * lisp.h: Declare close_file_unwind.
6627
66281999-09-14 Richard Stallman <rms@gnu.org>
6629
6630 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6631
66321999-09-13 Gerd Moellmann <gerd@gnu.org>
6633
6634 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6635 is always set correctly.
6636
66371999-09-13 Dave Love <fx@gnu.org>
6638
6639 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6640 declaration.
6641
66421999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6643
6644 * xdisp.c (QCfile): Move here from xfns.c.
6645 (syms_of_xdisp): Initialize it.
6646 (message2_nolog): Change for Lisp_Object selected_frame.
6647 (message3_nolog, message_with_string, message,
6648 setup_echo_area_for_printing, truncate_echo_area,
6649 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6650
66511999-09-13 Dave Love <fx@gnu.org>
6652
6653 * xterm.c: Don't continue #define args for benefit of old cc.
6654 (xt_action_hook): Indent #error for benefit of K&R cc.
6655
66561999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6657
6658 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6659 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6660 (XRINGBELL): Removed.
6661
66621999-09-13 Dave Love <fx@gnu.org>
6663
6664 * xfns.c (x_put_x_image): Make type consistent with declaration.
6665
6666 * fns.c (Fmake_hash_table): Fix string continuation.
6667
66681999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6669
6670 * xfns.c (QCfile): Moved to xdisp.c.
6671 (syms_of_xfns): Don't initialize QCfile.
6672 (check_x_frame): Change for Lisp_Object selected_frame.
6673 (check_x_display_info, x_get_resource_string): Ditto.
6674
66751999-09-13 Gerd Moellmann <gerd@gnu.org>
6676
6677 * minibuf.c (choose_minibuf_frame): Don't try to set the
6678 mini-buffer window's buffer, if the buffer is invalid.
6679
6680 * xfns.c (QCfile): Moved to xdisp.c.
6681 (syms_of_xfns): Don't initialize QCfile.
6682
6683 * xdisp.c (QCfile): Move here from xfns.c.
6684 (syms_of_xdisp): Initialize it.
6685
6686 * lisp.h (selected_frame): Add external declaration.
6687
6688 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6689 (Fx_store_cut_buffer_internal): Ditto.
6690 (Fx_rotate_cut_buffers_internal): Ditto.
6691
6692 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6693 selected_frame.
6694 (Finternal_set_lisp_face_attribute): Ditto.
6695 (Finternal_get_lisp_face_attribute): Ditto.
6696 (Finternal_lisp_face_empty_p): Ditto.
6697 (Fdump_face): Ditto.
6698
6699 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6700 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6701 set_terminal_window, set_scroll_region, reassert_line_highlight,
6702 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6703 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6704 encode_terminal_code, write_glyphs, term_init): Ditto.
6705
6706 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6707 (kbd_input_ast, read_input_waiting): Ditto.
6708
6709 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6710 selected_frame.
6711 (read_minibuf): Ditto.
6712
6713 * keyboard.c (command_loop_1): Change for Lisp_Object
6714 selected_frame.
6715 (cmd_error_internal, command_loop_1, read_char,
6716 kbd_buffer_get_event, read_avail_input,
6717 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6718 interrupt_signal, quit_throw_to_read_char): Ditto.
6719
6720 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6721 (Ffontset_info): DItto.
6722
6723 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6724
6725 * dispnew.c (selected_frame): Make it a Lisp_Object.
6726 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6727 (direct_output_for_insert, direct_output_forward_char,
6728 init_display): Ditto.
6729
6730 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6731 selected_frame.
6732 (set_internal): Ditto.
6733
6734 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6735 (record_buffer): Ditto.
6736
6737 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6738 (do_switch_frame): Change for Lisp_Object selected_frame.
6739 (Fselected_frame): Ditto.
6740 (Fframe_first_window): Use SELECTED_FRAME.
6741 (Fframe_root_window): Change for Lisp_Object selected_frame.
6742 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6743 Fprevious_frame, other_visible_frames, Fdelete_frame,
6744 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6745 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6746 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6747 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6748 Fset_frame_height, Fset_frame_width): Ditto.
6749
67501999-09-13 Gerd Moellmann <gerd@gnu.org>
6751
6752 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6753 (message3_nolog, message_with_string, message,
6754 setup_echo_area_for_printing, truncate_echo_area,
6755 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6756
6757 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6758 (Fx_popup_dialog): Ditto.
6759
6760 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6761 (check_x_display_info, x_get_resource_string): Ditto.
6762
6763 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6764 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6765 (XRINGBELL): Removed.
6766
6767 * window.c (Fminibuffer_window): Change for Lisp_Object
6768 selected_frame.
6769 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6770 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6771 Fcurrent_window_configuration, init_window_once): Ditto.
6772
6773 * frame.h (SELECTED_FRAME): New.
6774
67751999-09-12 Ken Raeburn <raeburn@gnu.org>
6776
6777 * category.c (word_boundary_p): Use XCAR and XCDR.
6778 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6779 Fregister_code_conversion_map): Likewise.
6780 * coding.c (setup_coding_system, detect_coding_system,
6781 Ffind_operation_coding_system, Fset_coding_priority_internal):
6782 Likewise.
6783 * doc.c (get_doc_string, Fdocumentation,
6784 store_function_docstring): Likewise.
6785 * editfns.c (save_restriction_restore): Likewise.
6786 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6787 skip_debugger, find_handler_clause, Fautoload, Fapply,
6788 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6789 Likewise.
6790 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6791 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6792 Fread_file_name): Likewise.
6793 * filelock.c (unlock_all_files): Likewise.
6794 * insdel.c (Fcombine_after_change_execute): Likewise.
6795 * intervals.c (adjust_intervals_for_insertion): Likewise.
6796 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6797 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6798 store_in_keymap, Fcopy_keymap, define_as_prefix,
6799 current_minor_maps, Faccessible_keymaps,
6800 accessible_keymaps_char_table, Fkey_description,
6801 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6802 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6803 describe_map): Likewise.
6804 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6805 read_list, init_lread): Likewise.
6806 * search.c (Fmatch_data): Likewise.
6807 * sunfns.c (Fsun_menu_internal): Likewise.
6808 * syntax.c (describe_syntax): Likewise.
6809 * undo.c (record_insert, record_delete, Fundo_boundary,
6810 truncate_undo_list): Likewise.
6811 * vmsproc.c (child_sig): Likewise.
6812
6813 * editfns.c (Fformat): Use XFLOAT_DATA.
6814
68151999-09-12 Gerd Moellmann <gerd@gnu.org>
6816
6817 * keyboard.c (command_loop_1): Resize mini-window to the
6818 exact size of a message displayed, if any.
6819
6820 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6821 to exact size if exact_p is non-zero.
6822 (display_echo_area_1): Call resize_mini_window with
6823 new parameter.
6824 (redisplay_internal): Ditto.
6825 (resize_echo_area_axactly): New.
6826
6827 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6828 new parameter.
6829
6830 * dispextern.h: Change prototype of resize_mini_window.
6831 Add prototype for resize_echo_area_axactly.
6832
6833 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6834 (syms_of_xfaces): Defsubr accordingly.
6835
6836 * xdisp.c (hscroll_window_tree): Choose cursor row from
6837 desired or current matrix.
6838 (redisplay_internal): Hscroll before updating.
6839
68401999-09-12 Gerd Moellmann <gerd@gnu.org>
6841
6842 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6843 of minibuffer_prompt_length.
6844
6845 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6846 of minibuffer_prompt_length.
6847 (read_minibuf_unwind): Ditto.
6848 (Fminibuffer_complete_and_exit): Ditto.
6849 (Fminibuffer_complete_word): Ditto.
6850 (Fminibuffer_prompt_end): Ditto.
6851
6852 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6853 of minibuffer_prompt_length.
6854 (Fline_beginning_position): Ditto.
6855
6856 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6857 of minibuffer_prompt_length.
6858 (Fmake_indirect_buffer): Ditto.
6859 (Fkill_buffer): Ditto.
6860 (Ferase_buffer): Ditto.
6861
6862 * buffer.h (prompt_end_charpos): Replaces
6863 minibuffer_prompt_length.
6864
427ec082 6865 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6866 without the prompt.
6867
6868 * editfns.c (make_buffer_string_both): Take out the code
6869 to handle mini-buffer prompts.
6870 (Fbuffer_string): Handle the prompt here, instead.
6871
6872 * xfaces.c (lface_from_face_name): Resolve face aliases.
6873 (Qmode_line): Replaces Qmodeline.
6874 (realize_basic_faces): Use Qmode_line.
6875 (syms_of_xfaces): Initialize Qmode_line.
6876
68771999-09-12 Gerd Moellmann <gerd@gnu.org>
6878
6879 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6880 current column after inserting prompt.
6881 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6882
6883 * xfaces.c (Qframe_update_face_colors): New.
6884 (syms_of_xfaces): Initialize call.
6885 (update_face_from_frame_parameter): Call that function when
6886 the frame's background changes.
6887
68881999-09-12 Richard Stallman <rms@gnu.org>
6889
6890 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6891
68921999-09-12 Ken Raeburn <raeburn@gnu.org>
6893
6894 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6895 mark_object, mark_buffer): Use XCAR and XCDR.
6896 * bytecode.c (Fbyte_code): Likewise.
6897 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6898 Likewise.
6899 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6900 getenv_internal): Likewise.
6901 * dired.c (file_name_completion): Likewise.
6902 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6903 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6904 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6905 * indent.c (Fcompute_motion): Likewise.
6906 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6907 list_processes_1, Fstart_process, Fopen_network_stream,
6908 wait_reading_process_input, read_process_output_call,
6909 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6910 status_notify, wait_reading_process_input): Likewise.
6911 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6912 extend_property_ranges): Likewise.
6913 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6914 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6915 x_report_frame_params, x_set_cursor_type, x_icon_type,
6916 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6917 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6918 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6919 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6920 x_display_info_for_name, Fx_display_list): Likewise.
6921 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6922 Fx_popup_menu, Fx_popup_dialog): Likewise.
6923 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6924 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6925 w32_term_init, x_delete_display): Likewise.
6926 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6927 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6928 x_top_window_to_frame, x_set_frame_parameters,
6929 x_report_frame_params, x_set_cursor_type, x_icon_type,
6930 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6931 Fx_display_list, x_create_tip_frame): Likewise.
6932 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6933 Fx_popup_menu, Fx_popup_dialog): Likewise.
6934 * xselect.c (x_own_selection, x_get_local_selection,
6935 x_handle_selection_request, x_handle_selection_clear,
6936 x_clear_frame_selections, wait_for_property_change_unwind,
6937 wait_for_property_change, x_handle_property_notify,
6938 copy_multiple_data, x_get_foreign_selection,
6939 lisp_data_to_selection_data, clean_local_selection_data,
6940 x_handle_selection_notify, Fx_get_selection_internal,
6941 x_disown_buffer_selections): Likewise.
6942 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6943 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6944 Likewise.
6945
6946 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6947 XFLOAT_DATA.
6948 * bytecode.c (Fbyte_code): Likewise.
6949 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6950 fmod_float): Likewise.
6951
69521999-09-11 Richard Stallman <rms@gnu.org>
6953
6954 * xdisp.c (run_window_scroll_functions): If hook functions switch
6955 buffers, switch back after.
6956
69571999-09-11 Ken Raeburn <raeburn@gnu.org>
6958
6959 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6960 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6961 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6962 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6963 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6964 XCDR.
6965 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6966 XCDR.
6967
69681999-09-10 Richard Stallman <rms@gnu.org>
6969
6970 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6971 not RevertToPointerRoot.
6972 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6973 Fix the code to clear around the scroll bar.
6974
69751999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6976
6977 * print.c: Support print-circle and related features.
6978 (Vprint_gensym_alist): Removed.
6979 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6980 Vprint_number_table): New variables.
6981 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6982 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6983 (print, print_preprocess, print_preprocess_string, print_object):
6984 New/modified functions with print-circle feature. Use
6985 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6986 (syms_of_print): Defined new Lisp variables `print-circle',
6987 `print-continuous-numbering', `print-number-table'.
6988
69891999-09-10 Gerd Moellmann <gerd@gnu.org>
6990
6991 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6992 as background color specification instead of an integer.
6993 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6994 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6995 (clear_image_cache, syms_of_xfns): Use it.
6996 (Qpostscript): Replaces Qghostscript.
6997 (gs_type): Use it.
6998 (gs_image_p): Ditto.
6999 (syms_of_xfns): Initialize Qpostscript.
7000
70011999-09-10 Richard Stallman <rms@gnu.org>
7002
7003 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
7004
70051999-09-09 Richard Stallman <rms@gnu.org>
7006
7007 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
7008
7009 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
7010
70111999-09-09 Gerd Moellmann <gerd@gnu.org>
7012
7013 * fns.c (Fmakehash): Accept just one optional argument TEST.
7014
7015 * xfns.c (QCindex): New.
7016 (syms_of_xfns): Initialize QCindex.
7017 (gif_load): Use it instead of `:image'.
7018
70191999-09-09 Richard Stallman <rms@gnu.org>
7020
7021 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
7022 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
7023
70241999-09-08 Gerd Moellmann <gerd@gnu.org>
7025
7026 * xdisp.c (Qwhen): Replaces QCwhen.
7027 (syms_of_xdisp): Initialized it instead of QCwhen.
7028 (handle_single_display_prop): Use it instead of QCwhen.
7029
70301999-09-08 Ken'ichi Handa <handa@gnu.org>
7031
7032 * charset.c (translate_char): Reset MSBs of arguments of
7033 MAKE_CHAR.
7034 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
7035
70361999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
7037
7038 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
7039
7040 * fns.c (Fbase64_decode_region): Don't place point outside of the
7041 current accessible portion.
7042
70431999-09-07 Richard Stallman <rms@gnu.org>
7044
7045 * keymap.c (fix_submap_inheritance): Do nothing if the proper
7046 parent is an ancestor of SUBMAP; otherwise, add it as the
7047 ultimate ancestor.
7048
70491999-09-07 Gerd Moellmann <gerd@gnu.org>
7050
7051 * xdisp.c (handle_single_display_prop): Change conditional
7052 display property to `:when FORM . VALUE'.
7053
70541999-09-07 Richard Stallman <rms@gnu.org>
7055
7056 * fileio.c (Fwrite_region): Doc fix.
7057
70581999-09-07 Stefan Monnier <monnier@cs.yale.edu>
7059
7060 * fileio.c (Qexcl): New variable.
7061 (report_file_error): Handle EEXIST specially.
7062 (Fwrite_region): Special handling for CONFIRM = `excl'.
7063 (syms_of_fileio): Initialize Qexcl.
7064
70651999-09-07 Gerd Moellmann <gerd@gnu.org>
7066
7067 * xfns.c (x_set_foreground_color): Call
7068 update_face_from_frame_parameter.
7069 (x_set_background_color): Ditto.
7070 (x_set_mouse_color): Ditto.
7071 (x_set_cursor_color): Ditto.
7072 (x_set_border_color): Ditto.
7073 (x_set_scroll_bar_foreground): Ditto.
7074 (x_set_scroll_bar_background): Ditto.
7075
7076 * xfaces.c (recompute_basic_faces): Clear face cache.
7077 (Finternal_set_lisp_face_attribute): Modify frame parameters
7078 if attributes of certain faces are changed.
7079 (update_face_from_frame_parameter): New.
7080
7081 * xfaces.c (realize_basic_faces): Realize new basic faces.
7082
7083 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
7084 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
7085
7086 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
7087 (syms_of_xfaces): Intialize new symbols.
7088
7089 * fns.c (Fmakehash): Take one argument, test, make all the
7090 rest keyword arguments.
7091
7092 * window.c (Fset_window_margins): Make window the first argument.
7093 (set_window_buffer): Call Fset_window_margins with window as first
7094 argument.
7095
70961999-09-07 Gerd Moellmann <gerd@gnu.org>
7097
7098 * xfaces.c (Qfringe): Replaces Qmargin.
7099
71001999-09-07 Kenichi Handa <handa@etl.go.jp>
7101
7102 * charset.h: Lots of comments fixed.
7103 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
7104 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
7105
7106 * charset.c : Lots of comments fixed.
7107 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
7108 (CHAR_COMPONENTS_VALID_P): Name changed from
7109 CHAR_COMPONENT_VALID_P. Caller changed.
7110
71111999-09-06 Richard Stallman <rms@gnu.org>
7112
7113 * insdel.c (syms_of_insdel): Define Lisp variable
7114 inhibit-modification-hooks.
7115
71161999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
7117
7118 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
7119 unexaix.c.
7120
7121 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
7122
71231999-09-06 Dave Love <fx@gnu.org>
7124
7125 * unexaix.c: New version incorporating Michael Sperber's changes
7126 from XEmacs. Should solve problems on AIX 4.3.
7127
7128 * lread.c (Vbyte_boolean_vars): New variable.
7129 (defvar_bool, syms_of_lread): Use it.
7130
71311999-09-05 Richard Stallman <rms@gnu.org>
7132
7133 * minibuf.c (read_minibuf): Put all three properties on the
7134 same range, the whole prompt.
7135
71361999-09-05 Gerd Moellmann <gerd@gnu.org>
7137
7138 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
7139 (Fplay_sound, syms_of_sound): Use it.
7140 (parse_sound): Allow float volume values in the range [0, 1].
7141 (Fplay_sound): Ditto.
7142
7143 * window.c (Fset_window_vscroll): Make window the first argument,
7144 amount to scroll the second. Take non-negative vscroll as
7145 argument.
7146 (Fwindow_vscroll): Return non-negative vscroll.
7147
7148 * xfns.c (Fx_show_tip): Improve documentation.
7149
71501999-09-05 Gerd Moellmann <gerd@gnu.org>
7151
7152 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
7153 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
7154 `top-line' and `top_line' to `header-line' and `header_line'.
7155 Likewise for similar spellings.
7156
71571999-09-05 Gerd Moellmann <gerd@gnu.org>
7158
7159 * xdisp.c (row_containing_pos): New.
7160 (try_window_id): Use it.
7161
7162 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
7163 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
7164 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
7165 Likewise for upper-case etc.
7166
71671999-09-05 Gerd Moellmann <gerd@gnu.org>
7168
7169 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
7170 Fix reference to renamed variable.
7171
71721999-09-04 Gerd Moellmann <gerd@gnu.org>
7173
7174 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 7175 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
7176 Qfixed_window_size.
7177 (syms_of_window): Ditto.
7178
7179 * fns.c (Fmakehash): Exchange optional test and size arguments.
7180
71811999-09-03 Gerd Moellmann <gerd@gnu.org>
7182
7183 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
7184 under newly created scroll bar.
7185 (expose_window): If window is not yet fully initialized, do
7186 nothing. This can happen when toolkit scroll bars are used and a
7187 window is split. Reconfiguring the scroll bars will generate an
7188 expose for a newly created window.
7189
7190 * frame.h (struct frame): New member `gamma'.
7191
7192 * xfns.c: Include math.h. Add extern declaration for atof in case
7193 we don't see one.
7194 (Qscreen_gamma): New.
7195 (struct x_frame_parm_table): Add prototypes, add
7196 x_set_screen_gamma.
7197 (gamma_correct): New function.
7198 (defined_color): Call it.
7199 (x_set_screen_gamma): New.
7200 (x_set_title): Add parameter old_value.
7201 (RES_TYPE_FLOAT): New.
7202 (x_get_arg): Handle RES_TYPE_FLOAT.
7203 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7204 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7205 new prototype.
7206 (lookup_rgb_color): Ditto.
7207 (syms_of_xfns): Initialize Qscreen_gamma.
7208
7209 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7210 New. Allocate color for lwlib widgets.
7211 (x_alloc_nearest_color): Change parameter list include the
7212 frame on which to allocate colors. Gamma-correct colors.
7213 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7214 parameter list.
7215
7216 * xterm.h: Change protorype of x_alloc_nearest_color.
7217
72181999-09-03 Richard Stallman <rms@gnu.org>
7219
7220 * callproc.c: Delete the system-independent include of stdlib.h
7221 (leaving only the one in the WINDOWSNT conditional).
7222
72231999-09-03 Andrew Choi <choi@cs.hku.hk>
7224
7225 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7226 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7227
26901792
DL
7228 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7229 Window types and macros.
7230
7231 * frame.h: Do nothing if included a second time.
7232 (enum output_method): Add mac_output frame type.
7233 (union output_data): Add new alternative `mac'.
7234 (FRAME_MAC_P): New macro.
427ec082 7235
26901792
DL
7236 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7237 (syms_of_frame_1): Initialize Qmac.
7238 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7239 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7240 (Fmodify_frame_parameters) [macintosh]: Call
7241 mac_set_frame_parameter in macterm.c.
427ec082 7242
26901792
DL
7243 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7244 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7245
26901792
DL
7246 * make-docfiles.c: Correctly handle input files with Mac-style
7247 eol's.
427ec082 7248
26901792 7249 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7250
26901792
DL
7251 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7252 file of an X Window environment.
427ec082 7253
26901792
DL
7254 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7255 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7256
26901792
DL
7257 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7258 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7259 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7260 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7261 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7262 New functions, replacing POSIX features.
427ec082 7263
26901792
DL
7264 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7265 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7266 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7267
7268 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7269 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7270 (myPasswdDir, TempDirName, sys_siglist): New variables.
7271
7272 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7273 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7274 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7275 Define empty stubs so Emacs will link.
7276
72771999-09-03 Gerd Moellmann <gerd@gnu.org>
7278
7279 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7280
7281 * window.h: New member frozen_window_start_p.
7282
7283 * window.c (foreach_window, foreach_window_1): New.
7284 (freeze_window_start, freeze_window_starts): New.
7285 (make_window): Initialize frozen_window_start_p.
7286 (replace_window): Ditto.
7287 (Fset_window_point): Remove references to deleted variables.
7288 (Fset_window_start): Ditto.
7289
7290 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7291 resize_mini_initial_height): Removed.
7292 (syms_of_xdisp): Remove references to these variables.
7293 (resize_mini_window): Don't save window configuration, freeze
7294 window starts instead. Enlarge window until displaying an empty
7295 buffer, then shrink it. Make the function externally visible.
7296 (redisplay_window): Treat frozen window start like forced start,
7297 but accept point outside of the window.
7298
7299 * dispextern.h: Add function prototype for resize_mini_window.
7300
7301 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7302 reaching minibuf_level 0.
7303
7304 * lisp.h: Remove extern declarations for variables deleted from
7305 xdisp.c.
7306
7307 * dispnew.c (adjust_frame_glyphs): Remove reference to
7308 Vresize_mini_config.
7309
73101999-09-03 Gerd Moellmann <gerd@gnu.org>
7311
7312 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7313 to USE_TOOLKIT_SCROLL_BARS.
7314
7315 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7316 here.
7317 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7318 under newly created scroll bar. Put toolkit scroll bars in the
7319 middle of the area reserved for the scroll bar.
7320
73211999-09-03 Kenichi Handa <handa@etl.go.jp>
7322
7323 The following changes are for the new handling of mulitbyte
7324 sequence. Now, except for a composite character, no multibyte
7325 character in string/buffer has trailing garbage bytes. For
7326 instance, the length of string "\201\300\300" is now 2, the first
7327 character is Latin-1 A-grave, the second is raw \300.
7328
7329 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7330 are negative.
7331 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7332 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7333 (PARSE_COMPOSITE_SEQ): New macro.
7334 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7335 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7336 (CHAR_PRINTABLE_P): New macro.
7337 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7338 (STRING_CHAR_AND_LENGTH): Likewise.
7339 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7340 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7341 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7342
7343 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7344 (SPLIT_CHARACTER_SEQ): New macro.
7345 (SPLIT_MULTIBYTE_SEQ): New macro.
7346 (CHAR_COMPONENT_VALID_P): New macro.
7347 (non_ascii_char_to_string): Generate a multibyte sequence as far
7348 as possible.
7349 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7350 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7351 (split_non_ascii_string): Likewise.
7352 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7353 (char_printable_p): New function.
7354 (translate_char): Check character by NATNUMP instead of INTEGERP.
7355 (unibyte_char_to_multibyte): Call char_valid_p instead of
7356 VALID_MULTIBYTE_CHAR_P.
7357 (Fmake_char_internal): Check the arguments more rigidly.
7358 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7359 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7360 (Fmultibyte_char_to_unibyte): Check the validity of character by
7361 CHAR_VALID_P.
7362 (chars_in_text): Call multibyte_chars_in_text.
7363 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7364 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7365 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7366
7367 * data.c (Faset): Adjust the way to check byte-combining
7368 possibility for the new handling of multibyte sequence.
7369
7370 * editfns.c (Fsubst_char_in_region): Likewise.
7371
7372 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7373 (string_char_to_byte): Likewise.
7374 (string_byte_to_char): Likewise.
7375
7376 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7377 macro STRING_CHAR_AND_LENGTH. Caller changed.
7378
7379 * insdel.c (count_combining_composition): New function.
7380 (count_combining_before): Adjust the way to check byte-combining
7381 possibility for the new handling of multibyte sequence. Call
7382 count_combining_composition for a composite character.
7383 (count_combining_after): Likewise.
7384
7385 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7386 (print): Likewise.
7387
7388 * dispextern.h (struct it): Change the size of the member
7389 `ctl_chars'.
7390
7391 * xdisp.c (get_next_display_element): Display incomplete multibyte
7392 sequence (e.g. \222\300) by octal form.
7393
73941999-09-02 Gerd Moellmann <gerd@gnu.org>
7395
7396 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7397
7398 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7399 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7400
74011999-09-02 Gerd Moellmann <gerd@gnu.org>
7402
7403 * buffer.c (set_buffer_internal): Never set
7404 windows_or_buffers_changed.
7405
7406 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7407 if we have displayed to the bottom of the window.
7408
7409 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7410 in both directions. Extend documentation.
7411
74121999-09-01 Gerd Moellmann <gerd@gnu.org>
7413
7414 * minibuf.c (read_minibuf): Flush display after setting cursor to
7415 column 0.
7416
74171999-08-31 Gerd Moellmann <gerd@gnu.org>
7418
7419 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7420 already defined. This avoids a warning from buffer.c.
7421
74221999-08-30 Gerd Moellmann <gerd@gnu.org>
7423
7424 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7425 of both margins.
7426 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7427 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7428 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7429
7430 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7431 once instead of twice.
7432 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7433
7434 * xterm.c: Remove unused bitmaps.
7435 (continued_bits, continuation_bits, overlay_bits): Change images.
7436 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7437 instead of FRAME_X_FLAGS_AREA_WIDTH.
7438 (x_after_update_window_line): Ditto.
7439 (x_draw_bitmap): Likewise.
7440 (x_draw_row_bitmaps): Likewise.
7441 (x_draw_glyph_string_box): Likewise.
7442 (x_draw_glyphs): Likewise.
7443 (x_scroll_run): Likewise.
7444 (expose_window_tree): Likewise.
7445 (note_mode_line_highlight): Likewise.
7446 (XTset_vertical_scroll_bar): Likewise.
7447 (x_clip_to_row): Likewise.
7448 (x_set_window_size): Likewise.
7449
7450 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7451 of 2 * that value.
7452
7453 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7454 2 * that value.
7455 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7456 FRAME_FLAGS_AREA_WIDTH.
7457
7458 * window.c (coordinates_in_window): Use
7459 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7460 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7461 instead of twice.
7462
427ec082 7463 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7464 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7465 (EmacsFrameSetCharSize): Ditto.
7466
7467 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7468 instead of FRAME_FLAGS_AREA_WIDTH.
7469
7470 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7471 FRAME_FLAGS_AREA_COLS once.
7472 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7473 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7474
74751999-08-30 Gerd Moellmann <gerd@gnu.org>
7476
7477 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7478 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7479
74801999-08-30 Gerd Moellmann <gerd@gnu.org>
7481
7482 * fns.c (QCweakness): Replaces QCweak.
7483 (Fmake_hash_table): Ditto.
7484 (Fmakehash): Ditto.
7485 (syms_of_fns): Ditto.
7486
74871999-08-29 Richard Stallman <rms@gnu.org>
7488
7489 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7490
7491 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7492
7493 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7494 Add support for nested comments.
7495
863476d1
SM
7496 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7497 Consolidate the forward comment code into the new `forw_comment'.
7498 (forw_comment): New subroutine. Added support for nested comments.
7499 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7500 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7501
75021999-08-28 Ken Raeburn <raeburn@gnu.org>
7503
7504 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7505 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7506 defined, to help detect code that uses knowledge of the Lisp
7507 internals that it shouldn't have.
7508 (XFLOAT_DATA): New macro.
7509
75101999-08-25 Gerd Moellmann <gerd@gnu.org>
7511
7512 * syntax.c (Fforward_word): If in a mini-buffer and moving
7513 backwards, stop in front of the prompt to prevent accidentially
7514 moving into the read-only prompt.
7515
7516 * window.c (Frecenter): Clear frame if called with nil or no arg.
7517
7518 * xdisp.c (resize_mini_window): Don't resize if
7519 Vmax_mini_window_height is nil. Otherwise, use a default if
7520 Vmax_mini_window_height is not ot a number.
7521 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7522
75231999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7524
7525 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7526 * m/iris4d.h: Use unexelf for IRIX 5.*.
7527 * m/iris5d.h: Use unexelf for IRIX 6.*.
7528 * unexsgi.c: Deleted.
7529
7530 * unexelf.c: Auto-detect .sbss section.
7531 (round_up): Make it static.
7532 (unexec): Declare alignment as Elf Word. Skip ``Program
7533 segment above .bss'' test on MIPS without .sbss.
7534 Copy sections .got and .sdata1 sections. Adjust offsets in
7535 sections .sdata, .lit4, .lit8, .got and .sdata1.
7536
75371999-08-25 Gerd Moellmann <gerd@gnu.org>
7538
7539 * xdisp.c (try_window_id): Remove typo.
7540
75411999-08-24 Gerd Moellmann <gerd@gnu.org>
7542
7543 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7544 unchanged text at the bottom when computing the cursor position.
7545 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7546 set.
7547
7548 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7549
75501999-08-24 Gerd Moellmann <gerd@gnu.org>
7551
7552 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7553 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7554 (syms_of_xfaces): Ditto.
7555
7556 * window.c (Fset_window_point): Reset Vresize_mini_config.
7557 (Fset_window_start): Ditto.
7558 (set_window_buffer): Ditto.
7559
7560 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7561
7562 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7563 before calling try_window.
7564 (echo_area_display): If height has changed, update other windows.
7565 (resize_mini_frame, resize_mini_initial_height): New.
7566 (resize_mini_window): Save/restore window configuration
7567 differently.
7568
427ec082 7569 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7570 resize_mini_initial_height): Add extern declarations.
7571
7572 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7573 CANON_X_UNIT.
7574
7575 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7576 being redefined in jconfig.h.
7577
75781999-08-23 Ken'ichi Handa <handa@gnu.org>
7579
7580 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7581
75821999-08-22 Gerd Moellmann <gerd@gnu.org>
7583
7584 * alloc.c (mark_glyph_matrix): Mark strings only.
7585
7586 * xdisp.c (redisplay_internal): Clear garbaged frames after
7587 resizing mini-window.
7588
75891999-08-22 Gerd Moellmann <gerd@gnu.org>
7590
7591 * xdisp.c (unwind_with_echo_area_buffer): Use
7592 set_buffer_internal_1 instead of set_buffer_internal.
7593 (with_echo_area_buffer): Ditto.
7594
7595 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7596 only if buffer is displayed somewhere.
7597
7598 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7599
7600 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7601 (gap_right): Ditto.
7602 (modify_region): Ditto.
7603
7604 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7605
7606 * xdisp.c (Vresize_mini_config): New.
7607 (resize_mini_window): Use it to save restore original window
7608 configuration
7609 (syms_of_xdisp): Initialize it.
7610
7611 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7612
7613 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7614
7615 * xdisp.c (reconsider_clip_changes): New.
7616 (redisplay_internal, redisplay_window): Call it.
7617 (mark_window_display_accurate, redisplay_internal): Set current
7618 matrix' buffer, begv, zv.
7619
7620 * window.c (Fset_window_hscroll): Set
7621 prevent_redisplay_optimizations_p instead of clip_changed.
7622 (Fset_window_hscroll): Ditto.
7623 (temp_output_buffer_show): Ditto.
7624 (Fset_window_vscroll): Ditto.
7625
7626 * buffer.c (reset_buffer): Set clip_changed to 0 and
7627 prevent_redisplay_optimizations_p to 1.
7628 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7629
7630 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7631 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7632 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7633 END_UNCHANGED): New.
7634 (struct buffer_text): Add beg_unchanged, end_unchanged,
7635 unchanged_modified, overlay_unchanged_modified.
7636
7637 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7638 overlay_unchanged_modified): Removed.
7639 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7640 (unwind_with_echo_area_buffer): Don't restore them.
7641 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7642 (text_outside_line_unchanged_p, redisplay_internal,
7643 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7644 (redisplay_window): Let try_window_id be called if more than one
7645 window is displayed. Use/set buffer-specific beg/end_unchanged.
7646 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7647 try_window_id):
7648 Use buffer-specific beg/end_unchanged.
7649
7650 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7651 overlay_unchanged_modified): Remove extern declarations.
7652
7653 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7654 buffer.
7655
7656 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7657 (gap_right): Ditto.
7658 (adjust_after_replace): Likewise.
7659 (replace_range, del_range_2, modify_region): Likewise.
7660
7661 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7662 and unchanged_modified per buffer.
7663
7664 * coding.c (code_convert_region): Compute beg/end_unchanged per
7665 buffer.
7666
7667 * buffer.c (modify_overlay): Compute beg/end_unchanged
7668 per buffer.
427ec082 7669 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7670 structure.
7671
76721999-08-22 Gerd Moellmann <gerd@gnu.org>
7673
7674 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7675
7676 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7677 (Qkey_value_weak): Removed.
7678 (make_hash_table): Use nil, `key', `value', t for weakness.
7679 (Fmake_hash_table): Ditto.
7680 (copy_hash_table): New.
7681 (Fcopy_hash_table): New.
7682
76831999-08-22 Gerd Moellmann <gerd@gnu.org>
7684
7685 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7686 new parameter.
26901792
DL
7687
76881999-08-21 Gerd Moellmann <gerd@gnu.org>
7689
7690 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7691 well.
427ec082 7692 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7693 have changed.
7694 (display_echo_area): Reset displayed echo_area_buffer to nil
7695 at the end if we're displaying a nil message.
7696
76971999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7698
26901792
DL
7699 * fns.c (hash_lookup): Test with EQ before calling key comparion
7700 function.
7701 (hash_remove): Ditto.
7702 (cmpfn_eq): Removed.
7703 (cmpfn_eql): Don't test with EQ.
7704 (cmpfn_equal): Ditto.
7705 (make_hash_table): Set comparison function for `eq' to null.
7706
7707 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7708 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7709
7710 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7711
7712 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7713 xterm.c: Call change_frame_size and do_pending_window_change with
7714 new parameter.
7715
7716 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7717 (change_frame_size): Ditto.
7718 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7719 and not called from a safe place.
7720 (window_change_signal): Call change_frame_size with new parameter.
7721
7722 * dispextern.h: Change prototypes for do_pending_window_change
7723 and change_frame_size.
7724
7725 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7726 window's buffers equals current_buffer; this is not the
26901792
DL
7727 case during echo area display.
7728
77291999-08-21 Gerd Moellmann <gerd@gnu.org>
7730
7731 * xdisp.c, minibuf.c: Remove conditional compilation on
7732 NO_PROMPT_IN_BUFFER.
7733
7734 * minibuf.c (Fminibuffer_prompt_end): New.
7735 (syms_of_minibuf): Defsubr it. Remove
7736 minibuffer-prompt-in-buffer.
7737 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7738 Extend documentation.
7739
7740 * xdisp.c (get_next_display_element): Display \r as ^M.
7741
7742 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7743 under scroll bar widget.
7744
77451999-08-21 Gerd Moellmann <gerd@gnu.org>
7746
7747 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7748 anywhere.
7749 (unwind_redisplay): Return nil.
7750 (clear_garbaged_frames): New.
7751 (redisplay_internal): Use it.
7752 (echo_area_display): Ditto.
7753 (resize_mini_window): Mew.
7754 (display_echo_area_1): Use it to resize echo area window.
7755 (redisplay_internal): Use it to resize active mini-window.
7756
7757 * dispextern.h, lisp.h: Add function prototypes.
7758
427ec082 7759 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7760 cursor_in_echo_area case only for a mini-window showing
7761 a message. Don't let cursor end up after the end of a row.
7762
7763 * xdisp.c (echo_area_glyphs, echo_area_message,
7764 echo_area_glyphs_length, previous_echo_glyphs,
7765 previous_echo_area_message, previous_echo_area_glyphs_length):
7766 Removed.
7767 (Vmessage_stack, echo_area_buffer, echo_buffer,
7768 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7769 (message2_nolog): Use set_message and clear_message.
7770 (message3): Rename parameter len to nbytes to make clear what
7771 it is.
7772 (message3_nolog): Ditto. Use set_message and clear_message.
7773 (update_echo_area): Rewritten.
7774 (with_echo_area_buffer): New.
7775 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7776 (setup_echo_area_for_printing): New.
7777 (display_echo_area, display_echo_area_1): New.
7778
7779 (current_message, current_message_1): New.
427ec082 7780 (push_message, restore_message, pop_message,
26901792
DL
7781 check_message_stack): New.
7782 (truncate_echo_area): Rewritten.
7783 (truncate_message_1): New.
7784 (set_message, set_message_1, clear_message): New.
7785 (echo_area_display): Rewritten.
7786 (redisplay_internal): Check for needed echo area update
7787 differently.
7788 (redisplay_preserve_echo_area): Rewritten.
427ec082 7789 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7790 message differently.
7791 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7792 Remove initialzation of removed variables.
7793 (init_xdisp): Remove references to removed variables.
7794
7795 * dispnew.c (adjust_frame_message_buffer): Removed references
7796 to echo_area_glyphs and previous_echo_glyphs.
7797 (direct_output_for_insert): Check for mini-window displaying
7798 echo area message differently.
7799 (update_frame): Likewise.
7800 (set_window_cursor_after_update): Likewise. In echo area,
7801 don't try to set cursor on rows that aren't enabled.
7802
7803 * print.c: Remove conditional compilation on `standalone'.
7804 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7805 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7806 longer used in that way.
7807 (PRINTDECLARE): Add multibyte.
7808 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7809 (printbufidx): Removed.
7810 (printchar, strout): Rewritten.
7811
7812 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7813 a struct kboard.
7814 (echo_kboard): New.
7815 (echo_now): Set echo_kboard to the current kboard.
7816 (cancel_echoing): Set echo_kboard to null.
7817 (cmd_error_internal): Use clear_message, remove references
7818 to echo_area_glyphs and echo_area_message.
7819 (command_loop_1): Check for echo area messages differently.
7820 (read_char): Likewise.
7821 (record_menu_key): Use clear_message.
7822 (Fexecute_extended_command): Check for echo area messages
7823 differently. Use push_message, restore_message, pop_message.
7824
7825 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7826 pop_message.
7827
7828 * emacs.c (shut_down_emacs): Call check_message_stack.
7829
7830 * lisp.h: Add function prototypes and extern declarations for
7831 new functions and variables.
7832
7833 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7834 pop_message.
7835
427ec082 7836 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7837 setting echo_area_glyphs.
7838 (Fminibuffer_completion_help): Ditto.
7839
7840 * editfns.c (Fcurrent_message): Rewritten.
7841
7842 * frame.c, window.h: Remove references to echo_area_glyphs
7843 and previous_echo_glyphs.
7844
78451999-08-21 Dave Love <fx@gnu.org>
7846
7847 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7848 * aix4-1.h: Likewise.
7849
7850 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7851
78521999-08-20 Gerd Moellmann <gerd@gnu.org>
7853
7854 * xfns.c: Remove tiff34 prefix from include.
7855
78561999-08-20 Dave Love <fx@gnu.org>
7857
7858 * cm.c: Revert previous change.
7859
78601999-08-19 Gerd Moellmann <gerd@gnu.org>
7861
7862 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7863 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7864
78651999-08-18 Dave Love <fx@gnu.org>
7866
7867 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7868 stdlib.h.
7869
7870 * doprnt.c: Use stdlib.h, unistd.h.
7871
7872 * config.in: Add HAVE_TERMCAP_H.
7873
7874 * cm.c: Use termcap.h.
7875
78761999-08-18 Gerd Moellmann <gerd@gnu.org>
7877
7878 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7879 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7880 cannot be created we will already have crashed earlier. Call
7881 lw_set_main_areas with a null menu-bar widget, so that we have
7882 a reasonable default.
7883 (Fx_create_frame): Rearranged so that Lisp errors during frame
7884 initialization cause less damage. Initialize menu bar widget
7885 here.
7886
78871999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 7888
26901792
DL
7889 * dispnew.c (update_frame_line): Fix previous change. If writing
7890 whole line clear to end of frame.
7891
78921999-08-17 Gerd Moellmann <gerd@gnu.org>
7893
7894 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7895 and `right-bitmap-area' if position is in the bitmap areas. This
7896 avoids an error when clicking on the bitmap areas. Instead, they
7897 are currently treated like clicks inside the window.
7898 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7899 (Qleft_bitmap_area, Qright_bitmap_area): New.
7900 (syms_of_window): Initialize new symbols.
7901
7902 * dispnew.c (update_frame_line): If writing whole line,
7903 don't write trailing spaces unless we must.
7904
7905 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7906 (redisplay_internal): Register unwind_redisplay with
7907 register_unwind_protect.
7908 (try_window_reusing_current_matrix): If new start > old start,
7909 give up if start pos of first reusable row is not equal to new
7910 start.
7911
7912 * eval.c (Fsignal): Don't reset redisplaying_p here.
7913
7914 * xterm.c (expose_area): If row extends face to end of line,
7915 write the whole line.
7916
79171999-08-16 Gerd Moellmann <gerd@gnu.org>
7918
7919 * dispextern.h (struct it): Remove member
7920 show_trailing_whitespace_p.
7921
7922 * dispnew.c (direct_output_for_insert): Use
7923 Vshow_trailing_whitespace instead of former iterator member
7924 show_trailing_whitespace_p.
7925 (direct_output_forward_char): Don't do it if hightlighting
7926 trailing whitespace.
7927
7928 * xdisp.c (Qshow_trailing_whitespace): Removed.
7929 (Vshow_trailing_whitespace): Added.
7930 (init_iterator): Remove initialization code for
7931 show_trailing_whitespace_p.
7932 (redisplay_internal): Don't try cursor movement in this_line
7933 if showing trailing whitespace.
7934 (redisplay_window): Likewise for cursor movement in current
7935 matrix and try_window_id.
7936 (try_window_reusing_current_matrix): Likewise.
7937 (trailing_whitespace_p): Return 0 if trailing whitespace is
7938 in front of point.
7939 (display_line): Use Vshow_trailing_whitespace instead of
7940 former iterator member show_trailing_whitespace_p.
7941 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7942
79431999-08-16 Gerd Moellmann <gerd@gnu.org>
7944
7945 * window.c (Fpos_visible_in_window_p): Rewritten.
7946
7947 * xfaces.c (add_to_log): Renamed from display_message.
7948 Don't display messages in echo area.
7949
7950 * xterm.c (x_draw_glyph_string_box): Use the background width
7951 of the glyph string for the width of the box.
7952
79531999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7954
7955 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7956
79571999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7958
7959 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7960 background first, and then set other parameters that might
7961 depend upon their new values.
7962
79631999-08-15 Gerd Moellmann <gerd@gnu.org>
7964
7965 * xfaces.c (Vfont_list_limit): New.
7966 (syms_of_xfaces): Make it a user-variable.
7967 (DEFAULT_FONT_LIST_LIMIT): New.
7968 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7969 maximally that number of fonts, otherwise use
7970 DEFAULT_FONT_LIST_LIMIT.
427ec082 7971 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
7972 until we have all fonts.
7973 (Fxfont_list): Additionally return the full names of fonts and
7974 their registry and encoding.
7975
427ec082 7976 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
7977 Simplify clearing "under" scroll bar.
7978
7979 * window.c (Qfixed_window_size): New.
7980 (syms_of_window): Initialiaze it.
7981 (check_all_windows): Add return type void.
7982 (window_fixed_size_p): New. Return non-zero if window
7983 is fixed-size.
7984 (window_min_size_1): New.
7985 (window_min_size): Handle fixed-size windows.
7986 (size_window): New. Rewritten combination of set_window_height and
7987 set_window_width that handles fixed-size windows.
7988 (set_window_height): Call it.
7989 (set_window_width): Call it.
7990 (Fsplit_window): Give an error on attempt to split a fixed-size
7991 window.
7992 (change_window_height): Partly rewritten to handle fixed-size
7993 windows.
7994
79951999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7996
7997 * process.c (Fopen_network_stream): Fix previous change.
7998
79991999-08-13 Karl Heuer <kwzh@gnu.org>
8000
8001 * xdisp.c (line_number_display_limit_width): New var.
8002 (decode_mode_spec): Use it instead of hardcoded value.
8003 (syms_of_xdisp): Defvar it.
8004
80051999-08-13 Richard M. Stallman <rms@gnu.org>
8006
8007 * eval.c (run_hook_list_with_args): Gcpro `globals'.
8008 (run_hook_with_args): Likewise.
8009
8010 * window.h (struct window): New field too_small_ok.
8011
427ec082 8012 * window.c (set_window_height, set_window_width):
26901792
DL
8013 If window starts out "too small", set its too_small_ok flag.
8014 If window's too_small_ok flag is set, don't delete it
8015 unless it is so small it would cause a crash.
8016
80171999-08-13 Gerd Moellmann <gerd@gnu.org>
8018
8019 * window.c (MINSIZE): Removed.
8020 (window_min_size): New.
8021 (set_window_height): Use window_min_size.
8022 (change_window_height): Ditto.
8023
80241999-08-12 Gerd Moellmann <gerd@gnu.org>
8025
8026 * indent.c (vmotion): Don't add in mini-buffer prompt width
8027 if prompts are inserted into mini-buffer.
8028
80291999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
8030
8031 * config.in: Add HAVE_GETADDRINFO.
8032 * process.c (Fopen_network_stream): Use getaddrinfo.
8033
80341999-08-11 Gerd Moellmann <gerd@gnu.org>
8035
8036 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
8037 glyphs to -1.
8038
8039 * xdisp.c (face_before_or_after_it_pos): If position after
8040 or before iterator's current position in the buffer is out
8041 of bounds, return the iterator's original face id.
8042
8043 * dispnew.c (mirror_make_current): If desired row isn't enabled,
8044 just swap glyphs pointers between current and desired row.
8045 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
8046 desired matrix method string to current matrix.
8047
80481999-08-11 Kenichi Handa <handa@etl.go.jp>
8049
8050 * lisp.h (CHAR_MODIFIER_MASK): New macro.
8051
8052 * lread.c (read_escape): For Control modifier, pay attention to
8053 multibyte character.
8054 (read1): Likewise. Singal error or a multibyte character which
8055 has a modifer bit. Check validity of Shift modifer.
8056
8057 * charset.c (non_ascii_char_to_string): Handle modifier bits as
8058 the same as Lisp reader.
8059
80601999-08-10 Richard M. Stallman <rms@gnu.org>
8061
8062 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
8063
80641999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
8065
8066 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
8067
80681999-08-10 Eli Zaretskii <eliz@gnu.org>
8069
8070 * msdos.c (IT_set_face): Abort if the default face is not realized
8071 and cached.
8072 (IT_write_glyphs): Reset the screen face to the default face
8073 before writing glyphs.
8074
8075 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
8076 colors from the frame here.
8077 (realize_tty_face) [MSDOS]: Do it here. Update the face
8078 attributes with the actual name of the color taken from the
8079 frame.
8080
8081 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
8082 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
8083
8084 * frame.c (Fframe_parameters): Swap foreground and background
8085 colors returned in frame parameters if the frame has reverse in
8086 its parameter alist.
8087 (Fmake_terminal_frame): Make a unique copy of face_alist for
8088 each frame.
8089
80901999-08-07 Richard Stallman <rms@gnu.org>
8091
8092 * buffer.c (Fprevious_overlay_change): Just return
8093 the answer obtained from overlays_at.
8094
8095 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
8096 Use XpmCloseness and attrs.closeness instead.
8097
80981999-08-06 Richard Stallman <rms@gnu.org>
8099
8100 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
8101
81021999-08-06 Geoff Voelker <voelker@cs.washington.edu>
8103
427ec082 8104 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
8105 Ffile_attributes_lessp): New functions.
8106 (Fdirectory_files): Use directory_files_internal.
8107 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
8108 Ffile_attributes_lessp.
8109
8110 * w32.c (stat): Check for directory ending in separator when
8111 doing readdir fast path.
8112
8113 * w32fns.c (x_set_icon_type): Support setting frame icons.
8114 * w32term.c (x_bitmap_icon): New function.
8115 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 8116
26901792
DL
81171999-08-06 Gerd Moellmann <gerd@gnu.org>
8118
8119 * xdisp.c (set_iterator_to_next): After delivering a character
8120 from a display vector, restore face and charset to what they were
8121 before the display vector was processed.
8122
81231999-08-06 Gerd Moellmann <gerd@gnu.org>
8124
8125 * xdisp.c (reseat_at_next_visible_line_start): New parameter
8126 on_newline_p.
8127 (set_iterator_to_next): After delivering last char
427ec082 8128 from display vector, reseat on next visible line start if
26901792
DL
8129 dpvec_char_len < 0.
8130 (next_element_from_buffer): Set dpvec_char_len to -1 for
8131 selective display.
8132
81331999-08-06 Gerd Moellmann <gerd@gnu.org>
8134
8135 * xdisp.c (compute_line_metrics): If first line's physical ascent
8136 is larger than its logical ascent, use the physical ascent, and
8137 make the row taller. Set row's overlapping_p flag.
8138
8139 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
8140 (direct_output_for_insert): Ditto.
8141
8142 * dispextern.h (struct glyph_row): Add overlapping_p.
8143
8144 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
8145
8146 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
8147 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
8148
8149 * dispnew.c (direct_output_for_insert): Don't use this method if
8150 row is overlapped by others.
8151 (update_text_area): Write full line if current line is overlapped.
8152 (redraw_overlapped_rows): New.
8153 (update_window): Call it.
8154 (redraw_overlapping_rows): New.
8155 (update_window): Call it.
8156 (scrolling_window): Make sure overlapped_p flag in current rows is
8157 unchanged.
8158 (row_equal_p): Take rows overlapped_p flag into account.
8159
8160 * dispextern.h (struct glyph_row): Add flag overlapped_p.
8161
8162 * xterm.c (x_fix_overlapping_area): New.
8163 (x_redisplay_interface): Add x_fix_overlapping_area.
8164
8165 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
8166
81671999-08-06 Gerd Moellmann <gerd@gnu.org>
8168
8169 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
8170 (struct glyph_string): Add member for_overlaps_p.
8171 (x_get_glyph_string_clip_rect): If glyph string draws foreground
8172 of overlapping rows, clip to window bottom.
8173 (x_fill_glyph_string): Add parameter overlaps_p.
8174 (x_fill_composite_glyph_string): Ditto.
8175 (BUILD_GLYPH_STRINGS): Ditto.
8176 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
8177 (x_draw_glyph_string): Don't draw anything but the foreground
8178 if glyph string draws row overlaps.
8179
8180 * dispnew.c (direct_output_for_insert): Don't use this
8181 optimization for rows that overlap others.
8182 (update_window_line): Return non-zero if display has changed.
8183 (update_text_area): Ditto.
8184 (update_window): Record if display has been changed.
8185
8186 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
8187
8188 * dispextern.h (struct redisplay_interface): Add
8189 fix_overlapping_area.
8190
8191 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
8192
8193 * dispextern.h (struct glyph): Add overlaps_vertically_p.
8194
8195 * xterm.c (x_produce_image_glyph): Compute iterator's physical
8196 ascent and descent.
8197 (x_produce_stretch_glyph): Ditto.
8198 (x_produce_glyphs): Ditto.
8199
8200 * xdisp.c (init_iterator): Reset physical line height info
8201 after producing special glyphs.
8202 (display_toolbar_line): Set physical line height info.
8203 (compute_line_metrics): Ditto.
8204 (display_line): Ditto.
8205 (display_string): Ditto.
8206
8207 * term.c (produce_glyphs): Set iterator's physical height
8208 information.
8209
8210 * dispnew.c (blank_row): Compute glyph row's physical height.
8211 (row_equal_p): Take physical row heights into account.
8212 (direct_output_for_insert): Ditto.
8213 (update_text_area): Ditto.
8214
8215 * dispextern.h (struct glyph_row): Add phys_ascent and
8216 phys_height.
8217 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8218 max_phys_descent.
8219
82201999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8221
8222 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8223 Fswitch_to_buffer.
8224 (no_switch_buffer): New function.
8225 (Fswitch_to_buffer): Call them. Don't get confused
8226 by "same-window" buffers in a dedicated frame.
8227
8228 * window.c (display-buffer): Don't get confused
8229 by "same-window" buffers in a dedicated frame.
8230
82311999-08-04 Andreas Schwab <schwab@gnu.org>
8232
8233 * insdel.c (insert_from_string_1): Check gap size against number
8234 of outgoing bytes, not incoming bytes.
8235
82361999-08-03 Tom Breton <tob@world.std.com>
8237
8238 * lread.c (read1): Added circular reading code to #N=.
8239 (SUBSTITUTE): New macro.
8240 (seen_list): New variable.
8241 (substitute_object_in_subtree): New function.
8242 (substitute_object_recurse): New function.
8243 (substitute_in_interval): New function.
8244
82451999-08-02 Eli Zaretskii <eliz@gnu.org>
8246
8247 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8248
8249 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8250 noninteractive, for termcap frames as well.
8251
8252 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8253 frames.
8254
82551999-08-01 Richard Stallman <rms@gnu.org>
8256
8257 * fns.c (internal_equal): Correct overlay comparison.
8258
83c8f461 82591999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8260
427ec082 8261 * xfns.c (x_set_internal_border_width):
26901792
DL
8262 Call do_pending_window_change. Don't block input, don't call XFlush.
8263 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8264 (x_set_scroll_bar_width, x_set_font): Likewise.
8265
8266 * frame.c (Fset_frame_height): Call do_pending_window_change.
8267 (Fset_frame_width, Fset_frame_size): Likewise.
8268
8269 * xterm.c (x_set_window_size): When calling change_frame_size,
8270 specify 1 for DELAY.
8271
8272 * widget.c (EmacsFrameSetCharSize): Don't call
8273 do_pending_window_change here.
8274
82751999-07-30 Dave Love <fx@gnu.org>
8276
8277 * config.in: Add HAVE_STDLIB_H.
8278
82791999-07-30 Richard M. Stallman <rms@gnu.org>
8280
8281 * process.c (create_process): Detect failure of `pipe'.
8282
82831999-07-30 Keisuke Nishida <kei@psn.net>
8284
8285 * alloc.c (allocate_vectorlike): Add missing increment.
8286
8287 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8288
8289 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8290 before calling indirect_function.
8291
82921999-07-30 Eli Zaretskii <eliz@gnu.org>
8293
8294 * dispextern.h (load_color, lookup_derived_face): Declare
8295 prototypes.
8296
8297 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8298 it will be done later.
8299
8300 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8301 init_frame_faces if non-interactive.
8302 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8303 array with a call to msdos_stdcolor_name. The font name is now
8304 "ms-dos", consistent with realize_tty_face.
8305
8306 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8307 MSDOS frame.
8308
8309 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8310 x_set_toolbar_lines.
8311
8312 * xfaces.c (load_color): Remove static from definition and remove
8313 prototype.
8314 [MSDOS]: Add a DOS-specific version of load_color.
8315 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8316 (lookup_derived_face): New function.
8317 (realize_default_face): Support MSDOS frames.
8318 [MSDOS]: If fore/background colors are unspecified, inherit them
8319 from the frame.
8320 (realize_face): Support MSDOS frames.
8321 (realize_tty_face): Support MSDOS frames.
8322 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8323 load_color to try to find a suitable approximation. If the face
8324 is inverse-video, swap the foreground and background colors.
8325
8326 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8327 functions.
8328
8329 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8330
8331 * msdos.h: Remove redundant declarations (most of them are now in
8332 dispextern.h).
8333
8334 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8335 Use default frame colors if the face doesn't specify them; invert
8336 the colors if highlight is ON.
8337 (IT_write_glyphs): Rewritten for the new redisplay engine.
8338 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8339 how the hook is called by term.c.
8340 (IT_copy_glyphs): New function, copies an area of the display in
8341 video RAM.
8342 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8343 redisplay now calls it even if char_ins_del_ok is zero.
8344 (IT_set_frame_parameters): Prototype changed. Calls the new
8345 load_color. Puts the new fore/background colors into the default
8346 face on current frame.
8347 (IT_menu_display): Rewritten to handle the new struct glyph
8348 instead of a char array.
8349 (XMenuActivate): Call lookup_derived_face to create and use
8350 special faces for the pop-up and drop-down menus.
8351
83521999-07-29 Gerd Moellmann <gerd@gnu.org>
8353
8354 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8355 XawScrollbarSetThumb if thumb parameters haven't changed because
8356 that function apparently isn't optimized for this case.
8357
83581999-07-29 Eli Zaretskii <eliz@gnu.org>
8359
8360 * msdos.c (getdefdir): Don't return failure indication when
8361 _fixpath sets errno to ENOSYS.
8362
83631999-07-28 Gerd Moellmann <gerd@gnu.org>
8364
8365 * xdisp.c (string_char_and_length): New. Use it everywhere
8366 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8367
83681999-07-28 Kenichi Handa <handa@etl.go.jp>
8369
8370 * fns.c (count_combining): New function.
8371 (struct textprop_rec): New structure.
8372 (concat): Copy text properties correctly when byte combining
8373 occurs.
8374
83751999-07-28 Gerd Moellmann <gerd@gnu.org>
8376
8377 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8378 if display is mono.
8379 (x_draw_row_bitmaps): If face has stipple, don't switch
8380 to foreground color for clearing areas, and set the fill style.
8381
8382 * xfaces.c (load_face_colors): Load background color if setting
8383 stipple, too.
427ec082 8384 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8385 FillStippled.
8386
83871999-07-26 Ken'ichi Handa <handa@gnu.org>
8388
8389 * xterm.c (x_find_ccl_program): Add casting.
8390
8391 * w32fns.c (w32_find_ccl_program): Add casting.
8392
83931999-07-27 Gerd Moellmann <gerd@gnu.org>
8394
8395 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8396
8397 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8398 because this will try to access a nonexisting widget.
8399
84001999-07-26 Markus Rost <rost@gnu.org>
8401
427ec082 8402 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8403 (Fputhash): Ditto.
8404 (Fremhash): Ditto.
8405
84061999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8407
26901792
DL
8408 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8409 value to frame width and height.
8410
8411 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8412 into account for full-width windows. Don't add scroll bar width
8413 to width of clip rect.
8414 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8415 (x_set_glyph_string_background_width): Add 1 to background width.
8416 (x_draw_glyphs): Take internal border into account for full-width
8417 lines.
8418
84191999-07-26 Richard M. Stallman <rms@gnu.org>
8420
8421 * xfns.c (x_set_mouse_color): Always unload the old color.
8422 Don't allow nil as color value.
427ec082 8423 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8424 Always unload the old color.
8425
8426 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8427
84281999-07-26 Karl Heuer <kwzh@gnu.org>
8429
8430 * fns.c (Fy_or_n_p): Doc fix.
8431
84321999-07-26 Kenichi Handa <handa@etl.go.jp>
8433
8434 * ccl.h (setup_ccl_program): The type is changed to `int'.
8435
8436 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8437 stored in the following CCL code. Adjusted for the change of
8438 Vccl_program_table.
8439 (resolve_symbol_ccl_program): Adjusted for the new style of
8440 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8441 is resolving failed.
8442 (ccl_get_compiled_code): New function.
8443 (setup_ccl_program): Function type changed from `void' to `int'.
8444 Resolve symbols in CCL_PROG.
8445 (Fccl_program_p): New function.
8446 (Fccl_execute): Get compiled CCL code by just calling
8447 setup_ccl_program.
8448 (Fccl_execute_on_string): Likewise.
8449 (Fregister_ccl_program): Adjusted for the change of
8450 Vccl_program_table.
8451
8452 * coding.c (setup_coding_system): Get compiled CCL code by just
8453 calling setup_ccl_program.
8454
8455 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8456 calling setup_ccl_program.
8457
8458 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8459 calling setup_ccl_program.
8460
84611999-07-23 Gerd Moellmann <gerd@gnu.org>
8462
8463 * xfaces.c (frame_update_line_height): Just use the height of the
8464 frame's fontset or font, instead of taking face fonts into
8465 account.
8466
8467 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8468
84691999-07-23 Richard M. Stallman <rms@gnu.org>
8470
8471 * window.c (Fsplit_window): For default size, round up for left window.
8472
84731999-07-21 Joe Ramey <ramey@ti.com>
8474
8475 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8476 has returned -1 (lockfile exists but is not a symlink?).
8477
84781999-07-20 Gerd Moellmann <gerd@gnu.org>
8479
8480 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8481 because of a change in cursor_gc made in 20.4.
8482
84831999-07-19 Gerd Moellmann <gerd@gnu.org>
8484
8485 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8486 for YNegative, if using X toolkit.
8487
427ec082 8488 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8489 from positions returned.
8490
84911999-07-17 Gerd Moellmann <gerd@gnu.org>
8492
8493 * xrdb.c (x_load_resources): Set double-click time defaults
8494 for Motif list boxes from double-click-time.
8495
8496 * fns.c (Vhash_table_tests): Remvoed.
8497 (Qhash_table_test): New.
8498 (syms_of_fns): Initialize Qhash_table_test.
8499 (Fmake_hash_table): Look up user-defined tests in symbol prop
8500 `hash-table-test'.
8501 (Fdefine_hash_table_test): Store test and hash function as
8502 symbol prop `hash-table-test'.
8503 (make_hash_table): Add parameters user_test and user_hash.
8504
8505 * window.c (set_window_buffer): Set window margins for tty
8506 frames, too.
8507 (Fset_window_margins): Ditto.
8508
8509 * term.c (append_glyph): Use glyph area of iterator instead of
8510 always TEXT_AREA.
8511
8512 * dispnew.c (update_frame_1): Add left margin width to cursor
8513 hpos.
8514 (direct_output_for_insert): Ditto.
8515 (direct_output_forward_char): Ditto.
8516
8517 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8518
8519 * dispextern.h (struct glyph_matrix): Add top_line_p.
8520
85211999-07-16 Gerd Moellmann <gerd@gnu.org>
8522
8523 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8524 instead.
8525
8526 * fns.c (cmpfn_eq): Add hash code parameters.
8527 (cmpfn_eql): Ditto.
8528 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8529 (cmpfn_user_defined): Likewise.
8530
85311999-07-15 Gerd Moellmann <gerd@gnu.org>
8532
8533 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8534
8535 * fns.c (maybe_resize_hash_table): Correct computation of
8536 index vector size.
8537 (make_hash_table): Ditto.
8538 (Fmakehash): New.
8539
8540 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8541
8542 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8543 (survives_gc_p): Make it externally visible.
8544 (mark_object): Ditto.
8545
8546 * fns.c (remove_hash_entry): Removed.
8547 (sweep_weak_hash_tables): New.
8548
8549 * print.c (print): Print more information about hash tables.
8550
8551 * xfns.c (image_spec_hash): Removed.
8552 (lookup_image): Use sxhash instead of image_spec_hash.
8553 (image_spec_equal_p): Removed.
8554 (lookup_image): Use Fequal instead of image_spec_equal_p.
8555
85561999-07-14 Gerd Moellmann <gerd@gnu.org>
8557
8558 * lisp.h (P_): Moved to top of file.
8559
8560 * fns.c (make_hash_table): Set new members.
8561
8562 * alloc.c (mark_object): Mark hash table's user_hash_function.
8563 Mark index vector for weak hash tables.
8564
8565 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8566 user_hash_function, cmpfn, and hashfn.
8567
8568 * fns.c (build_hash): Removed.
8569 (hash_test): Removed.
8570 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8571 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8572
85731999-07-13 Gerd Moellmann <gerd@gnu.org>
8574
8575 * alloc.c (survives_gc_p): New.
8576
8577 * print.c (print): Add hash table handling.
8578
8579 * alloc.c (mark_object): Add code to mark hash tables.
8580
8581 * lisp.h (GC_HASH_TABLE_P): New.
8582
8583 * emacs.c (main): Call init_fns.
8584
8585 * fns.c (init_fns): New.
8586
8587 * fns.c: Add hash table implementation.
8588
8589 * lisp.h (PVEC_HASH_TABLE): New.
8590 (struct Lisp_Hash_Table): New.
8591 (XHASH_TABLE): New.
8592 (XSET_HASH_TABLE): New.
8593 (HASH_TABLE_P): New.
8594 (CHECK_HASH_TABLE): New.
8595 (DEFAULT_HASH_SIZE): New.
8596 (DEFAULT_REHASH_THRESHOLD): New.
8597 (DEFAULT_REHASH_SIZE): New.
8598
8599 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8600 (x_write_glyphs): Compute overwritten cursor using real start
8601 and end positions of display.
8602 (x_insert_glyphs): Ditto.
8603
86041999-07-10 Gerd Moellmann <gerd@gnu.org>
8605
8606 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8607
8608 * dispnew.c (blank_row): Add y-position as parameter. Compute
8609 visible height.
8610
8611 * xdisp.c (next_element_from_string): Give padding spaces
8612 a position of -1.
8613
427ec082 8614 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8615 marginals areas on tty frames in a future version.
8616 (allocate_matrices_for_frame_redisplay): Ditto.
8617
8618 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8619 to zero if number of glyphs in the row is <= 1.
8620
86211999-07-09 Gerd Moellmann <gerd@gnu.org>
8622
8623 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8624 into account.
8625
8626 * xdisp.c (handle_display_prop): Don't reset area if handing
8627 a property from a string that came from a `display' property.
8628 (handle_single_display_prop): Don't handle recursive `display'
8629 properties.
8630 (handle_single_display_prop): Handle some display property
8631 forms for terminal frames.
8632 (Qimage): Moved here from xfns.c.
8633
8634 * dispextern.h (struct it): New field string_from_display_prop_p.
8635
8636 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8637 line.
8638
86391999-07-08 Gerd Moellmann <gerd@gnu.org>
8640
8641 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8642
8643 * window.c (set_window_buffer): Set window's vscroll to zero.
8644
8645 * xdisp.c (QCwhen): New.
8646 (display_prop_end): New.
8647 (handle_single_display_prop): Use it.
8648 (debug_method_add): Print buffer name if tracing.
8649 (try_window_reusing_current_matrix): Compute visible height
8650 of reused rows. Fix cursor position calculation in case of
8651 top-line.
8652
8653 * dispextern.h (struct redisplay_interface): Add parameter
8654 cursor_on_p to update_window_end_hook.
8655
8656 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8657
86581999-07-07 Gerd Moellmann <gerd@gnu.org>
8659
427ec082 8660 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8661 doesn't become negative when decrementing it.
8662
8663 * eval.c (Fsignal): Reset redisplaying_p to zero.
8664
8665 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8666 for window update.
8667 (try_window_id): Ditto.
8668
8669 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8670 (x_scroll_run): Ditto.
8671 (any_help_event_p): New.
8672 (x_initialize): Set it to zero.
8673 (XTread_socket): Clear help echo only if any_help_event_p.
8674
8675 * xdisp.c (init_iterator): Set top_line_p.
8676 (start_display): Use correct initial y if top-line is present.
8677 (make_cursor_line_fully_visible): Bug fixes for top-line.
8678 (try_scrolling): Ditto.
8679 (try_window_reusing_current_matrix): Ditto.
8680
8681 * dispextern.h (struct it): Add top_line_p.
8682
8683 * dispnew.c (shift_glyph_matrix): Move some computations out
8684 of the loop.
8685
427ec082 8686 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8687 XFLOATINT.
8688
86891999-07-06 Gerd Moellmann <gerd@gnu.org>
8690
8691 * dispnew.c (update_frame_1): When setting cursor in echo area,
8692 skip only over padding spaces at the end.
8693
8694 * xfaces.c (realize_tty_face): Set face's font_name field to
8695 "tty".
8696
8697 * term.c (update_end): Turn cursor on only if selected window's
8698 cursor_off_p flag is not set.
8699
87001999-07-05 Gerd Moellmann <gerd@gnu.org>
8701
8702 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8703 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8704 (TS_cursor_invisible): New.
8705 (term_init): Initialize TS_cursor_invisible.
8706 (tty_hide_cursor): New.
8707 (tty_show_cursor): New.
8708 (update_end): Show tty cursor.
8709 (update_begin): Hide tty cursor to prevent cursor flickering
8710 during redisplays triggered by timers (stealth fontification).
8711
8712 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8713
8714 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8715 in scroll bars.
8716 (x_handle_toolbar_click): Set modifier bits.
8717
87181999-07-04 Gerd Moellmann <gerd@gnu.org>
8719
8720 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8721 instead of a pointer to a volatile input_event.
427ec082 8722 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8723 declaration of local variable `sp'.
8724 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8725 to kbd_fetch_ptr.
8726
87271999-07-03 Gerd Moellmann <gerd@gnu.org>
8728
8729 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8730 only if buffer is modified. Return quickly if changes are
8731 above window start.
8732
87331999-07-02 Gerd Moellmann <gerd@gnu.org>
8734
8735 * dispextern.h (HSCROLL_WINDOWS): Removed.
8736
8737 * xdisp.c (mark_window_display_accurate): Don't set
8738 w->region_showing.
8739 (redisplay_internal): Don't call redraw_garbaged_frames.
8740
87411999-07-01 Gerd Moellmann <gerd@gnu.org>
8742
8743 * xdisp.c (echo_area_display): Don't display truncation marks
8744 for messages because 20.4 doesn't do it either.
8745 (redisplay_window): Case same window start. Instead of giving
8746 up when cursor is partially visible, make it fully visible.
8747 (mark_window_display_accurate): Some cleanup. Record window's
8748 last cursor information.
8749 (debug_method_add): Improved.
8750 (redisplay_internal): Record last cursor info only if not
8751 consider_all_windows_p.
8752
8753 * dispnew.c (update_window): Update top line after scrolling.
8754 (blank_row): Renamed from make_empty_enabled_row.
8755 (increment_glyph_row_buffer_positions): Increment positions
8756 in buffers, only.
8757
8758 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8759 string.
8760
87611999-06-30 Gerd Moellmann <gerd@gnu.org>
8762
8763 * dispnew.c (update_window): Check that updated row is visible.
8764
8765 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8766 top of window differently.
8767
8768 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8769 if region is showing.
8770
8771 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8772 avoiding matrix reallocation. Set window_vscroll in matrix.
8773
8774 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8775
26901792
DL
8776 * xdisp.c (debug_method_add): New.
8777 (debug_redisplay_method): Removed.
8778 (try_window_reusing_current_matrix): Handle case where old
8779 window start is the same as new window start.
8780
8781 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8782 an array instead of a pointer.
8783
26901792
DL
8784 * xfns.c (Fx_show_tip): Undo previous change.
8785
8786 * xterm.c (x_append_glyph): Clear glyph->u.val.
8787
8788 * dispextern.h (struct glyph): Increase size of face_id bit-field
8789 for CHAR_GLYPH to 12.
8790
87911999-06-29 Gerd Moellmann <gerd@gnu.org>
8792
8793 * xfaces.c (x_charset_registry): Make it externally visible.
8794
87951999-06-28 Gerd Moellmann <gerd@gnu.org>
8796
427ec082 8797 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8798 instead of WINDOW_WANTS_MODELINE_P.
8799
8800 * xterm.c (clear_mouse_face): Make externally visible.
8801
8802 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8803
8804 * xterm.c (expose_line): Handle exposure of top-lines.
8805
8806 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8807 if mouse_face_mouse_frame is null.
8808
8809 * xdisp.c (redisplay_window): If window is echo_area_window,
8810 and update_mode_line is set, update menubar and toolbar.
8811
8812 * dispnew.c (space_glyph): Set its charpos to -1.
8813 (update_frame_1): Ignore trailing padding spaces.
8814
8815 * xdisp.c (next_element_from_c_string): Set position of padding
8816 glyphs to -1.
8817
88181999-06-27 Gerd Moellmann <gerd@gnu.org>
8819
8820 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8821 XQueryColor.
8822
8823 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8824 (set_cursor_from_row): Skip over glyphs having a null object at
8825 the start of rows.
8826 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8827 glyphs.
8828 (handle_invisible_prop): Compute next change only when needed.
8829 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8830 line.
8831
88321999-06-26 Gerd Moellmann <gerd@gnu.org>
8833
8834 * xrdb.c (x_load_resources): Don't set resource for double-click
8835 time.
8836
8837 * xdisp.c (try_window_id): Return quickly if all changes are
8838 below the window's current matrix end.
8839
8840 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8841 parameter.
8842
8843 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8844 in desired not in current matrix.
8845 (try_window_reusing_current_matrix): Rotate matrices starting
8846 at start_vpos instead of 0.
8847
8848 * xterm.c (expose_window): Use window_text_bottom_y.
8849 (fast_find_position): Ditto.
8850
8851 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8852 (try_window_reusing_current_matrix): Ditto.
8853 (get_last_unchanged_at_beg_row): Ditto.
8854 (init_iterator): Ditto.
8855
8856 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8857 more row.
8858 (check_matrix_invariants): Use window_text_bottom_y.
8859 (update_window): Ditto.
8860 (scrolling_window): Ditto.
8861
8862 * xdisp.c (window_text_bottom_y): New.
8863
88641999-06-25 Gerd Moellmann <gerd@gnu.org>
8865
8866 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8867 clearing mouse face.
8868 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8869 event.xcrossing.focus is not set, and focus is in the menu bar,
8870 set focus frame as if event.xcrossing.focus were set.
8871
88721999-06-24 Gerd Moellmann <gerd@gnu.org>
8873
8874 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8875 * keyboard.c (make_lispy_movement): Ditto.
8876
8877 * window.c (coordinates_in_window): Return 4 if on top line.
8878 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8879
8880 * xdisp.c (window_box_height): Subtract top line height.
8881 (window_box): Add top line height to top y position if top line
8882 exists.
8883 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8884 the top line row of the window. Set initial y-position to
8885 window's top line height plus delta.
8886 (start_display): Choose start glyph row depending on whether
8887 window has a top line.
8888 (try_scrolling): Take top line height into account for aggressive
8889 scrolling.
8890 (compute_window_start_on_continuation_line): Take top line into
8891 account.
427ec082 8892 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
8893 trigger a new redisplay.
8894 (try_window_reusing_current_matrix): Take top line into account.
8895 (find_last_row_displaying_text): Ditto.
8896 (get_last_unchanged_at_beg_row): DItto.
8897 (try_window_id): Ditto.
8898 (compute_line_metrics): Ditto.
8899
8900 * dispnew.c (shift_glyph_matrix): Compute visible row height
8901 taking top line of window into account.
8902 (update_window): Update top line. If scrolling_window detects
8903 that all rows are equal, only set cursor.
8904 (update_window_line): Call after_update_window_line_hook if
8905 mode_line_p flag of rows has changed.
8906 (scrolling_window): Add parameter top_line_p. Return -1 if
8907 all rows are equal.
8908 (mode_line_string): Add parameter mode_line_p. Handle strings
8909 in top lines.
8910
8911 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8912 (MATRIX_FIRST_TEXT_ROW): New.
8913 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8914 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8915 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8916 (MATRIX_TOP_LINE_HEIGHT): New.
8917 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8918 (CURRENT_TOP_LINE_HEIGHT): New.
8919 (DESIRED_TOP_LINE_HEIGHT): New.
8920 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8921 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8922 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8923 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8924
8925 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8926 lines.
8927 (x_draw_row_bitmaps): Take top line into account when clearing
8928 bitmap area.
8929 (x_estimate_mode_line_height): Replacement for
8930 x_frame_mode_line_height.
8931 (x_get_glyph_string_clip_rect): Take top line into account.
8932 (x_clear_end_of_line): Ditto.
8933 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8934 top lines.
8935 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8936 (x_erase_phys_cursor): Take top line into account.
8937
8938 * xdisp.c (window_box_height): Subtract top line height if
8939 window wants a top line.
8940 (display_mode_lines): New.
8941 (redisplay_window): Call it.
8942 (display_mode_line): Add parameters face_id and format.
8943
8944 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8945 (MATRIX_TOP_LINE_HEIGHT): New.
8946
8947 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8948
8949 * term.c (estimate_mode_line_height): Renamed from
8950 frame_mode_line_height. Add parameter face_id.
8951 (estimate_mode_line_height_hook): Renamed from
8952 frame_mode_line_height_hook.
8953 (produce_special_glyphs_hook): Removed.
8954 (produce_glyphs_hook): Removed.
8955
89561999-06-23 Gerd Moellmann <gerd@gnu.org>
8957
8958 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8959 (struct glyph_row): Add mode_line_p.
8960
8961 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8962 (Qtop_line): New.
8963 (syms_of_xfaces): Initialize Qtop_line.
8964
8965 * dispextern.h (TOP_LINE_FACE_ID): New.
8966
8967 * buffer.c (init_buffer_once): Set default for
8968 top_line_format to nil.
8969 (init_buffer_once): Init top_line_format.
8970 (default-top-line-format): New.
8971 (top-line-format): New buffer-local variable.
8972
8973 * buffer.h: Add top_line_format.
8974
8975 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8976
89771999-06-17 Dave Love <fx@gnu.org>
8978
8979 * xfns.c: Move the PNG section before the JPEG one to avoid
8980 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 8981
26901792
DL
89821999-06-17 Gerd Moellmann <gerd@gnu.org>
8983
8984 * xfns.c (x_kill_gs_process): Don't free colors.
8985
89861999-06-17 Dave Love <fx@gnu.org>
8987
8988 * s/gnu-linux.h: Zap spurious ~.
8989
89901999-06-16 Gerd Moellmann <gerd@gnu.org>
8991
8992 * xfns.c (gif_load): Improve multi-image support.
8993
89941999-06-15 Gerd Moellmann <gerd@gnu.org>
8995
8996 * xfns.c (gif_load): Support multi-image files.
8997
8998 * Makefile.in (LIBGIF): Use libungif.
8999
9000 * configure.in (HAVE_GIF): Use libungif instead of libgif
9001 because the former doesn't contain patented compression code.
9002
9003 * xdisp.c (compute_window_start_on_continuation_line): Don't
9004 do it if line start is too far away from window start.
9005
90061999-06-14 Gerd Moellmann <gerd@gnu.org>
9007
9008 * buffer.c (init_buffer_once): Set buffer_local_flags for
9009 scroll_*_aggressively.
9010 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
9011 (init_buffer_once): Set defaults for these variables.
9012 (syms_of_buffer): Add default-scroll-*-aggressively.
9013
9014 * buffer.h (scroll_up_aggressively): New.
9015 (scroll_down_aggressively): New.
9016
9017 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
9018 a static PNG library.
9019
9020 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
9021 in case it's a static library.
9022
9023 * Makefile.in (ctagsfiles): Split so that files starting
9024 with an `x' are found before files starting with `w32'.
9025 (ctagsfiles1): New.
9026 (ctagsfiles2): New.
9027 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
9028
9029 * xdisp.c (compute_window_start_on_continuation_line): New.
9030 (redisplay_window): Use it.
9031 (INFINITY): New.
9032 (reseat_to_string): Use it.
9033 (hscroll_window_tree): Ditto.
9034 (compute_window_start_on_continuation_line): Ditto.
9035 (redisplay_window): Don't force display with a new window start.
9036
90371999-06-06 Gerd Moellmann <gerd@gnu.org>
9038
9039 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
9040 if widget not present.
9041
9042 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
9043
90441999-06-04 Gerd Moellmann <gerd@gnu.org>
9045
9046 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
9047 value of realize_basic_faces.
9048 (load_face_font_or_fontset): Store full font name in face.
9049 (realize_default_face): Use full font name.
9050
26901792
DL
9051 * xterm.c (x_produce_glyphs): Set member char_to_display.
9052 (x_append_glyph): Store char_to_display in glyphs.
9053
9054 * dispextern.h (struct it): Add char_to_display.
9055
9056 * xfns.c (x_set_font): Don't call face-set-after-frame-default
9057 if faces haven't been initialized.
9058 (Fx_create_frame): Call face-set-after-frame-default after
9059 faces have been initialized, and widget has been created.
9060
9061 * puresize.h (BASE_PURESIZE): Increased.
9062
90631999-06-01 Gerd Moellmann <gerd@gnu.org>
9064
9065 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
9066 (Finternal_set_lisp_face_attribute): If frame is t when
9067 :font attribute is set, use the selected frame.
9068 (clear_face_cache): Add parameter clear_fonts_p.
9069 (Fclear_face_cache): Add optional parameter thorougly.
9070
9071 * xfaces.c (face_numeric_value): Return -1 if symbol is not
9072 in table.
9073 (Fclear_face_cache): New.
9074 (choose_face_fontset_font): If fontset doesn't contain font
9075 pattern for the given charset, use CHARSET_ASCII.
9076 (Finternal_set_lisp_face_attribute): Fix handling of nil
9077 stipple attribute.
9078 (Finternal_set_lisp_face_attribute): Fix handling of changing
9079 font-related face attributes of the default face.
9080 (set_lface_from_font_name): Set only attributes that aren't
9081 specified.
9082
90831999-05-31 Gerd Moellmann <gerd@gnu.org>
9084
9085 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
9086 font support.
9087 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
9088 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
9089 scalable fonts depending on the setting of SCALABLE_FONTS.
9090 (first_font_matching): List more than one font to find the
9091 first non-scalable matching font.
9092 (sorted_font_list): Let x_face_list_fonts return scalable fonts
9093 depending on SCALABLE_FONTS.
9094 (better_font_p): New parameter compare_pt_p. If zero, don't
9095 compare point sizes of fonts.
9096 (exact_face_match_p) [SCALABLE_FONTS]: New.
9097 (build_scalable_font_name) [SCALABLE_FONTS]: New.
9098 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
9099 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
9100 (syms_of_xfaces): Add scalable-fonts-allowed.
9101
91021999-05-26 Gerd Moellmann <gerd@gnu.org>
9103
9104 * xfns.c (png_load): Let PNG lib handle gamma. Construct
9105 mask only if image contains simple transparency information.
9106 Otherwise, combine image with frame background color.
9107
9108 * configure.in (--with-png, HAVE_PNG): New.
9109
9110 * config.in (HAVE_PNG): New.
9111
9112 * Makefile.in: Add PNG library.
9113
9114 * xfns.c: Add PNG support.
9115
91161999-05-25 Gerd Moellmann <gerd@gnu.org>
9117
9118 * xdisp.c (init_xdisp): Initialize echo_area_message and
9119 previous_echo_area_message to nil.
9120
9121 * keyboard.c (read_char): Rename local variable echo_area_message
9122 because it shadows the global one.
9123
91241999-05-05 Gerd Moellmann <gerd@gnu.org>
9125
9126 * xterm.c (note_mode_line_highlight): Restructured.
9127
9128 * window.c (coordinates_in_window): Handle windows that don't have
9129 a mode line because their buffer's mode-line-format is nil.
9130 Recognize the mode line under x positions that correspond to
9131 flags areas and left scroll bar.
9132
91331999-05-02 Dave Love <fx@gnu.org>
9134
9135 * xterm.c (note_mouse_highlight): Separate help-echo processing
9136 from check on mouse-face so that it works generally.
9137
91381999-04-21 Gerd Moellmann <gerd@gnu.org>
9139
9140 * sound.c (Fplay_sound): Run hook play-sound-hook.
9141 (Qplay_sound_hook): New.
9142
91431999-04-20 Gerd Moellmann <gerd@gnu.org>
9144
9145 * xdisp.c (update_echo_area): Handle echo_area_message.
9146
91471999-04-19 Gerd Moellmann <gerd@gnu.org>
9148
9149 * editfns.c (Fmessage): Use message3.
9150
9151 * print.c (printchar): Set echo_area_message to nil.
9152 (strout): Ditto.
9153
9154 * minibuf.c (read_minibuf): Reset echo message strings to nil.
9155 (Fminibuffer_completion_help): Ditto.
9156
9157 * keyboard.c (cmd_error_internal): Set echo_areA_message.
9158 (command_loop_1): Test echo_areA_message.
9159 (read_char): Ditto.
9160 (record_menu_key): Set echo_area_message to nil.
9161 (Fexecute_extended_command): Test echo_area_message.
9162 (Fexecute_extended_command): Handle echo_area_message.
9163
9164 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
9165 is set.
9166
9167 * editfns.c (Fcurrent_message): If echo_area_message is set,
9168 return a substring of that string.
9169
9170 * dispnew.c (direct_output_for_insert): Test echo_area_message
9171 in addition to echo_area_glyphs.
9172 (set_window_cursor_after_update): Ditto.
9173 (update_frame_1): Ditto.
9174
9175 * alloc.c (Fgarbage_collect): Use message3_nolog to display
9176 old Lisp message string.
9177
9178 * xdisp.c (echo_area_message): New.
9179 (previous_echo_area_message): New.
9180 (syms_of_xdisp): Initialize and staticpro new variables.
9181 (echo_area_display): Display echo_area_message if set.
9182 (message2_nolog): Set echo_area_message and
9183 previous_echo_area_message.
9184 (echo_area_display): Set previous_echo_area_message.
9185 (redisplay_internal): Display echo area if echo_area_message
9186 or previous_echo_area_message are set.
9187 (redisplay_preserve_echo_area): Test/set echo_area_message and
9188 previous_echo_area_message.
9189 (redisplay_window): Test echo_area_message.
9190 (message3_nolog): New.
9191 (message3): New.
9192
9193 * editfns.c (Fformat): Add text properties to the result string
9194 from properties of the format string and properties of string
9195 arguments.
9196
9197 * textprop.c (text_property_list): New.
9198 (add_text_properties_from_list): New.
9199 (extend_property_ranges): New.
9200
92011999-03-29 Gerd Moellmann <gerd@gnu.org>
9202
9203 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9204 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9205 Use these symbols for the box face attribute instead of the
9206 removed ones.
9207
92081999-03-12 Gerd Moellmann <gerd@gnu.org>
9209
9210 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9211 Correct wrong test for slant.
9212
92131999-03-10 Gerd Moellmann <gerd@gnu.org>
9214
9215 * xfaces.c: Use `unspecified' for unspecified face attributes,
9216 use t and nil for on/off.
9217
92181999-03-06 Gerd Moellmann <gerd@gnu.org>
9219
9220 * buffer.c (syms_of_buffer): Extend doc string of
9221 mode-line-format.
9222
9223 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9224 (first_font_matching): New.
9225 (set_lface_from_font_name): Use it if font name is a pattern.
9226 (font_field_wildcard_p): Removed.
9227
9228 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9229 Recompute visible height of rows.
9230
9231 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9232 Don't accept non-strings for help-echo from overlays.
9233
92341999-03-04 Dave Love <fx@gnu.org>
9235
9236 * xterm.c (note_mouse_highlight): Check overlays for help-text
9237 property.
9238 (XTread_socket): Fix compiler warning.
427ec082 9239
26901792
DL
92401999-03-05 Gerd Moellmann <gerd@gnu.org>
9241
427ec082 9242 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9243 overlay to 10. Call overlays_at so that it doesn't try to
9244 extend the vector.
9245
9246 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9247 height.
9248
9249 * dispnew.c (row_equal_p): Compare visible row height, only.
9250 (update_text_area): Draw whole line if visible heights of
9251 rows differ.
9252 (update_window_line): Call after_update_window_line_hook
9253 if visible row height has changed.
9254
9255 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9256 (struct glyph_row): New member visible_height.
9257
9258 * xfaces.c (font_field_wildcard_p): New.
9259 (set_lface_from_font_name): Remove parameter force_p. Accept
9260 font names containing wildcards.
9261
92621999-03-04 Gerd Moellmann <gerd@gnu.org>
9263
9264 * xterm.c (x_after_update_window_line): Clear internal border
9265 when windows_or_buffers_changed.
9266
9267 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9268 buffer has a nil mode_line_format.
9269
92701999-03-03 Gerd Moellmann <gerd@gnu.org>
9271
9272 * xterm.c (x_setup_relief_colors): Use either background color
9273 or specified color.
9274
9275 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9276
9277 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9278
9279 * xterm.c (x_draw_box_rect): New.
9280 (x_draw_glyph_string_box): Renamed from
9281 x_draw_glyph_string_relief. Call x_draw_box_rect.
9282
9283 * xfns.c (QCrelief): New.
9284 (syms_of_xfns): Initialize it.
9285
9286 * dispextern.h (struct glyph): Rename left_shadow_p to
9287 left_box_line_p, right_shadow_p to right_box_line_p.
9288 (MAX_RELIEF_THICKNESS): Removed.
9289 (struct it): Rename members having `relief' in their names
9290 to contain `box' instead.
9291
9292 * xfaces.c (realize_x_face): Handle new box attribute values.
9293 (QCrelief, Qbox): Removed.
9294 (QCshadow, QCcolor, Qraised, Qsunken): New.
9295 (syms_of_xfaces): Initialize new symbols.
9296
92971999-03-02 Gerd Moellmann <gerd@gnu.org>
9298
9299 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9300
9301 * xfaces.c (LFACE_RELIEF): Removed.
9302 (merge_face_vector_with_property): Remove handling of `:relief'.
9303 (Finternal_set_lisp_face_attribute): Ditto.
9304 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9305 (Finternal_get_lisp_face_attribute): Ditto.
9306 (realize_default_face): Ditto.
9307 (lface_hash): Don't compute hash from relief.
9308
9309 * dispextern.h (struct face): Replace member `relief' by
9310 `box_line_width'. Add member `box'.
9311 (face_box_type): New.
9312
9313 * xterm.c (x_produce_glyphs): If face has overline, add overline
9314 thickness + 1 to ascent.
9315
93161999-03-01 Gerd Moellmann <gerd@gnu.org>
9317
9318 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9319 strike-through, and boxes.
9320 (x_draw_glyph_string_underline): Removed.
9321
9322 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9323 (Qoverline, Qstrike_through, Qbox): New.
9324 (syms_of_xfaces): Define these symbols.
9325 (check_lface_attrs): Add checks for overline, strike-through,
9326 and box.
9327 (Finternal_set_lisp_face_attribute): Set new attributes.
9328 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9329 (load_color): Handle new attributes.
9330 (realize_x_face): Ditto.
9331 (merge_face_vector_with_property): Ditto.
9332 (free_face_colors): Ditto.
9333 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9334 (Finternal_get_lisp_face_attribute): Ditto.
9335 (Finternal_lisp_face_attribute_values): Ditto.
9336
9337 * dispextern.h (lface_attribute_index): Add enumerators for
9338 overstrike, strike-through, and box.
9339 (struct face): Add members for overline, strike-through, and
9340 box.
9341
93421999-02-17 Dave Love <fx@gnu.org>
9343
9344 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9345 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9346 files.
9347
93481999-02-16 Gerd Moellmann <gerd@gnu.org>
9349
9350 * keyboard.c (toolbar_items): Call access_keymap with third
9351 parameter 1, so that we don't get inherited toolbar item
9352 definitions.
9353
9354 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9355 the window end vpos when in empty first line of window.
9356
93571999-02-15 Gerd Moellmann <gerd@gnu.org>
9358
9359 * xfaces.c (set_font_frame_param): New.
9360 (Finternal_set_lisp_face_attribute): Call it.
9361
9362Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9363
9364 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9365 Accept specifications of color for underline.
9366
93671999-02-13 Gerd Moellmann <gerd@gnu.org>
9368
9369 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9370 `frame' is t, operate on face defaults for new frames. If it
9371 is nil, operate on the selected frame.
9372
93731999-02-12 Gerd Moellmann <gerd@gnu.org>
9374
9375 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9376 (update_window): Put the call to check_matrix_invariants in #if 0.
9377
9378Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9379
9380 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9381 Remove definition of UNDERLINE_COLOR.
9382
9383Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9384
9385 * xfaces.c (free_face_colors): Free the color for underline.
9386
9387 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9388 to the GC.
9389
9390Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9391
9392 * dispextern.h (UNDERLINE_COLOR): Defined.
9393 (struct face): Added two new members.
9394 underline_color, underline_defaulted_p.
9395
427ec082 9396 * xfaces.c (merge_face_vector_with_property):
26901792 9397 (check_lface_attrs): Accept the string value for underline.
427ec082 9398 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9399
9400 * xfaces.c (load_color): Change the last argument type to enum
9401 lface_attribute_index from int. And addec code for underling coloring.
9402 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9403
26901792
DL
94041999-02-12 Gerd Moellmann <gerd@gnu.org>
9405
9406 * xfns.c (Fx_image_header): Removed.
9407
94081999-02-07 Gerd Moellmann <gerd@gnu.org>
9409
9410 * xterm.c: Don't include <bitmaps/gray>.
9411 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9412
9413 * xfns.c (Fx_image_header): Add missing `\n\'.
9414 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9415
94161999-02-01 Gerd Moellmann <gerd@gnu.org>
9417
9418 * xterm.c (x_scroll_bar_create): Set background pixel from
9419 specified scroll bar color.
9420 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9421
9422 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9423 (x_set_scroll_bar_background): Ditto.
9424
9425 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9426
9427 * xfns.c (x_default_scroll_bar_color_parameter): New.
9428 (Fx_create_frame): Call it.
9429
94301999-01-31 Gerd Moellmann <gerd@gnu.org>
9431
9432 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9433 values in x_output structure.
26901792
DL
9434 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9435 (syms_of_xfns): Initialize these symbols.
9436
9437 * xterm.h (struct x_output): Add scroll bar pixel colors.
9438
9439 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9440 (x_set_scroll_bar_foreground): New.
9441 (x_set_scroll_bar_background): New.
9442
26901792
DL
94431999-01-12 Gerd Moellmann <gerd@gnu.org>
9444
9445 * xdisp.c (handle_single_display_prop): New.
9446 (handle_display_prop): Call it.
9447 (handle_raise_prop): Removed.
9448 (handle_height_prop): Removed.
9449 (handle_space_width_prop): Removed.
9450 (handle_face_prop): Remove handling of raised text.
9451 (handle_display_prop): Do it here.
9452
9453 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9454 (RAISE_PROP_IDX): Removed.
9455 (HEIGHT_PROP_IDX): Removed.
9456 (SPACE_WIDTH_PROP_IDX): Removed.
9457
9458 * xdisp.c (Qdisplay): Replaces Qglyph.
9459 (handle_display_prop): Formerly handle_glyph_prop.
9460
94611999-01-11 Gerd Moellmann <gerd@gnu.org>
9462
9463 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9464 (handle_stop): Set position in display vector to -1. Don't
9465 check overlay strings when set up to deliver characters from a
9466 display vector.
9467 (set_iterator_to_next): At the end of a run of characters from a
9468 display vector, check whether the display vector display replaces
9469 the display of a character.
9470
94711999-01-05 Gerd Moellmann <gerd@gnu.org>
9472
9473 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9474 X window hasn't been created yet.
9475
94761998-12-06 Gerd Moellmann <gerd@gnu.org>
9477
9478 * sound.c: New.
9479
94801998-12-04 Gerd Moellmann <gerd@gnu.org>
9481
9482 * config.in (HAVE_SOUND): New.
9483
9484 * emacs.c (main): Call syms_of_sound and init_sound.
9485
9486 * Makefile.in (obj): Add sound.o.
9487
9488 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9489
9490 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9491 (HAVE_SYS_SOUNDCARD_H): New.
9492
94931998-12-03 Gerd Moellmann <gerd@gnu.org>
9494
9495 * buffer.h (struct buffer): indicate_empty_lines renamed from
9496 indicate_zv_lines.
9497
9498 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9499 (default-indicate-zv-lines): Likewise.
9500
9501 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9502 to indicate_empty_line_p.
9503
9504 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9505 to next_element_from_buffer.
9506
9507 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9508
9509 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9510 and `N-'.
9511
9512 * xfns.c (xbm_scan): New.
9513 (xbm_read_hexint): Removed.
9514 (xbm_read_bitmap_file_data): Use xbm_scan.
9515
9516 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9517
95181998-12-02 Gerd Moellmann <gerd@gnu.org>
9519
9520 * xfns.c (xbm_read_hexint): New.
9521 (xbm_read_bitmap_file_data): New.
9522 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9523 instead of XReadBitmapFileData.
9524
9525 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9526
9527 * xfaces.c (face_with_height): New.
9528
9529 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9530 (eval_form): Renamed from eval_mode_element.
9531 (handle_face_prop): Use it.
9532 (Qheight): Replaces Qsmaller.
9533 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9534 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9535 integer, evaluate it to get the font height to use.
9536
9537 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9538 (struct it): Use `font_height' instead of `smaller'.
9539
95401998-12-01 Gerd Moellmann <gerd@gnu.org>
9541
9542 * xdisp.c (reseat_1): New.
9543 (reseat): Call it.
9544 (move_it_vertically_backward): Ditto.
9545 (redisplay_window): Don't abort when cursor not found in recenter.
9546
95471998-11-30 Gerd Moellmann <gerd@gnu.org>
9548
9549 * xdisp.c (reseat_at_next_visible_line_start): When not
9550 currently delivering display elements from the current buffer,
9551 restore buffer position first.
9552 (init_from_display_pos): Don't set IT's position from the
9553 position passed to this function.
9554
95551998-11-28 Gerd Moellmann <gerd@gnu.org>
9556
9557 * config.in (PROTO): Removed.
9558
9559 * xterm.h: Change PROTO to P_.
9560
95611998-11-26 Gerd Moellmann <gerd@gnu.org>
9562
9563 * xterm.c (take_vertical_position_into_account): New.
9564 (x_produce_image_glyph): Call it.
9565 (x_produce_stretch_glyph): Ditto.
9566 (x_produce_glyphs): Ditto.
9567 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9568 (x_fill_composite_glyph_string): Ditto.
9569 (x_fill_image_glyph_string): Ditto.
9570 (x_fill_stretch_glyph_string): Ditto.
9571
9572 * xdisp.c (display_line): Always compute row height from
9573 max_ascent and max_descent.
9574
9575 * dispextern.h (struct glyph): Add voffset.
9576 (struct it): Replace height by descent, max_height by max_descent.
9577
9578 * xterm.c (x_append_glyph): Set voffset
9579 (x_append_stretch_glyph): Ditto.
9580 (x_produce_image_glyph): Ditto.
9581 (x_produce_glyphs): Take voffset into account.
9582 (x_produce_image_glyph): Ditto.
9583 (x_produce_stretch_glyph): Ditto.
9584
9585 * dispextern.h (struct it): Add voffset.
9586 * xdisp.c (push_it): Save voffset.
9587 (pop_it): Restore it.
9588
9589 * xdisp.c (it_props): Add entry for `raise'.
9590 (handle_raise_prop): New.
9591
9592 * dispextern.h (RAISE_PROP_IDX): New.
9593
9594 * xdisp.c (Qraise): New.
9595 (syms_of_xdisp): Define Qraised.
9596
9597 * xterm.c (x_scroll_bar_move): Clear to the left and right
9598 of toolkit scroll bars differently.
9599 (x_scroll_bar_move): Removed.
9600 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9601
9602 * dispextern.h: Make it compilable --with-x=no.
9603 * alloc.c: Ditto.
9604 * emacs.c: Ditto.
9605 * dispnew.c: Ditto.
9606 * keyboard.c: Ditto.
9607 * term.c: Ditto.
9608 * xdisp.c: Ditto.
9609 * xfaces.c: Ditto.
9610 * xfns.c: Ditto.
9611 * xmenu.c: Ditto.
9612
96131998-11-25 Gerd Moellmann <gerd@gnu.org>
9614
9615 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9616
96171998-11-24 Gerd Moellmann <gerd@gnu.org>
9618
9619 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9620 update slider size, only.
9621 (xm_scroll_callback): Set dragging member of the scroll bar.
9622 (xt_action_hook): Reset last_scroll_bar_part.
9623 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9624
26901792
DL
9625 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9626 window on newly created frames that don't have one.
9627
96281998-11-23 Gerd Moellmann <gerd@gnu.org>
9629
9630 * xdisp.c (restore_overlay_strings): Removed.
9631 (restore_dpvec): Removed.
9632 (init_from_display_pos): Inline both functions above.
9633
9634 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9635 (parse_image_spec): Handle it.
9636 (xbm_format): Use it.
9637 (xpm_format): Ditto.
9638 (pbm_format): Ditto.
9639 (jpeg_format): Ditto.
9640 (tiff_format): Ditto.
9641 (gif_format): Ditto.
9642 (gs_format): Ditto.
9643
9644 * xdisp.c (set_window_cursor): Removed.
9645 (redisplay_internal): Case cursor motion in cursor line of
9646 selected window; use set_cursor_from_row.
9647
96481998-11-22 Gerd Moellmann <gerd@gnu.org>
9649
9650 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9651 into account.
9652
96531998-11-21 Gerd Moellmann <gerd@gnu.org>
9654
9655 * xterm.c (expose_frame): Redraw menu bar window.
9656
9657 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9658 in menu item.
9659
9660 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9661 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9662
9663 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9664 to determine vertical_scroll_bar_extra.
9665 (EmacsFrameSetCharSize): Ditto.
9666 * xfns.c (x_figure_window_size): Ditto.
9667
9668 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9669 (x_draw_bitmap): Ditto.
9670
9671 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9672 * xfaces.c (realize_basic_faces): Realize it.
9673
96741998-11-20 Gerd Moellmann <gerd@gnu.org>
9675
9676 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9677 under LessTif Use the widget of the frame as parent for the
26901792
DL
9678 menu, again.
9679
96801998-11-19 Gerd Moellmann <gerd@gnu.org>
9681
9682 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9683 When EnterNotify, don't generate a mouse movement event if
9684 notification is from a busy-cursor child window.
9685
9686 * xterm.h (struct x_output): Add busy_window, remove cursor.
9687
9688 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9689 Use a transparent window to display the busy-cursor.
9690 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9691
96921998-11-17 Gerd Moellmann <gerd@gnu.org>
9693
9694 * xdisp.c (check_window_end): New, for debugging.
9695 (CHECK_WINDOW_END): New.
9696 (try_window_id): Use it.
9697
9698 * xterm.c (process_expose_from_menu): Return int.
9699
9700 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9701 TOOLBAR_EVENT events in last_nonmenu_event.
9702
97031998-11-16 Gerd Moellmann <gerd@gnu.org>
9704
9705 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9706 window end isn't reliable, so set window_end_valid to nil.
9707 (redisplay_internal): If overlay arrow has changed, set
9708 windows_or_buffers_changed to redisplay thoroughly.
9709
9710 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9711 necessary.
9712
9713 * xfns.c (file_dialog_cb): New.
9714 (Fx_file_dialog): New.
9715 * fileio.c (Fread_file_name): Call it.
9716
427ec082 9717 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9718 selection dialog.
9719
97201998-11-14 Gerd Moellmann <gerd@gnu.org>
9721
9722 * xterm.c (note_mouse_highlight): Don't highlight when popup
9723 is active.
9724
26901792
DL
9725 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9726 timer-event-handler. This busy cursor tends to be anoying if
9727 fontifying stealthily.
9728
9729 * dispnew.c (direct_output_for_insert): Give up if current row
9730 contains trailing whitespace.
9731
97321998-11-13 Gerd Moellmann <gerd@gnu.org>
9733
9734 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9735
9736 * xdisp.c (handle_fontified_prop): New.
9737 (Vfontification_functions): New.
9738 (Qfontification_functions): New.
9739 (it_props): Add handle_fontified_prop.
9740
97411998-11-12 Gerd Moellmann <gerd@gnu.org>
9742
9743 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9744 Otherwise, under LessTif, after the popup has gone, all button
9745 press events come in for the frame's widget, and release events
9746 come in for the edit_widget.
9747 * xterm.c (XTread_socket): Remove workaround for that problem.
9748 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9749 XmScrollBarSetValues.
9750 (SET_SAVED_MENU_EVENT): Give it statement form.
9751
26901792
DL
9752 * xfaces.c (display_message): If waiting_for_input, don't display
9753 the message.
9754
9755 * window.c (scroll_command): If not acting on current_buffer,
9756 make redisplay consider all windows.
9757
9758 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9759
9760 * xdisp.c (handle_glyph_prop): Set it->object for images to
9761 the object having the glyph property.
9762
9763 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9764 invisible.
9765
97661998-11-11 Gerd Moellmann <gerd@gnu.org>
9767
9768 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9769 (x_term_init): Create the gray pixmap.
9770 (x_setup_relief_color): Use it.
9771 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9772 internal border at the top of a frame.
9773 (x_init_glyph_string): Likewise.
427ec082 9774 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9775 full-width lines.
9776 (XTflash): Don't flash the toolbar window.
9777
9778 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9779 in case of ButtonPress events.
9780
97811998-11-10 Gerd Moellmann <gerd@gnu.org>
9782
9783 * xrdb.c (x_load_resources): Add grey background colors as
9784 defaults for menus, scroll bars, and dialogs.
9785
9786 * insdel.c (prepare_to_modify_buffer): Move setting
9787 windows_or_buffers_changed from modify_region here.
9788
9789 * xfns.c (Fx_show_tip): Inhibit redisplay.
9790 (Fx_hide_tip): Ditto.
9791 (Fx_image_header): New.
9792
97931998-11-09 Gerd Moellmann <gerd@gnu.org>
9794
9795 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9796 when clearing current window matrices.
9797
97981998-11-08 Gerd Moellmann <gerd@gnu.org>
9799
9800 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9801 position from a string position. Use the right end position
9802 if the property spans a whole overlay string.
9803
98041998-11-07 Gerd Moellmann <gerd@gnu.org>
9805
9806 * xmenu.c (menubar_selection_callback): Remove workaround for
9807 Lesstif not calling XmNpopdownCallback because it doesn't
9808 handle the case where users don't select any menu item.
9809
26901792
DL
9810 * insdel.c (modify_region): Set windows_or_buffers_changed.
9811
9812 * buffer.c (set_buffer_internal): Don't set
9813 windows_or_buffers_changed.
9814
26901792
DL
9815 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9816
26901792
DL
9817 * xmenu.c (menubar_selection_callback): Add workaround for
9818 Lesstif not calling XmNpopdownCallback.
9819
9820 * xdisp.c (eval_mode_element): New.
9821 (eval_mode_handler): New.
9822 (display_mode_element): Use eval_mode_element.
9823
9824 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9825 Remove code looking at text props of default value.
9826
9827 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9828
26901792
DL
98291998-11-06 Gerd Moellmann <gerd@gnu.org>
9830
427ec082 9831 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9832 BUTTON_TYPE_NONE.
9833 (single_submenu): Likewise for panes and menu items.
9834 (set_frame_menubar): Set button_type of menu bar to none.
9835 (xmenu_show): Likewise.
9836 (single_submenu): Set widget values selected slot.
9837 (xmenu_show): Likewise.
9838
26901792
DL
9839 * xmenu.c (push_menu_item): Add parameters `type' and
9840 `selected'. Store it in menu_items.
9841 (MENU_ITEMS_ITEM_TYPE): New.
9842 (MENU_ITEMS_ITEM_SELECTED): New.
9843 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9844
9845 * xfns.c (clear_image_cache): Get the current time, before
9846 doing anything.
9847 (cache_image): Set prev pointer of next image.
9848 (clear_image_cache): Clear current matrices if any image was
9849 freed.
9850
9851 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9852
9853 * xfns.c (x_set_cursor): New.
9854 (Fx_display_busy_cursor): New.
9855 (Fx_undisplay_busy_cursor): New.
9856
9857 * xterm.h (struct x_output): Add busy_cursor.
9858
9859 * xfns.c (Vx_busy_pointer_shape): New.
9860 (x_set_mouse_color): Create busy cursor.
9861
9862 * process.c (wait_reading_process_input): Show and hide busy
9863 cursor.
9864
9865 * keyboard.c (command_loop_1): Display busy cursor.
9866
9867 * eval.c (Fsignal): Hide busy cursor.
9868
9869 * buffer.c (set_buffer_internal): Don't set
9870 windows_or_buffers_changed.
9871
9872 * xterm.c (redo_mouse_highlight): New.
9873
98741998-11-04 Gerd Moellmann <gerd@gnu.org>
9875
26901792
DL
9876 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9877 (x_build_heuritic_mask): New.
9878 (lookup_image): Call it.
9879
9880 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9881 (previous_help_echo): New.
9882 (XTread_socket): Generate help event with nil message when
9883 leaving a region with help-echo.
9884 (note_mouse_highlight): Handle `help-echo' over text.
9885 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9886 CirculateRequest.
9887 (clear_mouse_face): Don't clear if tooltip is shown.
9888 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9889 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9890
9891 * keyboard.c (Vshow_help_function): New.
9892 (read_char): Use it.
9893
98941998-11-03 Gerd Moellmann <gerd@gnu.org>
9895
9896 * xfns.c (x_create_tip_frame): New.
9897 (Fx_show_tip): New.
9898 (Fx_hide_tip): New.
9899
427ec082 9900 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
9901 a widget.
9902
9903 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9904 to full_width_p. Add internal_border_p.
9905
99061998-11-02 Gerd Moellmann <gerd@gnu.org>
9907
9908 * xterm.c (note_mode_line_highlight): Check the charpos of
9909 the glyph under the mouse pointer before accessing text
9910 properties at that position.
9911
99121998-11-01 Gerd Moellmann <gerd@gnu.org>
9913
9914 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9915
9916 * xdisp.c (auto-raise-toolbar-buttons): New.
9917 (build_desired_toolbar_string): Handle the flag.
9918 (toolbar-button-margin): New.
9919 (toolbar-button-relief): New.
9920 (build_desired_toolbar_string): Use margin and relief.
9921
9922 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9923 for FreeBSD.
9924 (note_mode_line_highlight): New.
9925 (note_mouse_highlight): Call it.
9926
99271998-10-31 Gerd Moellmann <gerd@gnu.org>
9928
9929 * s/freebsd.h (NARROWPROTO): New.
9930
9931 * xdisp.c (display_string): New parameter face_string.
9932 (display_mode_element): When displaying a symbol with a string
9933 value, use text properties from the symbol's default value, maybe.
9934
9935 * xrdb.c (x_load_resources): Add font defaults for menus and
9936 dialogs.
9937
99381998-10-30 Gerd Moellmann <gerd@gnu.org>
9939
9940 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9941
99421998-10-29 Gerd Moellmann <gerd@gnu.org>
9943
9944 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9945 produced for characters with codes < 32 under certain
9946 circumstances.
9947
9948 * xdisp.c (redisplay_window): Handle values of PT in front
9949 of invisible, intangible text.
427ec082 9950 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
9951 displaying lines.
9952 (display_mode_element): Assign to glyphs written for a mode
9953 line spec `%x' as object the Lisp format string, as position
9954 the position of the `%' in that string.
9955 (display_string): If displaying a C string, optionally get
9956 the face to use from a Lisp string.
9957
9958 * xterm.c (expose_window_tree): Include mode line height.
9959
9960 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9961
99621998-10-27 Gerd Moellmann <gerd@gnu.org>
9963
9964 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9965 over mode line.
9966
99671998-10-26 Gerd Moellmann <gerd@gnu.org>
9968
9969 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9970
9971 * xdisp.c (redisplay_window): If mode line height has changed,
9972 arrange for a thorough immediate redisplay using the correct mode
9973 line height.
9974 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9975
9976 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9977 (CURRENT_MODE_LINE_HEIGHT): New.
9978 (DESIRED_MODE_LINE_HEIGHT): New.
9979
9980 * keyboard.c (make_lispy_event): Add string and string position
9981 info to mouse-click events.
9982 (read_key_sequence): Handle `local-map' property of mode line
9983 strings.
9984
9985 * keyboard.h (POSN_STRING): New.
9986
99871998-10-25 Gerd Moellmann <gerd@gnu.org>
9988
9989 * dispnew.c (mode_line_string): Mew.
9990
9991 * xterm.c (xt_action_hook): New.
9992 (x_create_toolkit_scroll_bar): Add action hook.
9993 (xm_scroll_callback): Implement dragging.
9994
9995 * keyboard.c (Qend_scroll): New.
9996 (scroll_bar_parts): Add it.
9997
9998 * termhooks.h (scroll_bar_end_scroll): New.
9999
10000 * xterm.c (XTread_socket): Bug fix.
10001
100021998-10-24 Gerd Moellmann <gerd@gnu.org>
10003
10004 * xdisp.c (redisplay_window): Finish scroll bars after
10005 redisplaying toolbar.
10006
10007 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
10008 (syms_of_keyboard): Add Qbottom.
10009
10010 * termhooks.h (scroll_bar_to_top): New.
10011 (scroll_bar_to_bottom): New.
10012
10013 * xdisp.c (redisplay_window): Always resize toolbar window if
10014 auto_resize_toolbar_p is non-zero.
10015 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
10016 (window_box): New.
10017 (window_box_height): New.
10018 (window_box_width): New.
10019 (window_box_left): New.
10020 (window_box_right): New.
10021 (window_box_edges): New.
10022
100231998-10-23 Gerd Moellmann <gerd@gnu.org>
10024
10025 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
10026 XawScrollbarSetThumb in FreeBSD.
10027 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
10028 to true.
10029
10030 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
10031 is out of range.
10032
10033 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
10034 (x_term_init): Initialize it.
10035
10036 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
10037
10038 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
10039 cursor.
10040
100411998-10-22 Gerd Moellmann <gerd@gnu.org>
10042
10043 * keyboard.c (make_lispy_event): Handle scroll_bar_click
10044 differently when using toolkit scroll bars.
10045
10046 * xterm.c (x_send_scroll_bar_event): New.
10047 (x_scroll_bar_to_input_event): New.
10048 (xaw3d_scroll_callback): New.
10049 (xaw3d_jump_callback): New.
10050 (xm_scroll_callback): New.
10051 (x_toolkit_scroll_p): New.
10052 (XTread_socket): Handle scroll bar client message.
10053 (x_term_init): Initialize Xatom_Scrollbar.
10054 (x_scroll_bar_create): Set cursor.
10055 (xm_scroll_callback):
10056 (x_create_toolkit_scroll_bar): New.
10057 (x_set_toolkit_scroll_bar_thumb): New.
10058 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
10059 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
10060
10061 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
10062
100631998-10-21 Gerd Moellmann <gerd@gnu.org>
10064
10065 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
10066 (XTread_socket): Don't handle mouse button events for scroll bars
10067 if using toolkit scroll bars.
10068 (XTset_vertical_scroll_bar): Set thumb size and position for
10069 Athena scroll bar.
10070
10071 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
10072
10073 * xterm.c (XTread_socket): Dispatch expose event to widget
10074 if using toolkit scroll bars.
10075 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 10076 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
10077 if using toolkit scroll bars.
10078 (x_scroll_bar_move): Handle tookit scroll bars.
10079
10080 * Makefile.in (LIBW): Use Xaw3d if present.
10081
10082 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
10083 (HAVE_XAW3D): New.
427ec082 10084
26901792
DL
10085 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
10086 (HAVE_XAW3D): New.
10087
427ec082 10088 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
10089 right vertical scroll bar.
10090
100911998-10-20 Gerd Moellmann <gerd@gnu.org>
10092
10093 * xfns.c (xpm_load): Support reading XPM images from string
10094 buffers containing data in the same format as an XPM file.
10095 Support `:color-symbols'.
10096 (xpm_format): Add `:data'.
10097 (xpm_keyword_index): Add XPM_DATA.
10098 (syms_of_xfns): Add `:color-symbols'.
10099 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
10100 (xpm_valid_color_symbols_p): New.
10101 (xpm_image_p): Call it.
10102
10103 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
10104 attribute to the image if item is not enabled.
10105
10106 * xfns.c (x_laplace): New.
10107 (x_laplace_read_row): New.
10108 (x_laplace_write_row): New.
10109 (lookup_image): Handle common image attributes here. New
10110 attribute `:algorithm'.
10111
10112 * xfaces.c (clear_face_cache): Call clear_image_cache.
10113
10114 * xterm.c (x_inverted_image_mask): Removed.
10115 (x_draw_image_foreground_1): New.
10116 (x_draw_image_glyph_string): Draw images with mask to a temporary
10117 pixmap to reduce flickering.
10118
10119 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
10120 (display_toolbar_line): Remove parameter `margin'.
10121
101221998-10-19 Gerd Moellmann <gerd@gnu.org>
10123
10124 * xdisp.c (toolbar_lines_needed): New.
10125 (auto-resize-toolbars): New.
10126
10127 * xfns.c (cache_image): Correct call to xrealloc.
10128
10129 * dispnew.c (Fset_toolbar_height): Removed.
10130
10131 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
10132 FRAME_MENU_BAR_LINES.
10133
10134 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
10135 instead of FRAME_MENU_BAR_LINES.
10136 (check_frame_size): Ditto.
10137
10138 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
10139 instead of FRAME_MENU_BAR_LINES.
10140 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
10141 (build_frame_matrix): Ditto.
10142 (change_frame_size_1): Ditto.
10143
10144 * frame.h (FRAME_TOOLBAR_LINES): New.
10145 (FRAME_TOP_MARGIN): New.
10146
10147 * window.c (struct save_window_data): Add frame_toolbar_lines.
10148 (Fset_window_configuration): Handle toolbar lines.
10149 (Fcurrent_window_configuration): Save toolbar lines.
10150
10151 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
10152
10153 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
10154
10155 * frame.h (struct frame): Rename top_margin to toolbar_lines.
10156
10157 * xfns.c (x_frame_parms): Add `toolbar-lines'.
10158 (x_set_toolbar_lines): New.
10159
10160 * keyboard.c (cmd_error_internal): Bug fix.
10161
10162 * xterm.c: Remove double include of syssignal.h.
10163
101641998-10-18 Gerd Moellmann <gerd@gnu.org>
10165
10166 * xterm.c (x_toolbar_item): New.
10167 (x_handle_toolbar_click): Use it.
10168 (note_toolbar_highlight): Use it.
10169
10170 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
10171 and toolbar_items_vectors.
10172
10173 * xterm.c (help_echo): New.
10174 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
10175 (x_set_glyph_string_gc): Handle them.
10176 (x_after_update_window_line): Don't do anything in pseudo-windows.
10177 (x_produce_image_glyph): Take image margin and face relief into
10178 account.
10179 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
10180 (x_draw_glyph_string_background): Optimize case when face has
10181 relief.
10182 (x_setup_relief_color): Take frame instead of glyph string
10183 parameter.
10184 (x_draw_relief_rect): New.
10185 (x_draw_glyph_string_relief): Call it.
10186 (x_draw_image_glyph_string_foreground): Handle margin and image
10187 relief.
10188 (x_draw_image_glyph_string_background): Ditto.
10189 (expose_frame): Redraw toolbar window.
10190 (expose_window): Don't draw cursor for pseudo-windows.
10191 (x_y_to_hpos_vpos): Handle pseudo-windows.
10192 (frame_to_window_pixel_xy): New.
10193 (note_mouse_highlight): Call note_toolbar_highlight.
10194 (x_handle_toolbar_click): New.
10195 (note_toolbar_highlight): New.
10196 (show_mouse_face): Change int parameter `hl' to parameter of
10197 type enum draw_glyphs_face. Handle image highlighting.
10198 (XTread_socket): Return a HELP_EVENT input event if help_echo is
10199 non-nil. Use x_handle_toolbar_click.
10200
10201 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10202
10203 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10204 IMAGE_BOOL_VALUE.
10205 (parse_image_spec): Handle them.
10206 (image_spec_value): Additional parameter found.
427ec082 10207 (free_image): Remove image from the vector `images' of the
26901792
DL
10208 image cache.
10209 (clear_image_cache): Additional parameter force_p.
10210 (Fclear_image_cache): New.
10211 (x_find_image_file): New.
10212 (xbm_load): Handle `:margin' and `:relief'. Use
10213 x_find_image_file.
10214 (xpm_load): Likewise.
10215 (pbm_load): Likewise.
10216 (jpeg_load): Likewise.
10217 (tiff_load): Likewise.
10218 (gif_load): Likewise.
10219
10220 * keyboard.c (Qhelp_echo): New symbol.
10221 (read_char): Handle `toolbar' and `help_echo' events.
10222 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10223 (make_lispy_event): Handle TOOLBAR_EVENT.
10224 (toolbar_items): New.
10225 (process_toolbar_item): New.
10226 (PROP): New.
10227 (init_toolbar_items): New.
10228 (append_toolbar_item): New.
10229 (read_char_x_menu_prompt): Handle `toolbar' event.
10230 (read_key_sequence): Ditto.
10231
10232 * xfaces.c (Qtoolbar): New.
10233 (realize_basic_faces): Realize `toolbar' face.
10234 (face_at_string_position): Remove parameter modeline_p, add
10235 base_face_id.
10236
10237 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10238 to read data.
10239
102401998-10-17 Gerd Moellmann <gerd@gnu.org>
10241
10242 * xdisp.c (init_iterator): Replace parameter modeline_p with
10243 base_face_id.
10244 (next_element_from_string): Call get_next_display_element
10245 recursively after handling text properties.
10246 (prepare_menu_bars): Call update_toolbar.
10247 (update_toolbar): New.
10248 (build_desired_toolbar_string): New.
10249 (display_toolbar_line): New.
10250 (redisplay_toolbar): New.
10251 (toolbar_item_info): New.
10252 (redisplay_window): Call redisplay_toolbar.
10253 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10254
10255 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10256 window.
10257 (clear_desired_matrices): Ditto.
10258 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10259 (free_glyphs): Free matrices of toolbar window.
10260 (update_frame): Update toolbar window.
10261 (change_frame_size_1): Take toolbar into account.
10262 (Fset_toolbar_height): New.
10263
10264 * dispextern.h (struct it): Remove member modeline_p, add
10265 base_face_id.
10266 (struct image): Add members relief and margin.
10267 (IMAGE_ASCENT): Include margin in height.
10268
102691998-10-14 Gerd Moellmann <gerd@gnu.org>
10270
10271 * xfns.c (Fclear_image_cache): New.
10272
10273 * xfaces.c (realize_basic_faces): Realize toolbar face.
10274 (face_at_string_position): Remove parameter modeline_p, add
10275 base_face_id.
10276
10277 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10278
102791998-10-13 Gerd Moellmann <gerd@gnu.org>
10280
10281 * keyboard.c (syms_of_keyboard): Intern `:help'.
10282
102831998-10-12 Gerd Moellmann <gerd@gnu.org>
10284
10285 * xterm.c (note_toolbar_highlight): New.
10286 (note_mouse_highlight): Call it.
10287
10288 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10289 (coordinates_in_window): Handle toolbar window.
10290
10291 * keyboard.c (toolbar_items): New.
10292 (process_toolbar_item): New.
10293 (parse_toolbar_item): New.
10294 (init_toolbar_items): New.
10295 (append_toolbar_item): New.
10296
10297 * dispextern.h (enum toolbar_item_idx): New.
10298 (enum toolbar_item_image): New.
10299
10300 * frame.h (struct frame): Add toolbar-related members.
10301
10302 * xfaces.c (face_at_string_position): Remove assertion that
10303 current_buffer == window's buffer. This is not the case when
10304 called for the toolbar window.
10305
10306 * frame.c (make_frame): Initialize toolbar members.
10307
10308 * alloc.c (mark_object): Mark toolbar data of frames.
10309
10310 * frame.h (struct frame): Add toolbar-related members
10311 toolbar_window, desired_toolbar_items, current_toolbar_items,
10312 desired_toolbar_string, current_toolbar_string,
10313 n_desired_toolbar_items, n_current_toolbar_items. Add
10314 window_height.
10315
10316 * xterm.c (x_after_update_window_line): Don't draw bitmap
10317 areas for pseudo-windows.
10318 (expose_frame): Handle toolbar window.
10319 (expose_window): Don't do cursor stuff for pseudo-windows.
10320
10321 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10322
103231998-10-11 Gerd Moellmann <gerd@gnu.org>
10324
10325 * frame.c (make_frame): Initialize toolbar_window.
10326
10327 * alloc.c (mark_object): Make the toolbar window.
10328
10329 * dispnew.c (update_frame): Update frame's toolbar_window.
10330 (clear_current_matrices): Likewise.
10331 (clear_desired_matrices): Likewise.
10332 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10333 (free_glyphs): Free the toolbar window and its matrices.
10334
10335 * frame.h (struct frame): Add toolbar_window.
10336
10337 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10338 with relief.
10339
103401998-10-10 Gerd Moellmann <gerd@gnu.org>
10341
427ec082 10342 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10343 window start is not in the range BEGV..ZV.
10344
103451998-10-09 Gerd Moellmann <gerd@gnu.org>
10346
10347 * xdisp.c (try_scrolling): Experimentally handle the case
10348 that scroll-preserve-screen-position is set to `always'.
10349
10350 * window.c (Vscroll_preserve_screen_position): Replacement for
10351 scroll_preserve_screen_position.
10352
103531998-10-08 Gerd Moellmann <gerd@gnu.org>
10354
10355 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10356 doesn't like it.
10357 * xdisp.c: Ditto.
10358
10359 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10360
103611998-10-06 Gerd Moellmann <gerd@gnu.org>
10362
427ec082 10363 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10364 i_byte when prompts are inserted into minibuffers.
10365
10366 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10367 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10368 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10369
103701998-10-04 Gerd Moellmann <gerd@gnu.org>
10371
10372 * xdisp.c (make_cursor_line_fully_visible): New.
10373 (try_scrolling): New.
10374 (redisplay_window): Move scrolling code to try_scrolling.
10375 (make_cursor_line_fully_visible): Handle case of window too small
10376 to show a single line.
10377 (redisplay_window): Case forced window start---use
10378 make_cursor_line_fully_visible.
10379 (redisplay_window): Case cursor movement via current matrix.
10380 If ending up on a partially visible line, make it fully visible
10381 instead of recentering.
10382 (try_scrolling): Additional parameter scroll_smoothly.
10383
10384 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10385
103861998-09-28 Gerd Moellmann <gerd@gnu.org>
10387
10388 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10389 instead of y-position for scroll-preserved-screen-position.
10390
103911998-09-07 Gerd Moellmann <gerd@gnu.org>
10392
10393 * dispnew.c (update_frame_line): If current row is not enabled,
10394 write the whole line.
10395
103961998-09-06 Gerd Moellmann <gerd@gnu.org>
10397
10398 * lisp.h (HAVE_FACES): Removed.
10399
10400 * dispextern.h (HAVE_FACES): Removed.
10401
10402 * config.in (HAVE_FACES): Removed.
10403
10404 * dispnew.c (HAVE_FACES): Removed.
10405
10406 * xdisp.c (HAVE_FACES): Removed.
10407
10408 * xfaces.c (HAVE_FACES): Removed.
10409
104101998-09-05 Gerd Moellmann <gerd@gnu.org>
10411
10412 * xdisp.c (init_iterator): If face_change_count is non-zero,
10413 free realized faces.
10414
10415 * xfaces.c (free_all_realized_faces): Make it externally visible.
10416 (Finternal_set_lisp_face_attribute): Increment
10417 windows_or_buffers_changed.
10418
10419 * dispnew.c (direct_output_for_insert): Give up if
10420 face_change_count is non-zero.
10421 (direct_output_forward_char): Ditto.
10422
10423 * xfaces.c (face_change_count): New.
10424
104251998-09-04 Gerd Moellmann <gerd@gnu.org>
10426
10427 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10428 of range.
10429
104301998-09-03 Gerd Moellmann <gerd@gnu.org>
10431
10432 * term.c (Ftty_display_color_p): New.
10433
104341998-09-02 Gerd Moellmann <gerd@gnu.org>
10435
10436 * xfaces.c (Ftty_defined_colors): New.
10437
10438 * xterm.c (x_produce_glyphs): Fix computation of
10439 contains_overlapping_glyphs_p for ASCII.
10440
10441 * dispnew.c (Fshow_cursor): Don't change cursor state while
10442 redisplaying.
10443 (direct_output_for_insert): If a glyph with lbearing or rbearing
10444 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10445
104461998-09-01 Gerd Moellmann <gerd@gnu.org>
10447
10448 * term.c (OUTPUT_IF): Make replacement text have statement form.
10449 (OUTPUT1_IF): Ditto.
10450 (TS_italic_mode, TS_end_italic_mode): Removed.
10451 (TS_bold_mode): Removed.
10452 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10453 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10454 (TS_enter_reverse_mode): New.
10455 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10456 (TN_magic_cookie_glitch_ul): New.
10457 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10458 (TS_exit_attribute_mode): New.
10459 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10460 (TS_set_foreground, TS_set_background): New.
10461 (reset_terminal_modes): Switch colors back to default.
10462 (write_glyphs): Turn face on before writing text, turn it off
10463 afterwards.
10464 (insert_glyphs): Ditto.
10465 (term_init): Initialize new terminal capability variables.
10466 (turn_on_face): Turn a face on.
10467 (turn_off_face): Turn a face off.
10468
10469 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10470 (GLYPH_CHAR): Ditto.
10471 (GLYPH_FACE): Ditto.
10472
10473 * xfaces.c (Vface_tty_color_alist): New.
10474 (face-register-tty-color): New.
10475 (face-clear-tty-colors): New.
10476
10477 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10478 (struct it): Remove member faces_p since we now always have faces.
10479
104801998-08-31 Gerd Moellmann <gerd@gnu.org>
10481
10482 * dispextern.h (struct face): Add tty appearance flags.
10483
10484 * xdisp.c (init_iterator): Always handle faces.
10485 (extend_face_to_end_of_line): Handle tty frames.
10486
10487 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10488 passed in.
10489
104901998-08-30 Gerd Moellmann <gerd@gnu.org>
10491
10492 * xfaces.c (realize_default_face): Use empty strings to indicate
10493 that the face should use the default foreground/background
427ec082 10494 color of the terminal. Fill font-related attributes with
26901792
DL
10495 appropriate values for tty frames.
10496
10497 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10498
10499 * xfaces.c (realize_default_face): If face `default' is not
10500 yet known, create it.
10501
10502 * frame.c (make_terminal_frame): Call init_frame_faces
10503 unconditionally.
10504
10505 * xfaces.c (init_frame_faces): Make it work for tty frames.
10506 (free_frame_faces): Ditto.
10507 (clear_face_cache): Ditto.
10508 (recompute_basic_faces): Ditto.
10509 (Fframe_face_alist): Ditto.
10510 (free_realized_face): Ditto.
10511 (prepare_face_for_display): Ditto.
10512 (clear_face_gcs): Ditto.
10513 (lookup_face): Ditto.
10514 (smaller_face): Ditto.
10515 (realize_default_face): Ditto.
10516 (realize_face): Ditto.
10517 (realize_face): Dispatch to functions depending on the frame type.
10518 (realize_x_face): X way of realizing faces.
10519 (realize_tty_face): TTY way of realizing faces.
10520
105211998-08-29 Gerd Moellmann <gerd@gnu.org>
10522
10523 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10524 compute it instead.
10525 (lookup_face): Remove local variable unibyte_registry.
10526
105271998-08-22 Gerd Moellmann <gerd@gnu.org>
10528
10529 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10530 1 pixel longer.
10531
427ec082 10532 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10533 of face in buffer.
10534
10535 * editfns.c (make_buffer_string_both): If prompt in buffer,
10536 prevent start > end.
10537
10538 * indent.c (Fvertical_motion): Set current_buffer to window's
10539 buffer if it isn't already.
10540
105411998-08-21 Gerd Moellmann <gerd@gnu.org>
10542
10543 * dispextern.h (GLYPH_DEBUG): Use default 0.
10544
10545 * xdisp.c (it_props): New member `smaller'.
10546 (init_iterator): Initialize it.
10547 (Qsmaller): New.
10548 (push_it): Save value of `smaller' value on the stack.
10549 (pop_it): Restore `smaller' from the stack.
10550 (handle_smaller_prop): New.
10551 (handle_face_prop): Use `smaller' text property to select a
10552 suitable face.
10553
10554 * dispextern.h (SMALLER_PROP_IDX): New.
10555 (struct it): Add member `smaller'.
10556
10557 * xfaces.c (smaller_face): New.
10558
10559 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10560
10561 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10562 total pixel width of window differently.
10563
10564 * xdisp.c (init_iterator): Compute width of mode line differently.
10565
10566 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10567 of bitmap areas.
10568
10569 * window.c (Fsplit_window): Include width of bitmap areas in
10570 window width.
10571 (window_internal_width): Subtract width of bitmap areas from
10572 total width.
10573
105741998-08-18 Gerd Moellmann <gerd@gnu.org>
10575
10576 * xdisp.c: Functions reordered for better readability.
10577
10578 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10579 lbearing.
10580 (update_window_tree): Parameter no_scrolling_p removed.
10581 (update_single_window): Ditto.
10582
10583 * xterm.c (x_get_char_font_and_encoding): Renamed to
10584 x_get_char_face_and_encoding.
10585
10586 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10587 if end of current row reached.
10588
10589 * xterm.c (x_get_glyph_face_and_encoding): New.
10590 (x_get_glyph_overhangs): Call it.
10591
10592 * xdisp.c (Qshow_trailing_whitespace): New.
10593 (Qtrailing_whitespace): New.
10594 (enum prop_handled): New.
10595 (struct props, it_props): New.
10596 (next_overlay_change): New. Works like Fnext_overlay_change
10597 but doesn't use xmalloc.
10598 (handle_stop): Restructured.
10599 (face_before_or_after_it_pos): Case iteration over a string: fix
10600 handling of face before current position.
10601
106021998-08-16 Gerd Moellmann <gerd@gnu.org>
10603
10604 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10605 reallocation matrix if fonts_changed_p.
10606 (update_text_area): Handle glyphs with lbearing.
10607
106081998-08-14 Gerd Moellmann <gerd@gnu.org>
10609
10610 * xdisp.c (struct props): New.
10611 (it_props): New.
10612 (compute_prop_info): New.
10613 (handle_stop): New.
10614
10615 * textprop.c (validate_interval_range): Make it externally
10616 visible.
10617
10618 * dispnew.c (direct_output_for_insert): Remove calls
10619 to compute_stop_pos.
10620
10621 * dispextern.h (struct it): Remove check_charpos,
10622 next_overlay_pos. Add what_changes.
10623
106241998-08-10 Gerd Moellmann <gerd@gnu.org>
10625
10626 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10627
10628 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10629 face_default_registry instead.
10630
10631 * syntax.c (scan_sexps_forward): Set up syntax table before
10632 jumping to initial state label.
10633
106341998-08-09 Gerd Moellmann <gerd@gnu.org>
10635
10636 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10637 >= ZV specially.
10638
106391998-08-08 Gerd Moellmann <gerd@gnu.org>
10640
10641 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10642 ends up in partially visible row, try to scroll. Case forced
10643 window start---handle windows not tall enough to show a single
10644 line.
10645
10646 * window.h (struct window): Member dy renamed vscroll.
10647
10648 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10649 fonts.
10650 (x_draw_stretch_glyph_string): Set clipping if using GC that
10651 hasn't set it yet.
10652
10653 * xdisp.c (redisplay_window): Case forced window start -
10654 don't let cursor end on partially visible row. Use desired
10655 matrix to find a suitable PT if it doesn't appear.
10656 (decode_mode_spec): Merged with 20.2.97.
10657 (try_window_reusing_current_matrix): Give up if old or
10658 new display is vscrolled.
10659 (redisplay_window): Reset vscrolling if forced window start,
10660 or if recentering.
10661
106621998-08-06 Gerd Moellmann <gerd@gnu.org>
10663
10664 * xfaces.c (realize_default_face): Use the fontset name instead of
10665 the alias for the family attribute of the default face because we
10666 can't easily determine a good alias from fontset-alias-alist.
10667 (face_fontset): Use Fquery_fontset to find the fontset.
10668 (font_list): Additional pattern parameter.
10669 (try_font_list): Ditto.
10670 (set_lface_from_font_name): Set face family from font foundry
10671 and family.
10672 (font_list): If family contains a hyphen, build pattern differently.
10673
106741998-08-05 Gerd Moellmann <gerd@gnu.org>
10675
10676 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10677 changed instead of setting the frame garbaged.
10678
10679 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10680 all attribute values. This is wrong if values are unspecified,
10681 i.e. nil.
10682
10683 * xdisp.c (try_window_id): Give up if window start changed.
10684
10685 * xfaces.c (make_realized_face): Store registry as Lisp object.
10686 (load_face_font_or_fontset): Compute registry of a face
10687 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10688 possible.
10689
10690 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10691 differently.
10692
10693 * alloc.c (mark_face_cache): Mark the registry member of faces.
10694
10695 * dispextern.h (struct face): Make registry a Lisp string.
10696
106971998-08-04 Gerd Moellmann <gerd@gnu.org>
10698
10699 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10700 multibyte_p. Handle unibyte text.
10701 (x_append_glyph): Set the multibyte_p flag of glyphs.
10702 (x_produce_image_glyph): Ditto.
10703 (x_append_stretch_glyph): Ditto.
10704 (x_produce_glyphs): Handle unibyte text like ASCII.
10705
10706 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10707 stack.
10708 (pop_it): Restore it.
10709 (face_before_or_after_it_pos): Handle the case that the string or
10710 buffer is unibyte.
10711 (get_overlay_strings): Set the multibyte flag of the iterator if
10712 the new overlay string is multibyte.
10713 (get_glyph_property): Likewise.
10714 (get_next_display_element): Don't check for charset changes in
10715 unibyte text.
10716 (append_space): Compute face differently for unibyte text.
10717 (extend_face_to_end_of_line): Don't return quickly if face has
10718 stipple.
10719
10720 * xfaces.c (load_face_font_or_fontset): Store registry and
10721 encoding of the font in the registry member of the face.
10722 (make_realized_face): Additional parameter `registry'.
10723 (free_realized_face): Free the registry of a realized face.
10724 (face_suitable_for_charset_p): Function form of the macro
10725 with the same name in uppercase.
10726 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10727 (choose_face_font): New parameter unibyte_registry.
10728 (choose_face_fontset_font): Ditto.
10729 (realize_default_face): Remember the registry and encoding of
10730 the specified frame font in Vx_unibyte_registry_and_encoding.
10731 (face_at_buffer_position): Handle unibyte.
10732 (face_at_string_position): Likewise.
427ec082 10733 (realize_face): New parameter unibyte_registry.
26901792
DL
10734 (compute_char_face): Handle the unibyte case.
10735
10736 * dispextern.h (struct glyph): Add bit multibyte_p.
10737 (struct face): New member registry holding the registry and
10738 encoding of the X font of the face.
10739 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10740 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10741 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10742 text.
10743 (struct iterator_stack_entry): Add multibyte_p.
10744
10745 * xdisp.c (string_pos): Use string_char_to_byte.
10746 (char_charset): Removed.
10747
107481998-08-03 Gerd Moellmann <gerd@gnu.org>
10749
10750 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10751 rectangle for a block cursor over an image without a mask.
10752 (x_stretch_block_cursor): Added. Non-zero means don't draw
10753 a block cursor over a stretch as wide as that stretch.
10754 (x_draw_stretch_glyph_string): Use it.
10755 (x_draw_hollow_cursor): Ditto.
10756
10757 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10758 (read_minibuf): Add front-sticky text property for prompt.
10759
10760 * xdisp.c (char_charset): Return charset of a character,
10761 depending on whether or not multi-byte characters are enabled.
10762
10763 * xfaces.c (Fset_face_charset_registry): Removed.
10764 (x_charset_registry): Determine registry from charset plist.
10765
107661998-08-02 Gerd Moellmann <gerd@gnu.org>
10767
10768 * xdisp.c (get_next_display_element): Don't check for charset
10769 changes if multi-byte characters are not enabled.
427ec082 10770
26901792 10771 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10772 redisplay interface.
26901792
DL
10773 * keyboard.c (detect_input_pending_run_timers): Likewise.
10774
10775 * dispextern.h (produce_*glyphs_hook): Removed.
10776 * term.c (produce_*glyphs): Ditto.
10777 (cursor_to): Remove pixel position parameters.
10778
10779 * dispnew.c: Remove hooks for window-based redisplay, introduce
10780 a redisplay interface structure.
10781
10782 * xterm.c (x_per_char_metric): Return default char metrics if per
10783 char metric exists but contains a zero width. Adobe Courier seems
10784 to contain such characters.
10785
10786 * xdisp.c (compute_line_metrics): Compute the width of rows
10787 without stopping at glyphs with zero width.
10788
107891998-08-01 Gerd Moellmann <gerd@gnu.org>
10790
10791 * xdisp.c (display_mode_line): If nothing was displayed at all,
10792 display a space.
10793 (hscroll_window_tree): Don't subtract 1 from target point if equal
10794 to ZV and window is not the selected window.
10795
10796 * dispnew.c (check_matrix_invariants): Remove check for window
10797 start at BEGV or after newline. This happens in rare cases
10798 intentionally.
10799
108001998-07-31 Gerd Moellmann <gerd@gnu.org>
10801
10802 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10803 (syms_of_xfaces): Add Vface_default_registry.
10804 (x_charset_registry): Use it.
10805
10806 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10807 (redisplay_window): Use it.
10808
10809 * dispnew.c (update_text_area): Handle lbearing of deleted text
10810 by backing up one character.
10811
108121998-07-30 Gerd Moellmann <gerd@gnu.org>
10813
427ec082 10814 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10815 decide to do nothing.
10816
10817 * xfaces.c (face_at_string_position): Additional parameter
10818 mode_line_p. If non-zero, merge with the mode line face
10819 instead of the default face.
10820 * dispextern.h (struct it): Add mode_line_p.
10821 * xdisp.c (init_iterator): Set it.
10822 (compute_face_in_string): Use it.
10823 (face_before_or_after_it_pos): Handle strings.
10824 (get_next_display_element): Don't look for relief end in C strings.
10825 (next_element_from_string): Deliver string position instead of
10826 buffer position.
10827
10828 * xterm.c (x_flush): Flush X output buffer.
10829 (XTflash): Use it.
10830
10831 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10832 Allow strings as face names.
10833
10834 * xfns.c (forall_images_in_image_cache): Check that frame is
10835 alive.
10836
10837 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10838 it's also called from x_destroy_window. Since this function is
10839 called from X, freeing stuff allocated with xmalloc is dangerous
10840 here, anyway.
10841
10842 * xfaces.c (free_realized_faces): Don't clear current matrices
10843 of a frame being destroyed.
10844
427ec082 10845 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10846 Fset_window_buffer.
10847
10848 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10849 with an additional argument specifying whether or not hooks may
10850 be called.
10851 (Fset_window_buffer): Call it.
10852
10853 * dispnew.c (clear_desired_matrices): Check that frame has
10854 a valid root window before clearing matrices in the window tree.
10855 (clear_current_matrices): Ditto.
10856 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10857 vchild are valid windows if not nil.
10858
10859 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10860 for :inverse-video.
10861 (Finternal_set_lisp_face_attribute): Ditto.
10862 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10863 (Finternal_get_lisp_face_attribute): Ditto.
10864 (Finternal_lisp_face_attribute_values): Ditto.
10865 (syms_of_xfaces): Define the symbol `:reverse-video'.
10866
10867 * xdisp.c (get_glyph_property): Renamed from
10868 fill_iterator_from_glyph_property.
10869 (next_element_from_buffer): Handle case that no `glyph' property
10870 was found correctly.
10871 (display_line): Extend face to end of line only if we have faces.
10872
108731998-07-29 Gerd Moellmann <gerd@gnu.org>
10874
10875 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10876 additional window argument.
10877
10878 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10879 set_iterator_to_previous_visible_line_start.
10880 (reseat_at_next_visible_line_start): Likewise.
10881 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10882 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10883 (compute_face_in_buffer): Renamed from
10884 compute_face_at_iterator_position.
10885 (compute_face_in_string): Renamed from
10886 compute_face_at_iterator_string_position.
10887 (get_space_width): Renamed from get_iterator_space_width.
10888 (next_overlay_string): Renamed from
10889 set_iterator_to_next_overlay_string.
10890 (get_overlay_strings): Renamed from
10891 get_overlay_strings_at_iterator_position.
10892 (restore_overlay_strings): Renamed from
10893 setup_overlay_strings_from_glyph_pos.
10894 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10895 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10896 (init_to_row_start): Renamed from init_iterator_to_row_start.
10897 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10898
10899 * xterm.c: Merge with 20.2.97.
10900 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10901
10902 * dispextern.h (struct glyph): Replace text_pos position with
10903 simple charpos.
10904
10905 * xdisp.c (this_line_start_pos): Use struct text_pos.
10906 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10907 (enum move_it_result): Renamed from move_iterator_result.
10908 (string_pos_nchars_ahead): Compute text_pos in a string from a
10909 known text_pos plus a character delta.
10910 (string_pos): Compute text_pos in string from charpos.
10911 (c_string_pos): Likewise for a C string.
10912 (number_of_chars): Return number of characters in a possibly
10913 multi-byte C string.
10914 (check_it): Renamed from check_iterator. Check that charpos and
10915 bytepos are in sync.
10916 (push_it): Renamed from save_iterator_settings.
10917 (pop_it): Renamed from restore_iterator_settings.
10918 (move_it_.*): Renamed from move_iterator_.*.
10919 (charset_at_position): Take charpos/bytepos into account.
10920 (back_to_previous_line_start): Set iterator to previous line start.
10921 (forward_to_next_line_start): Set iterator to next line start.
427ec082 10922 (back_to_previous_visible_line_start): Renamed from
26901792
DL
10923 move_iterator_previous_visible_line_start.
10924 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10925 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10926 Handle charpos/bytepos.
10927 (compute_face_at_iterator_position): Handle charpos/bytepos.
10928 (compute_face_at_iterator_string_position): Likewise.
10929 (get_iterator_space_width): Likewise.
10930 (load_overlay_strings): Likewise.
10931 (get_overlay_strings_at_iterator_position): Likewise.
10932 (reseat_iterator): Take a text_pos position argument.
10933 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10934 bytepos.
10935 (init_iterator): Take additional bytepos parameter.
10936 (reseat_iterator_to_string): Handle charpos/bytepos.
10937 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10938 (next_element_from_string): Handle charpos/bytepos.
10939 (next_element_from_c_string): Likewise.
10940 (fill_iterator_from_glyph_property): Likewise.
10941 (next_element_from_buffer): Likewise.
10942 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10943 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10944 (move_it_to): Likewise.
10945 (move_it_vertically_backward): Likewise.
10946 (move_it_vertically): Likewise.
10947 (move_it_by_lines): Likewise.
10948 (hscroll_window_tree): Likewise.
10949 (redisplay_internal): Likewise.
10950 (set_cursor_from_row): Likewise.
10951 (redisplay_window): Likewise.
10952 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10953 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10954 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10955 (try_window_id): Handle charpos/bytepos.
10956 (Ftrace_redisplay_toggle): Return Qnil.
10957 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10958 (insert_left_trunc_glyphs): Likewise.
10959
10960 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10961 do a real merge).
10962 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10963 (increment_glyph_row_buffer_positions): Ditto.
10964 (copy_glyph_row_contents): Ditto.
10965 (check_matrix_invariants): Add additional checks for charpos/
10966 bytepos consistency.
10967 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 10968 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
10969 `direction-reversed' in #if 0.
10970
10971 * xterm.h: Merge with 20.2.97.
427ec082 10972
26901792
DL
10973 * frame.h: Merge with 20.2.97.
10974
10975 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10976
10977 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10978 start.
10979 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10980 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10981 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10982 (struct it): Various members renamed from .*pos to .*charpos.
10983 (IT_CHARPOS): Access current buffer character position of an
10984 iterator.
10985 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10986 (IT_STRING_CHARPOS): Access current string character position of
10987 an iterator.
10988 (IT_STRING_BYTEPOS): Access current string byte position of
10989 an iterator.
10990 (globally): Add function prototypes from 20.2.97.
10991
10992 * everywhere: Use P_ instead of PROTO for function prototypes
10993 because everyone else seems to use P_.
10994
10995 * dispextern.h (struct text_pos): Structure describing a charpos/
10996 bytepos position in text.
10997 (BYTEPOS): Access the byte position part of a text_pos.
10998 (CHARPOS): Likewise for the character position.
10999 (SET_TEXT_POS): Set a text_pos from a character and byte position.
11000 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
11001 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
11002 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
11003 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
11004 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
11005 for buffer and string positions.
11006 (struct glyph): Use text_pos.
11007 (struct it): Renamed from display_iterator. Use text_pos.
11008
110091998-07-23 Gerd Moellmann <gerd@gnu.org>
11010
11011 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
11012 pixmap.
11013
110141998-07-21 Gerd Moellmann <gerd@gnu.org>
11015
11016 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
11017 * xterm.c (x_draw_row_bitmaps): Use it.
11018 * dispnew.c (row_equal_p): Ditto.
11019 (update_window_line): Ditto.
11020
11021 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
11022 flag of images.
11023
11024 * dispextern.h (struct image): Removed member loading_failed_p.
11025 It's probably better to have the chance to try to load an image
11026 again.
11027
110281998-07-20 Gerd Moellmann <gerd@gnu.org>
11029
11030 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
11031 at ZV if `indicate-zv-lines' is non-nil.
11032 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
11033
11034 * dispnew.c (row_equal_p): Compare displays_text_p and
11035 ends_at_zv_p flags of rows.
11036 (update_window_line): Ditto.
11037
11038 * buffer.h (struct buffer): New member indicate_zv_lines.
11039
11040 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
11041 (init_buffer_once): New variable `default-indicate-zv-lines'.
11042 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
11043
11044 * xdisp.c (redisplay_window): Don't try moving the cursor
11045 if current glyph row w->last_cursor.vpos isn't enabled.
11046
11047 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
11048
11049 * window.c (Fset_window_vscroll): Allow only negative scroll
11050 values. Others don't seem to make sense, and this way it's easy
11051 to restore a vscroll of zero.
11052
11053 * xterm.c (x_inverted_image_mask): Check that pixmap could be
11054 allocated.
11055 (x_draw_image_glyph_string_background): Don't clip if pixmap
11056 could not be created.
11057
11058 * xfns.c (xbm_load_image_from_file): Check that pixmap could
11059 be created.
11060 (xbm_load): Ditto.
11061 (gs_load): Ditto.
11062
11063 * xterm.c (x_get_glyph_overhangs): Take image and stretch
11064 glyphs into account.
11065
11066 * xfaces.c (realize_default_face): Don't set font family of
11067 the default face from the fontset alias name for `fontset-startup'.
11068
11069 * xfns.c (gs_load): Pass frame's pixel foreground and background
11070 color to the Lisp loader.
11071
110721998-07-19 Gerd Moellmann <gerd@gnu.org>
11073
11074 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
11075 libtiff34.
11076
11077 * configure.in (--with-tiff, HAVE_TIFF): Added.
11078
11079 * config.in (HAVE_TIFF): Added.
11080
11081 * Makefile.in (LIBTIFF): Added.
11082
11083 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
11084
11085 * Makefile.in (LIBJPEG): Added.
11086
11087 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
11088 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
11089 jpeglib.h.
11090
427ec082 11091 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
11092 where the library is installed in /usr/local/lib, e.g. FreeBSD,
11093 configure must be run with `--x-includes=/usr/X11R6/include:
11094 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
11095
110961998-07-18 Gerd Moellmann <gerd@gnu.org>
11097
11098 * config.in (HAVE_JPEG): Added.
11099
11100 * xfns.c (ct_init): Initialize color table used to map RGB colors
11101 from images to X pixel colors.
11102 (ct_free): Free color table.
11103 (ct_lookup): Look an RGB color up.
11104 (ct_allocated_colors): Get vector of allocated colors.
427ec082 11105 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
11106 image specification.
11107 (pbm_scan_number): Scan a decimal ASCII number from a file.
11108 (pbm_load): Load a PPM image.
11109
11110 * window.c (Fset_window_vscroll): Adjust glyph matrix if
11111 necessary. Take canonical character units as parameter.
11112 (Fwindow_vscroll): Return canonical character units.
11113
11114 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
11115 w->dy to display height for which glyph rows must be allocated.
11116
111171998-07-17 Gerd Moellmann <gerd@gnu.org>
11118
11119 * xfaces.c (face_at_string_position): Merge in region face
11120 so that it won't overwrite the font in the region.
11121 (face_at_buffer_position): Ditto.
11122 (realize_basic_faces): Don't realize region face.
11123
11124 * dispextern.h (enum face_id): REGION_FACE_ID removed.
11125
11126 * xterm.c (x_set_glyph_string_background_width): Don't let
11127 cursor face extend to end of line.
11128
11129 * xdisp.c (append_space): If adding space of default face,
11130 make sure glyph ist produced with right face.
11131
11132 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
11133 background color of a glyph string.
11134 (x_draw_glyph_string_background): Call it.
11135 (x_draw_glyph_string_bg_rect): Ditto.
11136 (x_draw_stretch_glyph_string): Ditto.
11137
111381998-07-15 Gerd Moellmann <gerd@gnu.org>
11139
11140 * xdisp.c (init_iterator): Initialize it->current_y to the
11141 window's vscroll w->dy.
11142
11143 * window.c (Fwindow_vscroll): Return number of pixels window
11144 is vscrolled smoothly.
11145 (Fset_window_vscroll): Set the number.
11146
11147 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
11148 to_pos in truncated part of a line.
11149
111501998-07-14 Gerd Moellmann <gerd@gnu.org>
11151
11152 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
11153 doesn't fit on the line, truncate it, despite truncate_lines nil.
11154 (display_line): Ditto.
11155
11156 * xfns.c: Experimental support for Ghostscript images.
11157
11158 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
11159 (XTread_socket): React on events from Ghostscript.
11160 (expose_frame): If width or height are zero, redraw entire frame.
11161 (XTread_socket): Call expose_frame after receiving event from
11162 Ghostscript.
11163
11164 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
11165 for Ghostscript support.
11166
11167 * xdisp.c (redisplay_internal): Return quickly if called
11168 recursively.
11169
11170 * alloc.c (NSTATICS): Increased to 1024.
11171
111721998-07-08 Gerd Moellmann <gerd@gnu.org>
11173
11174 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
11175 iterator's glyph row.
11176 (x_produce_stretch_glyph): Call it.
11177 (x_produce_glyphs): Handle `space-width' property; call
11178 x_append_stretch_glyph.
11179
11180 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
11181 property.
11182 (get_iterator_space_width): Determine value of `space-width'
11183 property at iterator's position.
11184 (reseat_iterator): Call it.
11185 (next_element_from_string): Ditto.
11186 (next_element_from_buffer): Ditto.
11187 (init_iterator): Initialize space_width of iterator.
11188 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
11189 moved, but cursor blinks.
11190 (redisplay_internal): Set w->last_cursor_off_p after update.
11191
11192 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
11193 (struct display_iterator): Add new member space_width.
11194
11195 * window.h (struct window): Add last_cursor_off_p.
11196
111971998-07-07 Gerd Moellmann <gerd@gnu.org>
11198
11199 * Saved.
11200
11201 * window.c (Fpos_visible_in_window_p): Case window not up to
11202 date---return nil if iterator hasn't reached position.
11203
112041998-07-06 Gerd Moellmann <gerd@gnu.org>
11205
11206 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11207 overlays have changed.
11208 (redisplay_window): Case cursor movement. Don't try it if
11209 last_cursor.vpos is out of range.
11210
11211 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11212 way, the display optimization for the line containing the cursor
11213 is used more frequently, esp. when we have a blinking cursor.
11214 (display_line): Don't set this_line_.* variables.
11215
11216 * xterm.c (x_redraw_cursor): Removed.
11217 (x_display_and_set_cursor): Set cursor type depending on
11218 cursor_off_p flag of window.
11219
11220 * dispnew.c (redraw_cursor_hook): Removed.
11221 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11222 member of the selected window.
11223
11224 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11225
11226 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11227 Return glyph area under x/y.
11228 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11229
11230 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11231 after redisplaying.
11232
112331998-07-05 Gerd Moellmann <gerd@gnu.org>
11234
11235 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11236 are all outside of a line of text.
11237 (redisplay_internal): Use it.
11238
112391998-06-30 Gerd Moellmann <gerd@gnu.org>
11240
11241 * xdisp.c (next_element_from_buffer): After skipping over
11242 invisible text, look for the `glyph' property.
11243 (set_iterator_stop_pos): Ignore check positions in front
11244 of an iterator's current position.
11245
11246 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11247 anymore or which are marked as not having valid contents.
11248
11249 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11250 realized faces if new attribute value is equal to old value.
11251
112521998-06-29 Gerd Moellmann <gerd@gnu.org>
11253
11254 * xfaces.c (Finternal_make_lisp_face): Increment
11255 lface_id_to_name_size when lface_id_to_name is reallocated.
11256
112571998-06-27 Gerd Moellmann <gerd@gnu.org>
11258
11259 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11260 as minimum of endpos and overlay_pos.
11261 (load_overlay_strings): Set next_overlay_pos of iterator to
11262 -1 if we don't have to check for more overlay strings.
11263
112641998-05-09 Gerd Moellmann <gerd@gnu.org>
11265
11266 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11267 do anything if iterator is at ZV because scan_buffer doesn't
11268 work otherwise.
11269
11270 * xterm.c (x_encode_char): Inline it.
11271 (x_get_char_font_and_encoding): Simplified.
11272 (x_per_char_metric): Inline it.
11273
11274 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11275
11276 * xdisp.c (get_next_display_element): Check for end of relief
11277 face moved here from next_element_from_buffer.
11278
11279 * xterm.c (x_produce_image_glyph): Add relief thickness.
11280 (x_produce_stretch_glyph): Ditto.
11281
112821998-05-08 Gerd Moellmann <gerd@gnu.org>
11283
11284 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11285 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11286
11287 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11288 from a glyph property.
11289 (x_produce_glyphs): Use it.
11290
11291 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11292
427ec082 11293 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11294 in text area.
11295 (x_produce_glyphs): Ditto.
11296
427ec082 11297 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11298 marginal areas.
11299
427ec082 11300 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11301 background of an image glyph string.
427ec082 11302 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11303 the background of a glyph string.
11304 (x_draw_image_glyph_string_foreground): Draw the foreground of
11305 an image glyph string.
11306 (x_inverted_image_mask): Return the inverted mask of an image.
11307
11308 * xfns.c (x_draw_image): Removed.
11309
11310 * dispextern.h (struct image_type): Remove drawing function.
11311
11312 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11313
11314 * xdisp.c (get_next_display_element): In marginal areas, translate
11315 newlines, tabs, etc. like normal control characters.
11316
11317 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11318 and color.
11319 (free_realized_faces): Set frame garbaged.
11320
11321 * xfaces.c (syms_of_xfaces): Add defsubr for
11322 internal-lisp-face-attribute-values.
11323
113241998-05-07 Gerd Moellmann <gerd@gnu.org>
11325
11326 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11327 full.
11328 (x_produce_image_glyph): Set IT->nglyphs to 1.
11329 (x_draw_image_glyph_string): Use inverted mask to draw background.
11330
11331 * dispextern.h (struct image_type): Additional clipping rect
11332 parameters for drawing functions.
11333
427ec082 11334 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11335 a glyph string.
11336 (x_draw_image_glyph_string): Use it and pass the rect to the
11337 image drawing function.
11338
11339 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11340 first character with `glyph' property as image position. Set
11341 iterator back to that position as long as the image hasn't been
11342 consumed with set_iterator_to_next.
11343 (set_cursor_from_row): Accept when glyph with given position is
11344 not found in the row. Set cursor x to end of line in that case,
11345 so that we can hscroll.
11346 (redisplay_internal): Correct computation of delta by which
11347 positions have changed in redisplay optimization for cursor
11348 row of selected window.
11349
11350 * xdisp.c (display_line): Remove start_pos.
427ec082 11351 (display_line): Fix bug preventing display optimization for
26901792
DL
11352 cursor line of selected window.
11353 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11354 instead.
11355
11356 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11357 (update_text_area): Take glyph pixel width into account
11358 when trying to find a resync point.
11359 (row_equal_p): Compare glyphs in all areas.
11360
113611998-05-06 Gerd Moellmann <gerd@gnu.org>
11362
11363 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11364
11365 * dispextern.h (struct glyph_row): Use unsigned hash value.
11366
11367 * xdisp.c (display_line): Simplified and made faster by setting
11368 the cursor with set_cursor_from_row.
11369 (set_cursor_from_row): Handle rows of desired matrix.
11370
113711998-05-05 Gerd Moellmann <gerd@gnu.org>
11372
11373 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11374 with type != CHAR_GLYPH.
11375 (fill_iterator_from_glyph_property): Return void. Set
11376 method to next_element_from_image.
11377 (next_element_from_image): Dummy function for delivering a
11378 single image id.
11379 (set_iterator_to_next): Add method next_element_from_image.
11380 (redisplay_window): When recentering, and cursor vpos is -1
11381 after display, assume middle of window is in first line displayed
11382 in window, and display again.
427ec082 11383 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11384 the position of the first character having the glyph property.
11385
11386 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11387 * xfns.c (x_draw_image): Use it.
11388 * xterm.c (x_produce_image_glyph): Use it.
11389
11390 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11391
11392 * Makefile.in: Extraneous #define of LIBXPM removed.
11393
11394 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11395 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11396 stretch glyph.
11397 (x_compute_glyph_string_overhangs): Compute overhangs only
11398 for text glyph strings.
11399 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11400 (x_draw_glyph_string): Call it.
11401
11402 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11403 (struct glyph): Add sub-structure for stretchable glyphs.
11404 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11405
11406 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11407 #ifdef HAVE_FACES.
11408
11409 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11410
11411 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11412 setup_iterator_from_glyph_property. Don't do it for terminal
11413 frames.
11414
11415 * xterm.c (x_produce_image_glyph): Produce glyph for image
11416 that can't be loaded.
11417
11418 * xfns.c (lookup_image): If image can't be loaded, set its
11419 width and height so that we can draw a rectangle.
11420 (x_draw_image): Draw a rectangle for images that don't have
11421 a pixmap.
11422 (make_image): Set hash value.
11423 (image_spec_equal_p): Use image_spec_value.
11424
11425 * xterm.c (expose_frame): Don't try to redraw if basic faces
11426 haven't benn realized yet.
427ec082 11427 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11428 is not as tall as row.
11429
114301998-05-04 Gerd Moellmann <gerd@gnu.org>
11431
11432 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11433 (LIBX)[HAVE_X11]: Add LIBXPM.
11434
11435 * xfns.c (xpm_image_p): Implementation of image type functions
11436 for XPM.
11437 (xpm_load): Ditto.
11438
11439 * dispextern.h (struct image): Add mask pixmap for XPM.
11440
11441 * xfns.c (x_draw_image): Handle images with masks.
11442
11443 * configure.in: --with-xpm added. Code detecting -lXpm added.
11444
11445 * config.in: Add HAVE_XPM.
11446
11447 * xfns.c (xbm_draw): Removed.
11448 (x_draw_image): Default implementation for drawing images.
11449 (xbm_keyword_index): Remove XBM_DEPTH.
11450 (xbm_format): Remove `:depth'.
11451 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11452 (xbm_load_image_from_file): Added for the same reason.
26901792 11453
427ec082 11454 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11455 glyph string.
11456 (x_draw_image_glyph_string): Pass ybase to image draw function.
11457
11458 * xfns.c (make_image): Set default baseline.
11459
11460 * xterm.c (x_produce_image_glyph): Compute ascent of image
11461 from its height and baseline percentage.
11462
11463 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11464 (xbm_format): Add description for `:baseline'.
11465 (xbm_image_spec_from_file): Add keywords from original spec to
11466 result.
11467 (xbm_load): Set baseline of image.
11468 (xbm_image_p): Check range for baseline.
11469
11470 * dispextern.h (struct image): Add member baseline.
11471
11472 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11473
11474 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11475
11476 * xdisp.c (get_next_display_element): Do character translations
11477 only if delivering characters.
11478
114791998-05-03 Gerd Moellmann <gerd@gnu.org>
11480
427ec082 11481 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11482 DISP_CHARACTER.
11483
11484 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11485 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11486
114871998-05-02 Gerd Moellmann <gerd@gnu.org>
11488
11489 * xfns.c (prepare_image_for_display): Set image timestamp.
11490 (clear_image_cache): Clear images if image's timestamp +
11491 Vimage_eviction_seconds is > now.
11492 (syms_of_xfns): New variables image-eviction-seconds, and
11493 image-types.
11494 (add_image_format): Add to image-types.
11495 (xbm_load): Support new image spec format.
11496 (x_alloc_image_color): Allocate a color for an image.
11497
11498 * dispextern.h (struct image): Add timestamp.
11499
11500 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11501 vectors of bool-vectors.
11502 (xbm_lisp_object_from_file): Build new format image spec.
11503
115041998-05-01 Gerd Moellmann <gerd@gnu.org>
11505
11506 * xfaces.c (init_frame_faces): Initialize image cache.
11507 (free_frame_faces): Free it.
11508
11509 * xterm.c (x_delete_display): Don't free image cache.
11510
11511 * emacs.c (main): Call init_xfns.
11512
115131998-04-30 Gerd Moellmann <gerd@gnu.org>
11514
11515 * alloc.c (mark_object): Mark objects in image cache.
11516
427ec082 11517 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11518 widget_store_internal_border_width.
11519
11520 * widget.c (widget_store_internal_border): Return void.
11521
11522 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11523 void.
11524 (init_x_parm_symbols): Return void.
11525 (x_report_frame_params): Ditto.
11526 (x_set_border_pixel): Ditto.
11527 (syms_of_xfns): Ditto.
11528 (x_destroy_all_bitmaps): Use xfree instead of free.
11529
11530 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11531
11532 * xterm.c (x_term_init): Initialize image_cache of display info.
11533 (x_delete_display): Free image cache.
11534
11535 * xterm.h (struct x_display_info): Add image_cache.
11536
11537 * xfns.c (make_image_cache): Allocate a new image cache.
11538 (free_image_cache): Free an image cache.
11539 (make_image): Allocate an image.
11540 (free_image): Free an image.
11541
11542 * dispextern.h (struct image): Structure describing an image.
11543 (struct image_cache): Structure describing an image cache.
11544
115451998-04-29 Gerd Moellmann <gerd@gnu.org>
11546
11547 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11548 non-zero if iterator is filled with something to return.
11549 (next_element_from_buffer): Immediately return if
11550 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11551 (next_element_from_string): Likewise.
11552
11553 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11554
11555 * dispextern.h (struct glyph): Add pixmap_id.
11556 (display_element_type): Add DISP_PIXMAP.
11557
11558 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11559 malloc/free.
11560
11561 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11562 (clear_face_cache): Call it.
11563
11564 * xterm.c (x_query_font): Don't look at empty font table slots.
11565 (x_compute_min_glyph_bounds): Likewise.
11566 (x_term_init): Initialize font_table to null.
11567 (x_load_font): Change allocation of font_info structures so
11568 that it is possible to free fonts.
11569
427ec082 11570 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11571 Only free fonts from filled font table entries.
11572
11573 * xfaces.c (best_matching_font): Support use of scalable fonts.
11574 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11575
11576 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11577 and resy.
11578 * xterm.c (x_term_init): Compute resx and resy.
11579
11580 * xfaces.c (split_font_name): Don't reject scalable fonts.
11581
427ec082 11582 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11583 in #if 0.
11584
11585 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11586 point size cannot be determined.
11587
11588 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11589 width over all fonts on a frame.
11590 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11591 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11592 macros.
11593
11594 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11595 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11596 (x_load_font): Use x_compute_min_char_bounds.
11597
11598 * xterm.h (struct x_display_info): New members smallest_char_width
11599 and smallest_font_height.
11600
116011998-04-28 Gerd Moellmann <gerd@gnu.org>
11602
11603 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11604 the same name if GC of face is zero.
11605
11606 * dispextern.h (struct face): Member non_ascii_gc removed.
11607
11608 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11609 for characters < 0177 in default face. Prepare face for
26901792
DL
11610 display before returning it.
11611 (x_produce_glyphs): Use it->charset.
11612 (x_get_char_font_and_encoding): Simplified.
11613 (x_encode_char): Remove parameter `font'.
11614
11615 * xfaces.c (choose_face_font): If registry from charset symbol
11616 doesn't contain a `-', make it a pattern by appending "*-*".
11617
11618 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11619 glyph_check_pos computation to character boundary.
11620
116211998-04-27 Gerd Moellmann <gerd@gnu.org>
11622
11623 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11624
11625 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11626 ASCII face for a given Lisp face id.
11627
11628 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11629 account.
427ec082 11630 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11631 new position is < original position.
11632 (check_iterator_glyph_property): Handle glyph property in strings.
11633 (next_element_from_string): Call above function.
11634 (next_element_from_display_vector): Handle faces in glyphs.
11635 (get_next_display_element): Set face_id of glyphs for
11636 control chars to zero.
11637
11638 * Makefile.in (term.o): Add dependency on dispextern.h.
11639
11640 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11641 (display_line): Handle marginal areas.
11642 (move_iterator_in_display_line_to): Likewise.
11643
11644 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11645
11646 * xfaces.c (face_at_buffer_position): Don't merge with nil
11647 text property.
11648 (face_at_string_position): Ditto.
11649
11650 * dispextern.h (struct display_iterator): Use a stack of saved
11651 values instead of saving check positions etc. individually.
11652
11653 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11654 maybe pop the iterator's stack.
11655 (save_iterator_settings): Push a value on iterator's stack.
11656 (get_overlay_strings_at_iterator_position): Use it.
11657 (restore_iterator_settings): Pop the stack.
11658 (set_iterator_to_next_overlay_string): Use it.
11659
11660 * xfaces.c (try_font_list): Use alternative font families.
11661
116621998-04-26 Gerd Moellmann <gerd@gnu.org>
11663
11664 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11665 font selection matches fonts.
11666 (Fface_font_sort_order): Return the font sort order.
11667 (best_matching_font): Find best matching font based on sort order.
11668 (cmp_font_names): Sort by given sort order.
11669
11670 * dispextern.h (struct display_iterator): New member faces_p.
11671 * xdisp.c (init_iterator): Initialize it->faces_p.
11672 (compute_face_at_iterator_string_position): Use it.
11673 (compute_face_at_iterator_position): Use it.
11674 (init_iterator): Use it.
11675 (display_mode_line): Ditto.
11676
11677 * xdisp.c (get_next_display_element): Put code choosing a face
11678 when the charset changes in #ifdef HAVE_FACES.
11679
427ec082 11680 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11681 lookup_face_for_charset.
11682
11683 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11684 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11685
116861998-04-25 Gerd Moellmann <gerd@gnu.org>
11687
11688 * xfaces.c (best_matching_font): Return the name of the best
11689 matching font in an array of font_name structures.
11690 (choose_face_font): Use it.
11691 (choose_face_fontset_font): Use it.
11692 (find_best_weight_font): If final font found has same weight as
11693 the font we started with, return the original font because it is a
11694 better match for the resolution of the display.
11695 (find_best_slant_font): Likewise.
11696 (merge_face_vector_with_property): Check more invalid attribute
11697 values.
11698 (lface_suitable_for_charset_p): Replaced by a macro with the same
11699 name in upper-case.
11700
117011998-04-24 Gerd Moellmann <gerd@gnu.org>
11702
11703 * dispextern.h (struct face): Member
11704 fontset_chosen_for_realization_p removed.
11705
11706 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11707 end of the collision list, so that we find more specific faces
11708 first.
11709 (lookup_face_for_charset): Look up a new face if face->fontset >=
11710 0, and charset != CHARSET_COMPOSITION.
11711
11712 * xfaces.c (split_font_name): Return zero if point size of font
11713 couldn't be computed.
11714 (realize_default_face): Use ASCII font of a fontset to determine
11715 font-related attributes of the default face.
11716 (face_fontset): Return fontset id for face family.
11717 (font_list): Additional parameter font_pattern. If non-nil,
11718 return fonts matching that pattern.
11719
117201998-04-23 Gerd Moellmann <gerd@gnu.org>
11721
11722 * xfaces.c (choose_face_fontset): If new fontset cannot be
11723 constructed, or fontset name cannot be split, return the id of the
11724 standard fontset.
11725
11726 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11727 When Emacs starts, it may be called for the initial frame which
11728 isn't an X frame.
11729
11730 * dispextern.h (struct face): New members foreground_defaulted_p,
11731 background_defaulted_p.
11732 (struct face): Members `mask' and `cache' removed.
11733
11734 * xfaces.c (load_color): Set them.
11735 (free_face_colors): Check them.
427ec082 11736 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11737 font unknown.
11738
11739 * xfaces.c (free_font): Removed.
11740 (load_face_font_or_fontset): Renamed from load_font.
11741 (load_face_font_or_fontset): Use message2 instead of signalling.
11742 (load_color): Likewise.
11743 (load_pixmap): Likewise.
11744
11745 * xterm.h (struct x_display_info): Add screen_dpi.
11746 * xterm.c (x_term_init): Initialize it.
11747 * xfaces.c (xlfd_point_size): Use it.
11748 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11749 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11750 similar to that of the frame appear first in the result.
11751
11752 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11753 is set for the face to cache, add it to the end of the collision
11754 list.
11755 (try_font_list): If fonts for given family and registry cannot
11756 be found, first try to keep the registry, and choose a different
11757 family.
11758 (choose_face_font): Allow nfonts == 0.
11759 (try_font_list): Give up if no font matches given registry.
11760
117611998-04-22 Gerd Moellmann <gerd@gnu.org>
11762
11763 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11764 font info id of the face.
11765
11766 * xfaces.c (load_font): Set font_info_id.
11767 (realize_face): Ditto.
11768
11769 * dispextern.h (struct face): Change member font_info to
11770 font_info_id.
11771
11772 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11773 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11774
11775 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11776 isn't ASCII, get the ASCII face before adding a space.
11777 (append_space): Likewise.
11778 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11779 to -1 so that it will compute the right face for the truncation
11780 glyphs.
11781
11782 * xfaces.c (realize_face): Set
11783 face->fontset_chosen_for_realization_p.
11784 (lookup_face_for_charset): If fontset wasn't specified originally
11785 and new charset != CHARSET_COMPOSITION, get a new face for that
11786 charset.
11787
11788 * dispextern.h (struct face): New member
11789 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11790 realize_face has chosen a fontset to display composite characters
11791 for a Lisp face not specifying a fontset.
11792
11793 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11794 face and line already filled here. Don't do anything if current
11795 face hasn't a relief or has a background equal to the frame
11796 background.
11797
11798 * xfaces.c (split_font_name): Additional parameter numeric_p.
11799 Don't compute numeric values if it is non-zero.
11800 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11801 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11802 font whose name cannot be split into fields.
11803
118041998-04-21 Gerd Moellmann <gerd@gnu.org>
11805
427ec082 11806 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11807 possibly using less restrictive patterns.
11808 (choose_face_font): Use it.
11809
11810 * xterm.c (x_get_char_font_and_encoding): For charset !=
11811 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11812
11813 * dispextern.h (struct face): New member font_info.
11814
11815 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11816 specifying a fontset as well as those not having a fontset.
11817 (free_font): Make it empty.
11818 (realize_face): Use changed load_font.
11819
11820 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11821 fit for charset, get the right one.
11822
11823 * xfaces.c (load_font): Take frame and name parameter, return
11824 font.
11825 (free_font): Likewise.
11826 (split_font_name): Compute numeric values for height, swidth etc.
11827 (cmp_font_names): Use them.
11828 (find_best_width_font): Ditto.
11829 (find_best_height_font): Ditto.
11830 (find_best_weight_font): Ditto.
11831 (find_best_slant_font): Ditto.
11832 (lface_hash): Add weight, slant, swidth and relief to hash value.
11833 (lface_equal_p): Make it faster.
11834 (lface_from_symbol): Use assq_no_quit.
11835 (Fnote_default_face_changed): Removed.
11836 (cmp_font_names): Use strcmp instead of xstricmp.
11837 (face_charset_registries): Removed.
11838
118391998-04-20 Gerd Moellmann <gerd@gnu.org>
11840
11841 * frame.h (CHECK_FRAME): Give this macro a statement form.
11842 (CHECK_LIVE_FRAME): Ditto.
11843
11844 * xfaces.c (find_best_width_font): Find the best matching font
11845 for a given width.
11846 (find_best_height_font): Likewise for height.
11847 (find_best_weight_font): Likewise for weight.
11848 (find_best_slant_font): Likewise for slant.
11849 (choose_face_font): Use them.
11850 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11851 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11852 global face attributes.
11853
11854 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11855 Lisp face attributes.
11856
118571998-04-19 Gerd Moellmann <gerd@gnu.org>
11858
11859 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11860 and :italic for compatibility.
11861 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11862 :bold and :italic. Handle boolean resource values for
26901792
DL
11863 :underline and :italic.
11864
11865 * xfns.c (display_x_get_resource): Make it externally visible.
11866
11867 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11868 If that frame is non-null, return the frame-local face.
11869 (Finternal_make_lisp_face): Additional frame argument.
11870 (lface_attributes): Get face attributes from global and frame-local
11871 definitions.
11872 (Finternal_lisp_face_equal_p): Additional frame argument.
11873 (merge_lisp_face_vector_with_property): Ditto.
11874 (Frealize_basic_faces): Removed.
11875 (Finternal_get_lisp_face_attribute): Additional frame argument.
11876 (Finternal_lisp_face_p): Ditto.
11877 (load_color) [MSDOS]: Removed because it isn't clear how
11878 to do this for MS-DOS.
11879
11880 * xfaces.c (lface_from_symbol): Get global face definition
11881 from face-global-alist.
11882
11883 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11884 as values for :underline and :inverse-video.
11885 (Finternal_set_lisp_face_attribute): Allow nil values.
11886
118871998-04-17 Gerd Moellmann <gerd@gnu.org>
11888
11889 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11890
11891 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11892 (Finternal_make_lisp_face): Add new face to Vall_faces.
11893
11894 * xdisp.c (echo_area_display): Remove code recomputing faces.
11895 (redisplay_internal): Ditto.
11896 (init_iterator): Do it here.
11897
11898 * xfaces.c (choose_face_font): Check that swidth doesn't change
11899 for subusequent attributes.
11900 (xlfd_point_size): Return int.
11901
11902 * xdisp.c (redisplay_internal, echo_area-display): If realized
11903 faces have been cleared, call recompute_basic_faces.
11904
11905 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11906 face_attributes_changed_p.
427ec082 11907 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
11908 all frames.
11909 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11910
11911 * xdisp.c (redisplay_internal): If face attributes have been
11912 changed since the last redisplay, recompute basic faces.
11913 (echo_area_display): Ditto.
11914
11915 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11916
11917 * xfaces.c (min_char_bounds): If face cache not yet present,
11918 don't try to get font dimensions from faces.
11919
11920 * xterm.c (x_frame_mode_line_height): If face cache not present
11921 set, return default height.
11922
11923 * alloc.c (mark_face_cache): Check for null faces. Correct
11924 index bug.
11925
11926 * dispextern.h (struct face): Renamed from struct rface. Member
11927 underline renamed underline_p. Make it a bit-field.
11928
11929 * xfaces.c (init_frame_faces): Allocate face cache.
11930 (free_frame_faces): Free face cache.
11931 (recompute_basic_faces): Realize basic faces only if face cache is
11932 allocated, i.e. after init_frame_faces has been called.
11933
11934 * frame.c (make_frame): Initialze face cache with null.
11935
11936 * xfaces.c (same_size_fonts): Removed.
11937
427ec082 11938 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
11939 s->gc != 0.
11940 (x_set_mouse_face_gc): Ditto.
11941 (x_set_mode_line_face_gc): Ditto.
11942
427ec082
SS
11943 * xfaces.c (realize_default_face): Return int. Value is
11944 zero if frame params don't contain enough information to
26901792
DL
11945 realize the default face.
11946 (realize_basic_faces): Ditto.
11947 (init_frame_faces): Realize basic faces.
11948
11949 * xfns.c (x_set_font): First store real font name in frame
11950 parameters, then call recompute_basic_faces.
11951
11952 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11953
119541998-04-16 Gerd Moellmann <gerd@gnu.org>
11955
11956 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11957
11958 * xfns.c (Fx_face_fixed_p): Removed.
11959 (Fx_list_fonts): Moved to xfaces.c.
11960
11961 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11962 face_at_buffer_position. Parameter charset removed; always
11963 compute face for CHARSET_ASCII.
11964 (face_at_string_position): Renamed from
11965 compute_face_at_string_pos. Parameter charset removed; always
11966 compute for CHARSET_ASCII.
427ec082 11967 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
11968 face_cache.
11969 (lookup_face): Ditto.
11970 (compute_char_face): Renamed from compute_glyph_face.
11971
11972 * xdisp.c (init_iterator): Initialize charset member.
11973 (reseat_iterator_to_string): Ditto.
11974 (get_charset_at_buffer_position): Determine charset at
11975 buffer position in current_buffer.
11976 (reseat_iterator): Call above function.
11977 (compute_face_at_iterator_position): Call
11978 compute_face_at_buffer_pos.
11979 (compute_face_at_iterator_string_position): Call
11980 compute_face_at_string_pos.
11981 (get_face_from_id): Removed.
11982 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11983 Call get_charset_at_buffer_position.
11984 (reseat_iterator): Determine face if charset at pos differs
11985 from iterator's charset.
11986 (reseat_iterator_to_glyph_pos): Removed.
11987
11988 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11989 Determine charset from buffer position.
11990 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11991 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11992
11993 * dispextern.h (struct display_iterator): Add member charset.
11994
119951998-04-15 Gerd Moellmann <gerd@gnu.org>
11996
11997 * xfaces.c (compute_char_face): Removed.
11998
11999 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
12000 with new parameter list.
12001
12002 * xfaces.c (region_face): Removed.
12003 (allocate_face): Removed.
12004 (copy_face): Ditto.
12005 (face_eql): Removed.
12006 (intern_face): Removed.
12007 (clear_face_cache): Removed.
12008 (load_font): Ditto.
12009 (unload_font): Ditto.
12010 (load_color): Ditto.
12011 (unload_color): Ditto.
12012 (new_computed_face): Ditto.
12013 (intern_computed_face): Ditto.
12014 (ensure_face_ready): Ditto.
12015 (merge_faces): Ditto.
12016 (compute_base_face): Ditto.
12017 (merge_face_list): Ditto.
12018 (Fmake_face_internal): Removed.
12019 (Fset_face_attribute_internal): Ditto.
12020 (face_name_id_number): Removed.
12021 (Fframe_face_alist): Ditto.
12022 (Fset_frame_face_alist): Ditto.
12023 (Finternal_next_face_id): Ditto.
12024
12025 * xterm.h (struct x_output): Remove computed_faces, and
12026 param_faces. Remove macros accessing them.
12027
12028 * xfaces.c: Entirely new face implementation added.
12029
120301998-04-11 Gerd Moellmann <gerd@gnu.org>
12031
12032 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
12033 `charpos'.
12034
120351998-04-10 Gerd Moellmann <gerd@gnu.org>
12036
12037 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
12038 scroll bar window to reduce flickering. Clear entire height.
12039
12040 * xdisp.c (move_iterator_vertically_backward): Set iterator's
12041 current_x and hpos to zero after moving to previous line
12042 start.
12043
120441998-04-03 Gerd Moellmann <gerd@gnu.org>
12045
12046 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
12047
12048 * xfaces.c (xlfd_point_size): Compute relative point size of
12049 fonts from font and frame resolution.
12050 (sort_fonts): New function to sort fonts, temporarily setting
12051 font_frame to the frame in effect.
12052 (xlfd_point_size): Take additional frame parameter to be able
12053 to get at the display's resolution.
12054
12055 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
12056 BLACK_PIX_DEFAULT.
12057 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
12058 screen of display.
12059
120601998-03-31 Gerd Moellmann <gerd@gnu.org>
12061
12062 * xfaces.c (choose_face_fontset): Instantiate fontsets.
12063
12064 * fontset.h: Add external declarations for Vfontset_alias_alist
12065 and Vglobal_fontset_alist.
12066
12067 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
12068 (realize_default_face): If frame parameters contain an artificial
12069 font name naming a fontset, set the family of the default face to
12070 the fontset name given by the registry.
12071
12072 * Makefile.in (alloc.o): Add dependency to dispextern.h.
12073
120741998-03-22 Gerd Moellmann <gerd@gnu.org>
12075
12076 * alloc.c (mark_object): Add function prototype. Add cast to
12077 Lisp_Object pointer in call to mark_object for symbol names
12078 because this otherwise gives a warning from gcc 2.8.1.
12079 (mark_face_cache): Mark Lisp objects in realized faces.
12080
120811998-03-19 Gerd Moellmann <gerd@gnu.org>
12082
12083 * frame.h (struct frame): Add member face_cache.
12084
12085 * alloc.c (mark_object): Mark face cache.
12086 (mark_face_cache): Mark Lisp faces in face cache of frame.
12087
12088 * frame.c (make_frame): Initialize face_cache.
12089 (Fdelete_frame): Free it.
12090
120911998-03-18 Gerd Moellmann <gerd@gnu.org>
12092
12093 * xfaces.c: Very first skeleton of functions for face realization,
12094 face merging, face cache etc.
12095
12096 * dispextern.h (struct rface): Realized faces. Will replace
12097 struct face when tested.
12098 (struct face_cache): Realized face caches.
12099
12100 * xdisp.c (init_iterator): Initialize area member of display
12101 iterator.
12102
121031998-03-17 Gerd Moellmann <gerd@gnu.org>
12104
12105 * xterm.c (x_append_glyph): Use it->area to store glyphs.
12106
12107 * dispextern.h (struct display_iterator): New member area.
12108
12109 * xterm.c (note_overwritten_text_cursor): Note when the text
12110 cursor of a window is overwritten.
12111
12112 * xdisp.c (set_cursor_from_row): If PT is not found in the
12113 row, display the cursor at the start of the row.
12114
12115 * dispnew.c (direct_output_forward_char): Call
12116 set_cursor_from_row.
12117
12118 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
12119 position is not in an overlay string, set iterator's position and
12120 method explicitly so.
427ec082 12121 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
12122 Make it externally visible.
12123 (redisplay_window): Call set_cursor_from_row so that there is only
12124 one place where the cursor position is calculated from a current
12125 row.
12126
12127 * dispextern.h (struct display_iterator): New member
12128 overlay_strings_at_end_processed_p.
12129
12130 * xdisp.c (check_iterator): Perform sanity checks on
12131 display_iterators.
12132 (next_element_from_buffer): Check for overlay strings at ZV.
12133
121341998-03-16 Gerd Moellmann <gerd@gnu.org>
12135
12136 * buffer.c (init_buffer_once): Add left_margin_width and
12137 right_margin_width to buffer_local_flags.
12138
12139 * dispnew.c (margin_glyphs_to_reserve): Function computing
12140 number of glyphs to reserve for a marginal area.
12141 (adjust_glyph_matrix): Call it.
12142 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
12143 is not alive.
12144
12145 * window.c (Fset_window_margins): Allow floats.
12146
12147 * buffer.c (syms_of_buffer): Add buffer-local variables
12148 left-margin-width and right-margin-width. Add defaults
12149 default-left-margin-width and default-right-margin-width.
12150
12151 * buffer.h (struct buffer): New members left_margin_width
12152 and right_margin_width.
12153
12154 * window.c (Fset_window_margins): Make window the last and
12155 optional argument.
12156
12157 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
12158 flag no_marginal_areas_p differently.
12159 (x_clear_end_of_line): Ditto.
12160 (x_draw_glyph_string_relief): Compute width of relief differently
12161 for rows with flag no_marginal_areas_p.
12162
12163 * dispnew.c (update_window_line): Update marginal areas only
12164 for rows that don't have no_marginal_areas_p set.
12165
12166 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
12167 (display_menu_bar): Ditto.
12168
12169 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
12170
12171 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
12172 marginal areas in window-based redisplay.
12173
12174 * dispextern.h (struct glyph_matrix): New members
12175 left_margin_glyphs and right_margin_glyphs.
12176
121771998-03-15 Gerd Moellmann <gerd@gnu.org>
12178
12179 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
12180
12181 * charset.c (non_ascii_char_to_string): Use char type parameters
12182 because the function is used that way from outside. Use unsigned
12183 char internally.
12184
12185 * window.c (change_window_height): Return void.
12186 (make_dummy_parent): Return void.
12187 (init_window_once): Return void.
12188 (syms_of_window): Ditto.
12189 (keys_of_window): Ditto.
12190 (delete_window): Correct return with and without value.
12191
12192 * buffer.c (record_buffer): Return void.
12193
12194 * marker.c (unchain_marker): Return void.
12195
12196 * window.c (unshow_buffer): Return void.
12197 (replace_window): Ditto.
12198 (delete_window): Ditto.
12199
12200 * term.c (delete_glyphs_hook): Void return type.
12201 (ring_bell_hook): Ditto.
12202 (set_terminal_window_hook): Ditto.
12203
12204 * sysdep.c (init_sigio): Return void.
12205
12206 * xterm.c (x_set_window_size): Return void.
12207 (x_calc_absolute_position): Ditto.
12208 (x_set_offset): Ditto.
12209 (x_focus_on_frame): Ditto.
12210 (x_unfocus_frame): Ditto.
12211 (x_make_frame_visible): Ditto.
12212 (x_make_frame_invisible): Ditto.
12213 (x_iconify_frame): Ditto.
12214 (x_destroy_window): Ditto.
12215 (x_wm_set_window_state): Ditto.
12216 (x_wm_set_icon_pixmap): Ditto.
12217 (x_wm_set_icon_position): Ditto.
12218 (x_initialize): Ditto.
12219 (x_error_quitter): Ditto.
12220 (x_destroy_window): Use xfree instead of free.
12221
12222 * keyboard.c (clear_waiting_for_input): Return void.
12223
12224 * xterm.c (x_wm_set_size_hint): Return void.
12225 (x_raise_frame): Ditto.
12226 (refreshicon): Ditto.
12227 (x_error_catcher): Ditto.
12228 (x_clear_errors): Ditto.
12229
12230 * keyboard.c (record_asynch_buffer_change): Return void.
12231
bb6677a8
GM
12232 The first line of the following paragraph was garbled for an
12233 unknown reason. It couldn't be fully reconstructed.
12234
12235 * xterm.c (XTread_socket, XTset_terminal_window): Ditto.
26901792
DL
12236 (x_lower_frame): Ditto.
12237 (x_scroll_bar_clear): Ditto.
12238 (XTflash): Add default case in switch for -Wall.
12239 (construct_mouse_click): Return Qnil.
12240 (cancel_mouse_face): Return void.
12241 (x_queue_event): Use xmalloc instead of malloc.
12242 (x_unqueue_events): Use xfree instead of free.
12243
12244 * ccl.c (ccl_driver): Return int.
12245
12246 * keyboard.c (stop_polling): Return void.
12247 (start_polling): Ditto.
12248
12249 * term.c (keys): Add braces in initializer list for -Wall.
12250
12251 * sysdep.c (tabs_safe_p): Return int.
12252 (init_baud_rate): Return void.
12253
12254 * xterm.c (x_draw_bitmap): Add default case.
12255 (x_setup_relief_colors): Use DefaultScreen instead of
12256 DefaultScreenOfDisplay.
12257 (x_delete_glyphs): Return void.
12258 (construct_menu_click): Put in #if 0 because it isn't called.
12259
12260 * xdisp.c (load_overlay_strings): Remove extraneous argument
12261 in call to qsort.
12262 (get_overlay_arrow_glyph_row): Add missing return value.
12263
12264 * window.c (set_window_height): Return void.
12265 (set_window_width): Ditto.
12266
12267 * sysdep.c (request_sigio): Return void.
12268 (unrequest_sigio): Ditto.
12269 (get_frame_size): Ditto.
12270
12271 * scroll.c (scroll_cost): Return int.
12272 (do_line_insertion_deletion_costs): Return void.
12273
12274 * frame.c (Fdelete_frame): Use xfree instead of free.
12275
12276 * fileio.c (report_file_error): Return void.
12277
12278 * dispnew.c: Make compilable with -Wall.
12279 * term.c: Ditto.
12280
12281 * charset.h (CHAR_LEN): Moved here from dispextern.h.
12282
122831998-03-14 Gerd Moellmann <gerd@gnu.org>
12284
12285 * xterm.c (x_scroll_bar_move): Clear under scroll bar if height is
12286 increased.
12287 (x_setup_relief_color): Free color only for appropriate visual
12288 classes.
12289
12290 * xterm.c (expose_window): Fix calculation of intersection of mode
12291 line rectangle with exposed rectangle.
12292
12293 * xdisp.c (redisplay_window): Don't do cursor movement based
12294 on current matrix if w->last_point is not valid.
12295
122961998-03-09 Gerd Moellmann <gerd@gnu.org>
12297
12298 * xterm.c (expose_line): Redraw mode line and menu lines
12299 differently because they reach into the scroll bar area.
12300
12301 * xdisp.c (redisplay_window): If redisplaying with same window
12302 start, don't accept cursor on partially visible line.
12303
123041998-03-08 Gerd Moellmann <gerd@gnu.org>
12305
12306 * xterm.c (x_set_glyph_string_clipping): Set clip rectangle
12307 for wider mode lines.
12308 (x_draw_glyph_string_relief): Use larger rectangle for mode lines.
12309
12310 * xdisp.c (init_iterator): Increase last_visible_x by vertical
12311 scroll bar width for mode lines.
12312
12313 * dispnew.c (allocate_matrices_for_window_redisplay): Include
12314 vertical scroll bar width in width calculation so that we can
12315 display mode lines wider.
12316
12317 * xdisp.c (redisplay_window): Restore buffers before returning
12318 when fonts have changed.
12319
12320 * dispnew.c (update_window): Mark invisible rows in the current
12321 matrix invalid.
12322
12323 * xdisp.c (try_window_id): Force update of first row displayed
12324 at window end.
12325 (dump_glyph_matrix): Extracted from Fdump_glyph_matrix.
12326
123271998-03-05 Gerd Moellmann <gerd@gnu.org>
12328
12329 * dispextern.h (struct glyph_row): Member max_ascent renamed
12330 ascent. Member max_descent replaced by height.
12331 (struct display_iterator): Member max_descent replaced by height.
12332 (MATRIX_ROW_PIXEL_HEIGHT): Removed.
12333
12334 * xterm.c (x_alloc_lighter_color): Don't free colors if visual
12335 class makes it unnecessary or dangerous.
12336
12337 * xdisp.c (redisplay_window): Case only point has changed, and
12338 point has moved forward. Move forward over overlay strings.
12339 (display_line): Don't set cursor if first glyph from PT is part of
12340 a continuation line.
12341
123421998-02-21 Gerd Moellmann <gerd@gnu.org>
12343
12344 * xdisp.c (start_display): When computing continuation lines
12345 width, add current_x to the continuation lines width because
12346 move_iterator_to will stop in front of the buffer position moved
12347 to.
12348
123491998-02-20 Gerd Moellmann <gerd@gnu.org>
12350
12351 * xdisp.c (redisplay_window): Don't try try_window_id if
12352 windows_or_buffers_changed.
12353
12354 * xterm.c (x_alloc_lighter_color): Try both factor and delta to
12355 determine a color.
12356 (x_setup_relief_color): Allocate/ change one relief.
12357 (x_setup_relief_colors): Call above function.
12358
12359 * xterm.h (struct relief): New structure type holding relief info:
12360 GCs, colors, and whether colors are allocated.
12361
427ec082 12362 * xterm.c (x_alloc_lighter_color): If multiplying by factor
26901792
DL
12363 produces the same color, try adding a delta to RGB values.
12364 (x_setup_relief_colors): Free color cells.
12365
427ec082 12366 * xterm.h (struct x_output): New members white_relief_pixel,
26901792
DL
12367 black_relief_pixel holding the foreground colors allocated for
12368 relief GCs. New members white_allocated_p, black_allocated_p.
12369
12370 * xterm.c (x_scroll_run): Don't set updated_window to null.
12371 This resets updated_window when called from scrolling_window.
12372
12373 * dispextern.h (scroll_run_hook): Renamed from line_dance_hook.
427ec082 12374
26901792
DL
12375 * xterm.c (x_scroll_run): Additional window parameter. Set
12376 and reset updated_window.
12377
12378 * dispnew.c (line_dance_hook): Additional window parameter.
12379
12380 * xdisp.c (try_window_reusing_current_matrix): Don't call
12381 update_window_begin/end here. The end function would display the
12382 cursor on a wrong position and the additional functionality of
12383 update_window_begin is not needed anyway. Just set
12384 updated_window.
12385 (try_window_id): Ditto.
12386
12387 * dispnew.c (Fblink_cursor): Remove call to detect_input_pending.
12388 Don't redraw cursor during redisplay.
12389
12390 * xterm.c (x_scroll_run): Renamed from do_line_dance.
12391
12392 * xdisp.c (redisplay_window): For window-based redisplay, alway
12393 try try_window_id.
12394
12395 * xterm.c (struct glyph_string): New member two_byte_p that is
12396 non-zero if 16-bit drawing functions must be used.
12397 (x_fill_composite_glyph_string): Set it.
12398 (x_fill_glyph_string): Set it.
12399 (x_draw_glyph_string_foreground): Use it.
12400 (x_draw_vertical_border): Make line 1 pixel less tall.
12401 (x_draw_row_bitmaps): Decrease width of area cleared on the left
12402 side by 1 pixel if window is not right-most hasn't vertical scroll
12403 bars.
12404 (x_draw_phys_cursor_glyph): Do nothing if phys_cursor.hpos is
12405 out of bounds.
12406 (x_draw_glyph_string_foreground): Use XDrawImageStringX if
12407 hl == DRAW_CURSOR.
12408
12409 * xdisp.c (start_display): Check that window start is at line
12410 start if GLYPH_DEBUG != 0.
12411
12412 * window.c (window_scroll_pixel_based): Move assertion to
12413 start_display.
12414
124151998-02-19 Gerd Moellmann <gerd@gnu.org>
12416
427ec082 12417 * xterm.c (x_redraw_cursor): Don't redraw the cursor if the
26901792
DL
12418 frame hasn't the focus.
12419
12420 * window.c (make_window): Initialize dy.
12421 (replace_window): Ditto.
12422
12423 * window.h (window): New member dy specifying the amount by which
12424 a window is scrolled "smoothly".
12425
12426 * xterm.c (x_set_glyph_string_clipping): Don't use glyph string's
427ec082 12427 y-position because it can be negative.
26901792
DL
12428 (x_draw_row_bitmaps): Don't clear with negative y-position like
12429 above.
12430 (x_clear_end_of_line): Same theme as above.
12431
12432 * xterm.c (x_alloc_nearest_color): Allocate a color or, if no
12433 exact match exists, the nearest existing color. Patterned after
12434 defined_color.
12435 (x_alloc_lighter_color): Allocate a color that is lighter or
12436 darker than a given color by a specified factor.
427ec082 12437 (x_setup_relief_colors): Set up relief line colors based on
26901792
DL
12438 the background color of a glyph string face.
12439 (x_draw_glyph_string_relief): Call x_setup_relief_colors.
12440
12441 * xfns.c (x_make_gc): Don't allocate relief GCs.
12442 * widget.c (create_frame_gcs): Don't allocate relief GCs.
12443 (setup_frame_gcs): Don't change relief GCs.
12444
12445 * xterm.h (struct x_output): New member relief_background giving
12446 the background pixel color for which relief GCs can be used.
12447 Set by x_setup_relief_colors.
12448
12449 * xterm.c (x_draw_glyph_string_relief): Draw relief differently
12450 for mode and menu lines.
12451
12452 * xdisp.c (set_next_iterator_stop_pos): No longer static.
12453
12454 * dispnew.c (direct_output_for_insert): Call
12455 set_next_iterator_stop_pos after having changed it2.endpos.
12456
124571998-02-17 Gerd Moellmann <gerd@gnu.org>
12458
12459 * dispnew.c (update_window): Work on selected_window, only.
12460
12461 * xterm.c (x_erase_phys_cursor): Return quickly if physical cursor
12462 hpos is >= number of glyphs in the cursor row.
12463
12464 * xdisp.c (try_window_id): Bug fix; update_window_end was not
12465 called.
12466
124671998-02-16 Gerd Moellmann <gerd@gnu.org>
12468
12469 * xdisp.c (init_iterator): Increase last_visible_x for mode lines
12470 and menu lines.
12471
12472 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate
12473 enough glyphs to display a mode line or menu line which draws over
12474 flags areas.
12475
12476 * xterm.c (XTset_vertical_scroll_bar): Use
12477 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT instead of
12478 VERTICAL_SCROLL_BAR_PIXEL_HEIGHT.
427ec082 12479 (x_draw_glyphs): Draw over flags areas when drawing a mode line
26901792
DL
12480 or menu.
12481 (x_set_glyph_string_clipping): Set clipping differently if drawing
12482 a mode line or menu line.
12483
12484 * xterm.h (VERTICAL_SCROLL_BAR_PIXEL_HEIGHT): Removed.
12485
12486 * xterm.c (expose_line): Don't draw bitmaps for mode lines and
12487 menu lines.
12488 (x_scroll_bar_create): Don't clear flags areas.
12489 (x_draw_row_bitmaps): Clear visible row height, only.
12490
12491 * dispnew.c (Fblink_cursor): Moved here from xdisp.c.
12492
124931998-02-15 Gerd Moellmann <gerd@gnu.org>
12494
12495 * dispnew.c (direct_output_for_insert): When checking for tabs in
12496 the line, set it2.endpos to ZV.
427ec082 12497
26901792
DL
12498 * window.h (struct window): New member cursor_off_p.
12499 * xterm.c (x_redraw_cursor): Implementation of redraw_cursor_hook
12500 for X.
12501 * dispnew.c (redraw_cursor_hook): If non-null, function that can
12502 be called to display or erase the cursor.
12503 * xdisp.c (Fblink_cursor): Blink the cursor of a specified window
12504 or selected_window.
12505
12506 * xterm.h (text_cursor_kinds): Enumerators changed to uppercase.
12507
12508 * dispnew.c (update_window_line): Special handling of inverse
12509 lines in #if 0 removed.
12510
12511 * xterm.c (x_write_glyphs): Renamed from XTwrite_glyphs.
12512 (x_insert_glyphs): Renamed from XTinsert_glyphs.
12513 (x_clear_frame): Renamed from XTclear_frame.
12514 (x_clear_end_of_line): Renamed from XTclear_end_of_line.
12515 (x_ins_del_lines): Renamed from XTins_del_lines.
12516 (x_change_line_height): Renamed from XTchange_line_height.
12517 (x_delete_glyphs): Renamed from XTdelete_glyphs.
12518 (x_clear_cursor): Renamed from clear_cursor.
12519 (x_update_begin): Renamed from XTupdate_begin.
12520 (x_update_end): Renamed from XTupdate_end.
12521 (x_update_window_begin): Renamed from XTupdate_window_begin.
12522 (x_update_window_end): Renamed from XTupdate_window_end.
12523 (x_frame_mode_line_height): Renamed from XTframe_mode_line_height.
12524 (x_produce_glyphs): Renamed from XTproduce_glyphs.
12525 (x_produce_special_glyphs): Renamed from XTproduce_special_glyphs.
12526 (x_produce_special_glyphs): Implementation in #if 0 removed.
12527
12528 * xdisp.c (Fdump_redisplay_state): Display row's fill_line_p
12529 flag in the dump.
12530
12531 * dispnew.c (update_text_area): Handling of glyphs with pixel
12532 width zero removed. Decrement desired stop pos if desired row
12533 fills its line.
12534
12535 * xterm.c (x_fill_glyph_string): Handling of glyphs with pixel
12536 width zero removed.
12537 (BUILD_GLYPH_STRINGS): Set glyph string flag
12538 extends_to_end_of_line_p based on row's flag fill_line_p and face
12539 background and stipple. Make sure it works for composite characters.
12540
12541 * xdisp.c (extend_face_to_end_of_line): Set the glyph row flag
12542 fill_line_p. For window-based redisplay, add a space only if
12543 the row is empty so that we know the face to draw.
12544
12545 * dispextern.h (struct glyph_row): New flag fill_line_p. Non-zero
12546 means draw the face of the last glyph in the text area to the
12547 right end of the text area.
12548
12549 * xdisp.c (init_iterator): Show region in window mini-buffer
12550 window refers to.
12551
427ec082 12552 * dispextern.h (struct display_iterator): Redundant member
26901792
DL
12553 region_showing_p removed. Test for region_beg > 0 instead.
12554
12555 * dispnew.c (update_text_area): Clear to end of line if cursor is
12556 beyond the end of the desired line. Necessary because we don't
12557 have a phys_cursor_glyph with which to erase the cursor. We don't
12558 have one because this method of drawing a cursor doesn't work with
12559 lbearing/rbearing.
12560
12561 * xterm.c (XTinsert_glyphs): Block input.
12562
125631998-02-14 Gerd Moellmann <gerd@gnu.org>
12564
12565 * xterm.c (x_set_cursor_gc): Don't use cursor_gc for composite
12566 glyph strings.
12567 (x_draw_glyph_string_background): Fill background with background
12568 pixel for the first glyph of a composite character.
12569
12570 * xdisp.c (try_window): Change return type to int. Value is zero
12571 if fonts were loaded during redisplay.
12572 (redisplay_window): Return if fonts have been loaded during
12573 redisplay.
12574 (append_space): New parameter default_face_p.
12575
125761998-02-13 Gerd Moellmann <gerd@gnu.org>
12577
12578 * dispnew.c (adjust_glyph_matrix): In case of optimizing C-x 2,
12579 don't let a partially visible line in a current matrix stay
12580 enabled.
12581
125821998-02-09 Gerd Moellmann <gerd@gnu.org>
12583
12584 * minibuf.c (read_minibuf): Put access to minibuffer_prompt_length
12585 in #if PROMPT_IN_BUFFER.
12586
12587 * xdisp.c (display_line): If row ends in ZV, make the space
12588 that is added to place the cursor on it appear in default face.
12589
427ec082 12590 * xterm.c (expose_area): New function redrawing a single
26901792
DL
12591 glyph row area.
12592 (expose_line): Use it to redraw all areas of a row.
12593
12594 * dispextern.h (move_operation_enum): New enum
12595 move_operation_enum.
12596
12597 * window.c (window_scroll_pixel_based): Remove now unnecessary
12598 code that made sure that it->current_y doesn't become negative.
12599
12600 * xdisp.c (move_iterator_in_display_line_to): New parameter
12601 op. Special meaning of to_pos <= 0 and to_x < 0 removed.
12602 (move_iterator_to): Ditto.
12603
12604 * dispextern.h (struct glyph_matrix): New member window_width.
12605
12606 * dispnew.c (adjust_glyph_matrix): Set window_width. Optimize
12607 case of changing window height.
12608
12609 * xterm.c (x_draw_row_bitmaps): Don't clear vertical window
427ec082 12610 border to the left.
26901792
DL
12611
12612 * dispextern.h (struct glyph_row): Remove right_to_left_p. RMS
12613 says this aspect of Emacs is currently redesigned.
12614
12615 * xterm.c (x_clip_to_row): Subtract 1 from clip width if we
12616 have to draw a vertical border.
12617
12618 * window.c (window_scroll_pixel_based): When scrolling down by
12619 screen-fulls, make sure it.current_y doesn't get negative because
12620 this would confuse move_iterator_vertically.
12621
12622 * xdisp.c (move_iterator_vertically_backward): Bug fix for
12623 the case continuation lines are involved.
12624 (try_window_id): Don't set the cursor into scroll margins.
12625
126261998-02-08 Gerd Moellmann <gerd@gnu.org>
12627
12628 * xterm.c (x_append_glyph): Don't compute left_overhang and
12629 right_overhang.
12630 (XTproduce_glyphs): left_overhang and right_overhang removed.
12631 Set it->glyph_row->contains_overlapping_glyphs_p.
12632
12633 * xdisp.c (Fdump_redisplay_state): Output of glyph->left_overhang
12634 and right_overhang removed.
12635
12636 * dispextern.h (struct glyph_row): New member
12637 contains_overlapping_glyphs_p used to optimize glyph drawing.
12638 (struct display_iterator): left_overhang and right_overhang
12639 removed.
12640 (struct glyph): Ditto.
12641
12642 * xterm.c (x_draw_relief): Removed.
12643 (x_draw_bitmap): Renamed from draw_bitmap.
12644 (x_draw_glyphs): Completely new implementation of draw_glyphs
12645 capable of handling arbitrary lbearing and rbearing values.
12646 Several sub-functions not mentioned here.
12647
126481998-01-30 Gerd Moellmann <gerd@gnu.org>
12649
12650 * xterm.c (x_erase_phys_cursor): Clear area under the cursor only
427ec082 12651 if displaying hollow box cursor. draw_glyphs should handle
26901792
DL
12652 other cases.
12653 (draw_glyphs): Move start to the left and end to the right if they
427ec082 12654 overlap with previous or following characters.
26901792 12655 (draw_glyphs): If background is cleared for hl == DRAW_CURSOR,
427ec082 12656 make sure XDrawString uses function GXset. Otherwise the
26901792
DL
12657 character under the cursor would be invisible.
12658 (x_draw_bar_cursor): Don't draw over previous character if it
12659 has right_overhang.
12660
12661 * window.c (get_phys_cursor_glyph): Return the glyph under a
12662 window's physical cursor.
427ec082 12663
26901792
DL
12664 * xterm.c (x_draw_hollow_cursor): Use get_phys_cursor_glyph.
12665 (x_draw_bar_cursor): Ditto.
12666 (x_erase_phys_cursor): Ditto.
12667 (x_phys_cursor_in_rect_p): Ditto.
12668 (x_display_and_set_cursor): Remove reference to w->phys_cursor_glyph.
12669
12670 * window.c (make_window): Remove reference to phys_cursor_glyph.
12671 (replace_window): Ditto.
12672
12673 * window.h (struct window): Remove phys_cursor_glyph. There is
427ec082 12674 now always a glyph present for placing the cursor on it in
26901792
DL
12675 each glyph row, even at the end of a line.
12676
12677 * xdisp.c (append_space): Function to add a space to an iterators
12678 glyph row.
12679 (display_line): Add spaces at the end of lines that are used to
12680 place the cursor on them.
12681 (compute_line_metrics): If row consists of a space only that was
427ec082 12682 added to place the cursor on it, use that space's height as the
26901792
DL
12683 line height.
12684
126851998-01-29 Gerd Moellmann <gerd@gnu.org>
12686
12687 * xdisp.c (Fdump_redisplay_state): Dump left and right overhang of
12688 glyphs.
12689
126901998-01-28 Gerd Moellmann <gerd@gnu.org>
12691
12692 * xterm.c (x_append_glyph): Set overhang of glyph from iterator.
12693 (XTproduce_glyphs): Set it->left_overhang and it->right_overhang.
12694
12695 * dispextern.h (struct glyph): Add left_overhang and
427ec082 12696 right_overhang.
26901792
DL
12697 (struct display_iterator): Ditto.
12698
12699 * dispnew.c (direct_output_for_insert): Give up if newly inserted
12700 glyphs have different ascent or descent than original row.
12701
12702 * xdisp.c (compute_line_metrics): Compute row->max_ascent and
12703 row->max_descent only if unknown.
12704 (display_line): Compute row->max_ascent and row->max_descent.
12705 (display_string): Ditto.
12706
12707 * window.h (struct window): New members phys_cursor_ascent and
427ec082 12708 phys_cursor_descent.
26901792
DL
12709
12710 * xterm.c (x_phys_cursor_in_rect_p): Use them.
12711 (x_draw_hollow_cursor): Ditto.
12712 (x_erase_phys_cursor): Ditto.
12713 (x_display_and_set_cursor): Set them.
12714 (x_append_glyph): Don't set glyph members that were removed.
12715
12716 * dispextern.h (struct glyph): Members ascent, descent,
12717 contributes_to_line_height_p removed.
12718
127191998-01-25 Gerd Moellmann <gerd@gnu.org>
12720
12721 * dispextern.h (DEFAULT_FACE_ID, MODE_LINE_FACE_ID): Symbolic
12722 names for face ids of frame default face and mode line face.
12723
12724 * xdisp.c (compute_face_at_iterator_string_position): If
12725 displaying a mode line use MODE_LINE_FACE_ID instead of
12726 DEFAULT_FACE_ID.
12727
12728 * xdisp.c (reseat_iterator_to_string): Additional parameter start.
12729 (display_string): Ditto, additional parameter lisp_string.
12730 (display_line): Call display_string with Lisp mini-buffer prompt
12731 string.
12732 (display_menu_bar): Call display_string with Lisp string.
12733 (display_mode_element): Ditto.
12734 (next_element_from_string): Make it work for non-overlay Lisp
12735 strings with field width and precision.
12736
12737 * minibuf.c (minibuffer-prompt-in-buffer): Bound if
12738 PROMPT_IN_BUFFER.
12739
12740 * xfaces.c (compute_string_char_face): Fix face computation
12741 for overlay strings.
12742
12743 * xdisp.c (struct overlay_entry): Add member after_string_p.
12744 (load_overlay_strings): Simplify.
12745
12746 * window.c (delete_window): Defer glyph matrix adjustment.
12747 (Fsplit_window): Ditto.
12748 (change_window_height): Ditto.
12749 (Fset_window_configuration): Ditto.
12750 (Fset_window_margins): Ditto.
12751 * frame.c (set_menu_bar_lines): Ditto.
12752 (Fmake_terminal_frame): Ditto.
12753 * dispnew.c (change_frame_size_1): Ditto.
12754
127551998-01-24 Gerd Moellmann <gerd@gnu.org>
12756
12757 * xdisp.c (move_iterator_vertically_backward): Change algorithm.
12758
427ec082 12759 * dispnew.c (direct_output_for_insert): Give up if start
26901792
DL
12760 position has overlay strings.
12761
12762 * xdisp.c (display_line): Don't set cursor if row ends in middle
12763 of overlay string.
12764 (Fdump_redisplay_state): Print complete row start and end
12765 position.
12766 (redisplay_window): Cursor movement when matrix hasn't changed---
12767 if PT < last_point, maybe move forward if row ends at PT and
12768 in middle of char.
12769
12770 * minibuf.c (read_minibuf): Save the value of
12771 minibuffer_prompt_length in minibuf_save_list.
12772 (read_minibuf_unwind): Restore minibuffer_prompt_length.
12773
12774 * xdisp.c (redisplay_window): Add assertion for cursor movement
12775 case, PT < last_point.
12776 (move_iterator_in_display_line_to): If to_pos specified, move
12777 over before-strings.
12778
12779 * dispextern.h (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test
12780 start.string_index > 0.
12781
12782 * xdisp.c (redisplay_internal): Adjust glyphs if fonts_changed_p
12783 is set. Retry redisplay if fonts_changed_p is set before update.
12784
12785 * xterm.c (x_load_font): Set fonts_changed_p.
12786
12787 * xfaces.c (Fset_face_attribute_internal): Set fonts_changed_p.
12788
12789 * dispnew.c (adjust_glyphs_for_font_change): Removed.
12790
12791 * xdisp.c (try_window): Check fonts_changed_p.
12792 (try_window_reusing_current_matrix): Ditto.
12793 (try_window_id): Ditto.
12794
12795 * dispnew.c (adjust_glyphs_for_font_change): Set fonts_changed_p.
12796 (fonts_changed_p): Flag indicating a font change since the last
12797 glyph matrix adjustment.
12798
12799 * xterm.c (x_per_char_metric): Use font->max_bounds as
12800 char metric of the font's default char if the default char
12801 hasn't per char metric itself.
12802
12803 * xfaces.c (Fset_face_attribute_internal): Adjust glyphs
12804 for font change.
12805 (min_char_bounds): Check face->font != NULL.
427ec082 12806 (font_min_bounds): Return minimum font metrics. Capture the
26901792
DL
12807 case of invalid min_bounds contents.
12808 (min_char_bounds): Call font_min_bounds.
12809
128101998-01-22 Gerd Moellmann <gerd@gnu.org>
12811
12812 * xdisp.c (start_display): Don't set it->prompt_width if
12813 PROMPT_IN_BUFFER.
12814 (move_iterator_in_display_line_to): Ditto.
12815 (display_line): Don't display prompt via display_string if
12816 PROMPT_IN_BUFFER.
12817
12818 * minibuf.c (Fminibuffer_prompt_width): Return value from
12819 current_buffer if PROMPT_IN_BUFFER.
427ec082 12820 (read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
26901792
DL
12821 mini-buffer and make it read-only.
12822 (Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
12823 minibuffer_prompt_length instead of BEGV.
12824 (Fminibuffer_complete_word): Ditto.
12825 (Fminibuffer_complete_word): Ditto.
12826
12827 * insdel.c (del_range_1): If PROMPT_IN_BUFFER, and start position
12828 is less than mini-buffer prompt width, use prompt width as start.
12829
12830 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, and start
12831 position is less than mini-buffer prompt width, use the prompt
12832 width as start.
12833
12834 * cmds.c (Fbeginning_of_line): If PROMPT_IN_BUFFER, set point to
12835 end of prompt if applied to a mini-buffer and BEG reached.
12836
128371998-01-21 Gerd Moellmann <gerd@gnu.org>
12838
12839 * editfns.c (make_buffer_string): If PROMPT_IN_BUFFER, add prompt
12840 length to start position.
12841
12842 * buffer.c (Fget_buffer_create): Initialize
12843 minibuffer_prompt_length.
12844 (Fmake_indirect_buffer): Ditto.
12845 (Fkill_buffer): Ditto.
12846
12847 * buffer.h (struct buffer): Add member minibuffer_prompt_length
12848 if PROMPT_IN_BUFFER.
12849
128501998-01-19 Gerd Moellmann <gerd@gnu.org>
12851
12852 * xdisp.c (next_element_from_string): Make it work for arbitrary
12853 Lisp strings.
12854 (set_iterator_to_next): Advance to next overlay string only
12855 if it->string is an overlay string.
12856
12857 * dispextern.h (struct display_iterator):
12858 next_ovstr_face_check_pos renamed next_string_face_check_pos.
12859
427ec082 12860 * xfaces.c (compute_string_char_face): Compute face for
26901792
DL
12861 arbitrary Lisp string. Renamed from compute_overlay_string_char_face.
12862
12863 * xdisp.c (next_element_from_string): Renamed from
12864 next_element_from_overlay_string.
427ec082 12865 (compute_face_at_iterator_string_position): Renamed from
26901792
DL
12866 compute_face_at_iterator_overlay_string_position.
12867
12868 * dispextern.h (struct display_iterator): Member overlay_string
12869 renamed string.
12870
12871 * xdisp.c (next_element_from_c_string): Renamed from
12872 next_element_from_string.
12873
12874 * dispextern.h (struct glyph_pos): Reversed meaning of
12875 overlay_string_index and string_index.
12876
12877 * xdisp.c (next_element_from_overlay_string): Fix bug that made
12878 this function always return the first character of an overlay
12879 string.
12880
128811998-01-18 Gerd Moellmann <gerd@gnu.org>
12882
12883 * xdisp.c (reseat_iterator): Set next_invisible_check_pos only if
12884 forced or new pos > next_invisible_check_pos.
12885 (redisplay_window): Don't try same window start if PT < window
12886 start.
12887 (move_iterator_vertically): Bug fix satisfying post-condition
12888 when ZV is reached and no newline in front.
12889 (move_iterator_vertically_backward): New implementation.
12890 (move_iterator_vertically_backward): Bug fixes.
12891
12892 * xterm.c (XTmouse_position): Change call to min_char_bounds.
12893 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
12894 (adjust_glyphs_for_font_change): Always adjust.
12895
12896 * dispnew.c (struct dim): Use int.
12897
12898 * xfaces.c (Fset_face_attribute_internal): Set face->font_name;
12899 (allocate_face): Initialize it.
12900 (load_font): Use XLoadQueryFont again instead of x_load_font.
12901 (unload_font): Use XFreeFont again.
12902 (min_char_bounds): Iterate over fonts of faces. Use frame's
12903 font sizes as default. Remove parameter except_last_font_p.
12904
12905 * dispextern.h (struct face): Add font_name.
12906
129071998-01-17 Gerd Moellmann <gerd@gnu.org>
12908
12909 * xdisp.c (move_iterator_vertically): Check post-condition. Move
12910 to start of line if ending at ZV and no newline in front.
12911 (move_iterator_to): If to_y specified, always first move to x = 0,
12912 so that move stops at line start instead of line end. This is
12913 probably what callers would expect to happen.
12914
12915 * window.c (window_scroll_pixel_based): Pixel-based scrolling that
12916 can handle different line heights.
12917 (window_scroll_line_based): Formerly window_scroll.
12918 (window_scroll): Call both.
12919
12920 * xdisp.c (start_display): Exclude code if PROMPT_IN_BUFFER.
12921 (move_iterator_in_display_line_to): Ditto.
12922 (display_line): Ditto.
12923
12924 * minibuf.c (read_minibuf): Conditionally insert prompt into
12925 buffer instead of handling prompts specially. Change other
12926 functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
12927
12928 * dispnew.c (adjust_glyph_matrix): Optimize the handling of C-x 2,
12929 upper window. Optimize calls to xrealloc if same width.
12930
12931 * xdisp.c (redisplay_window): Don't use
12932 try_window_reusing_current_matrix if window scroll functions
12933 exist.
12934
12935 * dispextern.h (struct display_iterator): Member
12936 redisplay_end_trigger_p removed.
12937
12938 * dispextern.h (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
12939 Renamed to WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
12940
129411998-01-16 Gerd Moellmann <gerd@gnu.org>
12942
12943 * xdisp.c (move_iterator_by_lines): Optimize for truncate-lines
12944 nil. Optimize truncate-lines t and moving backward.
12945 (move_iterator_to_previous_visible_line_start): Contains the heart
12946 of the previous set_iterator_to_previous_visible_line_end. Don't
12947 reseat the iterator. Used by move_iterator_by_lines.
12948 (set_iterator_to_previous_visible_line_start): Call function
12949 above.
12950 (move_iterator_in_display_line_to): Check TO_POS before doing
12951 anything else. Otherwise to_pos == PT would move to x of PT+1.
12952
12953 * indent.c (Fvertical_motion): Use display_iterator.
12954
12955 * xdisp.c (move_iterator_by_lines): New function moving by screen
12956 lines.
12957 (redisplay_window): Use it.
12958 (move_iterator_to): Correct branch of to_vpos specified.
12959 (move_iterator_vertically_backward): Increment nlines after having
12960 backed up over some lines because the last line was not backed up
12961 over.
12962 (move_iterator_via_matrix): Look for it->pos in the matrix, and
12963 calculate it->vpos and it->current_y relative to this row.
427ec082 12964 (move_iterator_via_matrix): Set in #if 0. It doesn't seem to
26901792
DL
12965 have a big effect and it is complex.
12966 (move_iterator_to): Call to move_iterator_via_matrix in #if 0.
12967
129681998-01-15 Gerd Moellmann <gerd@gnu.org>
12969
12970 * xterm.c (x_draw_relief): Simplify drawing and draw so that lines
12971 join nicely. Lines with widths > 2 don't join nicely under X.
12972 * xterm.h (struct x_output): Remove member relief_gc_line_width.
12973 * widget.c (setup_frame_gcs): Initialize relief GC's to line
12974 width 1; remove references to relief_gc_line_width.
12975 * xfns.c (x_make_gc): Ditto.
12976
12977 * xfaces.c (Fset_face_attribute_internal): Set frame garbaged
12978 if relief changes.
12979 (Fset_face_attribute_internal): Use XINT instead of XFASTINT
12980 to get a relief because they can be negative.
12981
12982 * xterm.c (x_draw_relief): Correct line drawing positions. Pixel
12983 positions are for the middle of lines under X.
12984
12985 * xdisp.c (try_window_id): Always search for the cursor by setting
12986 w->cursor.vpos = -1. Search in unchanged rows at the top and
12987 bottom if cursor not found in displayed lines.
427ec082 12988 (display_mode_line): First extend face, then set right shadow
26901792
DL
12989 flag. Otherwise the wrong glyph gets the right shadow.
12990
12991 * dispnew.c (direct_output_for_insert): Give up if line contains
12992 a tab. The number of spaces inserted for a tab changes if we
12993 insert glyphs in front of it.
12994
12995 * xterm.c (x_list_fonts): Changes undone because the Lisp
12996 implementation for make-face-smaller, make-face-larger, and
12997 make-face-fixed can do without them.
12998
12999 * xfns.c (Fx_list_fonts): Original x-list-fonts from x-list-font.c
13000 inserted.
13001
13002 * xdisp.c (try_window_id): First compute beg_unchanged, then
13003 compare with window start pos.
13004
13005 * xfns.c (Fx_face_fixed_p): Determine whether a face has a
13006 fixed-width font.
13007 (syms_of_xfns): defsubr for x-face-fixed-p.
13008
13009 * xterm.c (x_erase_phys_cursor): If row containing cursor is not
13010 enabled, don't do anything because this row will be newly drawn
13011 anyway and because we can additionally no longer determine the row
13012 height.
13013
13014 * xdisp.c (display_line): Bug fix cursor positioning.
13015
13016 * xfns.c (x-list-fonts): Copied from x-list-fonts.c; #include
13017 removed. x-list-fonts.c is now obsolete.
13018 (Qfixed, Qvariable): Moved here from xfaces.c.
13019
130201998-01-14 Gerd Moellmann <gerd@gnu.org>
13021
13022 * xdisp.c (display_line): Set row->ends_at_zv_p based on
13023 FETCH_BYTE for truncated lines.
13024 (display_line): Set cursor differently.
13025 (display_line): Fixed bug setting last_pos_on_this_line wrong
13026 for truncated lines.
13027
13028 * dispnew.c (adjust_glyph_matrix): Always adjust for frame-based
13029 redisplay.
13030
13031 * window.c (Fsplit_window): Adjust glyphs before setting buffer.
13032
13033 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Add
13034 assertion that character dimensions are not zero.
13035
13036 * xterm.c (x_load_font): adjust_glyphs_for_font_change while
13037 input is blocked.
13038
13039 * xdisp.c (decode_mode_spec): Faster implementation of line number
13040 display.
13041
13042 * xterm.c (x_draw_row_bitmaps): Clear flags area before drawing
13043 bitmaps if bitmaps don't fill the entire area.
13044 (draw_bitmap): Draw bitmaps horizontally centered in flags area.
13045
427ec082 13046 * xterm.h (FRAME_FLAGS_BITMAP_HEIGHT): Macro giving the
26901792
DL
13047 pixel height of flags bitmaps.
13048
13049 * frame.h (FRAME_FLAGS_AREA_COLS): Use FRAME_X_FLAGS_AREA_COLS.
13050 (FRAME_FLAGS_AREA_WIDTH): Ditto.
13051
13052 * xterm.h (FRAME_FLAGS_BITMAP_WIDTH): Macro giving the width
13053 in pixels of a flags area of a frame.
13054 (FRAME_X_FLAGS_AREA_WIDTH): Removed.
13055 (FRAME_X_FLAGS_AREA_COLS): Macro giving the number of columns
13056 occupied by a flags area.
13057
130581998-01-13 Gerd Moellmann <gerd@gnu.org>
13059
13060 * xdisp.c (hscroll_window_tree): Remove test for non-nil
13061 window_end_valid.
13062
13063 * dispnew.c (adjust_glyph_matrix): Check redisplay_p if
13064 GLYPH_DEBUG != 0.
13065
13066 * xdisp.c (display_line): Correct wrong calculation of row->x for
13067 the case of nglyphs == 1.
13068 (hscroll_window_tree): Renamed from hscroll_windows.
13069 (hscroll_windows): New function calling hscroll_window_tree that
13070 clears desired matrices on a frame when hscroll has been changed.
13071 (redisplay_p): Global flag set during redisplay.
13072 (redisplay_internal): Set and clear redisplay_p.
13073
13074 * xfaces.c (min_char_bounds): Add assertion that width and height
13075 are not zero at the end. Initialize *height and *width to -1,
13076 instead of using BITS_PER_SHORT. If font has min_bounds.width
13077 zero, use its max_bounds.width.
13078
13079 * x-list-font.c (Fx_list_fonts): Check INTEGERP or FLOATP for
13080 width and height.
13081
130821998-01-12 Gerd Moellmann <gerd@acm.org>
13083
13084 * dispnew.c (adjust_glyph_matrix): Do nothing if sizes haven't
13085 changed. Don't clear desired matrices.
13086
13087 * xdisp.c (hscroll_windows): Compute pt after setting
13088 current_buffer.
13089 (redisplay_window): Don't do cursor movement based on current
13090 matrix if just_this_one_p is zero.
13091
13092 * x-list-font.c (Fx_list_fonts): Additional parameter fixed.
427ec082 13093 specifying that fixed-width, variable-width fonts or both
26901792
DL
13094 should be returned.
13095
13096 * xfaces.c (Qfixed, Qvariable): Symbols for use by x-list-fonts.
13097 (syms_of_xfaces): Initialize them.
13098
13099 * xterm.c (x_list_fonts): Include auto-scaled fonts. Extend
13100 cached information.
13101
131021998-01-11 Gerd Moellmann <gerd@acm.org>
13103
13104 * xdisp.c (display_mode_line): Extend face to end of line.
13105
13106 * xdisp.c (echo_area_display): Don't call display_string with
13107 echo_area_glyphs_length == 0 which would mean infinite precision.
13108 (redisplay_internal): Adjust window_end_vpos if necessary.
13109
131101998-01-07 Gerd Moellmann <gerd@acm.org>
13111
13112 * xdisp.c (display_line): Set it->ends_at_zv_p differently.
13113
131141998-01-05 Gerd Moellmann <gerd@acm.org>
13115
13116 * xdisp.c (get_row_start_continuation_line_width): Removed.
13117 (init_iterator_to_row_start): Set it.current_x from row.
13118 (try_window_id): Set it.continuation_lines_width directly from
13119 row.
13120
13121 * xdisp.c (hscroll_windows): Use w->pointm if window is not
13122 selected_window.
13123 (hscroll_windows): Center cursor in window.
13124 (hscroll_windows): Call move_iterator_in_display_line_to.
13125
131261998-01-04 Gerd Moellmann <gerd@acm.org>
13127
13128 * xdisp.c (hscroll_windows): Check hscroll < 0.
13129 (redisplay_window): Allow quick cursor movement if overlay arrow
13130 but frame uses window-based redisplay.
13131 (display_line): Take special case for nglyphs == 1 out of #if 0.
13132 (display_line): Set row->ends_at_zv_p after the loop displaying
13133 glyphs because ZV can be in truncated text.
13134 (hscroll_windows): Use init_iterator_to_row_start.
13135
13136 * dispnew.c (scrolling_window): Calculation of overlapping
13137 runs fixed.
13138 (row_equal_p): Compare continued_p and continuation_line_p.
13139
131401998-01-02 Gerd Moellmann <gerd@acm.org>
13141
13142 * xterm.c (x_get_mode_line_face_gc): Renamed from
13143 x_get_modeline_face_gc.
13144
13145 * xdisp.c (TEXT_PROP_DISTANCE_LIMIT): Max. distance from current
13146 buffer position to look for text properties.
13147 (get_face_from_cursor_pos): Use it.
13148 (compute_face_at_iterator_position): Use it.
13149 (next_element_from_buffer): Use it.
13150
13151 * dispnew.c (scrolling_window): Decrement run's y-position
13152 when extending it backwards.
13153
13154 * xterm.c (do_line_dance): Don't ever copy more than window height.
13155
131561998-01-01 Gerd Moellmann <gerd@acm.org>
13157
13158 * xdisp.c (redisplay_window): Cursor motion in unchanged
13159 matrix---use MATRIX_ROW_.*_IN_MIDDLE_OF_CHAR_P.
13160 (init_iterator_to_next_row_start): Special handling of lines
13161 ending in middle of char removed.
13162 (hscroll_windows): Hscroll windows only if window_end_valid is not
13163 nil.
13164 (try_window_reusing_current_matrix): Call hscroll_windows.
13165 (init_iterator_to_row_start): Initialize iterator for display
13166 starting at a position given by a glyph_row->start.
13167 (redisplay_window): Don't use vmotion because it gives wrong
13168 results if lines are continued and variable width fonts are used.
13169
427ec082 13170 * dispextern.h (struct glyph_pos): New member dpvec_index.
26901792
DL
13171 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
13172 the middle of a character.
427ec082 13173 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
26901792
DL
13174 the middle of a character.
13175
13176 * xdisp.c (set_iterator_to_next): Increment it->dpvec_index, reset
13177 it.
13178 (next_element_from_display_vector): Use it->dpvec_index.
13179 (reseat_iterator): Reset it.
13180 (init_iterator): Reset it.
13181 (setup_iterator_dpvec_from_glyph_pos): Set up it->dpvec and
13182 it->pos.dpvec_index from a glyph_pos structure.
13183 (init_iterator_from_glyph_pos): Call the function above.
13184 (reseat_iterator_to_glyph_pos): Ditto.
13185
13186 * dispnew.c (direct_output_forward_char): Don't use this method at
13187 overlay boundaries or near invisible text.
13188 (direct_output_forward_char): Step through glyph row to find
13189 cursor position.
13190
427ec082 13191 * xterm.c (x_get_cursor_gc): Don't return cursor_gc for font ==
26901792
DL
13192 frame font if line height differs from font height.
13193
13194 * xdisp.c (set_iterator_to_next): Renamed from
13195 move_iterator_forward to avoid confusion with other move_.*
13196 functions.
13197
13198 * dispextern.h (FACE_RELIEF_P): Renamed from FACE_3D_P.
13199
132001997-12-31 Gerd Moellmann <gerd@acm.org>
13201
13202 * xterm.c (x_get_cursor_gc): Renamed from x_cursor_gc to use the
13203 same naming convention as for other GC functions.
13204 (draw_glyphs): Don't fill background when drawing a cursor and
13205 font height is less than line height.
13206
132071997-12-30 Gerd Moellmann <gerd@acm.org>
13208
13209 * xdisp.c (init_display_iterator.*): Renamed to shorter names
13210 init_iterator_.*.
13211
13212 * xdisp.c (move_iterator_forward): Restore it->len from
13213 it->dpvec_char_len if dpend reached.
13214 (get_next_display_element): Don't consume translated char
13215 prematurely.
13216 (display_line): Don't set this_.* variables if row is continued.
13217 (start_display): Move to start of continuation line if ending
13218 up at end of continued line.
13219
13220 * dispextern.h (struct display_iterator): New member dpvec_char_len.
13221
13222 * xdisp.c (move_iterator_in_display_line_to): Check TO_POS after
13223 checking TO_X and continuation lines.
13224 (get_last_unchanged_at_beg_row): If first_changed_pos is the end
13225 of a continued line, don't consider this line as unchanged because
13226 it may no longer be continued.
13227
132281997-12-29 Gerd Moellmann <gerd@acm.org>
13229
13230 * xdisp.c (try_window_id): Catch the case that moving over
13231 continuation lines moves first_unchanged_at_end_row to a row not
13232 displaying text.
13233
13234 * dispextern.h (struct glyph_row): New member
13235 continuation_lines_width. Member continuation_line_p removed.
427ec082 13236 (MATRIX_ROW_CONTINUATION_LINE_P): Non-zero if row displays a
26901792
DL
13237 continuation line.
13238 * xdisp.c (display_line): Set row->continuation_lines_width.
13239 (get_row_start_continuation_line_width): Set continuation lines
13240 width of iterator from continuation lines width of glyph row.
13241 (get_row_start_continuation_line_width): Make it inline.
13242 (set_window_cursor): Make it inline.
13243 (try_window_id): Use MATRIX_ROW_CONTINUATION_LINE_P.
13244 (Fdump_redisplay_state): Ditto.
427ec082 13245
26901792
DL
13246 * dispnew.c (update_window_line): Use MATRIX_ROW_CONTINUATION_LINE_P.
13247 * xterm.c (x_draw_row_bitmaps): Use MATRIX_ROW_CONTINUATION_LINE_P.
13248
13249 * xdisp.c (try_window_id): Set it.hpos and it.current_x to zero
13250 after determining the continuation lines width for
13251 last_unchanged_at_beg_row.
13252
13253 * xterm.c (x_draw_row_bitmaps): Let overlay arrow have precedence.
13254
13255 * xdisp.c (display_mode_line): Handle 3D faces only on frames
13256 which support faces.
13257 (init_display_iterator): Ditto.
13258 (move_iterator_via_matrix): Skip over truncation glyph at the row
13259 start on terminal frames.
13260 (hscroll_windows): Choose hscroll margin differently for window
13261 system and terminal frames.
13262
132631997-12-28 Gerd Moellmann <gerd@acm.org>
13264
13265 * xdisp.c (hscroll_windows): Change hscroll of windows.
13266 (redisplay_internal): Call it.
13267
427ec082 13268 * dispnew.c (direct_output_for_insert): Give up if a glyph
26901792
DL
13269 doesn't fit completely on the line.
13270 (direct_output_forward_char): Give up for non-ASCII chars.
13271 (direct_output_forward_char): Set redisplay_performed_directly_p.
13272
13273 * dispextern.h (struct display_iterator): Make first_visible_x
13274 and last_visible_x ints; this is for very long truncated lines.
13275
13276 * xdisp.c (move_iterator_in_display_line_to): Separate check for
13277 MOVE_X_REACHED only if it->nglyphs == 0. This fixes cursor
13278 positioning problems with the mouse.
13279 (move_iterator_in_display_line_to): Truncate lines if it->current_x
13280 >= it->last_visible_x instead of >.
13281 (display_line): Ditto.
13282
13283 * xterm.c (draw_glyphs): Draw rectangles if font could not be
13284 loaded.
13285 (XTproduce_glyphs): Calculate pixel_width for composite chars and
13286 non-ASCII chars differently. Always produce 1 glyph for composite
13287 chars. If font not found, use CHARSET_WIDTH to calculate width of
13288 non-ASCII chars.
13289 (x_get_char_font_and_encoding): Return null if font could not be
13290 loaded. Reset font to null if fontset could not be loaded.
13291 (draw_glyphs): Fill background if font not found.
13292 (draw_glyphs): Unused parameter just_foreground_p removed. New
13293 parameter composite_glyph.
13294 (draw_glyphs): Use enumeration for parameter hl.
427ec082 13295 (draw_glyphs): Pass a display area relative x-position to
26901792
DL
13296 draw_glyphs when calling it recursively for composite chars.
13297
132981997-12-27 Gerd Moellmann <gerd@acm.org>
13299
13300 * xterm.c: Patches from handa.etl.go.jp integrated.
13301 (draw_glyphs): Don't rely on x_get_char_font_and_encoding to
13302 find a font_info.
13303
13304 * xdisp.c (move_iterator_in_display_line_to): Check to_x
13305 for nglyphs == 1.
13306
13307 * xterm.c (x_draw_relief): Draw relief lines.
13308 (draw_glyphs): Call x_draw_relief.
13309
133101997-12-26 Gerd Moellmann <gerd@acm.org>
13311
13312 * xfns.c (x_make_gc): Create relief GC's.
13313
13314 * widget.c (create_frame_gcs): Create GC's for relief drawing.
13315 (setup_frame_gcs): Initialize them.
13316 (EmacsFrameDestroy): Free them.
13317
427ec082 13318 * xdisp.c (try_window_id): Get continuation lines width if
26901792
DL
13319 last_unchanged_at_beg_row is continued or a continuation line.
13320 (move_iterator_via_matrix): Don't do it for mini-buffer windows.
427ec082 13321 (redisplay_window): Case point has changed, and it has not
26901792
DL
13322 moved off the frame. Don't increment row if PT equals the row
13323 end if the row ends in ZV.
13324
13325 * xterm.c (x_draw_row_bitmaps): New function to draw bitmaps.
13326 (expose_line): Call it.
13327 (x_after_update_window_line): Call it.
13328
13329 * xdisp.c (display_line): Reset continuation_lines_width when ZV
13330 reached.
13331
13332 * xterm.c (x_after_update_window_line): Draw continuation line
13333 bitmap.
13334
13335 * dispnew.c (update_window_line): Call
13336 after_update_window_line_hook when row's continuation_line_p
13337 changes.
13338
13339 * xterm.c (draw_bitmap): Draw new bitmap CONTINUATION_LINE_BITMAP.
13340
13341 * xdisp.c (display_line): Handle continued lines on window system
13342 frames differently since continuation glyphs are not displayed.
13343 (move_iterator_in_display_line_to): Ditto.
13344 (move_iterator_in_display_line_to): Take the mini-buffer prompt
13345 into account.
13346 (move_iterator_vertically_backward): Handle dy == 0 specially.
13347 (redisplay_window): Catch the case of small windows when
13348 recentering where moving back window_height/2 moves us beyond the
13349 top of the display area of the window.
13350
133511997-12-18 Gerd Moellmann <gerd@acm.org>
13352
13353 * xdisp.c (move_iterator_vertically_backward): Unused parameter
13354 dvpos removed.
13355
133561997-12-17 Gerd Moellmann <gerd@acm.org>
13357
13358 * dispnew.c (direct_output_forward_char): Correct new cursor
13359 x-position.
13360
133611997-12-16 Gerd Moellmann <gerd@acm.org>
13362
13363 * xterm.c (x_after_update_window_line): Remove unused parameters.
13364 (XTclear_end_of_line): Clear to display_height instead of
13365 display_height - 1.
13366
13367 * dispnew.c (set_frame_matrix_frame): Make it INLINE.
427ec082 13368 (update_window_line): Call after_update_window_line_hook if
26901792
DL
13369 rows have different y-positions, or different height.
13370
133711997-12-14 Gerd Moellmann <gerd@acm.org>
13372
13373 * frame.h (FRAME_MODE_LINE_PIXEL_HEIGHT): Removed.
13374
13375 * window.c (coordinates_in_window): Call frame_mode_line_height.
13376
13377 * xterm.c (x_draw_3d_border): Removed.
13378 (x_draw_row_borders): Removed.
13379
13380 * dispnew.c (update_window): References to
13381 FRAME_MODE_LINE_BORDER_WIDTH removed.
13382
13383 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Removed.
13384 (FRAME_MODE_LINE_HEIGHT): Removed.
13385
13386 * xterm.c (draw_3d_borders_p): Removed.
13387 (draw_glyphs): Ditto.
13388 (XTwrite_glyphs): Ditto.
13389 (expose_line): Ditto.
13390 (x_initialize): Ditto.
13391
13392 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Call
13393 frame_mode_line_height.
13394
13395 * term.c (frame_mode_line_height): Get the pixel height of a
13396 frame's mode line.
13397 (frame_mode_line_height_hook): Hook to implement system dependent
427ec082
SS
13398 versions.
13399
26901792
DL
13400 * xterm.c (x_initialize): Set the hook.
13401 (XTframe_mode_line_height): X version of frame_mode_line_height.
13402
13403 * xdisp.c (echo_area_display): Call gobble_input to flush the X
13404 output buffer.
13405 (display_string): Don't add right truncation mark if line ends in
13406 padding space.
13407 (init_display_iterator): If called with modeline_p non-zero, set
13408 face_id to 1, which is the id of the mode line face.
13409
13410 * keyboard.c (cmd_error_internal): Write to stderr if selected
13411 frame is Vterminal_frame under X. This is the case when a font
13412 cannot be loaded when Emacs starts. Replace test for
13413 FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
13414
13415 * xfaces.c (compute_overlay_string_char_face): Compute the
13416 face of a character in an overlay string.
13417 * xterm.h (compute_overlay_string_char_face): Prototype.
427ec082 13418 * xdisp.c (compute_face_at_iterator_overlay_string_position):
26901792
DL
13419 Use it.
13420
13421 * xdisp.c (set_iterator_to_next_overlay_string): Formerly
13422 set_iterator_to_next_overlay.
13423 (struct overlay_entry): Structure used to sort overlay strings.
13424 (compare_overlay_entries): Compare overlay strings.
13425 (load_iterator_with_overlay_strings): Load a chunk of overlay
13426 strings.
13427 (get_overlay_strings_at_iterator_position): Call it.
13428 (next_element_from_overlay_string): Set it->object to the overlay
13429 string. Prepare for setting it->position to a string position.
13430 (get_overlay_strings_at_iterator_position): Renamed from
13431 get_overlays_at_iterator_position.
13432 (setup_iterator_overlay_strings_from_glyph_pos): Changed to load
13433 chunks of overlay strings.
13434 (load_overlay_strings): Renamed from load_iterator_overlay_strings.
13435
13436 * dispextern.h (struct display_iterator): New vector
13437 overlay_strings and new member n_overlay_strings---formerly
427ec082
SS
13438 overlays and n_overlays.
13439 (struct glyph_pos): Remove after_string_p; overlay_index
26901792
DL
13440 renamed to string_index.
13441
134421997-12-13 Gerd Moellmann <gerd@acm.org>
13443
13444 * xdisp.c (copy_iterator): Increment n_iterator_overlay_vectors
13445 when allocating a vector.
13446 (release_iterator): Removed.
13447 (restore_iterator): Removed.
13448 (copy_iterator): Removed.
13449
134501997-12-08 Gerd Moellmann <gerd@acm.org>
13451
13452 * xdisp.c (redisplay_window): Use make_empty_enabled_row for
13453 clearing a mini-buffer window that is not active.
13454 (redisplay_window): Do not scroll one line too early when last
13455 window line is completely visible.
13456 (init_display_iterator): Leave some room to display the cursor
13457 after the last glyph on a continued line.
13458
13459 * xterm.h (struct x_output): trunc_area_extra renamed
13460 flags_areas_extra.
13461 (FRAME_X_FLAGS_AREA_WIDTH): Renamed from FRAME_X_TRUNC_WIDTH.
13462
13463 * dispnew.c (update_window_line): Call
13464 after_update_window_line_hook when current row is not enabled
13465 which is the case after a frame has been cleared.
13466
13467 * xdisp.c (display_mode_line): Reset row flags for truncation
13468 on right side for the mode line.
13469
13470 * xterm.c (bitmap_type): Type of bitmap to display in flags
13471 area of frame.
13472 (x_after_update_window_line): Use the enum.
13473 (draw_bitmap): Ditto.
13474
134751997-12-07 Gerd Moellmann <gerd@acm.org>
13476
13477 * xterm.c (x_clip_to_row): Include width of both flag areas.
13478 (do_line_dance): Ditto.
13479 (expose_window_tree): Ditto.
13480 * dispnew.c (update_window_line): Call
13481 after_update_window_line_hook for right truncation and continuation.
13482 * xdisp.c (init_display_iterator): Don't subtract width of
13483 continuation glyphs for window-based redisplay.
13484 * xterm.c (draw_bitmap): Draw continuation bitmap.
13485 * widget.c (set_frame_size): Double trunc_area_extra.
13486 (EmacsFrameSetCharSize): Ditto.
13487 * xfns.c (x_figure_window_size): Ditto.
13488 * xterm.c (x_set_window_size): Ditto.
13489 (x_after_update_window_line): Draw right truncation mark.
13490
13491 * xterm.c (draw_glyphs): Bug fix buffer overrun.
13492
13493 * window.h: Include blocker around dispextern.h removed.
13494
13495 * eval.c (Feval): Check interrupt_input_block == 0.
427ec082 13496
26901792
DL
13497 * dispextern.h (struct display_iterator): Former ovstr made a
13498 Lisp_Object overlay_string. New next_ovstr_face_check_pos and
13499 next_ovstr_invisble_check_pos; check at these positions for
13500 face changes and changes in invisible text property.
13501 (struct glyph_pos): Former ovlen now overlay_string_index.
13502
13503 * xdisp.c (setup_iterator_overlays_from_glyph_pos): Set
13504 overlay_string.
13505 (set_iterator_to_next_overlay_string): Set overlay_string and
13506 pos.overlay_string_index.
13507 (get_overlays_at_iterator_position): Use overlay_string and
13508 overlay_string_index.
13509 (next_element_from_overlay_string): Use overlay_string and
13510 overlay_string_index.
13511 (move_iterator_forward): Increment overlay_string_index.
13512 (try_window_id): Use overlay_string and overlay_string_index.
13513 (move_iterator_forward): At end of dpvec, maybe use method
13514 next_element_from_overlay_string for the case a character from an
13515 overlay string was translated via a display table.
13516 (reseat_iterator_to_string): Take a Lisp string.
13517 (display_string): Pass a Lisp string to reseat_iterator_to_string.
13518 (compute_face_at_iterator_overlay_string_position): Compute face
13519 based on text properties for an overlay string.
13520 (next_element_from_overlay_string): Check invisible and face text
13521 properties.
bb6677a8 13522
26901792
DL
13523 (set_iterator_to_next_overlay_string): Restore face id before
13524 overlay strings when no more overlay strings are found to return.
13525 Initialize next_ovstr_.*check_pos for each new overlay string
bb6677a8
GM
13526
13527 A line in the following paragraph was garbled for an unknown
13528 reason. It couldn't be fully reconstructed.
13529
13530 (compute_base_face): Made public.
26901792
DL
13531 (merge_face_list): Ditto.
13532 (intern_computed_face): Ditto.
13533
427ec082 13534 * xdisp.c (redisplay_window): Cursor movement in unchanged
26901792
DL
13535 window if PT > w->last_point. Goto try_to_scroll if bottom Y
13536 of row is > instead of >= last_y.
13537
13538 * buffer.h (overlays_at): Function prototype.
13539
13540 * xdisp.c (reseat_iterator_to_string): Clear iterator position.
13541 * dispextern.h (GET_NEXT_DISPLAY_ELEMENT): Removed.
13542
427ec082 13543 * xdisp.c (release_iterator): Release dynamically allocated
26901792
DL
13544 memory of a display_iterator.
13545 (copy_iterator): Copy an iterator.
13546 (restore_iterator): Restore an iterator from a backup copy.
13547 (global): Use the functions above.
13548 * window.c (Fpos_visible_in_window_p): Call release_iterator.
13549 * dispnew.c (direct_output_for_insert): Call release_iterator.
13550
13551 * dispextern.h (struct display_iterator): Allocate overlays
13552 vector dynamically.
13553
135541997-12-06 Gerd Moellmann <gerd@acm.org>
13555
13556 * Makefile.in (window.o): Depends on dispextern.h.
13557
13558 * buffer.c (overlays_at): Make it work when extending vectors
13559 and an initial vector of zero size.
13560
13561 * xdisp.c (set_iterator_to_previous_visible_line_end): Renamed
13562 from set_cursor_to_previous_visible_line_end.
13563 (set_iterator_to_next_visible_line_start): Renamed from
13564 set_cursor_to_next_visible_line_end.
13565 (set_next_iterator_stop_pos): Renamed from set_next_stop_pos.
13566 (compute_face_at_iterator_position): Renamed from
13567 compute_cursor_face.
13568 (set_iterator_to_next_overlay_string): Renamed from
13569 cursor_to_next_overlay_string.
13570 (get_overlays_at_iterator_position): Renamed from
13571 get_overlays_for_cursor.
13572 (reseat_iterator): Renamed from reseat_cursor.
13573 (setup_iterator_overlays_from_glyph_pos): Renamed from
13574 setup_overlays_from_pos.
13575 (init_string_iterator): Renamed from init_string_cursor.
13576 (get_next_display_element): Renamed from next_display_element.
13577 (move_iterator_forward): Renamed from advance_display_cursor.
427ec082 13578 (get_overlays_at_iterator_position): Allocate overlays vector
26901792
DL
13579 dynamically.
13580
13581 * xdisp.c: display_cursor renamed display_iterator.
13582 * dispextern.h: Ditto.
13583 * dispnew.c: Ditto.
13584
135851997-12-01 Gerd Moellmann <gerd@acm.org>
13586
13587 * window.c (mark_window_cursors_off): Function comment added.
13588 (window_topmost_p, window_rightmost_p): Removed because not used.
13589
135901997-11-30 Gerd Moellmann <gerd@acm.org>
13591
13592 * emacs.c (main): Function prototypes removed in profiling code.
13593 Use safe_bcopy as start of text.
13594
13595 * dispnew.c (update_frame_line): update_line -> update_frame_line;
13596 mirrored_make_current -> make_current.
13597
13598 * xdisp.c: (store_frame_title_char): New function to store a
13599 single character for the frame title with re-allocation of
13600 frame_title_buf.
13601 (init_xdisp): Intialize frame_title_.* variables to null.
13602
13603 * dispnew.c (quit_error_check): Removed.
13604
13605 * eval.c (Fsignal): Call to quit_error_check removed.
13606 * keyboard.c (quit_throw_to_read_char): Ditto.
13607
136081997-11-23 Gerd Moellmann <gerd@acm.org>
13609
13610 * xfaces.c (Fset_face_attribute_internal): Allow nil relief
13611 to mean a zero relief.
13612
26901792
DL
136131997-11-19 Gerd Moellmann <gerd@acm.org>
13614
13615 * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
13616 unconditionally.
13617 (glyph_matrix_count, glyph_pool_count): Define unconditionally.
13618 (free_glyph_matrix): Decrement glyph_matrix_count unconditionally.
13619 (check_glyph_memory): Define function body unconditionally.
13620
136211997-11-17 Gerd Moellmann <gerd@acm.org>
13622
13623 * dispnew.c (scrolling_window): Alternative version of this
13624 function removed.
13625
136261997-11-16 Gerd Moellmann <gerd@acm.org>
13627
13628 * dispnew.c (make_empty_enabled_row): Make an empty, enabled row
13629 of height CANON_Y_UNIT.
13630 * dispextern.h: Prototype for that function.
427ec082 13631 * xdisp.c (echo_area_display): Don't use display_string to
26901792
DL
13632 produce empty rows. Use make_empty_enabled_row instead.
13633
13634 * dispnew.c (scrolling_window): New version using diff-like
13635 algorithm activated.
427ec082 13636
26901792
DL
136371997-11-15 Gerd Moellmann <gerd@acm.org>
13638
13639 * dispnew.c (clear_current_matrices): Clear matrix of menu_bar_window
13640 (clear_desired_matrices): Ditto.
13641 (adjust_frame_glyphs_for_window_redisplay): Use FRAME_WINDOW_WIDTH
13642 for menu_bar_window.
13643
13644 * alloc.c (mark_object): Mark menu_bar_window of frames.
13645
13646 * xterm.c (XTupdate_window_end): Don't display cursor if
13647 pseudo_window_p.
13648
13649 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Don't
13650 set mini_p.
13651 (update_window): Don't set cursor if pseudo_window_p.
13652
13653 * dispextern.h (WINDOW_WANTS_MODELINE_P): Test pseudo_window_p.
13654
13655 * window.h (struct window): New flag pseudo_window_p set to
13656 1 for windows that aren't really part of the window tree, like
13657 menu_bar_window's of frames.
13658 * window.c (make_window): Initialize it.
13659 (replace_window): Ditto.
13660 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Ditto.
13661
13662 * frame.c (make_frame): Initialize menu_bar_window to nil.
13663
13664 * xterm.c (XTget_display_info): FACE_SHADOW_THICKNESS renamed
13665 FACE_RELIEF
13666
13667 * xfaces.c (copy_face): shadow_thickness -> relief.
13668 (face_eql): Ditto.
13669 (merge_faces): Ditto.
13670 (compute_base_face): Ditto.
13671 (Fset_face_attribute_internal): Ditto.
13672 * dispextern.h (struct face): Ditto.
13673
13674 * dispnew.c (update_frame): Update menu_bar_window of the frame if
13675 it is non-nil.
13676
13677 * xdisp.c (display_menu_bar): Display the menu bar in
13678 f->menu_bar_window if appropriate.
13679 (display_mode_line): Use MATRIX_MODE_LINE_ROW.
13680
13681 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Allocate
13682 dummy window and window matrices for f->menu_bar_window.
13683 (free_glyphs): Free the dummy window and its glyph matrices.
13684
13685 * frame.h (struct frame): New member menu_bar_window.
13686
136871997-11-09 Gerd Moellmann <gerd@acm.org>
13688
13689 * dispnew.c (scrolling_window): New version with diff-like
13690 algorithm.
13691
13692 * xdisp.c (try_window_reusing_current_matrix): If new_start >
13693 old_start always start displaying at start of
13694 first_row_to_display. The previous scheme failed if the last row
13695 was fully visible.
13696
13697 * dispnew.c (update_window): Remove cost calculations. Remove
13698 redundant preempt_count calculations.
13699
13700 * xterm.c (x_clip_to_row): Set clipping for non-text rows
13701 differently.
13702
13703 * dispnew.c (update_window): Use WINDOW_WANTS_MODELINE_P.
13704
427ec082 13705 * window.c (syms_of_window): Functions for marginal areas if
26901792
DL
13706 WITH_MARGINAL_AREAS is defined.
13707
427ec082 13708 * xdisp.c (try_window_reusing_current_matrix): Trace fprintf
26901792
DL
13709 removed.
13710
13711 * dispnew.c (scrolling): Call line_hash_code because hash values
13712 are not set in the frame matrix.
13713
13714 * xdisp.c (try_window_id): Fix scrolling for terminal frames.
13715 (redisplay_window): Check line_ins_del_ok before calling
13716 try_window_id.
13717 (try_window_reusing_current_matrix): Give up for terminal frames
13718 if window is not full width or we cannot insert/delete lines.
13719 (try_window_reusing_current_matrix): Fixed scrolling for terminal
13720 frames.
13721
13722 * alloc.c (mark_glyph_matrix): Bug fix - pass pointer to
13723 Lisp_Object to mark_object.
13724
13725 * xdisp.c (sync_frame_with_window_matrix_rows): Make frame and
13726 window rows have the same glyph pointers.
13727 (try_window_id): Call it.
13728
13729 * alloc.c (mark_glyph_matrix): Function to mark Lisp objects in
13730 a glyph matrix.
13731 (mark_object): Call it.
13732
13733 * xdisp.c (insert_left_trunc_glyphs): Use 0 object in glyphs for
13734 truncations.
13735 (display_line): Ditto.
13736 (display_line): Ditto for DISP_CONTINUATION.
13737 (display_line): Truncation on right: test current_x >
13738 last_visible_x.
13739 (skip_in_display_line_to): Ditto.
13740 (skip_via_matrix): Stop skipping in glyph row at face extending
13741 glyphs or at padding spaces.
13742
13743 * dispnew.c (fill_up_glyph_row_with_spaces): Comment extended.
13744
13745 * xdisp.c (display_line): Use glyph->object == 0 for padding
13746 glyphs.
13747 (redisplay_window): Don't let cursor move over padding
13748 spaces.
13749
13750 * dispextern.h (struct glyph): Fix comment for object.
13751
137521997-11-08 Gerd Moellmann <gerd@acm.org>
13753
13754 * dispextern.h (WINDOW_WANTS_MODELINE_P): Non-zero if a window
13755 has a mode line.
13756 * xdisp.c (redisplay_window): Use it.
13757 (display_mode_line): Check that window wants mode line.
13758
137591997-11-03 Gerd Moellmann <gerd@acm.org>
13760
13761 * xdisp.c (display_menu_bar): Enable menu bar rows.
13762
13763 * xterm.c (x_draw_hollow_cursor): X positions based on text area.
13764 (x_erase_phys_cursor): Ditto.
13765 (x_draw_bar_cursor): Ditto.
13766
137671997-11-02 Gerd Moellmann <gerd@acm.org>
13768
13769 * dispnew.c (update_marginal_area): Update a marginal area.
13770 (update_text_area): Update text area.
13771 (update_window_line): Call both.
13772
13773 * xterm.c (XTclear_end_of_line): Translate coordinates area
13774 dependent.
13775
13776 * dispnew.c (updated_area): Row area being updated in
13777 update_window_line.
13778 (update_window_line): Set it.
13779 (update_marginal_area): Clear to end of line if not in text area.
13780
13781 * window.c (Fset_window_margins): Increment
13782 windows_or_buffer_changed. Adjust glyphs.
13783
13784 * dispextern.h (WINDOW_TEXT_TO_FRAME_PIXEL_X): Convert text
13785 area X coordinates to frame coordinates.
427ec082 13786 (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH): Width of left marginal area.
26901792
DL
13787 (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH): Same for right area.
13788 (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Same for text area.
13789
13790 * xterm.c (draw_glyphs): Use text area width as display width.
13791
13792 * xdisp.c (init_display_info): Subtract widths of marginal areas
13793 from last_visible_x.
13794
13795 * alloc.c (mark_object): Mark objects in glyphs only if they are
13796 overlays. Mark only if current_matrix != 0. Activate the code.
13797
13798 * window.c (Fset_window_margins): Set margins.
13799 (Fwindow_margins): Return margin area widths.
13800 (syms_of_window): Add defsubr's.
13801
13802 * window.h (struct window): left_margin_width, right_margin_width.
13803
13804 * xfns.c (x_set_trunc_area_width): Set truncation pixel width
13805 and cols.
13806
13807 * frame.h (FRAME_TRUNC_COLS): Number of columns occupied by
13808 truncation/overlay arrow area.
13809 (struct frame): trunc_area_pixel_width, and _cols.
13810
13811 * window.c (Fsplit_window): Use it.
13812
13813 * window.c (Fsplit_window): Set cursor vpos to -1 after
13814 splitting.
13815 (Fsplit_window): SUbtract/add FRAME_TRUNC_WIDTH for horizontally
13816 split windows.
13817
13818 * dispnew.c (set_window_cursor_after_update): Accept out
427ec082 13819 of bounds cursor positions.
26901792
DL
13820
13821 * xdisp.c (redisplay_internal): Check that after cursor motion
13822 within line, PT is on same line.
13823
13824 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Don't subtract
13825 FRAME_TRUNC_WIDTH.
13826
13827 * xterm.h (struct x_output): trunc_area_extra.
13828 (CHAR_TO_PIXEL_WIDTH): Add in trunc_area_extra.
13829 (PIXEL_TO_CHAR_WIDTH): Subtract it.
13830 * widget.c (set_frame_size): Set it.
13831 (EmacsFrameSetCharSize): Ditto.
13832 * xfns.c (x_figure_window_size): Ditto.
13833 * xterm.c (x_set_window_size): Ditto.
13834
13835 * dispnew.c (check_matrix_invariants): First try to check window
13836 ends (in #if 0).
13837
13838 * xdisp.c (try_window_reusing_current_matrix): Try window
13839 redisplay with different window start.
13840
138411997-11-01 Gerd Moellmann <gerd@acm.org>
13842
13843 * window.c (make_window): Set window_end_pos/vpos.
13844 (Fsplit_window): Zero last_cursor, window_end_valid.
13845 (Fset_window_buffer): Set window_end_vpos, zero last_cursor.
13846
13847 * dispnew.c (check_matrix_invariants): Check window_end_pos/vpos.
13848
138491997-10-31 Gerd Moellmann <gerd@acm.org>
13850
13851 * window.c (make_window): Initialize last_cursor.
13852 (replace_window): Ditto.
13853
138541997-10-29 Gerd Moellmann <gerd@acm.org>
13855
13856 * window.h: New member last_cursor.
13857 * dispnew.c (direct_output_for_insert): Set it.
13858 (direct_output_forward_char): Ditto.
13859 * xdisp.c (redisplay_internal): Ditto.
13860
138611997-10-28 Gerd Moellmann <gerd@acm.org>
13862
13863 * xdisp.c (redisplay_internal): Optimization 1 change partially
13864 reverted. Check this again later.
13865 (skip_via_matrix): Remove redundent test for
427ec082 13866 MATRIX_ROW_DISPLAYS_TEXT_P.
26901792
DL
13867
138681997-10-27 Gerd Moellmann <gerd@acm.org>
13869
13870 * dispnew.c (update_window_line): Call
13871 after_update_window_line_hook only for interesting constellations.
13872 (free_glyph_matrix): Fix memory leak.
13873
13874 * window.h: Include blocker WINDOW_H_INCLUDED, include
13875 dispextern.h.
13876 (struct window): phys_cursor_glyph as struct glyph. * window.c
13877 (make_window): Initialize it.
427ec082 13878 (replace_window): Ditto.
26901792
DL
13879 * dispnew.c (free_window_matrices): Remove freeing of
13880 phys_cursor_glyph.
13881 (check_matrix_invariants): Renamed from check_current_matrix_...
13882 * xterm.c: All references to phys_cursor_glyph changed.
13883
13884 * dispextern.h (DISPEXTERN_H_INCLUDED: New include blocker.
13885
13886 * xfaces.c: Comment update.
13887
13888 * window.h (struct window): Make phys_cursor_glyph a struct glyph
13889 pointer. Remove phys_cursor_ascent, descent, etc.
13890 * dispnew.c (free_window_matrices): Free it.
13891 * window.c (make_window): Allocate it.
13892 (replace_window): Ditto.
13893 * xterm.c (x_draw_phys_cursor_glyph): Draw it.
13894 (x_display_and_set_cursor): Fill it.
13895 (x_phys_cursor_in_rect_p): Use it.
13896 (x_draw_hollow_cursor): Ditto.
13897 (x_draw_bar_cursor): Ditto.
13898 (x_erase_phys_cursor): Ditto.
13899
13900 * xdisp.c (skip_in_display_line_to): Use SET_INFO_FROM_CURSOR.
13901
13902 * xterm.c (XTget_display_info): Handle 3D facess.
13903 (draw_glyphs): Ditto.
13904
13905 * xdisp.c (Fdump_redisplay_state): Change interactive spec to "p".
13906
13907 * xfaces.c (Fset_face_attribute_internal): New face attribute
13908 shadow-thickness.
13909 (copy_face): Handle shadow_thickness.
13910 (face_eql): Ditto.
13911 (merge_faces): Ditto.
13912 (compute_base_face): Ditto.
13913
13914 * dispextern.h (struct display_cursor): New member start_of_3d_run_p.
13915 (struct display_info): Ditto.
13916 (SET_INFO_FROM_CURSOR): Transfer it to display_info.
13917 * xdisp.c (compute_cursor_face): Set it.
13918 (advance_display_cursor): Clear it.
13919
13920 * xdisp.c (init_string_cursor): Initialize face_id to -1.
13921 (init_string_cursor): Init face_id to zero.
13922
13923 * dispextern.h (struct face): New member shadow_thickness.
13924
427ec082 13925 * xdisp.c (compute_cursor_face): Set limit for text property
26901792
DL
13926 search to 100.
13927
13928 * dispnew.c (update_window_line): Try to resynch with current line
13929 to prevent mode line flickering.
13930
139311997-10-26 Gerd Moellmann <gerd@acm.org>
13932
427ec082 13933 * dispnew.c (set_window_cursor_after_update): React again
26901792
DL
13934 on cursor_in_echo_area >= 0.
13935
13936 * xdisp.c (echo_area_display): Clear desired matrix before
13937 displaying into it.
13938 (display_menu_bar): Clear glyph row instead of hoping it is not
13939 enabled. This is safer.
13940
13941 * dispnew.c (check_current_matrix_invariants): Check only
13942 visible rows.
13943
13944 * xdisp.c (try_window_id): Handle window end setting in case of
13945 display to end of window, but only non-text lines displayed.
13946
13947 * dispnew.c (check_current_matrix_invariants): Check nrows for zero.
13948 (check_current_matrix_invariants): Check used counts.
13949
13950 * Revisiob v114.
13951
13952 * dispnew.c (scrolling): Use hash codes from rows.
13953
13954 * xdisp.c (Fdump_redisplay_state): Dump current matrix.
13955
13956 * dispnew.c (scrolling_window): Invalidate conflicting runs.
13957
139581997-10-25 Gerd Moellmann <gerd@acm.org>
13959
13960 * dispextern.h (struct glyph_matrix): Flag no_scrolling_p.
13961 * dispnew.c (update_window): Use it.
13962 (clear_glyph_matrix): Clear it.
13963 * xdisp.c (try_window_id): Set it.
13964
13965 * dispextern.h (struct glyph_row): New flag ends_at_zv_p.
13966
13967 * xdisp.c (redisplay_internal): Increment glyph positions differently.
13968
13969 * dispextern.h: More comments etc.
13970
139711997-10-24 Gerd Moellmann <gerd@acm.org>
13972
13973 * dispnew.c (set_window_cursor_after_update): Set cursor
13974 for cursor_in_echo_area == 0 to (0, 0).
13975
13976 * dispextern.h (struct glyph_row): New flags continuation_line_p
13977 and displays_text_p.
13978 (MATRIX_ROW_DISPLAYS_TEXT_P): Use displays_text_p.
13979 * xdisp.c (display_line): Set them.
13980 (try_window_id): Move to start of continuation line to find out
13981 continuation_line_width.
13982 (first_unchanged_current_row): Don't retract row if continued,
13983 truncated etc.
13984
13985 * xterm.c: Map X coordinates.
13986
139871997-10-23 Gerd Moellmann <gerd@acm.org>
13988
13989 * dispnew.c (buffer_posn_from_coords): Translate X for right to
13990 left text.
13991
13992 * xdisp.c (display_line): Set right_to_left_p after clearing the row.
13993
13994 * xterm.c (XTclear_end_of_line): Respect right_to_left_p.
13995
f28eba7b 13996 * xdisp.c (try_window_id): Clear desired matrix if not successul.
26901792
DL
13997
13998 * xdisp.c (try_window_id): Call update_window_begin_hook/end_hook.
13999
14000 * dispnew.c (update_window_begin_hook, update_winodw_end_hook):
14001 Set this to functions to be called before/after window updates.
14002 (direct_output_for_insert): Call them.
14003 (update_window): Ditto.
14004 (update_frame): Call update_begin/ update_end for windows.
14005
14006 * xterm.c (XTupdate_window_begin): Called before window updates.
14007 (XTupdate_end): Called after window updates.
14008 (x_initialize): Set hooks to above.
14009
14010 * xdisp.c (init_display_info): Initialize c and len of
14011 display_info.
14012
14013 * xterm.c (x_get_char_font_and_encoding): Bug fix. Don't load
14014 fonts more than once.
14015
140161997-10-22 Gerd Moellmann <gerd@acm.org>
14017
14018 * xdisp.c (display_line): Handle most common case of current_x <
14019 last_visible_x separately.
14020
14021 * dispextern.h (display_element_type): DISP_ELLIPSIS removed.
14022
14023 * dispnew.c (update_window_line): Compare pixel widths of glyphs
14024 so that face extending space doesn't compare equal to normal space
14025 with same face.
14026
14027 * xdisp.c (display_line): Make sure we have a position for
14028 a line end in an otherwise blank line if face is extended.
14029
14030 * dispnew.c (direct_output_for_insert): Increment row end position.
14031
427ec082 14032 * window.c (Fpos_visible_in_window_p): Use old meaning of
26901792
DL
14033 window_end_pos.
14034
14035 * xdisp.c (init_display_cursor_from_glyph_pos): New.
14036
14037 * dispextern.h (MATRIX_ROW_FIRST_POS): Use row start.
14038
14039 * dispnew.c (increment_glyph_row_buffer_positions): Adjust
14040 start and end positions in rows.
14041 (increment_glyph_row_buffer_positions): Stop adjusting at
14042 glyphs with positions <= 0.
14043
14044 * dispextern.h (struct glyph_pos): Structure desribing a text
427ec082 14045 position including position in overlay.
26901792
DL
14046 (struct glyph_row): Use it for start and end positions.
14047 (struct display_cursor): Use it.
14048 * xdisp.c: Use it.
14049 (display_line): Set row start and end positions.
14050
14051 * dispnew.c (copy_row_except_pointers): Use bcopy and struct
14052 assignment.
14053
140541997-10-21 Gerd Moellmann <gerd@acm.org>
14055
14056 * dispnew.c (update_window): Add scrolling_window again. It's
14057 necessary for scroll_step != 0.
14058
14059 * xdisp.c (redisplay_window): Use vmotion for scroll_step
14060 scrolling.
14061
14062 * xdisp.c (last_unchanged_current_row): Use window_end_vpos.
14063
14064 * xterm.c (XTupdate_end): Flush only for messages.
14065
14066 * xdisp.c (try_window_id): Assert last_unchanged_row >=
14067 first_unchanged_row.
14068
14069 * xterm.c (XTupdate_end): Flush if miniwindow.
14070
14071 * dispnew.c (matrix_row_last_pos): New function.
14072 * dispextern.h (MATRIX_ROW_LAST_POS): Call it.
427ec082 14073 Large comment moved to xdisp.c.
26901792
DL
14074
14075 * xdisp.c (redisplay_window): Bug fix: PT set to value > Z.
14076 (skip_via_matrix): Check window_end_valid instead of
14077 display_completed.
14078
14079 * dispnew.c (scroll_glyph_matrix_range): Bug fix.
14080 (update_window): scrolling_window commented out. It has negative
14081 effect most of the time.
14082
14083 * xdisp.c (try_window_id): Correct parameters to
14084 scroll_glyph_matrix_range.
14085
427ec082 14086 * xterm.c (XTupdate_end): XFlush commented out.
26901792
DL
14087
14088 * window.h: Comments for window_end_pos/vpos.
14089
f28eba7b 14090 * xdisp.c (skip_to): Assert current_buffer is the buffer
26901792
DL
14091 of the window in which we are skipping.
14092
14093 * dispnew.c (update_window_line): Optimized clear_end_of_line.
14094
14095 * xterm.c (draw_glyphs): Bug fix. Return window relative X
14096 reached.
14097
140981997-10-20 Gerd Moellmann <gerd@acm.org>
14099
14100 * dispextern.h (MATRIX_ROW_LAST_POS): Go back one glyph if this is
14101 a face extending glyph.
14102
427ec082 14103 * xdisp.c (try_window_id): Check if point will appear.
26901792
DL
14104 (set_cursor_from_row): Set cursor position from a glyph row.
14105
14106 * dispnew.c (update_window_line): Write entire line if hash
14107 codes of lines differ.
14108
14109 * dispextern.h (MATRIX_ROW_EXTENDS_FACE_P): Value is non-zero
14110 if glyph row has an infinite width glyph at its end.
14111
14112 * xdisp.c (last_unchanged_current_row): Respect partially visible
14113 lines when looking for the last row displaying text.
14114 (try_window_id): Handle partially visible lines better.
14115
141161997-10-19 Gerd Moellmann <gerd@acm.org>
14117
14118 * dispnew.c (update_window): Remove unused variable.
14119 (update_window_line): Simplified.
14120
14121 * xterm.c (x_get_char_font_and_encoding): Handle most common
14122 case at the beginning.
14123
14124 * xdisp.c (advance_display_cursor): Dispatch on method and
14125 order if statements by expected call frequency. Fixed unclosed
14126 comment.
14127
14128 * xdisp.c (try_window_id): New implementation.
14129
14130 * dispnew.c (increment_glyph_row_buffer_positions): Capture
14131 rows displaying a line end, only.
14132
141331997-10-18 Gerd Moellmann <gerd@acm.org>
14134
14135 * window.c (Fpos_visible_in_window_p): Remove use of window_end_vpos.
14136
141371997-10-14 Gerd Moellmann <gerd@acm.org>
14138
14139 * xdisp.c (display_line): Mark empty lines not corresponding to
14140 text with position -1.
14141
14142 * xterm.c (x_erase_phys_cursor): Don't bother to erase cursor if
14143 not within window matrix bounds.
14144
14145 * dispextern.h (struct display_cursor): New member REGION_SHOWING_P.
14146 (struct display_info): NGLYPHS_TO_IGNORE removed.
14147 * xdisp.c: References to NGLYPHS_TO_IGNORE removed.
14148 * term.c: Ditto.
14149 * xterm.c: Ditto.
14150
14151 * xdisp.c (init_display_cursor): Set it.
14152 (display_line): Use it to set W->REGION_SHOWING.
14153
14154 * xdisp.c (skip_via_matrix): Check for overlay arrow.
14155
14156 * region-cache.h: functino prototypes with PROTO.
14157
14158 * dispnew.c (buffer_posn_from_coords): Use -1 as skip position.
14159
14160 * xdisp.c (skip_via_matrix): Check for rows that don't contain
14161 a position.
14162
427ec082 14163 * xterm.c (XTmouse_position): Calculate LAST_MOUSE_GLYPH
26901792
DL
14164 rectangle based on minimum character bounds.
14165
f28eba7b 14166 * keyboard.c (make_lispy_event): Mouse clicks; don't do frame
26901792
DL
14167 glyph position calculations.
14168 (make_lispy_movement): Use buffer_posn_from_coords and window
14169 relative coordinates.
14170
14171 * xterm.c (construct_mouse_click): Remove #if 0 case.
14172
14173 * dispextern.h (MATRIX_ROW_BOTTOM_Y): Return bottom pixel y of
14174 given row.
14175
427ec082
SS
14176 * xdisp.c (skip_via_matrix): Skip using current matrix if up to
14177 date.
26901792
DL
14178 (skip_to): Use it.
14179 (redisplay_window): Remove code skipping using current matrix.
14180
141811997-10-13 Gerd Moellmann <gerd@acm.org>
14182
14183 * xdisp.c (redisplay_window): Use available current matrix to
14184 skip faster when only point is moved withing the window.
14185
427ec082 14186 * intervals.c: Include stdio.h.
26901792
DL
14187 (find_interval): Trace to stderr to catch some nasty error
14188 that did not yet occur again with tracing.
14189 (set_point): Ditto.
14190
14191 * dispnew.c (shift_glyph_matrix): Experimental code for handling
14192 cursor positioning on partially visible lines.
14193 (set_window_cursor_after_update): Ditto.
14194
f28eba7b 14195 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Bug fix.
26901792
DL
14196
14197 * window.h (struct window): start_y removed.
14198
14199 * window.c (make_window): start_y removed.
14200 (replace_window): Ditto.
14201
427ec082 14202 * xdisp.c (last_max_ascent, last_max_descent): Ascent and
26901792
DL
14203 descent values of the last line processed by skip_to.
14204 (redisplay_window): Use them.
14205 (skip_to): Set them.
14206
14207 * dispextern.h (struct display_cursor): New member METHOD.
14208
14209 * xdisp.c: Use function member METHOD.
14210
14211 * xdisp.c (set_next_stop_pos): Determine next position at which to
14212 check for face properties, invisible text properties, and overlays.
14213 (compute_cursor_face): Use it.
14214 (get_overlays_for_cursor): Ditto.
14215 (reseat_cursor): Ditto.
14216 (next_display_element): Ditto.
14217
14218Sun Aug 24 08:50:52 1997 Gerd Moellmann <gerd@acm.org>
14219
14220 * termhooks.h: Some hooks with prototypes.
14221
14222 * term.c: Some hooks with function prototypes.
427ec082 14223
26901792
DL
14224 * xdisp.c (reseat_cursor): Additional argument force_p. Avoid
14225 computing face if possible.
14226
14227 * xdisp.c (next_display_element): Use face from glyph from display
14228 table only if != 0.
14229
14230 * emacs.c: FreeBSD headers for profiling removed.
14231
427ec082
SS
14232 * dispnew.c (direct_output_for_insert): Don't use PT-1 for
14233 display cursor, use DEC_POS instread.
26901792
DL
14234
14235 * xfaces.c (load_font): Use x_load_font to load fonts so that
427ec082 14236 all fonts are in the font table.
26901792
DL
14237 (unload_font): Don't XFreeFont.
14238
14239 * dispnew.c (row_equal_p): Compare ascent, descent and visible
14240 row height.
14241
14242 * xterm.c (draw_glyphs): Use 8-bit functions if possible.
14243 (x_erase_phys_cursor): Clear only visible part of row.
14244 (x_draw_bar_cursor): Set clipping.
14245 (x_draw_hollow_cursor): Ditto.
14246 (x_display_and_set_cursor): Remove clipping.
14247 (expose_window_tree): Take trunc border into account.
14248 (x_phys_cursor_in_rect_p): Test if phys_cursor intersects a rect.
14249 (expose_window): Use it.
14250
14251 * xdisp.c (display_string): Catch case that we are called with
14252 current_x already beyond max_x.
14253 (global): Fix usage of FRAME_WINDOW_P <-> FRAME_WINDOW_REDISPLAY_P.
14254 (init_display_info): Subtract vertical border glyph from
14255 last_visible_x.
14256
14257 * scroll.c (scrolling_window_1): Removed.
14258
14259 * dispnew.c (adjust_frame_glyphs): Split into two functions,
14260 based on redisplay method used.
14261 (adjust_frame_glyphs_for_frame_redisplay): Part for frame
14262 based redisplay.
14263 (adjust_frame_glyphs_for_window_redisplay): Part for purely
14264 window based redisplay.
14265
14266 * frame.h (FRAME_WINDOW_REDISPLAY_P): Changed to not depend
14267 on data structures.
14268
14269 * dispnew.c (adjust_glyph_matrix): Additional parameter W.
14270 Handle own storage for purely window based redisplay.
14271 (allocate_matrices_for_frame_redisplay): Formerly part of
427ec082 14272 allocate_matrices.
26901792
DL
14273 (allocate_matrices_for_window_redisplay): Ditto.
14274
14275 * dispextern.h (struct glyph_matrix): window_top_y,
14276 window_height.
14277
14278 * dispnew.c (allocate_matrices_for_window_redisplay): Detect
14279 and optimize some common cases of window changes.
14280
14281 * emacs.c (main): Remove own profiling code because 0.95 now
14282 has it in.
14283
14284Fri Aug 22 18:46:43 1997 Gerd Moellmann <gerd@acm.org>
14285
14286 * xterm.c (XTupdate_end): Draw horizontal border at right
14287 position.
14288 (expose_window): Draw vertical border.
14289 (XTclear_end_of_line): Accept width <= 0 and height <= 0 but
14290 don't do anything.
14291
14292 * xdisp.c (redisplay_internal): Set update_mode_line if paused
14293 for non full width windows only if not window redisplay.
14294
14295 * dispnew.c (update_window_tree): Or paused_p return of called
14296 functions.
14297
14298 * xterm.c (x_display_and_set_cursor): Return if hpos/vpos outside
14299 of window.
14300
14301 * window.c (Fset_window_configuration): adjust_glyphs being
14302 called twice.
14303 (Fset_window_configuration): Set frame garbaged if not all
14304 leaf windows reused.
14305
143061997-08-21 Gerd Moellmann <gerd@acm.org>
14307
14308 * dispnew.c (clear_glyph_matrix): Additional argument specifiying
14309 that rows should really be cleared. Used for current matrices.
14310
14311 * dispnew.c (scrolling_window): Bug fix.
427ec082 14312 (line_dance_hook): Formerly line_dance_fn, take only one
26901792
DL
14313 parameter.
14314
14315 * dispextern.h (struct run): Remove current_vpos.
14316
14317 * xterm.c (do_line_dance): Only one parameter.
14318
f28eba7b 14319 * xdisp.c (display_line): Set continued_p.
26901792
DL
14320
14321 * dispextern.h (struct glyph_row): New flag continued_p.
14322 Fix truncated_on_left_p and truncated_on_right_p to be bits.
427ec082 14323 (struct glyph_row):
26901792
DL
14324
14325Thu Aug 21 14:37:34 1997 Gerd Moellmann <gerd@acm.org>
14326
14327 * xdisp.c (skip_vertically_backward): Avoid negative vpos values
14328 when calling skip_to for continued lines.
14329
14330 * dispnew.c (change_frame_size_1): Set frame garbaged.
14331
14332 * xterm.c (expose_window): Check enabled_p of rows.
14333
14334 * xdisp.c (redisplay_internal): Compare line heights before and
14335 now for redisplay optimization 2 (hit).
14336 (display_line): Set this_line_pixel_height.
14337
14338 * xterm.c (x_draw_row_borders): Use FRAME_MODE_LINE_HEIGHT height
14339 value.
14340 (x_clip_to_row): Use MATRIX_ROW_VISIBLE_HEIGHT. Simplified.
14341 (do_line_dance): Simplified and pixel corrected.
14342
14343 * dispnew.c (scrolling_window): Simplified.
14344
14345 * xterm.c (x_draw_3d_border): Inset rectangle by line width.
14346
14347 * dispnew.c (update_window): Add FRAME_MODE_LINE_BORDER_WIDTH
14348 to mode line row->x.
14349
14350Wed Aug 20 11:23:28 1997 Gerd Moellmann <gerd@acm.org>
14351
14352 * xterm.c (x_get_char_font_and_encoding): Don't let fontset
14353 override font of face.
14354 (draw_glyphs): Correct return value.
14355 (XTclear_end_of_line): Compare differently with output cursor
14356 position.
14357 (x_draw_hollow_cursor): 2 parameters, window and row.
14358
14359 * dispnew.c (update_window_line): If rows have different height
14360 or y, write entire line.
14361
f28eba7b 14362 * xdisp.c (compute_line_metrics): Reset max_ascent and max_descent
26901792
DL
14363 of info struct.
14364
427ec082 14365 * xfaces.c (Fset_face_attribute_internal): Don't call
26901792
DL
14366 frame_update_line_height.
14367 (merge_faces): Don't use default font if new font has different
14368 size.
14369
14370Tue Aug 19 14:38:05 1997 Gerd Moellmann <gerd@acm.org>
14371
14372 * xterm.c (x_display_and_set_cursor): Use FONT_WIDTH if width
14373 unknown. Some fonts have min_width zero.
14374 (draw_glyphs): Don't draw underlines to the end of the display
14375 line if face is merely extended to that point.
14376 (draw_glyphs): Don't assume background is filled if
14377 just_foreground_p but extending to end of line.
14378
14379 * xterm.c (XTclear_end_of_line): Clip only to display_height - 1
14380 for partially visible last lines.
14381 (x_clip_to_row): Ditto.
14382 (x_clip_to_row): Clip to display_height-1 if y + line_height >
14383 display_height since line_height is really a line distance.
14384 (x_display_and_set_cursor): If cursor on padding glyph, use
14385 min_bounds pixel width.
14386
14387Mon Aug 18 09:39:18 1997 Gerd Moellmann <gerd@acm.org>
14388
14389 * xterm.c (x_clip_to_row): Height value was 1 too large.
14390 (XTclear_end_of_line): Clip to display area.
14391
14392 * xfns.c (x_figure_window_sizes): Add trunc border width
14393 to frame pixel width.
14394
14395 * xdisp.c (next_display_element): Don't display overlay strings
14396 within invisible text.
427ec082 14397 (skip_vertically_backward): Skip display lines.
26901792
DL
14398
14399Sat Aug 16 13:13:32 1997 Gerd Moellmann <gerd@acm.org>
14400
14401 * xdisp.c (x_consider_frame_titie): Don't pad with blanks.
14402
14403 * xdisp.c (next_display_element): Next invisible
14404 text check position computed differently.
14405
14406 * dispextern.h (struct display_cursor): last_invisible_text_pos
14407 and display_ellipsis_for_invisible_p removed.
14408
14409 * xdisp.c (next_display_element): Set last_invisible_text_pos
14410 to the last position at which invisible text was found. Don't
14411 decrement cursor.pos for newlines and cr with ellipsis. Set
427ec082 14412 dpvec for `...' due to invisible text directly.
26901792
DL
14413 (redisplay_internal): Don't assert that cursor is at PT after
14414 skip_to. It may be in invisible text.
14415
427ec082 14416 * keyboard.c (make_lispy_event): For mouse clicks, use
26901792
DL
14417 x_y_to_hpos_vpos.
14418
427ec082 14419 * xdisp.c (next_display_element): Call get_overlays_for_cursor when
26901792
DL
14420 next_overlay_pos is reached. Use limit cursor.pos + 100 when
14421 checking for invisible text.
14422
14423 * xterm.h (WINDOW_COL_PIXEL_X etc.) Removed.
14424
14425 * dispextern.h (WINDOW_TO_FRAME_HPOS/VPOS): Moved to dispnew.c
14426
14427 * xfns.c (x_contour_region): Use pixel coordinates from window
14428 cursor instead of WINDOW_TO_FRAME_H/VPOS.
14429
14430 * dispextern.h (FRAME_TO_WINDOW_HPOS, FRAME_TO_WINDOW_VPOS):
14431 Removed.
14432
14433 * dispnew.c (frame_to_window_hpos, frame_to_window_vpos): Removed.
14434
14435 * xterm.c (x_y_to_hpos_vpos): Get hpos/vpos from window relative
14436 pixel coordinates.
14437 (note_mouse_highlight): Use it.
14438
14439 * xdisp.c (echo_area_display): Ignore calls for terminal frames
14440 under a window system.
14441
427ec082 14442 * dispnew.c (adjust_frame_glyphs): Call redraw_frame if
26901792 14443 necessary.
427ec082 14444 (update_window_line): Add width of face padding glyph to
26901792
DL
14445 displayed widths of rows.
14446
14447 * xterm.c (x_display_and_set_cursor): Set clipping after
14448 erasing cursor.
427ec082
SS
14449
14450 * window.c (Fset_window_configuration): Free only those
26901792
DL
14451 window matrices not reused.
14452 (get_leaf_windows): Build vector of leaf windows.
14453 Corrupted archive restored from v77.
14454
f28eba7b 14455 * xdisp.c (display_string): Stop at >= last_visible_x if truncating
26901792
DL
14456 like display_line does.
14457
14458 * xdisp.c (display_mode_line): Don't hscroll mode line.
14459
14460 * xterm.c (draw_glyphs): Wrong run_width computed for horiz. split
14461 windows.
14462 (x_scroll_bar_create): #3039 Clear area below scroll bar to remove
14463 garbage between mode lines when splitting windows horiz.
14464
14465 * dispnew.c (direct_output_for_insert): Bug fix.
14466
14467 * dispextern.h (struct display_cursor): New member string_length.
14468
14469 * xdisp.c (next_display_element): Return padding spaces.
f28eba7b 14470 (init_string_cursor): Take precision and field_width
26901792
DL
14471 (display_string): Use string cursor, skip over invisible text.
14472
14473Thu Aug 14 10:41:41 1997 Gerd Moellmann <gerd@acm.org>
14474
14475 * xterm.c (x_clip_to_row): Clip to partially visible lines.
14476 (x_display_and_set_cursor): Call it.
14477 (draw_glyphs): Call it
14478 (draw_bitmap): Call it.
14479
427ec082 14480 * dispnew.c (adjust_frame_glyphs): Optimize frame garbaging.
26901792
DL
14481 (allocate_leaf_matrix): Return flags.
14482 (row_equal_p): Compare enabled_p.
14483
14484 * xterm.c (x_erase_phys_cursor): Set phys_cursor_on_p to 0
14485 for type == -1.
14486
14487 * xterm.c (x_display_and_set_cursor): Bar cursor 1 pixel taller.
427ec082 14488 (draw_glyphs): Clip height one pixel taller.
26901792 14489
427ec082 14490 * dispnew.c (direct_output_for_insert): Give up for hscrolled
26901792
DL
14491 mini window.
14492
f28eba7b 14493 * xdisp.c (display_line): Don't scroll mini prompt.
26901792 14494
427ec082
SS
14495 * xdisp.c (echo_area_display): Call update_single_window if
14496 possible.
26901792
DL
14497
14498 * dispnew.c (update_window_line): Call scrolling_window.
f28eba7b 14499 (scrolling_window): Work on enabled desired lines only.
26901792
DL
14500 (update_single_window): Update a single window like update_frame
14501 does for all windows.
427ec082 14502 (update_window, update_window_tree): Additional argument
26901792
DL
14503 no_scrolling_p.
14504 (update_frame): Pass no_scrolling_p to update_window_tree.
14505 (update_window): Don't call scrolling_window if no_scrolling_p.
14506
14507 * xterm.c (x_erase_phys_cursor): Do nothing if type == -1.
427ec082
SS
14508 Erase under hollow cursor.
14509 (x_display_and_set_cursor): Do nothing if cursor glyph row
26901792
DL
14510 not enabled. Draw bar cursor 1 pixel smaller.
14511
f28eba7b 14512 * dispnew.c (adjust_frame_glyphs): Don't set frame garbaged
26901792
DL
14513 since update will follow soon.
14514
14515 * xdisp.c (echo_area_display): Unitialized variable.
14516
f28eba7b 14517 * xterm.c (draw_bitmap): Previously draw_truncation; draw
26901792
DL
14518 overlay arrow bitmap.
14519
f28eba7b 14520 * xdisp.c (display_line): For truncated lines, consider everything
427ec082 14521 up to the final \n as part of the line for cursor positioning.
26901792 14522
f28eba7b
SM
14523 * xterm.c (draw_truncation): Take FRAME_X_TRUNC_WIDTH into account.
14524 (x_after_update_window_line): Clear trunc marks.
26901792
DL
14525
14526 * xterm.h (FRAME_X_TRUNC_WIDTH).
14527
f28eba7b 14528 * frame.h (FRAME_TRUNC_WIDTH): Width of area at the left margin
26901792
DL
14529 of a window reserved for truncation mark.
14530
427ec082 14531 * dispextern.h: Take FRAME_TRUNC_WIDTH into account.
26901792
DL
14532
14533 * dispnew.c (update_window_line): Call after_update_windwo_line-
427ec082 14534 hook.
26901792
DL
14535
14536 * xdisp.c (display_line): Set overlay_arrow_p in row.
14537
14538 * dispextern.h (struct glyph_row): New flag overlay_arrow_p.
14539
14540 * xterm.c (x_after_update_window_line): Draw truncation marks.
14541
14542 * xdisp.c (display_line): Insert truncation for lines with
14543 current_x > 0.
14544
14545 * xterm.c (x_draw_row_borders): Convert y to frame coords.
14546 Correct y by 1.
14547 (x_display_cursor): Use default font width if width not
427ec082 14548 known.
26901792 14549
f28eba7b 14550 * xdisp.c (echo_area_display): Set row->y.
26901792
DL
14551
14552 * dispnew.c (set_window_cursor_after_update): Don't assume
14553 all rows are enabled.
14554
14555 * xdisp.c (skip_in_display_line_to): Test cursor.position instead
14556 of cursor.pos.
14557 (skip_in_display_line_to): Check cursor.position after call to
14558 next_display_element.
14559
427ec082 14560 * dispextern.h (CURSOR_AT_P): Test if cursor has reached
26901792
DL
14561 buffer position.
14562
14563 * xdisp.c (display_line): Set row->y here.
14564 (skip_in_display_line_to): Test for to_pos after all glyphs
14565 have been added to hpos so that hpos is at the end of all
14566 glyphs for to_pos.
14567 (start_display): Remove assertion.
14568
14569 * dispnew.c (direct_output_forward_char): Bug fix, = instead of
14570 ==.
14571 (update_window): Don't set row->y here.
14572
14573 * xdisp.c (next_display_element): Don't translate control chars
14574 from display table entries.
14575
427ec082 14576 * dispnew.c (direct_output_for_insert): Set cursor before
26901792
DL
14577 update end to prevent cursor flickering. Revert changes to
14578 setting cursor.endpos.
14579
14580Wed Aug 13 10:46:12 1997 Gerd Moellmann <gerd@acm.org>
14581
14582 * dispnew.c (direct_output_for_insert): Don't set cursor.endpos
14583 to PT because this prevents multi-byte characters from being
14584 recognized.
14585
427ec082
SS
14586 * xdisp.c (skip_to, display_line): Advance cursor at end of
14587 truncated line.
26901792
DL
14588
14589 * xterm.c (x_draw_3d_borders): Use CapRound. Struct rect
14590 replaced by XRectangle.
14591
14592 * dispnew.c (scrolling_window): New method.
14593
14594 * xterm.c (do_line_dance): New implementation, new method.
427ec082 14595
26901792
DL
14596 * xdisp.c (draw_glyphs): Draw truncation bitmaps. Clip to
14597 visible part of line.
14598
14599 * dispnew.c (update_window_line): Fill inverse video lines
14600 with infinite width space.
14601 (update_window): Handle completely empty matrices.
14602 (set_window_cursor_after_update): Bug fix.
14603
427ec082 14604 * xterm.c (draw_glyphs): Stop drawing at right window end.
26901792
DL
14605
14606 * dispnew.c (update_window_line): Don't ignore spaces, don't
14607 fill with spaces.
14608
14609 * xdisp.c (compute_line_metrics): Stop adding glyph widths with
14610 the first glyph having width 0.
14611
14612 * xterm.c (draw_glyphs): Let a glyph pixel with of 0 denote
427ec082 14613 a glyph that extends to the end of the line.
26901792
DL
14614
14615 * xdisp.c (display_line): Insert one padding glyph
14616
14617 * xdisp.c (skip_in_display_line_to): Don't subtract shift left
14618 amount from info.current_x.
14619 (display_line): Ditto.
14620
14621 * dispnew.c (direct_output_for_insert): Correct use of cursor.x.
14622 (change_frame_size_1): Correct cursor.x if frame gets too small.
14623 (update_window_line): Start at row->x.
14624
14625 * xdisp.c (redisplay_internal): Correct cursor.x (everwhere
14626 in xdisp.c).
14627
14628 * xterm.c (set_output_cursor): Use window relative X/Y.
14629 (global): Use window relative output cursor x/y.
14630 (draw_glyphs): Remove y param. Pass window relative x/y.
14631
14632 * dispnew.c (update_window): Start rows at start_y.
14633 (update_window): Don't try scrolling because it wouldn't work
14634 with variable height lines, anyway.
14635
14636 * dispextern.h (struct glyph_row): Remove shift_left_by,
14637 add x.
14638
14639 * window.h: (struct window): New member start_y.
14640
14641 * window.c (replace_window): Initialize start_y.
14642 (make_window): Ditto.
14643
14644Tue Aug 12 14:53:04 1997 Gerd Moellmann <gerd@acm.org>
14645
14646 * xterm.c (draw_glyphs): Clip rows that would paint over
427ec082 14647 the mode line.
26901792 14648
427ec082
SS
14649 * dispnew.c (update_window): Take mode line border into
14650 account.
26901792
DL
14651
14652 * xterm.h (FRAME_MODE_LINE_BORDER_WIDTH): Number of pixels
427ec082 14653 of border around mode line.
26901792
DL
14654
14655 * xterm.c (x_draw_row_borders): Bug fix.
14656 (x_erase_phys_cursor): Set pyhs_cursor.x/y before calling
14657 drawing functions.
14658
14659 * xterm.c (x_draw_row_border): Experimental; draw 3d borders
427ec082 14660 around modeline instead of inverting it.
26901792 14661
427ec082 14662 * xterm.c (glyph_to_pixel_coords): Use current matrix.
26901792
DL
14663
14664 * dispnew.c (buffer_posn_from_coords): Use SKIP_TO. Now takes
14665 window relative pixel coordinates as arguments.
14666
14667 * keyboard.c (make_lispy_event): Use BUFFER_POSN_FROM_COORDS
14668 with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
14669 COORDS mit new arguments.
14670
14671Mon Aug 11 12:32:34 1997 Gerd Moellmann <gerd@acm.org>
14672
14673 * xdisp.c (start_display): Use SKIP_TO instead of SKIP_IN-
427ec082 14674 DISPLAY_LINE.
26901792
DL
14675
14676 * keyboard.c (make_lispy_event): WINDOW_FROM_COORDINATES with
14677 pixel coords.
14678 (make_lispy_movement): Same.
14679
14680 * xterm.c (note_mouse_highlight): Use WINDOW_FROM_COORDINATES
14681 with new parameter meaning.
14682
14683 * window.c (Fcoordinates_in_window_p): Convert Lisp params
14684 from canon units to pixels.
14685 (coordinates_in_window): Pixel based.
14686 (Fcoordinates_in_window_p): Convert result pixel values back
14687 to canonical units.
14688
14689 * window.h: phys_cursor_ascent + descent instead of height.
14690
14691 * xterm.c (XTget_char_info): Use per char metrics for multi-byte
14692 chars with charset width 1.
14693
14694 * dispnew.c (direct_output_for_insert): Set updated_row.
14695
14696Sat Aug 9 12:11:44 1997 Gerd Moellmann <gerd@acm.org>
14697
14698 * dispextern.h (struct glyph): Padding flag removed.
14699
14700Tue Aug 5 09:59:08 1997 Gerd Moellmann <gerd@acm.org>
14701
14702 * sysdep.c (reset_sys_modes): cursor_to with 4 params.
14703
14704 * keyboard.c (interrupt_signal): Cursor_to with 4 params.
14705
14706 * dispnew.c (update_window_line): Use pixels.
14707
14708 * xdisp.c (compute_line_metrics): Correct pixel_width by
14709 shift_left_by.
14710
14711 * dispextern.h (struct glyph_row): FIRST_SHIFTED_LEFT_GLYPH
427ec082 14712 removed. Remove references to it everywhere. Reverse_p in
26901792
DL
14713 glyph_row -> right_to_left_p. Change references to it.
14714
14715Mon Aug 4 18:09:27 1997 Gerd Moellmann <gerd@acm.org>
14716
14717 * dispnew.c (direct_output_for_insert): Use INSERT_GLYPHS.
14718
14719 * xterm.c (XTinsert_glyphs): Implement it.
14720
14721 * term.c (insert_glyphs): UPDATING_FRAME may be NULL in case
14722 of a call from DIRECT_OUTPUT_FOR_INSERT.
14723
14724 * window.h (struct cursor_pos): Keeps both matrix positions
14725 and pixel positions.
14726 (struct window): Use it.
14727
14728 * dispnew.c (direct_output_for_insert): New version.
14729
14730 * xdisp.c (redisplay_internal): Don't do anything if it has
14731 already be done directly.
14732
14733 * keyboard.c (command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
14734 for any character.
14735
14736Thu Jul 31 15:39:10 1997 Gerd Moellmann <gerd@acm.org>
14737
14738 * xdisp.c (echo_area_display): Use new DISPLAY_STRING.
14739
14740Wed Jul 30 12:18:03 1997 Gerd Moellmann <gerd@acm.org>
14741
14742 * dispextern.h (struct glyph_row): MAX_ASCENT, MAX_DESCENT.
14743 (struct glyph): ASCENT, DESCENT.
14744 (MATRIX_ROW_PIXEL_HEIGHT): Pixel height of row.
14745 (GLYPH_PIXEL_HEIGHT): Pixel height of glyph.
14746
14747 * xterm.c (XTget_display_info): Correct tab computation.
14748
14749 * term.c (get_display_info): Correct tab computation.
14750
14751 * dispextern.h (struct display_cursor): WHAT_FOUND, SOURCE_OBJECT.
14752 Renamed from CHAR_CURSOR.
14753
14754Tue Jul 29 12:52:40 1997 Gerd Moellmann <gerd@acm.org>
14755
14756 * xdisp.c (display_text_line): Mostly pixel oriented.
14757
14758 * dispextern.h (struct glyph): BOX_WIDTH -> PIXEL_WIDTH.
14759
14760 * term.c (append_intermediate_glyph): Generate padding glyphs.
14761
14762 * xdisp.c (display_text_line): More into final direction.
14763
14764 * xterm.c (XTget_char_info): Use WHAT field of CHAR_INFO.
14765 (XTget_char_info): Use tabs as multiples of spaces.
14766
14767 * term.c (get_char_info): Use WHAT field of CHAR_INFO.
14768 Use tabs as multiples of spaces.
14769
14770 * dispextern.h (struct char_info ): WHAT field.
14771
14772 * term.c (encode_terminal_code): Don't use GLYPH_CHAR, use
14773 FAST_GLYPH_CHAR instead because GLYPH_CHAR won't remove faces.
14774
14775Mon Jul 28 14:23:06 1997 Gerd Moellmann <gerd@acm.org>
14776
14777 * dispnew.c (init_char_info): Correct TAB_WIDTH to a reasonable
14778 value.
14779 (init_char_info): Initialize with glyph row.
14780
14781 * term.c (get_char_info): Check WANT_ELLIPSIS_P.
14782
14783 * xterm.c (XTget_char_info): Check WANT_ELLIPSIS_P.
14784
14785 * dispextern.h (struct char_info ): GLYPH_ROW for intermediate
14786 glyphs.
14787
14788 * dispnew.c (init_char_info): Init GLYPH_ROW to NULL. CHAR_CURSOR
14789 moved to xdisp.c.
14790
14791 * xdisp.c (display_text_line): Use CHAR_CURSOR.
14792
14793 * xterm.c (x_append_intermediate_glyph): Intermediate glyph
14794 generation.
14795 (XTget_char_info): Ditto.
14796
14797 * term.c (get_char_info): Intermediate glyph generation.
14798 (append_intermediate_glyph): Ditto.
14799
14800Sun Jul 27 18:57:24 1997 Gerd Moellmann <gerd@acm.org>
14801
427ec082 14802 * dispnew.c (compute_char_cursor_face): Compute the face for a
26901792
DL
14803 CHAR_CURSOR.
14804 (init_char_cursor): Initialize a CHAR_CURSOR.
14805 (get_char_and_advance): Get next character to display.
14806
14807 * dispextern.h (struct char_cursor): Cursor for iterating over
14808 display text of CURRENT_BUFFER.
14809
14810Sat Jul 26 13:33:03 1997 Gerd Moellmann <gerd@acm.org>
14811
14812 * term.c (get_char_info): Set MAX_PIXEL_WIDTH in CHAR_INFO.
14813
14814 * dispextern.h (struct char_info ): Use LISP_CHAR_TABLE for DP.
14815 New member MAX_PIXEL_HEIGHT.
14816
14817 * xterm.c (x_per_char_metric): Get per character metrics.
14818 (XTget_char_info): More cases covered.
14819
14820 * term.c (get_char_and_info): Get next character and character
14821 display information.
14822 (get_char_info): Get character display information.
14823
14824 * dispextern.h: Character display information.
14825
427ec082 14826 * xterm.c (x_get_char_font_and_encoding): Get font and
26901792
DL
14827 encode character.
14828 (XTget_char_info): Get display information about a character.
14829
14830Wed Jul 23 16:50:18 1997 Gerd Moellmann <gerd@acm.org>
14831
14832 * dispextern.h (WINDOW_DISPLAY_MODE_LINE_HEIGHT): Height is
14833 zero if window is mini-window.
14834
14835 * xdisp.c: Include xterm.h or w32term.h for FRAME_LINE_HEIGHT.
14836 (try_window): DISPLAY_TEXT_LINE as long as Y < DISPLAY_HEIGHT.
14837
427ec082 14838 * dispnew.c (assign_row): Assign row pixel height.
26901792
DL
14839 (clear_glyph_row): Clear pixel height.
14840 (update_window): Use PIXEL_HEIGHT.
14841
14842 * xdisp.c (display_string): Set row pixel height temporarily.
14843 (display_text_line): Ditto.
14844
427ec082 14845 * dispextern.h (GLYPH_PIXEL_WIDTH):
26901792
DL
14846 (GLYPH_PIXEL_HEIGHT): Get glyph pixel dimension.
14847
427ec082 14848 * frame.h (FRAME_DEFAULT_PIXEL_LINE_HEIGHT): Get height of
26901792
DL
14849 line in default font.
14850 (FRAME_DEFAULT_GLYPH_PIXEL_WIDTH): Get width of character
14851 in default font.
14852 (FRAME_MODE_LINE_PIXEL_HEIGHT): Get height of mode line.
14853
14854 * xterm.h (FRAME_MODE_LINE_HEIGHT): Return height of mode line
14855 in pixels.
14856
14857 * dispnew.c (allocate_leaf_matrix): Use window pixel macros.
14858
14859 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH):
427ec082
SS
14860 (WINDOW_DISPLAY_PIXEL_HEIGHT):
14861 (WINDOW_DISPLAY_MODE_LINE_HEIGHT):
14862 (WINDOW_DISPLAY_PIXEL_HEIGHT_WITHOUT_MODE_LINE):
14863 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X):
14864 (WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X):
14865 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y):
26901792
DL
14866 (WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y): Macros to get various
14867 pixel values related to windows.
14868
14869Mon Jul 21 12:22:02 1997 Gerd Moellmann <gerd@acm.org>
14870
14871 * xterm.c (XTflash): Flash last line of frame.
14872
14873 * dispextern.h (cursor_in_echo_area): Extern declaration.
14874
14875 * xterm.c (dumpglyphs): 8-bit version to test if my Xserver
14876 freezes stem from 16-bit functions.
14877
14878 * xterm.c (x_display_and_set_cursor): Don't display hollow
14879 cursor in mini windows.
14880
14881 * window.c (replace_window): Initialize PHYS_CURSOR_TYPE.
14882 (make_window): Ditto.
14883
14884 * xterm.c (x_erase_phys_cursor): Erase cursor image.
14885 (x_display_and_set_cursor): Merged version of X_DISPLAY_BOX_CURSOR
14886 and X_DISPLAY_BAR_CURSOR.
14887 (x_display_cursor): Use it.
14888 (x_update_window_cursor): Use it.
14889
14890 * xdisp.c (display_text_line): Set cursor for window even if not
14891 selected.
14892
14893 * xterm.c (x_display_bar_cursor): Use HPOS and VPOS instead
14894 of X and Y to denote matrix positions.
14895 (x_display_cursor): Ditto.
14896
14897 * dispnew.c (scrolling_window): Scrolling for windows.
14898
14899Wed Jul 16 13:37:51 1997 Gerd Moellmann <gerd@acm.org>
14900
14901 * dispnew.c (build_frame_matrix): Work on windows with update
14902 flag set.
14903 (build_frame_matrix_from_window_tree): Ditto.
14904 (build_frame_matrix_from_leaf_window): Ditto.
14905
14906 * xdisp.c (echo_area_display): Set MUST_BE_UPDATED_P instead of
14907 building frame matrix.
427ec082 14908 (redisplay_internal): Set window update flags instead of
26901792
DL
14909 building frame matrix.
14910
14911 * minibuf.c (read_minibuf): Set MUST_BE_UPDATED_P instead of
14912 building frame matrix.
14913
14914 * window.c (make_window): Initialize new members.
14915 (replace_window): Ditto.
14916
14917 * xfns.c (Fx_create_frame): Don't set PHYS_CURSOR_X to -1.
14918 I don't believe this is really necessary.
14919
14920 * dispnew.c (build_frame_matrix_from_leaf_window): Determine
427ec082 14921 border glyph once.
26901792
DL
14922
14923Tue Jul 15 13:58:33 1997 Gerd Moellmann <gerd@acm.org>
14924
427ec082 14925 * window.c (mark_window_cursors_off): Mark all cursors in
26901792
DL
14926 window tree off.
14927
427ec082 14928 * xterm.c (x_display_box_cursor): Window paraemter. Use
26901792
DL
14929 window matrix.
14930 (glyph_to_pixel_pos): Convert matrix pos -> pixels.
14931 (pixel_to_glyph_pos): Convert pixel pos -> matrix pos.
14932 (x_update_cursor): Work on windows.
14933 (x_display_bar_cursor): Ditto.
14934 (x_draw_single_glyph): Ditto.
14935
14936 * xterm.h: Prototype for X_DISPLAY_CURSOR.
14937
14938 * xterm.c (XTcursor_to): Void return type. Test for
14939 UPDATED_WINDOW. Call x_display_cursor with window.
14940 (x_display_cursor): Void return type. Window instead of frame
14941 parameter.
14942
14943 * window.h (WINDOW_RIGHTMOST_P, WINDOW_TOPMOST_P): Use functions
14944 below.
14945
14946 * window.c (window_rightmost_p, window_topmost_p): Based on
14947 window tree.
14948
14949 * dispnew.c (adjust_frame_message_buffer): Allocate with
14950 FRAME_MESSAGE_BUF_SIZE.
14951
14952 * window.h: PHYS_CURSOR_.* added.
14953
14954 * frame.h (struct frame): Cursor information removed.
14955
14956 * frame.h (FRAME_SCROLL_BAR_WIDTH): Removed because unused.
14957 (FRAME_WINDOW_WIDTH_ARG): Don't add scroll bar width.
14958
14959 * window.h (WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
14960
14961 * window.c (window_internal_width): Scroll bars no longer
14962 part of window.
14963
14964 * xterm.c (XTclear_end_of_line): FRAME_LEFT_SCROLL_BAR_WIDTH
14965 removed.
14966
14967 * xfns.c (x_set_scroll_bar_width): FRAME_LEFT_SCROLL_BAR_WIDTH
14968 removed.
14969
14970 * xdisp.c (echo_area_display): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
14971 (redisplay_internal): Ditto.
14972 (redisplay_window): Ditto.
14973 (redisplay_window): Ditto.
14974 (display_text_line): Ditto.
14975 (display_mode_line): Ditto.
14976
14977 * minibuf.c (read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
14978
14979 * dispnew.c (set_cursor_to): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
14980 (direct_output_for_insert): Ditto.
14981 (direct_output_forward_char): Ditto.
14982 (update_frame_1): Ditto.
14983
14984Mon Jul 14 12:30:03 1997 Gerd Moellmann <gerd@acm.org>
14985
14986 * dispnew.c (updated_window): Set by UPDATE_WINDOW to the window
14987 being updated.
14988 (update_window): Set and clear it.
14989
14990 * dispnew.c (update_window_line, update_window, scrolling_window):
14991 First versions.
14992
14993 * dispnew.c (build_frame_matrix_from_leaf_window): Add vertical
14994 bar for window borders.
14995 (fill_up_glyph_row_area_with_spaces): Fill an area of a row
14996 with spaces.
14997 (fill_up_glyph_row_with_spaces): Call above function.
14998
14999 * xdisp.c (display_text_line): Don't add vertical bar for
15000 window borders.
15001 (display_string): Ditto.
15002
15003 * window.c (make_window): Init CURSOR_VPOS/HPOS.
15004 (replace_window): Ditto.
15005
15006 * xterm.c (XTwrite_glyphs): Use selected window cursor position.
15007
15008 * xfns.c (Fx_contour_region): Use selected window cursor position.
15009 (Fx_uncontour_region): Ditto.
15010 (Fx_select_region): Ditto.
15011
15012 * frame.c (make_frame): Remove CURSOR_X/Y.
15013
15014 * xdisp.c (redisplay_internal): Use window cursor position.
15015
15016 * dispnew.c (update_frame_1): Use cursor position of selected
15017 window.
15018 (change_frame_size_1): Ditto.
15019
15020 * xterm.c (XTupdate_begin): Set CURS_X/Y from selected window.
15021 (XTwrite_glyphs): Use cursor position of selected window.
15022
15023 * xfns.c (x_set_scroll_bar_width): Set cursor pos of selected
15024 window.
15025
15026 * dispnew.c (set_cursor_to): Set window cursor position.
15027 (direct_output_for_insert): Use window cursor position.
15028 (init_display): Don't use frame cursor position.
15029
15030 * window.h: CURSOR_VPOS/HPOS added.
15031
15032 * frame.h (struct frame): CURSOR_X/Y removed.
15033 (FRAME_CURSOR_X): Removed.
15034 (FRAME_CURSOR_Y): Ditto.
15035
15036 * dispnew.c (direct_output_for_insert): LAST_POINT_X removed.
15037 (direct_output_forward_char): Ditto.
15038
15039 * xdisp.c (redisplay_internal): LAST_POINT_X and LAST_POINT_Y
15040 removed.
15041
15042 * window.c (make_window): LAST_POINT_X and LAST_POINT_Y removed.
15043
15044 * window.h: LAST_POINT_X and LAST_POINT_Y removed.
15045
15046Sun Jul 13 14:18:24 1997 Gerd Moellmann <gerd@acm.org>
15047
15048 * xdisp.c: Bug fixes using SET_CURSOR with HPOS 0 instead
15049 of FRAME_LEFT_SCROLL_BAR_WIDTH.
15050
15051 * dispextern.h: Changed function names.
15052
15053 * dispnew.c (scrolling): Don't call SCROLLING_1 if WINDOW_SIZE
15054 < 2.
15055 (clear_window_matrices): Formerly two functions for desired
15056 and current matrix.
15057 (update_frame_1): Call CLEAR_DESIRED_MATRICES.
15058 (update_frame): Return return value from UPDATE_FRAME_1.
15059
15060Sat Jul 12 12:58:48 1997 Gerd Moellmann <gerd@acm.org>
15061
15062 * xdisp.c (try_window): Set WINDOW_END_VPOS with window relative
15063 LAST_TEXT_VPOS.
15064
15065 * frame.c (set_menu_bar_lines): Adjust matrices.
15066
15067 * dispnew.c (set_cursor_to): Set cursor position.
15068
15069 * minibuf.c (read_minibuf): Build frame matrix.
15070
15071 * xdisp.c (this_line_start_hpos): Renamed to
15072 THIS_LINE_START_WINDOW_HPOS to make it clear that this is window
15073 relative.
15074 (this_line_vpos): Renamed to THIS_LINE_WINDOW_VPOS for the same
15075 reason.
15076
427ec082 15077 * dispnew.c (build_frame_matrix): Don't clear rows of the
26901792
DL
15078 menu bar.
15079 (clear_window_records): Clear window rows.
15080 (clear_frame_records): Clear window and frame rows.
15081 (clear_glyph_matrix): Set all rows of a matrix to empty.
15082
15083 * xdisp.c (echo_area_display): Parameter UPDATE_FRAME_P. Update
15084 frame if set.
15085 (message2_nolog): Pass 1 to ECHO_AREA_DISPLAY. UPDATE_FRAME
15086 removed.
15087 (redisplay_internal): Pass 0 to ECHO_AREA_DISPLAY.
15088 (redisplay_internal): Build frame matrix before UPDATE_FRAME.
15089
15090 * dispnew.c (assign_row): Assign one glyph row to another.
15091 (mirrored_make_current): Use it.
15092 (mirror_make_current): Use it.
15093 (update_line): Rely on MIRRORED_MAKE_CURRENT to set flags and
15094 used counters for the current glyph row.
427ec082 15095
26901792
DL
15096
15097Fri Jul 11 13:16:50 1997 Gerd Moellmann <gerd@acm.org>
15098
15099 * lisp.h: Prototype for SCAN_BUFFER.
15100
15101 * xdisp.c (redisplay_windows): Simplified.
15102
15103 * dispnew.c (window_to_frame_vpos): Convert window to frame vpos
15104 with debug checks.
15105 (window_to_frame_hpos): Convert window to frame hpos with checks.
15106 (frame_to_window_vpos): Convert frame to window vpos with checks.
15107 (frame_to_window_hpos): Convert frame to window hpos with checks.
15108
15109 * dispextern.h: PRESERVE_OTHER_COLUMNS removed.
15110
15111 * dispnew.c: PRESERVE_OTHER_COLUMNS removed.
15112
15113 * xdisp.c (redisplay_internal): Another instance of
15114 DISPLAY_TEXT_LINE with window relative VPOS.
15115 (redisplay_internal): Remove PRESERVE_OTHER_COLUMNS.
15116
15117 * dispnew.c (init_desired_glyphs): Do it on window matrices,
15118 only.
15119
15120 * xdisp.c (try_window_id): Use CANCEL_WINDOW_LINE.
15121 (redisplay_internal): Ditto.
15122
15123 * dispnew.c (cancel_window_line): Use window matrix. Changed
15124 name to CANCEL_WINDOW_LINE.
15125
15126 * xdisp.c (try_window_id): Use DISPLAY_TEXT_LINE with window
15127 relative VPOS.
15128
427ec082
SS
15129 * dispextern.h (WINDOW_TO_FRAME_VPOS): Convert window vpos
15130 to frame vpos.
26901792
DL
15131 (WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
15132 (FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
15133 (FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
15134
15135 * xdisp.c (try_window_id): Use ADJUST_WINDOW_CHARSTARTS with
15136 window relative VPOS.
15137 (redisplay_internal): Use ADJUST_WINDOW_CHARSTARTS with window
15138 relative VPOS.
15139
15140 * dispnew.c (adjust_window_charstarts): Use INCREMENT_GLYPH_-
15141 MATRIX_BUFFER_POSITIONS.
15142
15143 * xdisp.c (try_window_id): Use SCROLL_FULL_WIDTH_WINDOW.
15144
15145 * dispextern.h: Prototype for SCROLL_FULL_WIDTH_WINDOW.
15146
427ec082 15147 * dispnew.c (scroll_frame_lines): Make it work on window
26901792
DL
15148 matrix. Change name to scroll_full_width_window.
15149
15150 * xdisp.c (message2_nolog): Don't fwrite NULL message If
15151 NONINTERACTIVE.
15152
15153Mon Jul 7 14:44:38 1997 Gerd Moellmann <gerd@acm.org>
15154
15155 * dispnew.c (init_desired_glyphs): Clear both frame matrix
427ec082 15156 and window matrices.
26901792
DL
15157 (adjust_window_charstarts): Use window matrix.
15158 (cancel_my_columns): Use window matrix.
15159 (direct_output_for_insert): Use window matrix, only.
15160
15161 * xdisp.c (display_glyphs): Extracted code from DISPLAY_STRING.
15162 (display_string): Call display_glyphs.
15163 (display_menu_bar_string): Display a string in a menu bar line.
15164 (display_menu_bar): Use DISPLAY_MENU_BAR_STRING.
15165 (display_text_line): Use window matrix.
15166 (try_window): Use window relative positions.
15167
15168Sun Jul 6 17:02:26 1997 Gerd Moellmann <gerd@acm.org>
15169
15170 * dispnew.c (adjust_frame_glyphs): Allocate window matrices from
15171 (0, 0).
15172 (allocate_leaf_matrix): Add FRAME_MENU_BAR_LINES to the height of
15173 top-most windows.
15174
15175 * window.h (WINDOW_TOPMOST_P): Added.
15176
15177 * xdisp.c (echo_area_display): Use PREPARE_DESIRED_ROW.
15178 (redisplay_window): Ditto.
15179 (display_text_line): Ditto.
15180 (display_menu_bar): Ditto.
15181 (display_mode_line): Ditto.
15182 (display_mode_line): Use window matrix.
15183 (display_string): Use window matrix.
15184 (display_mode_element): Ditto.
15185 (echo_area_display): Don't display if frame has no pools yet.
15186 (echo_area_display): Work with window matrix for mini window.
15187 (redisplay_window): Use window marix for mini window.
15188 (display_text_line): Assume HPOS and VPOS are window relative and
15189 use that for DISPLAY_STRING.
15190
15191 * dispextern.h: Prototype for prepare_desired_row.
15192
15193 * dispnew.c (prepare_desired_row): Replacement for
15194 GET_DISPLAY_LINE.
15195
15196 * dispnew.c (adjust_window_charstarts): Always allocate window
15197 matrices.
15198 (clear_glyph_row): Only reset used counters and flags.
15199
15200Sat Jul 5 14:55:44 1997 Gerd Moellmann <gerd@acm.org>
15201
15202 * dispnew.c (scroll_frame_lines): Don't assume first scolled
427ec082 15203 line is non-empty.
26901792
DL
15204 (realloc_glyph_pool): Don't add 1 to the pool size.
15205 (adjust_glyph_matrix): Don't add 1 to pointers to glyph areas.
15206
15207 * dispnew.c (line_hash_code): Don't use null-glyph end marker.
15208 (line_draw_cost): Ditto.
15209 (update_line): Ditto.
15210 (update_line): Use SPACE_GLYPH.
15211 (count_blanks): Additional parameter LEN.
15212
15213 * xdisp.c (display_text_line): Use SPACE_GLYPH.
15214 (display_text_line): Don't add null-glyph end marker.
15215 (display_string): Use SPACE_GLYPH.
15216 (display_string): Don't use null-glyph end marker.
15217
15218 * term.c (clear_end_of_line): Use SPACE_GLYPH.
15219
15220 * dispnew.c (clear_glyph_row): Don't use null-glyph end markers.
15221 (fill_up_glyph_row_with_spaces): Ditto.
15222 (preserve_other_columns): Add SPACE_GLYPH at then end of desired
15223 rows, instead of null-glyphs.
15224 (direct_output_for_insert): Don't add null-glyph end marker.
15225
15226 * scroll.c (do_direct_scrolling): Change algorithm to construct
15227 vector of lines assigned. Call MIRRORED_LINE_DANCE:
15228 (do_scrolling): Ditto.
15229
15230 * dispnew.c (mirror_line_dance): Mirror line assignments in a
15231 frame matrix in window matrices.
15232 (mirrored_line_dance): Do line assignments during scrolling.
15233 Maybe do corresponding assignments in window matrices.
15234 (check_window_matrix_pointers): Check that window rows and frame
15235 rows agree about glyph pointers.
15236 (check_matrix_pointers): Ditto.
15237 (mirrored_make_current): Make a row of a desired matrix current;
15238 maybe mirror the operation in window matrices.
15239 (mirror_make_current): Make window desired matrix row current when
15240 frame matrix row was made current.
15241
15242Fri Jul 4 13:27:46 1997 Gerd Moellmann <gerd@acm.org>
15243
15244 * dispnew.c (check_matrix_pointer_lossage): Check against
15245 pointer lossage in matrices.
15246 (get_glyph_matrix_row): Removed.
15247
15248 * scroll.c (do_scrolling): Simplified.
15249 (do_direct_scrolling): Simplified.
15250 (scrolling_1): Pass CURRENT_MATRIX instead of FRAME to
15251 DO_.*SCROLLING.
427ec082 15252
26901792
DL
15253
15254 * dispnew.c (ins_del_glyph_rows): Insert/delete rows in a matrix.
15255 (rotate_vector): Removed.
15256 (rotate_pointers): Removed.
15257 (scroll_frame_lines): Simplified.
15258
15259Thu Jul 3 13:54:21 1997 Gerd Moellmann <gerd@acm.org>
15260
15261 * dispextern.h (MATRIX_ROW_SWAP_CONTENTS): Removed.
15262
15263 * dispnew.c (increment_glyph_matrix_buffer_positions): Does
15264 what the name says.
15265 (clear_glyph_row): Make a glyph row structure empty.
15266 (make_matrix_row_current): Make a glyph row current.
15267 (make_window_matrix_row_current): Perform analogous row swaps
15268 for window matrices.
15269 (update_line): Call make_matrix_row_current.
15270
15271Wed Jul 2 13:43:35 1997 Gerd Moellmann <gerd@acm.org>
15272
15273 * dispextern.h (SET_MATRIX_ROW_ENABLED_P): Better macro name.
15274 (SET_MATRIX_ROW_INVERSE_P): Better name and HIGHLIGHT_P ->
15275 INVERSE_P.
15276 (MATRIX_ROW_INVERSE_P): Former MATRIX_ROW_HIGHLIGHT_P.
15277 (struct glyph_row): HIGHLIGHT_P -> INVERSE_P
15278
15279 * all files: use above new names.
15280
15281 * dispnew.c (scroll_frame_lines): Simplified. Use
15282 SCROLL_GLYPH_MATRIX.
15283 (make_glyph_row_empty): Mark a glyph row empty.
427ec082 15284 (increment_glyph_row_buffer_positions): Increment
26901792
DL
15285 buffer positions in a glyph row.
15286 (increment_glyph_matrix_buffer_positions): Increment buffer
15287 positions in a range of rows.
15288 (scroll_glyph_matrix): Scroll a glyph matrix.
15289 (swap_glyphs_in_rows): Swap glyphs between rows.
15290 (swap_glyph_pointers): Swap pointers between rows.
15291 (glyph_row_slice_p): Return 1 if one row is a slice of another.
15292 (init_display): Initialize SPACE_GLYPH.
15293 (fill_up_glyph_row_areas_with_spaces): Fill up areas with
427ec082 15294 spaces.
26901792
DL
15295
15296Tue Jul 1 13:49:55 1997 Gerd Moellmann <gerd@acm.org>
15297
15298 * xterm.c (dumprectangle): Use vectors in glyph rows.
15299
15300 * xdisp.c (display_text_line): Use vectors in glyph rows.
15301 (display_string): Ditto.
15302
15303 * scroll.c (do_scrolling): Use vectors in glyph rows.
15304 (do_direct_scrolling): Ditto.
15305
15306 * alloc.c (mark_object): Use vectors in glyph rows.
15307 Mark for all frame types.
15308
15309 * dispnew.c (adjust_glyph_matrix): Use vectors to glyphs in
15310 glyph rows.
15311 (get_glyph_matrix_row): Ditto.
15312 (matrix_row): Ditto.
15313 (rotate_pointers): Ditto.
15314 (scroll_frame_lines): Ditto.
15315 (preserve_other_columns): Ditto.
15316 (cancel_my_columns): Ditto.
15317 (update_line): Ditto.
15318 (direct_output_for_insert): Ditto.
15319
15320 * dispextern.h (struct glyph_row): Use a vector of pointers
15321 instead of individual members. Use a vector of used counters.
15322 (MATRIX_ROW_SWAP_CONTENTS): Use vectors.
15323 (MATRIX_ROW_GLYPH_START): Ditto.
15324 (MATRIX_ROW_GLYPH_END): Ditto.
15325 (MATRIX_ROW_USED): Ditto.
15326 (MATRIX_ROW_SET_USED): Ditto.
15327
15328 * dispnew.c (line_hash_code): Simplified.
15329
15330Mon Jun 30 20:39:38 1997 Gerd Moellmann <gerd@acm.org>
15331
15332 * dispnew.c: Prototype for ROTATE_VECTOR, ROTATE_POINTERS,
15333 CHANGE_FRAME_SIZE_1
15334 (preserve_other_columns): Void return.
15335 (cancel_my_columns): Void return type.
15336 (scrolling): Int return type.
15337 (do_pending_window_change): Void return type.
15338 (change_frame_size): Ditto.
15339 (bitch_at_user): Ditto.
15340 (init_display): Ditto.
15341 (syms_of_display): Ditto.
15342
15343 * dispextern.h: add prototypes for REDRAW_FRAME,
15344 REDRAW_GARBAGED_FRAMES, CANCEL_LINE, CLEAR_FRAME_RECORDS,
15345 INIT_DESIRED_GLYPHS, SCROLL_FRAME_LINES, PRESERVE_OTHER_COLUMNS,
15346 ADJUST_WINDOW_CHARSTARTS, CANCEL_MY_COLUMNS,
15347 DIRECT_OUTPUT_FOR_INSERT, DIRECT_OUTPUT_FORWARD_CHAR,
15348 UPDATE_FRAME, SCROLLING, BUFFER_POSN_FROM_COORDS,
15349 DO_PENDING_WINDOW_CHANGE, CHANGE_FRAME_SIZE, BITCH_AT_USER,
15350 SIT_FOR, INIT_DISPLAY, SYMS_OF_DISPLAY,
427ec082 15351
26901792
DL
15352 * dispnew.c (redraw_frame): FRAME_PTR -> struct frame. Return
15353 void.
15354 (cancel_line): Return void.
15355 (clear_frame_records): Return void.
427ec082 15356
26901792
DL
15357 * dispextern.h (struct glyph): Remove GLYPH, add bit-fields.
15358 (SET_CHAR_GLYPH): Fill a character glyph.
15359 (SET_CHAR_GLYPH_FROM_GLYPH): Set a character glyph from a GLYPH.
15360 (GLYPH_FROM_CHAR_GLYPH): Construct a GLYPH from a character
427ec082 15361 glyph.
26901792
DL
15362 (CHAR_GLYPH_CHAR_CODE): Return character code of a glyph.
15363 (SET_CHAR_GLYPH_CHAR_CODE): Set character code of a glyph.
15364 (CHAR_GLYPH_FACE_ID): Return face id of a glyph.
15365 (SET_CHAR_GLYPH_FACE_ID): Set face id of a glyph.
15366 (CHAR_GLYPH_PADDING_P): Return padding flag of a glyph.
15367 (SET_CHAR_GLYPH_PADDING_P): Set padding flag.
15368 (CHAR_GLYPH_REVERSE_P): Return reversed flag.
15369 (SET_CHAR_GLYPH_REVERSE_P): Set reversed flag.
15370 (MATRIX_ROW_SWAP_CONTENTS): Swap pointers between rows.
15371
15372 * term.c (reassert_line_highlight): Check CHARS_WASTED == 0.
15373
15374 * window.h (struct window): Add comment that no Lisp data may
15375 come below CURRENT_MATRIX.
15376
15377 * alloc.c (mark_object): Change window mark code to stop with
15378 member CURRENT_MATRIX.
15379
15380Sat Jun 28 13:54:55 1997 Gerd Moellmann <gerd@acm.org>
15381
15382 * scroll.c (do_scrolling): Change algorithm to use pointers.
15383 (do_direct_scrolling): Ditto.
15384
15385 * dispnew.c (get_glyph_matrix_row): Use pointers stored in rows.
15386 (new_glyph_pool): Formerly new_FRAME_GLYPH_MATRIX.
15387 (free_glyph_pool): Formerly FREE_FRAME_GLYPH_MATRIX
15388 (realloc_glyph_pool): Formerly REALLOC_FRAME_GLYPH_MATRIX.
15389 Returns 1 if pool changed.
15390 (matrix_row): Additional check for lost pointers to glyph rows.
15391 (compute_matrices): Additional parameter DIM_P set means that no
15392 allocation should take place. Addtional parameter
15393 ANY_WINDOWS_CHANGED_P set if any windows matrix has changed.
15394 (compute_leaf_matrix): Additional parameter CHANGED_P set to 1
15395 when window matrix changes. Additional parameter DIM_ONLY_P set
15396 to 1 to indicate that no allocation should take place.
15397 (adjust_frame_glyphs): Construct new glyph pools and glyph
15398 matrices. Optimize frame redraws.
15399 (free_glyphs): Free pools.
15400 (check_glyph_memory): Check pools not freed.
15401 (rotate_pointers): Rotate pointers in a vector of glyph rows.
15402 (scroll_frame_lines): Change algorithm to use pointers.
15403 (update_line): Ditto.
15404
15405 * dispextern.h (struct glyph_row): Use pointers to areas in a row.
15406 (global): All macro names changed from prefix FRAME_MATRIX to
15407 MATRIX.
15408
15409Fri Jun 27 14:51:15 1997 Gerd Moellmann <gerd@acm.org>
15410
15411 * dispextern.h (struct glyph_pool): Replacement for former
15412 FRAME_GLYPH_MATRIX.
15413 (struct glyph_matrix): No longer contains sizes of allocated
15414 areas.
15415
15416 * xdisp.c (redisplay_internal): Don't redisplay if frame has
15417 no glyph pools.
15418
15419 * frame.c (make_frame): Initialize pools.
15420
15421Thu Jun 26 00:00:55 1997 Gerd Moellmann <gerd@acm.org>
15422
427ec082 15423 * scroll.c (do_direct_scrolling): Don't assume that the
26901792
DL
15424 line moving algorithm has no intermediate steps.
15425 (do_scrolling): Ditto.
15426
15427 * Makefile.in (alloc.o): Add dependency dispextern.h.
15428
15429 * alloc.c: Include dispextern.h for glyph definitions.
15430
15431 * dispnew.c (get_glyph_matrix_row): Return 1 if ROW_INDEX
15432 is legal, return 0 otherwise.
15433
15434 * window.h: Add comment that windows are marked specially.
15435
15436 * alloc.c (mark_object): Mark windows specially.
15437
15438
15439Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org>
15440
15441 * dispextern.h (struct glyph): Add member OBJECT
15442 referencing a Lisp object from which a glyph was drawn.
15443 Member TEXT_POSITION renamed POSITION.
15444 * xterm.c, xdisp.c, dispnew.c: Rename TEXT_POSITION -> POSITION.
15445
15446 * alloc.c: Include dispextern.h
15447 (mark_object): Mark objects referenced from glyphs.
15448
f28eba7b 15449 * frame.c (make_frame): Initialize DECODE_MODE_SPEC_BUFFER.
26901792
DL
15450
15451 * scroll.c (do_direct_scrolling): Remove TEMP_MATRIX.
15452 (do_scrolling): Ditto.
15453
427ec082 15454 * frame.h (struct frame): TEMP_MATRIX removed.
26901792
DL
15455 DECODE_MODE_SPEC_BUFFER added.
15456
15457 * window.h: TEMP_MATRIX removed.
15458
15459 * scroll.c: OPHYS_LINES removed.
15460
15461 * dispnew.c: OPHYS_LINES and OPHYS_LINES_LENGTH removed.
15462 FRAME_PTR -> struct frame *.
15463
15464 * termhooks.h: Prototypes for INSERT_GLYPHS_HOOK,
15465 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15466
15467 * term.c: Prototypes for INSERT_GLYPHS_HOOK,
15468 WRITE_GLYPHS_HOOK, DELETE_GLYPHS_HOOK,
15469
15470 * xdisp.c (redisplay_internal): Remove call to VERIFY_CHARSTARTS.
15471 (do_verify_charstarts): Removed.
15472
15473 * frame.c (Fmake_terminal_frame): Adjust glyphs.
15474 (Fdelete_frame): Free glyphs.
15475 (make_frame): Initialize matrix fields in frame.
15476
f28eba7b 15477 * config.in (PROTO): Added.
26901792 15478
f28eba7b 15479 * emacs.c (shut_down_emacs): Check glyph memory.
26901792
DL
15480
15481 * window.c (Fdelete_window): Free window matrices.
15482 (Fset_window_configuration): Ditto.
15483 (Fdelete_window): Adjust glyphs.
15484 (Fsplit_window): Ditto.
15485 (change_window_height): Ditto.
15486 (Fset_window_configuration): Ditto.
15487 (make_window): Initialize DESIRED_MATRIX and CURRENT_MATRIX.
15488 (replace_window): Reset DESIRED_MATRIX and CURRENT_MATRIX
15489
15490 * Makefile.in (window.o): Add dependency window.c -> dispextern.h
15491
15492 * window.c: Include dispextern.h
15493
15494 * scroll.c (do_scrolling): Use new glyphs.
15495 (do_direct_scrolling): Ditto.
15496
15497 * xdisp.c: Some function prototypes.
15498 (redisplay_internal): Don't do anything if matrices not yet set.
15499 (redisplay_internal): Use new glyphs.
15500 (try_window_id): Ditto.
15501 (copy_part_of_rope): Ditto.
15502 (display_text_line): Ditto.
15503 (display_menu_bar): Ditto.
15504 (display_mode_line): Ditto.
15505 (display_string): Ditto.
15506
15507 * xterm.c: Prototypes for some local functions.
15508 (dumpglyphs): Use new glyphs.
15509 (XTwrite_glyphs): Ditto.
15510 (dumprectangle): Ditto.
15511 (note_mouse_highlight): Ditto.
15512 (fast_find_position): Ditto.
15513 (show_mouse_face): Ditto.
15514 (x_draw_single_glyph): Ditto.
15515 (x_display_bar_cursor): Ditto.
15516 (x_display_box_cursor): Ditto.
15517 (x_new_font): Adjust glyphs when font change.
15518
15519 * term.c (clear_end_of_line): Use new glyphs.
15520 (write_glyphs): Ditto.
15521 (insert_glyphs): Ditto.
15522
15523 * Makefile.in (term.o): term.c depends on dispextern.h
15524
15525 * term.c: Include dispextern.h
15526
15527 * dispnew.c (direct_output_forward_char): Old glyph functions
427ec082 15528 removed, new inserted.
26901792
DL
15529 (line_hash_code): Use new glyphs.
15530 (line_draw_cost): Ditto
15531 (cancel_line): Ditto
15532 (clear_frame_records): Ditto.
15533 (init_desired_glyphs): Ditto.
15534 (get_display_line): Ditto
15535 (scroll_frame_lines): Ditto.
15536 (preserve_other_columns): Ditto.
15537 (adjust_window_charstarts): Ditto.
15538 (cancel_my_columns): Ditto.
15539 (direct_output_for_insert): Ditto.
15540 (update_frame): Ditto.
15541 (quit_error_check): Made empty.
15542 (scrolling): Use new glyphs.
15543 (count_blanks): Ditto.
15544 (count_match): Ditto.
15545 (update_line): Ditto.
15546 (init_display): Adjust glyphs initially.
15547 (change_frame_size_1): Adjust glyphs.
15548
15549 * dispextern.h: Old glyphs removed, new added.
15550
15551 * xfaces.c (min_char_bounds): Get smallest char in loaded fonts.
15552
15553 * xterm.h: Prototype for min_char_bounds.
15554
15555 * window.h (struct window): Remove old glyphs, add new.
15556
15557 * frame.h (struct frame): Remove old glyphs, add new.
427ec082 15558
26901792
DL
155591999-07-20 Dave Love <fx@gnu.org>
15560
15561 * buffer.c (syms_of_buffer): Make
15562 default-enable-multibyte-characters a user variable.
15563
155641999-07-14 Richard Stallman <rms@gnu.org>
15565
15566 * Version 20.4 released.
15567
155681999-07-14 Richard Stallman <rms@gnu.org>
15569
15570 * filelock.c (lock_file): Do nothing if purifying.
15571
155721999-07-10 Richard Stallman <rms@gnu.org>
15573
15574 * xterm.c (x_display_bar_cursor): Use the cursor-color
15575 to display the bar, not the cursor foreground pixel.
15576
155771999-07-09 Andrew Innes <andrewi@gnu.org>
15578
15579 * w32console.c (w32_use_full_screen_buffer): New variable.
15580 (syms_of_ntterm): Register it.
15581 (initialize_w32_display): Set initial frame size accordingly,
15582 respecting the LINES and COLUMNS environment variables if set.
15583
15584 * w32inevt.c (w32_console_read_socket): Use it.
15585
155861999-07-07 Kenichi Handa <handa@etl.go.jp>
15587
15588 * callproc.c (Fcall_process): Decide coding system for decoding
15589 after we set to the target buffer. If the output goes to a
15590 unibyte buffer, suppress character code conversion.
15591
15592 * fileio.c (Finsert_file_contents): If reading into a unibyte
15593 buffer, suppress character code conversion.
15594
15595 * process.c (create_process): If the output goes to a unibyte
15596 buffer, suppress character code conversion.p
15597
155981999-07-07 Andreas Schwab <schwab@gnu.org>
15599
15600 * xdisp.c (line-number-display-limit): Doc fix.
15601
156021999-07-05 Richard Stallman <rms@gnu.org>
15603
15604 * callproc.c (Fcall_process): Don't use initializer on coding_systems.
15605 (Fcall_process_region): Likewise.
15606
156071999-07-01 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
15608
15609 * callproc.c (init_callproc): Set exec_directory if
15610 installation_directory is non-nil, without a test of exec_path.
15611
156121999-07-01 Andrew Innes <andrewi@gnu.org>
15613
15614 * w32xfns.c (drain_message_queue): New function.
15615
15616 * w32term.h (drain_message_queue): Add extern.
15617
15618 * w32proc.c (sys_select): Call MsgWaitForMultipleObjects instead
15619 of WaitForMultipleObjects when user input is allowed, so we can
15620 handle incoming window messages. Call drain_message_queue when
15621 there are messages waiting; this ensures that windows created
15622 indirectly from the lisp thread get processed properly, and don't
15623 hang other applications by failing to respond to broadcasts.
15624
156251999-07-01 Andreas Schwab <schwab@gnu.org>
15626
15627 * callint.c (Fcall_interactively): Ignore first element of
15628 event-symbol-elements property.
15629
156301999-07-01 Richard Stallman <rms@gnu.org>
15631
15632 * fileio.c (Fread_file_name): Check type of DEFAULT_FILENAME.
15633
156341999-07-01 Kenichi Handa <handa@etl.go.jp>
15635
15636 * minibuf.c (read_minibuf): Set the multibyteness of the
15637 minibuffer before inserting `initial' string.
15638
156391999-06-30 Richard Stallman <rms@gnu.org>
15640
15641 * xfns.c (x_make_gc): Turn off GCStipple when setting up cursor_gc.
15642
156431999-06-29 Richard M. Stallman <rms@gnu.org>
15644
15645 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook):
15646 Move the handling of MALLOC_CHECK_ envvar here.
15647 (main): Moved from here.
15648
156491999-06-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
15650
15651 * emacs.c [DOUG_LEA_MALLOC] (malloc_initialize_hook): New
15652 function, assigned to the global __malloc_initialize_hook pointer.
15653 (main): Move malloc_set_state call into malloc_initialize_hook
15654 so that it happens as early as possible.
15655
156561999-06-27 Richard M. Stallman <rms@gnu.org>
15657
15658 * keyboard.c (read_key_sequence): Properly reinitialize
15659 fkey_map after translating thru Vkey_translation_map.
15660 After translating thru Vfunction_key_map, don't reset
15661 keytrans-start to 0.
15662
156631999-06-24 Geoff Voelker <voelker@cs.washington.edu>
15664
15665 * w32.c (get_emacs_configuration): Use GetVersionEx to
15666 handle NT5.0 correctly. Include build number in configuration.
15667 w32heap.c (osinfo_cache): New variable.
15668 (cache_system_info): Initialize osinfo_cache.
15669 w32heap.h (osinfo_cache): Declare.
15670
156711999-06-24 Richard M. Stallman <rms@gnu.org>
15672
15673 * casefiddle.c (casify_object): Use make_multibyte_string
15674 if we casify a multibyte string.
15675
156761999-06-22 Ken'ichi Handa <handa@gnu.org>
15677
15678 * fileio.c: (Finsert_file_contents): In the case of REPLACE, call
15679 del_range_byte instead of del_range_1, set `inserted' to the
15680 number of characters actually inserted.
15681
156821999-06-17 Dave Love <fx@gnu.org>
15683
15684 * coding.c (decode_coding_sjis_big5): Avoid compiler warning.
15685
156861999-06-18 Paul Eggert <eggert@twinsun.com>
15687
15688 * filelock.c (BOOT_TIME_FILE): New macro.
15689 (get_boot_time): Use it instead of hardwiring the file name.
15690 Check BOOT_TIME_FILE only after inspecting the kernel directly.
15691
156921999-06-17 Dave Love <fx@gnu.org>
15693
15694 * xdisp.c (invalid_eol_type): Make it unsigned.
15695
156961999-06-17 Karl Heuer <kwzh@gnu.org>
15697
15698 * process.c (send_process): Delete unsafe/redundant assignment.
15699
157001999-06-17 Jason Rumney <jasonr@gnu.org>
15701
15702 * w32term.c (dumprectangle): Handle wide characters properly.
15703
157041999-06-16 Andrew Innes <andrewi@gnu.org>
15705
15706 * s/ms-w32.h (strerror): Override the default implementation of
15707 strerror, so we can map winsock error codes.
15708
15709 * w32.c (sys_strerror): New function.
15710
15711 * w32fns.c (w32_to_x_weight): Return "demibold" instead of "semibold".
15712
157131999-06-15 Ken'ichi Handa <handa@gnu.org>
15714
15715 * buffer.c (syms_of_buffer): Don't make
15716 enable-multibyte-characters customizable.
15717
157181999-06-15 Richard M. Stallman <rms@gnu.org>
15719
15720 * editfns.c (Fuser_full_name): Doc fix.
15721
157221999-06-14 Tak Ota <ota@atc.sel.sony.com>
15723
15724 * w32bdf.c: (clear_cached_bitmap_slots): Remove.
15725 (get_bitmap_with_cache): Check if CreateBitmap failed.
15726 Adjust cache size dynamically so cache is never larger than the
15727 system limit of GDI resources.
15728 Do cache clearing inline. Move global variables to local scope.
15729
15730
157311999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at>
15732
15733 * unexsgi.c (unexec): Dump the .rodata section from memory
15734 under IRIX6.5 in order to be able to unexec with gcc.
15735
157361999-06-11 Greg Hudson <ghudson@MIT.EDU>
15737
15738 * indent.c (compute_motion): Fix boundary case.
15739
157401999-06-11 Jason Rumney <jasonr@altavista.net>
15741
15742 * w32term.c (cancel_mouse_face): New function. See equiv
15743 changes to xterm.c on 1996-10-31.
15744 (x_set_window_size): Use cancel_mouse_face.
15745 (w32_read_socket): Use cancel_mouse_face.
15746 Update frame position when size is restored.
15747
157481999-06-04 Richard M. Stallman <rms@gnu.org>
15749
15750 * lread.c (Vuser_init_file): New variable.
15751 (syms_of_lread): Set up Lisp variable.
15752 (Fload): Store the file name there, if var was t before.
15753
157541999-06-04 Paul Eggert <eggert@twinsun.com>
15755
15756 * filelock.c (get_boot_time): Don't look at /proc/uptime; it
15757 doesn't work if the system date is changed, or if the system
15758 is suspended. Look at the last-modified time of
15759 /var/run/random-seed instead.
15760
157611999-06-03 Ken'ichi Handa <handa@gnu.org>
15762
15763 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15764 japanese-jisx0208-1978 correctly.
15765
157661999-06-03 Andrew Innes <andrewi@gnu.org>
15767
15768 * unexw32.c (get_section_info) [_ALPHA_]: Force as much bss data
15769 as possible to be dumped, for safety.
15770
157711999-06-02 Ken'ichi Handa <handa@gnu.org>
15772
15773 * coding.c (ENCODE_SJIS_BIG5_CHARACTER): Encode charset
15774 latin-jisx0201 correctly.
15775
157761999-05-26 Ken'ichi Handa <handa@gnu.org>
15777
15778 * charset.h (Vcharset_table): Comment fixed.
15779
157801999-05-24 Richard Stallman <rms@gnu.org>
15781
15782 * coding.c (syms_of_coding): Doc fix.
15783
15784 * buffer.c (syms_of_buffer): Doc fix.
15785
15786 * filelock.c (lock_if_free): After deleting a stale lock,
15787 try again to lock the file.
15788
157891999-05-22 Andrew Innes <andrewi@gnu.org>
15790
15791 * w32inevt.c (maybe_generate_resize_event): Detect changes in the
15792 console window size.
15793 (w32_console_read_socket): Call maybe_generate_resize_event
15794 whenever input events are received, since we don't get told when
15795 the window size changes (as opposed to the buffer size, which we
15796 don't care about).
15797
15798 * w32console.c (clear_frame): Remember that the window width might
15799 be smaller than the screen buffer width.
15800 (write_glyphs): Remove redundant variable attrs. Use
15801 FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
15802
158031999-05-20 Andrew Innes <andrewi@gnu.org>
15804
15805 * w32term.c (w32_read_socket): Reset the grabbed flag when a frame gains or
15806 loses focus.
15807
15808 * w32fns.c (w32_wnd_proc): Ensure mouse capture is released if
15809 frame loses focus, and that mouse button state is reset. Ditto
15810 when the menu bar is activated.
15811
158121999-05-18 Richard Stallman <rms@gnu.org>
15813
15814 * abbrev.c (Fdefine_abbrev): Doc fix.
15815
158161999-05-13 Paul Eggert <eggert@twinsun.com>
15817
15818 * filelock.c: Fix performance bug on hosts with large
15819 /var/adm/wtmp files with no boot records.
15820
15821 (boot_time_initialized): New var.
15822 (init_filelock): Initialize it.
15823 (get_boot_time): Use it, instead of nonzero boot_time,
15824 to test whether boot_time is initialized.
15825 Don't invoke utmp routines when dumping.
15826
15827 (get_boot_time): First, try to get the boot time from the
15828 current utmp file, as this can be much faster. Don't try to
15829 get the boot time from utmp and/or wtmp more than once.
15830
15831 (get_boot_time_1): When passed null pointer, don't invoke utmpname.
15832 New arg LATEST. All uses changed.
15833
158341999-05-15 Andrew Innes <andrewi@gnu.org>
15835
15836 * w32term.c (dumpglyphs): Use correct colours for drawing
15837 rectangles in place of missing fonts, and make them the right
15838 size.
15839
158401999-05-14 Dave Love <fx@gnu.org>
15841
15842 * syntax.c (Fparse_partial_sexp): Correct test for element 8 to be
15843 non-nil.
15844
158451999-05-11 Andrew Innes <andrewi@gnu.org>
15846
15847 * w32fns.c (x_to_w32_charset): Reinstall VIETNAMESE_CHARSET
15848 definition.
15849 (w32_wnd_proc): Reinstall debugging output.
15850 (w32_wnd_proc): Reinstall SetForegroundWindow change.
15851 (syms_of_w32fns): Reinstall new initializer for
15852 Vw32_phantom_key_code.
15853
15854 * w32fns.c (x_to_w32_charset): Do partial matching of charset
15855 names for most non-European charsets, to cope with wildcards or
15856 missing spec dates.
15857 (Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
15858 to avoid deadlock when activating the menu bar.
15859
158601999-05-10 Ken'ichi Handa <handa@gnu.org>
15861
15862 * search.c (boyer_moore): Get charset base value of `untranslated'
15863 by masking by ~CHAR_FIELD3_MASK (instead of ~0xff).
15864
158651999-05-10 Andreas Schwab <schwab@gnu.org>
15866
15867 * fileio.c (Fread_file_name): Correct handling of dollars in file
15868 names. Protect dollars in strings put on the file-name-history.
15869 Substitute homedir by `~' also in default_filename.
15870
15871 * xdisp.c (try_window_id): Fix computation of tab_offset when
15872 backing up over a character that is splitted across lines.
15873
158741999-05-08 Kenichi HANDA <handa@etl.go.jp>
15875
15876 * coding.c (code_convert_region): If eol format is inconsistent,
15877 change coding->symbol to the sibling coding system of Unix like
15878 eol format.
15879
158801999-05-09 Richard M. Stallman <rms@gnu.org>
15881
15882 * s/irix5-2.h (NO_WTMP_FILE): Define it.
15883
15884 * filelock.c (get_boot_time): Handle NO_WTMP_FILE.
15885
158861999-05-05 Andrew Innes <andrewi@gnu.org>
15887
15888 * w32fns.c (w32_strict_painting): New variable.
15889 (w32_wnd_proc): Use it to select repaint rules.
15890 (syms_of_w32fns): Defvar it.
15891
158921999-05-04 Andrew Innes <andrewi@gnu.org>
15893
15894 * w32fns.c (x_to_w32_charset): Fix typo: want to map all Japanese
15895 charsets to the standard Windows charset for Japanese.
15896
158971999-05-04 Ken'ichi Handa <handa@gnu.org>
15898
15899 * xterm.c (x_load_font): Fix typo (`>' -> `=').
15900
15901 * ccl.h (struct ccl_program): New member stack_idx.
15902
15903 * ccl.c (ccl_prog_stack_struct): Declare it as static.
15904 (ccl_driver): Setup stack_idx and ccl_prog correctly. Update them
15905 before returing.
15906 (setup_ccl_program): Initialize ccl->stack_idx to 0.
15907
159081999-05-03 Jason Rumney <jasonr@altavista.net>
15909
15910 * w32term.c (dumpglyphs): Always fill background for italic fonts.
15911
159121999-05-03 Eli Zaretskii <eliz@is.elta.co.il>
15913
15914 * dired.c (make_time): Make argument type be time_t.
15915
159161999-05-02 Eli Zaretskii <eliz@is.elta.co.il>
15917
15918 * msdos.c (unibyte_display_via_language_environment): Add extern.
15919
83c8f461 159201999-05-02 Richard M. Stallman <rms@gnu.org>
26901792
DL
15921
15922 * xdisp.c (display_text_line): Convert unibyte char to multibyte
15923 if unibyte_display_via_language_environment is set.
15924 (unibyte_display_via_language_environment):
15925 Variable moved from xfns.c and elsewhere.
15926 (syms_of_xfns): Set up Lisp var.
15927
15928 * xfns.c (unibyte_display_via_language_environment):
15929 Variable moved to xdisp.c.
15930 (syms_of_xfns): Don't set up Lisp var here.
15931
15932 * msdos.c (unibyte_display_via_language_environment):
15933 Variable moved to xdisp.c.
15934 (syms_of_msdos): Don't set up Lisp var here.
15935
15936 * w32fns.c (unibyte_display_via_language_environment):
15937 Variable moved to xdisp.c.
15938 (syms_of_w32fns): Don't set up Lisp var here.
15939
159401999-05-02 Andrew Innes <andrewi@gnu.org>
15941
15942 * s/ms-w32.h (HAVE_FSYNC): New macro.
15943 (fsync): Map to _commit.
15944 (ftruncate): Map to _chsize.
15945
15946 * w32term.c (dumpglyphs): On Windows NT, do output in Unicode even
15947 for ASCII, if enabled, to avoid memory allocation overhead for
15948 implicit Unicode conversion. Also, recognize that ASCII and
15949 Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
15950 already contains the Unicode characters in that case.
15951 (construct_drag_n_drop): Remove old code that was
15952 trashing the drop location.
15953
15954 * w32select.c (Fw32_set_clipboard_data): Undo last change to add
15955 nlines to encoding_buffer_size (real bug was in a ccl program in
15956 lisp/international/coding.el).
15957
15958 * w32reg.c (w32_get_string_resource): Check for name in current
15959 user area, and if not found look in the local machine area.
15960
15961 * w32fns.c (w32_list_bdf_fonts): Initialize n_fonts.
15962 (Fw32_shell_execute): New function; used to support browse-url.
15963 (syms_of_w32fns): Register it.
15964 (w32_load_system_font): Force max width to be average
15965 char width for fixed-pitch fonts, to avoid unnecessary redisplay
15966 slowdown.
15967 (x_to_w32_charset): Define VIETNAMESE_CHARSET if not
15968 already defined.
15969 (syms_of_w32fns): Set Vw32_phantom_key_code to 255.
15970
15971 * unexw32.c (get_section_info): Dump back the entire EMDATA
15972 section if we can put Emacs' initialized data in a separate
15973 section, otherwise use the my_begdata/my_edata method.
15974
15975 * makefile.nt ($(BLD)\w32term.obj): Add dependency on w32heap.h.
15976
15977 * coding.c (decode_eol): Set produced/consumed values to zero if
15978 src_bytes is <= 0 on entry.
15979
159801999-05-02 Jason Rumney <jasonr@altavista.net>
15981
15982 * w32term.c (w32_write_glyphs, w32_clear_end_of_line,
15983 w32_clear_frame, clear_cursor, x_display_bar_cursor,
15984 x_display_box_cursor, x_set_window_size): Use phys_cursor_on
15985 field in frame.
15986 (do_line_dance): Updated WRT xterm.c. Use macros where possible.
15987 (dumprectangle): Take into account the width of a left-side
15988 scroll bar.
15989
15990 * w32proc.c (sys_kill): Attach to current foreground thread
15991 when grabbing focus; necessary on NT 5.0.
15992
15993 * w32fns.c (w32_wnd_proc) [WM_PAINT]: Use rectangle from
15994 GetUpdateRect rather than BeginPaint.
15995 (w32_wnd_proc): Attach to current foreground thread
15996 when grabbing focus; necessary on NT 5.0.
15997 (w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
15998 debugging display messages.
15999 (w32_to_x_charset): Put wildcard last in unknown charsets to avoid
16000 false matching.
16001
160021999-05-02 Kenichi HANDA <handa@etl.go.jp>
16003
16004 * coding.c (setup_raw_text_coding_system): Call
16005 setup_coding_system to initialize the fields of struct
16006 coding_system correctly.
427ec082 16007
26901792
DL
160081999-04-26 Kenichi HANDA <handa@etl.go.jp>
16009
16010 * xterm.c (x_list_fonts): Fix previous change.
16011
160121999-04-26 Richard Stallman <rms@gnu.org>
16013
16014 * config.in (HAVE_LIBXP): Add #undef.
16015 * Makefile.in (LIB_MOTIF_EXTRA): Check HAVE_LIBXP.
16016
160171999-04-12 Ken'ichi Handa <handa@gnu.org>
16018
16019 * xterm.c (x_list_fonts): Trap X errors so that Emacs doesn't die
16020 by them.
16021
160221999-04-12 Karl Heuer <kwzh@gnu.org>
16023
16024 * s/freebsd.h (BSD_SYSTEM): Define for FreeBSD 4 as with FreeBSD 3.
16025
160261999-04-11 Ken'ichi Handa <handa@gnu.org>
16027
16028 * fontset.c (Fset_fontset_font): Fix previous change.
16029
160301999-04-09 Ken'ichi Handa <handa@gnu.org>
16031
16032 * fontset.c (Fquery_fontset): Check for fontset aliases here.
16033 (Fnew_fontset, Fset_fontset_font): Don't check for them here.
16034
160351999-04-08 Richard Stallman <rms@gnu.org>
16036
16037 * process.c (Faccept_process_output): Check validity of PROCESS.
16038
160391999-04-08 Eli Zaretskii <eliz@gnu.org>
16040
16041 * msdos.c (jp_kbd_translate_table): Fix the other \ key.
16042
160431999-04-07 Richard Stallman <rms@gnu.org>
16044
16045 * xfns.c (x_set_font): Fix error message.
16046
16047 * fontset.c (Fquery_fontset): Don't check for fontset aliases here.
16048 (Fnew_fontset, Fset_fontset_font): Check for them here.
16049 (Ffontset_info, Fnew_fontset, Fset_fontset_font):
16050 Fix error message syntax.
16051
16052 * buffer.c (Fmake_indirect_buffer): Copy multibyte status
16053 from the base buffer.
16054 (Fset_buffer_multibyte): Copy new multibyte status
16055 into the buffer's indirect buffers.
16056
160571999-04-07 Ken'ichi Handa <handa@gnu.org>
16058
16059 * fns.c (base64_encode_1): Don't add unnecessary newline at the
16060 tail.
16061
160621999-04-06 Richard Stallman <rms@gnu.org>
16063
16064 * dired.c (Ffile_attributes): Doc fix.
16065
16066 * keymap.c (Faccessible_keymaps): Really initialize i_byte.
16067 Convert 0200 to meta only in a unibyte string.
16068 (Fkey_description): Likewise.
16069
16070 * eval.c (do_autoload): Preserve match data.
16071
160721999-04-06 Kenichi HANDA <handa@etl.go.jp>
16073
16074 * w32fns.c (x_to_w32_font): Provide sufficient buffer to
16075 encode_coding to avoid carryover.
16076
16077 * coding.c: Add comments for decode_coding and encode_coding.
16078
16079 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16080 a composite character by skipping its leading code.
16081 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16082 correctly.
16083
16084 * coding.c: Add comments for decode_coding and encode_coding.
16085
16086 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix bug of handling
16087 a composite character by skipping its leading code.
16088 <CCL_WriteMultibyteChar2>: Handle non-ascii single byte character
16089 correctly.
16090
160911999-04-06 Eli Zaretskii <eliz@gnu.org>
16092
16093 * msdos.c (dos_rawgetc): Don't zero out c if private translation
16094 table was used.
16095 (jp_kbd_translate_table): Support C-\.
16096 (it_kbd_translate_table): Map `>' correctly.
16097 (it_keyboard): Add `>'.
16098
160991999-04-06 Richard Stallman <rms@gnu.org>
16100
16101 * intervals.c (graft_intervals_into_buffer): Turn off
16102 inhibit_modification_hooks around calling Fset_text_properties.
16103
161041999-04-05 Kenichi HANDA <handa@etl.go.jp>
16105
16106 * xterm.c (dumpglyphs): Be sure to fill the whole background of
16107 glyphs.
16108
161091999-04-05 Eli Zaretskii <eliz@gnu.org>
16110
16111 * msdos.c (jp_kbd_translate_table): Fix last change.
16112
161131999-04-04 Eli Zaretskii <eliz@gnu.org>
16114
16115 * msdos.c (struct kbd_translate): New struct, for key translation
16116 tables private to certain national keyboard layouts.
16117 (struct dos_keyboard_map): Add a pointer to a private translation
16118 table.
16119 (jp_kbd_translate_table): Private table for the Japanese
16120 keyboard.
16121 (jp_keyboard): Japanese keyboard layout.
16122 (it_kbd_translate_table): Private table for the Italian keyboard.
16123 (it_keyboard): Use it_kbd_translate_table.
16124 (keyboard_layout_list): Add the Japanese keyboard.
16125 (dos_rawgetc): Use the keyboard-private translation table, if
16126 available.
16127 (abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
16128
161291999-04-02 Kenichi HANDA <handa@etl.go.jp>
16130
16131 * xdisp.c (redisplay_window): When we call compute_motion with
16132 HPOS got from w->last_point_x, call it with DID_MOTION 1.
16133 (display_text_line): Stop the loop for processing overlay strings
16134 when we reach the right edge of the window.
16135
83c8f461 161361999-03-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
16137
16138 * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
16139 let the data control whether string is unibyte.
16140
161411999-03-30 Richard M. Stallman <rms@gnu.org>
16142
16143 * macros.c (Fexecute_kbd_macro): Save real_this_command.
16144 (pop_kbd_macro): Restore the saved real_this_command.
16145 (Fcall_last_kbd_macro): Set real_this_command to the macro.
16146
161471999-03-26 Richard M. Stallman <rms@gnu.org>
16148
16149 * buffer.c (Fset_buffer_modified_p): Don't lock or unlock
16150 if buffer-file-name is nil.
16151
161521999-03-25 Jason Rumney <jasonr@altavista.net>
16153
16154 * w32select.c (Fw32_set_clipboard_data): Take into account line
16155 ends when calculating clipboard storage needed for non-ASCII text.
16156
161571999-03-25 Andrew Innes <andrewi@gnu.org>
16158
16159 * makefile.nt (PREPARED_HEADERS): Change name of paths.h to epaths.h.
16160 (epaths.h): Renamed from paths.h.
427ec082
SS
16161 (clean):
16162 ($(BLD)\filelock.obj):
16163 ($(BLD)\lread.obj):
26901792
DL
16164 ($(BLD)\w32fns.obj): Renamed paths.h to epaths.h.
16165
161661999-03-23 Ken'ichi Handa <handa@gnu.org>
16167
16168 * coding.c (encode_coding_iso2022): Initialize dummy arguments to
16169 ENCODE_ISO_CHARACTER for the previous change on this macro.
16170
161711999-03-23 Kenichi Handa <handa@etl.go.jp>
16172
16173 * xdisp.c (decode_mode_spec_coding): Handle integer value in
16174 eoltype correctly for backward compatibility.
16175
161761999-03-20 Kenichi HANDA <handa@etl.go.jp>
16177
16178 * coding.c (ENCODE_ISO_CHARACTER): Check validity of CHARSET. If
16179 invalid, produce the buffer internal byte sequence without encoding.
16180
161811999-03-19 Karl Heuer <kwzh@gnu.org>
16182
16183 * editfns.c (Fformat): Accept %i format.
16184
161851999-03-17 Karl Heuer <kwzh@gnu.org>
16186
16187 * filelock.c (get_boot_time): Test tempname, not filename.
16188
161891999-03-17 Jason Rumney <jasonr@altavista.net>
16190
e5619f6b
JR
16191 * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to
16192 speed display.
16193
16194 * w32bdf.c: Merged patches from Meadow; introduce bitmap cache to
16195 speed display.
16196 (get_cached_font_char, cache_char_offset, get_bitmap_with_cache)
16197 New functions.
16198 (w32_free_bdf_font, seek_char, w32_get_bdf_glyph, w32_BDF_TextOut)
16199 Use bitmap cache.
26901792
DL
16200
16201 * w32fns.c (enum_font_cb2): Set the font height to be the
16202 character height, not the cell height.
16203 (Fw32_select_font): Initialize font dialog with current default font.
16204 (Vw32_system_coding_system): New variable.
16205 (w32_strict_filenames): Add comment.
16206 (w32_to_x_font): Decode font name using Vw32_system_coding_system.
427ec082 16207 (x_to_w32_font): Encode font name using Vw32_system_coding_system.
26901792
DL
16208 (syms_of_w32fns): Add w32-system-coding-system.
16209
162101999-03-15 Richard M. Stallman <rms@gnu.org>
16211
16212 * xterm.c (XTread_socket) <ConfigureNotify>:
16213 If cursor pos is outside the new frame size, mark cursor as off.
16214
162151999-03-14 Ken'ichi Handa <handa@gnu.org>
16216
16217 * xdisp.c (try_window_id): Initialize val.ovstring_chars_done to 0.
16218
16219 * xterm.c (x_load_font): Trap X errors so that Emacs doesn't die
16220 by them.
16221
162221999-03-14 Richard M. Stallman <rms@gnu.org>
16223
16224 * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations
16225 at beginning.
16226
162271999-03-14 Jason Rumney <jasonr@altavista.net>
16228
16229 * w32fns.c (w32_strict_fontnames): New variable.
16230 (Fx_create_frame): Formatting fix.
16231 (w32_load_system_font): Keep trying to load non-existant font
16232 if w32_strict_fontnames is nil. Formatting fix.
16233 (syms_of_w32fns): Add w32-strict-fontnames.
16234
16235 * w32term.c (W32_TEXTOUT): Do not multiply nchars by charset_dim.
16236 (dumpglyphs): Formatting fixes.
16237
162381999-03-14 Geoff Voelker <voelker@cs.washington.edu>
16239
16240 * w32fns.c (w32_wnd_proc): Handle WM_GETMINMAXINFO message.
16241
162421999-03-10 Karl Heuer <kwzh@gnu.org>
16243
16244 * puresize.h (BASE_PURESIZE): Increase to 505000.
16245
162461999-03-09 Richard M. Stallman <rms@gnu.org>
16247
16248 * emacs.c (main) [CLASH_DETECTION]: Call init_filelock.
16249
16250 * filelock.c (init_filelock): New function.
16251
162521999-03-09 Dave Love <fx@gnu.org>
16253
16254 * fileio.c (Ffile_directory_p): Doc fix.
16255
83c8f461 162561999-03-05 Richard M. Stallman <rms@gnu.org>
26901792
DL
16257
16258 * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.
16259
162601999-03-08 Richard M. Stallman <rms@gnu.org>
16261
16262 * filelock.c (get_boot_time): Reduce scope of #ifdef BOOT_TIME
16263 to only the part that uses get_boot_time_1.
16264
162651999-03-07 Dave Love <fx@gnu.org>
16266
16267 * fileio.c (Finsert_file_contents): Use xfree.
16268
162691999-03-06 Kenichi Handa <handa@etl.go.jp>
16270
16271 * Makefile.in (callproc.o, coding.o, fileio.o, msdos.o, process.o,
16272 term.o, xselect.o): Depend on ccl.h.
16273
162741999-03-05 Geoff Voelker <voelker@cs.washington.edu>
16275
16276 * makefile.nt: Remove common multiple file compilation commands.
16277
162781999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp>
16279
16280 * fns.c (Fbase64_encode_string): Allocate sufficient memory for
16281 newlines added when the arg NO-LINE-BREAK is nil.
16282
162831999-03-04 Karl Heuer <kwzh@gnu.org>
16284
16285 * search.c (Fstring_match, Fposix_string_match): Doc fix.
16286
16287 * buffer.c (syms_of_buffer): Doc fix for case-fold-search.
16288
162891999-03-04 Dave Love <fx@gnu.org>
16290
16291 * term.c (term_init): Use xmalloc, not malloc.
16292
16293 * callproc.c (Fcall_process): Use xmalloc, xfree.
16294
162951999-03-03 Andreas Schwab <schwab@gnu.org>
16296
16297 * eval.c (Fdefconst): Doc fix.
16298
162991999-03-01 Kenichi Handa <handa@etl.go.jp>
16300
16301 * coding.c: Comment for ISO 2022 encoding mechanism modified.
16302
163031999-03-01 Eli Zaretskii <eliz@gnu.org>
16304
16305 * w16select.c (get_clipboard_data): Always stop at the first null byte.
16306
163071999-02-28 Richard M. Stallman <rms@gnu.org>
16308
16309 * filelock.c (get_boot_time): Support FreeBSD way to read boot-time.
16310
16311 * cmds.c (internal_self_insert): Calculate column properly
16312 in overwrite-of-tab case.
16313
163141999-02-27 Andreas Schwab <schwab@gnu.org>
16315
16316 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't use unsetenv, it calls
16317 malloc in glibc 2.1.
16318
163191999-02-26 Richard Stallman <rms@gnu.org>
16320
16321 * Makefile.in: paths.h and paths.in renamed to epaths.h and epaths.in.
16322
16323 * epaths.in: Renamed from paths.in.
16324 This avoids a conflict with a system header file paths.h on GNU/Linux.
16325
16326 * callproc.c, lread.c, w32fns.c, xfns.c, xrdb.c:
16327 Use epaths.h istead of paths.h.
16328
163291999-02-26 Andreas Schwab <schwab@gnu.org>
16330
16331 * emacs.c (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
16332 malloc.
16333
163341999-02-25 Dave Love <fx@gnu.org>
16335
16336 * buffer.c (syms_of_buffer): Doc fix for enable-multibyte-characters.
16337
163381999-02-25 Richard Stallman <rms@gnu.org>
16339
16340 * filelock.c (get_boot_time): Use WTMP_FILE for file name.
16341 (WTMP_FILE): Default definition in case not defined.
16342 (get_boot_time_1): Test that file exists before trying to read it.
427ec082 16343
26901792
DL
163441999-02-25 Ken'ichi Handa <handa@gnu.org>
16345
16346 * keymap.c (push_key_description): If enable-multibyte-characters
16347 is nil and C is single byte, push C as is.
16348
163491999-02-24 Kenichi Handa <handa@etl.go.jp>
16350
16351 * keymap.c (push_key_description): If enable-multibyte-characters
16352 is non-nil, try to convert unibyte character to multibyte. For
16353 invalid multibyte character, show all bits by octal form.
16354 (Fsingle_key_description): Check the validity of charset for a
16355 generic character.
16356
163571999-02-23 Richard M. Stallman <rms@gnu.org>
16358
16359 * fileio.c (Ffile_regular_p): Undo previous change.
16360
16361 * eval.c (Fdefconst): Doc fix.
16362
16363 * filelock.c (get_boot_time): Don't use BUFSIZ.
16364
163651999-02-22 Andrew Innes <andrewi@gnu.org>
16366
16367 * makefile.nt ($(BLD)\w32bdf.obj): Add missing continuation character.
16368 (EXTRA_LINK): Do version test with strings.
16369
163701999-02-22 Andreas Schwab <schwab@gnu.org>
16371
16372 * fns.c (Fbase64_encode_string): Fix last change.
16373
16374 * termhooks.h (event_kind): Add user_signal.
16375
16376 * keyboard.c (Qusr1_signal, Qusr2_signal): New variables.
16377 (syms_of_keyboard): Initialize them.
16378 (lispy_user_signals): New variable.
16379 (make_lispy_event): Handle user_signal event type.
16380
16381 * emacs.c: Don't define Qusr1_signal and Qusr2_signal.
16382 (syms_of_emacs): Don't initialize them.
16383 (handle_USR1_signal, handle_USR2_signal): Set event type to
16384 user_signal instead of non_ascii_keystroke, and use plain integers
16385 as code instead of Lisp symbols.
16386
163871999-02-21 Eli Zaretskii <eliz@delysid.gnu.org>
16388
16389 * fileio.c: (lstat) [!S_ISLNK]: Use stat instead of lstat.
16390
163911999-02-21 Richard Stallman <rms@gnu.org>
16392
16393 * filelock.c (get_boot_time_1): Put this in #ifdef BOOT_TIME.
16394
16395 * print.c (print_error_message): Don't crash if (cdr data)
16396 is not a list.
16397
163981999-02-21 Eli Zaretskii <eliz@gnu.org>
16399
16400 * fileio.c (lstat) [!S_ISLNK]: Use stat instead of lstat.
16401
164021999-02-20 Andrew Innes <andrewi@gnu.org>
16403
16404 * vm-limit.c (memory_warnings) [WINDOWSNT]: Reset lim_data on each
16405 run, since size can vary from run to run.
16406
16407 * makefile.nt (EXTRA_LINK, LINK_FLAGS): Ensure base relocation
16408 data is included, to enable profiling.
16409 ($(EMACS)): Map file not needed for emacs.exe.
16410
16411 * emacs.c (main): [!SYSTEM_MALLOC]: Call realloc and free as well
16412 as malloc before calling uninterrupt_malloc, for consistency.
16413 This also enables profiling to work on WINDOWSNT.
16414
164151999-02-18 Richard Stallman <rms@gnu.org>
16416
16417 * Makefile.in (emacs.o): Depend on termhooks.h.
16418 (filelock.o): Depend on systime.h.
16419
164201999-02-18 Ken'ichi Handa <handa@gnu.org>
16421
16422 * coding.c (Fdecode_sjis_char): Use %x for formatting error message.
16423 (Fdecode_big5_char): Likewise.
16424
164251999-02-17 Richard Stallman <rms@gnu.org>
16426
16427 * insdel.c (adjust_markers_for_replace): When doing an insertion
16428 (replacing a region of zero length), handle markers at the
16429 insertion point properly.
16430
164311999-02-17 Andrew Innes <andrewi@gnu.org>
16432
16433 * w32fns.c (Vw32_quit_key): New variable.
16434 (post_character_message): Use it.
16435 (syms_of_w32fns): DEFVAR it.
16436
164371999-02-16 MORIOKA Tomohiko <morioka@jaist.ac.jp>
16438
16439 * fns.c (Fbase64_encode_string): New optional argument `NO_LINE_BREAK'.
16440
164411999-02-16 Richard Stallman <rms@gnu.org>
16442
16443 * filelock.c (within_one_second): New function.
16444 (current_lock_owner): Use that.
16445 (get_boot_time): Use /proc/uptime if available.
16446 Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
16447 (get_boot_time_1): New subroutine taken from get_boot_time.
427ec082 16448
26901792
DL
164491999-02-16 Richard Stallman <rms@gnu.org>
16450
16451 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16452 (syms_of_emacs): Init and staticpro them.
16453 (handle_USR1_signal): Don't run any code, just queue up an event.
16454 (handle_USR2_signal): Likewise.
16455
164561999-02-16 Eli Zaretskii <eliz@gnu.org>
16457
16458 * dired.c (Ffile_attributes): If the file's size doesn't fit in
16459 an integer, return it as a float. Doc string fixed.
16460
164611999-02-16 Richard Stallman <rms@gnu.org>
16462
16463 * emacs.c (Qusr1_signal, Qusr2_signal): New variables.
16464 (syms_of_emacs): Init and staticpro them.
16465 (handle_USR1_signal): Don't run any code, just queue up an event.
16466 (handle_USR2_signal): Likewise.
16467
164681999-02-15 Kenichi Handa <handa@etl.go.jp>
16469
16470 * coding.c (Fdecode_sjis_char, Fencode_sjis_char): Handle
16471 ASCII correctly. Signal error on invalid characters.
16472 (Fdecode_big5_char, Fencode_big5_char): Likewise.
16473
164741999-02-15 Eli Zaretskii <eliz@gnu.org>
16475
16476 * w16select.c (get_clipboard_data): Work around a bug in Windows95
16477 DOS box which doubles the reported size of text in the clipboard.
16478
164791999-02-15 Kenichi Handa <handa@etl.go.jp>
16480
16481 * coding.c (decode_coding_iso2022): Don't set
16482 coding->composed_chars to 0 here.
16483 (setup_coding_system): Set coding->composed_chars to 0 here.
16484
164851999-02-10 Richard Stallman <rms@gnu.org>
16486
16487 * fileio.c (Ffile_regular_p): Use lstat.
16488
164891999-02-09 Richard Stallman <rms@gnu.org>
16490
16491 * unexelf.c (HAS_SBSS_SECTION): Define this in some cases.
16492 (unexec): Test this instead of specific systems.
16493
16494 * m/macppc.h: New file.
16495
164961999-02-08 Dave Love <fx@gnu.org>
16497
16498 * fns.c (Fyes_or_no_p, Fy_or_n_p): Doc fix.
16499
165001999-02-08 Ken'ichi Handa <handa@gnu.org>
16501
16502 * coding.c (ccl_coding_driver): On encoding, coding->produced_char
16503 should be set to coding->produced.
16504
165051999-02-07 Paul Fisher <rao@gnu.org>
16506
16507 * fns.c (IS_BASE64_IGNORABLE, READ_QUADRUPLET_BYTE): New macros.
16508 (base64_decode_1): Use READ_QUADRUPLET_BYTE.
16509
165101999-02-07 Markus Rost <markus.rost@mathematik.uni-regensburg.de>
16511
16512 * editfns.c (Fformat): Doc fix.
16513
165141999-02-06 Richard Stallman <rms@gnu.org>
16515
16516 * process.c (syms_of_process): defsubr it.
16517 (Fprocess_running_child_p): New function.
16518
165191999-02-05 Andrew Innes <andrewi@gnu.org>
16520
16521 * w32term.c (construct_drag_n_drop): Call DraqQueryPoint before
16522 recording drop position.
16523
165241999-02-05 Ken'ichi Handa <handa@gnu.org>
16525
16526 * coding.c (encode_coding_iso2022): Before writing out an invalid
16527 code, reset graphic planes and registers if necessary.
16528
16529 * term.c (encode_terminal_code): Fix previous change.
16530
165311999-02-04 Eli Zaretskii <eliz@gnu.org>
16532
16533 * w16select.c (last_clipboard_text, clipboard_storage_size): New
16534 static variables.
16535 (set_clipboard_data): Save a copy of the text we put into
16536 clipboard in last_clipboard_text.
16537 (get_clipboard_data): If the clipboard text is identical to what
16538 last_clipboard_text holds, pretend there's no data in the clipboard.
16539
165401999-02-03 Richard Stallman <rms@gnu.org>
16541
16542 * s/gnu.h (NLIST_STRUCT): Add #undef.
16543
165441999-02-03 Eli Zaretskii <eliz@gnu.org>
16545
16546 * w16select.c (Fw16_set_clipboard_data): When the text needs to be
16547 encoded, set its pointer and size as returned by encode_coding.
16548
165491999-02-02 Ken'ichi Handa <handa@gnu.org>
16550
16551 * fns.c (Fset_char_table_default): To handle the case that CH is
16552 an ASCII char, use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
16553
165541999-02-02 Andrew Innes <andrewi@gnu.org>
16555
16556 * w32fns.c (syms_of_w32fns): Change default value of
16557 w32-mouse-move-interval to 0, so that the mouse wheel/rocker on
16558 some mice works properly.
16559
165601999-02-02 Eli Zaretskii <eliz@gnu.org>
16561
16562 * w16select.c (set_clipboard_data): Correctly null-terminate the
16563 string to be put into the Windows clipboard. Use xbuf_addr.
16564
165651999-02-01 Richard Stallman <rms@gnu.org>
16566
16567 * buffer.c (Fset_buffer_multibyte): Error if buffer is indirect.
16568
165691999-01-31 Richard Stallman <rms@gnu.org>
16570
16571 * process.c (process_send_signal): If CURRENT_GROUP is `lambda'
16572 then don't send the signal if the shell owns the terminal.
16573 (Finterrupt_process): Doc change.
427ec082 16574
26901792
DL
165751999-01-31 Andrew Innes <andrewi@gnu.org>
16576
16577 * unexw32.c: (ROUND_UP_DST_AND_ZERO): New macro.
16578 (copy_executable_and_dump_data): Use it to ensure alignment slop
16579 is zeroed.
16580
165811999-01-30 Andrew Innes <andrewi@gnu.org>
16582
16583 * w32.c (init_environment): Change argv[0] to contain the full
16584 path to Emacs.
16585
16586 * emacs.c (main) [WINDOWSNT]: Pass argv to init_environment.
16587
165881999-01-29 Ken'ichi Handa <handa@gnu.org>
16589
16590 * xterm.c (x_new_fontset): For ASCII font, don't use the font name
16591 returned by x_new_font (the resolved one) but use the font name
16592 set in the fontset specification.
16593 (x_load_font): For the height of font, if normarl ascent and
16594 descent value are larger than those in max_bounds field, use the
16595 former.
16596
165971999-01-28 Eli Zaretskii <eliz@gnu.org>
16598
16599 * xdisp.c (decode_mode_spec_coding): Fix previous change.
16600
166011999-01-27 Geoff Voelker <voelker@cs.washington.edu>
16602
16603 * makefile.nt: Use full path to temacs.exe when dumping.
16604
166051999-01-27 Jason Rumney <jasonr@altavista.net>
16606
16607 * w32fns.c (w32_load_system_font): Do not load unlisted fonts if
16608 list was reliable.
16609 (enum_fontex_cb1, enum_fontex_cb2): New functions.
16610 (w32_list_bdf_fonts): New parameter; max_names. Callers updated.
16611 (w32_list_synthesized_fonts): New function.
16612 (w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
16613 available instead of EnumFontFamilies. List synthesized fonts if
16614 Vw32_enable_italics is non-nil.
427ec082 16615
26901792
DL
166161999-01-27 Richard Stallman <rms@gnu.org>
16617
16618 * s/ptx4.h (SETUP_SLAVE_PTY): Use the ptem module if it exists.
16619 Don't complain if ttcompat does not exist.
16620
16621 * w32fns.c (x_set_frame_parameters): gcpro as needed.
16622
166231999-01-27 Andrew Innes <andrewi@gnu.org>
16624
16625 * w32fns.c (w32_wnd_proc): Fix bug introduced by previous change;
16626 the lwindow, rwindow and apps keys could not be used as function
16627 keys, because they were being passed to TranslateMessage which
16628 ignores them. Also, key was being changed to SPC.
16629
16630 * makefile.nt: Do make version comparison as strings.
16631
166321999-01-27 Eli Zaretskii <eliz@gnu.org>
16633
16634 * coding.c (syms_of_coding): eol-mnemonic-* variables are now
16635 strings, not characters.
16636
16637 * coding.h: Likewise.
16638
16639 * xdisp.c (decode_mode_spec_coding): Display the EOL type as a
16640 string.
16641
166421999-01-26 Dave Love <fx@gnu.org>
16643
16644 * emacs.c (main): Up-date copyright.
16645
166461999-01-25 Dave Love <fx@gnu.org>
16647
16648 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16649
166501999-01-25 Andreas Schwab <schwab@gnu.org>
16651
16652 * eval.c (Fsignal): Move comment to avoid confusing make-docfile.
16653
166541999-01-23 Richard M. Stallman <rms@borg.ai.mit.edu>
16655
16656 * xfns.c (x_set_frame_parameters): gcpro as needed.
16657
16658 * window.c (Fset_window_point): If WINDOW is selected but the
16659 current buffer is not its buffer, don't use Fgoto_char.
16660
166611999-01-22 Richard M. Stallman <rms@gnu.org>
16662
16663 * syntax.c (scan_sexps_forward): Delete duplicate code
16664 to set prev_from_syntax, above start of main loop.
16665 At startinstring, check syntax when checking for a match.
16666
166671999-01-22 Jason Rumney <jasonr@altavista.net>
16668
16669 * w32bdf.c: New file.
16670 * w32bdf.h: New file.
16671 * makefile.nt: Add w32bdf.c and w32bdf.h.
16672
16673 * w32gui.h: Include w32bdf.h.
16674 (W32FontStruct) Add bdf element.
16675
16676 * w32term.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_MAX_WIDTH):
16677 Support BDF fonts.
16678
16679 * w32term.c (W32_TEXTOUT): New macro.
16680 (dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
16681 Simplify baseline calculation. Detect SJIS by font, not glyph.
16682 Call SetTextAlign.
16683 (syms_of_w32term): Remove "jisx0212-sjis" from
16684 w32-charset-to-codepage-alist.
16685 Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
16686 Add "ksc5601.1992' to w32-charset-to-codepage-alist.
427ec082 16687
26901792
DL
16688 * w32fns.c (Vw32_bdf_filename_alist): New variable.
16689 (x_destroy_bitmap): Returns void not int.
16690 (x_set_border_pixel): Returns void.
16691 (w32_load_bdf_font): New function.
16692 (w32_load_system_font): New function, was w32_load_font. List
16693 fonts before loading. Explicitly set encoding for SJIS fonts.
16694 Set default_ascent to 0 as comment indicates.
16695 (w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
16696 (w32_unload_font): Support BDF fonts.
16697 (w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
16698 Autodetect whether to use koi8-r instead of iso8859-5.
16699 Associate "ksc5601.1987" with HANGUEL_CHARSET.
16700 Associate "ksc5601.1992" with JOHAB_CHARSET.
16701 (x_to_w32_charset): Make consistent with w32_to_x_charset.
16702 (w32_to_x_font): Add resolution.
16703 (x_to_w32_font): Use font resolution to calculate height if supplied.
16704 (w32_font_match): Handle wildcards anywhere within field.
16705 (enumfont_t): Remove unused head pointer.
16706 (enum_font_cb2): Dereference elfLogFont.
16707 (w32_list_bdf_fonts): New function.
16708 (w32_list_fonts): Use one_w32_dispay_info instead of insisting on
16709 valid frame. Remove MessageBox. Support BDF fonts.
16710 (Fw32_find_bdf_fonts): New function.
16711 (syms_of_w32fns): Add Vw32_bdf_filename_alist and
16712 Sw32_find_bdf_fonts.
16713
167141999-01-21 Andrew Innes <andrewi@gnu.org>
16715
16716 * makefile.nt (temacs): Use del to delete file, not rm.
16717
167181999-01-19 Richard Stallman <rms@psilocin.ai.mit.edu>
16719
16720 * keyboard.c (read_key_sequence): Fix previous change.
16721
16722 * xterm.c (same_x_server): Detect treat ":0" and "unix:0"
16723 as the same. Treat "myname:0" as the same as those two.
16724
167251999-01-19 Jason Rumney <jasonr@altavista.net>
16726
16727 * w32fns.c (x_to_w32_charset): Add iso8859-9.
16728 (w32_to_x_charset): Fix charset mappings.
16729
16730 * w32term.c: Remove codepage macros. Remove redundant BIG5 macros.
16731 (dumpglyphs): Move definitions out of block containing goto.
16732 Remove redundant code for BIG5.
16733 Use w32_codepage_for_font instead of
16734 w32_codepage_for_charset. Add cast to int where float
16735 operation is assigned to int.
16736 (Vw32_charset_to_codepage_alist): New variable.
16737 (w32_codepage_for_charset): Removed.
427ec082
SS
16738 (w32_codepage_for_font): New function, replacing
16739 w32_codepage_for_charset.
26901792
DL
16740 (syms_of_w32term): Add and initialize
16741 w32-charset-to-codepage-alist.
16742
167431999-01-17 Richard Stallman <rms@psilocin.ai.mit.edu>
16744
16745 * xselect.c (x_handle_selection_clear): Don't clear the
16746 selection if Emacs still owns it through a different display.
16747
167481999-01-17 Andrew Innes <andrewi@gnu.org>
16749
16750 * w32proc.c: (w32_executable_type): Relax the check to identify
16751 cygwin-compiled applications, because the exact dll name varies
16752 with release. Now only require the name to start "cygwin".
16753
16754 * w32heap.h: (ROUND_UP):
16755 (ROUND_DOWN): New macros.
16756 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16757 (init_heap): New extern.
16758 (data_region_size):
16759 (recreate_heap):
16760 (read_in_bss):
16761 (map_in_heap):
16762 (round_to_next):
16763 (w32_fatal_reload_error):
16764 (get_section_size): Obsolete externs removed.
16765
16766 * w32heap.c: (RVA_TO_PTR): Redefine to convert RVA to address in
16767 current process.
16768 (round_to_next): Obsolete function removed.
16769 (preload_heap_section): New variable.
16770 (data_region_size): Obsolete variable removed.
16771 (allocate_heap): Modified to determine end of static heap section
16772 used during preload, and use that as initial base address for
16773 dynamic heap instead of hard-coded value.
16774 (sbrk): Remove call to allocate_heap; handled by init_heap. Skip
16775 calls to commit or decommit pages when allocating from static heap
16776 section during preload.
16777 (recreate_heap): Obsolete function removed.
16778 (init_heap): New function to initialize internal sbrk heap
16779 variables. Uses static heap section during preload, otherwise
16780 calls allocate_heap to reserve a heap region dynamically.
16781 (round_heap): Use ROUND_UP macro instead of round_to_next.
16782
16783 * unexw32.c: Major rewrite to support cleaner method of dumping; a
16784 static "bss" section is used for heap space during preload, and
16785 bss data is now written to the proper section area when dumping.
16786 (need_to_recreate_heap): Renamed to using_dynamic_heap.
16787 (heap_index_in_executable): Obsolete variable removed.
16788 (data_section): New variable.
16789 (data_start_va): Renamed to data_start.
16790 (data_start_file): Obsolete variable removed.
16791 (bss_section):
16792 (extra_bss_size):
16793 (bss_section_static):
16794 (bss_start_static):
16795 (bss_size_static):
16796 (extra_bss_size_static):
16797 (heap_section): New variables.
16798 (_start): Remove code based on old unexec method. Call init_heap
16799 to initialize sbrk heap.
16800 (close_file_data): Update size of file when closing, so that
16801 unexec doesn't have to work out exact size in advance.
16802 (get_bss_info_from_map_file):
16803 (get_section_size): Obsolete functions removed.
16804 (rva_to_section): Fix minor bug, and add a work-around for a bug
16805 in very old linkers.
16806 (offset_to_section):
16807 (relocate_offset): New functions.
16808 (OFFSET_TO_RVA):
16809 (RVA_TO_OFFSET):
16810 (RVA_TO_SECTION_OFFSET):
16811 (PTR_TO_RVA):
16812 (PTR_TO_OFFSET):
16813 (OFFSET_TO_PTR): New macros.
16814 (get_section_info): Modify to support new unexec method;
16815 determines address ranges in process that need dumping, and COFF
16816 sections where data will be dumped. Allows for static and global
16817 bss data to be in separate ranges. No longer relies on knowledge
16818 of section names.
16819 (copy_executable_and_dump_data_section): Renamed
16820 copy_executable_and_dump_data. Completely rewritten to copy
16821 executable section by section, so that raw data areas can be
16822 expanded to hold dumped data as necessary. Allows for bss data to
16823 be in same section as initialized data. Reduces size of static
16824 heap section to that used during preload.
16825 (dump_bss_and_heap):
16826 (w32_fatal_reload_error):
16827 (read_in_bss):
16828 (map_in_heap): Obsolete functions removed.
16829 (unexec): Rounds off preload heap to nearest page rather than
16830 virtual allocation unit. Modified to match other changes.
16831
16832 * mem-limits.h: (get_lim_data): Use reserved_heap_size instead of
16833 data_region_size.
16834
16835 * makefile.nt: (TEMACS_TMP): New macro.
16836 ($(TEMACS)): Output to TEMACS_TMP from link, use post-link
16837 processor to add static heap section in support of new unexec.
16838
16839 * lastfile.c: Include config.h to pick up data layout pragmas.
16840 [WINDOWSNT]: Remove explicit pragma.
16841
168421999-01-12 Kenichi Handa <handa@etl.go.jp>
16843
16844 * coding.c (Fdecode_sjis_char): Decode Japanese Katakana character
16845 correctly.
16846 (Fencode_sjis_char): Encode Japanese Katakana character correctly.
16847
168481999-01-11 Dave Love <fx@gnu.org>
16849
16850 * coding.c (syms_of_coding): Doc fix for inhibit-eol-conversion.
16851
168521999-01-11 Richard Stallman <rms@psilocin.ai.mit.edu>
16853
16854 * keyboard.c (read_key_sequence): In key-translation-map and
16855 function-key-map, handle symbol with array as fn def.
16856 In function-key-map, handle symbol with keymap as fn def,
16857 and autoloaded definitions.
427ec082 16858
26901792
DL
16859 * puresize.h (BASE_PURESIZE): Increment to 500000.
16860
16861 * print.c (Qtemp_buffer_setup_hook): New variable.
16862 (syms_of_print): Init and staticpro that.
16863 (temp_output_buffer_setup): Run Qtemp_buffer_setup_hook.
16864
168651999-01-11 Kenichi Handa <handa@etl.go.jp>
16866
16867 * insdel.c (del_range_1): Call signal_after_change.
16868 (del_range_byte): Likewise.
16869 (del_range_both): Likewise.
16870 (del_range_2): Don't call signal_after_change.
16871
16872 * xdisp.c (message_dolog): Use insert_1_both to avoid running any
16873 Lisp code here.
16874
168751999-01-07 Richard Stallman <rms@psilocin.ai.mit.edu>
16876
16877 * eval.c (find_handler_clause): If SIG is nil (memory full error),
16878 never run the debugger, and don't bother checking the args
16879 to see whether the debugger should be run.
16880
168811999-01-06 Richard Stallman <rms@psilocin.ai.mit.edu>
16882
16883 * keyboard.c (read_key_sequence):
16884 Tell get_keyelt to look handle autoloads.
16885 Handle symbols defined as keymaps, and autoloaded keymaps.
16886
168871999-01-06 Kenichi Handa <handa@etl.go.jp>
16888
16889 * search.c (search_buffer): Fix previous change.
16890
168911999-01-06 Eli Zaretskii <eliz@gnu.org>
16892
16893 * w16select.c (set_clipboard_data): Terminate the text with a null
16894 character. Don't allow to put binary data into the clipboard.
16895 Return zero in case of success, 1 or 2 otherwise.
16896 (get_clipboard_data): Only bail out if the null character is in
16897 the last 32-byte chunk of clipboard data
16898 (Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
16899 they save binary data, print a message in the echo area saying the
16900 text was not put into the clipboard.
16901
16902 * msdos.c (IT_write_glyphs): Move constant expression out of the loop.
16903
169041999-01-06 Andreas Schwab <schwab@gnu.org>
16905
16906 * systty.h [__GLIBC__ >= 2]: Check __FAVOR_BSD instead of
16907 _BSD_SOURCE, the latter is always defined.
16908
169091999-01-05 Richard Stallman <rms@psilocin.ai.mit.edu>
16910
16911 * fns.c (Frequire): Don't fail to unbind bindings.
16912
169131999-01-02 Richard Stallman <rms@psilocin.ai.mit.edu>
16914
16915 * emacs.c (main) [DOUG_LEA_MALLOC]: Don't call r_alloc_reinit.
16916
16917 * charset.c (Ffind_charset_region): Fix doc typo.
16918
169191998-12-31 Eli Zaretskii <eliz@mescaline.gnu.org>
16920
16921 * msdos.c (IT_write_glyphs): Convert unibyte characters to
16922 multibyte in unibyte buffers only.
16923
16924 * keymap.c (Fdefine_prefix_command): Accept a third argument NAME
16925 and pass it to Fmake_sparse_keymap.
16926
169271998-12-29 Richard Stallman <rms@psilocin.ai.mit.edu>
16928
16929 * alloc.c (MMAP_MAX_AREAS): New macro.
16930 (allocate_vectorlike, make_uninit_multibyte_string): Use that.
16931 (init_alloc_once): Use that.
16932
16933 * s/gnu-linux.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
16934
16935 * alloc.c (lisp_malloc, lisp_free): New functions.
16936 Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
16937 Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
16938 (n_interval_blocks, n_float_blocks): New variable.
16939 (n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
16940 (n_marker_blocks, n_string_blocks): New variable.
16941 (init_intervals, make_interval): Set a count variable.
16942 Use lisp_malloc instead of setting allocating_for_lisp.
16943 (init_float, make_float, init_cons, Fcons): Likewise.
16944 (allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
16945 (init_marker, allocate_misc, init_strings): Likewise.
16946 (make_uninit_multibyte_string): Likewise.
16947 (gc_sweep, compact_strings): Decrement the count variables.
16948
16949 * alloc.c (uninterrupt_malloc): Don't store Emacs's hooks
16950 into the old_..._hook variables.
16951
169521998-12-28 Richard Stallman <rms@psilocin.ai.mit.edu>
16953
16954 * keyboard.c: In each active map, for each menu bar item, use only
16955 the first submap.
16956 (menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
16957 (menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
16958 (syms_of_keyboard): Staticpro and init it.
16959
427ec082 16960 * xmenu.c (single_keymap_panes):
26901792
DL
16961
169621998-12-28 Andrew Innes <andrewi@delysid.gnu.org>
16963
16964 * w32fns.c (w32_msg_pump): Ignore WM_NULL message posted to thread
16965 by complete_deferred_msg.
16966 (post_character_message): Cancel all deferred messages when
16967 quit_char is typed, in order to break out of potential deadlocks.
16968 (cancel_all_deferred_msgs): New function.
16969 (complete_deferred_msg): Don't abort if msg not found; may have
16970 been cancelled.
16971 (Fw32_reconstruct_hot_key): Use pre-interned symbols.
16972 (Fw32_send_sys_command): Wait for system command to
16973 complete before returning.
427ec082 16974
26901792
DL
16975 * w32term.c (x_iconify_frame): Wait for frame to be iconified; do
16976 not set async_iconified flag though.
16977
16978 * w32proc.c: (Vw32_start_process_inherit_error_mode): New variable.
16979 (create_child): Use it.
16980 (syms_of_ntproc): Defvar it. Also fix docstrings for
16981 w32-start-process-share-console and w32-start-process-show-window.
16982
16983 * unexw32.c (_start): Force system calls accessing unmounted
16984 devices to fail without prompting.
16985
169861998-12-26 Richard Stallman <rms@psilocin.ai.mit.edu>
16987
16988 * emacs.c (main): Call memory_warnings and uninterrupt_malloc
16989 even when starting the dumped Emacs.
16990
16991 * keymap.c (Fsingle_key_description): Handle (control ?x) etc.
16992 (Fkey_description): Handle lists like vectors.
16993
169941998-12-21 Kenichi Handa <handa@etl.go.jp>
16995
16996 * callint.c (Fcall_interactively) <'C'>: Give Fread_char Qnil
16997 because of the change of the second argument of Fread_char.
16998
16999 * charset.c (Fcharset_after): Check range. If POS is out of
17000 range, return nil.
17001
17002 * keyboard.c (read_char): Don't bind input-method-exit-on-first-char.
17003
17004 * lread.c (Fread_char): Change the meaning of the second argument.
17005 (Fread_event): Likewise.
17006 (Fread_char_exclusive): Likewise.
17007
17008 * print.c (printchar): Fix previous change.
17009
17010 * process.c (read_process_output): Decide the multibyteness of
17011 string given to a process filter by a coding system used for
17012 decoding the process output.
17013
170141998-12-21 Eli Zaretskii <eliz@mescaline.gnu.org>
17015
17016 * xterm.c (dumpglyphs): Don't convert 7-bit ASCII characters via
17017 nonascii-translation-table.
17018 * msdos.c (IT_write_glyphs): Likewise.
17019 * fns.c (concat): Likewise.
17020 * charset.c (unibyte_char_to_multibyte): Likewise.
17021 * insdel.c (copy_text, count_size_as_multibyte): Likewise.
17022
170231998-12-21 Andreas Schwab <schwab@delysid.gnu.org>
17024
17025 * doc.c (Fdocumentation): Change the doc string for prefix
17026 commands to make it a complete sentence in one line.
17027
170281998-12-16 Petri Kaurinkoski <Petri.Kaurinkoski@hut.fi>
17029
17030 * s/irix6-5.h: New file.
17031 * s/irix6-0.h (IRIX6): Define this symbol.
17032 * s/usg5-4.h (TIOCSIGSEND): Don't define this if irix6.
17033 (bcopy, bcmp, bzero): Likewise.
17034 * m/iris4d.h (LIBS_MACHINE): Leave this blank if irix6.5.
17035 (C_SWITCH_MACHINE): New value for irix6.5.
17036
170371998-12-15 Richard Stallman <rms@gnu.org>
17038
17039 * fns.c (Fbase64_decode_region, Fbase64_decode_string):
17040 Do free malloc'd memory even in case of failure. Use xfree, not free.
17041 (Fbase64_encode_region, Fbase64_encode_string): Use xfree, not free.
17042 (base64_decode_1): Don't fail for short lines.
17043
17044 * print.c (printchar): Outputting multibyte characters
17045 to echo area always makes it multibyte.
17046
17047 * search.c (search_buffer): Don't use Boyer-Moore
17048 to search for an invalid multibyte code.
17049 In unibyte case, no need to check whether there are translations
17050 in more than one charset; just set charset_base to 0.
17051
170521998-12-15 Ken'ichi Handa <handa@delysid.gnu.org>
17053
17054 * print.c (printchar): Cancel previous change.
17055
170561998-12-15 Kenichi Handa <handa@etl.go.jp>
17057
17058 * callproc.c: Include "ccl.h".
17059 (Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
17060 bit in argument_coding.mode to tell encoding procedure to flush
17061 data. While encoding arguments, if argument_coding uses CCL
17062 program, initialize it again after encoding.
17063 (Fcall_process_region): Doc-string modified. Handle the case that
17064 NARGS is 3.
17065
17066 * ccl.c (CCL_SUCCESS): Don't set ccl->ic.
17067 (ccl_driver) <CCL_End>: Pretend that all source text is consumed.
17068 Set `ic' to the head of this command.
17069 (ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
17070 code for an invalid code.
17071 (setup_ccl_program): If the arg VEC is nil, skip setting ups
17072 based on VEC.
17073
17074 * charset.c (Qunknown): New variable.
17075 (init_charset_once): Intern and staticpro Qunknown. Initialize
17076 all elements of Vcharset_symbol_table to Qunknown.
17077 (find_charset_in_str): New arg MULTIBYTE. If it is zero, check
17078 unibyte characters only. For an invalid composition sequence, set
17079 CHARSETS[1] to 1.
17080 (Ffind_charset_region): Call find_charset_in_str with an
17081 appropriate MULTIBYTE arg. If undefined charsets are found,
17082 include `unknown' is the return value.
17083 (Ffind_charset_string): Likewise.
17084 (Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
17085 (str_cmpchar_id): Max composite character code should be less than
17086 GENERIC_COMPOSITION_CHAR.
17087
17088 * charset.h (find_charset_in_str): Update declaration.
17089
17090 * coding.c (DECODE_DESIGNATION): Jump to label_invalid_code if
17091 final_char is invalid.
17092 (decode_coding): If coding->type is coding_type_ccl, call
17093 ccl_coding_driver even if SRC_BYTES is zero.
17094 (code_convert_region): Update `inserted' correctly after calling
17095 coding->post_read_conversion. Even after the code converter
17096 consumed all source text, call it once more if it is
17097 coding_type_ccl to flush out data.
17098
17099 * fileio.c (Finsert_file_contents): Even if INSERTED is zero, if
17100 CODING is handled by CCL program, call code_convert_region.
17101
17102 * fns.c (string_char_to_byte): Handle invalid multibyte sequence
17103 correctly.
17104 (string_byte_to_char): Likesize.
17105
17106 * print.c (printchar): When outputting a multibyte character to
17107 echo area, always set message_enable_multibyte to 1.
17108
17109 * process.c (read_process_output): If NBYTES is zero and
17110 CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
17111 and try decoding again.
17112 (Fprocess_send_eof): If the coding system of PROCESS
17113 requires flushing, call send_process with null-string at first.
17114
17115 * w16select.c (Fw16_set_clipboard_data): Call find_charset_in_str
17116 with MULTIBYTE arg 0.
17117 * w32select.c (Fw32_set_clipboard_data): Likewise.
17118 * xselect.c (lisp_data_to_selection_data): Likewise.
17119
171201998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17121
17122 * search.c (Freplace_match): Set OPOINT clearly for the case
17123 where point is in the middle of the text to be replaced.
17124
17125 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17126 if compute_motion fails to advance at all, don't back it up.
17127
171281998-12-10 Geoff Voelker <voelker@cs.washington.edu>
17129
17130 * w32.c (w32_get_long_filename): Handle root dirs correctly.
17131
427ec082 17132 * s/ms-w32.h (LOCALTIME_CACHE): Define.
26901792
DL
17133
171341998-12-09 Richard Stallman <rms@gnu.org>
17135
17136 * insdel.c (insert_from_buffer_1): Properly count the size
17137 of output from conversion to multibyte even when input
17138 is split across the gap.
17139
171401998-12-09 Karl Heuer <kwzh@gnu.org>
17141
17142 * keyboard.c: Doc fixes.
17143
17144 * s/irix4-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Increase space.
17145
171461998-12-08 Andrew Innes <andrewi@harlequin.co.uk>
17147
17148 * w32select.c (Fw32_get_clipboard_data): Do not delete isolated CR
17149 characters, only convert CRLF to LF.
17150
171511998-12-08 Geoff Voelker <voelker@cs.washington.edu>
17152
17153 * makefile.nt: Do string comparision of _NMAKE_VER.
17154
171551998-12-06 Eli Zaretskii <eliz@mescaline.gnu.org>
17156
17157 * Makefile.in (msdos.o): Depend on termchar.h, charset.h,
17158 coding.h, and disptab.h
17159
17160 * msdos.c (Vdos_unsupported_char_glyph): New variable.
17161 (syms_of_msdos): DEFVAR_LISP it.
17162 (IT_insert_glyphs, IT_delete_glyphs): New functions which abort Emacs.
17163 (internal_terminal_init): Set up insert_glyphs_hook and
17164 delete_glyphs_hook to call them. Explicitly set char_ins_del_ok to 0.
17165 (unibyte_display_via_language_environment): New variable.
17166 (syms_of_msdos): Devfar it.
17167 (IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
17168 Encode the character codes of the glyphs according to the
17169 terminal_coding in effect.
17170
171711998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
17172
17173 * fns.c (Fstring_as_unibyte): Doc fix.
17174
171751998-12-03 Andreas Schwab <schwab@delysid.gnu.org>
17176
17177 * charset.h: Declare char_valid_p.
17178
171791998-12-03 Eli Zaretskii <eliz@mescaline.gnu.org>
17180
17181 * dosfns.c (dos_cleanup): Flush and fsync the termscript stream.
17182
17183 * msdos.c (init_environment): Record the time we started up.
17184 (IT_reset_terminal_modes): Don't restore the screen if we exit too
17185 fast after startup (aka crash).
17186
171871998-12-02 Geoff Voelker <voelker@cs.washington.edu>
17188
17189 * w32.c (check_windows_init_file): Use decode_env_path when
17190 using EMACSLOADPATH.
17191
171921998-12-02 Jason Rumney <jasonr@altavista.net>
17193
17194 * w32term.c (dumpglyphs): Use unsigned char arrays.
17195 Use FONT_MAX_WIDTH to detect and fudge proportional fonts
17196 for various languages.
17197 Compensate for fonts that have underhangs (e.g., Thai).
17198
17199 * w32term.h (FONT_MAX_WIDTH): New macro.
17200
172011998-12-02 Andrew Innes <andrewi@harlequin.co.uk>
17202
17203 * keyboard.c (Qlanguage_change): New variable.
17204 (syms_of_keyboard): Init it.
17205 (kbd_buffer_get_event) [WINDOWSNT]: Generate language-change events.
17206 (lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
17207 keys; add name for Escape key; extend to 256 elements.
17208 (parse_modifiers): Make non-static.
17209
17210 * keyboard.h (parse_modifiers): Declare prototype.
17211
17212 * termhooks.h (event_kind) [WINDOWSNT]: Define language_change_event.
17213
17214 * w32fns.c (w32_last_error): Fix cut+paste error.
17215 (Vw32_phantom_key_code): New variable.
17216 (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New variables.
17217 (syms_of_w32fns): Init and register them.
17218 (reset_modifiers): Use a more precise test for whether Emacs has
17219 keyboard focus. Synchronize state of all keys that can be used as
17220 modifiers, to overcome problems arising from hot-keys.
17221 (w32_key_to_modifier): Be careful not to call intern() to avoid
17222 requiring thread synchronization.
17223 (w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
17224 (w32_wnd_proc): Ensure lock key indicator lights are updated
17225 promptly on Windows 9x, by passing key events on to the system.
17226 (w32_wnd_proc): Use Vw32_phantom_key_code to stop system
17227 responding to Windows key events when not wanted.
17228 (w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
17229 Ctrl-NumLock into pause by the system.
17230 (w32_wnd_proc): Don't translate key combinations containing any
17231 modifiers other than shift (and capslock).
17232 (w32_wnd_proc): Reset modifier key states when receiving focus (we
17233 can't determine the key states until we have keyboard focus).
17234 (Fw32_toggle_lock_key): New function.
17235 (syms_of_w32fns): Defsubr it.
17236
17237 * w32inevt.c (key_event): Use Vw32_phantom_key_code. Undo the
17238 mapping of Ctrl-Pause into cancel, and Ctrl-NumLock into pause.
17239 (w32_console_toggle_lock_key): New function.
17240
17241 * w32term.h (WM_EMACS_TOGGLE_LOCK_KEY): New define.
17242
172431998-11-30 Richard Stallman <rms@psilocin.ai.mit.edu>
17244
17245 * search.c (Freplace_match): Set OPOINT clearly for the case
17246 where point is in the middle of the text to be replaced.
17247
17248 * xdisp.c (display_text_line): When handling HPOS < 0 after loop,
17249 if compute_motion fails to advance at all, don't back it up.
17250
172511998-11-28 Richard Stallman <rms@psilocin.ai.mit.edu>
17252
17253 * xfns.c (Qouter_window_id): New variable.
17254 (syms_of_xfns): Initialize it.
17255 (x_report_frame_params): Set up outer-window-id parameter.
17256
17257 * keymap.c (Fsingle_key_description): Fix previous change.
17258
172591998-11-26 Ken'ichi Handa <handa@delysid.gnu.org>
17260
17261 * lisp.h (Frequire): Update declaration.
17262
172631998-11-26 Kenichi Handa <handa@etl.go.jp>
17264
17265 * ccl.c (ccl_driver) <CCL_TranslateCharacter>: Don't suppress MSB
17266 if the charset is ascii.
17267 (ccl_driver) <CCL_TranslateCharacterConstTbl>: Likewise.
17268
17269 * charset.c (non_ascii_char_to_string): If C has modifier bits,
17270 make an appropriate one byte string.
17271 (char_bytes): Handle the case that C is a single byte char or has
17272 modifier bits.
17273
17274 * charset.h (CHAR_BYTES): If C has modifier bits, return 1.
17275
17276 * cmds.c (internal_self_insert): If C has modifier bits, insert
17277 appropriate one byte char.
17278
172791998-11-25 Richard Stallman <rms@psilocin.ai.mit.edu>
17280
17281 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte):
17282 Clear text properties in the new string.
17283
172841998-11-24 Felix Lee <flee@cygnus.com>
17285
17286 * process.c (read_process_output): Call signal_after_change.
17287
172881998-11-24 Richard Stallman <rms@psilocin.ai.mit.edu>
17289
17290 * buffer.c (syms_of_buffer): Doc fix.
17291
17292 * keyboard.c (syms_of_keyboard): Doc fix.
17293
172941998-11-22 Richard Stallman <rms@psilocin.ai.mit.edu>
17295
17296 * frame.c (Fset_mouse_position): Doc fix.
17297
172981998-11-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17299
17300 * keymap.c (Fmake_keymap): Doc fix.
17301
173021998-11-17 Kenichi Handa <handa@etl.go.jp>
17303
17304 * category.c (word_boundary_p): If C1 or C2 are composite
17305 characters, test their first components.
17306
173071998-11-16 Richard Stallman <rms@sucrose.ai.mit.edu>
17308
17309 * window.c (temp_output_buffer_show): Around temp-buffer-show-hook,
17310 don't do save-excursion, just restore selected window.
17311
17312 * window.c (window_loop): For UNSHOW_BUFFER,
17313 always do consider minibuffer windows.
427ec082 17314
26901792
DL
173151998-11-16 Kenichi Handa <handa@etl.go.jp>
17316
17317 * charset.h (SINGLE_BYTE_CHAR_P): Check if C is negative or not.
17318
17319 * charset.c (non_ascii_char_to_string): If C is negative, signal error.
17320
17321 * lisp.h (CHAR_TABLE_REF): Check if IDX is negative or not.
17322
17323 * s/bsdos4.h: New file.
17324
173251998-11-16 Kenichi Handa <handa@etl.go.jp>
17326
17327 * Makefile.in (abbrev.o): Depend on charset.h
17328 (bytecode.o): Depend on charset.h.
17329
17330 * bytecode.c: Include charset.h.
17331
17332 * abbrev.c: Include charset.h.
17333
17334 * syntax.h (SYNTAX_ENTRY_INT): For a composite character, check
17335 the first component.
17336
173371998-11-13 Ehud Karni <ehud@unix.simonwiesel.co.il>
17338
17339 * m/aviion-intel.h (LIBS_MACHINE): Delete redundant definition.
17340
173411998-11-11 Richard Stallman <rms@gnu.org>
17342
17343 * xterm.c (XTread_socket): Fix previous change in case F == 0.
17344
17345 * s/dgux5-4-3.h (BSD_PGRPS): Add #undef.
17346
17347 * s/dgux4.h (BROKEN_FIONREAD): #undef commented out.
17348 (INTERRUPT_INPUT): #define commented out.
17349
17350 * m/aviion-intel.h: New file.
17351
173521998-11-11 Eli Zaretskii <eliz@delysid.gnu.org>
17353
17354 * fns.c (MAX_ALLOCA): New macro.
17355 (Fbase64_encode_region, Fbase64_encode_string,
17356 Fbase64_decode_region, Fbase64_decode_string): Don't allocate
17357 more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
17358
173591998-11-11 Ken'ichi Handa <handa@delysid.gnu.org>
17360
17361 * insdel.c (byte_combining_error): Error message improved.
17362
17363 * charset.c (char_valid_p): Handle a composite character correctly.
17364
173651998-11-11 Kenichi Handa <handa@etl.go.jp>
17366
17367 * charset.c (str_cmpchar_id): Check the byte sequence for
17368 composition more rigidly.
17369 (Fcompose_string): Allow DEL to be composed. Signal error if STR
17370 contains an invalid multibyte sequence.
17371
17372 * xterm.c (x_list_fonts): Don't change the value of maxnames.
17373
173741998-11-10 Andrew Innes <andrewi@harlequin.co.uk>
17375
17376 * w32term.h (struct w32_display_info): New element faked_key.
427ec082
SS
17377 (WM_EMACS_SETKEYBOARDLAYOUT):
17378 (WM_EMACS_REGISTER_HOT_KEY):
26901792 17379 (WM_EMACS_UNREGISTER_HOT_KEY): New message definitions.
427ec082
SS
17380 (LEFT_WIN_PRESSED):
17381 (RIGHT_WIN_PRESSED):
26901792
DL
17382 (APPS_PRESSED): New console keyboard modifier flags.
17383
17384 * w32term.c (convert_to_key_event): Removed.
17385 (is_dead_key): Copied to w32fns.c.
17386 (w32_read_socket): Generate language_change_event. Modify to work
17387 with keyboard handling changes in w32_wnd_proc.
17388
17389 * w32proc.c (sys_kill): Set extended key flag when faking
17390 Ctrl-Break keystrokes.
17391 (Fw32_get_locale_info): Allow LONGFORM parameter to specify an
17392 arbitrary locale property using a numerical index.
17393 (Vw32_valid_codepages): New variable.
427ec082
SS
17394 (enum_codepage_fn):
17395 (Fw32_get_valid_codepages):
17396 (Fw32_get_console_codepage):
17397 (Fw32_set_console_codepage):
17398 (Fw32_get_console_output_codepage):
17399 (Fw32_set_console_output_codepage):
17400 (Fw32_get_codepage_charset):
17401 (Fw32_get_valid_keyboard_layouts):
17402 (Fw32_get_keyboard_layout):
26901792
DL
17403 (Fw32_set_keyboard_layout): New functions, exposing Windows locale
17404 handling functions.
17405 (syms_of_ntproc): Register them.
17406
17407 * w32inevt.c: Include w32term.h and w32heap.h.
17408 (map_keypad_keys):
17409 (Vw32_enable_caps_lock):
17410 (Vw32_enable_num_lock):
17411 (Vw32_pass_lwindow_to_system):
17412 (Vw32_pass_rwindow_to_system):
17413 (Vw32_lwindow_modifier):
17414 (Vw32_rwindow_modifier):
17415 (Vw32_apps_modifier):
17416 (Vw32_scroll_lock_modifier):
17417 (w32_key_to_modifier): Add externs.
17418 (w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
17419 Scroll Lock as potential modifiers; exclude numpad keys from
17420 effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
17421 code.
17422 (is_dead_key): Copy from w32fns.c.
17423 (w32_kbd_patch_key): Comment attempt to improve handling of
17424 dead-keys, and system bug relating to same on Windows NT. Work
17425 around the bug by calling ToUnicode and then converting to the
17426 correct codepage.
17427 (map_virt_key): Removed obsolete variable.
17428 (lispy_function_keys): Add extern.
17429 (key_event): Major rework of keyboard input handling: optionally
17430 recognize Windows keys and Apps key as modifiers; optionally treat
17431 NumLock, CapsLock and ScrollLock as function keys; let system
17432 translate keystrokes to characters to avoid system bugs relating
17433 to dead-key handling; preserve shift distinction for control
17434 characters. Remove some obsolete code.
17435
17436 * makefile.nt ($(BLD)\w32inevt.obj): Add dependencies on w32term.h
17437 and w32heap.h.
17438
17439 * w32fns.c (Vw32_pass_optional_keys_to_system): Variable removed.
17440 (Vw32_pass_lwindow_to_system):
17441 (Vw32_pass_rwindow_to_system):
17442 (Vw32_lwindow_modifier):
17443 (Vw32_rwindow_modifier):
17444 (Vw32_apps_modifier):
17445 (Vw32_enable_num_lock):
17446 (Vw32_enable_caps_lock):
17447 (Vw32_scroll_lock_modifier): New variables.
17448 (modifier_set): Return toggle state for Scroll Lock.
17449 (w32_key_to_modifier): New function. Returns chosen modifier bit
17450 for given key.
17451 (w32_get_modifiers): Returns modifier flags for
17452 non-keyboard input events.
17453 (construct_console_modifiers): Renamed from construct_modifiers;
17454 recognize Windows and Apps keys as modifiers.
17455 (w32_get_key_modifiers): New function. Returns modifier flags for
17456 keyboard input events.
17457 (map_keypad_keys): Make non-static. Use second arg as extended
17458 flag.
17459 (w32_grabbed_keys): New variable.
17460 (HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
17461 (register_hot_keys):
17462 (unregister_hot_keys):
17463 (lookup_vk_code):
17464 (w32_parse_hot_key):
17465 (Fw32_register_hot_key):
17466 (Fw32_unregister_hot_key):
17467 (Fw32_registered_hot_keys):
17468 (Fw32_reconstruct_hot_key): New functions to support hotkeys.
17469 (post_character_message): New function.
17470 (w32_msg_pump): Handle new messages for using hotkeys and changing
17471 keyboard layout/language.
17472 (w32_wnd_proc): Major rework of keyboard input handling:
17473 optionally recognize Windows keys and Apps key as modifiers;
17474 optionally treat NumLock, CapsLock and ScrollLock as function
17475 keys; let system translate keystrokes to characters to avoid
17476 system bugs relating to dead-key handling; preserve shift
17477 distinction for control characters; forward keyboard
17478 layout/language changes to lisp; detect and convert hot-key events
17479 to normal keystrokes.
17480 (syms_of_w32fns): Register new functions and variables.
17481 (w32_last_error): New function for use in debugging.
17482
174831998-11-10 Kenichi Handa <handa@etl.go.jp>
17484
17485 * category.h (CATEGORY_SET): Adjusted for the change of
17486 cmpchar_component.
17487 (CATEGORY_SET): Likewise.
17488
17489 * charset.c (cmpchar_component): New arg NOERROR. Check
17490 composition char ID more strictly.
17491 (Fcmpchar_component): Call cmpchar_component with NOERROR arg zero.
17492 (Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
17493 return 255.
17494 (Fcompose_string): Signal error if STR contains a rule-based
17495 composition character.
17496
17497 * charset.h (cmpchar_component): Proto-type adjusted.
17498
174991998-11-09 Kenichi Handa <handa@etl.go.jp>
17500
17501 * charset.c (string_to_non_ascii_char): Return correct length for
17502 a charset of dimension 2 and composition character.
17503
175041998-11-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17505
17506 * keymap.c (Fsingle_key_description): Handle generic characters.
17507
17508 * process.c (Fprocess_status): Doc fix.
17509
175101998-11-06 Ken'ichi Handa <handa@delysid.gnu.org>
17511
17512 * charset.c (init_charset_once): Fix previous change.
17513
175141998-11-06 Kenichi Handa <handa@etl.go.jp>
17515
17516 * charset.c (string_to_non_ascii_char): Fix previous change.
17517 (char_valid_p): Check the validity of CHARSET by CHARSET_DEFINED_P.
17518
17519 * charset.h (SPLIT_NON_ASCII_CHAR): Check dimension of an invalid
17520 character correctly.
17521 (STRING_CHAR): Handle an invalid charater correctly.
17522
175231998-11-05 Kenichi Handa <handa@etl.go.jp>
17524
17525 * charset.c (string_to_non_ascii_char): Fix previous change.
17526
17527 * charset.h (MAKE_NON_ASCII_CHAR): Check validity of CHARSET.
17528
17529 * editfns.c (Fstring_to_char): Don't return a multibyte character
17530 if STRING is a unibyte string.
17531
17532 * indent.c (MULTIBYTE_BYTES_WIDTH): Check validity of a multibyte
17533 character.
17534
17535 * xdisp.c (display_text_line): Check validity of a multibyte character.
17536 (display_string): Likewise. Handle an invalid character correctly.
17537
175381998-11-05 Karl Heuer <kwzh@gnu.org>
17539
17540 * insdel.c (Fcombine_after_change_execute): Return nil, not junk.
17541 If nothing to do, return immediately.
17542 (syms_of_insdel): Initialize combine_after_change_buffer.
17543
175441998-11-05 Richard Stallman <rms@gnu.org>
17545
17546 * xterm.c (XTread_socket): ButtonPress clears f->mouse_moved.
17547
175481998-11-04 Geoff Voelker <voelker@cs.washington.edu>
17549
17550 * w32term.c (w32_enable_unicode_output): Rename from
17551 w32_no_unicode_output.
17552 (w32_use_unicode_for_codepage, syms_of_w32term): Use new name
17553 and new semantics.
17554
175551998-11-04 Jason Rumney <jasonr@altavista.net>
17556
17557 * w32fns.c (w32_list_fonts): Report an error if a frame has not
17558 been created yet.
17559
17560 * w32term.c (dumpglyphs): Use FRAME_FONT for w32_fill_area.
17561
175621998-11-04 Kenichi Handa <handa@etl.go.jp>
17563
17564 * charset.c (string_to_non_ascii_char): Change the check for the
17565 varidity of multibyte form.
17566 (update_charset_table): Check validity of BYTES. Don't set
17567 bytes_by_char_head here.
17568 (init_charset_once): Set bytes_by_char_head completely.
17569
17570 * frame.c (do_switch_frame): Cancel previous change.
17571
17572 * print.c (print_string): Check validity of a character.
17573 (print): Likewise.
17574
17575 * sysdep.c [nec_ews_svr4]: Extern *_sobuf.
17576
17577 * m/ews4800.h, s/ux4800.h: New files.
17578
175791998-11-03 Theodore Jump <tjump@tertius.com>
17580
17581 * makefile.nt: Compile multiple source files when possible.
17582
17583 * w32faces.c (Qmouse_face): Replace definition with extern decl.
427ec082 17584
26901792
DL
175851998-11-03 Andrew Innes <andrewi@delysid.gnu.org>
17586
17587 * w32.c (stat): GetFileInformationByHandle can legitimately fail,
17588 so don't rely on it succeeding.
17589
17590 * w32fns.c (x_to_w32_font): Specify DEFAULT_CHARSET in the w32
17591 LOGFONT struct if x font doesn't specify the charset.
17592 (x_to_w32_charset): Change >= to == when testing results of
17593 stricmp.
17594
175951998-11-02 Richard Stallman <rms@sucrose.ai.mit.edu>
17596
17597 * fns.c (Frequire): New arg NOERROR.
17598
175991998-11-02 Andrew Innes <andrewi@harlequin.co.uk>
17600
17601 * fileio.c (Fsubstitute_in_file_name) [DOS_NT]: Fix typo.
17602
176031998-10-31 Richard Stallman <rms@psilocin.ai.mit.edu>
17604
17605 * xfaces.c (Qmouse_face): Replace definition with extern decl.
17606 (syms_of_xfaces): Initialization deleted.
17607
17608 * textprop.c (Qmouse_face): Variable definition moved here.
17609 (syms_of_textprop): Initialize it.
17610
17611 * data.c (set_internal): For built-in maybe-local vars,
17612 when BINDFLAG is set, do not mark them as local.
17613
176141998-10-31 Ken'ichi Handa <handa@delysid.gnu.org>
17615
17616 * insdel.c (replace_range): Fix previous change.
17617
176181998-10-31 Kenichi Handa <handa@etl.go.jp>
17619
17620 * editfns.c (Fsubst_char_in_region): Fix previous change.
17621 (Ftranslate_region): Fix previous change.
17622
17623 * fns.c (Fbase64_decode_region): Fix previous change.
17624
17625 * frame.c (do_switch_frame): Update minibuf_window if necessary.
17626
17627 * insdel.c (byte_combining_error): New function.
17628 (CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
17629 (insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
17630 CHECK_BYTE_COMBINING_FOR_INSERT.
17631 (insert_from_buffer_1): Likewise.
17632 (adjust_after_replace): Check the posibility of inhibitted byte
17633 combining correctly.
17634 (replace_range): Before signaling an error for inhibitted byte
17635 combining, recover the buffer in a safe state.
17636 (del_range_2): Check the posibility of inhibitted byte combining
17637 correctly.
17638
176391998-10-30 Andreas Schwab <schwab@delysid.gnu.org>
17640
17641 * xselect.c (Vselection_coding_system): Doc fix.
17642
17643 * fns.c (Fbase64_encode_region): Use SET_PT_BOTH instead of SET_PT
17644 when we have both char and byte position. Fix type clashes.
17645
17646 * eval.c (Fsignal): Use a separate format string when passing
17647 error message string to fatal, in case it contains %'s.
17648
17649 * editfns.c (Fchar_after): Fix type clashes.
17650
17651 * charset.c (Fchar_bytes): Doc fix.
17652 (char_bytes): Fix returned value to match returned type.
17653 (syms_of_charset): Fix type clash in initialisation of
17654 Vauto_fill_chars.
17655
176561998-10-29 Geoff Voelker <voelker@cs.washington.edu>
17657
17658 * w32console.c (initialize_w32_display): Use buffer coords
17659 instead of buffer size (which may be larger than the window).
17660
17661 * fileio.c (init_fileio_once): New function.
17662
17663 * emacs.c (main): Invoke init_fileio_once.
17664
176651998-10-28 Paul Eggert <eggert@twinsun.com>
17666
17667 * xterm.c (XTread_socket): Check the returned value of
17668 XmbLookupString more carefully.
17669
176701998-10-28 Kenichi Handa <handa@etl.go.jp>
17671
17672 * coding.c (DECODE_CHARACTER_ASCII): Check validity of inserted code.
17673 (DECODE_CHARACTER_DIMENSION1): Likewise.
17674 (DECODE_CHARACTER_DIMENSION2): Likewise.
17675 (decode_coding_sjis_big5): Check the 2nd byte of SJIS correctly.
17676
17677 * editfns.c (Fsubst_char_in_region): Fix previous change.
17678 (Ftranslate_region): Fix previous change.
17679
17680 * insdel.c (check_markers): Check if markers are at character boundry.
17681 (adjust_markers_for_insert): Fix previous change.
17682 (count_combining_before): Don't limit the check at BEGV.
17683 (count_combining_after): Don't limit the check at ZV.
17684 (CHECK_BYTE_COMBINING_FOR_INSERT): New macro.
17685 (insert_1_both): Call CHECK_BYTE_COMBINING_FOR_INSERT.
17686 (insert_from_string_1): Likewise.
17687 (insert_from_buffer_1): Likewise.
17688 (adjust_after_replace): Inhibit bytes combined across region
17689 boundary. Update end_unchanged correctly.
17690 (replace_range): Call CHECK_BYTE_COMBINING_FOR_INSERT. Update
17691 end_unchanged correctly.
17692 (del_range_2): Inhibit bytes combined across region boundary.
17693 Update end_unchanged correctly.
17694
176951998-10-27 Geoff Voelker <voelker@cs.washington.edu>
17696
17697 * w32.c (check_windows_init_file): Also look in load path specified
17698 in environment.
17699
17700 * w32console.c (Fset_message_beep): Recognize 'silent.
17701 (w32_sys_ring_bell): Do nothing for the 'silent sound.
427ec082 17702
26901792
DL
17703 * w32fns.c (w32_color_map_lookup): Remove duplicate definition.
17704
17705 * w32select.c (Vnext_selection_coding_system): New variable.
17706 (syms_of_w32select): DEFVAR_LISP it.
17707 (Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
17708 non-nil. Always convert multibyte strings.
17709 (Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
17710 non-nil. Always convert a string that includes non-ASCII characters.
427ec082 17711
26901792
DL
177121998-10-27 Richard Stallman <rms@psilocin.ai.mit.edu>
17713
17714 * fns.c (Fbase64_decode_string): Doc fix.
17715 (Fbase64_decode_region, Fbase64_encode_string Fbase64_encode_region):
17716 Likewise.
17717
177181998-10-27 Dave Love <fx@gnu.org>
17719
17720 * fns.c (Fbase64_decode_region, Fbase64_encode_region): Fix
17721 newline in doc string.
17722
177231998-10-27 Kenichi Handa <handa@etl.go.jp>
17724
17725 * editfns.c (Fsubst_char_in_region): Correctly handle the case
17726 that byte combining before happens.
17727 (Ftranslate_region): Likewise.
17728
17729 * insdel.c (adjust_after_replace): Correctly handle the case that
17730 both byte combining before and byte combining after happen.
17731 (replace_range): Likewise.
17732
177331998-10-26 Kenichi Handa <handa@etl.go.jp>
17734
17735 * category.c (syms_of_category): Doc-string modified.
17736
17737 * coding.c (code_convert_region): Kill the work buffer created by
17738 pre-write-conversion.
17739
177401998-10-25 Jason Rumney <jasonr@altavista.net>
17741
17742 * emacs.c (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
17743
177441998-10-23 Kenichi Handa <handa@etl.go.jp>
17745
17746 * coding.c (code_convert_region): While preserving the orignal
17747 point, pay attention to the byte combining problem.
17748
17749 * fns.c (Fbase64_decode_region): Pay attention to the byte
17750 combining problem.
17751
17752 * insdel.c (adjust_markers_for_insert): Adjust markers by taking
17753 combined_before_bytes and combined_after_bytes into account.
17754 (count_combining_after): Handle the case that LENGTH is zero.
17755 (adjust_after_replace): Record deletion at correct buffer
17756 position. Handle the case that LEN is zero.
17757 (replace_range): Record deletion at correct buffer position.
17758 (del_range_2): Call adjust_makers_for_replace to adjust makers for
17759 combined bytes.
17760
177611998-10-21 Richard Stallman <rms@psilocin.ai.mit.edu>
17762
17763 * alloc.c (Fgarbage_collect): Block input around most of the function.
427ec082 17764
26901792
DL
177651998-10-21 Kenichi Handa <handa@etl.go.jp>
17766
17767 * coding.c (setup_coding_system): Fix setting up
17768 coding->spec.ccl.valid_codes for CCL based coding system.
17769 (code_convert_region): Set point to FROM before inserting the
17770 result of pre-write-funciton. Preserve original point.
17771 (code_convert_string): If coding->type is coding_type_ccl, do
17772 conversion even if the length of conversion region is zero.
17773
17774 * fontset.c: Include frame.h before fontset.h.
427ec082 17775 (list_fonts_func): Fix prototype.
26901792
DL
17776
17777 * frame.c: Include frame.h before fontset.h.
17778
17779 * xterm.c: Likewise.
17780
177811998-10-21 Jason Rumney <jasonr@altavista.net>
17782
17783 * x-list-font.c (Fx_list_fonts): Access frame parameters throught
17784 general macros. Don't call x_list_font directory, instead call a
17785 function set in list_fonts_func.
17786
17787 * fontset.h (list_fonts_func): Fix prototype.
17788
177891998-10-20 Jason Rumney <jasonr@altavista.net>
17790
17791 * makefile.nt (w32fns.c): Add x-list-font.c to dependancies.
17792
17793 * w32faces.c: Update comments referring to obsolete structs.
17794 (allocate_face, copy_face, face_eql, load_font,
17795 Fpixmap_spec_p, free_frame_faces, new_computed_face,
17796 frame_update_line_height, merge_faces, compute_base_face,
17797 Fset_face_attribute_internal): Use fontset support based on xfaces.c.
17798
17799 * w32fns.c: (Vx_pixel_size_width): New global variable.
17800 (unibyte_display_via_language_environment): New global variable.
17801 (x_set_font): Add support for setting fontsets.
17802 (Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
17803 font names to match xlfd-tight-regexp.
17804 (w32_load_font): Rewrite based on x_load_font.
17805 (x_to_w32_charset, w32_to_x_charset): Add character sets. Use
17806 `iso8859-1' rather than `ansi'.
17807 (w32_to_x_font): Remove `-' from font name. Remove the `-' off the
17808 end. Move charset into `charset registry' field.
17809 (enum_font_cb2): Check charsets match. Include width in font list.
17810 (w32_list_fonts): Rewrite based on x_list_fonts.
17811 Moved from w32term.c to have access to enumfont_t struct.
17812 (Fx_list_fonts): w32 specific version eliminated. Include
17813 `x-list-fonts.c'.
17814 (w32_get_font_info, w32_query_font, w32_find_ccl_program): New
17815 functions for fontset support - adapted from x_ equivalents.
17816 (syms_of_w32fns): New lisp variables initialised. Function
17817 pointers for fontset.c set up.
17818
427ec082 17819 * w32term.c: Include fontset.h. Define codepage macros.
26901792
DL
17820 Add ENCODE_BIG5 macro from coding.c.
17821 (w32_no_unicode_output): New variable.
17822 (w32_codepage_for_charset, w32_use_unicode_for_codepage): New
17823 functions.
17824 (BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
17825 (dumpglyphs): Rewrite based on xterm.c equivalent.
17826 (x_new_font): Use functionality provided in fontset.c.
17827 (x_new_fontset): New function based on the one in xterm.c.
17828 (syms_of_w32term): Add w32-no-unicode-output flag.
17829
427ec082 17830 * w32term.h: Remove redundant font_info struct definition.
26901792
DL
17831 (Vx_pixel_size_width_font_regexp,
17832 unibyte_display_via_language_environment): Declare variables.
427ec082 17833 (w32_list_fonts, w32_get_font_info, w32_query_font, w32_load_font):
26901792
DL
17834 Declare functions.
17835 (w32_output): New fields font_baseline and fontset.
17836 (FRAME_FONTSET, FRAME_W32_FONT_TABLE): New macros.
17837
17838 * w32xfns.c: Include charset.h and fontset.h.
17839
178401998-10-20 Richard Stallman <rms@psilocin.ai.mit.edu>
17841
17842 * syntax.c (syms_of_syntax): Fix the setup of Qscan_error.
17843
178441998-10-20 Eli Zaretskii <eliz@mescaline.gnu.org>
17845
17846 * msdos.c (mouse_init): Reset the button press/release info of the
17847 mouse driver.
17848 (mouse_preempted): New variable.
17849 (dos_rawgetc): Don't generate mouse events if mouse is preempted.
17850 (XMenuActivate): Preempt the mouse during menu-handling loop.
17851 Release the current time slice while idling in the menu-handling
17852 loop. Leave the loop only if the user pressed, then released the
17853 same button. Discard all mouse events that are pending in the
17854 event queue before exiting.
17855
178561998-10-19 Richard Stallman <rms@psilocin.ai.mit.edu>
17857
17858 * editfns.c (Fformat): Increase buffer size for floating format.
17859
178601998-10-17 Kenichi Handa <handa@etl.go.jp>
17861
17862 * charset.c (Vauto_fill_chars, Qauto_fill_chars): New variables.
17863 (syms_of_charset): Staticpro and initialize Qauto_fill_chars.
17864 Declare auto-fill-chars as a Lisp variable and initialize it.
17865
17866 * charset.h (Vauto_fill_chars): Extern it.
17867
17868 * cmds.c (internal_self_insert): Check Vauto_fill_chars.
17869
178701998-10-16 Kenichi Handa <handa@etl.go.jp>
17871
17872 * casefiddle.c (casify_object): Use make_string instead of
17873 make_specified_string to cope with byte-combining situation.
17874
17875 * coding.c (decode_coding_iso2022): Set coding->fake_multibyte to
17876 1 when encountered with a code of the range 0x80..0x9F.
17877
178781998-10-14 Eli Zaretskii <eliz@mescaline.gnu.org>
17879
17880 * callproc.c (Fcall_process) [MSDOS]: Use $TMPDIR instead of
17881 trying $TMP and $TEMP, since the former is always set in msdos.c.
17882 (Fcall_process_region) [DOS_NT]: When looking for a place to put
17883 the temporary files, check $TMPDIR as well.
17884
178851998-10-14 Richard Stallman <rms@psilocin.ai.mit.edu>
17886
427ec082 17887 * process.c (exec_sentinel, read_process_output):
26901792
DL
17888 Restore waiting_for_user_input_p after running Lisp code.
17889
17890 * keyboard.c (parse_menu_item): Avoid initialization for Lisp_Object.
17891 (command_loop): Likewise.
17892
178931998-10-14 Kenichi HANDA <handa@etl.go.jp>
17894
17895 * data.c (Faset): Fix previous change.
17896
17897 * fns.c (Ffillarray): Fix previous change.
17898
17899 * insdel.c (adjust_markers_for_combining): This function deleted.
17900 (adjust_markers_for_replace): Correctly adjust marker positions.
17901 Don't record these adjustment because they were recorded already.
17902 (combine_bytes): Don't adjust markers here.
17903
179041998-10-13 Richard Stallman <rms@psilocin.ai.mit.edu>
17905
17906 * minibuf.c (Fdisplay_completion_list): Put on mouse-face properties.
17907
179081998-10-12 Richard Stallman <rms@psilocin.ai.mit.edu>
17909
17910 * keyboard.c (Fclear_this_command_keys): New function.
17911 (syms_of_keyboard): defsubr it.
17912
17913 * macros.c (Fexecute_kbd_macro): Set real_this_command.
17914
179151998-10-12 Kenichi Handa <handa@etl.go.jp>
17916
17917 * ccl.c (CCL_DECODE_SJIS, CCL_ENCODE_SJIS): Swap the definitions.
17918
17919 * charset.c (Fstring): Call make_string instead of
17920 make_string_from_bytes.
17921 (Ffind_charset_region): Include `composition' in the returned list
17922 if the region contains any composite characters.
17923 (Ffind_charset_string): Include `composition' in the returned list
17924 if the string contains any composite characters.
17925 (find_charset_in_str): Handle CMPCHARP arg correctly.
17926
17927 * coding.c (shrink_decoding_region): If a charset other than ascii
17928 is initially designated to G0, don't shrink the region.
17929 (shrink_encoding_region): Likewise.
17930
17931 * data.c (Faset): If ARRAY is a multibyte string, pay attention to
17932 byte-combining situation.
17933
17934 * fns.c (clear_string_char_byte_cache): New function.
17935 (Ffillarray): Handle multibyte string correctly.
17936
17937 * lisp.h (clear_string_char_byte_cache): Extern it.
17938
17939 * xselect.c (lisp_data_to_selection_data): Call
17940 find_charset_in_str with CMPCHARP arg 0.
17941 * w16select.c (Fw16_set_clipboard_data): Likewise.
17942 * w32select.c (Fw32_set_clipboard_data): Likewise.
17943
179441998-10-11 Richard Stallman <rms@psilocin.ai.mit.edu>
17945
17946 * keyboard.c (parse_menu_item): For top level of menu bar,
17947 accept ordinary commands, and treat them just like a keymap.
17948
179491998-10-11 Richard Stallman <rms@sucrose.ai.mit.edu>
17950
17951 * xdisp.c (redisplay_window): Clear w->window_end_valid
17952 before running the window-scroll-functions hook, if appropriate.
17953
179541998-10-10 Richard Stallman <rms@psilocin.ai.mit.edu>
17955
17956 * data.c (Fstring_to_number): Don't recognize floating point
17957 if base is not 10.
17958
17959 * window.c (window_loop): New alternative CHECK_ALL_WINDOWS.
17960 (check_all_windows): New function for debugging tests.
17961 (syms_of_window): Initialize it.
17962
17963 * window.c (Qwindow_configuration_p): New variable.
17964 (Fwindow_configuration_frame): New function.
17965 (syms_of_window): defsubr it.
17966 (Fset_window_configuration): Return t if frame is live.
17967 Use Qwindow_configuration_p.
17968
17969 * xfns.c (check_x_display_info): Don't use selected_frame
17970 if it is dead.
17971
179721998-10-09 Geoff Voelker <voelker@cs.washington.edu>
17973
17974 * w32fns.c (x_create_bitmap_from_file): Skip special files.
17975
179761998-10-08 Kenichi Handa <handa@etl.go.jp>
17977
17978 * buffer.h (inhibit_modification_hooks): Extern it.
17979
17980 * buffer.c (inhibit_modification_hooks): New variable.
17981 (init_buffer_once): Initialize inhibit_modification_hooks to 0.
17982
17983 * charset.c (invalid_character): Prepend `0' to octal
17984 representation. Give error sufficient args.
17985
17986 * coding.c (code_convert_region): Set inhibit_modification_hooks
17987 to 1 before calling Fset_text_properties.
17988
17989 * insdel.c (signal_before_change): If inhibit_modification_hooks
17990 is nonzero, do nothing.
17991 (signal_after_change): Likewise.
17992
179931998-10-08 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
17994
17995 * process.c: Doc fixes.
17996
179971998-10-08 Richard Stallman <rms@sucrose.ai.mit.edu>
17998
17999 * syntax.c (scan_lists): Bring FROM back into range BEGV...ZV.
18000
180011998-10-07 Geoff Voelker <voelker@cs.washington.edu>
18002
18003 * w32.c (init_ntproc): Check for Windows init file.
18004 (term_ntproc): Do not check for it here.
18005
180061998-09-28 Kenichi Handa <handa@etl.go.jp>
18007
18008 * coding.c (check_composing_code): Fix previous change. Now it
18009 alwasy returns 0 or -1.
18010 (decode_coding_iso2022): Adjusted for the above change.
18011 (encode_coding_iso2022): When encoding the last block, flush out
18012 tailing garbage bytes.
18013 (setup_coding_system): Delete unnecessary code.
18014 (shrink_decoding_region): Check translation table. If ASCII
18015 should be translated, give up shrinking.
18016 (shrink_encoding_region): Likewise.
18017 (SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
18018 (SHRINK_CONVERSION_REGION): New macro.
18019 (code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
18020 properties here.
18021 (code_convert_region): In the case of encoding, always calulate
18022 correct character number.
18023 (code_convert_string): Call SHRINK_CONVERSION_REGION.
18024 (code_convert_region1): Don't delete text properties here.
18025
18026 * insdel.c (adjust_after_replace): Don't delete text properties here.
18027
18028 * term.c (encode_terminal_code): Handle raw 8-bit codes correctly.
18029
180301998-09-27 Richard Stallman <rms@psilocin.ai.mit.edu>
18031
18032 * emacs.c (sort_args): Fill extra space with NULL ptrs.
18033
180341998-09-26 Kenichi Handa <handa@etl.go.jp>
18035
18036 * coding.h (struct coding_system): New member composed_chars.
18037
18038 * coding.c (check_composing_code): If the current composing
18039 sequence doesn't end properly, return -1.
18040 (DECODE_CHARACTER_ASCII): Update coding->composed_chars.
18041 (DECODE_CHARACTER_DIMENSION1): Likewise.
18042 (decode_coding_iso2022): Check validity of a composing sequence.
18043 (code_convert_string): If the length of text to be converted is
18044 shrunk to zero, don't perform code conversion.
18045 (shrink_decoding_region): Fix previous change.
18046
18047 * editfns.c (Fformat): Check format control characters.
18048
180491998-09-25 Kenichi Handa <handa@etl.go.jp>
18050
18051 * coding.c (decode_eol): While decoding DOS-like eol, handle a
18052 single CR code correctly.
18053 (shrink_decoding_region) <CODING_CATEGORY_IDX_ISO_7 or
18054 CODING_CATEGORY_IDX_ISO_7_TIGHT>: Skip also 8-bit codes.
18055
180561998-09-23 Geoff Voelker <voelker@cs.washington.edu>
18057
18058 * w32fns.c (w32_color_map_lookup): New function.
18059 (x_to_w32_color): Approximate colors ending in numbers if necessary.
18060
180611998-09-22 Kenichi Handa <handa@etl.go.jp>
18062
18063 * ccl.c (ccl_driver): Report correct CCL program counter on error.
18064
18065 * xmenu.c (single_submenu) [! HAVE_MULTILINGUAL_MENU]: Make
18066 strings unibyte.
18067 (xmenu_show) [! HAVE_MULTILINGUAL_MENU]: Likewise.
18068
180691998-09-22 Kenichi Handa <handa@etl.go.jp>
18070
18071 * callint.c (Fcall_interactively): Don't use input method when
18072 reading a character in the case of `c' code letter.
18073
180741998-09-21 Dave Love <fx@gnu.org>
18075
18076 * editfns.c (Fsave_restriction): Doc fix.
18077
180781998-09-21 Richard Stallman <rms@gnu.org>
18079
18080 * lread.c (build_load_history): Do add to Vload_history
18081 even when dumping Emacs.
18082
180831998-09-18 Kenichi Handa <handa@etl.go.jp>
18084
18085 * ccl.c (CCL_WRITE_CHAR): Don't use bcopy.
18086 (ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
18087 cause error if the program is going to output some bytes. When
18088 outputing a string to notify an error, check the case that
18089 DST_BYTES is zero.
18090
427ec082 18091 * coding.h (CODING_FINISH_INTERRUPT): New macro.
26901792
DL
18092
18093 * coding.c (ccl_coding_driver): If ccl_driver is interrupted by a
18094 user or the CCL program executed an invalid command, return
18095 CODING_FINISH_INTERRUPT.
18096 (code_convert_region): Pay attention to the converters return
18097 value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
18098
180991998-09-16 Kenichi Handa <handa@etl.go.jp>
18100
18101 * coding.c (code_convert_region): Update beg_unchanged and
18102 end_unchanged after we delete the source text.
18103
18104 * insdel.c (adjust_markers_for_replace): Don't adjust a byte
18105 position if it is FROM.
18106 (adjust_markers_for_combining): New function.
18107 (combine_bytes): Call adjust_markers_for_combining instead of
18108 adjust_markers_for_replace.
18109 (adjust_after_replace): Record deletion of combining after bytes
18110 with the correct position.
18111 (replace_range): Likewise. Record the actual deletion after
18112 recoding deletions of combining bytes.
18113
18114 * xdisp.c (message_log_check_duplicate): Count byte length of the
18115 latest message correctly.
18116
181171998-09-12 Richard Stallman <rms@gnu.org>
18118
18119 * xdisp.c (redisplay_internal): Use TEMP_SET_PT_BOTH
18120 instead of SET_PT_BOTH.
18121 (try_window_id, display_text_line): Likewise.
18122
181231998-09-12 Karl Heuer <kwzh@gnu.org>
18124
18125 * data.c (Fmake_local_variable): Doc fix.
18126
181271998-09-10 Dave Love <fx@gnu.org>
18128
18129 * print.c (Fwith_output_to_temp_buffer): Doc fix.
18130
181311998-09-10 Richard Stallman <rms@gnu.org>
18132
18133 * s/irix6-0.h (TIOCSIGSEND): Add #undef.
18134 (bcopy, bcmp, bzero): Add #undef.
18135
18136 * keyboard.c (command_loop_1): When switching to selected window's bfr,
18137 first exit if selected frame is dead (no live frames remain).
18138 (read_key_sequence): Likewise.
18139
181401998-09-10 Karl Heuer <kwzh@gnu.org>
18141
18142 * emacs.c (main): Mention --display and --eval in help.
18143
181441998-09-07 Paul Eggert <eggert@twinsun.com>
18145
18146 * editfns.c (emacs_memftime): New function.
18147 (Fformat_time_string): Use it to handle null bytes in formats
18148 correctly.
18149
181501998-09-08 Kenichi Handa <handa@etl.go.jp>
18151
18152 * charset.c (Ffind_charset_region): Optimization for unibyte buffer.
18153 (Ffind_charset_string): For unibyte string, return (ascii).
18154
18155 * editfns.c (Fsubst_char_in_region): Call replace_range with the
18156 arg MARKERS 1.
18157
18158 * insdel.c (adjust_after_replace): Don't add combining bytes to
18159 the args given to adjust_point. Handle correctly the case that
18160 there are both before and after combining bytes.
18161 (replace_range): Likewise.
18162
181631998-09-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18164
18165 * fns.c (base64_decode_1, base64_encode_1): New functions.
18166 (Fbase64_decode_string, Fbase64_encode_string): New functions.
18167 (Fbase64_decode_region, Fbase64_encode_region): New functions.
18168
181691998-09-07 Karl Heuer <kwzh@gnu.org>
18170
18171 * eval.c (error): After enlarging buffer, write to it, not to buf.
18172
18173 * fns.c (Fwidget_put): Return VALUE instead of garbage.
18174
181751998-09-07 Kenichi Handa <handa@etl.go.jp>
18176
18177 * charset.h (STRING_CHAR_AND_LENGTH): Return correct value in
18178 ACTUAL_LEN even if LEN is too short to have a valid multibyte form.
18179 (STRING_CHAR_AND_CHAR_LENGTH): Likewise.
18180
18181 * coding.c (ccl_coding_driver): Always calculate correct mulibyte
18182 chars in produced byte sequence.
18183 (Ffind_operation_coding_system): Doc-string fixed.
18184
18185 * insdel.c (count_combining_after): Check also preceding bytes at
18186 POS if all characters in STRING are not character head.
18187
181881998-09-06 Paul Eggert <eggert@twinsun.com>
18189
18190 * editfns.c (Fformat_time_string, Fdecode_time, Fcurrent_time_zone):
18191 Don't assume that localtime and gmtime return non-NULL.
18192
181931998-09-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
18194
18195 * fns.c (Fbase64_decode_string, Fbase64_encode_string,
18196 base64_decode_1, Fbase64_decode_region, Fbase64_encode_region):
18197 New functions.
18198
181991998-09-06 Richard Stallman <rms@gnu.org>
18200
18201 * editfns.c (Fformat): Detect incomplete format spec at string's end.
18202
18203 * lread.c (Fload): Handle case where openp finds a magic file
18204 but it has no `load' handler or that handler calls `load'.
18205 If FOUND != FILE, find FOUND's handler even if inhibited for FILE.
18206
182071998-09-04 Dave Love <fx@gnu.org>
18208
18209 * buffer.c (enable-multibyte-characters): Doc fix.
18210
182111998-09-02 Geoff Voelker <voelker@cs.washington.edu>
18212
18213 * w32heap.c (allocate_heap): Define NTHEAP_PROBE_BASE by default.
18214
182151998-09-01 Kenichi Handa <handa@etl.go.jp>
18216
18217 * editfns.c (Ftranspose_regions): Use BYTE_POS_ADDR to get an
18218 address in buffer from byte-position.
18219
182201998-09-01 Eli Zaretskii <eliz@delysid.gnu.org>
18221
18222 * w16select.c (Vnext_selection_coding_system): New variable.
18223 (syms_of_win16select): DEFVAR_LISP it. No need to staticpro
18224 Vselection_coding_system.
18225 (Fw16_set_clipboard_data): Always convert multibyte strings. Use
18226 Vnext_selection_coding_system if non-nil.
18227 (Fw16_get_clipboard_data): Always convert a string that includes
18228 non-ASCII characters. Use Vnext_selection_coding_system if
18229 non-nil.
18230
182311998-08-31 Andrew Innes <andrewi@harlequin.co.uk>
18232
18233 * w32fns.c (w32_wnd_proc): Always zero button_state when releasing
18234 mouse capture.
18235
182361998-08-31 Kenichi Handa <handa@etl.go.jp>
18237
18238 * xterm.c (x_load_font): If SIZE is 0, don't use a name
18239 x_list_font returns.
18240
182411998-08-31 Paul Eggert <eggert@twinsun.com>
18242
18243 * lread.c (read1): Don't assume that atof ("-0.0") yields +0.0.
18244 Handle leading '-' uniformly for zeros, infinities, and NaNs.
18245
182461998-08-31 Eli Zaretskii <eliz@delysid.gnu.org>
18247
18248 * msdos.c (IT_cmgoto): When tracking echo area messages with the
18249 cursor, save and restore previous cursor position in the
18250 minibuffer.
18251
182521998-08-31 Kenichi Handa <handa@etl.go.jp>
18253
18254 * charset.c (unibyte_char_to_multibyte):
18255 Vnonacii_translation_table will convert a 7-bit charcater.
18256 (multibyte_char_to_unibyte): Handle the case that
18257 Vnonacii_translation_table converts a multibyte charcater to a
18258 unibyte charcter of less than 128.
18259 (init_charset_once): Initialize nonascii_insert_offset and
18260 Vnonacii_translation_table.
18261
18262 * coding.c (decode_coding): Even if SRC_BYTES is zero, try
18263 processing if CODING requires flushing.
18264 (encode_coding): Likewise.
18265 (code_convert_region): Likewise.
18266 (code_convert_string): Likewise.
18267
18268 * fns.c (concat): If Vnonascii_translation_table is non-nil, try
18269 to convert a character less than 160 to multibyte.
18270 * insdel.c (copy_text): Likewise.
18271 (count_size_as_multibyte): Likewise.
18272 * xterm.c (dumpglyphs): Likewise.
18273
182741998-08-29 Paul Eggert <eggert@twinsun.com>
18275
18276 * data.c (arith_driver, float_arith_driver): Compute (- x) by
18277 using negation, not subtraction; this makes a difference with
18278 IEEE floating point arithmetic (and also if integer arithmetic
18279 is ones' complement or signed-magnitude!).
18280
182811998-08-29 Karl Heuer <kwzh@gnu.org>
18282
18283 * xfns.c (x_create_bitmap_from_file): Fail immediately if magic.
18284
182851998-08-28 Ken'ichi Handa <handa@delysid.gnu.org>
18286
18287 * charset.c (Fchar_bytes): Add \n\ in doc-string.
18288
182891998-08-28 Paul Eggert <eggert@twinsun.com>
18290
18291 * s/sol2-4.h (NOT_USING_MOTIF): New macro.
18292 (LD_SWITCH_SYSTEM_TEMACS): Put /usr/dt/lib in the link library
18293 path only if we're not building with Motif.
18294
182951998-08-28 Kenichi Handa <handa@etl.go.jp>
18296
18297 * insdel.c (adjust_after_replace): Fix the code to record undo
18298 information for the case that `before combining' happens. Remove
18299 text properties which are added to the new text by
18300 offset_intervals.
18301
18302 * coding.c (code_convert_region1): Remove all text properties of
18303 the region.
18304
183051998-08-28 Kenichi Handa <handa@etl.go.jp>
18306
18307 * charset.h (CHAR_BYTES): New macro.
18308
18309 * charset.c (Fchar_bytes): Now always return 1.
18310 (char_bytes): New function.
18311
18312 * editfns.c (Fposition_bytes): If the arg POSITION is out of
18313 range, return nil.
18314 (Fbyte_to_position): If the arg BYTEPOS is out of range, return
18315 nil.
18316
18317 * data.c (Faset): Use macro CHAR_BYTES instead of Fchar_bytes.
18318 * fns.c (concat): Likewise.
18319 * insdel.c (count_size_as_multibyte): Likewise.
18320 * xdisp.c (message_dolog): Likewise.
18321
183221998-08-27 Kenichi Handa <handa@etl.go.jp>
18323
18324 * coding.c (detect_coding_iso2022): Handle ESC N and ESC O
18325 correctly. They are for SS2 and SS3 respectively.
18326 (ccl_coding_driver): Fix previous change.
18327
183281998-08-26 Paul Eggert <eggert@twinsun.com>
18329
18330 * xterm.c (fixup_locale): New function. For now, it resets
18331 LC_TIME to "C" (reverting the 1998-08-07 change), and also
18332 resets LC_MESSAGES to "C".
18333 (x_term_init): Use it to fix up the locale after setlocale
18334 (LC_ALL, "").
18335
183361998-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18337
18338 * xterm.c (x_calc_absolute_position): Cast argument to XFree, in
18339 case it was prototyped the old way.
18340
183411998-08-25 Kenichi Handa <handa@etl.go.jp>
18342
18343 * xterm.c (x_list_fonts): Work-around for the case XGetAtomName
18344 returns a null string. This happens when dxpc 3.7 is being used.
18345
183461998-08-24 Andreas Schwab <schwab@delysid.gnu.org>
18347
18348 * keyboard.c (input-method-previous-message): Doc fix.
18349
18350 * coding.c (file-coding-system-alist,
18351 select-safe-coding-system-function): Doc fix.
18352
183531998-08-23 Kenichi HANDA <handa@etl.go.jp>
18354
18355 * coding.c (detect_coding_iso2022): Don't check the byte length of
18356 succeeding codes (0xa0..0xFF) if the codes follows single shift
18357 code (SS2 or SS3).
18358
183591998-08-21 Ken'ichi Handa <handa@delysid.gnu.org>
18360
18361 * coding.c (detect_coding_system): If detect_eol_type returns
18362 CODING_EOL_INCONSISTENT, set eol_type to CODING_EOL_UNDECIDED
18363 correctly.
18364
18365See ChangeLog.7 for earlier changes.