(try_window_reusing_current_matrix): Don't try to reuse
[bpt/emacs.git] / src / ChangeLog
CommitLineData
d5483ab1
GM
12000-06-28 Gerd Moellmann <gerd@gnu.org>
2
3 * s/isc4-0.h (sigunblock): Define.
4
5 * s/sco5.h (sigunblock): Define.
6
93e40f40
DL
72000-06-27 Dave Love <fx@gnu.org>
8
9 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
10 (moved to osf5-0.h).
11 [!NOT_C_CODE]: Protect string.h stuff.
12
13 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
14 (sys_siglist, NSIG): Definitions moved here from osf1.h.
15
3c4b7685
GM
162000-06-27 Gerd Moellmann <gerd@gnu.org>
17
18 * xdisp.c (resize_mini_window): Subract the extra line spacing
19 below the last line from the needed window height.
20
32cad0aa
SM
212000-06-26 Stefan Monnier <monnier@cs.yale.edu>
22
23 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
24 (Fwidget_get): Use it.
25 (syms_of_fns): Defsubr it.
26
2c69ced2
GM
272000-06-26 Gerd Moellmann <gerd@gnu.org>
28
1d36487c
GM
29 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
30 display info for XIM.
31 (xim_open_dpy): Likewise.
32 (xim_close_dpy): Don't free the display info's XIM.
33
34 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
35
36 * config.in (USE_XIM): New define.
37
3fc720e4
GM
38 * keymap.c (get_keyelt): For menu-items containing a `:filter
39 FILTER', apply FILTER to the menu-item's definition to get the
40 real definition to use.
41
42 * lisp.h (QCfilter): External declaration.
43
2c69ced2
GM
44 * xfns.c (Fimage_size): New function.
45 (syms_of_xfns): Defsubr it.
46
f978b2a2
AS
472000-06-26 Andreas Schwab <schwab@suse.de>
48
49 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
50 Fstring_as_unibyte.
51
94cc7892
DL
522000-06-25 Dave Love <fx@gnu.org>
53
54 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
55 tgetnum.
56
57 * Makefile.in (blockinput.h): Depend on atimer.h.
58 (atimer.h): Depend on systime.h.
59
60 * blockinput.h: Protect against multiple inclusion. Include
61 atimer.h.
62
63 * atimer.h: Protect against multiple inclusion. Include
64 systime.h.
65
66 * lisp.h (swap_in_global_binding): Declare.
67
b8c24556
KR
682000-06-24 Ken Raeburn <raeburn@gnu.org>
69
70 * process.c (Fopen_network_stream): Turn off atimers for duration
71 of call to connect. (Patch from Gerd.)
72
8cf8560b
DL
732000-06-23 Dave Love <fx@gnu.org>
74
511c7541
DL
75 * ralloc.c: Maybe include unistd.h
76
8cf8560b
DL
77 * emacs.c (setgrp): Undefine before defining.
78 (malloc_warning, set_time_zone_rule, index): Prototype.
79
80 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
81 HAVE_STRUCT_TIMEZONE.
82
83 * s/osf1.h: Move string.h hack here from alpha.h and make it
84 conditional.
85 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
86 _XOPEN_SOURCE.
87 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
88 (SOCKLEN_TYPE): Don't define.
89
90 * m/alpha.h: Remove string.h hack.
91
92 * s/osf5-0.h: New file.
93
94 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
95 include time.h, done by systime.h.
96 [__FreeBSD__]: Remove redundant includes.
97
3fc720e4 98 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
99 (delete_temp_file): Return Qnil to avoid warning.
100
101 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
102
103 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
104 HAVE_X_WINDOWS.
105
106 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
107
108 * composite.h (compose_text): Declare.
109
110 * xterm.c: Don't include sys/types.h unconditionally. Don't
111 protect its inclusion with !USG (following xmenu.c).
112
ea055732
GM
1132000-06-23 Gerd Moellmann <gerd@gnu.org>
114
115 * xfns.c (x_create_tip_frame): Initialize frame's colors like
116 in x_create_frame.
117
74b01b80
EZ
1182000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
119
120 * coding.c (decode_eol_post_ccl): Special handling for undecided
121 and inconsistent EOL types.
122
64f3a166
GM
1232000-06-22 Gerd Moellmann <gerd@gnu.org>
124
16cf31f7
GM
125 * xrdb.c (x_load_resources): Add default resource for scroll bar's
126 trough color and main window's background color.
127
128 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
129 differently.
130
131 * xterm.h (Xt_app_con): External declaration.
132
133 * widget.c (EmacsFrameRealize): Fix typo.
134
486a103d
GM
135 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
136
64f3a166
GM
137 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
138 (handle_invisible_prop): Record the start of invisible text in
139 it->add_overlay_start.
140 (struct overlay_entry): Add member `overlay'.
141 (handle_overlay_change): Simplify.
142 (next_overlay_string): After having processed overlay strings at the
143 end of the buffer, record that fact in
144 it->overlay_strings_at_end_processed_p.
145 (compare_overlay_entries): If before- and after-strings come
146 from the same overlay, let before-strings come first.
147 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
148 (load_overlay_strings): Take it->add_overlay_start into account
149 when adding overlay strings.
150
151 * dispextern.h (struct it): Add member add_overlay_start.
152
bb746ea6
DL
1532000-06-22 Dave Love <fx@gnu.org>
154
155 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
156
157 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
158
a8f573f3
KH
1592000-06-22 Kenichi Handa <handa@etl.go.jp>
160
161 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
162 is greater than 0.
163
9f2bbc92
DL
1642000-06-21 Dave Love <fx@gnu.org>
165
166 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
167
3ee5041c
SM
1682000-06-21 Stefan Monnier <monnier@cs.yale.edu>
169
170 * syntax.c (back_comment): Simplify string-parity counting (with
171 the added benefit of handling multiple string-styles as long as
172 they are not intertwined).
173 Jump to the slow code as soon as a comment starter is found in
174 a "string_lossage" position. Fixes the case: " /* " /* " */.
175
4c343001
DL
1762000-06-21 Dave Love <fx@gnu.org>
177
178 * Makefile.in: Use GETLOADAVG_LIBS.
179
180 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
181 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
182
e6365855
SM
1832000-06-20 Stefan Monnier <monnier@cs.yale.edu>
184
185 * syntax.c (describe_syntax): Recognize the `n'estable bit.
186 (Fforward_comment, scan_lists):
187 Check the comstyle of single-char comment-starters.
188 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
189 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
190 Check the comstyle of single-char comment-starters.
191 Clarify control-flow around the Scomment case.
e6365855 192
5700d2cc
DL
1932000-06-20 Dave Love <fx@gnu.org>
194
d355bd8a
SM
195 * fns.c (make_hash_table, maybe_resize_hash_table):
196 Cast arg of next_almost_prime.
5700d2cc
DL
197
198 * tparam.c [emacs]: Include lisp.h.
199
200 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
201 and unistd.h.
202
4a27bdfb
GM
2032000-06-20 Gerd Moellmann <gerd@gnu.org>
204
a61d762c
GM
205 * keyboard.c (adjust_point_for_property): Check if display
206 property should be treated as intangible by looking at its
207 value.
208
209 * xdisp.c (single_display_prop_intangible_p)
210 (display_prop_intangible_p): New functions.
211
212 * dispextern.h (display_prop_intangible_p): Add prototype.
213
214 * xdisp.c (dump_glyph_row): Show type of glyph->object.
215
4a27bdfb
GM
216 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
217 argument to sigprocmask.
218
219 * s/sco5.h (sigblock): Redefined to pass a pointer as second
220 argument to sigprocmask.
221
222 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
223 sigprocmask_set, and pass a pointer to it to sigprocmask.
224
225 * sysdep.c (sigprocmask_set): New variable.
226
227 * fileio.c (make_temp_name): Don't use `%s' in string passed to
228 report_file_error.
229
427ec082
SS
2302000-06-20 Sam Steingold <sds@gnu.org>
231
232 * xrdb.c: Don't declare xmalloc, xrealloc.
233
8972fe79 2342000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
235
236 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
237 (re_comp): Cast gettext return value to avoid complaints when
238 !HAVE_LIBINTL.
239
074b6efe
DL
2402000-06-20 Dave Love <fx@gnu.org>
241
f85c008a
DL
242 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
243 HAVE_GETTIMEOFDAY.
244
5700d2cc 245 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 246
d355bd8a 247 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
248
249 * m/alpha.h: Don't declare xmalloc, xrealloc.
250
0af4f205
DL
251 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
252
253 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
254
255 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
256
257 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
258 HAVE_GETWD.
259
074b6efe
DL
260 * keyboard.h (poll_for_input_1): Declare.
261
262 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
263
264 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
265
266 * doprnt.c: Don't declare xmalloc, xrealloc.
267
268 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
269 (getenv, ctime, getwd): Removed.
270 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
271
272 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
273 x_set_tool_bar_lines.
274
275 * config.in: Add HAVE_GETWD. Move some definitions above
276 machine/system includes.
277
68a5e97b
KH
2782000-06-20 Kenichi Handa <handa@etl.go.jp>
279
95417e1e
KH
280 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
281
68a5e97b
KH
282 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
283 contain information about ENCODING.
284
285 * fontset.c (FONTSET_ASCII): Use the first element of char table
286 for an ASCII font, not defalt slot.
287 (fontset_ref_via_base): If FONTSET doesn't contain information for
288 C, try the default fontset.
289 (make_fontset): Don't copy the default fontset.
290 (fontset_font_pattern): Likewise.
291 (accumulate_font_info): If ELT is nil, use the corresponding
292 element in the default fontset.
293
3b4fa1b2
DL
2942000-06-19 Dave Love <fx@gnu.org>
295
943e731c
DL
296 * syntax.c (Fparse_partial_sexp): Doc fix.
297
298 * regex.h: Test PROTOTYPES as well as __STDC__.
299
3b4fa1b2
DL
300 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
301 errno, strerror. Put text after #endif in comment.
302
303 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
304 pcc).
305
306 * xterm.c (x_frame_of_widget): Likewise.
307
cdf0357b
GM
3082000-06-19 Gerd Moellmann <gerd@gnu.org>
309
310 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
311 to Vfundamental_mode_abbrev_table.
312
313 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
314 bogus objects are marked. This slows down GC by ~80 percent, but
315 it might be worth trying when debugging GC-related problems.
316 This feature requires conservative stack marking to be enabled.
317
318 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
319 returns XLookupChars, reset `modifiers' to zero.
320
998e9f8c
DL
3212000-06-19 Dave Love <fx@gnu.org>
322
323 * mktime.c: Unprotoized.
324
d1504184
GM
3252000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
326
327 * data.c (set_internal): If variable is frame-local,
328 store the new value immediately into the frame parameter alist.
329
140c4ac6
KR
3302000-06-19 Ken Raeburn <raeburn@gnu.org>
331
14358466
KR
332 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
333 in the custom handler pointer.
334
140c4ac6
KR
335 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
336 value, or checks for CHAR_META can fail when Lisp_Object is a
337 union type.
338 * keymap.c (get_keyelt): Likewise.
339
10d7bf84
KH
3402000-06-19 Kenichi Handa <handa@etl.go.jp>
341
342 * ccl.h (struct ccl_program): New member eol_type.
343 (struct ccl_spec): New member cr_carryover.
344
345 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
346 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
347
348 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
349 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
350 (decode_eol_post_ccl): New function.
351 (decode_coding): Don't detect EOL format here for CCL based coding
352 systems.
353 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
354 decode_eol_post_ccl after running the CCL program.
355 (code_convert_region): Don't detect EOL format here for CCL based
356 coding systems.
357 (decode_coding_string): Likewise.
358
52e386c2
KR
3592000-06-18 Ken Raeburn <raeburn@gnu.org>
360
361 * charset.c (update_charset_table): Use XINT on "iso_final_char"
362 when treating it as an integer.
363
364 * coding.h (encode_coding_string): Declare.
365
366 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
367 it as an integer.
368
369 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
370 "xkeymap" to avoid shadowing the "enum map_type" value that needs
371 to be passed to get_local_map.
372
373 * sound.c (Fplay_sound): Don't call make_number on
374 Frun_hook_with_args count argument.
375
376 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
377 for lisp objects in X event structure data field, when lisp
378 objects are represented with unions.
379 (x_scroll_bar_to_input_event): Ditto.
380
b357b9d4
KR
3812000-06-16 Ken Raeburn <raeburn@gnu.org>
382
383 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
384 termination of string. Fix sense of test whether
385 Vline_number_display_limit is an integer.
b357b9d4 386
a871441d
GM
3872000-06-16 Gerd Moellmann <gerd@gnu.org>
388
a9021acd
GM
389 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
390 only if HAVE_X_WINDOWS.
391
6344985d
GM
392 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
393 of titles.
394
427ec082 395 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
396 out of bounds.
397
228b083e
EZ
3982000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
399
400 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
401 of its headers.
402
c25b53a2
KH
4032000-06-15 Kenichi Handa <handa@etl.go.jp>
404
405 * coding.c (decode_coding_emacs_mule): Always set src_base at the
406 start of the while loop.
407
a6981b11
GM
4082000-06-15 Gerd Moellmann <gerd@gnu.org>
409
e9924e52
GM
410 * atimer.c (alarm_signal_handler): Add forward declaration.
411
a6981b11
GM
412 * data.c (set_internal): Remove debug code.
413
25fa6deb
GM
4142000-06-14 Gerd Moellmann <gerd@gnu.org>
415
dce6b995
GM
416 * Makefile.in (bootstrap-temacs): Add `-I../src'.
417
9f817ea4
GM
418 * unexec.c (toplevel) [COFF]: Include coff.h.
419
420 * s/lynxos.h: New file.
421
422 * keymap.c (Fsingle_key_description): Enclose function key and
423 event symbol names in angle brackets.
424
8a4e3c0c
GM
425 * xdisp.c (setup_echo_area_for_printing): Call
426 message_log_maybe_newline if message_buf_print is not set.
427
428 * print.c (printchar, strout): Don't check message_buf_print
427ec082 429 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
430 function does something useful even when message_buf_print is
431 already set.
432
25fa6deb
GM
433 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
434 variables.
435 (ensure_echo_area_buffers): Initialize echo buffer's
436 truncate lines setting to nil.
437 (with_echo_area_buffer): Don't set the echo buffer's truncate
438 lines setting here.
8a4e3c0c 439 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
440 of message_truncate_lines.
441 (resize_mini_window): Handle case that lines are truncated.
442 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
443 message-truncate-lines.
444
445 * keyboard.c (read_char): Bind message-truncate-lines to t
446 while displaying a help-echo.
447
448 * lisp.h (Qmessage_truncate_lines): External declaration.
449
163dcff3
GM
4502000-06-13 Gerd Moellmann <gerd@gnu.org>
451
1681ead6
GM
452 * xdisp.c (Vline_number_display_limit): Renamed from
453 line_number_display_limit.
454 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
455 Extend documentation string. Initialize
456 Vline_number_display_limit to nil meaning no limit.
457 (decode_mode_spec): Use Vline_number_display_limit with its new
458 meaning.
459
163dcff3
GM
460 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
461
4622000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
463
464 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 465
163dcff3
GM
466 * xfns.c (x_set_frame_parameters): Comment fix.
467
468 * frame.c (store_frame_param): Call swap_in_global_binding if the
469 variable's current binding was chosen based on this frame.
470
471 * data.c (swap_in_global_binding): New function.
472
a704139d
EZ
4732000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
474
475 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
476 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
477
9b6610db
EZ
4782000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
479
480 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
481
c68833d2
JR
4822000-06-12 Jason Rumney <jasonr@gnu.org>
483
484 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
485
486 * w32.h (EMACS_W32_H): Renamed from _NT_H_
487
488 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
489
490 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
491
ed1056b3
GM
4922000-06-12 Gerd Moellmann <gerd@gnu.org>
493
494 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
495 (syms_of_xfaces): Defsubr Sdump_colors.
496 (x_free_colors): Don't treat b&w specially on default visual.
497 (x_free_dpy_colors): New function.
498 (free_face_colors): Don't check visual class; it's done
499 in x_free_colors.
500
501 * xterm.c (x_frame_of_widget): New function.
502 (x_alloc_nearest_color_for_widget): Use it.
503 (x_copy_dpy_color): New function.
504 (x_destroy_window): Free various colors.
505
5050a2ef
KH
5062000-06-12 Kenichi Handa <handa@etl.go.jp>
507
508 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
509
510 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
511
512 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
513
514 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
515
516 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
517
fb1b041d
DL
5182000-06-11 Dave Love <fx@gnu.org>
519
520 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
521
ff96b5f4
EZ
5222000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
523
524 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
525
db8eeecd
GM
5262000-06-11 Gerd Moellmann <gerd@gnu.org>
527
ed1056b3 528 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
529 to `XEvent *'.
530
49b71c5f
KH
5312000-06-10 Kenichi Handa <handa@etl.go.jp>
532
c479bd55
KH
533 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
534 (regex_compile): Fix the code for handling the case of single byte
535 char and multibyte char being mixed in a range within [...].
536
ff6a65c2
KH
537 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
538 and dst_multibyte members of coding.
539
49b71c5f
KH
540 * charset.c (update_charset_table): Update the table
541 bytes_by_char_head.
542 (init_charset_once): Initialize elements of bytes_by_char_head to
543 1 except for leading codes for private charases.
544
545 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
546 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
547 sequence.
548
9e80b57d
KR
5492000-06-09 Ken Raeburn <raeburn@gnu.org>
550
551 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
552 access the data it doesn't point to.
553
f83fe4b4
GM
5542000-06-08 Gerd Moellmann <gerd@gnu.org>
555
556 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 557 will be translated to a switch-frame event when reading the
f83fe4b4
GM
558 event queue. This is necessary because Emacs otherwise won't
559 perform a switch-frame to a new frame until some other event, for
560 example a keystroke event, forces it to do so. This has various
561 effects, one visible being that the cursor of a frame created with
562 C-x 5 2 or switched to with a window manager key binding like
563 A-TAB stays hollow because selected_window isn't on the newly
564 focused frame until the switch-frame is performed.
565
566 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
567 generating a switch-frame event if necessary.
568
569 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
570
571 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
572 it's an integer.
573
0890801b
KH
5742000-06-08 Kenichi Handa <handa@etl.go.jp>
575
576 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
577 charset.
578
173cbca8
GM
5792000-06-07 Gerd Moellmann <gerd@gnu.org>
580
3091c2a6
GM
581 * window.c (displayed_window_lines): Take empty lines at
582 the bottom of a window into account.
427ec082 583
f38952fe
GM
584 * window.c (displayed_window_lines): New function.
585 (Fmove_to_window_line): Use displayed_window_lines to determine
586 the number of lines to move, instead of using the window's height.
587
588 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
589 to stop reading, even if the form read sets point to a different
590 value when evaluated.
591
427ec082 592 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
593 put the cursor.
594
6ba6c818
KH
5952000-06-07 Kenichi Handa <handa@etl.go.jp>
596
597 * fileio.c (e_write): Free composition data if stored in
598 coding->cmp_data.
599
5f1aea9a
GM
6002000-06-06 Gerd Moellmann <gerd@gnu.org>
601
666852af
GM
602 * xdisp.c (display_line): Set row's and iterator's
603 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
604 Set cursor even if row ends in the middle of a character.
605 (dump_glyph_row): Print values of new flags.
606 (redisplay_window) <cursor movement in unchanged window>: When
607 point has been moved forward, and PT is at the end of the cursor
608 row, don't place the cursor in the next row if the cursor row ends
609 in the middle of a character or at ZV.
610
611 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
612 (struct glyph_row): Add starts_in_middle_of_char_p and
613 ends_in_middle_of_char_p.
614 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
615 ends_in_middle_of_char_p flag.
616 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
617
d13f3e2e
GM
618 * term.c (append_glyph): Revert change of 2000-06-06.
619
620 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
621 padding glyph not fitting on line as whole character not
622 fitting on line.
623
5f1aea9a
GM
624 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
625 this isn't true for images with `:ascent 100'.
626
10cda9b0
KH
6272000-06-06 Kenichi Handa <handa@etl.go.jp>
628
ed00559d
KH
629 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
630 as modified if it is originally unmodified.
631
10cda9b0
KH
632 * term.c (encode_terminal_code): Change the way to check if
633 terminal coding does any conversion.
634 (append_glyph): Set glyph->pixel_width correctly.
635
636 * xdisp.c (display_line): While checking line continuation, pay
637 attention to a padding glyph.
638
1969fae2
GM
6392000-06-05 Gerd Moellmann <gerd@gnu.org>
640
641 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
642
162ccef4
DL
6432000-06-05 Dave Love <fx@gnu.org>
644
f19f32dd
DL
645 * xdisp.c: Include fontset.h.
646
647 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
648
649 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
650
651 * dispnew.c: Conditionally include term.h.
652
653 * coding.h: Declare code_convert_string_norecord.
654
655 * frame.h (struct frame): Use volatile unconditionally.
656
657 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
658
659 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
660
661 * systime.h: Protect against multiple inclusion.
662 (timezone) [USG5_4]: Define as time_t.
663
664 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
665 (Foptimize_char_table, make_temp_name): Declare.
666
667 * Makefile.in (xdisp.o): Depend on fontset.h.
668
669 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
670
671 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
672 (Foptimize_char_table, make_temp_name): Declare.
673
427ec082 674 * s/irix4-0.h:
162ccef4
DL
675 * s/irix5-0.h:
676 * s/netbsd.h: Don't define autoconfiscated MATHERR.
677
2082fe81
DL
6782000-06-02 Dave Love <fx@gnu.org>
679
680 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
681
dcf671d2
GM
6822000-06-02 Gerd Moellmann <gerd@gnu.org>
683
684 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 685 result face, set flags in that face indicating that colors may not
dcf671d2
GM
686 be freed.
687
688 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
689 glyph, use the ASCII NUL character to determine the face.
690
d42122a3
DL
6912000-06-02 Dave Love <fx@gnu.org>
692
693 * sysdep.c: Conditionally include stdlib.h, unistd.h.
694 (VFORK_RETURN_TYPE): Remove.
427ec082 695
d42122a3
DL
696 * config.in: Add NO_MATHERR.
697
dd432f16
DL
6982000-06-01 Dave Love <fx@gnu.org>
699
90aa4ea8
DL
700 * cmds.c (internal_self_insert): Don't check
701 Vbefore_change_function, Vafter_change_function.
702
703 * insdel.c (signal_before_change, signal_after_change): Likewise.
704
705 * buffer.c (Vbefore_change_function, Vafter_change_function):
706 Variables and their initializations deleted.
707
2330c9d4
DL
708 * callint.c (Fcall_interactively): Doc fix.
709
dd432f16
DL
710 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
711
bf9e8804
DL
7122000-05-31 Dave Love <fx@gnu.org>
713
714 * textprop.c: Revert last change -- duplicated.
715
3694b4ab
GM
7162000-05-31 Gerd Moellmann <gerd@gnu.org>
717
718 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
719 in #if 0.
720
721 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
722
f14156cd
JR
7232000-05-31 Jason Rumney <jasonr@gnu.org>
724
8119aab8
JR
725 * search.c (Fre_search_forward, Fre_search_backward)
726 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
727
f14156cd
JR
728 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
729
4aab9be3
JR
7302000-05-30 Jason Rumney <jasonr@gnu.org>
731
732 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
733 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
734
735 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
736 member.
737
738 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
739 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
740 expand a nil default_filename.
741
742 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
743 pointer to glyph_to_pixel_coords, not a frame.
744
745 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
746 coding.h to dependencies.
747
748 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
749
750 * w32console.c (glyph_to_pixel_coords): Change first parameter to
751 window pointer to be consistent with w32term.c and xterm.c.
752
753 * w32fns.c: Format and doc changes to bring closer to xfns.c.
754 (VIETNAMESE_CHARSET): Define if not defined in system headers.
755 (Qline_spacing, Qcenter): New variables.
756 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
757 (x_set_line_spacing): New function.
758 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
759 macros.
760 (x_specified_cursor_type): New function.
761 (x_set_cursor_type): Use it.
762 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
763 and icon strings.
764 (validate_x_resource_name, x_get_resource_string): Measure lengths
765 of external strings in bytes.
766 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
767 GetTextExtentPoint32 with NULL title.
768 (Fx_create_frame): Initialize Qline_spacing.
769 (w32_load_system_font): Initialize font->double_byte_p.
770 (x_to_w32_charset): Use Vw32_charset_info_alist.
771 (Image, busy cursor, tooltip functions): Merged changes from
772 xfns.c. Not yet functional on Windows.
773
774 * w32gui.h (W32FontStruct): Add double_byte_p member.
775
776 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
777 (emacs_button_translation): Use it.
778 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
779 in `mask' to be set.
780
781 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
782 menu strings.
783
784 * w32term.c: Format and doc changes to bring closer to xterm.c.
785 (w32_char_font_type): New enum.
786 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
787 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
788 (w32_encode_char): New function.
789 (x_encode_char): Removed.
790 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
791 x_encode_char and w32_font_is_double_byte.
792 (x_produce_image_glyph): Use image_ascent.
793 (x_produce_glyphs): Use new version of w32_per_char_metric and
794 handle NULL return value. Allow extra line spacing.
795 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
796 (w32_get_glyph_overhangs): Remove unicode_p param. Use
797 w32_font_type member of glyph instead.
798 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
799 (fast_find_position): Make sure not to consider rows not visible
800 in the window.
801 (w32_read_socket) [WM_MENUSELECT]: Cannot call
802 w32_menu_display_help with input blocked, as it can abort.
803 (x_display_and_set_cursor): Choose cursor depending
804 on buffer-local value of cursor_type.
805 (x_draw_bar_cursor): Add parameter WIDTH.
806
807 * w32term.h (CP_DEFAULT): Define.
808 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
809
10fc3187
GM
8102000-05-30 Gerd Moellmann <gerd@gnu.org>
811
812 * search.c (Fre_search_forward, Fre_search_backward)
813 (Fposix_search_backward, Fposix_search_forward): Doc fix.
814
d0555360
KH
8152000-05-30 Kenichi Handa <handa@etl.go.jp>
816
817 * coding.c (detect_coding_iso2022): Fix code for checking
818 CODING_CATEGORY_MASK_ISO_8_2.
819
f1ad044f
SM
8202000-05-29 Stefan Monnier <monnier@cs.yale.edu>
821
822 * regex.c (PREFETCH_NOLIMIT): New function.
823 (re_match_2_internal): Use it and adjust the end_match_2 logic.
824
84ec3b4b
GM
8252000-05-29 Gerd Moellmann <gerd@gnu.org>
826
66254a13
GM
827 * syntax.c (find_defun_start): Move test for
828 open_paren_in_column_0_is_defun_start outside of the loop.
829
49e70dec
GM
830 * xdisp.c (redisplay_window): Really switch buffers when
831 displaying mode lines, and temporarily set selected_frame to the
832 frame of the window that's redisplayed.
833
84ec3b4b
GM
834 * xfaces.c (free_realized_faces): Block/unblock input.
835 (free_realized_multibyte_face): Ditto.
836
869a3a14
DL
8372000-05-29 Dave Love <fx@gnu.org>
838
839 * textprop.c (Qkeymap): New variable.
840 (syms_of_textprop): Intern it.
841
842 * keymap.c: Include intervals.h.
843 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
844
845 * Makefile.in (keymap.o): Depend on intervals.h.
846
847 * keyboard.c (menu_bar_items, tool_bar_items)
848 (Fexecute_extended_command): Deal with `keymap' property.
849 (read_key_sequence): Track map from `keymap' property as well as
850 `local_map'.
851
852 * intervals.c (get_local_map): Extra arg to allow looking for
853 `keymap' too.
854
855 * intervals.h (map_property): New enum.
856 (get_local_map): Extra arg using it.
857 (Qkeymap): Declare.
858
84ec3b4b 859 * lisp.h (get_local_map): Don't declare here.
869a3a14 860
89d0c844
KH
8612000-05-29 Kenichi Handa <handa@etl.go.jp>
862
863 * Makefile.in (callproc.o): Depend on composite.h.
864
865 * callproc.c: Include composite.h.
866 (Fcall_process): Handle composition correctly.
867
868 * coding.h (coding_allocate_composition_data): Extern it.
869 (coding_restore_composition): Likewise.
870
871 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
872 yet allocated, finish decoding with result
873 CODING_FINISH_INSUFFICIENT_CMP.
874 (coding_allocate_composition_data): Make it non-static.
875 (coding_restore_composition): Likewise.
876
797a084a
EZ
8772000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
878
879 * charset.c (syms_of_charset): Revert last change.
880
cf872af5
EZ
8812000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
882
883 * term.c (produce_glyphs): Treat characters from the eight-bit-*
884 charsets as unibyte, with 1-column screen width. Sent by Kenichi
885 Handa.
886
5b1ae051
EZ
8872000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
888
889 * charset.c (syms_of_charset): Set width of character sets
890 eight-bit-control and eight-bit-graphic to 1 column.
891
34ec9ebe
GM
8922000-05-26 Gerd Moellmann <gerd@gnu.org>
893
894 * config.in (HAVE_SPEED_T): New define.
895
896 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
897 `extern speed_t'.
898
dd854dc2
DL
8992000-05-26 Dave Love <fx@gnu.org>
900
901 * coding.c (shrink_decoding_region): Initialize eol_conversion.
902
903 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
904 (Fsubr_arity): New function.
905 (syms_of_data): Install them.
906
ba9f8f95
KH
9072000-05-26 Kenichi Handa <handa@etl.go.jp>
908
0f3e0672
KH
909 * charset.c (init_charset_once): Set the table bytes_by_char_head
910 correctly.
911
cebefb44
KH
912 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
913 the default fontset to what Emacs uses by default.
0f3e0672
KH
914 (check_registry_encoding): This function deleted.
915 (Fset_fontset_font): Remove the adhoc condition for the default
916 fontset. Allow cons in FONTNAME.
cebefb44 917
0f3e0672
KH
918 * fns.c (map_char_table): Ignore char-table entries for
919 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 920
7a18af49
KR
9212000-05-25 Ken Raeburn <raeburn@gnu.org>
922
923 * emacs.c (main): Initialize keyboard syms before initializing
924 window code, so face names are available.
925
d2af47df
SM
9262000-05-25 Stefan Monnier <monnier@cs.yale.edu>
927
928 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
929 of an anchor at the beginning of a shy-group.
930
fc6a6a4e
GM
9312000-05-25 Gerd Moellmann <gerd@gnu.org>
932
933 * xdisp.c (handle_invisible_prop): Don't try to skip over
934 invisible text if end of text is already reached.
935
005f0d35
DL
9362000-05-25 Dave Love <fx@gnu.org>
937
02513cdd
DL
938 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
939
005f0d35
DL
940 * coding.c (encode_eol): Add null statement after label.
941
89f6ca4e
EZ
9422000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
943
944 * w16select.c (Fw16_set_clipboard_data): Fix the change from
945 2000-05-20.
946
a4e1759e
KH
9472000-05-25 Kenichi Handa <handa@etl.go.jp>
948
949 * ccl.c (ccl_driver): Fix previous change.
950
eacfd7fe
KH
9512000-05-25 Kenichi Handa <handa@etl.go.jp>
952
46ab33a9
KH
953 * coding.c (run_pre_post_conversion_on_str): Set point to the
954 beginning of buffer before calling coding->post_read_conversion.
955 (decode_coding_string): Give correct args to
956 run_pre_post_conversion_on_str.
957 (encode_coding_string): Likewise.
958
eacfd7fe
KH
959 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
960 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
961 eight-bit-graphic correctly.
962
f8569325
DL
9632000-05-24 Kenichi HANDA <handa@etl.go.jp>
964
965 * fileio.c (Finsert_file_contents): Even if a file is not found,
966 execute codes for setting up coding system. Call
967 after-insert-file-functions unconditionally.
968
04545643
GM
9692000-05-24 Gerd Moellmann <gerd@gnu.org>
970
971 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
972 BSD_PGRPS are not defined.
973
747d90ea
KH
9742000-05-24 Kenichi Handa <handa@etl.go.jp>
975
976 * charset.c (update_charset_table): Accept nil in LONG_NAME and
977 DESCRIPTION.
978 (syms_of_charset): Avoid building same strings.
979
716e3b88
GM
9802000-05-23 Gerd Moellmann <gerd@gnu.org>
981
982 * lread.c (Fload): Add a comment about the meaning of
983 Vuser_init_file being t.
984
985 * puresize.h (BASE_PURESIZE): Increase to 675000.
986
987 * s/gnu-linux.h (setpgrp): Don't define it here because this
988 prevents compilation on GNU/Linux systems with glib 2.2.
989
990 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
991 as setpgid.
427ec082 992
9aeb39fa
EZ
9932000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
994
995 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
996 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
997 version.
998 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
999
29ced61b
KH
10002000-05-23 Kenichi Handa <handa@etl.go.jp>
1001
0574a2ed
KH
1002 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
1003 unconditionally.
1004
3d80f24d
KH
1005 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
1006
1007 * term.c (encode_terminal_code): Set coding->src_multibyte
1008 properly.
1009
29ced61b
KH
1010 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
1011
d7e00792
KH
10122000-05-22 Kenichi Handa <handa@etl.go.jp>
1013
c9d80d38
KH
1014 * keyboard.c (read_char): Allow character codes 128..255 to be
1015 handled by input-method-function.
1016
d7e00792
KH
1017 * insdel.c (adjust_markers_for_replace): Fix previous change.
1018 (adjust_after_replace): If PREV_TEXT is nil, call
1019 adjust_markers_for_insert, not adjust_markers_for_replace.
1020
087121cc 10212000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 1022
087121cc
GM
1023 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
1024 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
1025 [HAVE_GRANDPT]: Define.
1026 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
1027
1028 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
1029 like SYSV_PTYS.
1030
1031 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
1032
1033 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
1034
c9671f81
KH
10352000-05-20 Kenichi Handa <handa@etl.go.jp>
1036
1037 The following changes are to handle 8-bit characters in a
1038 multibyte buffer/string without facing with byte combining
1039 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1040 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1041
1042 * Makefile.in (fns.o): Depend on charset.h.
1043
1044 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1045 convert it to unibyte.
1046 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1047
1048 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1049 apparent char boundary.
1050 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1051 0x80..0x9F to/from multibyte form.
1052
1053 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1054 to unibyte.
1055
1056 * callproc.c (Fcall_process): Always encode an argument string if
1057 it is multibyte. Setup src_multibyte and dst_multibyte members of
1058 process_coding properly.
ce75fd23 1059
c9671f81
KH
1060 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1061 SPLIT_NON_ASCII_CHAR.
1062
1063 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1064 as is.
1065 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1066
1067 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1068 variables.
1069 (SPLIT_CHARACTER_SEQ): This macro deleted.
1070 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1071 valid.
1072 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1073 and eight-bit-graphic.
1074 (char_to_string): Likewise. Signal an error for too large
1075 character code.
1076 (char_printable_p): Return 0 for 8-bit characters.
1077 (update_charset_table): Update iso_charset_table only when a final
1078 character is non-negative.
1079 (find_charset_in_text): Renamed from find_charset_in_str.
1080 Arguments and return value changed. Callers changed.
1081 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1082 be -1 if CHARSET is used only internally.
1083 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1084 eight-bit-graphic.
1085 (Fcharset_after): Simplified.
1086 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1087 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1088 (multibyte_chars_in_text): Simplified by assuming there's no
1089 invalid multibyte sequence.
1090 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1091 str_as_unibyte): New functions.
1092 (Fstring): Simpified by assuming that byte combining never
1093 happens.
1094 (init_charset_once): Initialization for
1095 LEADING_CODE_8_BIT_CONTROL.
1096 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1097 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1098 eight-bit-control and eight-bit-graphic.
1099
1100 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1101 CHARSET_8_BIT_GRAPHIC): New macros.
1102 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1103 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1104 (CHARSET_REVERSE_CHARSET): Likewise.
1105 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1106 eight-bit-graphic.
1107 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1108 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1109 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1110 encounter an invalid multibyte sequence.
1111 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1112 sequence is always valid.
1113 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1114 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1115 macros.
1116 (CHAR_STRING): For 8-bit characters, call char_to_string.
1117 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1118 multibyte sequence is always valid.
1119 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1120 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1121 str_as_unibyte): Extern them.
1122 (BCOPY_SHORT): Fix a bug.
1123 (CHAR_LEN): This macro deleted. Callers changed to use
1124 CHAR_BYTES.
1125 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1126 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1127 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1128
bd4bde7f 1129 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1130 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1131 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1132 EMIT_BYTES): New macros.
1133 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1134 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1135 macros deleted.
1136 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1137 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1138 check the validity of multibyte sequence.
1139 (decode_coding_emacs_mule): New function.
1140 (encode_coding_emacs_mule): New macro.
1141 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1142 the source.
1143 (DECODE_ISO_CHARACTER): Just return a character code.
1144 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1145 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1146 EMIT_CHAR to produced decoded characters. Exit the loop only by
1147 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1148 block here.
1149 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1150 only position codes for an invalid character.
1151 (encode_designation_at_bol): Return new destination pointer. 5th
1152 arg DSTP is changed to DST.
1153 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1154 from the source by ONE_MORE_CHAR. Don't handle the case of last
1155 block here.
1156 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1157 macros deleted.
1158 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1159 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1160 TWO_MORE_BYTES to fetch a byte from the source.
1161 (encode_eol): Pay attention to coding->src_multibyte.
1162 (detect_coding, detect_eol): Preserve members src_multibyte and
1163 dst_multibyte.
1164 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1165 (encoding_buffer_size): Set magnification to 3 for all coding
1166 systems that require encoding.
1167 (ccl_coding_driver): For decoding, be sure that the result is
1168 valid multibyte sequence.
1169 (decode_coding): Initialize coding->errors and coding->result.
1170 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1171 and raw-text, always call decode_eol. Handle the case of last
1172 block here. If not coding->dst_multibyte, convert the resulting
1173 sequence to unibyte.
1174 (encode_coding): Initialize coding->errors and coding->result.
1175 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1176 and raw-text, always call encode_eol. Handle the case of last
1177 block here.
1178 (shrink_decoding_region, shrink_encoding_region): Detect cases
1179 that we can't skip data more rigidly.
1180 (code_convert_region): Setup src_multibyte and dst_multibyte
1181 members of coding. For decoding, if the buffer is multibyte,
1182 convert the source sequence to unibyte in advance. For encoding,
1183 if the buffer is multibyte, convert the resulting sequence to
1184 multibyte afterward.
1185 (run_pre_post_conversion_on_str): New function.
1186 (code_convert_string): Deleted and divided into the following two.
1187 (decode_coding_string, encode_coding_string): New functions.
1188 (code_convert_string1, code_convert_string_norecord): Call one of
1189 above.
1190 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1191 MAKE_NON_ASCII_CHAR.
1192 (Fset_terminal_coding_system_internal,
1193 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1194 and dst_multibyte members.
1195 (init_coding_once): Initialize iso_code_class with new enum
1196 ISO_control_0 and ISO_control_1.
1197
1198 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1199 devided into ISO_control_0 and ISO_control_1.
1200 (struct coding_system): New members src_multibyte, dst_multibyte,
1201 errors, and result. Delete member fake_multibyte.
1202 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1203 nonzero.
1204 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1205 nonzero.
1206
1207 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1208 (Faset): Likewise.
1209
1210 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1211 multibyte form.
1212 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1213 combining occurs.
1214 (Ftranspose_region): Delete codes for handling byte combining.
1215
1216 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1217 dst_multibyte members of coding. On handling REPLACE on unibyte
1218 buffer, convert the result of decode_coding to unibyte. On
1219 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1220 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1221 multibyteness of the source (buffer or string).
1222
1223 * fns.c (concat): Handle 8-bit characters correctly.
1224 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1225 unibyte in the result.
1226 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1227 valid multibyte form in the result.
1228 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1229 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1230 return -1, signal an error.
1231 (base64_encode_1): New arg MULTIBYTE. Get each character by
1232 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1233 character is found, return -1.
1234 (Fbase64_decode_region): Delete codes for handling byte-combining.
1235 Treat each decoded byte as a unibyte character.
1236 (Fbase64_decode_string): Return unibyte string.
1237 (Fcompare_strings, concat, string_byte_to_char): Use
1238 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1239 FETCH_STRING_CHAR_ADVANCE.
1240 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1241 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1242
1243 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1244 SPLIT_NON_ASCII_CHAR.
1245 (fontset_ref_via_base, fontset_set): Likewise
1246
1247 * insdel.c (adjust_markers_for_record_delete): Deleted.
1248 (adjust_markers_for_insert): Argument changed. Caller changed.
1249 (adjust_markers_for_replace): Likewise.
1250 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1251 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1252 (copy_text): Delete unused local varialbe c_save. For converting
1253 to multibyte, be sure to make all 8-bit characters in valid
1254 multibyte form.
1255 (count_size_as_multibyte): Handle 8-bit characters correctly.
1256 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1257 adjust_after_replace, replace_range, del_range_2)
1258 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1259 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1260 adjust_after_replace, replace_range, del_range_2) Delete codes for
1261 handling byte combining.
1262 (adjust_before_replace): Deleted.
427ec082 1263
c9671f81
KH
1264 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1265 SPLIT_NON_ASCII_CHAR.
1266 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1267 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1268 unconditionally.
1269 (Fkey_description): Likewise.
1270
1271 * lread.c (read1): On reading multibyte string, be sure to make
1272 all 8-bit chararacters in valid multibyte form.
1273 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1274
1275 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1276 unconditionally.
1277
1278 * process.c (Fstart_process): GCPRO current_dir before calling
1279 Ffind_operation_coding_system. Encode arguments here.
1280 (create_process): Don't encode arguments here. Setup
1281 src_multibyte and dst_multibyte members of struct coding.
1282 (read_process_output): Setup src_multibyte and dst_multibyte
1283 members of struct coding. If the output is to multibyte buffer,
1284 always decode the output of the process. Adjust the
1285 representation of 8-bit characters to the multibyteness of the
1286 output.
1287 (send_process): Setup coding->src_multibyte according to the
1288 multibyteness of the source.
1289
1290 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1291 unconditionally.
1292 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1293 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1294
1295 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1296 CHAR_LEN.
1297
1298 * w16select.c (Fw16_set_clipboard_data): Setup members
1299 src_multibyte and dst_multibyte of coding. Adjusted for the
1300 change for find_charset_in_str.
1301 (Fw16_get_clipboard_data): Likewise.
1302
1303 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1304 dst_multibyte of coding.
1305 (x_to_w32_font): Likewise.
1306
1307 * w32select.c (Fw32_set_clipboard_data): Setup members
1308 src_multibyte and dst_multibyte of coding. Adjusted for the
1309 change for find_charset_in_str.
1310 (Fw32_get_clipboard_data): Likewise.
1311
1312 * xdisp.c (get_next_display_element): Handle 8-bit characters
1313 correctly.
1314 (next_element_from_display_vector): Use CHAR_BYTES instead of
1315 CHAR_LEN.
1316 (disp_char_vector): Use SPLIT_CHAR instead of
1317 SPLIT_NON_ASCII_CHAR.
1318
1319 * xselect.c (selection_data_to_lisp_data): Setup members
1320 src_multibyte and dst_multibyte of coding. Adjusted for the
1321 change for find_charset_in_str.
1322 (lisp_data_to_selection_data): Likewise.
1323
5f64c9e0
GM
13242000-05-19 Gerd Moellmann <gerd@gnu.org>
1325
2b63d473
GM
1326 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1327 buffer.
1328
5f64c9e0
GM
1329 * dispextern.h (Vimage_types): Add extern declaration.
1330
1331 * xdisp.c (Vimage_types): Moved here from xfns.c.
1332 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1333
1334 * xfns.c (Vimages_types): Moved to xdisp.c.
1335 (syms_of_xfns): Move `image-types' to xdisp.c.
1336
1337 * w32fns.c (Vimage_types): Removed.
1338 (syms_of_w32fns): Remove `image-types'.
1339
813086ea
KH
13402000-05-18 Kenichi Handa <handa@etl.go.jp>
1341
1342 * fns.c (map_char_table): Pay attention to character number of
1343 charset. Check the validity of charset at the first level. For
1344 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1345 the default value.
1346
1347 * fontset.c: Include "buffer.h".
1348 (fs_load_font): If the face has fontset, record the face ID in
1349 that fontset.
1350 (Finternal_char_font): New function.
1351 (accumulate_font_info): New function.
1352 (Ffontset_info): Rewritten for the new fontset implementation.
1353 (syms_of_fontset): Register Vdefault_fontset in the first element
1354 of Vfontset_table. Include Vdefault_fontset in
1355 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1356 function.
1357
bdaebbf0
DL
13582000-05-16 Dave Love <fx@gnu.org>
1359
1360 * m/iris5d.h: Deleted -- unused.
1361
cb613bb8
GM
13622000-05-16 Gerd Moellmann <gerd@gnu.org>
1363
b15f3b77
GM
1364 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1365 `invalid' instead of `illegal'.
1366
1367 * indent.c (Fmove_to_column): When ending within a tab, insert
1368 spaces first so that markers at the end of the tab get adjusted.
1369
835c1b36
GM
1370 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1371 buffer list that wasn't selected in that frame.
1372
cb613bb8
GM
1373 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1374 is needed on mescaline, use a 2 char prefix, and call
1375 make_temp_name with second arg non-zero.
1376
1377 * fileio.c (make_temp_name): New function, extracted from
1378 Fmake_temp_name.
1379 (Fmake_temp_name): Use it.
1380
f685bea9
EZ
13812000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1382
1383 * window.c (coordinates_in_window): Subtract 1 when computing
1384 right_x.
1385
a1b8d58b
GM
13862000-05-15 Gerd Moellmann <gerd@gnu.org>
1387
1388 * Makefile.in (lisp): Add env.elc.
1389
1390 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1391
a265079f
GM
13922000-05-12 Gerd Moellmann <gerd@gnu.org>
1393
1394 * search.c (Freplace_match): Handle case of `\N' in the
1395 replacement when there's no group N.
1396
da4496b6
GM
13972000-05-11 Gerd Moellmann <gerd@gnu.org>
1398
0ace421a
GM
1399 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1400 of the message to message_dolog.
1401
1172eb8d
GM
1402 * keyboard.c (read_char): Don't clear current message for help
1403 events; let the code handling help events handle this. Change
1404 code detecting help events that should be ignored.
1405
da4496b6
GM
1406 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1407 we're interating over a string.
1408
0623e40f
DL
14092000-05-09 Dave Love <fx@gnu.org>
1410
1411 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1412 that offset before writing. Move gcpro region past call of
1413 Ffile_regular_p.
1414
bae2503b
DL
14152000-05-04 Dave Love <fx@gnu.org>
1416
1417 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1418
ec82fb2f
GM
14192000-05-04 Gerd Moellmann <gerd@gnu.org>
1420
1421 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1422 of inserted characters when BUF equals the current buffer, and PT
1423 is in front of or equal to FROM.
1424
cbf18892
GM
14252000-05-03 Gerd Moellmann <gerd@gnu.org>
1426
4ff40dd0
GM
1427 * xdisp.c (handle_single_display_prop): If display property value
1428 is invalid, or something not supported on the frame, restore
1429 iterator's position to what it was initially. Make sure to return
1430 0 for invalid and unsupported property values.
1431
cbf18892
GM
1432 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1433 that x_per_char_metric returns null.
1434
1b0672c3
GM
14352000-05-02 Gerd Moellmann <gerd@gnu.org>
1436
576da55d
GM
1437 * xterm.h (struct face): Add forward declaration.
1438 (struct image): Ditto.
1439 (image_ascent): Add prototype.
1440
1441 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1442 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1443 image_ascent instead of using IMAGE_ASCENT.
1444
1445 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1446 (IMAGE_ASCENT): Removed.
1447
1448 * xfns.c (Qcenter): New variable.
1449 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1450 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1451 (image_ascent): New function.
1452 (lookup_image): Recognize `:ascent center'.
1453 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1454 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1455 (xbm_load): Don't set image's ascent here.
1456 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1457 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1458 check ascent values here.
1459 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1460 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1461 (syms_of_xfns): Initialize Qcenter.
1462
1b0672c3
GM
1463 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1464 to the limits, increase the limits.
1465
0d7811ed
KH
14662000-05-01 Kenichi Handa <handa@etl.go.jp>
1467
1468 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1469 Check Vfont_encoding_alist against the full name of the opened
1470 font.
1471
a943a5ca
GM
14722000-04-28 Gerd Moellmann <gerd@gnu.org>
1473
1474 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1475 taller than the window.
1476
5dba1e29
KH
14772000-04-28 Kenichi Handa <handa@etl.go.jp>
1478
1479 * xfaces.c (realize_x_face): Fix the argument of the second
1480 xassert. BASE_FACE may not be a face for ASCII.
1481
353964e3
GM
14822000-04-27 Gerd Moellmann <gerd@gnu.org>
1483
c76e04a8
GM
1484 * print.c (print_object): Treat print-length < 0 as nil.
1485
1486 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1487
1488 * s/freebsd.h (TERMCAP_OBJ): Removed.
1489 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1490
1491 * lread.c (read1): Don't treat period followed by certain
1492 characters as symbol start.
1493
1494 * xfns.c (slurp_file): New function.
1495 (xbm_image_p): Handle case of in-memory XBM files.
1496 (xbm_scan): Rewritten to work on memory buffers instead of files.
1497 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1498 Work on memory buffers instead of files. If DATA is null test
1499 if buffer looks like an in-memory XBM file.
1500 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1501 memory buffers instead of files.
1502 (xbm_file_p): New function.
1503 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1504
353964e3
GM
1505 * lread.c (end_of_file_error): New function.
1506 (read1): Call it instead of signaling `end-of-file' directly.
1507
427ec082 1508 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1509 with Fprinc instead of Fprin1.
1510
24d744ac
KR
15112000-04-26 Ken Raeburn <raeburn@gnu.org>
1512
1513 * window.c (freeze_window_start): Check that minibuffer scroll
1514 window isn't nil before extracting the window structure pointer
1515 from it.
1516
1517 * undo.c (record_delete): If we hit the end of the undo list, stop
1518 picking elements apart.
1519
7464346d
GM
15202000-04-26 Gerd Moellmann <gerd@gnu.org>
1521
1522 * xdisp.c (display_line): If lines are continued, restore
1523 iterator's ascent/descent information to the values before the
1524 first glyph not fitting on the line.
1525
612839b6
GM
15262000-04-25 Gerd Moellmann <gerd@gnu.org>
1527
1528 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1529 positions in glyph matrix. Don't compute new window end
1530 positions.
1531
1532 * dispnew.c (increment_matrix_positions): Renamed from
1533 increment_glyph_matrix_buffer_positions.
1534 (increment_row_positions): Renamed from
1535 increment_glyph_row_buffer_positions.
1536
1537 * dispextern.h: Change names of renamed functions from dispnew.c
1538 in prototypes.
1539
cc181e95
GM
15402000-04-24 Gerd Moellmann <gerd@gnu.org>
1541
abfcc168
GM
1542 * fileio.c (Fdo_auto_save): Create directories for auto-save
1543 list file if necessary.
1544
cc181e95
GM
1545 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1546 from buffer or frame.
1547 (automatic_hscrolling_p): New variable.
1548 (hscroll_windows): Scroll windows horizontally only if automatic
1549 hscrolling is allowed.
1550 (syms_of_xdisp): New variable `automatic-hscrolling'.
1551
1552 * frame.h (struct frame): Add member extra_line_spacing.
1553
1554 * xfns.c (x_set_line_spacing): New function.
1555 (Fx_create_frame): Set line spacing from resources.
1556 (Qline_spacing): New variable.
1557 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1558
cc181e95
GM
1559 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1560
1561 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1562 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1563 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1564 extra_line_spacing from default value.
1565 (init_buffer_once): Initialize default value of extra_line_spacing.
1566
1567 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1568 and extra3.
1569
1570 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1571 prompt_width. Add extra line spacing.
1572
1573 * term.c (produce_glyphs): Remove reference to struct it's
1574 prompt_width.
1575
1576 * dispextern.h (struct it): Remove member prompt_width, add
1577 extra_line_spacing.
1578
58827478
GM
15792000-04-22 Gerd Moellmann <gerd@gnu.org>
1580
1581 * dispnew.c (update_frame_line): When writing a whole line, make
1582 sure cursor is in the right row afterwards, otherwise a use of
1583 capability `ch' in cmgoto might leave the cursor in the row below.
1584
25a87f42
GM
15852000-04-21 Gerd Moellmann <gerd@gnu.org>
1586
1587 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1588
1589 * keyboard.c (timer_check): Fix typo in comment.
1590
54edf5c2
KH
15912000-04-21 Kenichi Handa <handa@etl.go.jp>
1592
1593 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1594 name change: ch -> character.
1595
3a64eef5
GM
15962000-04-20 Gerd Moellmann <gerd@gnu.org>
1597
1598 * keyboard.c (echo_message_buffer): New variable.
1599 (echo_now): Set echo_message_buffer to the echo area buffer used
1600 to display the echo.
1601 (cancel_echoing): Reset echo_message_buffer to nil.
1602 (read_char): Code rewritten that handles canceling an echo or
1603 echoing a dash, respectively.
1604
1605 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1606 directory doesn't exist.
1607
6142fdcb
DL
16082000-04-19 Dave Love <fx@gnu.org>
1609
1610 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1611 (concat): Don't allow numeric args.
1612 (Fconcat): Doc change.
6142fdcb 1613
ac6b5352
SM
16142000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1615
1616 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1617 instead define end_match(1|2) more carefully.
1618 Use GET_CHAR_BEFORE_2 for `begline'.
1619
cb9215e4
GM
16202000-04-19 Gerd Moellmann <gerd@gnu.org>
1621
5e3dac3f
GM
1622 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1623 on 64-bit systems where NULL is defined as `0'.
1624
1625 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1626 the `variable argument list' to make it work on Alpha.
1627
cb9215e4
GM
1628 * m/alpha.h (_LP64) [!_LP64]: Define.
1629 (ORDINARY_LINK): Define for NetBSD.
1630
1631 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1632
f532dca0
DL
16332000-04-19 Dave Love <fx@gnu.org>
1634
c750667e
DL
1635 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1636 change.
1637
1638 * Makefile.in (LIBS): Don't use.
1639 (GETLOADAVG_OBJ): Define again.
1640 (otherobj): Add GETLOADAVG_OBJ.
1641
f532dca0
DL
1642 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1643
1c7e22fd
GM
16442000-04-18 Gerd Moellmann <gerd@gnu.org>
1645
f6d3257b
GM
1646 * lread.c (read_filtered_event): Cancel and start busy cursor.
1647
427ec082 1648 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1649 that the per-character metrics may be null.
1650
e10f64e7
GM
16512000-04-17 Gerd Moellmann <gerd@gnu.org>
1652
0daee095
GM
1653 * buffer.c (clone_per_buffer_values): New function.
1654 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1655 clone_per_buffer_values if CLONE is not nil.
1656
e10f64e7
GM
1657 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1658
38687d43
DL
16592000-04-16 Dave Love <fx@gnu.org>
1660
1661 * Makefile.in: Remove obsolete localcpp stuff.
1662 (GETLOADAVG_OBJ): Don't define.
1663 (obj): Move LIBOBJS...
1664 (otherobj): ... to here.
1665 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1666 whitespace-only lines after the continuation (Irix).
1667
c21c7262
GM
16682000-04-14 Gerd Moellmann <gerd@gnu.org>
1669
1670 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1671
1672 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1673
314767c0
DL
16742000-04-14 Dave Love <fx@gnu.org>
1675
1676 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1677 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1678 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1679 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1680 NLIST_STRUCT.
1681
1682 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1683 autoconfiscated HAVE_GETLOADAVG.
1684
1685 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1686 BROKEN_MKTIME.
1687
a2522dca
GM
16882000-04-14 Gerd Moellmann <gerd@gnu.org>
1689
1690 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1691 (fill_in_lock_file_name): Avoid existing files that aren't
1692 links.
1693
33744b5d
DL
16942000-04-14 Dave Love <fx@gnu.org>
1695
c21c7262 1696 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1697 (INTERVAL_SRC): Convert to make variable.
1698 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1699 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1700 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1701 add LIBOBJS.
1702 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1703 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1704 (shortlisp): Add facemenu, float-sup, frame.
1705 (SOME_MACHINE_LISP): Remove them from here.
1706 (LIBES): Change unused LDLIBS to autoconf LIBS.
1707
1708 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1709
9d3d5916
KH
17102000-04-14 Kenichi Handa <handa@etl.go.jp>
1711
1712 * composite.c (update_compositions): If FROM and TO are not in a
1713 valid range, do nothing.
1714
198e3c7a
GM
17152000-04-13 Gerd Moellmann <gerd@gnu.org>
1716
1717 * tparam.c (tparam1): Abort when encountering an unknown
1718 `%'-specifier.
1719
1720 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1721 terminfo.o.
1722
1723 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1724 as TERMCAP_OBJ.
1725
055a28c9
EZ
17262000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1727
1728 * fileio.c (a_write): Remove redundant semi-colons.
1729 (e_write): Return -1 if failed to write all the data.
1730 This fixes the changes made at 1999-12-15.
1731
f5c75033
DL
17322000-04-12 Dave Love <fx@gnu.org>
1733
1734 * fns.c (mapcar1): Test for null vals to support mapc.
1735 (Fmapc): New function.
1736
0c3cfc51
EZ
17372000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1738
1739 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1740 (IT_frame_up_to_date): Support the buffer local value of
1741 cursor-type, if defined.
1742
33465a31
DL
17432000-04-10 Dave Love <fx@gnu.org>
1744
1745 * editfns.c (preceding-char, following-char): Doc fix.
1746
6ed56568
KR
17472000-04-10 Ken Raeburn <raeburn@gnu.org>
1748
1749 * Makefile.in (temacs): Revert 2000-03-12 change.
1750
7cf80d4e
JR
17512000-04-10 Jason Rumney <jasonr@gnu.org>
1752
1753 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1754
34f3f342
GM
17552000-04-10 Gerd Moellmann <gerd@gnu.org>
1756
1a1b1895
GM
1757 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1758 area buffer, if it's not set up yet.
1759
34f3f342
GM
1760 * indent.c (compute_motion): Set immediate_quit.
1761
be0dbdab
GM
17622000-04-09 Gerd Moellmann <gerd@gnu.org>
1763
c45be9ac
GM
1764 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1765 variable.
1766 (realize_tty_face): Suppress boldness if colors are the inverse of
1767 the default colors, and tty_suppress_bold_inverse_default_colors_p
1768 is set.
1769 (Ftty_suppress_bold_inverse_default_colors): New function.
1770 (syms_of_xfaces): Defsubr it.
1771
be0dbdab
GM
1772 * buffer.c (Frestore_buffer_modified_p): New function.
1773 (syms_of_buffer): Defsubr it.
1774
e8413c3b
KR
17752000-04-08 Ken Raeburn <raeburn@gnu.org>
1776
87f67317
KR
1777 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1778 charset id (int) argument, not a charset (Lisp_Object).
1779
e8413c3b
KR
1780 * coding.h (code_convert_string): Declare.
1781 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1782 object, as the fourth argument to code_convert_string.
1783
1784 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1785 value.
1786 (Fset_fontset_font): Use EQ to compare lisp objects.
1787
7c752c80
KR
17882000-04-05 Ken Raeburn <raeburn@gnu.org>
1789
c0333abc
KR
1790 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1791 a pointer that looks like a lisp object.
1792 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1793 zero, instead see whether it's an integer object, since they can't
1794 have intervals.
1795 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1796
7c752c80
KR
1797 * dispnew.c (allocate_matrices_for_frame_redisplay,
1798 direct_output_forward_char): Use X(U)INT and make_number as needed
1799 to convert between (unsigned) int values and lisp integers.
1800 * keyboard.c (read_key_sequence): Likewise.
1801 * lread.c (substitute_object_recurse): Likewise.
1802 * fns.c (concat, hash_lookup, hash_remove): Likewise.
1803 * minibuf.c (do_completion, Fminibuffer_complete_word,
1804 Fminibuffer_completion_help): Likewise.
1805 * term.c (produce_special_glyphs): Likewise.
1806
1807 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
1808 * print.c (print_preprocess, print_object): Likewise.
1809
1810 * search.c (compile_pattern): Use NILP when checking for nil.
1811
74e49b38
KR
1812 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
1813 __OPTIMIZE__]: Provide a GNU C macro version that handles
1814 lisp-object unions.
1815 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
1816 field, to better cope with ENABLE_CHECKING and calls that modify a
1817 Lisp_Object using its old value.
1818
685e5ed2
GM
18192000-04-04 Gerd Moellmann <gerd@gnu.org>
1820
c407c570
GM
1821 * window.c (compare_window_configurations): Signal an error
1822 if parameters C1 or C2 aren't window configurations.
1823
685e5ed2
GM
1824 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
1825 AFTER_POTENTIAL_GC calls around calls to functions that can
1826 signal an error and thus invoke the debugger.
1827
587a49ab
GM
18282000-04-03 Gerd Moellmann <gerd@gnu.org>
1829
62f20204
GM
1830 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
1831 an error if decoding fails.
1832
587a49ab
GM
1833 * keyboard.c (lispy_mouse_names): Variable removed.
1834 (Vlispy_mouse_stem): New variable.
1835 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
1836 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
1837 for any mouse button number. Increase size of mouse_syms and
1838 button_down_location as needed. Call modify_event_symbol with
1839 different arguments.
1840 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
1841 Call modify_event_symbol with different arguments.
1842 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
1843 for any button number. Call modify_event_symbol with different
1844 arguments.
1845 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
1846 Accept a string for NAME_ALIST_OR_STEM.
1847
1848 * lisp.h (larger_vector): Add prototype.
1849
1850 * fns.c (larger_vector): Make externally visible.
1851
1852 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
1853
2d1675e4
SM
18542000-04-02 Stefan Monnier <monnier@cs.yale.edu>
1855
1856 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
1857 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
1858 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
1859 we are between str1 and str2.
1860 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
1861 (PATFETCH): Use `TRANSLATE'.
1862 (PATFETCH_RAW): Fetch multibyte char if applicable.
1863 (PATUNFETCH): Remove.
1864 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
1865 When writing a char, write it directly into the pattern buffer rather
1866 than going needlessly through a temp char-array.
1867 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
1868 multibyte magic and remove the useless `#ifdef emacs'.
1869 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
1870 buffer.
1871
1872 * regex.h (struct re_pattern_buffer): Make field `multibyte'
1873 conditional on `emacs'.
1874
1875 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
1876
cc2d8c6b
KR
18772000-04-01 Ken Raeburn <raeburn@gnu.org>
1878
1879 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
1880 non-union-type versions of XMARK and friends here, because XMARK
1881 and friends won't work on an integer field if NO_UNION_TYPE is not
1882 defined.
1883 (make_number): Define as a function if it's not defined as a
1884 macro.
1885
09654086
KR
1886 * composite.c (run_composite_function): Use NILP when checking for
1887 nil.
1888 (syms_of_composite): Delete local var NARGS, pass an int as first
1889 argument to Fmake_hash_table.
1890
2387b382
KR
1891 * editfns.c (text_property_stickiness): Use NILP to test
1892 Lisp_Object boolean value.
1893 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
1894 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
1895 problems reading from and changing the same lisp value in an
1896 XSETSTRING call.
1897
27660e89
GM
18982000-04-01 Gerd Moellmann <gerd@gnu.org>
1899
1900 * term.c (TN_no_color_video): New variable.
1901 (term_init): Intitialize TN_no_color_video.
1902 (enum no_color_bit): New enumeration.
1903 (MAY_USE_WITH_COLORS_P): New macro.
1904 (turn_on_face): Use it to determine if attributes may be used
1905 combined with colors.
1906
3578db3c
KR
19072000-04-01 Ken Raeburn <raeburn@gnu.org>
1908
1909 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
1910 with int lvalues via casts; instead, just yield lisp object
1911 lvalues.
1912 (enlarge_window): Variable sizep now points to Lisp_Object. Use
1913 proper accessor macros.
1914 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
1915 (grow_mini_window): Fix typo getting int value of root->height.
1916
6fc556fd
KR
1917 * xdisp.c (compute_string_pos): Fix order of arguments to
1918 string_pos_nchars_ahead.
1919 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
1920 count arg to variable-arg routines like Frun_hook_with_args and
1921 Fformat.
587a49ab
GM
1922 (back_to_previous_visible_line_start)
1923 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
1924 fixed-arg routines like Fget_char_property and Fmake_string.
1925 (reconsider_clip_changes): Use XINT when comparing integer lisp
1926 objects, or passing them as int arguments.
587a49ab
GM
1927 (mark_window_display_accurate, insert_left_trunc_glyphs)
1928 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
1929 storing or passing integer values as lisp objects.
1930 (set_cursor_from_row, highlight_trailing_whitespace): Use
1931 INTEGERP, not implicit test against zero, for glyph object.
1932 (try_window_id): Don't use make_number when we want an int value.
1933
1934 * xfaces.c (xlfd_symbolic_value): Make last argument a
1935 Lisp_Object, to be consistent with callers.
1936 (Fbitmap_spec_p): Use XINT to get numeric value of height.
1937 (lface_hash): Apply XFASTINT to lisp values before folding in.
1938
1939 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
1940 fill in window width and height. Pass an int, not a lisp object,
1941 as first arg to Finsert.
1942
6e7b2457
GM
19432000-04-01 Gerd Moellmann <gerd@gnu.org>
1944
610d841e
GM
1945 * xfaces.c (realize_basic_faces): Block input while realizing
1946 the faces.
1947
6e7b2457
GM
1948 * keyboard.c (lispy_mouse_names): Add additional mouse names.
1949
1950 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
1951
aa110c0c
GM
19522000-03-31 Gerd Moellmann <gerd@gnu.org>
1953
1954 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 1955 or ASCII, handle case that per-char metric is null.
aa110c0c 1956
8801a864
KR
19572000-03-30 Ken Raeburn <raeburn@gnu.org>
1958
c6129d7e
KR
1959 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
1960
8801a864
KR
1961 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
1962 XSUBR, XBUFFER): Verify correct object type before returning
1963 pointer, using eassert.
1964 * frame.h (XFRAME): Likewise.
1965
1966 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
1967 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
1968 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
1969 type.
1970 * data.c (set_internal): Likewise.
1971 * dispextern.h (WINDOW_WANTS_MODELINE_P,
1972 WINDOW_WANTS_HEADER_LINE_P): Likewise.
1973 * fileio.c (auto_save_1): Likewise.
1974 * insdel.c (check_markers): Likewise.
1975 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
1976 * undo.c (record_insert): Likewise.
1977 * vmsproc.c (child_sig): Likewise.
1978 * window.c (unshow_buffer, window_loop): Likewise.
1979 * xterm.c (x_erase_phys_cursor): Likewise.
1980
8e7af858
GM
19812000-03-30 Gerd Moellmann <gerd@gnu.org>
1982
1983 * xfns.c (free_image_cache): Free the cache structure itself
1984 last, after all its members have been freed.
1985
1986 * lisp.h (xstrdup): Add prototype.
1987
1988 * alloc.c (xstrdup): Moved here from xfaces.c.
1989 (allocating_for_lisp): Variable removed.
1990 (lisp_malloc): Block input around the calls to malloc and
1991 mem_insert.
1992
1993 * xfaces.c (realize_tty_face): Use find_symbol_value instead
1994 of Fsymbol_value.
1995 (xstrdup): Moved to alloc.c.
1996
e0b8c689
KR
19972000-03-29 Ken Raeburn <raeburn@gnu.org>
1998
b96f9fb7
KR
1999 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
2000
2001 * emacs.c (main): Fix sense of no-loadup test.
2002
e0b8c689
KR
2003 * config.in (ENABLE_CHECKING): Undef.
2004
2005 * lisp.h (struct interval): Replace "parent" field with a union of
2006 interval pointer and Lisp_Object; add new bitfield to use as
2007 discriminant. Change other flag fields to bitfields.
2008 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
2009 is defined and the supplied test fails, print a message and
2010 abort.
2011 (eassert): New macro. Use CHECK to provide an assert-like
2012 facility.
2013
2014 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
2015 pointers; abort if the value looks like a lisp object.
2016 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
2017 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
2018 Modify for new interval parent definition.
2019
2020 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
2021 UNMARK_BALANCE_INTERVALS): Update references that need an
2022 addressable lisp object in the interval structure.
2023 (die): New function.
2024 (suppress_checking): New variable.
2025
2026 * intervals.c (interval_start_pos): Just return 0 if there's no
2027 parent object.
2028
f83c5440
GM
20292000-03-29 Gerd Moellmann <gerd@gnu.org>
2030
2031 * lread.c (read1): Accept `.' (period) as symbol start like in CL
2032 and earlier Emacs versions.
2033
2034 * keyboard.c (Ftop_level): Cancel busy-cursor.
2035
2036 * eval.c (call_debugger): Cancel busy-cursor.
2037
fdce64ff
KH
20382000-03-29 Kenichi Handa <handa@etl.go.jp>
2039
2040 * search.c (Freplace_match): Adjust multibyteness of the current
2041 buffer and NEWTEXT. Free allocated memory before signaling an
2042 error.
2043
f6a3f532
SM
20442000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2045
2046 * regex.c (analyse_first): New function obtained by ripping out most
2047 of re_compile_fastmap and generalizing it a little bit so that it
2048 can also just return whether a given (sub)pattern can match the empty
2049 string or not.
2050 (regex_compile): Use `analyse_first' to decide whether the loop-check
2051 needs to be done or not for *, +, *? and +? (the loop check is costly
2052 for non-greedy repetition).
2053 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2054
e9b309ac
DL
20552000-03-28 Dave Love <fx@gnu.org>
2056
bb15bd9a
DL
2057 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2058 alpha.
2059
e9b309ac
DL
2060 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2061
ed0767d8
SM
20622000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2063
2064 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2065 an expression.
2066 (enum re_opcode_t): Update description of succeed_n.
2067 (PATFETCH): Always define.
2068 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2069 operators, char classes, shy-groups and intervals).
2070 Optimize special cases of intervals so as to only use succeed_n and
2071 jump_n when really needed.
2072 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2073 that we don't have to handle the special cases any more.
2074 Simplify on_failure_jump handling as well.
2075
e11e7e46
JR
20762000-03-28 Jason Rumney <jasonr@gnu.org>
2077
2078 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2079
88faab89
GM
20802000-03-27 Gerd Moellmann <gerd@gnu.org>
2081
182ff242
GM
2082 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2083
2084 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2085
182ff242
GM
2086 * alloc.c (mark_maybe_object): New function.
2087 (mark_memory): Use it.
2088 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2089 (setjmp_tested_p, longjmp_done): New variables.
2090 (test_setjmp): New function.
2091 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2092 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2093
c1005d06
GM
2094 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2095 to DEC_TEXT_POS and INC_TEXT_POS.
2096
2097 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2098 with parameter MULTIBYTE_P.
2099
427ec082 2100 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2101 MULTIBYTE_P.
2102
7439e5b9 2103 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2104 buffers because it looks for multibyte character byte sequences
2105 which don't exist in unibyte text.
7439e5b9 2106
d9c545da
GM
2107 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2108
11fd416e 2109 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2110 [DEBUG_X_COLORS]: New functions.
2111 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2112
2113 * xfns.c (x_set_cursor_color): Get color reference counts right.
2114
2115 * xterm.c (x_copy_color): New function.
2116 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2117
2118 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2119 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2120 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2121 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2122 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2123 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2124 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2125 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2126 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2127 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2128
11fd416e
GM
2129 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2130 names for handling per-buffer variables.
d9c545da
GM
2131
2132 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2133 instead of MAX_BUFFER_LOCAL_VARS.
2134 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2135
2136 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2137
88faab89
GM
2138 * xfns.c (x_specified_cursor_type): New function.
2139 (x_set_cursor_type): Use it.
2140
2141 * buffer.h (struct buffer): Add cursor_type.
2142
d80f42b7
SM
21432000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2144
2145 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2146 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2147 opcode.
d80f42b7
SM
2148 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2149 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2150 executing it as well as when popping it off the stack to find infinite
2151 loops in non-greedy repetition operators.
2152
89e80928
GM
21532000-03-26 Gerd Moellmann <gerd@gnu.org>
2154
3d4ff2dd
GM
2155 * doc.c (Qfunction_documentation): New variable.
2156 (syms_of_doc): Initialize Qfunction_documentation.
2157 (Fdocumentation): If FUNCTION is a symbol with non-nil
2158 `function-documentation' property, return a documentation derived
2159 from that.
2160
bd96bd79
GM
2161 * buffer.c (syms_of_buffer): Add default-cursor-type.
2162 (init_buffer_once): Don't let cursor_type have a local value
2163 in every buffer.
2164
19d1bc27
GM
2165 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2166 on buffer-local value of cursor_type.
2167 (x_draw_bar_cursor): Add parameter WIDTH.
2168
2169 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2170 (init_buffer_once): Set default cursor_type value to t.
2171 Mark cursor_type as local everywhere.
2172 (syms_of_buffer): New per-buffer variable cursor-type.
2173
89e80928
GM
2174 * buffer.h (struct buffer): Remove member local_var_flags,
2175 add local_flags.
2176 (MAX_BUFFER_LOCAL_VARS): New macro.
2177 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2178 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2179 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2180 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2181
2182 * print.c (print_object): Use new macros for per-buffer
2183 variables.
2184
2185 * category.c (Fset_category_table): Use new macros for per-buffer
2186 variables.
2187
2188 * buffer.c (buffer_permanent_local_flags): Make a char array.
2189 (max_buffer_local_idx): New variable.
2190 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2191 for new handling of per-buffer variables.
2192 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2193 (init_buffer_once): Initialize per-buffer vars differently.
2194 Set max_buffer_local_idx.
2195
2196 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2197 variables.
2198
2199 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2200 variables.
2201
2202 * data.c (do_symval_forwarding, store_symval_forwarding)
2203 (find_symbol_value, set_internal, default_value, Fset_default)
2204 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2205 per-buffer variables.
2206
2207 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2208
9a0dd3dc
GM
22092000-03-24 Gerd Moellmann <gerd@gnu.org>
2210
b68c375f
GM
2211 * xterm.c (x_term_init): Unblock input around call1 of
2212 Qvendor_specific_keysyms.
2213
9a0dd3dc
GM
2214 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2215 (find_defun_start): Consider an open parenthesis in column 0
2216 a defun start only if open_paren_in_column_0_is_defun_start is set.
2217 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2218
7973e637
SM
22192000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2220
2221 * eval.c (Fautoload): Add entry in load-history (if after dump).
2222 * lread.c (load-history): Update docstring.
2223
39210e90
GM
22242000-03-24 Gerd Moellmann <gerd@gnu.org>
2225
2226 * indent.c (Fvertical_motion): Always use the current buffer.
2227 Temporarily change the window's buffer, if necessary.
2228
72db3ab5
GM
22292000-03-23 Gerd Moellmann <gerd@gnu.org>
2230
2231 * xterm.c (fast_find_position): Make sure not to consider rows
2232 not visible in the window.
2233
990b2375
SM
22342000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2235
2236 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2237 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2238
ff4df011
JR
22392000-03-22 Jason Rumney <jasonr@gnu.org>
2240
2241 * w32menu.c (single_submenu): Set help string to NULL if none.
2242 (w32_menu_show): Set help string correctly.
2243 (add-menu-item): Set help string in MIIM_DATA for menu item.
2244 Load SetMenuItemInfoA explicitly.
2245 (w32_menu_display_help): New function.
427ec082 2246
ff4df011
JR
2247 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2248 (QCdata): Moved to xdisp.c.
2249
2250 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2251 (Vw32_charset_to_codepage_alist): Removed.
2252 (Vw32_charset_info_alist): New variable.
2253 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2254 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2255 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2256 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2257 with TODO comment.
2258 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2259 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2260 Define Vw32_charset_info_alist and w32_charset symbols.
2261
22622000-03-22 Jason Rumney <jasonr@gnu.org>
2263
2264 * makefile.nt (w32bdf.obj): Update dependencies.
2265
2266 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2267
2268 * w32fns.c: Include fontset.h after dispextern.h.
2269 (Fx_create_frame): Do not create fontset.
2270 (w32_load_system_font): Doc fix.
2271 (Fx_close_connection): Free full_name if it is not shared.
2272
2273 * w32term.c: Include fontset.h after dispextern.h.
2274 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2275 updated.
2276 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2277 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2278 (w32_font_is_double_byte): New function, needs body.
2279 (x_append_glyph): Set glyph->glyph_not_available_p.
2280 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2281 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2282 character, convert it to a unibyte character.
2283 (struct glyph_string): Delete member `charset'.
2284 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2285 calculating it is found.
2286 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2287 the case that per char metric is not available correctly.
2288 (x_fill_glyph_string): Handle the case that the specific glyph is
2289 not available correctly.
2290 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2291 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2292 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2293 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2294 fontset. Don't call FS_LOAD_FONT.
2295
439d5cb4
KR
22962000-03-22 Ken Raeburn <raeburn@gnu.org>
2297
2298 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2299 (INT_LISPLIKE): New macro.
2300 (NULL_INTERVAL_P): Use it.
2301 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2302 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2303 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2304
2305 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2306 explicit references to "parent" field of struct interval and
2307 associated unclean type conversions.
2308 * intervals.c (create_root_interval, root_interval, rotate_right,
2309 rotate_left, balance_possible_root_interval, split_interval_right,
2310 split_interval_left, interval_start_pos, find_interval,
2311 next_interval, previous_interval, update_interval,
2312 adjust_intervals_for_insertion, delete_node, delete_interval,
2313 adjust_intervals_for_deletion, merge_interval_right,
2314 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2315 copy_intervals_to_string): Likewise.
2316 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2317 Likewise.
2318 * syntax.c (update_syntax_table): Likewise.
2319
2320 * intervals.c (reproduce_tree_obj): New function, like
2321 reproduce_tree but takes a Lisp_Object for the parent. Declare
2322 with prototype.
2323 (graft_intervals_into_buffer): Use it when appropriate.
2324 (reproduce_tree): Declare with prototype.
2325 (balance_possible_root_interval): Check that the parent is a lisp
2326 object before trying to examine its type.
2327
ee1c5b21
GM
23282000-03-22 Gerd Moellmann <gerd@gnu.org>
2329
2330 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2331 as strings only if both are known to be strings.
2332
2333 * s/openbsd.h (LIBS_TERMCAP): Undef.
2334
1fb352e0
SM
23352000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2336
2337 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2338 definitions for non-Emacs compilation.
2339 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2340 outside of `#ifdef emacs'.
2341 (print_partial_compiled_pattern): Update.
2342 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2343 (re_compile_fastmap): Merge handling of charset and charset_not (for
2344 emacs and non-emacs compilation as well).
2345 Similarly for (not)categoryspec and (not)syntaxspec.
2346 Don't use the fastmap when reaching `anychar' since the added
2347 complexity is not justified.
2348 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2349 and (not)syntaxspec. Merge (not)categoryspec.
2350
fdaa1f77
KH
23512000-03-22 Kenichi Handa <handa@etl.go.jp>
2352
ff1a0d8e
KH
2353 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2354 FACE_FOR_CHAR): Define them differently for the configuration of
2355 --without-x.
fdaa1f77 2356
d152fb46
DL
23572000-03-21 Dave Love <fx@gnu.org>
2358
2359 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2360 doc string.
2361
d2cafc8c
GM
23622000-03-21 Gerd Moellmann <gerd@gnu.org>
2363
2364 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2365 (lface_fully_specified_p): Don't check contents of
2366 LFACE_FONT_INDEX because that attribute is optional.
2367 (realize_x_face): Remove now unwarranted xassert.
2368
9111d4b5
KH
23692000-03-21 Kenichi HANDA <handa@etl.go.jp>
2370
2371 The following changes are to make font selection based on
2372 characters, not charset. In addition, they recover fontset
2373 facilities while utilizing the new font selection mechanism.
2374
6c4bfdc0
KH
2375 * Makefile.in (fontset.o): Depend on dispextern.h.
2376
2377 * alloc.c (mark_face_cache): Don't mark face->registry.
2378
9111d4b5
KH
2379 * dispextern.h (struct glyph): New member glyph_not_available_p.
2380 Use 22 bits for face_id.
2381 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2382 (struct face): Delete member registry, new member ascii_face.
2383 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2384 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2385 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2386 (struct it): Delete member charset, new member
2387 glyph_not_available_p.
2388
2389 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2390 (struct fontset_info, struct fontset_data): Structs removed.
2391 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2392 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2393 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2394 (fs_free_face_fontset, fontset_font_pattern,
2395 face_suitable_for_char_p, face_for_char,
2396 make_fontset_for_ascii_face): Extern them.
2397 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2398 (FS_LOAD_FACE_FONT): New macro.
2399
2400 * fontset.c: All codes rewritten or adjusted for the change of
2401 fontset implementation. Now fontset is represented by char table.
2402 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2403 removed.
2404 (my_strcasecmp): Function removed.
2405 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2406 variables.
2407 (AREF, ASIZE): New macros.
2408 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2409 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2410 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2411 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2412 fontset_id_valid_p, font_family_registry, fontset_name,
2413 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2414 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2415 New functions.
2416 (fs_load_font): New arg FACE. Caller changed.
2417 (fs_query_fontset): Argument changed. Caller changed.
2418 (Fquery_fontset): call fs_query_fontset.
2419 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2420 Functions removed.
2421 (clear_fontset_elements, check_registry_encoding,
2422 check_fontset_name): New functions.
2423 (syms_of_fontset): Set char-table-extra-slots property of fontset
2424 to 3. Staticpro and initialize Vfontset_table and
2425 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2426
2427 * frame.h (struct frame): Member `fontset_data' removed.
2428 (FRAME_FONTSET_DATA): Macro removed.
2429
2430 * frame.c (make_frame): Don't allocate f->fontset_data.
2431 (Fdelete_frame): Don't free f->fontset_data.
2432
6c4bfdc0
KH
2433 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2434
9111d4b5
KH
2435 * xdisp.c (charset_at_position): Function removed.
2436 (init_iterator): Don't set member charset of struct `it'.
2437 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2438 next_element_from_display_vector, insert_left_trunc_glyphs):
2439 Likewise.
2440 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2441 FACE_FOR_CHARSET.
2442 (get_next_display_element, append_space,
2443 extend_face_to_end_of_line): Likewise.
2444
2445 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2446 Variables removed.
2447 (clear_font_table, frame_update_line_height, load_face_font):
2448 Adjusted for the change of fontset implementation.
2449 (load_face_fontset_font): Function removed.
2450 (pixel_point_size): New function.
2451 (font_list): Argument type changed. Caller changed.
2452 (LFACE_FONT): New macro.
2453 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2454 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2455 Lisp_Object. Determine the font name by actually loading a font
2456 by the specified pattern. Set LFACE_FONT (lface) to the specified
2457 pattern. Even if a font is not found, don't try alternatives.
2458 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2459 (set_font_frame_param): If `font' is specified in lface, use it.
2460 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2461 (lface_same_font_attributes_p): Likewise.
2462 (make_realized_face): Arguent changed. Caller changed. Set
2463 face->ascii_face to face itself.
2464 (free_realized_face): Free face->fontset if face is for ASCII.
2465 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2466 deduce_unibyte_registry, x_charset_registry): Functions removed.
2467 (free_realized_multibyte_face): New function.
2468 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2469 changed. Caller changed.
2470 (try_font_list): Argument type changed.
2471 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2472 (choose_face_font): Argument changed. Handle fontset properly.
2473 (choose_face_fontset_font): Function removed.
2474 (realize_default_face, realize_named_face): Don't remove the
2475 former face here.
2476 (realize_face): Argument changed. Caller changed. Remove face
2477 with the arg former_face_id in advance. Load font for the new
2478 face.
2479 (realize_x_face): Argument changed. Caller changed. For a
2480 multibyte character, share fontset with base_face. For a single
2481 byte character, make a new realized fontset. Don't load a font
2482 here.
2483 (realize_tty_face): Argument changed. Caller changed.
2484 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2485 (face_at_buffer_position): Don't check multibyte_p for returning
2486 DEFAULT_FACE_ID.
2487 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2488 FACE_SUITABLE_FOR_CHARSET_P.
2489 (syms_of_xfaces): Remove code for Qx_charset_registry and
2490 Vface_default_registry.
2491
6c4bfdc0
KH
2492 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2493 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2494 (x_per_char_metric): Don't try FONT->default_char. Even if
2495 pcm->width is zero, glyph bits may exist.
2496 (x_encode_char): Always initialize char2b->byte1.
2497 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2498 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2499 changed.
2500 (x_append_glyph): Set glyph->glyph_not_available_p.
2501 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2502 it->charset. Handle the case that per char metric is not
2503 available. If it->multibyte_p is zero and it->c is a multibyte
2504 character, convert it to a unibyte character.
2505 (struct glyph_string): Delete member `charset'.
2506 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2507 the case that per char metric is not available correctly.
2508 (x_fill_glyph_string): Handle the case that the specific glyph is
2509 not available correctly.
2510 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2511 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2512 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2513 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2514 fontset. Don't call FS_LOAD_FONT.
2515
2516 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2517 (x_create_tip_frame): Likewise.
2518 (Fx_close_connection): Free full_name of font_info.
2519
2520 * fns.c (optimize_sub_char_table): New function.
2521 (Foptimize_char_table): New function.
2522 (syms_of_fns): Defsubr Soptimize_char_table.
2523
b33dd3b0
GM
25242000-03-20 Gerd Moellmann <gerd@gnu.org>
2525
2526 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2527 only if buffer is displayed in some window.
2528
2529 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2530 (try_window_reusing_current_matrix): Don't call scroll run
2531 function if run's current and desired position are the same;
2532 this prevents cursor flickering.
2533
4e8a9132
SM
25342000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2535
2536 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2537
2538 * regex.c (RE_STRING_CHAR): New macro.
2539 (GET_CHAR_AFER_2): Remove.
2540 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2541 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2542 (print_partial_compiled_pattern, re_compile_fastmap)
2543 (re_match_2_internal): Remove on_failure_jump_exclusive.
2544 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2545 optimization only need to work for * (ie. can use of_keep_string_jump).
2546 Remove the special case for .*\n since it is now covered by the general
2547 optimization.
2548 (re_search_2): Don't bother with `room'.
2549 (skip_one_char): New function.
2550 (skip_noops): Simplify since `memory' is not needed any more.
2551 (mutually_exclusive_p): Restructure slightly to use `switch' and
2552 add handling for "all" remaining cases.
2553 (re_match_2_internal): Change on_failure_jump_smart to use
2554 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2555 rather than on_failure_jump_exclusive.
2556
2136fdd4
GM
25572000-03-19 Gerd Moellmann <gerd@gnu.org>
2558
2559 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2560 number of bits per RGB because it's everywhere used as the depth
2561 of the visual.
2562
2563 * term.c (calculate_costs): Remove code dealing with X frames.
2564
e53ae11c
RS
25652000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2566
2567 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2568
d7b511c4
GM
25692000-03-18 Gerd Moellmann <gerd@gnu.org>
2570
2571 * lread.c (read_integer): Unread the last char not consumed.
2572
16b5d424
GM
25732000-03-17 Gerd Moellmann <gerd@gnu.org>
2574
2575 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2576 which are in the process of being deleted.
16b5d424 2577
1fa28578
GM
25782000-03-16 Gerd Moellmann <gerd@gnu.org>
2579
83488cce
GM
2580 * Makefile.in (mostlyclean): Add `*.core'.
2581 (clean): Add `bootstrap-emacs'.
2582
1fa28578
GM
2583 * lread.c (read_integer): New function.
2584 (read1): Support read syntax #o, #x, #b, #r.
2585
99633e97
SM
25862000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2587
1fa28578
GM
2588 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2589 make sure POINTER_TO_OFFSET gives the same value before and after
2590 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2591 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2592 (debug): Now only active if > 0 rather than if != 0.
2593 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2594 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2595 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2596 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2597 (store_op1, store_op2, insert_op1, insert_op2)
2598 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2599 (group_in_compile_stack): Move to after its arg's types are
2600 declared and add a prototype.
99633e97 2601 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2602 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2603 wrapper.
99633e97 2604 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2605 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2606 indentation of the greedy-op and shy-group code.
99633e97
SM
2607 (at_(beg|end)line_loc_p): Fix argument's types.
2608 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2609 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2610 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2611 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2612 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2613 QUIT unconditionally.
99633e97 2614
699238d9
GM
26152000-03-15 Gerd Moellmann <gerd@gnu.org>
2616
2617 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2618 a sole completion.
2619
2620 * process.c (send_process): Add a hint that the function
2621 can call Lisp code to its comment.
2622
2623 * lread.c (load_dangerous_libraries): New variable.
2624 (Vbytecomp_version_regexp): New variable.
2625 (safe_to_load_p): New function.
2626 (Fload): Handle files not compiled with Emacs specially.
2627 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2628
34e23e5a
GM
26292000-03-14 Gerd Moellmann <gerd@gnu.org>
2630
9c763cca
GM
2631 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2632
2633 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2634 support functions only if HAVE_X11R6_XIM is defined.
2635 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2636
2637 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2638
2639 * xfns.c (X_I18N_INHIBITED): Don't define.
2640 (create_frame_xic): Remove conditional compilation on
2641 X_I18N_INHIBITED.
2642 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2643
2644 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2645 (HAVE_X11R6_XIM): Define.
2646
2647 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2648
34e23e5a
GM
2649 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2650 If set, call XSynchronize.
2651
66f0296e
SM
26522000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2653
34e23e5a
GM
2654 * regex.c: Declare a new type `re_char' used throughout the code
2655 for the string char type. It's `const unsigned char' to match the
2656 rest of Emacs. Consistently make sure all pointers to strings use
2657 it and make sure all pointers into the pattern use `unsigned
2658 char'.
66f0296e 2659 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2660 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2661 code duplication.
66f0296e
SM
2662
2663 * charset.h (GET_CHAR_AFTER_2): Remove.
2664 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2665
854a025c
KR
26662000-03-12 Ken Raeburn <raeburn@gnu.org>
2667
2668 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2669 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2670 of them try to use backquotes.
2671
b9d2c7e2
DL
26722000-03-12 Dave Love <fx@gnu.org>
2673
2674 * unexelf.c: Restore changes of 1999-10-19.
2675 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2676 fix its type and alignment; copy it from current process.
2677
5e5dff44
GM
26782000-03-12 Gerd Moellmann <gerd@gnu.org>
2679
9b2f3c38
GM
2680 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2681 has been found. Fix bug not computing timer's predecessor.
2682
427ec082 2683 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
2684 file name.
2685
e1cff360
GM
2686 * window.c (Fsave_window_excursion): Doc fix.
2687
5e5dff44
GM
2688 * xfns.c (x_defined_color): Rewritten to use
2689 x_allocate_nearest_color.
2690
e411ce4b
EZ
26912000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2692
2693 * msdos.c (vga_installed): New function, code moved from
2694 dos_set_window_size.
2695 (Qbar, Qcursor_type, outside_cursor): New variables.
2696 (syms_of_msdos): Intern and staticpro them.
2697 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2698 shape used outside Emacs when called for the first time.
2699 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2700 cursor shape used outside Emacs.
2701 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2702 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2703 type has changed.
2704 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2705 parameters specify the cursor. Make qreverse a global
2706 variable (renamed to Qreverse).
2707
80460654
GM
27082000-03-09 Gerd Moellmann <gerd@gnu.org>
2709
2710 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2711
95cd4c40
SM
27122000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2713
2714 This is a big redesign of failure-stack and register handling, prompted
2715 by bugs revealed when trying to add shy-groups. Overall, what happened
2716 is that loops are now structured a little differently, groups can be
2717 shy and the code is a little simpler.
2718
2719 * regex.h: Update the copyright.
2720 (RE_SHY_GROUPS): New value.
2721 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2722 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2723
80460654
GM
2724 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2725 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2726 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2727 for (start|stop)_memory since they now only take one argument (the
2728 second has becomes unnecessary).
2729 (print_partial_compiled_pattern): Adjust for changes in
2730 re_opcode_t.
2731 (print_compiled_pattern): Use %ld to printf long ints and flush to
2732 make debugging a little easier.
95cd4c40
SM
2733 (union fail_stack_elt): Make the integer unsigned.
2734 (struct fail_stack_type): Add a `frame' element.
2735 (INIT_FAIL_STACK): Init `frame' as well.
2736 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2737 (DEBUG_PUSH, DEBUG_POP): Remove.
2738 (NUM_REG_ITEMS): Remove.
2739 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2740 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2741 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2742 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2743 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2744 macros.
2745 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2746 address pushed is not the destination of the jump but the source
2747 of it instead.
95cd4c40
SM
2748 (NUM_FAILURE_ITEMS): Remove.
2749 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2750 registers before the actual failure point). Don't hardcode any
2751 meaning for str==NULL anymore.
95cd4c40 2752 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2753 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2754 Remove.
95cd4c40
SM
2755 (REG_UNSET_VALUE): Use NULL (why not?).
2756 (compile_range): Remove declaration since it doesn't exist.
2757 (struct compile_stack_elt_t): Remove inner_group_offset.
2758 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2759 (regex_grow_registers): Remove dead code.
2760 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2761 (regex_compile): Add shy-groups Change loops to use
2762 on_failure_jump_smart&jump instead of
2763 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2764 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2765 variable to me). Use `jump' instead of `jump_past_alt' and don't
2766 bother with push_dummy_failure in alternatives since it is now
2767 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2768 emacs' for (re)allocating the stack.
2769 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2770 from loop when bufp->can_be_null rather than jumping to `done'.
2771 Avoid jumping backwards so as to ensure termination. Use
2772 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2773 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2774 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2775 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2776 improve mutually_exclusive_p to handle ".+\n".
2777 (lowest_active_reg, highest_active_reg,
2778 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2779 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2780 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2781 variables. Push register (in `start_memory') on the stack rather
2782 than storing it in old_reg(start|end). Remove the cycle detection
2783 from `stop_memory', replaced by the use of on_failure_jump_loop
2784 for greedy loops. Add code for the new on_failure_jump_<foo>.
2785 Remove ad-hoc code in `on_failure_jump' to push more registers in
2786 the case of a loop. Take out code from `maybe_pop_jump' into
2787 separate functions and adapt it to the semantics of
2788 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2789 and push_dummy_failure. Remove dummy_failure handling and
2790 handling of `failures to jump to on_failure_jump' (this last one
2791 was already dead code, it seems).
2792 (group_match_null_string_p, alt_match_null_string_p)
2793 (common_op_match_null_string_p): Remove.
95cd4c40 2794
7397acc4
DL
27952000-03-08 Dave Love <fx@gnu.org>
2796
2797 * config.in: Don't depend on __STDC__ for volatile.
2798 Add POINTER_TYPE, PTR, PROTOTYPES.
2799
2800 * hftctl.c, strftime.c: Use PROTOTYPES.
2801 * eval.c (find_handler_clause): Likewise.
2802
2803 * mem-limits.h: Use POINTER_TYPE.
2804
2805 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
2806 (memory_warnings): Declare using POINTER_TYPE.
2807
5e91ff9e
GM
28082000-03-08 Gerd Moellmann <gerd@gnu.org>
2809
feab4fba
GM
2810 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
2811
25edb08f
GM
2812 * xdisp.c (display_echo_area): Temporarily inhibit garbage
2813 collection.
2814
5e91ff9e
GM
2815 * xfns.c: Remove obsolete code in #if 0.
2816 (Fx_focus_frame): New function.
2817
a735b7e1
KH
28182000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2819
2820 * coding.c (coding_category_name): Add coding-category-utf-8,
2821 coding-category-utf-16-be, coding-category-utf-16-le.
2822 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
2823 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
2824 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
2825 (detect_coding_utf_8): New function.
2826 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
2827 UTF_16_LOW_SURROGATE_P): New macros.
2828 (detect_coding_utf_16): New function
2829 (detect_coding_mask): When priorities are specified, skip any
2830 categories that have `nil' coding-system. Fix bug of returning
2831 wrong mask when PRIORITIES is specified and detect_coding_XXX()
2832 returns a mask not set in PRIORITIES.
2833 (detect_eol_type_in_2_octet_form): New function.
2834 (detect_eol): selects detect_eol_type_XXX to call according to
2835 cooding->category_idx.
2836 (detect_coding_system): Remove `nil' coding-system in the result.
2837 (Fupdate_coding_systems_internal): Update all coding-categories.
2838
2839 * coding.h (CODING_CATEGORY_IDX_UTF_8,
2840 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
2841 macros.
2842 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
2843 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
2844 CODING_CATEGORY_IDX_UTF_16_LE.
2845 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
2846 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
2847 (CODING_CATEGORY_MASK_ANY): Include the above macros.
2848 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
2849
9994cc69
GM
28502000-03-07 Gerd Moellmann <gerd@gnu.org>
2851
e9b4e5ff
GM
2852 * doc.c (Fdocumentation_property): If value is not a string,
2853 and doesn't refer to etc/DOC, evaluate it to obtain a string.
2854
f7daf1e1
GM
2855 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
2856 close the display with XtCloseDisplay. This caused a bus error
2857 on OpenWindows.
2858
9994cc69
GM
2859 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
2860 complete but not unique.
2861
4336c705
GM
28622000-03-06 Gerd Moellmann <gerd@gnu.org>
2863
18bb0684
GM
2864 * process.c (send_process): Remove local variable `procname' that
2865 might become invalid when a GC happens. Instead, access the
2866 process name slot directly.
2867
4336c705
GM
2868 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
2869 orig_height if set.
2870
2871 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
2872 orig_height if set.
2873
515d0d0e
EZ
28742000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2875
2876 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
2877 glyph matrices have been freed.
2878
100b3cbb
GM
28792000-03-05 Gerd Moellmann <gerd@gnu.org>
2880
50df5e5a 2881 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 2882 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
2883
2884 * xfns.c (QCdata): Moved to xdisp.c.
2885
2886 * xdisp.c (QCdata): Moved here from xfns.c.
2887 (syms_of_xdisp): Initialize QCdata.
2888
2889 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
2890
2891 * window.c (coordinates_in_window): Use
2892 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
2893 FRAME_INTERNAL_BORDER_WIDTH.
2894
100b3cbb 2895 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 2896 it is obviously invalid.
100b3cbb
GM
2897
2898 * xterm.c (x_term_init): Create a colormap if not using the
2899 default visual.
2900
2901 * xterm.h (select_visual): Change prototype.
2902
2903 * xfns.c (select_visual): Rewritten. Recognize user-specified
2904 visual classes.
2905 (visual_classes): New variable.
2906
64d739c4
GM
29072000-03-04 Gerd Moellmann <gerd@gnu.org>
2908
2909 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
2910 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
2911 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
2912 (x_decode_color): Don't handle allocation of white and black
2913 specially.
2914 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
2915 XtNcolormap resources.
2916 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
2917 (Fx_create_frame): Initialize color members of x_output structure.
2918 (xpm_load): Pass colormap to XPM lib.
2919
2920 * xfaces.c (x_free_colors): Access colormap of frame using
2921 FRAME_X_COLORMAP. Be paranoid about freeing black and white
2922 when default colormap is used.
2923
2924 * xterm.c (x_term_init): Set Colormap member of x_display_info
2925 structure. Copy colormap if resource `privateColormap' is
2926 specified (PseudoColor only).
2927 (x_setup_relief_color): Access colormap of frame using
2928 FRAME_X_COLORMAP.
2929
2930 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
2931 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
2932
c3cee013
JR
29332000-03-04 Jason Rumney <jasonr@gnu.org>
2934
2935 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
2936 other non-platform-specific equivalents.
64d739c4 2937 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
2938 specific functions and macros as their w32 equivalents where
2939 non-platform-specifics are not available.
2940 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
2941 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
2942 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
2943 (frame_update_line_height): Use macros to access f->output_data.
2944 (defined_color): Remove FIXME comments; fixed.
2945 (x_face_list_fonts, prepare_face_for_display): Put X specifics
2946 into #ifdef blocks. Add WINDOWSNT blocks.
2947 (Fx_list_fonts): Use macros for accessing font data.
2948 (set_lface_from_font_name): Different default fonts for X and
2949 WINDOWSNT.
2950 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
2951 scalable for backward compatibility.
64d739c4 2952 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
2953 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
2954
64d739c4 2955 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
2956 syms_of_w32faces.
2957
2958 * makefile.nt (w32faces.obj): Remove.
2959 (xfaces.obj): Add.
2960
807cc41c
JR
29612000-03-03 Jason Rumney <jasonr@gnu.org>
2962
2963 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
2964 correct parameters.
2965
0007072a
KR
29662000-03-03 Ken Raeburn <raeburn@gnu.org>
2967
2968 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
2969 standard ELF definitions here if the system header does not.
2970
71a6ba55
GM
29712000-03-03 Gerd Moellmann <gerd@gnu.org>
2972
2973 * xterm.c (PER_CHAR_METRIC): Removed.
2974 (x_per_char_metric_1, x_default_char): New functions.
2975 (x_per_char_metric): If font's default char is invalid, return
2976 metrics of a suitably chosen usable default char.
2977 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
2978 char, replace occurrences of unprintable chars with a suitably
2979 chosen usable default char.
71a6ba55 2980
900fa1f1
GM
29812000-03-02 Gerd Moellmann <gerd@gnu.org>
2982
42f55fe0
GM
2983 * xterm.c (note_mouse_highlight): Return quickly if frame's
2984 glyph matrices have been freed.
2985
2986 * dispnew.c (free_glyphs): Block input while freeing matrices.
2987
900fa1f1
GM
2988 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
2989
2990 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
2991 x_free_colors.
2992
2993 * dispextern.h (x_free_colors): Add prototype.
2994
2995 * xfaces.c (x_free_colors): New function.
2996 (unload_color, free_face_colors): Use it.
2997
2f950292
EZ
29982000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2999
3000 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
3001
3002 * window.c [MSDOS]: Include msdos.h.
3003
54d04320
DL
30042000-03-02 Dave Love <fx@gnu.org>
3005
3006 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
3007
3008 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
3009 set C_OPTIMIZE_SWITCH for gcc.
3010
0ba93ac4
KH
30112000-03-02 Kenichi Handa <handa@etl.go.jp>
3012
3013 * coding.c (coding_save_composition): Be sure to allocate
3014 composition data area in coding even if there's no composition in
3015 the current run.
3016
a2bc11d4
JR
30172000-03-01 Jason Rumney <jasonr@gnu.org>
3018
3019 * w32term.c: Equivalent changes to those made to xterm.c on
3020 2000-02-25 and 2000-02-24.
3021
3022 * w32fns.c: Equivalent changes to those made to xfns.c on
3023 2000-02-25 and 2000-02-21.
3024
3025 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
3026 correct line-end convention is followed.
3027
3028 * w32menu.c [HAVE_BOXES]: Remove #undef.
3029 (single_keymap_panes): Remove code for simulating checkmarks.
3030 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
3031 Remove code for drawing simulated checkmarks.
3032 (w32_menu_show): make unibyte help string correctly.
3033 (add_menu_item): draw standard Windows checkmarks. Draw radio
3034 buttons as radio buttons if possible.
3035
72d19d75
GM
30362000-03-01 Gerd Moellmann <gerd@gnu.org>
3037
2df636f4
GM
3038 * sysdep.c (start_of_text): Don't define this function for NetBSD
3039 with ELF.
3040
427ec082 3041 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3042 Don't define.
3043 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3044 (LINKER): Don't undef if __NetBSD__ is defined.
3045
3046 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3047
3048 * fileio.c [__NetBSD__]: Define `unix'.
3049
72d19d75
GM
3050 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3051
ed4d0512
GM
30522000-02-29 Gerd Moellmann <gerd@gnu.org>
3053
50b1039f
GM
3054 * atimer.c (start_atimer): Don't abort when timers are stopped.
3055 (append_atimer_lists): New function.
3056 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3057 arbitrary lists of stopped and running atimers.
3058
ed4d0512
GM
3059 * atimer.c (cancel_atimer): Handle canceling an atimer when
3060 some timers are stopped.
3061
3062 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3063 after canceling it.
3064
3065 * fns.c (maybe_resize_hash_table): Handle case of new size
3066 coming out as being the same as old size.
3067
387023ee
JR
30682000-02-27 Jason Rumney <jasonr@gnu.org>
3069
3070 * makefile.nt: Add atimer.h to dependencies.
3071 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3072 * w32console.c: Only disable window system features for dispextern.h
3073 (initialize_w32_display): Build a display info for the console.
3074 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3075 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3076 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3077 as 2 button mice.
3078 * w32gui.h (struct W32FontStruct): Revert last change after change
3079 to xdisp.c.
3080 * w32menu.c (single_submenu): Set up help string.
3081 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3082 (w32_dialog_show): Set up help string.
3083 * w32term.c (w32_display_info_for_display): Remove unused function.
3084 (w32_draw_bitmap): Use pre-built bitmaps.
3085 (w32_initialize_display_info): New function to initialize parts of
3086 display info that are common to both GUI and console frames.
3087 (w32_term_init): Use w32_initialize_display_info. Do not set
3088 Vw32_num_mouse_buttons here, as it is not called for console
3089 frames. Build bitmaps for indicating truncated lines etc.
3090 (x_delete_display): Destroy pre-built bitmaps.
3091 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3092 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3093
4516715a
DL
30942000-02-27 Dave Love <fx@gnu.org>
3095
3096 * lisp.h: Add a bunch of prototypes.
3097
171ca836
KH
30982000-02-26 Kenichi Handa <handa@etl.go.jp>
3099
3100 * keyboard.c (read_char): Set `usec' correctly.
3101
4013921d
KH
31022000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3103
3104 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3105 `lambda', set reg[RRR] to the map index.
3106 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3107 reg[RRR] to 0. Otherwise, set it to -1.
3108
9244a058
GM
31092000-02-25 Gerd Moellmann <gerd@gnu.org>
3110
2df636f4 3111 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3112
f43d79c1 31132000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3114
f43d79c1
GM
3115 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3116 and contains a `:', prepend `/:'.
3117
3118 * window.c (select_window_1): If selected_window is nil,
3119 don't "swap out" the buffer's point.
3120 (Fset_window_configuration): Set selected_window to nil
3121 before calling Fselect_window.
3122 (unshow_buffer): Don't set point in buffer from window's point
3123 if another more recently selected window also shows the buffer.
3124
bed0c171
GM
31252000-02-25 Gerd Moellmann <gerd@gnu.org>
3126
449c3c52
GM
3127 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3128
f5b58615
GM
3129 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3130 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3131 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3132 variables.
3133 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3134 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3135 (hide_busy_cursor): New functions.
3136 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3137
3138 * minibuf.c (read_minibuf): Cancel busy-cursor.
3139
3140 * keyboard.c (command_loop_1): Call start_busy_cursor before
3141 Fcommand_execute and cancel_busy_cursor after it.
3142 (timer_check): Remove busy-cursor code.
3143 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3144 cursor timer.
3145
3146 * process.c (wait_reading_process_input): Remove busy-cursor code.
3147
3148 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3149 Fx_hide_busy_cursor.
3150
3151 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3152 Remove prototyoes.
3153 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3154
3155 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3156
3157 * xterm.c (XTread_socket): Remove busy-cursor code.
3158
4eb8436f
GM
3159 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3160 (build_frame_matrix_from_leaf_window): Put code handling
3161 glyph row's not being a slice of a frame row in #if 0.
3162 (sync_window_with_frame_matrix_rows): New function.
3163 (frame_row_to_window): New function.
3164 (mirror_line_dance): Handle copies between windows.
3165
3cb65b0e
GM
3166 * lread.c (Fload): Use `xfree' instead of `free'.
3167 (init_obarray): Use `xmalloc' instead of `malloc'.
3168
bed0c171
GM
3169 * window.c (Fset_window_buffer): Set WINDOW to the window
3170 after decoding.
2add4349
GM
3171 (coordinates_in_window): Take frame's internal border width
3172 into account.
bed0c171 3173
42088c12
GM
31742000-02-24 Gerd Moellmann <gerd@gnu.org>
3175
3176 * xterm.c (x_display_and_set_cursor): Display cursor of
3177 non-selected windows depending on the setting of
3178 cursor_in_non_selected_windows.
3179
3180 * xdisp.c (cursor_in_non_selected_windows): New variable.
3181 (syms_of_xdisp): DEFVAR_BOOL it.
3182
d1e103b2
GM
31832000-02-23 Gerd Moellmann <gerd@gnu.org>
3184
723e779c
GM
3185 * data.c (Fstring_to_number): If number is greater than what
3186 fits into an integer, return a float.
3187
d1e103b2
GM
3188 * eval.c (specbind): Remove references to
3189 keyword_symbols_constant_flag.
3190
3191 * data.c (keyword_symbols_constant_flag): Removed.
3192 (Fmakunbound, set_internal, syms_of_data): Remove references to
3193 keyword_symbols_constant_flag.
3194
3195 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3196
214f877f
KH
31972000-02-23 Kenichi Handa <handa@etl.go.jp>
3198
3199 * syntax.c (multibyte_syntax_as_symbol): New variable.
3200 (syms_of_syntax): Declare it as a Lisp variable.
3201 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3202 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3203 nonzero, treat all multibyte characters as symbol.
42088c12 3204 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3205 characters.
3206
130adcb7
EZ
32072000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3208
3cb65b0e 3209 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3210 a deleted frame.
3211
17cbbf95
GM
32122000-02-21 Gerd Moellmann <gerd@gnu.org>
3213
3214 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3215
3216 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3217 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3218
beb0bc36
DL
32192000-02-21 Dave Love <fx@gnu.org>
3220
3221 * frame.c (Vmouse_position_function): New variable.
3222 (Fmouse_position): Use it.
3223 (syms_of_frame): Install it.
3224
3225 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3226
1d92afcd
GM
32272000-02-20 Gerd Moellmann <gerd@gnu.org>
3228
3229 * fileio.c (Finsert_file_contents): Unbind the binding of
3230 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3231
3232 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3233 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3234 (specbind, unbind_to): Handle most common case of non-constant
3235 symbol with trivial value specially.
3236
3237 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3238
2d06696f
RS
32392000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3240
3241 * data.c (Fmake_variable_buffer_local): Doc fix.
3242 Init found_for_buffer to 0.
3243 (Fmake_variable_frame_local): If the variable has already
3244 been buffer-local, set the check_frame field.
3245
1d4311c3
EZ
32462000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3247
3248 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3249 produced for CODING_MODE_LAST_BLOCK requires.
3250
2dc95ddd
DL
32512000-02-18 Dave Love <fx@gnu.org>
3252
3253 * keyboard.c (echo_keystrokes): Remove declaration.
3254 (Vecho_keystrokes) New variable.
3255 (read_char, record_menu_key, read_key_sequence): Use it to allow
3256 use of float value.
3257 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3258
3259 * lread.c: Undef feature selection macros before defining.
3260
f0930f35
GM
32612000-02-18 Gerd Moellmann <gerd@gnu.org>
3262
3263 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3264 for symbols other than the symbol in question.
3265
e3d4de90
DL
32662000-02-17 Dave Love <fx@gnu.org>
3267
3268 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3269
0b378936
GM
32702000-02-17 Gerd Moellmann <gerd@gnu.org>
3271
d621caf7
GM
3272 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3273
0b378936
GM
3274 * alloc.c (enum mem_type): Compile unconditionally.
3275
3b451f74
EZ
32762000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3277
3278 * xfaces.c (tty_defined_color): Don't return faulire indication
3279 for unspecified-fg and unspecified-bg pseudo-colors.
3280
10689a01
GM
32812000-02-17 Gerd Moellmann <gerd@gnu.org>
3282
1216f5e4
GM
3283 * alloc.c (mark_object): Don't mark symbol names in pure space.
3284 (gc_sweep): Don't unmark symbol names in pure space.
3285
3286 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3287 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3288 [GC_MARK_STACK]: New defines.
427ec082 3289 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3290 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3291
3292 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3293
3294 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3295 allocate_buffer instead of xmalloc.
3296
3297 * alloc.c (toplevel): Include setjmp.h.
3298 (PURE_POINTER_P): New define.
3299 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3300 (Vdead) [GC_MARK_STACK]: New variable.
3301 (lisp_malloc): Add parameter TYPE, call mem_insert if
3302 GC_MARK_STACK is defined.
3303 (allocate_buffer): New function.
427ec082 3304 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3305 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3306 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3307 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3308 (MEM_NIL) [GC_MARK_STACK]: New define.
3309 (struct mem_node) [GC_MARK_STACK]: New structure.
3310 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3311 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3312 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3313 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3314 (mark_stack) [GC_MARK_STACK]: New functions.
3315 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3316 (clear_marks): Removed.
3317 (gc_sweep): Set free conses' car, free floats' type, free
3318 symbols' function to Vdead. Use lisp_free to free buffers.
3319 (init_alloc_once): Initialize Vdead.
3320 (survives_gc_p): Return non-zero for pure objects.
3321
3322 * alloc.c: Add comments throughout the file.
3323
2503c8b1
GM
3324 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3325 that unblocks alarms.
3326
8389e1e2
GM
3327 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3328 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3329 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3330
10689a01 3331 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3332
bfc17d18
KH
33332000-02-17 Kenichi Handa <handa@etl.go.jp>
3334
4a09dee0
KH
3335 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3336 avoid infinite error signaling. Allocate sufficient memory for
3337 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3338
2b927d02
SM
33392000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3340
3341 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3342 depends on the previous behavior.
3343
b49cb764
GM
33442000-02-16 Gerd Moellmann <gerd@gnu.org>
3345
3346 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3347
99e95407
GM
33482000-02-15 Gerd Moellmann <gerd@gnu.org>
3349
3350 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3351
3352 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3353 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3354 write(2).
3355
6ffd3cf7
RS
33562000-02-15 Richard M. Stallman <rms@gnu.org>
3357
3358 * data.c (set_internal): Don't make variable buffer-local
3359 if within a let-binding for the same buffer.
3360 (let_shadows_buffer_binding_p): New function.
3361
3362 * eval.c (specbind): For buffer-local value,
3363 record the current buffer also.
3364 (unbind_to): Cope with that change.
3365
cad53475
GM
33662000-02-15 Gerd Moellmann <gerd@gnu.org>
3367
3368 * window.c (Fsave_window_excursion): Doc fix.
3369
1aa963c8
SM
33702000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3371
3372 * syntax.c (back_comment): Make sure we only consider comment-starters
3373 of the relevant style and return -1 in case of a failure to find the
3374 beginning of the comment.
3375 (Fforward_comment): If back_comment fails, go back to the position just
3376 after the comment-end.
3377 (scan_lists): Add comment describing a very minor bug.
3378
b9b84fd3
SM
33792000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3380
3381 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3382 `completion-regexp-list' in the docstring.
3383
3a28db80
DL
33842000-02-14 Dave Love <fx@gnu.org>
3385
3386 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3387
fb4a568d
SM
33882000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3389
3390 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3391 to Emacs' syntax. Also fix the comment about set/not-set meanings
3392 since Emacs syntax is not the value 0 any more.
3393 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3394 since it's now part of RE_SYNTAX_EMACS.
3395
1063ebb5
DL
33962000-02-12 Dave Love <fx@gnu.org>
3397
3398 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3399 Alpha.
3400
fb07a302
GM
34012000-02-12 Gerd Moellmann <gerd@gnu.org>
3402
3403 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3404
aaf2320c
DL
34052000-02-12 Dave Love <fx@gnu.org>
3406
3407 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3408
3409 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3410 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3411 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3412
3413 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3414
3415 * s/nextstep.h: Don't define HAVE_ALLOCA.
3416
3417 * config.in: Add vfork bits.
3418
eedf8bde
GM
34192000-02-12 Gerd Moellmann <gerd@gnu.org>
3420
3421 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3422 unwind function to undo the effect of stopping atimers.
3423
3424 * keyboard.c (bind_polling_period): Stop all timers except
3425 poll_timer.
3426
3427 * atimer.c (stopped_atimers): New variable.
3428 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3429 New functions.
3430
3431 * atimer.h (stop_other_atimers, run_all_atimers)
3432 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3433
eedf8bde
GM
3434 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3435
8476c2f8
KR
34362000-02-11 Ken Raeburn <raeburn@gnu.org>
3437
3438 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3439 library may depend on jpeg.
3440 (atimer.o): Depends on atimer.c.
3441
0e85e4a3
KH
34422000-02-11 Kenichi Handa <handa@etl.go.jp>
3443
3444 * insdel.c (del_range_1): Call update_compositions.
3445 (del_range_both): Call update_compositions just once..
3446
97fa0cc8
DL
34472000-02-10 Dave Love <fx@gnu.org>
3448
3449 * xfns.c (create_frame_xic): Fix initialization of automatic
3450 aggregates for pcc.
3451
25566a3c
KH
34522000-02-09 Kenichi Handa <handa@etl.go.jp>
3453
3454 * ccl.c (CCL_MAKE_CHAR): New macro.
3455 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3456 registers by CCL_MAKE_CHAR before calling translate_char.
3457 <CCL_TranslateCharacterConstTbl> Likewise.
3458
69da54ba
DL
34592000-02-08 Dave Love <fx@gnu.org>
3460
3461 * lread.c (__EXTENSIONS__): Define.
3462
f7136ee8
GM
34632000-02-08 Gerd Moellmann <gerd@gnu.org>
3464
3465 * puresize.h (BASE_PURESIZE): Increase to 650000.
3466
7768790b
EZ
34672000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3468
3469 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3470 the help message.
3471
38fd211b
EZ
34722000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3473
3474 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3475 md, mh, mb, mr, and me to the fake termcap entry.
3476
66e4690f
KR
34772000-02-06 Ken Raeburn <raeburn@gnu.org>
3478
3479 * sound.c (sound_cleanup): Don't call device close routine if the
3480 function pointer is null.
3481
a75dfea0
AI
34822000-02-06 Andrew Innes <andrewi@gnu.org>
3483
3484 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3485 around image definitions and prototypes.
3486 (gamma_correct) [WINDOWSNT]: New prototype.
3487
3488 * w32term.c (x_make_frame_visible): Replace call to
3489 input_poll_signal with poll_for_input.
3490
3491 * window.c [WINDOWSNT]: Include w32term.h.
3492
3493 * xdisp.c [WINDOWSNT]: Include w32term.h.
3494
3495 * makefile.nt: Add dependencies on w32gui.h.
3496 (OBJ1): Include atimer.obj.
3497 ($(BLD)\atimer.obj): New dependency rule.
3498
3499 * w32.c (sigmask): New function (does nothing).
3500 (sigunblock): Ditto.
3501
3502 * frame.c [WINDOWSNT]: Include w32term.h.
3503
3504 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3505
3506 * lread.c (syms_of_lread): Fix literal newlines.
3507
3508 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3509 the string constant limit (2048 bytes) in MSVC.
3510 (main): Ditto.
3511
59ddecde
GM
35122000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3513
3514 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3515 area.
3516 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3517 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3518 dispatch the event.
3519
07590973
DL
35202000-02-04 Dave Love <fx@gnu.org>
3521
3522 * fileio.c: Remove some unused vars.
3523 (_GNU_SOURCE): Define (for euidaccess).
3524
3525 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3526
3527 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3528 gcpro1, gcpro2.
3529 (read_minibuf): Deal with allow_props correctly.
3530
649351f9
EZ
35312000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3532
3533 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3534
66e4690f 35352000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3536
3537 * search.c (compile_pattern): If a cache entry has a nil regexp,
3538 fill in that entry instead of clobbering a previously cached
3539 string regexp.
3540
66e4690f 35412000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3542
3543 * puresize.h (BASE_PURESIZE): Increase to 610000.
3544
d240a249
GM
35452000-02-02 Gerd Moellmann <gerd@gnu.org>
3546
3547 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3548 can GC.
3549
ca91fb26
KH
35502000-02-02 Kenichi Handa <handa@etl.go.jp>
3551
25660570
KH
3552 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3553 instead of incrementing ic directly.
3554 <CCL_WriteExprConst> Likewise.
3555 <ccl_set_expr>: Set ic to jump_address.
3556
ca91fb26
KH
3557 * fileio.c (e_write): Fix the handling of
3558 CODING_FINISH_INSUFFICIENT_SRC.
3559
2ede9689
DL
35602000-02-01 Dave Love <fx@gnu.org>
3561
3562 * editfns.c (Fpropertize): Doc fix.
3563
3564 * process.c (Fstart_process): Doc fix.
3565
3566 * eval.c: Fix various doc strings not to duplicate information
3567 from help-manyarg-func-alist.
3568
3569 * window.c (Fset_window_margins): Don't make interactive. Doc
3570 fix.
3571
3572 * doc.c (Vhelp_manyarg_func_alist): New variable.
3573 (Fdocumentation): Use it.
3574 (syms_of_doc): Define it.
3575
b6680a0e
GM
35762000-01-31 Gerd Moellmann <gerd@gnu.org>
3577
2cb750ba
GM
3578 * xterm.c (xim_open_dpy): Remove unused local variable.
3579
74e9213b
GM
3580 * emacs.c (USAGE): Use term `display options' instead of `X
3581 options'.
3582
3583 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3584 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3585
b6680a0e
GM
3586 * fns.c (sweep_weak_table): New function.
3587 (sweep_weak_hash_tables): Use it. Keep on marking until there
3588 is no more change.
3589
994c5afe
GM
35902000-01-30 Gerd Moellmann <gerd@gnu.org>
3591
3592 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3593 that XTread_socket does not crash by trying to call XNoOp on a
3594 closed display.
427ec082 3595
f00276e3
JR
35962000-01-30 Jason Rumney <jasonr@gnu.org>
3597
3598 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3599 Change selected_frame to SELECTED_FRAME ().
3600 (w32_console_mouse_position): Remove #ifndef MULE from around
3601 `insist' parameter.
3602
3603 * makefile.nt: Remove dosfns.obj.
3604
3605 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3606
3607 * w32fns.c (w32_defined_color): Check for valid frame before
3608 applying gamma correction. Eliminate dependency on frame elsewhere.
3609 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3610 (w32_to_x_font): Use resx and resy not height_in and width_in.
3611 (x_to_w32_font): Doc fix.
3612 (xlfd_strip_height): New function to strip and return font height.
3613 (w32_font_match): Compare height separately from rest of xlfd
3614 spec, using xlfd_strip_height.
3615
3616 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3617 width_in. Use w32_defined_color in place of defined_color.
3618
3619 * w32faces.c: Merge more of DOS and X specifics in preparation for
3620 merge with xfaces.c.
3621 (defined_color): Remove FIXME comment.
3622 (tty_color_name): Provide w32-specific function.
3623 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3624
3625 * w32console.c (turn_on_face, turn_off_face): Removed.
3626 (w32_face_attributes): New function.
3627 (Global_variables): Reduce scope where possible.
3628 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3629 fill attribute.
3630 (hl_mode): Don't modify text attributes.
3631 (write_glyphs): Don't do anything if len <= 0. Use
3632 w32_face_attributes to get attributes for drawing. Write
3633 terminating codes using char_attr_normal.
3634 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3635 (update_begin, update_end): Likewise.
3636 (vga_stdcolor_name): New function.
3637 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3638 (Fset_screen_color): Remove char_attr_reverse.
3639
b08e8bb2
GM
36402000-01-29 Gerd Moellmann <gerd@gnu.org>
3641
3642 * xfns.c (xic_set_preeditarea): Take window parameter and
3643 window-relative pixel-positions.
3644
3645 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3646 is its frame's selected window.
3647 (xim_instantiate_callback): Likewise.
3648
3649 * xfns.c (x_create_im): Removed.
3650 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3651 (supported_xim_styles): Renamed from supported_styles.
3652 (best_xim_style): Renamed from best_style.
3653 (create_frame_xic): Renamed from xic_create_frame.
3654 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3655
b08e8bb2
GM
36562000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3657
3658 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3659 our frames, call XFilterEvent with 2nd parameter `None'.
3660 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3661 returning XBufferOverflow.
3662 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3663 area.
3664 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3665 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3666 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3667 (xim_initialize, xim_close)
3668 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3669 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3670 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3671 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3672
3673 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3674 and `xim_styles'.
3675 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3676 `xic_style' and `xic_xfs'.
3677 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3678 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3679 (FRAME_XIM): Removed.
3680
3681 * xfns.c (supported_styles): New variable.
3682 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3683 (xic_create_xfontset, best_style, xic_create_frame)
3684 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3685 (xic_set_xfontset): New functions.
3686
142e109c
DL
36872000-01-28 Dave Love <fx@gnu.org>
3688
3689 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3690
3691 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3692
b02786f9
GM
36932000-01-28 Gerd Moellmann <gerd@gnu.org>
3694
d060bc9f
GM
3695 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3696 for *scratch* if it already existed.
3697
b02786f9
GM
3698 * emacs.c (USAGE): New macro.
3699 (main): Use it to display usage information.
3700
2c52d7e4
EZ
37012000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3702
3703 Support for the menu-help feature:
3704
3705 * msdos.h: Change prototypes of XMenuAddSelection and
3706 XMenuActivate.
3707
3708 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3709 part of the line to the termscript file.
3710 (IT_clear_to_end): Clear the entire line, not just its beginning.
3711 (menu_help_message, prev_menu_help_message): New variables.
3712 (IT_menu_make_room): Make room for the help_text member.
3713 (IT_menu_display): New argument disp_help; all callers changed.
3714 If disp_help is non-zero, store the help text of the active menu
3715 item in menu_help_message.
3716 (XMenuAddPane): Initialize the help_text member to NULL.
3717 (XMenuAddSelection): New argument help_text. Store it in the
3718 XMenu structure.
3719 (XMenuActivate): New argument help_callback. If the value of
3720 menu_help_message has changed since the last time, display the
3721 menu help message text while waiting for the mouse to move. Clear
3722 the echo area before exiting.
3723 (XMenuDestroy): Free the help_text member.
3724
ffe0bcd1
GM
37252000-01-27 Gerd Moellmann <gerd@gnu.org>
3726
3727 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3728 XMenuAddSelection. Pass help callback to XMenuActivate.
3729 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3730
50dbd23f
EZ
37312000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3732
3733 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3734 and EMACS_SET_USECS.
3735
f5941bf8
GM
37362000-01-26 Dave Love <fx@gnu.org>
3737
6c67ddee
DL
3738 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3739
f5941bf8
GM
3740 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3741 an error may be signalled.
3742
9e49c990
GM
37432000-01-26 Gerd Moellmann <gerd@gnu.org>
3744
fc3cb460
GM
3745 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3746 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3747
9e49c990
GM
3748 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3749
d0c037d8
GM
37502000-01-25 Gerd Moellmann <gerd@gnu.org>
3751
3752 * charset.c (Fstring): If there is a multibyte char among
3753 the args, always return a multibyte string.
3754
e12489f9
GM
37552000-01-25 Gerd Moellmann <gerd@gnu.org>
3756
3757 * sysdep.c (sys_select): Turn atimers off and on instead of
3758 recording and restoring old alarm handler
3759
3760 * process.c (toplevel): Include atimer.h.
3761 (create_process_1): Rewritten.
3762 (create_process): Use atimers instead of alarm.
3763 (wait_reading_process_input) [hpux]: Turn atimers off instead
3764 of turning off SIGALRM.
3765 (wait_reading_process_input): Turn off atimers instead off
3766 calling stop_polling.
3767
3768 * emacs.c (main): Call init_atimer.
3769
3770 * keyboard.c (toplevel): Include systime.h and atimer.h.
3771 (polling_for_input): Removed because unused.
3772 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3773 (poll_timer): New variable.
3774 (poll_for_input, poll_for_input_1): New functions.
3775 (start_polling, stop_polling): Rewritten.
3776
3777 * keyboard.h (polling_for_input): Removed.
427ec082 3778
e12489f9
GM
3779 * atimer.h, atimer.c: New files.
3780
3781 * Makefile.in (obj): Add atimer.o.
3782 (atimer.o): New target.
3783
3784 * blockinput.h (pending_atimers): Add extern declaration.
3785 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3786
3787 * lisp.h (popup_activated_flag): Add extern declaration.
3788
3789 * xmenu.c (popup_activated_flag): Make externally visible.
3790 (popup_activate_callback) [USE_MOTIF]: Increment
3791 popup_activated_flag.
3792 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3793
3794 * xterm.c (toplevel): Include atimer.h.
3795 (toolkit_scroll_bar_interaction): New variable.
3796 (Fxt_process_timeouts): Removed.
3797 (x_process_timeouts): New function.
3798 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
3799 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
3800 (x_make_frame_visible): Call poll_for_input_1 instead of
3801 input_poll_signal. Don't call alarm.
3802 (x_initialize): Install timer calling x_process_timeouts.
427ec082 3803
1e5279b9
DL
38042000-01-24 Dave Love <fx@gnu.org>
3805
6c67ddee 3806 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
3807 Don't use -cckr -- apparently not now necessary.
3808
edf6aeb8
EZ
38092000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3810
3811 * msdos.c (IT_menu_display): Truncate long menu lines at the right
3812 screen boundary.
3813
9badad41
JR
38142000-01-23 Jason Rumney <jasonr@gnu.org>
3815
3816 * w32fns.c (w32_defined_color): Apply gamma correction before
3817 trying to map to the palette.
3818 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
3819 to w32_clear_rect.
3820
3821 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
3822 here. Callers changed to always pass real device context.
3823 (w32_draw_bitmap): Likewise.
3824 (w32_get_glyph_overhangs): Likewise.
3825 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
3826 one.
3827 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
3828 pfnSetScrollInfo and SetScrollRange.
3829 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
3830 back into MULE characters after decoding them.
3831 (x_get_glyph_face_and_encoding): Likewise.
3832 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
3833 GetCharABCWidthsW fails, since this is defined on Windows 9x.
3834 (x_produce_glyphs): Calculate per char metrics for a character
3835 that we know exists in default font when font_not_found_p is true.
3836
63bd786b
JR
38372000-01-22 Jason Rumney <jasonr@gnu.org>
3838
3839 * makefile.nt (intervals.obj, composite.obj): New modules.
3840 (composite.h): Added as dependency where appropriate.
3841
3842 * w32gui.h (XGCValue): New struct for emulating X GCs.
3843
3844 * w32term.h (XCharStruct): New struct for emulating X.
3845
3846 * w32console.c (turn_on_face, turn_off_face): New functions.
3847 (change_line_highlight): New prototype for new redisplay.
3848 (write_glyphs): Support multibyte text. Support faces.
3849
3850 * w32faces.c: Complete rewrite for new redisplay based on new
3851 xfaces.c.
3852
3853 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
3854 throughout. struct frame * in place of FRAME_PTR.
3855 Skeleton support for images, toolbars, tooltips from xfns.c.
3856 (Fx_create_frame): Use system default for default scroll bar
3857 width.
3858 (w32_get_arg): Renamed from x_get_arg.
3859 (Fx_file_dialog): New function.
3860 (w32_list_fonts): Check cache before asking system.
3861 (Vw32_enable_synthesized_fonts): New variable.
3862 (Vw32_enable_italics): Obsolete, removed.
3863
3864 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3865 Use SELECTED_FRAME macro.
3866
3867 * w32menu.c: Add skeleton support for help strings on menus.
3868 (add_menu_item): Native checkbox and radio support added, but not
3869 yet enabled due to bugs.
3870 (push_menu_item): Add parameters type, selection and help.
3871 Callers updated.
3872 Formatting changes to reduce unnecessary diffs with xmenu.c.
3873
3874 * w32select.c (Fw32_set_clipboard_data): Update call to
3875 find_charset_in_str.
3876
3877 * w32term.c: Complete rewrite for new redisplay based on new
3878 xterm.c with necessary sections merged back in from old w32term.c.
3879
6ffd3cf7 38802000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
3881
3882 * data.c (set_internal): Further fix in same criterion.
3883
6ffd3cf7 38842000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
3885
3886 * data.c (set_internal): Fix the criteria for whether
3887 to swap out the old cached binding.
3888
60af03f1
DL
38892000-01-19 Dave Love <fx@gnu.org>
3890
3891 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
3892
f9be074f
KH
38932000-01-18 Kenichi Handa <handa@etl.go.jp>
3894
3895 * regex.c (re_compile_fastmap): While checking a range table for
3896 `charset', skip flag bits for a character class correctly.
3897
52b8dbf9
GM
38982000-01-17 Gerd Moellmann <gerd@gnu.org>
3899
d36100c9
GM
3900 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
3901
52b8dbf9
GM
3902 * xfns.c (x_window): Call lw_create_widget with new parameter
3903 list.
3904
3905 * widget.c (EmacsFrameSetCharSize): Change size of children first
3906 because of problems with main window geometry management under
3907 Lesstif.
3908
3909 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
3910 MENU_ITEMS_ITEM_.*.
3911 (MENU_ITEMS_ITEM_HELP): New enumerator.
3912 (push_menu_item): Add parameter HELP. Record help in menu_items.
3913 (single_menu_item, single_submenu, list_of_items): Call
3914 push_menu_item with new parameter.
3915 (single_submenu): Set help string in widget value.
3916 (menu_highlight_callback): New function.
3917 (set_frame_menubar): Call lw_create_widget with new
3918 parameter list.
3919 (xmenu_show, xdialog_show): Ditto.
3920
3139018f
GM
39212000-01-13 Gerd Moellmann <gerd@gnu.org>
3922
3923 * sound.c (Fplay_sound): Improve doc string.
3924
83c8f461
RS
39252000-01-11 Richard M. Stallman <rms@gnu.org>
3926
3927 * lisp.h (set_internal): Enter the new arg.
3928
3929 * eval.c (specbind): Record buffer-local variables specially,
3930 indicating which buffer's binding was saved.
3931 (unbind_to): Restore buffer-local variables specially
3932 in the proper buffer.
3933
3934 * data.c (set_internal): New arg BUF.
427ec082 3935
83c8f461
RS
3936 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
3937 * data.c (Fset): Pass new arg to set_internal.
3938 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 3939
1fab1775
GM
39402000-01-11 Gerd Moellmann <gerd@gnu.org>
3941
3942 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
3943 xprintsym.
3944
83c8f461 39452000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
3946
3947 * minibuf.c (Ftry_completion): Doc fix.
3948
7a85e4df
GM
39492000-01-11 Gerd Moellmann <gerd@gnu.org>
3950
3951 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
3952 vector, too.
3953
a970dae4
AS
39542000-01-11 Andreas Schwab <schwab@suse.de>
3955
3956 * coding.c (code_convert_region): Initialize total_skip.
3957
c65d14ee
DL
39582000-01-08 Dave Love <fx@gnu.org>
3959
3960 * eval.c (Fuser_variable_p): Check customizability too.
3961
834938d2
GM
39622000-01-07 Gerd Moellmann <gerd@gnu.org>
3963
3964 * minibuf.c (Fcompleting_read): Doc fix.
3965
e0303cd6
GM
39662000-01-05 Gerd Moellmann <gerd@gnu.org>
3967
8a26744b
GM
3968 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
3969 -L /usr/local/lib.
3970
e0303cd6
GM
3971 * xfns.c (x_create_im): New function to set IM and IC of a frame.
3972 Check that input style is supported before trying to create an
3973 IC for it.
3974 (x_window): Call x_create_im.
427ec082 3975
2e471eb5
GM
39762000-01-04 Gerd Moellmann <gerd@gnu.org>
3977
560a7bd2
GM
3978 * xfns.c (current_gif_memory_src): New variable.
3979 (gif_load): Record the address of the current memory source
3980 in current_gif_memory_src.
3981 (gif_read_from_memory): Use current_gif_memory_src.
3982
f9ee84a3
GM
3983 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
3984 macros statement form.
3985
d1299cde
GM
3986 * sound.c (struct sound): Renamed from struct sound_file.
3987 (struct sound): Add members `data' and `header_size'.
3988 (enum sound_attr): Add SOUND_DATA.
3989 (current_sound, current_sound_device): Variables renamed from
3990 sound_file and sound_device.
3991 (parse_sound): Parse :data.
3992 (parse_sound): Handle sound data in strings.
3993 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 3994 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
3995 needed header size.
3996 (wav_play, au_play): Play sounds from string data.
3997
2e471eb5
GM
3998 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
3999
4000 * lisp.h: Add prototype for allocate_string_data.
4001
4002 * alloc.c (Fgarbage_collect): Return number of live and free
4003 strings.
4004
4005 * alloc.c (mark_buffer): Remove code in #if 0.
4006 (gc_sweep): Ditto.
4007 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
4008 (strings_consed): New variable.
4009 (allocate_string): Set it.
4010 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
4011 (Fmemory_use_counts): Return strings_consed. Use Flist.
4012
4013 * alloc.c: General cleanup in comments etc. Remove conditional
4014 compilation for `standalone'.
4015
4016 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
4017
4018 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
4019 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
4020 (DONT_COPY_FLAG): Removed.
4021 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
4022 (struct sdata, struct sblock): New
4023 (struct string_block): Rewritten.
4024 (STRINGS_IN_STRING_BLOCK): New macro.
4025 (oldest_sblock, current_sblock, total_strings, total_free_strings)
4026 (large_sblocks, string_blocks, string_free_list): New variables.
4027 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
4028 (init_strings): Rewritten.
4029 (allocate_string, allocate_string_data, compact_small_strings)
4030 (free_large_strings, sweep_strings): New functions.
4031 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
4032 (struct string_block_head, current_string_block)
4033 (first_string_block, large_string_blocks, STRING_FULLSIZE)
4034 (STRING_PAD): Removed.
4035 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4036 (Fgarbage_collect): Don't set mark bit in large strings.
4037 (mark_object): Mark strings differently. Mark symbol names
4038 differently.
4039 (survives_gc_p): Test marked strings differently.
427ec082 4040 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4041 symbol names.
4042 (compact_strings): Removed.
4043
42608ba8
EZ
40442000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4045
4046 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4047 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4048
e0a09e1a
KH
40492000-01-04 Kenichi Handa <handa@etl.go.jp>
4050
dd9f0750 4051 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4052 in a non-empty buffer.
dd9f0750 4053
3c0f3b15 4054 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4055
44cd3ae5
GM
40562000-01-03 Gerd Moellmann <gerd@gnu.org>
4057
4058 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4059 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4060
4061 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4062
c182a70f
EZ
40632000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4064
4065 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4066 need to test for MSDOS frames.
4067
24480d5b
EZ
40682000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4069
4070 * dosfns.c (unspecified_colors): Remove.
4071 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4072 unspecified_bg.
4073 (msdos_stdcolor_name): Return strings for unspecified fore- and
4074 back-ground colors.
4075
4076 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4077 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4078 (tty_color_name): Return Lisp strings for unspecified fore- and
4079 back-ground colors.
4080 (Finternal_set_lisp_face_attribute): Remove the special treatment
4081 for Qunspecified_{f,b}g.
4082 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4083 string.
4084
047f434a
GM
40852000-01-03 Gerd Moellmann <gerd@gnu.org>
4086
4087 * xdisp.c (reseat_at_next_visible_line_start): Position before
4088 newline only if ending up on a newline.
4089 (next_element_from_ellipsis): Return success. Handle case of
4090 displaying no ellipsis. Fix case of ellipsis defined in display
4091 table.
4092 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4093 returns 0.
4094
d684c676
EZ
40952000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4096
4097 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4098 (Fcolor_supported_p): Renamed from face-color-supported-p.
4099
5fe1d139
EZ
41002000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4101
4102 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4103 list of colors renamed to tty-defined-color-alist.
4104 (tty_color_name): Pass the frame to tty-color-by-index.
4105 (realize_tty_face): tty-color-alist is now a function which
4106 accepts the frame as argument.
4107
4108 * term.c (Ftty_display_color_p): Accept an optional argument
4109 FRAME.
4110
816be8b8
EZ
41112000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4112
4113 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4114 encode_terminal_code.
4115
b635321e
EZ
41162000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4117
4118 * dispnew.c (mode_line_string): Support termcap frames as well.
4119
9b784e96
GM
41202000-01-01 Gerd Moellmann <gerd@gnu.org>
4121
27189709
GM
4122 * syntax.c (Fforward_word): Undo previous change.
4123
4124 * editfns.c (Fconstrain_to_field): Don't constrain if
4125 inhibit-field-text-motion is non-nil.
4126 (Fline_beginning_position): Undo previous change.
4127 (Fline_end_position): Ditto.
4128
4129 * syntax.c (Fforward_word): Notice field boundaries only if
4130 inhibit-field-text-motion is nil.
4131
4132 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4133
4134 * editfns.c (Vinhibit_field_text_motion): New variable.
4135 (inhibit-field-text-motion): New DEFVAR_LISP.
4136 (Fline_beginning_position, Fline_end_position): Notice field
4137 boundaries only if inhibit-field-text-motion is nil.
4138
45158a91
GM
4139 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4140 All calls adjusted.
4141 (x_build_heuristic_mask): Likewise.
4142 (xbm_load_image_from_file): Change error output.
4143 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4144 (gif_load, gs_load, x_kill_gs_process): Ditto.
4145
9b784e96
GM
4146 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4147 color indices when accessing raster pixels.
63cec32f
GM
4148 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4149 one of :file or :data.
4150 (enum pbm_keyword_index): Add PBM_DATA.
4151 (pbm_format): Add :data.
4152 (pbm_image_p): Allow either :file or :data.
4153 (pbm_read_file): New function.
4154 (pbm_scan_number): Rewritten to read from string.
4155 (pbm_load): Support :data.
9b784e96 4156
5ad6a5fb
GM
41571999-12-31 Gerd Moellmann <gerd@gnu.org>
4158
4159 * xfns.c: New image functions adapted to Emacs conventions.
4160 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4161 variable `file'.
4162
63448a4d
WP
41631999-12-31 William M. Perry <wmperry@aventail.com>
4164
4165 * xfns.c (jpeg_format): Added the :data keyword
4166 (jpeg_image_p): JPEG is valid with :file _or_ :data
4167 (jpeg_memory_src): Defined new JPEG image source to read from a
4168 memory buffer.
4169 (jpeg_load): Pay attention to the :data keyword if specified.
4170 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4171 found.
4172 (png_format): Added the :data keyword
4173 (png_image_p): PNG is valid with :file _or_ :data
4174 (png_read_from_memory): New PNG read function to read from a
4175 memory buffer.
4176 (png_load): Pay attention to the :data keyword if specified. Uses
4177 png_set_read_fn() instead of png_init_io() if specified.
4178 (tiff_format): Added the :data keyword for TIFF images.
4179 (tiff_image_p): TIFF is valid with :file _or_ :data
4180 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4181 from a memory buffer.
4182 (tiff_load): Pay attention to the :data keyword if specified.
4183 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4184 (gif_format): Added the :data keyword
4185 (gif_image_p): GIF is valid with :file _or_ :data
4186 (gif_read_from_memory): New GIF input function to read from a
4187 memory buffer.
c65d14ee 4188 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4189 instead of DGifOpenFileName() if specified.
4190
c880678e
GM
41911999-12-31 Gerd Moellmann <gerd@gnu.org>
4192
4193 * xdisp.c (next_element_from_buffer): Change assertion at the end
4194 because it doesn't hold when there's an overlay string at the end
4195 from which we deliver an image.
4196
8ccb9a54
EZ
41971999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4198
4199 * msdos.c (IT_update_begin): Don't dereference members of struct
4200 window for deleted windows.
4201
12ce2351
GM
42021999-12-30 Gerd Moellmann <gerd@gnu.org>
4203
a915c648
GM
4204 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4205 a hook, and the hook has a non-nil `no-self-insert' property, let
4206 the return value of the hook specify whether an expansion took
4207 place. If it returns nil, no expansion has been performed.
4208
12ce2351
GM
4209 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4210 differently.
4211
04ee4f45
EZ
42121999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4213
4214 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4215
7f4bc0c3
EZ
42161999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4217
4218 * dispnew.c (mode_line_string): Support MS-DOS frames.
4219
dac204bc
GM
42201999-12-29 Gerd Moellmann <gerd@gnu.org>
4221
4222 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4223
7b712ad8
KH
42241999-12-29 Kenichi Handa <handa@etl.go.jp>
4225
4226 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4227 to signal_after_change.
4228
adb9900f
EZ
42291999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4230
41ad069b
EZ
4231 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4232 dimensions changed, invalidate the mouse highlight info.
4233 (disable_mouse_highlight, help_echo, previous_help_echo): New
4234 variables.
4235 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4236 (fast_find_position, IT_note_mode_line_highlight)
4237 (IT_note_mouse_highlight): New functions.
4238 (IT_update_begin): If the redisplay affects the window where the
4239 mouse highlight is, clear the highlight. If the frame where the
4240 highlight was displayed was killed, invalidate the highlight
4241 info.
4242 (IT_update_end): Reset the highlight flag. Reset the mouse
4243 highlight-defer flag.
4244 (IT_frame_up_to_date): New function, if mouse highlight was
4245 deferred due to GC, do it now.
4246 (internal_terminal_init): Initialize mouse-highlight related
4247 members of the_only_x_display. Assign IT_frame_up_to_date to
4248 frame_up_to_date_hook.
4249 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4250 help_echo changed value, generate a HELP_EVENT event.
4251 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4252
adb9900f
EZ
4253 * msdos.h (struct display_info): New.
4254 (struct x_output): Add the display_info member.
4255 (FRAME_X_DISPLAY_INFO): New macro.
4256
481b5054
GM
42571999-12-28 Gerd Moellmann <gerd@gnu.org>
4258
4259 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4260 if MODIFF > 1.
6448a6b3 4261 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4262
4263 * buffer.c (modify_overlay): Always compute unchanged info.
4264
a2882b0d
KH
42651999-12-27 Kenichi Handa <handa@etl.go.jp>
4266
4267 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4268
89ba5b5f
KH
42691999-12-27 Kenichi Handa <handa@etl.go.jp>
4270
4271 The following changes are to use more bits for face IDs.
4272
4273 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4274 lowest 8 bits are single byte character code, the bits above are
4275 face ID.
481b5054 4276 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4277 above.
481b5054
GM
4278 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4279 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4280
4281 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4282 of GLYPH_MASK_CHAR.
4283
4284 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4285 of GLYPH_MASK_CHAR.
4286
4287 * dispextern.h (struct glyph): Make face_id and padding_p the top
4288 level members. Change members in union `u'.
4289 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4290 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4291 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4292 (CHAR_GLYPH_PADDING_P): Likewise.
4293 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4294 characters.
4295
481b5054 4296 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4297 for the change of struct glyph.
4298 (line_draw_cost): Adjusted for the change of
4299 GLYPH_FROM_CHAR_GLYPH.
4300 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4301
4302 * term.c (encode_terminal_code): Adjusted for the change of struct
4303 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4304 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4305 change of struct glyph.
4306
4307 * xdisp.c: All codes adjusted for the change of struct glyph.
4308
4309 * xterm.c: All codes adjusted for the change of struct glyph.
4310
5bcd116c
KH
43111999-12-27 Kenichi Handa <handa@etl.go.jp>
4312
4313 * composite.h (struct composition): Change the order of declaring
4314 members to reduce the byte size of the structure.
4315
f21b06b7
GM
43161999-12-25 Gerd Moellmann <gerd@gnu.org>
4317
4318 * search.c (looking_at_1): Reset immediate_quit before modifying
4319 global data.
4320
e36557c9
KH
43211999-12-24 Kenichi Handa <handa@etl.go.jp>
4322
4323 * process.c (read_process_output): Fix the arg FROM to
4324 update_compositions.
4325
83c8f461 43261999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4327
4328 * search.c (Freplace_match): For nonliteral replacement in buffer,
4329 construct all the new text first, then insert all at once.
4330
0b863bd9
DL
43311999-12-22 Dave Love <fx@gnu.org>
4332
4333 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4334
6d8e8ef3
GM
43351999-12-22 Gerd Moellmann <gerd@gnu.org>
4336
28d7281d
GM
4337 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4338 lead to size changes to after the X window has been created.
4339
e22ef6eb 4340 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4341 variable in xassert.
4342
8affcced
KH
43431999-12-22 Kenichi Handa <handa@etl.go.jp>
4344
4345 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4346 only when the frame is not for a window system.
8affcced 4347
f2be1146
GM
43481999-12-22 Gerd Moellmann <gerd@gnu.org>
4349
deca1348
GM
4350 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4351 redisplay after changing the multibyteness of a buffer.
4352
f2be1146
GM
4353 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4354 frame's X window to XFilterEvent instead of None because that's
4355 the X window for which the IC was created. This makes dead
4356 accents work when the pointer is not in Emacs' frame.
4357 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4358
a744a2ec
DL
43591999-12-20 Dave Love <fx@gnu.org>
4360
4361 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4362
9e6985ed
GM
43631999-12-19 Gerd Moellmann <gerd@gnu.org>
4364
4365 * eval.c (debugger_may_continue): New variable.
4366 (syms_of_eval): Add a DEFVAR_BOOL for it.
4367 (call_debugger): Bind it.
4368
3b620731
EZ
43691999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4370
4371 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4372 fp->tty_reverse_p is set, unless the computed colors are identical
4373 to frame colors. Print both original and computed colors to
4374 termscript file.
4375 (IT_write_glyphs): Track the changes in handling of composite
4376 characters.
4377 (IT_set_frame_parameters): Don't set frame colors from
4378 unspecified-fg and unspecified-bg pseudo-colors.
4379
0f9a51c4
DL
43801999-12-17 Dave Love <fx@gnu.org>
4381
4382 * data.c (Fkeywordp): New function.
4383 (syms_of_data): Install it.
4384
363e4e42
EZ
43851999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4386
4387 * xfaces.c (tty_defined_color): Fix last change.
4388
cfad01b4
GM
43891999-12-15 Gerd Moellmann <gerd@gnu.org>
4390
4391 * xdisp.c (redisplay_window) <optional new window start>: Check
4392 that window start is in [BEGV..ZV].
4393
f9d2fdc4
EZ
43941999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4395
4396 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4397 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4398
4399 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4400 (syms_of_xfaces): Initialize and staticpro them.
4401 (tty_defined_color): If the color name is unspecified-fg or
4402 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4403 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4404 (tty_color_name): If the color pixel value is either
4405 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4406 Qunspecified_fg or Qunspecified_bg, respectively.
4407 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4408 and Qunspecified_bg for foreground and background colors.
4409 (realize_default_face): If the foreground and background colors
4410 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4411 (realize_tty_face): By default, set the face colors to
4412 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4413 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4414 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4415 Reverse the colors if the default colors were reversed.
4416
4417 * dispnew.c (init_display): Initialize the frame pixels of the
4418 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4419 FACE_TTY_DEFAULT_BG_COLOR.
4420
4421 * term.c (turn_on_face): If the default fore- and background
4422 colors are reversed, enter inverse video mode. Don't send color
4423 escape sequences for unspecified foreground and background colors.
4424 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4425
4426 * dosfns.c (unspecified_colors): New variable.
4427 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4428 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4429 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4430 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4431 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4432 Qunspecified_bg, respectively.
4433
4434 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4435 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4436
e19539f1
KH
44371999-12-15 Kenichi Handa <handa@etl.go.jp>
4438
4439 * coding.c (code_convert_region): Fix the secoding arg to
4440 update_compositions.
4441
5ec14d3c
KH
44421999-12-15 Kenichi Handa <handa@etl.go.jp>
4443
4444 The following changes are for the new composition mechanism. We
4445 have deleted `composition' charset and composite characters,
4446 instead introduced a special text property `composition'.
4447
4448 * Makefile.in (INTERVAL_SRC): Include composite.h.
4449 (INTERVAL_OBJ): Include composite.o.
4450 (SOME_MACHINE_OBJECTS): Include composite.o.
4451 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4452 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4453 Depend on composite.h.
4454 (doc.o): Depend on charset.h.
4455 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4456 (composite.o): New target.
427ec082 4457
5ec14d3c
KH
4458 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4459
4460 * callproc.c (Fcall_process): Call code_convert_string to encode
4461 arguments. Use CODING_REQUIRE_DECODING to check if the process
4462 output should be decoded.
4463
4464 * casefiddle.c: Include composite.h.
4465 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4466 multibyte character. Adjusted for the change of CHAR_STRING.
4467 (casify_region): Likewise. Call update_compositions.
4468
4469 * category.h (CATEGORY_SET): Delete codes for a composite
4470 character.
4471
4472 * category.c (word_boundary_p): Delete codes for a composite
4473 character.
4474 (Fmake_category_table): New function.
4475 (syms_of_category): Defsubr it.
4476
4477 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4478 (ccl_driver): Delete codes for a composite character.
4479
4480 * charset.h: In this entry, just `Modified' means that codes for a
4481 composite character is deleted.
4482 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4483 (charset_composition) (MIN_CHAR_COMPOSITION)
4484 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4485 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4486 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4487 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4488 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4489 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4490 Modified.
4491 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4492 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4493 non_ascii_char_to_string.
4494 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4495 (STRING_CHAR_AND_LENGTH): Likewise.
4496 (FETCH_CHAR_ADVANCE): New macro.
4497 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4498 (MAX_MULTIBYTE_LENGTH): New macro.
4499 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4500 (find_charset_in_str): Argument adjusted.
4501 (CHAR_LEN): Modified.
427ec082 4502
5ec14d3c
KH
4503 * charset.c: In this entry, just `Modified' means that codes for a
4504 composite character is deleted.
4505 (Qcomposition) (leading_code_composition)
4506 (charset_composition) (min_composite_char) (cmpchar_table)
4507 (cmpchar_table_size) (n_cmpchars): Deleted.
4508 (SPLIT_COMPOSITE_SEQ): Deleted.
4509 (SPLIT_MULTIBYTE_SEQ): Modified.
4510 (char_to_string): Renamed from non_ascii_char_to_string.
4511 Modified.
4512 (string_to_char): Renamed from string_to_non_ascii_char.
4513 (split_string): Renamed from split_non_ascii_string.
4514 (char_printable_p) (Fsplit_char)
4515 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4516 (char_bytes) (Fchar_width) (strwidth): Modified.
4517 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4518 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4519 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4520 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4521 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4522 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4523 (Fcmpchar_cmp_count): Deleted.
4524 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4525 (init_charset_once): Modified.
4526 (syms_of_charset): Modified.
4527
4528 * cmds.c (internal_self_insert): Adjusted for the change of
4529 CHAR_STRING.
4530
4531 * coding.h (emacs_code_class_type): Delete the member
4532 EMACS_leading_code_composition.
4533 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4534 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4535 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4536 (COMPOSING_WITH_RULE_P): Macros deleted.
4537 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4538 macros.
4539 (struct composition_data): New structure.
4540 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4541 (struct coding_system): New members composition_rule_follows,
4542 cmp_data, cmp_data_start, cmp_data_index.
4543 (coding_save_composition) (coding_free_composition_data)
4544 (coding_adjust_composition_offset): Extern them.
4545
4546 * coding.c: Include composite.h.
4547 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4548 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4549 of multibyte code here.
4550 (DECODE_CHARACTER_DIMENSION2): Likewise.
4551 (detect_coding_emacs_mule): Change the case label from
4552 EMACS_leading_code_composition to 0x80.
4553 (detect_coding_iso2022): Handle new composition sequence.
4554 (DECODE_ISO_CHARACTER): Likewise.
4555 (check_composing_code): Deleted.
4556 (coding_allocate_composition_data): New function.
4557 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4558 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4559 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4560 (decode_coding_iso2022): Handle new composition sequence.
4561 (ENCODE_ISO_CHARACTER): Don't check composition here.
4562 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4563 (ENCODE_COMPOSITION_NO_RULE_START)
4564 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4565 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4566 (ENCODE_COMPOSITION_FAKE_START): New macro.
4567 (encode_coding_iso2022): Handle new composition sequence.
4568 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4569 (encode_coding_sjis_big5): Ignore composition.
4570 (setup_coding_system): Initialize new members of struct
4571 coding_system. Enable composition only when the coding system has
4572 `composition' property t.
4573 (coding_free_composition_data) (coding_adjust_composition_offset)
4574 (coding_save_composition) (coding_restore_composition): New
4575 functions.
4576 (code_convert_region): Call coding_save_composition for encoding
4577 and coding_allocate_composition_data for decoding. Don't skip
4578 ASCII characters if we handle composition on encoding. Call
4579 signal_after_change with Check_BORDER.
4580 (code_convert_string): Call coding_save_composition for encoding
4581 and coding_allocate_composition_data for decoding. Don't skip
4582 ASCII characters if we handle composition on encoding.
4583 (code_convert_string1): Set Vlast_coding_system_used after calling
4584 code_convert_string.
4585 (code_convert_string_norecord): Disable composition.
4586 (Fset_terminal_coding_system_internal): Likewise.
4587 (Fset_safe_terminal_coding_system_internal): Likewise.
4588 (Fset_keyboard_coding_system_internal): Likewise.
4589 (init_coding_once): Set emacs_code_class[0x80] to
4590 EMACS_invalid_code.
4591
4592 * composite.h: New file.
4593
4594 * composite.c: New file.
4595
4596 * data.c (Faref): Delete codes for a composite character..
4597 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4598
4599 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4600 (struct glyph): Add new sub-structure cmp to the union `u'.
4601 (enum display_element_type): New member IT_COMPOSITION.
4602 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4603 (struct it): New members cmp_id, cmp_len.
4604
4605 * dispnew.c (direct_output_forward_char): Check point moving into
4606 or out of a composition. If so, give up direct method.
4607
4608 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4609
4610 * editfns.c (Fchar_to_string): Adjusted for the change of
4611 CHAR_STRING.
4612 (general_insert_function): Likewise.
4613 (Finsert_char): Likewise.
4614 (Fsubst_char_in_region): Likewise. Call update_compositions.
4615 (Ftranslate_region): Call update_compositions.
4616 (Ftranspose_regions): Call update_compositions.
4617
4618 * emacs.c (main): Call syms_of_composite.
4619
4620 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4621 CHAR_STRING.
4622 (Finsert_file_contents): Set Vlast_coding_system_used before
4623 calling signal_after_change. Call update_compositions if some
4624 texts are inserted..
4625 (Fwrite_region): Adjusted for the change of a_write and e_write.
4626 (a_write): Argument changed. Work based on character position,
4627 not byte position.
4628 (e_write): Argument changed. Handle new way of composition.
4629
4630 * fns.c (Flength): The length of char-table is MAX_CHAR.
4631 (concat): Adjusted for the change of CHAR_STRING.
4632 (Ffillarray): Adjusted for the change of CHAR_STRING.
4633 (Fset_char_table_default): Delete codes for a composite character.
4634 (hash_put): Return hash index.
4635
4636 * fontset.h (struct font_info): New member vertical_centering.
4637 (Vvertical_centering_font_regexp): Extern it.
4638
4639 * fontset.c (Vvertical_centering_font_regexp): New variable.
4640 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4641 Set Vignore_relative_composition to nil.
4642 (fs_load_font): Initialize `vertical_centering' of struct
4643 font_info.
4644
4645 * indent.c (check_composition): New function.
4646 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4647 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4648 (current_column_1): Handle new way of composition.
4649 (Fmove_to_column): Likewise.
4650 (compute_motion): Likewise.
4651
4652 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4653 (insert_char): Likewise.
4654 (insert): Call update_compositions.
4655 (insert_and_inherit): Likewise.
4656 (insert_before_markers): Likewise.
4657 (insert_before_markers_and_inherit): Likewise.
4658 (insert_from_string): Likewise.
4659 (insert_from_string_before_markers): Likewise.
4660 (insert_from_buffer): Likewise.
4661 (replace_range): Likewise.
4662 (count_combining_composition): Deleted.
4663 (count_combining_before): Delete codes for a composite character.
4664 (count_combining_after): Likewise.
4665 (del_range_1): Call update_compositions.
4666 (del_range_byte): Likewise.
4667 (del_range_both): Likewise.
4668 (Fcombine_after_change_execute): Likewise.
4669
4670 * intervals.h: Include composite.h.
4671 (get_property_and_range): Extern it.
4672 (Vtext_property_default_nonsticky): Extern it.
427ec082 4673
5ec14d3c
KH
4674 * intervals.c (adjust_intervals_for_insertion): To check stickines
4675 of properties, pay attention to text-property-default-nonsticky.
4676 (merge_properties_sticky): Likewise.
4677 (get_property_and_range): New function.
4678
4679 * keyboard.c (Vdisable_point_adjustment): New variable.
4680 (Vglobal_disable_point_adjustment): New variable.
4681 (syms_of_keyboard): Declare them as Lisp variables.
4682 (command_loop_1): Check them and call adjust_point_for_property if
4683 necessary.
4684 (adjust_point_for_property): New function.
4685
4686 * keymap.c (push_key_description): Adjusted for the change of
4687 CHAR_STRING.
4688 (Ftext_char_description): Likewise.
4689
4690 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4691 (hash_put): Adjusted for the change of the definition.
4692 (signal_after_change): Likewise.
4693 (check_point_in_composition): Extern it.
4694
4695 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4696 Delete a code that handles an invalid too-long multibyte sequence
4697 because we are now sure that we never encounter with such a
4698 sequence.
4699 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4700 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4701 (init_obarray): Likewise.
4702 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4703
4704 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4705
4706 * process.c: Include composite.h.
4707 (read_process_output): Call update_compositions.
4708
4709 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4710
4711 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4712
4713 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4714 character.
4715
4716 * term.c (encode_terminal_code): Delete codes for a composite
4717 character. Adjusted for the change of CHAR_STRING.
4718 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4719 Delete codes for a composite character.
4720
4721 * textprop.c (Vtext_property_default_nonsticky): New variable
4722 (syms_of_textprop): Declare it as a Lisp variable.
4723
4724 * window.c (Frecenter): Clear all caches of compositions.
4725
4726 * xdisp.c (it_props): Add an entry for composition.
4727 (face_before_or_after_it_pos): For composition, check face of a
4728 character after the composition.
4729 (handle_composition_prop): New function.
4730 (get_next_display_element): Adjusted for the change of
4731 CHAR_STRING.
4732 (set_iterator_to_next): Handle the case that it->method ==
4733 next_element_from_composition.
4734 (next_element_from_composition): New function.
4735 (message_dolog): Adjusted for the change of CHAR_STRING.
4736 (set_message_1): Likewise.
4737 (check_point_in_composition): New function.
4738 (reconsider_clip_changes): If point moved into or out of
4739 composition, set b->clip_changed to 1 to force updating of the
4740 screen.
4741 (disp_char_vector): Delete codes for a composite character.
4742 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4743
4744 * xfaces.c (choose_face_fontset_font): Delete codes for a
4745 composite character.
4746 (realize_x_face): Likewise. Change a place to set local variable
4747 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4748
4749 * xfns.c: Include intervals.h.
4750 (syms_of_xfns): Make `display' property nonsticky by default.
4751
4752 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4753 for find_charset_in_str.
4754
4755 * xterm.h (struct x_output): Change member font_baseline to
4756 baseline_offset.
4757
4758 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4759 for composition.
4760 (x_append_composite_glyph): New function.
4761 (VCENTER_BASELINE_OFFSET): New macro.
4762 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4763 of struct it for the composition. Cache pixel offsets in the
4764 struct composition. Delete codes for a composite character.
4765 Handle Vignore_relative_composition in composition code.
4766 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4767 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4768 (x_compute_glyph_string_overhangs): Likewise.
4769 (x_get_glyph_overhangs): Delete codes for a composite character.
4770 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4771 (x_draw_glyph_string_background): Likewise. Delete codes for
4772 checking s->gidx for a composition.
4773 (x_draw_glyph_string_foreground): Delete code for a composite
4774 character.
4775 (x_draw_composite_glyph_string_foreground): New function.
4776 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4777 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4778 (struct work): Deleted.
4779 (x_fill_composite_glyph_string): Argument changed. Mostly
4780 rewritten for that.
4781 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4782 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4783 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4784 (BUILD_GLYPH_STRINGS): For composition, call
4785 BUILD_COMPOSITE_GLYPH_STRING.
4786 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4787 f->output_data.x->font_baseline.
4788
c3c60f13
GM
47891999-12-14 Gerd Moellmann <gerd@gnu.org>
4790
4791 * xterm.c (show_mouse_face): Don't use updated_area, use
4792 TEXT_AREA.
4793
83c8f461 47941999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4795
4796 * minibuf.c (Fall_completions): Doc fix.
4797
83c8f461 47981999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4799
4800 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
4801 has been changed by the Lisp code.
4802
d8eccf12
GM
48031999-12-12 Gerd Moellmann <gerd@gnu.org>
4804
4805 * xfns.c: Indentation fixes.
4806
ae56feae
SM
48071999-12-10 Stefan Monnier <monnier@cs.yale.edu>
4808
4809 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
4810
dfa1c6ae
GM
48111999-12-10 Gerd Moellmann <gerd@gnu.org>
4812
4813 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
4814 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
4815
4816 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
4817 to frame.h.
4818
ec18280f
SM
48191999-12-09 Stefan Monnier <monnier@cs.yale.edu>
4820
4821 * keyboard.c (Qratio): New symbol.
4822 (scroll_bar_parts): Add `Qratio' to it.
4823 (syms_of_keyboard): Init `Qratio'.
4824 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
4825 * xterm.c (#includes): Allow compilation with only Xaw.
4826 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
4827 (xt_action_hook): Replace XAW3D by XAW.
4828 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
4829 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
4830 Determine epsilon dynamically and don't try to be too clever.
4831 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
4832 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
4833 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
4834 scrollbar (using `ratio').
4835 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
4836 scrollbar we have so as to set it up more optimally and to fix
4837 xaw3d_arrow_scroll and xaw3d_pick_top.
4838 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
4839 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
4840 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
4841 is not ignored, using a major gross hack.
4842 (x_initialize): Init default values for xaw3d_arrow_scroll and
4843 xaw3d_pick_top.
4844
83b6d970
DL
48451999-12-09 Dave Love <fx@gnu.org>
4846
4847 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
4848
3648c842
GM
48491999-12-08 Gerd Moellmann <gerd@gnu.org>
4850
4851 * eval.c: Remove conditional compilation on `standalone'.
4852 (call_debugger): When entering the debugger while redisplaying,
4853 reset redisplaying_p, and go back to the top-level if the debugger
4854 returns.
4855
05e71564
GM
48561999-12-07 Gerd Moellmann <gerd@gnu.org>
4857
4858 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
4859 basic faces are realized before trying to use face `menu'.
4860
4861 * window.c (delete_window): Block input for the time window
4862 matrices are being changed.
4863
b46cd536
DL
48641999-12-07 Dave Love <fx@gnu.org>
4865
4866 * lread.c (Fintern_soft): Fix newlines in doc string.
4867
96acb1f7
GM
48681999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
4869
4870 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
4871 duplicate definition of ElfW.
4872 (find_section): Copied from unexsgi.c.
4873 (unexec): Use find_section. Adjust whitespace. Initialize
4874 new_data2_offset based on old_data, not sbss (this fixes a bug on
4875 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
4876 Adjust test for presence of .mdebug section to the new return
4877 value of find_section.
427ec082 4878
96acb1f7
GM
48791999-12-07 Gerd Moellmann <gerd@gnu.org>
4880
4881 * unexelf.c: Merge changes from 20.5.
4882 (unexec): Handle .lit4 and .lit8 unconditionally.
4883
4884 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
4885 unexsgi.o again.
427ec082 4886
96acb1f7
GM
4887 * m/iris5d.h (UNEXEC): Likewise.
4888
7dae4502
SM
48891999-12-06 Stefan Monnier <monnier@cs.yale.edu>
4890
4891 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
4892 (syms_of_editfns): Register it.
4893 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
4894 (del_range_1, del_range_2): Add a ret_string argument to
4895 request that the deleted text be returned.
4896 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 4897 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
4898 * casefiddle.c (casify_region): Update del_range_1 call.
4899 * coding.c (code_convert_region): Update del_range_2 call.
4900 * fileio.c (Finsert_file_contents): Update del_range_2 call.
4901
397e4fae
GM
49021999-12-06 Gerd Moellmann <gerd@gnu.org>
4903
4904 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
4905
3d973f71
GM
49061999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
4907
4908 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 4909
740e985f
EZ
49101999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4911
4912 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
4913
4914 * insdel.c (adjust_markers_for_delete): Fix last change.
4915
2d764c78
EZ
49161999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4917
4918 Changes for automatic remapping of X colors on terminal frames:
4919
4920 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
4921 frames.
4922 (Vface_tty_color_alist): Remove.
4923 (tty_defined_color): New function.
4924 (defined_color): Rewrite to support any type of frame.
4925 (tty_color_name): New function.
4926 (face_color_supported_p, Fface_color_gray_p,
4927 Fface_color_supported_p): Support non-X frames.
4928 (load_color): Enclose the color name in quotes, in the log
4929 messages. Remove DOS-specific version of load_color.
4930 (realize_tty_face): Take the supported colors from
4931 tty-color-alist. Support translation of X colors to the closest
4932 tty color, for both MSDOS and tty frames.
4933 [MSDOS]: Don't invert face colors if they were taken from the
4934 frame colors.
4935 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
4936
4937 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
4938 Define a mostly empty surrogate.
4939 (tty_display): Declare.
4940
4941 * frame.c (make_terminal_frame) [!macintosh]: Don't use
4942 tty_display.
4943 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
4944 frames when the frame's param_alist includes 'reverse.
4945 (tty_display): Define.
4946 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
4947 output_data.x member.
4948 (Fframe_parameters): Return foreground and background color names
4949 on tty frames as well, in addition to MSDOS frames.
4950
4951 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
4952 selected_frame.
4953 (struct x_output): Remove unused members; document who uses each
4954 member.
4955 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
4956 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
4957 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
4958 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
4959 unused macro definintions.
4960
4961 * msdos.c (IT_set_frame_parameters): Don't call
4962 recompute_basic_faces, the next redisplay will, anyway.
4963 (x_current_display): Remove unused variable.
4964 Many functions: changes for Lisp_object selected_frame.
4965 (IT_set_face): If the tty_reverse_p flag is set for the face,
4966 reverse the foreground and background colors.
4967 (Fmsdos_remember_default_colors): New function.
4968 (syms_of_msdos): Defsubr it.
4969 (IT_set_frame_parameters): Use initial_screen_colors[] when
4970 creating a new frame. If the frame parameters include 'reverse,
4971 swap the foreground and background colors.
4972 (internal_terminal_init): Initialize initial_screen_colors to -1.
4973 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
4974 cus-start.el.
4975
4976 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
4977
4978 * xfns.c (x_defined_color): Rename from defined_color. All
4979 callers changed.
4980 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4981 all callers changed.
4982 (Fxw_color_values): Renamed from Fx_color_values; all callers
4983 changed.
4984 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4985 callers changed.
4986 (x_window_to_frame, x_any_window_to_frame,
4987 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4988 x_top_window_to_frame): Use !FRAME_X_P instead of
4989 f->output_data.nothing.
4990 * xterm.h (x_defined_color): Rename from defined_color.
4991
4992 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
4993 f->output_data.nothing.
4994 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4995 all callers changed.
4996 (Fxw_color_values): Renamed from Fx_color_values; all callers
4997 changed.
4998 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4999 callers changed.
5000
5001 * dispextern.h (tty_color_name): Add prototype.
5002
5003 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
5004 f->output_data.nothing.
5005 * w32menu.c (menubar_id_to_frame): Likewise.
5006 * w32term.h (w32_output): Declare.
5007
5008 * dosfns.c (Qmsdos_color_translate): Remove.
5009 (msdos_stdcolor_name): Now returns a Lisp_Object.
5010 * dosfns.h (Qmsdos_color_translate): Remove.
5011
5012 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
5013
b3e5232e
KH
50141999-12-06 Kenichi Handa <handa@etl.go.jp>
5015
5016 * fileio.c (decide_coding_unwind): Renamed from
5017 set_auto_coding_unwind.
5018 (Finsert_file_contents): Make single unwind protect to call both
5019 Vset_auto_coding_function and Ffind_operation_coding_system.
5020
5021 * insdel.c (adjust_markers_for_delete): Make it non-static.
5022
db0e466c
SM
50231999-12-04 Stefan Monnier <monnier@cs.yale.edu>
5024
5025 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
5026 operators and handle them properly.
5027 * regex.h (RE_ALL_GREEDY): New option.
5028 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
5029 sorting would put it.
5030 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
5031 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
5032
22afa6e8
DL
50331999-12-04 Dave Love <d.love@dl.ac.uk>
5034
5035 * m/arm.h: New file.
5036
40afb967
DL
50371999-12-03 Dave Love <fx@gnu.org>
5038
5039 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5040
ddf8eff5
GM
50411999-12-02 Gerd Moellmann <gerd@gnu.org>
5042
5043 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5044 for building with Motif.
5045
5046 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5047 unexelf.o.
427ec082 5048
ddf8eff5
GM
5049 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5050
fa09a82d
DL
50511999-12-01 Dave Love <fx@gnu.org>
5052
5053 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5054
ddf8eff5
GM
50551999-11-28 Gerd Moellmann <gerd@gnu.org>
5056
5057 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5058 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5059 macros.
5060
5061 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5062
fa09a82d
DL
50631999-11-28 eliz <eliz@dlpx1>
5064
5065 * emacs.c (synchronize_locale): Avoid compiler warnings about
5066 pointer type mismatch.
5067
f9632fc8
GM
50681999-11-28 Gerd Moellmann <gerd@gnu.org>
5069
717d0121
GM
5070 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5071 out of range position.
5072
427ec082 5073 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5074 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5075
59c65f1e
EZ
50761999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5077
613a8346
EZ
5078 * charset.c (Fmake_char_internal): Print the charset ID when
5079 signalling an error.
5080
59c65f1e
EZ
5081 * emacs.c (synchronize_locale): Avoid compiler warnings about
5082 pointer type mismatch.
5083
83c8f461 50841999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5085
5086 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5087
18df9369
GM
50881999-11-26 Gerd Moellmann <gerd@gnu.org>
5089
65a3ccf7
GM
5090 * puresize.h (BASE_PURESIZE): Increase to 550000.
5091
b3b98592
GM
5092 * textprop.c (set_text_properties): New function. Like
5093 Fset_text_properties, but with additional parameter
5094 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5095 changes.
5096 (Fset_text_properties): Use it.
5097
5098 * insdel.c (insert_1_both): Call set_text_properties with last
5099 parameter nil so that no after changes will be signaled.
5100
5101 * lisp.h: Add prototype for set_text_properties.
5102
18df9369
GM
5103 * xfaces.c (set_lface_from_font_name): Fix previous change.
5104 (recompute_basic_faces): Change assert to abort.
5105
71a8e74b
DL
51061999-11-25 Dave Love <fx@gnu.org>
5107
5108 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5109 (Fmember, Fdelq, Fdelete): Inline car.
5110 (Fy_or_n_p): Doc fix.
5111
bc6a5782
GM
51121999-11-25 Gerd Moellmann <gerd@gnu.org>
5113
3221576b 5114 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5115 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5116 is not set, try to use a reasonable default.
5117
bc6a5782
GM
5118 * dispnew.c (direct_output_for_insert): Set glyph row's
5119 displays_text_p flag. Correct window's window_end_vpos if
5120 necessary.
5121
0c8559bb
PE
51221999-11-25 Paul Eggert <eggert@twinsun.com>
5123
5124 * emacs.c (fixup_locale): Don't bother to record initial locale.
5125 (synchronize_locale): If the desired locale is nil,
5126 treat it as if it were the empty string,
5127 so that we set the locale from the environment.
5128
35737351
KH
51291999-11-25 Kenichi Handa <handa@etl.go.jp>
5130
5131 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5132 of the current buffer via Fset.
5133
5562b47f
DL
51341999-11-24 Dave Love <fx@gnu.org>
5135
5562b47f
DL
5136 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5137
5138 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5139
00da0e4a
GM
51401999-11-24 Gerd Moellmann <gerd@gnu.org>
5141
5142 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5143
5144 * emacs.c (PVEC_FLAG): New variable.
5145
b1775dc1
GM
51461999-11-23 Gerd Moellmann <gerd@gnu.org>
5147
5148 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5149 that fails on IBM PowerPC, AIX 4.2.
427ec082 5150
08de6200
EZ
51511999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5152
5153 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5154 string of mode-line-format. Remove the obsolete %t.
5155
02fda8ff
GM
51561999-11-22 Gerd Moellmann <gerd@gnu.org>
5157
f2fa858f
GM
5158 * dispnew.c (direct_output_for_insert): Increment glyph positions
5159 for glyphs from buffer text only.
5160
02fda8ff
GM
5161 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5162 (gdb_data_seg_bits): New variables.
427ec082 5163
02fda8ff
GM
5164 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5165 work on systems not allowing enumerators > INT_MAX, and it
5166 won't work if EMACS_INT is long long.
5167
1b0d24e7
PE
51681999-11-22 Paul Eggert <eggert@twinsun.com>
5169
5170 Port to SunOS 4.1.x again. Help out with Alpha port.
5171 Rename messages-locale to system-messages-locale,
5172 and likewise for time-locale.
427ec082 5173
1b0d24e7
PE
5174 * callproc.c (strerror): Remove decl.
5175 * fileio.c (strerror): Likewise.
5176 * process.c (strerror): Likewise.
5177 * emacs.c (strerror): Likewise.
5178 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5179 All uses changed.
5180 (Vprevious_system_messages_locale): Likewise, from
5181 Vprevious_messages_locale.
5182 (Vsystem_time_locale): Likewise, from Vtime_locale.
5183 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5184 (ABORT_RETURN_TYPE): New macro.
5185 (abort): Return type is now ABORT_RETURN_TYPE.
5186 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5187 defined.
5188 (syms_of_emacs): messages-locale -> system-messages-locale,
5189 previous-messages-locale -> previous-system-messages-locale,
5190 time-locale -> system-time-locale,
5191 previous-time-locale -> previous-system-time-locale.
5192
5193 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5194 (const): Do not define; that's config.h's job.
5195 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5196 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5197 (<stddef.h>): Include if STDC_HEADERS is defined.
5198 (FREE_RETURN_TYPE): New macro.
5199 (free): Return type is now FREE_RETURN_TYPE.
5200
5201 * lisp.h (synchronize_system_time_locale): Renamed from
5202 synchronize_time_locale. All uses changed.
5203 (synchronize_system_messages_locale): Likewise, from
5204 synchronize_messages_locale.
5205
5206 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5207 stdlib.h now does this.
5208
5209 * process.c (sys_siglist): Remove.
5210
5211 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5212 New macros.
5213
5214 * syntax.c (scan_sexps_forward): Use abort, not assert.
5215
5216 * sysdep.c (my_sys_siglist): New var.
5217 (sys_siglist): New macro. Remove old initialized vars of same name.
5218 (init_signals): Initialize sys_siglist.
5219
5220 * xfns.c (abort): Remove decl; stdlib.h now does this.
5221
0dcd5b54
DL
52221999-11-18 Dave Love <fx@gnu.org>
5223
946173ad
DL
5224 * filelock.c: Add forward declaration for get_boot_time_1.
5225
0dcd5b54
DL
5226 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5227
71447e8f
GM
52281999-11-18 Gerd Moellmann <gerd@gnu.org>
5229
5230 * buffer.h (struct buffer_text): Add comment about moving
5231 buffer text if REL_ALLOC is defined.
5232
eeedff63
KH
52331999-11-18 Kenichi Handa <handa@etl.go.jp>
5234
5235 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5236
5237 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5238 memory for push_key_description.
5239
5240 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5241 allocate memory for push_key_description.
5242 (describe_buffer_bindings): Likewise.
5243
5d7e4a2c
GM
52441999-11-17 Gerd Moellmann <gerd@gnu.org>
5245
5246 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5247 (Fx_hide_busy_cursor): Ditto.
5248
52491999-11-17 Marco Walther <walther@siemens-pyramid.com>
5250
5251 * unexsni.c (unexec): Handle .rel.dyn section.
5252
b5b41e02
DL
52531999-11-16 Dave Love <fx@gnu.org>
5254
5255 * doc.c (Fdocumentation): Remove gcpro here too.
5256
e35b6123
GM
52571999-11-16 Gerd Moellmann <gerd@gnu.org>
5258
5259 * keyboard.c (command_loop_1): Remove no_redisplay.
5260
83c8f461 52611999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5262
5263 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5264 in noninteractive.
5265
b05d3bee
GM
52661999-11-14 Gerd Moellmann <gerd@gnu.org>
5267
5bcfeb49
GM
5268 * xdisp.c (ensure_echo_area_buffers): New.
5269 (with_echo_area_buffer): Use it.
5270 (setup_echo_area_for_printing): Ditto.
5271
b05d3bee
GM
5272 * buffer.c (indicate-empty-lines): Doc-fix.
5273
9b2e6e4c
GM
52741999-11-12 Gerd Moellmann <gerd@gnu.org>
5275
e7f90eab
GM
5276 * term.c (term_init): If "op" isn't available, don't support color
5277 because we can't switch back to the default foreground and
5278 background.
5279
9b2e6e4c
GM
5280 * doc.c (Fdocumentation_property): Remove GCPRO because
5281 Fsubstitute_command_keys gcpro's the string.
5282
1bf21027
KH
52831999-11-12 Kenichi Handa <handa@etl.go.jp>
5284
5285 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5286
3bc6df53
GM
52871999-11-11 Gerd Moellmann <gerd@gnu.org>
5288
5289 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5290 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5291 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5292
35a5514b
GM
52931999-11-10 Gerd Moellmann <gerd@gnu.org>
5294
5295 * xfns.c (QCuser_data): Removed.
5296 (syms_of_xfns): Initialization of QCuser_data removed.
5297 (parse_image_spec): Don't handle :user-data specially. Allow
5298 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5299 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5300 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5301 parse_image_spec accordingly.
5302
83c8f461 53031999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5304
5305 * cmds.c (Fbeginning_of_line): Doc fix.
5306 (Fend_of_line): Doc fix.
5307
5308 * editfns.c (Fline_beginning_position): If N is not 1,
5309 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5310
5311 * syntax.c (Fforward_word): Handle fields even if would have hit
5312 an edge of the buffer. Return nil if affected by fields.
5313
83c8f461 53141999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5315
5316 * editfns.c (preceding_pos): Function deleted.
5317 (text_property_stickiness): Decrement POS directly.
5318 Fix a confusion that used PT instead of POS.
5319
5320 * editfns.c (find_field): Properly handle the case
5321 of a field boundary where `field' inherits from neither side.
5322
5323 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5324 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5325
fa9aabf6
GM
53261999-11-08 Gerd Moellmann <gerd@gnu.org>
5327
5328 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5329 BEFORE_POTENTIAL_GC before DISCARD.
5330
4015b3c0
GM
53311999-11-07 Gerd Moellmann <gerd@gnu.org>
5332
033a5fa3
GM
5333 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5334
5335 * lisp.h: Add prototype for unmark_byte_stack.
5336
5337 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5338 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5339 XUNMARK.
5340
55b064bd
GM
5341 * xdisp.c (resize_mini_window): Fix computation of needed
5342 mini-window height.
5343
5344 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5345 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5346
4015b3c0 5347 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5348 locally there. Rearrange case statements so that those most
4015b3c0
GM
5349 frequently executed come first. Avoid goto's in frequently
5350 executed cases.
5351
fe512f27
GM
53521999-11-05 Gerd Moellmann <gerd@gnu.org>
5353
dd59e217
GM
5354 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5355 AFTER_POTENTIAL_GC around internal_catch.
5356
bcf28080
GM
5357 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5358 relocate_byte_pcs.
5359 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5360
5361 * eval.c (struct catchtag): Add member byte_stack.
5362 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5363 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5364 catchtag.
5365 (unwind_to_catch): Restore byte_stack_list from catchtag.
5366
5367 * lisp.h: Add prototypes for new functions in bytecode.c.
5368 Add extern declaration for byte_stack_list.
5369
5370 * bytecode.c (struct byte_stack): New.
5371 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5372 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5373 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5374 (HANDLE_RELOCATION): Removed.
5375 (Fbyte_code): Use byte_stack structures.
5376
4d59c34c
GM
5377 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5378
fe512f27
GM
5379 * buffer.c (syms_of_buffer): Extend documentation of
5380 mode-line-format.
5381
60b64cd6
GM
53821999-11-04 Gerd Moellmann <gerd@gnu.org>
5383
5384 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5385
5386 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5387 Ferase_field instead of Fdelete_field.
5388
b51b619b
GM
53891999-11-03 Gerd Moellmann <gerd@gnu.org>
5390
5391 * dispnew.c (Finternal_show_cursor): Change it to set the
5392 cursor on/off, not toggle its state.
5393 (Finternal_show_cursor_p): New.
5394 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5395
5865af0d
DL
53961999-11-03 Dave Love <fx@gnu.org>
5397
5398 * charset.c (split_non_ascii_string): Define return value.
5399
82a700f3
GM
54001999-11-03 Gerd Moellmann <gerd@gnu.org>
5401
edfef199
GM
5402 * minibuf.c (string_to_object): New.
5403 (read_minibuf_noninteractive): New.
5404 (read_minibuf): Call read_minibuf_noninteractive if
5405 noninteractive. Use string_to_object.
5406
82a700f3
GM
5407 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5408
b5540f0d
DL
54091999-11-02 Dave Love <fx@gnu.org>
5410
e69dcd60
DL
5411 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5412
827a1788
DL
5413 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5414 declared with glibc2.
b5540f0d 5415
a69a6e61
GM
54161999-11-02 Gerd Moellmann <gerd@gnu.org>
5417
5418 * lisp.h (QUIT): Give it statement form.
5419
87e21fbd
DL
54201999-11-02 Dave Love <fx@gnu.org>
5421
5422 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5423
1b335865
GM
54241999-11-02 Gerd Moellmann <gerd@gnu.org>
5425
9fb5e03d
GM
5426 * xfns.c (QCuser_data): New.
5427 (syms_of_xfns): Initialize QCuser_data.
5428 (parse_image_spec): Ignore :user-data DATA properties.
5429
1b335865
GM
5430 * xdisp.c (display_line): Set charpos of first glyph in blank
5431 lines not corresponding to any text to -1, even if no glyphs are
5432 filled in in that line.
5433
e76f1c44
GM
54341999-11-01 Gerd Moellmann <gerd@gnu.org>
5435
427ec082 5436 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5437 png_get_sRGB in #ifdef.
5438
111259b4
GM
5439 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5440 (syms_of_display): Use the new name.
5441
dd5c96e8
GM
5442 * textprop.c (verify_interval_modification): Signal text-read-only
5443 instead of calling error.
5444
db8878fb
GM
5445 * data.c (Qtext_read_only): New built-in error.
5446 (syms_of_data): Initialize it.
5447
5448 * lisp.h: Add extern declaration for Qtext_read_only.
5449
e76f1c44
GM
5450 * syntax.c: Remove whitespace after open or in front of closing
5451 parentheses.
5452
83c8f461 54531999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5454
5455 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5456
7843e09c
GM
54571999-10-31 Gerd Moellmann <gerd@gnu.org>
5458
575ed805
GM
5459 * xdisp.c (resize_mini_window): Compute needed height differently.
5460
7843e09c
GM
5461 * fns.c (Flength): Unroll loop over lists.
5462
5463 * xdisp.c (append_space): Return non-zero if space was appended.
5464 (display_line): Set charpos of first glyph to -1 only if that
5465 glyph is the space added by append_glyph.
5466
83c8f461 54671999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5468
5469 * print.c (strout): Consider `noninteractive' and use stdout
5470 only when PRINTCHARFUN is t.
5471
5472 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5473 (gcpro_level): Declare it extern.
5474 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5475 Alternate definitions that set `level' and increment `gcpro_level'.
5476 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5477
5478 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5479 (init_eval) [DEBUG_GCPRO]: Initialize it.
5480 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5481 from remaining gcprolist.
5482
3636f7a3
KH
54831999-10-29 Kenichi Handa <handa@etl.go.jp>
5484
5485 * coding.c (code_convert_region): Update `dst' correctly.
5486
a2ad7096
GM
54871999-10-28 Gerd Moellmann <gerd@gnu.org>
5488
5489 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5490 (Frassoc): Rewritten.
5491
1e3196e8
GM
54921999-10-27 Noah Friedman <friedman@splode.com>
5493
5494 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5495 Define PTY_NAME_SPRINTF.
5496 Redefine PTY_TTY_NAME_SPRINTF.
5497 * config.in: Add undef for HAVE_DEV_PTMX.
5498
83c8f461 54991999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5500
5501 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5502 as arg to DEBUG_POP and DEBUG_PRINT.
5503
83c8f461 55041999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5505
5506 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5507 (Ffset): Call Qad_activate_internal.
5508 (syms_of_data): Initialize Qad_activate_internal.
5509
26922151
GM
55101999-10-27 Gerd Moellmann <gerd@gnu.org>
5511
5512 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5513 Vterminal_frame is selected and Vwindow_system is non-nil.
5514
67a5596f
GM
55151999-10-26 Gerd Moellmann <gerd@gnu.org>
5516
2bea706b
GM
5517 * xdisp.c (echo_area_display): Put previous change in #if 0.
5518
67a5596f
GM
5519 * emacs.c (standard_args): Add `file' as synonym for `visit',
5520 `execute' as synonym for `eval'.
5521 (main): Add new options to usage message.
5522
81dc5de5
GM
55231999-10-25 Gerd Moellmann <gerd@gnu.org>
5524
5525 * data.c (Qhash_table): New.
5526 (Ftype_of): Return it for hash tables.
5527 (syms_of_data): Initialize Qhash_table.
5528
83c8f461 55291999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5530
5531 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5532
66e4690f 55331999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5534
7539e11f
KR
5535 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5536 lisp.h.
5537
5538 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5539 Fbuffer_local_variables, Fother_buffer, record_buffer,
5540 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5541 swap_out_buffer_local_variables, overlays_at, overlays_in,
5542 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5543 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5544 Foverlay_put, report_overlay_modification, evaporate_overlays):
5545 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5546 references.
5547 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5548 swap_in_symval_forwarding, set_internal, default_value,
5549 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5550 Fmake_variable_frame_local, Flocal_variable_p,
5551 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5552 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5553 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5554 * emacs.c (main): Likewise.
5555 * fontset.c (fs_load_font, fs_register_fontset,
5556 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5557 Fnew_fontset, Fset_fontset_font): Likewise.
5558 * frame.c (do_switch_frame, next_frame, prev_frame,
5559 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5560 Likewise.
5561 * keyboard.c (read_char, help_char_p, event_to_kboard,
5562 kbd_buffer_get_event, timer_start_idle, timer_check,
5563 make_lispy_event, apply_modifiers, reorder_modifiers,
5564 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5565 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5566 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5567 Fcommand_execute, Fexecute_extended_command): Likewise.
5568 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5569 Fall_completions): Likewise.
5570 * window.c (Fset_window_margins): Likewise.
5571
5572 * callint.c (quotify_args): Don't explicitly use struct
5573 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5574
3a7093d8
KR
5575 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5576 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5577 if __ELF__ is defined.
5578
2a3d7146
GM
55791999-10-24 Gerd Moellmann <gerd@gnu.org>
5580
5581 * window.c (Fnext_window): Add a QUIT in the loop.
5582
8ac52782
GM
55831999-10-23 Gerd Moellmann <gerd@gnu.org>
5584
427ec082 5585 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5586 New targets.
5587
05f0d15a
DL
55881999-10-22 Dave Love <fx@gnu.org>
5589
5590 * emacs.c (main): Enable profiling conditional on __linux also.
5591
882fb0e6
GM
55921999-10-20 Gerd Moellmann <gerd@gnu.org>
5593
5594 * xrdb.c (x_load_resources): Set default resources for resource
5595 classes instead of for the specific Emacs.
5596
b5f5bc31
GM
55971999-10-19 Gerd Moellmann <gerd@gnu.org>
5598
66f4dd69
GM
5599 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5600 defines it that way.
427ec082 5601
b5f5bc31
GM
5602 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5603 if selected_frame is equal to Vterminal_frame.
5604
68c45bf0 56051999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5606
68c45bf0 5607 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5608
68c45bf0
PE
5609 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5610 when dumping, so that the dumped Emacs doesn't have stray locale info.
5611 (dired.o): Depend on systime.h.
5612 (editfns.o): Depend on coding.h.
5613
5614 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5615 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5616 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5617 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5618 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5619 Include <config.h> before any system include files.
5620
5621 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5622 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5623 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5624 xmenu.c, xterm.c:
5625 Do not include <stdlib.h>, as <config.h> does this now.
5626
5627 * callproc.c (Fcall_process):
5628 Synchronize messages locale before invoking strerror.
5629 Decode resulting string with locale-coding-system.
5630
5631 * coding.c (Vlocale_coding_system): New var.
5632 (syms_of_coding): Adjust to above change.
5633 (emacs_strerror): New function.
5634
5635 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5636
68c45bf0
PE
5637 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5638 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5639 HAVE_STRSIGNAL): New macros.
5640 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5641 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5642
5643 * dired.c: Include "systime.h".
5644 (Ffile_attributes): Do not cast s.st_size to int; this loses
5645 information if int is 32 bits but st_size and EMACS_INT are larger.
5646 Treat large device numbers like large inode numbers.
5647
5648 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5649
5650 * editfns.c: Include coding.h.
5651 (emacs_strftime): Remove decl.
5652 (emacs_strftimeu): New decl.
5653 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5654 Use emacs_strftimeu instead of emacs_strftime.
5655 (Fformat_time_string): Convert format string using
5656 Vlocale_coding_system, and convert result back. Synchronize time
5657 locale before invoking lower level function. Invoke
5658 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5659
68c45bf0
PE
5660 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5661 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5662 Vprevious_time_locale): New variables.
5663 (main): Invoke setlocale early, so that initial error messages are
5664 localized properly. But skip locale-setting if LC_ALL is "C".
5665 Fix up locale when it's safe to do so.
5666 (fixup_locale): Moved here from xterm.c.
5667 (synchronize_locale, synchronize_time_locale,
5668 synchronize_messages_locale): New functions.
5669 (syms_of_emacs): Accommodate above changes.
5670
5671 * fileio.c (report_file_error): Convert strerror output according
5672 to Vlocale_coding_system.
5673 (Finsert_file_contents): Check for arithmetic overflow in
5674 computations that depend on file size. Report IO errors
5675 with emacs_strerror, not strerror.
5676
5677 * fns.c (Fgethash): Declare dflt parameter.
5678
5679 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5680 is defined; that's config.h's job.
5681
5682 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5683 default these values to long, BITS_PER_LONG, and unsigned long.
5684 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5685 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5686 (code_convert_string_norecord, fixup_locale,
5687 synchronize_messages_locale, synchronize_time_locale,
5688 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5689 All Emacs callers of open, close, read, write changed to use
5690 emacs_open, emacs_close, emacs_read, emacs_write.
5691
5692 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5693 changed to file_tell.
5694 (saved_doc_string_position, prev_saved_doc_string_position): Now
5695 of type file_offset.
5696 (init_lread): Do not fix locale here; fixup_locale now does this.
5697
5698 * m/amdahl.h, s/usg5-4.h:
5699 (NSIG): Remove.
5700 (NSIG_MINIMUM): New macro.
5701
5702 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5703 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5704 s/umips.h, s/usg5-4.h:
5705 (SIGIO): Do not undef.
5706 (BROKEN_SIGIO): New macro.
5707
5708 * m/ustation.h:
5709 (SIGTSTP): Do not undef.
5710 (BROKEN_SIGTSTP): New macro.
5711
5712 * s/gnu-linux.h:
5713 (SIGPOLL, SIGURG): Do not undef.
5714 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5715
5716 * s/ptx4.h:
5717 (SIGINFO): Do not undef.
5718 (BROKEN_SIGINFO): New macros.
427ec082 5719
68c45bf0
PE
5720 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5721
5722 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5723 some Emacs-related changes merged.
5724
5725 * print.c (float_to_string): Prepend "-" to representation of a
5726 NaN if the NaN is negative.
5727
5728 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5729 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 5730
68c45bf0
PE
5731 * process.c (status_message, sigchld_handler): Synchronize locale,
5732 then use strsignal istead of sys_siglist.
5733 * w32proc.c (sys_wait): Likewise.
427ec082 5734
68c45bf0
PE
5735 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5736 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5737 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5738 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5739 (open, close, read, write, INTERRUPTIBLE_OPEN,
5740 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5741
5742 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5743
5744 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5745 sys_open, open): Remove.
5746 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5747 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5748 macros are no longer used.
5749 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5750 (emacs_close): Renamed from sys_close.
5751 (emacs_read): Renamed from sys_read.
5752 (emacs_write): Renamed from sys_write.
5753 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5754 (dup2): Do not print error on failure; the real dup2 doesn't.
5755 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5756
5757 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5758 is defined.
5759 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5760 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5761 (strsignal): Declare if !HAVE_STRSIGNAL.
5762
5763 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5764 (ElfW): Define in terms of ElfExpandBitsW.
5765
5766 * w32proc.c (sys_siglist): Remove decl.
5767
5768 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5769 with ANSI C.
5770 (display_string): Declare face_string_pos arg.
5771
5772 * xfns.c (Fx_show_tip): Declare timeout param.
5773
5774 * xterm.c: No need to include locale.h.
5775 (x_alloc_lighter_color, x_setup_relief_color):
5776 Pass arg as double, not float, for compatibility with ANSI C.
5777 (fixup_locale): Move to emacs.c.
5778 (x_term_init): Do not setlocale or fixup locale; the main program
5779 does this now.
5780
2f0b74ea
DL
57811999-10-18 Dave Love <fx@gnu.org>
5782
5783 * doc.c (Fdocumentation_property): Gcpro `tem'.
5784
471aa4a0
KH
57851999-10-18 Kenichi Handa <handa@etl.go.jp>
5786
5787 * lread.c (Fload): Calculate bytes of filename correctly.
5788 (openp): Likewise.
5789
aca2020b
KH
57901999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5791
5792 * print.c (print_preprocess): In case print-circle is nil,
5793 add OBJ to Vprint_number_table only when OBJ is a symbol.
5794
1f5fe392 57951999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
5796
5797 * coding.c (code_convert_string): Add record_unwind_protect to
5798 assure setting inhibit_pre_post_conversion back to zero. Take
5799 care of the multibyteness of the working buffer.
5800
5801 * coding.c (inhibit_pre_post_conversion): New variable.
5802 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
5803 ignore post-read-conversion and pre-write-conversion property of
5804 the coding system.
5805 (code_convert_region_unwind): New function.
5806 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
5807 running pre-write-conversion and post-read-conversion.
5808 (code_convert_string): Likewise.
5809
cd876a91
GM
58101999-10-17 Miles Bader <miles@gnu.org>
5811
5812 * editfns.c: Doc fix.
5813
58141999-10-17 Miles Bader <miles@gnu.org>
5815
5816 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
5817 argument preconditions of find_before_next_newline in the case
5818 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
5819 was indeed at the edge.
5820
58211999-10-17 Miles Bader <miles@gnu.org>
5822
5823 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
5824 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
5825
5826 * editfns.c (text_property_eq, text_property_stickiness): Don't
5827 use initializers for auto variables of type Lisp_Object.
5828 (find_field): Likewise. Use braces around nested ifs.
5829 (Fline_end_position): Store the raw eol in a variable, so that the
5830 final expression doesn't look so ugly.
5831 (Fconstrain_to_field): Doc fix.
5832 (preceding_pos): Renamed from `preceeding_pos'.
5833 (text_property_stickiness, find_field): Call preceding_pos,
5834 not preceeding_pos.
5835
58361999-10-17 Miles Bader <miles@gnu.org>
5837
5838 * editfns.c (Ffield_string_no_properties): New function.
5839 (text_property_stickiness, preceeding_pos): New functions.
5840 (Ffield_string): Remove PROPS parameter.
5841 (find_field): Add MERGE_AT_BOUNDARY parameter.
5842 Rewrite to use stickiness of `field' property to resolve
5843 ambiguous cases.
5844 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
5845 (Fconstrain_to_field): Likewise.
5846 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 5847 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
5848 Supply new MERGE_AT_BOUNDARY argument to find_field.
5849 (Fline_beginning_position, Fline_end_position): Supply new
5850 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
5851 Pass a value of Qt for the ONLY_IN_LINE argument to
5852 Fconstrain_to_field (only matters if N != 1).
5853 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
5854 to Fconstrain_to_field.
5855
5856 * minibuf.c (Fminibuffer_complete_word): Use
5857 Ffield_beginning to find the prompt end.
5858
58591999-10-17 Miles Bader <miles@gnu.org>
5860
5861 * editfns.c (Fconstrain_to_field): Add get/set-current-point
5862 behavior when NEW_POS is nil.
5863 (find_field): Use XSETFASTINT instead of make_number.
5864 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
5865 input string by seeing where the field begins, instead of
5866 looking at text-properties.
5867
58681999-10-17 Miles Bader <miles@gnu.org>
5869
5870 * editfns.c (Qfield): New variable.
5871 (find_field, Ferase_field, Ffield_string,
5872 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
5873 (Fline_beginning_position, Fline_end_position): Constrain to any field.
5874 (make_buffer_string_both): Remove minibuffer-prompt hack.
5875 (syms_of_editfns): Initialize Qfield, and subr entries for
5876 field functions above.
5877 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
5878 minibuf_save_list.
5879 Don't initialize minibuffer prompt length.
5880 Wrap prompt text-properties around the entire prompt.
5881 Add 'prompt text-property to prompt.
5882 Get final value with Ffield_string instead of make_buffer_string.
5883 (read_minibuf_unwind): Don't restore minibuffer prompt length from
5884 minibuf_save_list.
5885 (do_completion): Get minibuffer input with Ffield_string
5886 instead of Fbuffer_string.
5887 Erase minibuffer input with Ferase_field instead of erase_buffer.
5888 (Fminibuffer_complete_and_exit): Likewise.
5889 Test whether buffer is empty by looking for the 'prompt text
5890 property at the end.
5891 Set prompt length by looking for the end of the prompt text property,
5892 and save prompt length for later use (since there is no longer a
5893 buffer variable to get it from).
5894 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
5895 (syms_of_minibuf): Remove initializations of
5896 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
5897 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 5898 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
5899 Don't initialize prompt_end_charpos field.
5900 * syntax.c (Fforward_word): Likewise.
5901 Constrain to any field.
5902
3f6f7508
GM
59031999-10-16 Gerd Moellmann <gerd@gnu.org>
5904
5905 * window.c (enum save_restore_action): New.
5906 (save_restore_orig_size): Change parameter list. Add
5907 functionality to check for valid orig_top and orig_height members
5908 in a window tree.
5909 (grow_mini_window): Call save_restore_orig_size with new parameter
5910 list.
5911 (shrink_mini_window): Restore old window sizes only if old
5912 size information is valid in all windows in a window tree.
427ec082 5913
06482119
GM
59141999-10-15 Gerd Moellmann <gerd@gnu.org>
5915
2710454d
GM
5916 * xmenu.c (set_frame_menubar): Don't call
5917 x_set_menu_resources_from_menu_face here.
5918 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
5919
06482119
GM
5920 * xfns.c (gif_load): Fix handling of interlaced GIFs.
5921
17fa2837
DL
59221999-10-14 Dave Love <fx@gnu.org>
5923
5924 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
5925
45f93416
GM
59261999-10-14 Gerd Moellmann <gerd@gnu.org>
5927
5928 * process.c (Fopen_network_stream): Don't loop if gethostbyname
5929 fails and h_errno is TRY_AGAIN.
5930
c765b723
DL
59311999-10-13 Dave Love <fx@gnu.org>
5932
5933 * filelock.c (lock_file): Move gcpro of `fn'.
5934
dace7f4e
GM
59351999-10-10 Gerd Moellmann <gerd@gnu.org>
5936
5937 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 5938
83c8f461 59391999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
5940
5941 * print.c (print): When removing objects from Vprint_number_table,
5942 only scan the newly added objects.
5943 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
5944 unconditionally force it to stay in the table.
5945
85177c86
GM
59461999-10-09 Gerd Moellmann <gerd@gnu.org>
5947
5948 * xfns.c (prepare_image_for_display): Don't try to load image if
5949 loading it failed before.
5950 (lookup_image, prepare_image_for_display): Remember if loading the
5951 image failed.
5952 (xpm_load): Add missing UNBLOCK_INPUT.
5953
5954 * dispextern.h (struct image): New member load_failed_p.
5955
11e4de5d
SM
59561999-10-08 Stefan Monnier <monnier@cs.yale.edu>
5957
f28eba7b 5958 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
5959 in the docstring.
5960
f1da8f06
GM
59611999-10-08 Gerd Moellmann <gerd@gnu.org>
5962
5963 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
5964 Don't call XSetInputFocus because that can generate additional
5965 FocusIn events.
427ec082 5966
c37bbd4f
GM
59671999-10-07 Jeffrey C Honig <jch@bsdi.com>
5968
5969 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
5970
83c8f461 59711999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
5972
5973 * process.c (wait_reading_process_input): When trying to suck
5974 input from one process, for accept-process-output,
5975 exit that loop if we get EAGAIN or EWOULDBLOCK.
5976
577d9e2f
GM
59771999-10-07 Gerd Moellmann <gerd@gnu.org>
5978
5979 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
5980 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
5981 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
5982 Fpixmap_spec_p and Qpixmap_spec_p.
5983 (load_face_colors, check_lface_attrs,
5984 merge_face_vector_with_property,
5985 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
5986 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
5987 Fbitmap_spec_p.
5988
f5737ad2
GM
59891999-10-07 Gerd Moellmann <gerd@gnu.org>
5990
5991 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
5992 MODE_LINE_FACE_ID.
5993
5994 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
5995 (struct x_resources) [USE_X_TOOLKIT]: New.
5996 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
5997 [USE_MOTIF]: New.
5998 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
5999 [USE_LUCID]: New.
6000 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
6001 (Qmenu): New.
6002 (syms_of_xfaces): Initialize Qmenu.
6003 (realize_basic_faces): Realize face `menu'.
6004 (resolve_face_name): New.
6005 (lface_from_face_name): Use it.
6006 (Finternal_set_lisp_face_attribute): Ditto.
6007 (Fpixmap_spec_p): Rewritten. Extend doc string.
6008
6009 * xmenu.c (set_frame_menubar, xmenu_show): Call
6010 x_set_menu_resources_from_menu_face.
6011
6012 * dispextern.h (enum face_id): Add MENU_FACE_ID.
6013 (toplevel): Include X11/Intrinsic.h.
6014
6a1aa823
DL
60151999-10-03 Ken'ichi Handa <handa@gnu.org>
6016
6017 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
6018 correctly.
6019
26901792
DL
60201999-09-30 Kenichi Handa <handa@etl.go.jp>
6021
6022 * category.c (modify_lower_category_set): Set default value of
6023 TABLE correctly.
6024
6025 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
6026 size correctly.
6027
60281999-09-29 Gerd Moellmann <gerd@gnu.org>
6029
6030 * editfns.c (Fpropertize): Renamed from Fproperties.
6031
60321999-09-29 Gerd Moellmann <gerd@gnu.org>
6033
6034 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6035 frame that hasn't been initialized yet.
6036
83c8f461 60371999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6038
6039 * keymap.c (Fsingle_key_description): Make tem big enough.
6040 (describe_buffer_bindings): Make buf big enough.
6041
83c8f461 60421999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6043
6044 * intervals.c (get_local_map): Use indirect_function,
6045 not Findirect_function.
6046
26901792
DL
60471999-09-27 Dave Love <fx@gnu.org>
6048
6049 * cm.h: Remove unneeded declaration of ospeed.
6050
60511999-09-26 Gerd Moellmann <gerd@gnu.org>
6052
6053 * lisp.h (toplevel): Add prototype for
6054 next_single_char_property_change.
6055
6056 * textprop.c (next_single_char_property_change): New.
6057
6058 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6059 next_single_char_property_change.
6060
60611999-09-25 Gerd Moellmann <gerd@gnu.org>
6062
6063 * editfns.c (Fproperties): New.
6064 (syms_of_editfns): Defsubr it.
6065
6066 * xfns.c (lookup_image): Set image's timestamp because it's
6067 used when we look it up.
6068
60691999-09-23 Gerd Moellmann <gerd@gnu.org>
6070
6071 * window.c (enlarge_window): Add window parameter instead of using
6072 selected_window.
6073 (Fdisplay_buffer): Call it with window parameter instead of
6074 setting selected_window.
6075 (Fenlarge_window, Fshrink_window): Ditto.
6076 (shrink_mini_window): If there is no recorded height and position
6077 info, resize mini-window to height 1.
6078
6079 * xfns.c (image_error): Use add_to_log.
6080
6081 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6082 (load_face_font_or_fontset, load_color,
6083 merge_face_vector_with_property): Ditto.
6084
6085 * dispextern.h: Add prototype for add_to_log.
6086
6087 * xfaces.c (add_to_log): Move to xdisp.c.
6088
6089 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6090 parameter.
6091
60921999-09-23 Gerd Moellmann <gerd@gnu.org>
6093
6094 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6095 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6096
6097 * xdisp.c (resize_mini_window): Use grow_mini_window and
6098 shrink_mini_window.
6099
6100 * window.c (window_min_size): Add parameter ignore_fixed_p.
6101 (change_window_height): Call window_min_size with new parameter.
6102 (shrink_window_lowest_first, save_restore_orig_size,
6103 grow_mini_window, shrink_mini_window): New.
6104 (make_window, replace_window): Initialize orig_top and
6105 orig_height.
6106 (enlarge_window): Renamed from change_window_height. Make it
6107 static.
6108 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6109 enlarge_window instead of change_window_height.
6110
6111 * window.h (struct window): New members orig_top, orig_height.
6112 (toplevel): Add prototypes for grow_mini_window and
6113 shrink_mini_window. Remove prototype for change_window_height.
6114
61151999-09-21 Eli Zaretskii <eliz@gnu.org>
6116
6117 * frame.c (frame_name_fnn_p): Fix previous change.
6118
61191999-09-20 Gerd Moellmann <gerd@gnu.org>
6120
6121 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6122
6123 * dispnew.c (direct_output_for_insert): Cast arguments to
6124 safe_bcopy to char *.
6125
6126 * lread.c (readchar): Remove unused variables.
6127 (read_filtered_event, read1, Fmapatoms): Ditto.
6128 (toplevel): Include intervals.h.
6129
6130 * eval.c (Fsignal): Remove unused variables.
6131 (Fcommandp, do_autoload): Ditto.
6132
6133 * lisp.h: Add prototype for safe_bcopy, fatal.
6134
6135 * editfns.c (init_editfns): Remove unused variables.
6136 (Fgoto_char, Fchar_after, Fformat): Ditto.
6137 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6138
6139 * data.c (find_symbol_value): Remove unused variables.
6140 (Faref, Fstring_to_number): Ditto.
6141 (toplevel): Include stdio.h.
6142 (Fnumber_to_string): Cast XINT to long for %ld.
6143
6144 * casefiddle.c (casify_object): Remove unused variables.
6145 (casify_region): Ditto.
6146
427ec082 6147 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6148 conditinally compiled section in #ifdef.
6149 (toplevel): Include stdio.h.
6150
6151 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6152 keys_of_keymap, syms_of_keymap): Remove unused variables.
6153
61541999-09-20 Gerd Moellmann <gerd@gnu.org>
6155
6156 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6157 whose corresponding window rows have been disabled in
6158 try_window_id.
6159
61601999-09-20 Gerd Moellmann <gerd@gnu.org>
6161
6162 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6163 that window start is out of range.
6164 (handle_display_prop, handle_single_display_prop): Replace
6165 marginal area specifications like `left-margin' with `(margin
6166 left-margin)'.
6167 (Qmargin): New.
6168 (syms_of_xdisp): Initialize Qmargin.
6169
61701999-09-19 Gerd Moellmann <gerd@gnu.org>
6171
6172 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6173 describe_syntax, skip_chars): Remove unused variables.
6174 (back_comment, forw_comment): Add braces to if-statement with
6175 if-else as dependent statement.
6176
6177 * process.c (list_processes_1): Remove unused variables.
6178 (Fopen_network_stream, create_process): Add parentheses to
6179 conditional expressions.
6180 (create_process): Put declaration of sigchld in #if 0.
6181 (Fopen_network_stream): Removed unused variables.
6182 (Fopen_network_stream, wait_reading_process_input,
6183 wait_reading_process_input, send_process, send_process): Ditto.
6184 (toplevel): Add prototypes for set_waiting_for_input and
6185 keyboard_bit_set.
6186
6187 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6188
6189 * textprop.c (Fset_text_properties): Remove unused variables.
6190 (text_property_list, verify_interval_modification,
6191 interval_has_all_properties): Ditto.
6192
6193 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6194 (Fcall_process): Remove unused variable.
6195
6196 * keyboard.c (Frecursive_edit): Remove unused variable.
6197 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6198 timer_check, make_lispy_event, menu_bar_items,
6199 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6200 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6201 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6202 read_key_sequence): Ditto. Fread_key_sequence,
6203 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6204 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6205 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6206 (Fexecute_extended_command): Cast XINT to long for %ld.
6207 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6208 (toplevel): Include sys/types.h.
6209
6210 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6211 (toplevel): Add prototypes for stuff_char, and
6212 code_convert_string_norecord.
6213
62141999-09-19 Gerd Moellmann <gerd@gnu.org>
6215
6216 * buffer.h: Add prototype for r_re_alloc.
6217
6218 * insdel.c (copy_text): Removed unused variables.
6219 (count_combining_after, count_combining_after, insert_1_both,
6220 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6221 (adjust_after_replace, replace_range): Add parentheses to logical
6222 expressions. Remove unused variables.
6223 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6224 expression.
6225
6226 * alloc.c (Fgarbage_collect): Remove unused variable.
6227 (compact_strings): Add parentheses around assignments in
6228 conditional context.
6229 (toplevel): Put declaration of unused function clear_marks
6230 in #if 0 like its definition.
6231
6232 * lisp.h: Add prototype for shrink_regexp_cache,
6233 sweep_weak_hash_tables.
6234
62351999-09-19 Dave Love <fx@gnu.org>
6236
6237 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6238
6239 * doc.c (read_bytecode_char): Declare arg.
6240
6241 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6242 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6243
62441999-09-18 Richard Stallman <rms@gnu.org>
6245
6246 * xdisp.c (echo_area_display): Turn off code that returned
6247 without doing anything when using a terminal frame.
6248
83c8f461 62491999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6250
6251 * unexelf.c (unexec): Don't get confused by a short section
6252 just before the bss section.
6253
26901792
DL
62541999-09-16 Gerd Moellmann <gerd@gnu.org>
6255
6256 * emacs.c (main): Remove unused variables.
6257 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6258
6259 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6260 init_fileio_once, syms_of_sound, init_xfns, init_fns
6261 init_sound, check_message_stack.
6262
6263 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6264
6265 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6266 ambiguous else warning.
6267 (split_interval_left): Remove unused variables.
6268 (previous_interval, adjust_intervals_for_deletion,
6269 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6270 (icount, idepth, zero_length): Move into #if 0 section below
6271 original position where these are used.
6272
6273 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6274
6275 * buffer.c (Fkill_buffer): Remove unused variables.
6276 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6277 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6278 init_buffer_once, (syms_of_buffer): Ditto.
6279
6280 * xrdb.c (get_fallback): Remove unused variable.
6281 (x_load_resources): Ditto. Put local variable used for Motif only
6282 in #ifdef USE_MOTIF.
6283
62841999-09-16 Gerd Moellmann <gerd@gnu.org>
6285
6286 * minibuf.c (read_minibuf): Remove unused variables.
6287 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6288 (do_completion): Move assignment out of conditional context.
6289 (Fdisplay_completion_list): Add parentheses to conditional expression.
6290
6291 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6292
6293 * lisp.h: Add prototype for no_switch_window.
6294
6295 * window.c (Fset_window_buffer): Remove unused variables.
6296 (Fset_window_margins): Ditto.
6297
6298 * xdisp.c (resize_mini_window): Temporarily set the selected
6299 window's or Vminibuf_scroll_window's height to "fixed" around
6300 the call the change_window_height.
6301
6302 * window.c (window_fixed_size_p): Check window's height_fixed_p
6303 flag.
6304
6305 * window.h (struct window): New member height_fixed_p.
6306
6307 * dispnew.c (direct_output_forward_char): Don't use this method
6308 if showing a message or a message was just cleared because we
6309 might need to resize the mini-window.
6310
63111999-09-16 Gerd Moellmann <gerd@gnu.org>
6312
6313 * frame.c (Fdelete_frame): Correct local variable pointing to
6314 selected frame after selecting new frame.
6315
63161999-09-15 Richard Stallman <rms@gnu.org>
6317
6318 * puresize.h (BASE_PURESIZE): Increase to 525000.
6319
6320 * filelock.c (Vtemporary_file_directory): New variable.
6321 (syms_of_filelock): Set up Lisp variable.
6322
63231999-09-15 Gerd Moellmann <gerd@gnu.org>
6324
6325 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6326 (encode_terminal_code): Remove unused variables.
6327 (turn_off_face): Ditto.
6328 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6329
6330 * dispnew.c (update_frame_line): If writing whole desired line,
6331 don't clear to end of line if already at the end.
6332
63331999-09-15 Gerd Moellmann <gerd@gnu.org>
6334
6335 * xdisp.c (resize_mini_window): Don't report changed window
6336 height if it actually hasn't changed.
6337
427ec082 6338 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6339 unused variables.
6340 (mark_shell_size_user_specified): Put in #if 0 because not used.
6341 (create_frame_gcs): Put in #if 0 because currently unused.
6342 (first_frame_p): Ditto.
6343
6344 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6345 single_submenu, update_frame_menubar, set_frame_menubar,
6346 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6347 variables.
6348
6349 * print.c (PRINTFULLP): Removed because it is no longer used and
6350 is misleading.
6351 (Ferror_message_string): Remove unused variables.
6352 (print_object): Cast argument of sprintf to long for `%ld'
6353 specifier. Remove unused variable.
6354
63551999-09-14 Gerd Moellmann <gerd@gnu.org>
6356
6357 * sound.c (Fplay_sound): Remove usused variables.
6358 (be2hs): Put in #if 0 because it's currently not used.
6359
63601999-09-14 Ken Raeburn <raeburn@gnu.org>
6361
6362 * print.c (Ferror_message_string, print_error_message,
6363 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6364 member access.
6365
63661999-09-14 Gerd Moellmann <gerd@gnu.org>
6367
6368 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6369
6370 * frame.c (Fnext_frame): Remove unused variable(s).
6371 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6372 (store_frame_param): Add parentheses to conditional expression.
6373 (Fmodify_frame_parameters): Remove unused variables.
6374 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6375 Ditto.
6376
6377 * xfns.c (x_set_background_color): Remove unused variable(s).
6378 (x_set_border_pixel): Ditto.
6379 (x_set_menu_bar_lines): Put local variable used only for
6380 non-toolkit case in #ifdef/#endif.
6381 (x_figure_window_size): Remove unused variable(s).
427ec082 6382 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6383 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6384 png_load, jpeg_load, gif_load, x_create_tip_frame,
6385 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6386
6387 * xterm.c (x_scroll_bar_handle_click): Compile only if
6388 not USE_TOOLKIT_SCROLL_BARS.
6389 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6390
6391 * dispextern.h: Add prototypes for gamma_correct and
6392 x_kill_gs_process.
6393
6394 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6395 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6396 x_set_toolkit_scroll_bar_thumb): Ditto.
6397 (x_scroll_bar_create): Move local variable to the
6398 conditionally compiled section of code where it is used.
6399 (x_scroll_bar_create): Remove unused variable(s).
6400 (x_scroll_bar_remove, XTread_socket): Ditto.
6401 (XTread_socket) <ConfigureNotify>: Move variables used for
6402 non-toolkit case into conditionally compiled section of code.
6403
6404 * window.h (freeze_window_starts): Fix typo in prototype.
6405
6406 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6407 variable(s).
6408
6409 * lisp.h: Add prototype for debug_print.
6410
6411 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6412 to use do-while.
6413
6414 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6415 (Fchar_table_range, Fset_char_table_default, mapcar1,
6416 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6417
6418 * lisp.h: Add prototype for getloadavg.
6419
64201999-09-14 Andreas Schwab <schwab@gnu.org>
6421
6422 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6423
6424 * lisp.h: Declare close_file_unwind.
6425
64261999-09-14 Richard Stallman <rms@gnu.org>
6427
6428 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6429
64301999-09-13 Gerd Moellmann <gerd@gnu.org>
6431
6432 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6433 is always set correctly.
6434
64351999-09-13 Dave Love <fx@gnu.org>
6436
6437 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6438 declaration.
6439
64401999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6441
6442 * xdisp.c (QCfile): Move here from xfns.c.
6443 (syms_of_xdisp): Initialize it.
6444 (message2_nolog): Change for Lisp_Object selected_frame.
6445 (message3_nolog, message_with_string, message,
6446 setup_echo_area_for_printing, truncate_echo_area,
6447 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6448
64491999-09-13 Dave Love <fx@gnu.org>
6450
6451 * xterm.c: Don't continue #define args for benefit of old cc.
6452 (xt_action_hook): Indent #error for benefit of K&R cc.
6453
64541999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6455
6456 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6457 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6458 (XRINGBELL): Removed.
6459
64601999-09-13 Dave Love <fx@gnu.org>
6461
6462 * xfns.c (x_put_x_image): Make type consistent with declaration.
6463
6464 * fns.c (Fmake_hash_table): Fix string continuation.
6465
64661999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6467
6468 * xfns.c (QCfile): Moved to xdisp.c.
6469 (syms_of_xfns): Don't initialize QCfile.
6470 (check_x_frame): Change for Lisp_Object selected_frame.
6471 (check_x_display_info, x_get_resource_string): Ditto.
6472
64731999-09-13 Gerd Moellmann <gerd@gnu.org>
6474
6475 * minibuf.c (choose_minibuf_frame): Don't try to set the
6476 mini-buffer window's buffer, if the buffer is invalid.
6477
6478 * xfns.c (QCfile): Moved to xdisp.c.
6479 (syms_of_xfns): Don't initialize QCfile.
6480
6481 * xdisp.c (QCfile): Move here from xfns.c.
6482 (syms_of_xdisp): Initialize it.
6483
6484 * lisp.h (selected_frame): Add external declaration.
6485
6486 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6487 (Fx_store_cut_buffer_internal): Ditto.
6488 (Fx_rotate_cut_buffers_internal): Ditto.
6489
6490 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6491 selected_frame.
6492 (Finternal_set_lisp_face_attribute): Ditto.
6493 (Finternal_get_lisp_face_attribute): Ditto.
6494 (Finternal_lisp_face_empty_p): Ditto.
6495 (Fdump_face): Ditto.
6496
6497 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6498 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6499 set_terminal_window, set_scroll_region, reassert_line_highlight,
6500 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6501 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6502 encode_terminal_code, write_glyphs, term_init): Ditto.
6503
6504 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6505 (kbd_input_ast, read_input_waiting): Ditto.
6506
6507 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6508 selected_frame.
6509 (read_minibuf): Ditto.
6510
6511 * keyboard.c (command_loop_1): Change for Lisp_Object
6512 selected_frame.
6513 (cmd_error_internal, command_loop_1, read_char,
6514 kbd_buffer_get_event, read_avail_input,
6515 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6516 interrupt_signal, quit_throw_to_read_char): Ditto.
6517
6518 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6519 (Ffontset_info): DItto.
6520
6521 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6522
6523 * dispnew.c (selected_frame): Make it a Lisp_Object.
6524 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6525 (direct_output_for_insert, direct_output_forward_char,
6526 init_display): Ditto.
6527
6528 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6529 selected_frame.
6530 (set_internal): Ditto.
6531
6532 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6533 (record_buffer): Ditto.
6534
6535 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6536 (do_switch_frame): Change for Lisp_Object selected_frame.
6537 (Fselected_frame): Ditto.
6538 (Fframe_first_window): Use SELECTED_FRAME.
6539 (Fframe_root_window): Change for Lisp_Object selected_frame.
6540 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6541 Fprevious_frame, other_visible_frames, Fdelete_frame,
6542 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6543 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6544 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6545 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6546 Fset_frame_height, Fset_frame_width): Ditto.
6547
65481999-09-13 Gerd Moellmann <gerd@gnu.org>
6549
6550 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6551 (message3_nolog, message_with_string, message,
6552 setup_echo_area_for_printing, truncate_echo_area,
6553 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6554
6555 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6556 (Fx_popup_dialog): Ditto.
6557
6558 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6559 (check_x_display_info, x_get_resource_string): Ditto.
6560
6561 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6562 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6563 (XRINGBELL): Removed.
6564
6565 * window.c (Fminibuffer_window): Change for Lisp_Object
6566 selected_frame.
6567 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6568 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6569 Fcurrent_window_configuration, init_window_once): Ditto.
6570
6571 * frame.h (SELECTED_FRAME): New.
6572
65731999-09-12 Ken Raeburn <raeburn@gnu.org>
6574
6575 * category.c (word_boundary_p): Use XCAR and XCDR.
6576 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6577 Fregister_code_conversion_map): Likewise.
6578 * coding.c (setup_coding_system, detect_coding_system,
6579 Ffind_operation_coding_system, Fset_coding_priority_internal):
6580 Likewise.
6581 * doc.c (get_doc_string, Fdocumentation,
6582 store_function_docstring): Likewise.
6583 * editfns.c (save_restriction_restore): Likewise.
6584 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6585 skip_debugger, find_handler_clause, Fautoload, Fapply,
6586 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6587 Likewise.
6588 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6589 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6590 Fread_file_name): Likewise.
6591 * filelock.c (unlock_all_files): Likewise.
6592 * insdel.c (Fcombine_after_change_execute): Likewise.
6593 * intervals.c (adjust_intervals_for_insertion): Likewise.
6594 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6595 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6596 store_in_keymap, Fcopy_keymap, define_as_prefix,
6597 current_minor_maps, Faccessible_keymaps,
6598 accessible_keymaps_char_table, Fkey_description,
6599 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6600 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6601 describe_map): Likewise.
6602 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6603 read_list, init_lread): Likewise.
6604 * search.c (Fmatch_data): Likewise.
6605 * sunfns.c (Fsun_menu_internal): Likewise.
6606 * syntax.c (describe_syntax): Likewise.
6607 * undo.c (record_insert, record_delete, Fundo_boundary,
6608 truncate_undo_list): Likewise.
6609 * vmsproc.c (child_sig): Likewise.
6610
6611 * editfns.c (Fformat): Use XFLOAT_DATA.
6612
66131999-09-12 Gerd Moellmann <gerd@gnu.org>
6614
6615 * keyboard.c (command_loop_1): Resize mini-window to the
6616 exact size of a message displayed, if any.
6617
6618 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6619 to exact size if exact_p is non-zero.
6620 (display_echo_area_1): Call resize_mini_window with
6621 new parameter.
6622 (redisplay_internal): Ditto.
6623 (resize_echo_area_axactly): New.
6624
6625 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6626 new parameter.
6627
6628 * dispextern.h: Change prototype of resize_mini_window.
6629 Add prototype for resize_echo_area_axactly.
6630
6631 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6632 (syms_of_xfaces): Defsubr accordingly.
6633
6634 * xdisp.c (hscroll_window_tree): Choose cursor row from
6635 desired or current matrix.
6636 (redisplay_internal): Hscroll before updating.
6637
66381999-09-12 Gerd Moellmann <gerd@gnu.org>
6639
6640 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6641 of minibuffer_prompt_length.
6642
6643 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6644 of minibuffer_prompt_length.
6645 (read_minibuf_unwind): Ditto.
6646 (Fminibuffer_complete_and_exit): Ditto.
6647 (Fminibuffer_complete_word): Ditto.
6648 (Fminibuffer_prompt_end): Ditto.
6649
6650 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6651 of minibuffer_prompt_length.
6652 (Fline_beginning_position): Ditto.
6653
6654 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6655 of minibuffer_prompt_length.
6656 (Fmake_indirect_buffer): Ditto.
6657 (Fkill_buffer): Ditto.
6658 (Ferase_buffer): Ditto.
6659
6660 * buffer.h (prompt_end_charpos): Replaces
6661 minibuffer_prompt_length.
6662
427ec082 6663 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6664 without the prompt.
6665
6666 * editfns.c (make_buffer_string_both): Take out the code
6667 to handle mini-buffer prompts.
6668 (Fbuffer_string): Handle the prompt here, instead.
6669
6670 * xfaces.c (lface_from_face_name): Resolve face aliases.
6671 (Qmode_line): Replaces Qmodeline.
6672 (realize_basic_faces): Use Qmode_line.
6673 (syms_of_xfaces): Initialize Qmode_line.
6674
66751999-09-12 Gerd Moellmann <gerd@gnu.org>
6676
6677 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6678 current column after inserting prompt.
6679 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6680
6681 * xfaces.c (Qframe_update_face_colors): New.
6682 (syms_of_xfaces): Initialize call.
6683 (update_face_from_frame_parameter): Call that function when
6684 the frame's background changes.
6685
66861999-09-12 Richard Stallman <rms@gnu.org>
6687
6688 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6689
66901999-09-12 Ken Raeburn <raeburn@gnu.org>
6691
6692 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6693 mark_object, mark_buffer): Use XCAR and XCDR.
6694 * bytecode.c (Fbyte_code): Likewise.
6695 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6696 Likewise.
6697 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6698 getenv_internal): Likewise.
6699 * dired.c (file_name_completion): Likewise.
6700 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6701 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6702 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6703 * indent.c (Fcompute_motion): Likewise.
6704 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6705 list_processes_1, Fstart_process, Fopen_network_stream,
6706 wait_reading_process_input, read_process_output_call,
6707 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6708 status_notify, wait_reading_process_input): Likewise.
6709 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6710 extend_property_ranges): Likewise.
6711 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6712 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6713 x_report_frame_params, x_set_cursor_type, x_icon_type,
6714 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6715 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6716 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6717 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6718 x_display_info_for_name, Fx_display_list): Likewise.
6719 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6720 Fx_popup_menu, Fx_popup_dialog): Likewise.
6721 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6722 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6723 w32_term_init, x_delete_display): Likewise.
6724 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6725 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6726 x_top_window_to_frame, x_set_frame_parameters,
6727 x_report_frame_params, x_set_cursor_type, x_icon_type,
6728 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6729 Fx_display_list, x_create_tip_frame): Likewise.
6730 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6731 Fx_popup_menu, Fx_popup_dialog): Likewise.
6732 * xselect.c (x_own_selection, x_get_local_selection,
6733 x_handle_selection_request, x_handle_selection_clear,
6734 x_clear_frame_selections, wait_for_property_change_unwind,
6735 wait_for_property_change, x_handle_property_notify,
6736 copy_multiple_data, x_get_foreign_selection,
6737 lisp_data_to_selection_data, clean_local_selection_data,
6738 x_handle_selection_notify, Fx_get_selection_internal,
6739 x_disown_buffer_selections): Likewise.
6740 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6741 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6742 Likewise.
6743
6744 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6745 XFLOAT_DATA.
6746 * bytecode.c (Fbyte_code): Likewise.
6747 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6748 fmod_float): Likewise.
6749
67501999-09-11 Richard Stallman <rms@gnu.org>
6751
6752 * xdisp.c (run_window_scroll_functions): If hook functions switch
6753 buffers, switch back after.
6754
67551999-09-11 Ken Raeburn <raeburn@gnu.org>
6756
6757 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6758 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6759 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6760 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6761 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6762 XCDR.
6763 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6764 XCDR.
6765
67661999-09-10 Richard Stallman <rms@gnu.org>
6767
6768 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6769 not RevertToPointerRoot.
6770 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6771 Fix the code to clear around the scroll bar.
6772
67731999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6774
6775 * print.c: Support print-circle and related features.
6776 (Vprint_gensym_alist): Removed.
6777 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6778 Vprint_number_table): New variables.
6779 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6780 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6781 (print, print_preprocess, print_preprocess_string, print_object):
6782 New/modified functions with print-circle feature. Use
6783 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6784 (syms_of_print): Defined new Lisp variables `print-circle',
6785 `print-continuous-numbering', `print-number-table'.
6786
67871999-09-10 Gerd Moellmann <gerd@gnu.org>
6788
6789 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6790 as background color specification instead of an integer.
6791 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6792 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6793 (clear_image_cache, syms_of_xfns): Use it.
6794 (Qpostscript): Replaces Qghostscript.
6795 (gs_type): Use it.
6796 (gs_image_p): Ditto.
6797 (syms_of_xfns): Initialize Qpostscript.
6798
67991999-09-10 Richard Stallman <rms@gnu.org>
6800
6801 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
6802
68031999-09-09 Richard Stallman <rms@gnu.org>
6804
6805 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
6806
6807 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
6808
68091999-09-09 Gerd Moellmann <gerd@gnu.org>
6810
6811 * fns.c (Fmakehash): Accept just one optional argument TEST.
6812
6813 * xfns.c (QCindex): New.
6814 (syms_of_xfns): Initialize QCindex.
6815 (gif_load): Use it instead of `:image'.
6816
68171999-09-09 Richard Stallman <rms@gnu.org>
6818
6819 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
6820 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
6821
68221999-09-08 Gerd Moellmann <gerd@gnu.org>
6823
6824 * xdisp.c (Qwhen): Replaces QCwhen.
6825 (syms_of_xdisp): Initialized it instead of QCwhen.
6826 (handle_single_display_prop): Use it instead of QCwhen.
6827
68281999-09-08 Ken'ichi Handa <handa@gnu.org>
6829
6830 * charset.c (translate_char): Reset MSBs of arguments of
6831 MAKE_CHAR.
6832 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
6833
68341999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
6835
6836 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
6837
6838 * fns.c (Fbase64_decode_region): Don't place point outside of the
6839 current accessible portion.
6840
68411999-09-07 Richard Stallman <rms@gnu.org>
6842
6843 * keymap.c (fix_submap_inheritance): Do nothing if the proper
6844 parent is an ancestor of SUBMAP; otherwise, add it as the
6845 ultimate ancestor.
6846
68471999-09-07 Gerd Moellmann <gerd@gnu.org>
6848
6849 * xdisp.c (handle_single_display_prop): Change conditional
6850 display property to `:when FORM . VALUE'.
6851
68521999-09-07 Richard Stallman <rms@gnu.org>
6853
6854 * fileio.c (Fwrite_region): Doc fix.
6855
68561999-09-07 Stefan Monnier <monnier@cs.yale.edu>
6857
6858 * fileio.c (Qexcl): New variable.
6859 (report_file_error): Handle EEXIST specially.
6860 (Fwrite_region): Special handling for CONFIRM = `excl'.
6861 (syms_of_fileio): Initialize Qexcl.
6862
68631999-09-07 Gerd Moellmann <gerd@gnu.org>
6864
6865 * xfns.c (x_set_foreground_color): Call
6866 update_face_from_frame_parameter.
6867 (x_set_background_color): Ditto.
6868 (x_set_mouse_color): Ditto.
6869 (x_set_cursor_color): Ditto.
6870 (x_set_border_color): Ditto.
6871 (x_set_scroll_bar_foreground): Ditto.
6872 (x_set_scroll_bar_background): Ditto.
6873
6874 * xfaces.c (recompute_basic_faces): Clear face cache.
6875 (Finternal_set_lisp_face_attribute): Modify frame parameters
6876 if attributes of certain faces are changed.
6877 (update_face_from_frame_parameter): New.
6878
6879 * xfaces.c (realize_basic_faces): Realize new basic faces.
6880
6881 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
6882 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
6883
6884 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
6885 (syms_of_xfaces): Intialize new symbols.
6886
6887 * fns.c (Fmakehash): Take one argument, test, make all the
6888 rest keyword arguments.
6889
6890 * window.c (Fset_window_margins): Make window the first argument.
6891 (set_window_buffer): Call Fset_window_margins with window as first
6892 argument.
6893
68941999-09-07 Gerd Moellmann <gerd@gnu.org>
6895
6896 * xfaces.c (Qfringe): Replaces Qmargin.
6897
68981999-09-07 Kenichi Handa <handa@etl.go.jp>
6899
6900 * charset.h: Lots of comments fixed.
6901 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
6902 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
6903
6904 * charset.c : Lots of comments fixed.
6905 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
6906 (CHAR_COMPONENTS_VALID_P): Name changed from
6907 CHAR_COMPONENT_VALID_P. Caller changed.
6908
69091999-09-06 Richard Stallman <rms@gnu.org>
6910
6911 * insdel.c (syms_of_insdel): Define Lisp variable
6912 inhibit-modification-hooks.
6913
69141999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
6915
6916 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
6917 unexaix.c.
6918
6919 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
6920
69211999-09-06 Dave Love <fx@gnu.org>
6922
6923 * unexaix.c: New version incorporating Michael Sperber's changes
6924 from XEmacs. Should solve problems on AIX 4.3.
6925
6926 * lread.c (Vbyte_boolean_vars): New variable.
6927 (defvar_bool, syms_of_lread): Use it.
6928
69291999-09-05 Richard Stallman <rms@gnu.org>
6930
6931 * minibuf.c (read_minibuf): Put all three properties on the
6932 same range, the whole prompt.
6933
69341999-09-05 Gerd Moellmann <gerd@gnu.org>
6935
6936 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
6937 (Fplay_sound, syms_of_sound): Use it.
6938 (parse_sound): Allow float volume values in the range [0, 1].
6939 (Fplay_sound): Ditto.
6940
6941 * window.c (Fset_window_vscroll): Make window the first argument,
6942 amount to scroll the second. Take non-negative vscroll as
6943 argument.
6944 (Fwindow_vscroll): Return non-negative vscroll.
6945
6946 * xfns.c (Fx_show_tip): Improve documentation.
6947
69481999-09-05 Gerd Moellmann <gerd@gnu.org>
6949
6950 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
6951 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
6952 `top-line' and `top_line' to `header-line' and `header_line'.
6953 Likewise for similar spellings.
6954
69551999-09-05 Gerd Moellmann <gerd@gnu.org>
6956
6957 * xdisp.c (row_containing_pos): New.
6958 (try_window_id): Use it.
6959
6960 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
6961 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
6962 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
6963 Likewise for upper-case etc.
6964
69651999-09-05 Gerd Moellmann <gerd@gnu.org>
6966
6967 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6968 Fix reference to renamed variable.
6969
69701999-09-04 Gerd Moellmann <gerd@gnu.org>
6971
6972 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 6973 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
6974 Qfixed_window_size.
6975 (syms_of_window): Ditto.
6976
6977 * fns.c (Fmakehash): Exchange optional test and size arguments.
6978
69791999-09-03 Gerd Moellmann <gerd@gnu.org>
6980
6981 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
6982 under newly created scroll bar.
6983 (expose_window): If window is not yet fully initialized, do
6984 nothing. This can happen when toolkit scroll bars are used and a
6985 window is split. Reconfiguring the scroll bars will generate an
6986 expose for a newly created window.
6987
6988 * frame.h (struct frame): New member `gamma'.
6989
6990 * xfns.c: Include math.h. Add extern declaration for atof in case
6991 we don't see one.
6992 (Qscreen_gamma): New.
6993 (struct x_frame_parm_table): Add prototypes, add
6994 x_set_screen_gamma.
6995 (gamma_correct): New function.
6996 (defined_color): Call it.
6997 (x_set_screen_gamma): New.
6998 (x_set_title): Add parameter old_value.
6999 (RES_TYPE_FLOAT): New.
7000 (x_get_arg): Handle RES_TYPE_FLOAT.
7001 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
7002 (lookup_pixel_color): Change call to x_alloc_nearest_color to
7003 new prototype.
7004 (lookup_rgb_color): Ditto.
7005 (syms_of_xfns): Initialize Qscreen_gamma.
7006
7007 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
7008 New. Allocate color for lwlib widgets.
7009 (x_alloc_nearest_color): Change parameter list include the
7010 frame on which to allocate colors. Gamma-correct colors.
7011 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
7012 parameter list.
7013
7014 * xterm.h: Change protorype of x_alloc_nearest_color.
7015
70161999-09-03 Richard Stallman <rms@gnu.org>
7017
7018 * callproc.c: Delete the system-independent include of stdlib.h
7019 (leaving only the one in the WINDOWSNT conditional).
7020
70211999-09-03 Andrew Choi <choi@cs.hku.hk>
7022
7023 * callproc.c (call-process) [macintosh]: Call mac_run_command in
7024 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 7025
26901792
DL
7026 * dispextern.h [macintosh]: Include macterm.h to define substitute X
7027 Window types and macros.
7028
7029 * frame.h: Do nothing if included a second time.
7030 (enum output_method): Add mac_output frame type.
7031 (union output_data): Add new alternative `mac'.
7032 (FRAME_MAC_P): New macro.
427ec082 7033
26901792
DL
7034 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7035 (syms_of_frame_1): Initialize Qmac.
7036 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7037 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7038 (Fmodify_frame_parameters) [macintosh]: Call
7039 mac_set_frame_parameter in macterm.c.
427ec082 7040
26901792
DL
7041 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7042 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7043
26901792
DL
7044 * make-docfiles.c: Correctly handle input files with Mac-style
7045 eol's.
427ec082 7046
26901792 7047 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7048
26901792
DL
7049 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7050 file of an X Window environment.
427ec082 7051
26901792
DL
7052 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7053 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7054
26901792
DL
7055 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7056 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7057 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7058 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7059 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7060 New functions, replacing POSIX features.
427ec082 7061
26901792
DL
7062 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7063 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7064 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7065
7066 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7067 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7068 (myPasswdDir, TempDirName, sys_siglist): New variables.
7069
7070 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7071 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7072 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7073 Define empty stubs so Emacs will link.
7074
70751999-09-03 Gerd Moellmann <gerd@gnu.org>
7076
7077 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7078
7079 * window.h: New member frozen_window_start_p.
7080
7081 * window.c (foreach_window, foreach_window_1): New.
7082 (freeze_window_start, freeze_window_starts): New.
7083 (make_window): Initialize frozen_window_start_p.
7084 (replace_window): Ditto.
7085 (Fset_window_point): Remove references to deleted variables.
7086 (Fset_window_start): Ditto.
7087
7088 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7089 resize_mini_initial_height): Removed.
7090 (syms_of_xdisp): Remove references to these variables.
7091 (resize_mini_window): Don't save window configuration, freeze
7092 window starts instead. Enlarge window until displaying an empty
7093 buffer, then shrink it. Make the function externally visible.
7094 (redisplay_window): Treat frozen window start like forced start,
7095 but accept point outside of the window.
7096
7097 * dispextern.h: Add function prototype for resize_mini_window.
7098
7099 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7100 reaching minibuf_level 0.
7101
7102 * lisp.h: Remove extern declarations for variables deleted from
7103 xdisp.c.
7104
7105 * dispnew.c (adjust_frame_glyphs): Remove reference to
7106 Vresize_mini_config.
7107
71081999-09-03 Gerd Moellmann <gerd@gnu.org>
7109
7110 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7111 to USE_TOOLKIT_SCROLL_BARS.
7112
7113 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7114 here.
7115 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7116 under newly created scroll bar. Put toolkit scroll bars in the
7117 middle of the area reserved for the scroll bar.
7118
71191999-09-03 Kenichi Handa <handa@etl.go.jp>
7120
7121 The following changes are for the new handling of mulitbyte
7122 sequence. Now, except for a composite character, no multibyte
7123 character in string/buffer has trailing garbage bytes. For
7124 instance, the length of string "\201\300\300" is now 2, the first
7125 character is Latin-1 A-grave, the second is raw \300.
7126
7127 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7128 are negative.
7129 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7130 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7131 (PARSE_COMPOSITE_SEQ): New macro.
7132 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7133 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7134 (CHAR_PRINTABLE_P): New macro.
7135 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7136 (STRING_CHAR_AND_LENGTH): Likewise.
7137 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7138 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7139 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7140
7141 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7142 (SPLIT_CHARACTER_SEQ): New macro.
7143 (SPLIT_MULTIBYTE_SEQ): New macro.
7144 (CHAR_COMPONENT_VALID_P): New macro.
7145 (non_ascii_char_to_string): Generate a multibyte sequence as far
7146 as possible.
7147 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7148 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7149 (split_non_ascii_string): Likewise.
7150 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7151 (char_printable_p): New function.
7152 (translate_char): Check character by NATNUMP instead of INTEGERP.
7153 (unibyte_char_to_multibyte): Call char_valid_p instead of
7154 VALID_MULTIBYTE_CHAR_P.
7155 (Fmake_char_internal): Check the arguments more rigidly.
7156 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7157 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7158 (Fmultibyte_char_to_unibyte): Check the validity of character by
7159 CHAR_VALID_P.
7160 (chars_in_text): Call multibyte_chars_in_text.
7161 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7162 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7163 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7164
7165 * data.c (Faset): Adjust the way to check byte-combining
7166 possibility for the new handling of multibyte sequence.
7167
7168 * editfns.c (Fsubst_char_in_region): Likewise.
7169
7170 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7171 (string_char_to_byte): Likewise.
7172 (string_byte_to_char): Likewise.
7173
7174 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7175 macro STRING_CHAR_AND_LENGTH. Caller changed.
7176
7177 * insdel.c (count_combining_composition): New function.
7178 (count_combining_before): Adjust the way to check byte-combining
7179 possibility for the new handling of multibyte sequence. Call
7180 count_combining_composition for a composite character.
7181 (count_combining_after): Likewise.
7182
7183 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7184 (print): Likewise.
7185
7186 * dispextern.h (struct it): Change the size of the member
7187 `ctl_chars'.
7188
7189 * xdisp.c (get_next_display_element): Display incomplete multibyte
7190 sequence (e.g. \222\300) by octal form.
7191
71921999-09-02 Gerd Moellmann <gerd@gnu.org>
7193
7194 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7195
7196 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7197 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7198
71991999-09-02 Gerd Moellmann <gerd@gnu.org>
7200
7201 * buffer.c (set_buffer_internal): Never set
7202 windows_or_buffers_changed.
7203
7204 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7205 if we have displayed to the bottom of the window.
7206
7207 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7208 in both directions. Extend documentation.
7209
72101999-09-01 Gerd Moellmann <gerd@gnu.org>
7211
7212 * minibuf.c (read_minibuf): Flush display after setting cursor to
7213 column 0.
7214
72151999-08-31 Gerd Moellmann <gerd@gnu.org>
7216
7217 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7218 already defined. This avoids a warning from buffer.c.
7219
72201999-08-30 Gerd Moellmann <gerd@gnu.org>
7221
7222 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7223 of both margins.
7224 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7225 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7226 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7227
7228 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7229 once instead of twice.
7230 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7231
7232 * xterm.c: Remove unused bitmaps.
7233 (continued_bits, continuation_bits, overlay_bits): Change images.
7234 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7235 instead of FRAME_X_FLAGS_AREA_WIDTH.
7236 (x_after_update_window_line): Ditto.
7237 (x_draw_bitmap): Likewise.
7238 (x_draw_row_bitmaps): Likewise.
7239 (x_draw_glyph_string_box): Likewise.
7240 (x_draw_glyphs): Likewise.
7241 (x_scroll_run): Likewise.
7242 (expose_window_tree): Likewise.
7243 (note_mode_line_highlight): Likewise.
7244 (XTset_vertical_scroll_bar): Likewise.
7245 (x_clip_to_row): Likewise.
7246 (x_set_window_size): Likewise.
7247
7248 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7249 of 2 * that value.
7250
7251 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7252 2 * that value.
7253 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7254 FRAME_FLAGS_AREA_WIDTH.
7255
7256 * window.c (coordinates_in_window): Use
7257 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7258 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7259 instead of twice.
7260
427ec082 7261 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7262 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7263 (EmacsFrameSetCharSize): Ditto.
7264
7265 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7266 instead of FRAME_FLAGS_AREA_WIDTH.
7267
7268 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7269 FRAME_FLAGS_AREA_COLS once.
7270 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7271 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7272
72731999-08-30 Gerd Moellmann <gerd@gnu.org>
7274
7275 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7276 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7277
72781999-08-30 Gerd Moellmann <gerd@gnu.org>
7279
7280 * fns.c (QCweakness): Replaces QCweak.
7281 (Fmake_hash_table): Ditto.
7282 (Fmakehash): Ditto.
7283 (syms_of_fns): Ditto.
7284
72851999-08-29 Richard Stallman <rms@gnu.org>
7286
7287 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7288
7289 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7290
7291 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7292 Add support for nested comments.
7293
863476d1
SM
7294 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7295 Consolidate the forward comment code into the new `forw_comment'.
7296 (forw_comment): New subroutine. Added support for nested comments.
7297 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7298 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7299
73001999-08-28 Ken Raeburn <raeburn@gnu.org>
7301
7302 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7303 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7304 defined, to help detect code that uses knowledge of the Lisp
7305 internals that it shouldn't have.
7306 (XFLOAT_DATA): New macro.
7307
73081999-08-25 Gerd Moellmann <gerd@gnu.org>
7309
7310 * syntax.c (Fforward_word): If in a mini-buffer and moving
7311 backwards, stop in front of the prompt to prevent accidentially
7312 moving into the read-only prompt.
7313
7314 * window.c (Frecenter): Clear frame if called with nil or no arg.
7315
7316 * xdisp.c (resize_mini_window): Don't resize if
7317 Vmax_mini_window_height is nil. Otherwise, use a default if
7318 Vmax_mini_window_height is not ot a number.
7319 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7320
73211999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7322
7323 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7324 * m/iris4d.h: Use unexelf for IRIX 5.*.
7325 * m/iris5d.h: Use unexelf for IRIX 6.*.
7326 * unexsgi.c: Deleted.
7327
7328 * unexelf.c: Auto-detect .sbss section.
7329 (round_up): Make it static.
7330 (unexec): Declare alignment as Elf Word. Skip ``Program
7331 segment above .bss'' test on MIPS without .sbss.
7332 Copy sections .got and .sdata1 sections. Adjust offsets in
7333 sections .sdata, .lit4, .lit8, .got and .sdata1.
7334
73351999-08-25 Gerd Moellmann <gerd@gnu.org>
7336
7337 * xdisp.c (try_window_id): Remove typo.
7338
73391999-08-24 Gerd Moellmann <gerd@gnu.org>
7340
7341 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7342 unchanged text at the bottom when computing the cursor position.
7343 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7344 set.
7345
7346 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7347
73481999-08-24 Gerd Moellmann <gerd@gnu.org>
7349
7350 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7351 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7352 (syms_of_xfaces): Ditto.
7353
7354 * window.c (Fset_window_point): Reset Vresize_mini_config.
7355 (Fset_window_start): Ditto.
7356 (set_window_buffer): Ditto.
7357
7358 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7359
7360 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7361 before calling try_window.
7362 (echo_area_display): If height has changed, update other windows.
7363 (resize_mini_frame, resize_mini_initial_height): New.
7364 (resize_mini_window): Save/restore window configuration
7365 differently.
7366
427ec082 7367 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7368 resize_mini_initial_height): Add extern declarations.
7369
7370 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7371 CANON_X_UNIT.
7372
7373 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7374 being redefined in jconfig.h.
7375
73761999-08-23 Ken'ichi Handa <handa@gnu.org>
7377
7378 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7379
73801999-08-22 Gerd Moellmann <gerd@gnu.org>
7381
7382 * alloc.c (mark_glyph_matrix): Mark strings only.
7383
7384 * xdisp.c (redisplay_internal): Clear garbaged frames after
7385 resizing mini-window.
7386
73871999-08-22 Gerd Moellmann <gerd@gnu.org>
7388
7389 * xdisp.c (unwind_with_echo_area_buffer): Use
7390 set_buffer_internal_1 instead of set_buffer_internal.
7391 (with_echo_area_buffer): Ditto.
7392
7393 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7394 only if buffer is displayed somewhere.
7395
7396 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7397
7398 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7399 (gap_right): Ditto.
7400 (modify_region): Ditto.
7401
7402 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7403
7404 * xdisp.c (Vresize_mini_config): New.
7405 (resize_mini_window): Use it to save restore original window
7406 configuration
7407 (syms_of_xdisp): Initialize it.
7408
7409 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7410
7411 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7412
7413 * xdisp.c (reconsider_clip_changes): New.
7414 (redisplay_internal, redisplay_window): Call it.
7415 (mark_window_display_accurate, redisplay_internal): Set current
7416 matrix' buffer, begv, zv.
7417
7418 * window.c (Fset_window_hscroll): Set
7419 prevent_redisplay_optimizations_p instead of clip_changed.
7420 (Fset_window_hscroll): Ditto.
7421 (temp_output_buffer_show): Ditto.
7422 (Fset_window_vscroll): Ditto.
7423
7424 * buffer.c (reset_buffer): Set clip_changed to 0 and
7425 prevent_redisplay_optimizations_p to 1.
7426 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7427
7428 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7429 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7430 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7431 END_UNCHANGED): New.
7432 (struct buffer_text): Add beg_unchanged, end_unchanged,
7433 unchanged_modified, overlay_unchanged_modified.
7434
7435 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7436 overlay_unchanged_modified): Removed.
7437 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7438 (unwind_with_echo_area_buffer): Don't restore them.
7439 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7440 (text_outside_line_unchanged_p, redisplay_internal,
7441 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7442 (redisplay_window): Let try_window_id be called if more than one
7443 window is displayed. Use/set buffer-specific beg/end_unchanged.
7444 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7445 try_window_id):
7446 Use buffer-specific beg/end_unchanged.
7447
7448 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7449 overlay_unchanged_modified): Remove extern declarations.
7450
7451 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7452 buffer.
7453
7454 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7455 (gap_right): Ditto.
7456 (adjust_after_replace): Likewise.
7457 (replace_range, del_range_2, modify_region): Likewise.
7458
7459 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7460 and unchanged_modified per buffer.
7461
7462 * coding.c (code_convert_region): Compute beg/end_unchanged per
7463 buffer.
7464
7465 * buffer.c (modify_overlay): Compute beg/end_unchanged
7466 per buffer.
427ec082 7467 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7468 structure.
7469
74701999-08-22 Gerd Moellmann <gerd@gnu.org>
7471
7472 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7473
7474 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7475 (Qkey_value_weak): Removed.
7476 (make_hash_table): Use nil, `key', `value', t for weakness.
7477 (Fmake_hash_table): Ditto.
7478 (copy_hash_table): New.
7479 (Fcopy_hash_table): New.
7480
74811999-08-22 Gerd Moellmann <gerd@gnu.org>
7482
7483 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7484 new parameter.
26901792
DL
7485
74861999-08-21 Gerd Moellmann <gerd@gnu.org>
7487
7488 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7489 well.
427ec082 7490 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7491 have changed.
7492 (display_echo_area): Reset displayed echo_area_buffer to nil
7493 at the end if we're displaying a nil message.
7494
74951999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7496
26901792
DL
7497 * fns.c (hash_lookup): Test with EQ before calling key comparion
7498 function.
7499 (hash_remove): Ditto.
7500 (cmpfn_eq): Removed.
7501 (cmpfn_eql): Don't test with EQ.
7502 (cmpfn_equal): Ditto.
7503 (make_hash_table): Set comparison function for `eq' to null.
7504
7505 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7506 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7507
7508 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7509
7510 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7511 xterm.c: Call change_frame_size and do_pending_window_change with
7512 new parameter.
7513
7514 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7515 (change_frame_size): Ditto.
7516 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7517 and not called from a safe place.
7518 (window_change_signal): Call change_frame_size with new parameter.
7519
7520 * dispextern.h: Change prototypes for do_pending_window_change
7521 and change_frame_size.
7522
7523 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7524 window's buffers equals current_buffer; this is not the
26901792
DL
7525 case during echo area display.
7526
75271999-08-21 Gerd Moellmann <gerd@gnu.org>
7528
7529 * xdisp.c, minibuf.c: Remove conditional compilation on
7530 NO_PROMPT_IN_BUFFER.
7531
7532 * minibuf.c (Fminibuffer_prompt_end): New.
7533 (syms_of_minibuf): Defsubr it. Remove
7534 minibuffer-prompt-in-buffer.
7535 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7536 Extend documentation.
7537
7538 * xdisp.c (get_next_display_element): Display \r as ^M.
7539
7540 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7541 under scroll bar widget.
7542
75431999-08-21 Gerd Moellmann <gerd@gnu.org>
7544
7545 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7546 anywhere.
7547 (unwind_redisplay): Return nil.
7548 (clear_garbaged_frames): New.
7549 (redisplay_internal): Use it.
7550 (echo_area_display): Ditto.
7551 (resize_mini_window): Mew.
7552 (display_echo_area_1): Use it to resize echo area window.
7553 (redisplay_internal): Use it to resize active mini-window.
7554
7555 * dispextern.h, lisp.h: Add function prototypes.
7556
427ec082 7557 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7558 cursor_in_echo_area case only for a mini-window showing
7559 a message. Don't let cursor end up after the end of a row.
7560
7561 * xdisp.c (echo_area_glyphs, echo_area_message,
7562 echo_area_glyphs_length, previous_echo_glyphs,
7563 previous_echo_area_message, previous_echo_area_glyphs_length):
7564 Removed.
7565 (Vmessage_stack, echo_area_buffer, echo_buffer,
7566 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7567 (message2_nolog): Use set_message and clear_message.
7568 (message3): Rename parameter len to nbytes to make clear what
7569 it is.
7570 (message3_nolog): Ditto. Use set_message and clear_message.
7571 (update_echo_area): Rewritten.
7572 (with_echo_area_buffer): New.
7573 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7574 (setup_echo_area_for_printing): New.
7575 (display_echo_area, display_echo_area_1): New.
7576
7577 (current_message, current_message_1): New.
427ec082 7578 (push_message, restore_message, pop_message,
26901792
DL
7579 check_message_stack): New.
7580 (truncate_echo_area): Rewritten.
7581 (truncate_message_1): New.
7582 (set_message, set_message_1, clear_message): New.
7583 (echo_area_display): Rewritten.
7584 (redisplay_internal): Check for needed echo area update
7585 differently.
7586 (redisplay_preserve_echo_area): Rewritten.
427ec082 7587 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7588 message differently.
7589 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7590 Remove initialzation of removed variables.
7591 (init_xdisp): Remove references to removed variables.
7592
7593 * dispnew.c (adjust_frame_message_buffer): Removed references
7594 to echo_area_glyphs and previous_echo_glyphs.
7595 (direct_output_for_insert): Check for mini-window displaying
7596 echo area message differently.
7597 (update_frame): Likewise.
7598 (set_window_cursor_after_update): Likewise. In echo area,
7599 don't try to set cursor on rows that aren't enabled.
7600
7601 * print.c: Remove conditional compilation on `standalone'.
7602 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7603 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7604 longer used in that way.
7605 (PRINTDECLARE): Add multibyte.
7606 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7607 (printbufidx): Removed.
7608 (printchar, strout): Rewritten.
7609
7610 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7611 a struct kboard.
7612 (echo_kboard): New.
7613 (echo_now): Set echo_kboard to the current kboard.
7614 (cancel_echoing): Set echo_kboard to null.
7615 (cmd_error_internal): Use clear_message, remove references
7616 to echo_area_glyphs and echo_area_message.
7617 (command_loop_1): Check for echo area messages differently.
7618 (read_char): Likewise.
7619 (record_menu_key): Use clear_message.
7620 (Fexecute_extended_command): Check for echo area messages
7621 differently. Use push_message, restore_message, pop_message.
7622
7623 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7624 pop_message.
7625
7626 * emacs.c (shut_down_emacs): Call check_message_stack.
7627
7628 * lisp.h: Add function prototypes and extern declarations for
7629 new functions and variables.
7630
7631 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7632 pop_message.
7633
427ec082 7634 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7635 setting echo_area_glyphs.
7636 (Fminibuffer_completion_help): Ditto.
7637
7638 * editfns.c (Fcurrent_message): Rewritten.
7639
7640 * frame.c, window.h: Remove references to echo_area_glyphs
7641 and previous_echo_glyphs.
7642
76431999-08-21 Dave Love <fx@gnu.org>
7644
7645 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7646 * aix4-1.h: Likewise.
7647
7648 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7649
76501999-08-20 Gerd Moellmann <gerd@gnu.org>
7651
7652 * xfns.c: Remove tiff34 prefix from include.
7653
76541999-08-20 Dave Love <fx@gnu.org>
7655
7656 * cm.c: Revert previous change.
7657
76581999-08-19 Gerd Moellmann <gerd@gnu.org>
7659
7660 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7661 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7662
76631999-08-18 Dave Love <fx@gnu.org>
7664
7665 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7666 stdlib.h.
7667
7668 * doprnt.c: Use stdlib.h, unistd.h.
7669
7670 * config.in: Add HAVE_TERMCAP_H.
7671
7672 * cm.c: Use termcap.h.
7673
76741999-08-18 Gerd Moellmann <gerd@gnu.org>
7675
7676 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7677 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7678 cannot be created we will already have crashed earlier. Call
7679 lw_set_main_areas with a null menu-bar widget, so that we have
7680 a reasonable default.
7681 (Fx_create_frame): Rearranged so that Lisp errors during frame
7682 initialization cause less damage. Initialize menu bar widget
7683 here.
7684
76851999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 7686
26901792
DL
7687 * dispnew.c (update_frame_line): Fix previous change. If writing
7688 whole line clear to end of frame.
7689
76901999-08-17 Gerd Moellmann <gerd@gnu.org>
7691
7692 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7693 and `right-bitmap-area' if position is in the bitmap areas. This
7694 avoids an error when clicking on the bitmap areas. Instead, they
7695 are currently treated like clicks inside the window.
7696 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7697 (Qleft_bitmap_area, Qright_bitmap_area): New.
7698 (syms_of_window): Initialize new symbols.
7699
7700 * dispnew.c (update_frame_line): If writing whole line,
7701 don't write trailing spaces unless we must.
7702
7703 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7704 (redisplay_internal): Register unwind_redisplay with
7705 register_unwind_protect.
7706 (try_window_reusing_current_matrix): If new start > old start,
7707 give up if start pos of first reusable row is not equal to new
7708 start.
7709
7710 * eval.c (Fsignal): Don't reset redisplaying_p here.
7711
7712 * xterm.c (expose_area): If row extends face to end of line,
7713 write the whole line.
7714
77151999-08-16 Gerd Moellmann <gerd@gnu.org>
7716
7717 * dispextern.h (struct it): Remove member
7718 show_trailing_whitespace_p.
7719
7720 * dispnew.c (direct_output_for_insert): Use
7721 Vshow_trailing_whitespace instead of former iterator member
7722 show_trailing_whitespace_p.
7723 (direct_output_forward_char): Don't do it if hightlighting
7724 trailing whitespace.
7725
7726 * xdisp.c (Qshow_trailing_whitespace): Removed.
7727 (Vshow_trailing_whitespace): Added.
7728 (init_iterator): Remove initialization code for
7729 show_trailing_whitespace_p.
7730 (redisplay_internal): Don't try cursor movement in this_line
7731 if showing trailing whitespace.
7732 (redisplay_window): Likewise for cursor movement in current
7733 matrix and try_window_id.
7734 (try_window_reusing_current_matrix): Likewise.
7735 (trailing_whitespace_p): Return 0 if trailing whitespace is
7736 in front of point.
7737 (display_line): Use Vshow_trailing_whitespace instead of
7738 former iterator member show_trailing_whitespace_p.
7739 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7740
77411999-08-16 Gerd Moellmann <gerd@gnu.org>
7742
7743 * window.c (Fpos_visible_in_window_p): Rewritten.
7744
7745 * xfaces.c (add_to_log): Renamed from display_message.
7746 Don't display messages in echo area.
7747
7748 * xterm.c (x_draw_glyph_string_box): Use the background width
7749 of the glyph string for the width of the box.
7750
77511999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7752
7753 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7754
77551999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7756
7757 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7758 background first, and then set other parameters that might
7759 depend upon their new values.
7760
77611999-08-15 Gerd Moellmann <gerd@gnu.org>
7762
7763 * xfaces.c (Vfont_list_limit): New.
7764 (syms_of_xfaces): Make it a user-variable.
7765 (DEFAULT_FONT_LIST_LIMIT): New.
7766 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7767 maximally that number of fonts, otherwise use
7768 DEFAULT_FONT_LIST_LIMIT.
427ec082 7769 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
7770 until we have all fonts.
7771 (Fxfont_list): Additionally return the full names of fonts and
7772 their registry and encoding.
7773
427ec082 7774 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
7775 Simplify clearing "under" scroll bar.
7776
7777 * window.c (Qfixed_window_size): New.
7778 (syms_of_window): Initialiaze it.
7779 (check_all_windows): Add return type void.
7780 (window_fixed_size_p): New. Return non-zero if window
7781 is fixed-size.
7782 (window_min_size_1): New.
7783 (window_min_size): Handle fixed-size windows.
7784 (size_window): New. Rewritten combination of set_window_height and
7785 set_window_width that handles fixed-size windows.
7786 (set_window_height): Call it.
7787 (set_window_width): Call it.
7788 (Fsplit_window): Give an error on attempt to split a fixed-size
7789 window.
7790 (change_window_height): Partly rewritten to handle fixed-size
7791 windows.
7792
77931999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7794
7795 * process.c (Fopen_network_stream): Fix previous change.
7796
77971999-08-13 Karl Heuer <kwzh@gnu.org>
7798
7799 * xdisp.c (line_number_display_limit_width): New var.
7800 (decode_mode_spec): Use it instead of hardcoded value.
7801 (syms_of_xdisp): Defvar it.
7802
78031999-08-13 Richard M. Stallman <rms@gnu.org>
7804
7805 * eval.c (run_hook_list_with_args): Gcpro `globals'.
7806 (run_hook_with_args): Likewise.
7807
7808 * window.h (struct window): New field too_small_ok.
7809
427ec082 7810 * window.c (set_window_height, set_window_width):
26901792
DL
7811 If window starts out "too small", set its too_small_ok flag.
7812 If window's too_small_ok flag is set, don't delete it
7813 unless it is so small it would cause a crash.
7814
78151999-08-13 Gerd Moellmann <gerd@gnu.org>
7816
7817 * window.c (MINSIZE): Removed.
7818 (window_min_size): New.
7819 (set_window_height): Use window_min_size.
7820 (change_window_height): Ditto.
7821
78221999-08-12 Gerd Moellmann <gerd@gnu.org>
7823
7824 * indent.c (vmotion): Don't add in mini-buffer prompt width
7825 if prompts are inserted into mini-buffer.
7826
78271999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7828
7829 * config.in: Add HAVE_GETADDRINFO.
7830 * process.c (Fopen_network_stream): Use getaddrinfo.
7831
78321999-08-11 Gerd Moellmann <gerd@gnu.org>
7833
7834 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
7835 glyphs to -1.
7836
7837 * xdisp.c (face_before_or_after_it_pos): If position after
7838 or before iterator's current position in the buffer is out
7839 of bounds, return the iterator's original face id.
7840
7841 * dispnew.c (mirror_make_current): If desired row isn't enabled,
7842 just swap glyphs pointers between current and desired row.
7843 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
7844 desired matrix method string to current matrix.
7845
78461999-08-11 Kenichi Handa <handa@etl.go.jp>
7847
7848 * lisp.h (CHAR_MODIFIER_MASK): New macro.
7849
7850 * lread.c (read_escape): For Control modifier, pay attention to
7851 multibyte character.
7852 (read1): Likewise. Singal error or a multibyte character which
7853 has a modifer bit. Check validity of Shift modifer.
7854
7855 * charset.c (non_ascii_char_to_string): Handle modifier bits as
7856 the same as Lisp reader.
7857
78581999-08-10 Richard M. Stallman <rms@gnu.org>
7859
7860 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
7861
78621999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
7863
7864 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
7865
78661999-08-10 Eli Zaretskii <eliz@gnu.org>
7867
7868 * msdos.c (IT_set_face): Abort if the default face is not realized
7869 and cached.
7870 (IT_write_glyphs): Reset the screen face to the default face
7871 before writing glyphs.
7872
7873 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
7874 colors from the frame here.
7875 (realize_tty_face) [MSDOS]: Do it here. Update the face
7876 attributes with the actual name of the color taken from the
7877 frame.
7878
7879 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
7880 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
7881
7882 * frame.c (Fframe_parameters): Swap foreground and background
7883 colors returned in frame parameters if the frame has reverse in
7884 its parameter alist.
7885 (Fmake_terminal_frame): Make a unique copy of face_alist for
7886 each frame.
7887
78881999-08-07 Richard Stallman <rms@gnu.org>
7889
7890 * buffer.c (Fprevious_overlay_change): Just return
7891 the answer obtained from overlays_at.
7892
7893 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
7894 Use XpmCloseness and attrs.closeness instead.
7895
78961999-08-06 Richard Stallman <rms@gnu.org>
7897
7898 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
7899
79001999-08-06 Geoff Voelker <voelker@cs.washington.edu>
7901
427ec082 7902 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
7903 Ffile_attributes_lessp): New functions.
7904 (Fdirectory_files): Use directory_files_internal.
7905 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
7906 Ffile_attributes_lessp.
7907
7908 * w32.c (stat): Check for directory ending in separator when
7909 doing readdir fast path.
7910
7911 * w32fns.c (x_set_icon_type): Support setting frame icons.
7912 * w32term.c (x_bitmap_icon): New function.
7913 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 7914
26901792
DL
79151999-08-06 Gerd Moellmann <gerd@gnu.org>
7916
7917 * xdisp.c (set_iterator_to_next): After delivering a character
7918 from a display vector, restore face and charset to what they were
7919 before the display vector was processed.
7920
79211999-08-06 Gerd Moellmann <gerd@gnu.org>
7922
7923 * xdisp.c (reseat_at_next_visible_line_start): New parameter
7924 on_newline_p.
7925 (set_iterator_to_next): After delivering last char
427ec082 7926 from display vector, reseat on next visible line start if
26901792
DL
7927 dpvec_char_len < 0.
7928 (next_element_from_buffer): Set dpvec_char_len to -1 for
7929 selective display.
7930
79311999-08-06 Gerd Moellmann <gerd@gnu.org>
7932
7933 * xdisp.c (compute_line_metrics): If first line's physical ascent
7934 is larger than its logical ascent, use the physical ascent, and
7935 make the row taller. Set row's overlapping_p flag.
7936
7937 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
7938 (direct_output_for_insert): Ditto.
7939
7940 * dispextern.h (struct glyph_row): Add overlapping_p.
7941
7942 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
7943
7944 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
7945 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
7946
7947 * dispnew.c (direct_output_for_insert): Don't use this method if
7948 row is overlapped by others.
7949 (update_text_area): Write full line if current line is overlapped.
7950 (redraw_overlapped_rows): New.
7951 (update_window): Call it.
7952 (redraw_overlapping_rows): New.
7953 (update_window): Call it.
7954 (scrolling_window): Make sure overlapped_p flag in current rows is
7955 unchanged.
7956 (row_equal_p): Take rows overlapped_p flag into account.
7957
7958 * dispextern.h (struct glyph_row): Add flag overlapped_p.
7959
7960 * xterm.c (x_fix_overlapping_area): New.
7961 (x_redisplay_interface): Add x_fix_overlapping_area.
7962
7963 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
7964
79651999-08-06 Gerd Moellmann <gerd@gnu.org>
7966
7967 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
7968 (struct glyph_string): Add member for_overlaps_p.
7969 (x_get_glyph_string_clip_rect): If glyph string draws foreground
7970 of overlapping rows, clip to window bottom.
7971 (x_fill_glyph_string): Add parameter overlaps_p.
7972 (x_fill_composite_glyph_string): Ditto.
7973 (BUILD_GLYPH_STRINGS): Ditto.
7974 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
7975 (x_draw_glyph_string): Don't draw anything but the foreground
7976 if glyph string draws row overlaps.
7977
7978 * dispnew.c (direct_output_for_insert): Don't use this
7979 optimization for rows that overlap others.
7980 (update_window_line): Return non-zero if display has changed.
7981 (update_text_area): Ditto.
7982 (update_window): Record if display has been changed.
7983
7984 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
7985
7986 * dispextern.h (struct redisplay_interface): Add
7987 fix_overlapping_area.
7988
7989 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
7990
7991 * dispextern.h (struct glyph): Add overlaps_vertically_p.
7992
7993 * xterm.c (x_produce_image_glyph): Compute iterator's physical
7994 ascent and descent.
7995 (x_produce_stretch_glyph): Ditto.
7996 (x_produce_glyphs): Ditto.
7997
7998 * xdisp.c (init_iterator): Reset physical line height info
7999 after producing special glyphs.
8000 (display_toolbar_line): Set physical line height info.
8001 (compute_line_metrics): Ditto.
8002 (display_line): Ditto.
8003 (display_string): Ditto.
8004
8005 * term.c (produce_glyphs): Set iterator's physical height
8006 information.
8007
8008 * dispnew.c (blank_row): Compute glyph row's physical height.
8009 (row_equal_p): Take physical row heights into account.
8010 (direct_output_for_insert): Ditto.
8011 (update_text_area): Ditto.
8012
8013 * dispextern.h (struct glyph_row): Add phys_ascent and
8014 phys_height.
8015 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
8016 max_phys_descent.
8017
80181999-08-04 Stefan Monnier <monnier@cs.yale.edu>
8019
8020 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
8021 Fswitch_to_buffer.
8022 (no_switch_buffer): New function.
8023 (Fswitch_to_buffer): Call them. Don't get confused
8024 by "same-window" buffers in a dedicated frame.
8025
8026 * window.c (display-buffer): Don't get confused
8027 by "same-window" buffers in a dedicated frame.
8028
80291999-08-04 Andreas Schwab <schwab@gnu.org>
8030
8031 * insdel.c (insert_from_string_1): Check gap size against number
8032 of outgoing bytes, not incoming bytes.
8033
80341999-08-03 Tom Breton <tob@world.std.com>
8035
8036 * lread.c (read1): Added circular reading code to #N=.
8037 (SUBSTITUTE): New macro.
8038 (seen_list): New variable.
8039 (substitute_object_in_subtree): New function.
8040 (substitute_object_recurse): New function.
8041 (substitute_in_interval): New function.
8042
80431999-08-02 Eli Zaretskii <eliz@gnu.org>
8044
8045 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8046
8047 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8048 noninteractive, for termcap frames as well.
8049
8050 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8051 frames.
8052
80531999-08-01 Richard Stallman <rms@gnu.org>
8054
8055 * fns.c (internal_equal): Correct overlay comparison.
8056
83c8f461 80571999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8058
427ec082 8059 * xfns.c (x_set_internal_border_width):
26901792
DL
8060 Call do_pending_window_change. Don't block input, don't call XFlush.
8061 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8062 (x_set_scroll_bar_width, x_set_font): Likewise.
8063
8064 * frame.c (Fset_frame_height): Call do_pending_window_change.
8065 (Fset_frame_width, Fset_frame_size): Likewise.
8066
8067 * xterm.c (x_set_window_size): When calling change_frame_size,
8068 specify 1 for DELAY.
8069
8070 * widget.c (EmacsFrameSetCharSize): Don't call
8071 do_pending_window_change here.
8072
80731999-07-30 Dave Love <fx@gnu.org>
8074
8075 * config.in: Add HAVE_STDLIB_H.
8076
80771999-07-30 Richard M. Stallman <rms@gnu.org>
8078
8079 * process.c (create_process): Detect failure of `pipe'.
8080
80811999-07-30 Keisuke Nishida <kei@psn.net>
8082
8083 * alloc.c (allocate_vectorlike): Add missing increment.
8084
8085 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8086
8087 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8088 before calling indirect_function.
8089
80901999-07-30 Eli Zaretskii <eliz@gnu.org>
8091
8092 * dispextern.h (load_color, lookup_derived_face): Declare
8093 prototypes.
8094
8095 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8096 it will be done later.
8097
8098 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8099 init_frame_faces if non-interactive.
8100 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8101 array with a call to msdos_stdcolor_name. The font name is now
8102 "ms-dos", consistent with realize_tty_face.
8103
8104 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8105 MSDOS frame.
8106
8107 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8108 x_set_toolbar_lines.
8109
8110 * xfaces.c (load_color): Remove static from definition and remove
8111 prototype.
8112 [MSDOS]: Add a DOS-specific version of load_color.
8113 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8114 (lookup_derived_face): New function.
8115 (realize_default_face): Support MSDOS frames.
8116 [MSDOS]: If fore/background colors are unspecified, inherit them
8117 from the frame.
8118 (realize_face): Support MSDOS frames.
8119 (realize_tty_face): Support MSDOS frames.
8120 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8121 load_color to try to find a suitable approximation. If the face
8122 is inverse-video, swap the foreground and background colors.
8123
8124 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8125 functions.
8126
8127 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8128
8129 * msdos.h: Remove redundant declarations (most of them are now in
8130 dispextern.h).
8131
8132 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8133 Use default frame colors if the face doesn't specify them; invert
8134 the colors if highlight is ON.
8135 (IT_write_glyphs): Rewritten for the new redisplay engine.
8136 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8137 how the hook is called by term.c.
8138 (IT_copy_glyphs): New function, copies an area of the display in
8139 video RAM.
8140 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8141 redisplay now calls it even if char_ins_del_ok is zero.
8142 (IT_set_frame_parameters): Prototype changed. Calls the new
8143 load_color. Puts the new fore/background colors into the default
8144 face on current frame.
8145 (IT_menu_display): Rewritten to handle the new struct glyph
8146 instead of a char array.
8147 (XMenuActivate): Call lookup_derived_face to create and use
8148 special faces for the pop-up and drop-down menus.
8149
81501999-07-29 Gerd Moellmann <gerd@gnu.org>
8151
8152 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8153 XawScrollbarSetThumb if thumb parameters haven't changed because
8154 that function apparently isn't optimized for this case.
8155
81561999-07-29 Eli Zaretskii <eliz@gnu.org>
8157
8158 * msdos.c (getdefdir): Don't return failure indication when
8159 _fixpath sets errno to ENOSYS.
8160
81611999-07-28 Gerd Moellmann <gerd@gnu.org>
8162
8163 * xdisp.c (string_char_and_length): New. Use it everywhere
8164 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8165
81661999-07-28 Kenichi Handa <handa@etl.go.jp>
8167
8168 * fns.c (count_combining): New function.
8169 (struct textprop_rec): New structure.
8170 (concat): Copy text properties correctly when byte combining
8171 occurs.
8172
81731999-07-28 Gerd Moellmann <gerd@gnu.org>
8174
8175 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8176 if display is mono.
8177 (x_draw_row_bitmaps): If face has stipple, don't switch
8178 to foreground color for clearing areas, and set the fill style.
8179
8180 * xfaces.c (load_face_colors): Load background color if setting
8181 stipple, too.
427ec082 8182 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8183 FillStippled.
8184
81851999-07-26 Ken'ichi Handa <handa@gnu.org>
8186
8187 * xterm.c (x_find_ccl_program): Add casting.
8188
8189 * w32fns.c (w32_find_ccl_program): Add casting.
8190
81911999-07-27 Gerd Moellmann <gerd@gnu.org>
8192
8193 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8194
8195 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8196 because this will try to access a nonexisting widget.
8197
81981999-07-26 Markus Rost <rost@gnu.org>
8199
427ec082 8200 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8201 (Fputhash): Ditto.
8202 (Fremhash): Ditto.
8203
82041999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8205
26901792
DL
8206 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8207 value to frame width and height.
8208
8209 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8210 into account for full-width windows. Don't add scroll bar width
8211 to width of clip rect.
8212 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8213 (x_set_glyph_string_background_width): Add 1 to background width.
8214 (x_draw_glyphs): Take internal border into account for full-width
8215 lines.
8216
82171999-07-26 Richard M. Stallman <rms@gnu.org>
8218
8219 * xfns.c (x_set_mouse_color): Always unload the old color.
8220 Don't allow nil as color value.
427ec082 8221 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8222 Always unload the old color.
8223
8224 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8225
82261999-07-26 Karl Heuer <kwzh@gnu.org>
8227
8228 * fns.c (Fy_or_n_p): Doc fix.
8229
82301999-07-26 Kenichi Handa <handa@etl.go.jp>
8231
8232 * ccl.h (setup_ccl_program): The type is changed to `int'.
8233
8234 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8235 stored in the following CCL code. Adjusted for the change of
8236 Vccl_program_table.
8237 (resolve_symbol_ccl_program): Adjusted for the new style of
8238 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8239 is resolving failed.
8240 (ccl_get_compiled_code): New function.
8241 (setup_ccl_program): Function type changed from `void' to `int'.
8242 Resolve symbols in CCL_PROG.
8243 (Fccl_program_p): New function.
8244 (Fccl_execute): Get compiled CCL code by just calling
8245 setup_ccl_program.
8246 (Fccl_execute_on_string): Likewise.
8247 (Fregister_ccl_program): Adjusted for the change of
8248 Vccl_program_table.
8249
8250 * coding.c (setup_coding_system): Get compiled CCL code by just
8251 calling setup_ccl_program.
8252
8253 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8254 calling setup_ccl_program.
8255
8256 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8257 calling setup_ccl_program.
8258
82591999-07-23 Gerd Moellmann <gerd@gnu.org>
8260
8261 * xfaces.c (frame_update_line_height): Just use the height of the
8262 frame's fontset or font, instead of taking face fonts into
8263 account.
8264
8265 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8266
82671999-07-23 Richard M. Stallman <rms@gnu.org>
8268
8269 * window.c (Fsplit_window): For default size, round up for left window.
8270
82711999-07-21 Joe Ramey <ramey@ti.com>
8272
8273 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8274 has returned -1 (lockfile exists but is not a symlink?).
8275
82761999-07-20 Gerd Moellmann <gerd@gnu.org>
8277
8278 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8279 because of a change in cursor_gc made in 20.4.
8280
82811999-07-19 Gerd Moellmann <gerd@gnu.org>
8282
8283 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8284 for YNegative, if using X toolkit.
8285
427ec082 8286 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8287 from positions returned.
8288
82891999-07-17 Gerd Moellmann <gerd@gnu.org>
8290
8291 * xrdb.c (x_load_resources): Set double-click time defaults
8292 for Motif list boxes from double-click-time.
8293
8294 * fns.c (Vhash_table_tests): Remvoed.
8295 (Qhash_table_test): New.
8296 (syms_of_fns): Initialize Qhash_table_test.
8297 (Fmake_hash_table): Look up user-defined tests in symbol prop
8298 `hash-table-test'.
8299 (Fdefine_hash_table_test): Store test and hash function as
8300 symbol prop `hash-table-test'.
8301 (make_hash_table): Add parameters user_test and user_hash.
8302
8303 * window.c (set_window_buffer): Set window margins for tty
8304 frames, too.
8305 (Fset_window_margins): Ditto.
8306
8307 * term.c (append_glyph): Use glyph area of iterator instead of
8308 always TEXT_AREA.
8309
8310 * dispnew.c (update_frame_1): Add left margin width to cursor
8311 hpos.
8312 (direct_output_for_insert): Ditto.
8313 (direct_output_forward_char): Ditto.
8314
8315 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8316
8317 * dispextern.h (struct glyph_matrix): Add top_line_p.
8318
83191999-07-16 Gerd Moellmann <gerd@gnu.org>
8320
8321 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8322 instead.
8323
8324 * fns.c (cmpfn_eq): Add hash code parameters.
8325 (cmpfn_eql): Ditto.
8326 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8327 (cmpfn_user_defined): Likewise.
8328
83291999-07-15 Gerd Moellmann <gerd@gnu.org>
8330
8331 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8332
8333 * fns.c (maybe_resize_hash_table): Correct computation of
8334 index vector size.
8335 (make_hash_table): Ditto.
8336 (Fmakehash): New.
8337
8338 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8339
8340 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8341 (survives_gc_p): Make it externally visible.
8342 (mark_object): Ditto.
8343
8344 * fns.c (remove_hash_entry): Removed.
8345 (sweep_weak_hash_tables): New.
8346
8347 * print.c (print): Print more information about hash tables.
8348
8349 * xfns.c (image_spec_hash): Removed.
8350 (lookup_image): Use sxhash instead of image_spec_hash.
8351 (image_spec_equal_p): Removed.
8352 (lookup_image): Use Fequal instead of image_spec_equal_p.
8353
83541999-07-14 Gerd Moellmann <gerd@gnu.org>
8355
8356 * lisp.h (P_): Moved to top of file.
8357
8358 * fns.c (make_hash_table): Set new members.
8359
8360 * alloc.c (mark_object): Mark hash table's user_hash_function.
8361 Mark index vector for weak hash tables.
8362
8363 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8364 user_hash_function, cmpfn, and hashfn.
8365
8366 * fns.c (build_hash): Removed.
8367 (hash_test): Removed.
8368 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8369 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8370
83711999-07-13 Gerd Moellmann <gerd@gnu.org>
8372
8373 * alloc.c (survives_gc_p): New.
8374
8375 * print.c (print): Add hash table handling.
8376
8377 * alloc.c (mark_object): Add code to mark hash tables.
8378
8379 * lisp.h (GC_HASH_TABLE_P): New.
8380
8381 * emacs.c (main): Call init_fns.
8382
8383 * fns.c (init_fns): New.
8384
8385 * fns.c: Add hash table implementation.
8386
8387 * lisp.h (PVEC_HASH_TABLE): New.
8388 (struct Lisp_Hash_Table): New.
8389 (XHASH_TABLE): New.
8390 (XSET_HASH_TABLE): New.
8391 (HASH_TABLE_P): New.
8392 (CHECK_HASH_TABLE): New.
8393 (DEFAULT_HASH_SIZE): New.
8394 (DEFAULT_REHASH_THRESHOLD): New.
8395 (DEFAULT_REHASH_SIZE): New.
8396
8397 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8398 (x_write_glyphs): Compute overwritten cursor using real start
8399 and end positions of display.
8400 (x_insert_glyphs): Ditto.
8401
84021999-07-10 Gerd Moellmann <gerd@gnu.org>
8403
8404 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8405
8406 * dispnew.c (blank_row): Add y-position as parameter. Compute
8407 visible height.
8408
8409 * xdisp.c (next_element_from_string): Give padding spaces
8410 a position of -1.
8411
427ec082 8412 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8413 marginals areas on tty frames in a future version.
8414 (allocate_matrices_for_frame_redisplay): Ditto.
8415
8416 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8417 to zero if number of glyphs in the row is <= 1.
8418
84191999-07-09 Gerd Moellmann <gerd@gnu.org>
8420
8421 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8422 into account.
8423
8424 * xdisp.c (handle_display_prop): Don't reset area if handing
8425 a property from a string that came from a `display' property.
8426 (handle_single_display_prop): Don't handle recursive `display'
8427 properties.
8428 (handle_single_display_prop): Handle some display property
8429 forms for terminal frames.
8430 (Qimage): Moved here from xfns.c.
8431
8432 * dispextern.h (struct it): New field string_from_display_prop_p.
8433
8434 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8435 line.
8436
84371999-07-08 Gerd Moellmann <gerd@gnu.org>
8438
8439 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8440
8441 * window.c (set_window_buffer): Set window's vscroll to zero.
8442
8443 * xdisp.c (QCwhen): New.
8444 (display_prop_end): New.
8445 (handle_single_display_prop): Use it.
8446 (debug_method_add): Print buffer name if tracing.
8447 (try_window_reusing_current_matrix): Compute visible height
8448 of reused rows. Fix cursor position calculation in case of
8449 top-line.
8450
8451 * dispextern.h (struct redisplay_interface): Add parameter
8452 cursor_on_p to update_window_end_hook.
8453
8454 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8455
84561999-07-07 Gerd Moellmann <gerd@gnu.org>
8457
427ec082 8458 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8459 doesn't become negative when decrementing it.
8460
8461 * eval.c (Fsignal): Reset redisplaying_p to zero.
8462
8463 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8464 for window update.
8465 (try_window_id): Ditto.
8466
8467 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8468 (x_scroll_run): Ditto.
8469 (any_help_event_p): New.
8470 (x_initialize): Set it to zero.
8471 (XTread_socket): Clear help echo only if any_help_event_p.
8472
8473 * xdisp.c (init_iterator): Set top_line_p.
8474 (start_display): Use correct initial y if top-line is present.
8475 (make_cursor_line_fully_visible): Bug fixes for top-line.
8476 (try_scrolling): Ditto.
8477 (try_window_reusing_current_matrix): Ditto.
8478
8479 * dispextern.h (struct it): Add top_line_p.
8480
8481 * dispnew.c (shift_glyph_matrix): Move some computations out
8482 of the loop.
8483
427ec082 8484 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8485 XFLOATINT.
8486
84871999-07-06 Gerd Moellmann <gerd@gnu.org>
8488
8489 * dispnew.c (update_frame_1): When setting cursor in echo area,
8490 skip only over padding spaces at the end.
8491
8492 * xfaces.c (realize_tty_face): Set face's font_name field to
8493 "tty".
8494
8495 * term.c (update_end): Turn cursor on only if selected window's
8496 cursor_off_p flag is not set.
8497
84981999-07-05 Gerd Moellmann <gerd@gnu.org>
8499
8500 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8501 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8502 (TS_cursor_invisible): New.
8503 (term_init): Initialize TS_cursor_invisible.
8504 (tty_hide_cursor): New.
8505 (tty_show_cursor): New.
8506 (update_end): Show tty cursor.
8507 (update_begin): Hide tty cursor to prevent cursor flickering
8508 during redisplays triggered by timers (stealth fontification).
8509
8510 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8511
8512 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8513 in scroll bars.
8514 (x_handle_toolbar_click): Set modifier bits.
8515
85161999-07-04 Gerd Moellmann <gerd@gnu.org>
8517
8518 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8519 instead of a pointer to a volatile input_event.
427ec082 8520 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8521 declaration of local variable `sp'.
8522 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8523 to kbd_fetch_ptr.
8524
85251999-07-03 Gerd Moellmann <gerd@gnu.org>
8526
8527 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8528 only if buffer is modified. Return quickly if changes are
8529 above window start.
8530
85311999-07-02 Gerd Moellmann <gerd@gnu.org>
8532
8533 * dispextern.h (HSCROLL_WINDOWS): Removed.
8534
8535 * xdisp.c (mark_window_display_accurate): Don't set
8536 w->region_showing.
8537 (redisplay_internal): Don't call redraw_garbaged_frames.
8538
85391999-07-01 Gerd Moellmann <gerd@gnu.org>
8540
8541 * xdisp.c (echo_area_display): Don't display truncation marks
8542 for messages because 20.4 doesn't do it either.
8543 (redisplay_window): Case same window start. Instead of giving
8544 up when cursor is partially visible, make it fully visible.
8545 (mark_window_display_accurate): Some cleanup. Record window's
8546 last cursor information.
8547 (debug_method_add): Improved.
8548 (redisplay_internal): Record last cursor info only if not
8549 consider_all_windows_p.
8550
8551 * dispnew.c (update_window): Update top line after scrolling.
8552 (blank_row): Renamed from make_empty_enabled_row.
8553 (increment_glyph_row_buffer_positions): Increment positions
8554 in buffers, only.
8555
8556 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8557 string.
8558
85591999-06-30 Gerd Moellmann <gerd@gnu.org>
8560
8561 * dispnew.c (update_window): Check that updated row is visible.
8562
8563 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8564 top of window differently.
8565
8566 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8567 if region is showing.
8568
8569 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8570 avoiding matrix reallocation. Set window_vscroll in matrix.
8571
8572 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8573
26901792
DL
8574 * xdisp.c (debug_method_add): New.
8575 (debug_redisplay_method): Removed.
8576 (try_window_reusing_current_matrix): Handle case where old
8577 window start is the same as new window start.
8578
8579 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8580 an array instead of a pointer.
8581
26901792
DL
8582 * xfns.c (Fx_show_tip): Undo previous change.
8583
8584 * xterm.c (x_append_glyph): Clear glyph->u.val.
8585
8586 * dispextern.h (struct glyph): Increase size of face_id bit-field
8587 for CHAR_GLYPH to 12.
8588
85891999-06-29 Gerd Moellmann <gerd@gnu.org>
8590
8591 * xfaces.c (x_charset_registry): Make it externally visible.
8592
85931999-06-28 Gerd Moellmann <gerd@gnu.org>
8594
427ec082 8595 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8596 instead of WINDOW_WANTS_MODELINE_P.
8597
8598 * xterm.c (clear_mouse_face): Make externally visible.
8599
8600 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8601
8602 * xterm.c (expose_line): Handle exposure of top-lines.
8603
8604 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8605 if mouse_face_mouse_frame is null.
8606
8607 * xdisp.c (redisplay_window): If window is echo_area_window,
8608 and update_mode_line is set, update menubar and toolbar.
8609
8610 * dispnew.c (space_glyph): Set its charpos to -1.
8611 (update_frame_1): Ignore trailing padding spaces.
8612
8613 * xdisp.c (next_element_from_c_string): Set position of padding
8614 glyphs to -1.
8615
86161999-06-27 Gerd Moellmann <gerd@gnu.org>
8617
8618 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8619 XQueryColor.
8620
8621 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8622 (set_cursor_from_row): Skip over glyphs having a null object at
8623 the start of rows.
8624 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8625 glyphs.
8626 (handle_invisible_prop): Compute next change only when needed.
8627 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8628 line.
8629
86301999-06-26 Gerd Moellmann <gerd@gnu.org>
8631
8632 * xrdb.c (x_load_resources): Don't set resource for double-click
8633 time.
8634
8635 * xdisp.c (try_window_id): Return quickly if all changes are
8636 below the window's current matrix end.
8637
8638 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8639 parameter.
8640
8641 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8642 in desired not in current matrix.
8643 (try_window_reusing_current_matrix): Rotate matrices starting
8644 at start_vpos instead of 0.
8645
8646 * xterm.c (expose_window): Use window_text_bottom_y.
8647 (fast_find_position): Ditto.
8648
8649 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8650 (try_window_reusing_current_matrix): Ditto.
8651 (get_last_unchanged_at_beg_row): Ditto.
8652 (init_iterator): Ditto.
8653
8654 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8655 more row.
8656 (check_matrix_invariants): Use window_text_bottom_y.
8657 (update_window): Ditto.
8658 (scrolling_window): Ditto.
8659
8660 * xdisp.c (window_text_bottom_y): New.
8661
86621999-06-25 Gerd Moellmann <gerd@gnu.org>
8663
8664 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8665 clearing mouse face.
8666 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8667 event.xcrossing.focus is not set, and focus is in the menu bar,
8668 set focus frame as if event.xcrossing.focus were set.
8669
86701999-06-24 Gerd Moellmann <gerd@gnu.org>
8671
8672 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8673 * keyboard.c (make_lispy_movement): Ditto.
8674
8675 * window.c (coordinates_in_window): Return 4 if on top line.
8676 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8677
8678 * xdisp.c (window_box_height): Subtract top line height.
8679 (window_box): Add top line height to top y position if top line
8680 exists.
8681 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8682 the top line row of the window. Set initial y-position to
8683 window's top line height plus delta.
8684 (start_display): Choose start glyph row depending on whether
8685 window has a top line.
8686 (try_scrolling): Take top line height into account for aggressive
8687 scrolling.
8688 (compute_window_start_on_continuation_line): Take top line into
8689 account.
427ec082 8690 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
8691 trigger a new redisplay.
8692 (try_window_reusing_current_matrix): Take top line into account.
8693 (find_last_row_displaying_text): Ditto.
8694 (get_last_unchanged_at_beg_row): DItto.
8695 (try_window_id): Ditto.
8696 (compute_line_metrics): Ditto.
8697
8698 * dispnew.c (shift_glyph_matrix): Compute visible row height
8699 taking top line of window into account.
8700 (update_window): Update top line. If scrolling_window detects
8701 that all rows are equal, only set cursor.
8702 (update_window_line): Call after_update_window_line_hook if
8703 mode_line_p flag of rows has changed.
8704 (scrolling_window): Add parameter top_line_p. Return -1 if
8705 all rows are equal.
8706 (mode_line_string): Add parameter mode_line_p. Handle strings
8707 in top lines.
8708
8709 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8710 (MATRIX_FIRST_TEXT_ROW): New.
8711 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8712 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8713 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8714 (MATRIX_TOP_LINE_HEIGHT): New.
8715 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8716 (CURRENT_TOP_LINE_HEIGHT): New.
8717 (DESIRED_TOP_LINE_HEIGHT): New.
8718 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8719 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8720 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8721 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8722
8723 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8724 lines.
8725 (x_draw_row_bitmaps): Take top line into account when clearing
8726 bitmap area.
8727 (x_estimate_mode_line_height): Replacement for
8728 x_frame_mode_line_height.
8729 (x_get_glyph_string_clip_rect): Take top line into account.
8730 (x_clear_end_of_line): Ditto.
8731 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8732 top lines.
8733 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8734 (x_erase_phys_cursor): Take top line into account.
8735
8736 * xdisp.c (window_box_height): Subtract top line height if
8737 window wants a top line.
8738 (display_mode_lines): New.
8739 (redisplay_window): Call it.
8740 (display_mode_line): Add parameters face_id and format.
8741
8742 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8743 (MATRIX_TOP_LINE_HEIGHT): New.
8744
8745 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8746
8747 * term.c (estimate_mode_line_height): Renamed from
8748 frame_mode_line_height. Add parameter face_id.
8749 (estimate_mode_line_height_hook): Renamed from
8750 frame_mode_line_height_hook.
8751 (produce_special_glyphs_hook): Removed.
8752 (produce_glyphs_hook): Removed.
8753
87541999-06-23 Gerd Moellmann <gerd@gnu.org>
8755
8756 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8757 (struct glyph_row): Add mode_line_p.
8758
8759 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8760 (Qtop_line): New.
8761 (syms_of_xfaces): Initialize Qtop_line.
8762
8763 * dispextern.h (TOP_LINE_FACE_ID): New.
8764
8765 * buffer.c (init_buffer_once): Set default for
8766 top_line_format to nil.
8767 (init_buffer_once): Init top_line_format.
8768 (default-top-line-format): New.
8769 (top-line-format): New buffer-local variable.
8770
8771 * buffer.h: Add top_line_format.
8772
8773 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8774
87751999-06-17 Dave Love <fx@gnu.org>
8776
8777 * xfns.c: Move the PNG section before the JPEG one to avoid
8778 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 8779
26901792
DL
87801999-06-17 Gerd Moellmann <gerd@gnu.org>
8781
8782 * xfns.c (x_kill_gs_process): Don't free colors.
8783
87841999-06-17 Dave Love <fx@gnu.org>
8785
8786 * s/gnu-linux.h: Zap spurious ~.
8787
87881999-06-16 Gerd Moellmann <gerd@gnu.org>
8789
8790 * xfns.c (gif_load): Improve multi-image support.
8791
87921999-06-15 Gerd Moellmann <gerd@gnu.org>
8793
8794 * xfns.c (gif_load): Support multi-image files.
8795
8796 * Makefile.in (LIBGIF): Use libungif.
8797
8798 * configure.in (HAVE_GIF): Use libungif instead of libgif
8799 because the former doesn't contain patented compression code.
8800
8801 * xdisp.c (compute_window_start_on_continuation_line): Don't
8802 do it if line start is too far away from window start.
8803
88041999-06-14 Gerd Moellmann <gerd@gnu.org>
8805
8806 * buffer.c (init_buffer_once): Set buffer_local_flags for
8807 scroll_*_aggressively.
8808 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
8809 (init_buffer_once): Set defaults for these variables.
8810 (syms_of_buffer): Add default-scroll-*-aggressively.
8811
8812 * buffer.h (scroll_up_aggressively): New.
8813 (scroll_down_aggressively): New.
8814
8815 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
8816 a static PNG library.
8817
8818 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
8819 in case it's a static library.
8820
8821 * Makefile.in (ctagsfiles): Split so that files starting
8822 with an `x' are found before files starting with `w32'.
8823 (ctagsfiles1): New.
8824 (ctagsfiles2): New.
8825 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
8826
8827 * xdisp.c (compute_window_start_on_continuation_line): New.
8828 (redisplay_window): Use it.
8829 (INFINITY): New.
8830 (reseat_to_string): Use it.
8831 (hscroll_window_tree): Ditto.
8832 (compute_window_start_on_continuation_line): Ditto.
8833 (redisplay_window): Don't force display with a new window start.
8834
88351999-06-06 Gerd Moellmann <gerd@gnu.org>
8836
8837 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
8838 if widget not present.
8839
8840 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
8841
88421999-06-04 Gerd Moellmann <gerd@gnu.org>
8843
8844 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
8845 value of realize_basic_faces.
8846 (load_face_font_or_fontset): Store full font name in face.
8847 (realize_default_face): Use full font name.
8848
26901792
DL
8849 * xterm.c (x_produce_glyphs): Set member char_to_display.
8850 (x_append_glyph): Store char_to_display in glyphs.
8851
8852 * dispextern.h (struct it): Add char_to_display.
8853
8854 * xfns.c (x_set_font): Don't call face-set-after-frame-default
8855 if faces haven't been initialized.
8856 (Fx_create_frame): Call face-set-after-frame-default after
8857 faces have been initialized, and widget has been created.
8858
8859 * puresize.h (BASE_PURESIZE): Increased.
8860
88611999-06-01 Gerd Moellmann <gerd@gnu.org>
8862
8863 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
8864 (Finternal_set_lisp_face_attribute): If frame is t when
8865 :font attribute is set, use the selected frame.
8866 (clear_face_cache): Add parameter clear_fonts_p.
8867 (Fclear_face_cache): Add optional parameter thorougly.
8868
8869 * xfaces.c (face_numeric_value): Return -1 if symbol is not
8870 in table.
8871 (Fclear_face_cache): New.
8872 (choose_face_fontset_font): If fontset doesn't contain font
8873 pattern for the given charset, use CHARSET_ASCII.
8874 (Finternal_set_lisp_face_attribute): Fix handling of nil
8875 stipple attribute.
8876 (Finternal_set_lisp_face_attribute): Fix handling of changing
8877 font-related face attributes of the default face.
8878 (set_lface_from_font_name): Set only attributes that aren't
8879 specified.
8880
88811999-05-31 Gerd Moellmann <gerd@gnu.org>
8882
8883 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
8884 font support.
8885 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
8886 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
8887 scalable fonts depending on the setting of SCALABLE_FONTS.
8888 (first_font_matching): List more than one font to find the
8889 first non-scalable matching font.
8890 (sorted_font_list): Let x_face_list_fonts return scalable fonts
8891 depending on SCALABLE_FONTS.
8892 (better_font_p): New parameter compare_pt_p. If zero, don't
8893 compare point sizes of fonts.
8894 (exact_face_match_p) [SCALABLE_FONTS]: New.
8895 (build_scalable_font_name) [SCALABLE_FONTS]: New.
8896 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
8897 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
8898 (syms_of_xfaces): Add scalable-fonts-allowed.
8899
89001999-05-26 Gerd Moellmann <gerd@gnu.org>
8901
8902 * xfns.c (png_load): Let PNG lib handle gamma. Construct
8903 mask only if image contains simple transparency information.
8904 Otherwise, combine image with frame background color.
8905
8906 * configure.in (--with-png, HAVE_PNG): New.
8907
8908 * config.in (HAVE_PNG): New.
8909
8910 * Makefile.in: Add PNG library.
8911
8912 * xfns.c: Add PNG support.
8913
89141999-05-25 Gerd Moellmann <gerd@gnu.org>
8915
8916 * xdisp.c (init_xdisp): Initialize echo_area_message and
8917 previous_echo_area_message to nil.
8918
8919 * keyboard.c (read_char): Rename local variable echo_area_message
8920 because it shadows the global one.
8921
89221999-05-05 Gerd Moellmann <gerd@gnu.org>
8923
8924 * xterm.c (note_mode_line_highlight): Restructured.
8925
8926 * window.c (coordinates_in_window): Handle windows that don't have
8927 a mode line because their buffer's mode-line-format is nil.
8928 Recognize the mode line under x positions that correspond to
8929 flags areas and left scroll bar.
8930
89311999-05-02 Dave Love <fx@gnu.org>
8932
8933 * xterm.c (note_mouse_highlight): Separate help-echo processing
8934 from check on mouse-face so that it works generally.
8935
89361999-04-21 Gerd Moellmann <gerd@gnu.org>
8937
8938 * sound.c (Fplay_sound): Run hook play-sound-hook.
8939 (Qplay_sound_hook): New.
8940
89411999-04-20 Gerd Moellmann <gerd@gnu.org>
8942
8943 * xdisp.c (update_echo_area): Handle echo_area_message.
8944
89451999-04-19 Gerd Moellmann <gerd@gnu.org>
8946
8947 * editfns.c (Fmessage): Use message3.
8948
8949 * print.c (printchar): Set echo_area_message to nil.
8950 (strout): Ditto.
8951
8952 * minibuf.c (read_minibuf): Reset echo message strings to nil.
8953 (Fminibuffer_completion_help): Ditto.
8954
8955 * keyboard.c (cmd_error_internal): Set echo_areA_message.
8956 (command_loop_1): Test echo_areA_message.
8957 (read_char): Ditto.
8958 (record_menu_key): Set echo_area_message to nil.
8959 (Fexecute_extended_command): Test echo_area_message.
8960 (Fexecute_extended_command): Handle echo_area_message.
8961
8962 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
8963 is set.
8964
8965 * editfns.c (Fcurrent_message): If echo_area_message is set,
8966 return a substring of that string.
8967
8968 * dispnew.c (direct_output_for_insert): Test echo_area_message
8969 in addition to echo_area_glyphs.
8970 (set_window_cursor_after_update): Ditto.
8971 (update_frame_1): Ditto.
8972
8973 * alloc.c (Fgarbage_collect): Use message3_nolog to display
8974 old Lisp message string.
8975
8976 * xdisp.c (echo_area_message): New.
8977 (previous_echo_area_message): New.
8978 (syms_of_xdisp): Initialize and staticpro new variables.
8979 (echo_area_display): Display echo_area_message if set.
8980 (message2_nolog): Set echo_area_message and
8981 previous_echo_area_message.
8982 (echo_area_display): Set previous_echo_area_message.
8983 (redisplay_internal): Display echo area if echo_area_message
8984 or previous_echo_area_message are set.
8985 (redisplay_preserve_echo_area): Test/set echo_area_message and
8986 previous_echo_area_message.
8987 (redisplay_window): Test echo_area_message.
8988 (message3_nolog): New.
8989 (message3): New.
8990
8991 * editfns.c (Fformat): Add text properties to the result string
8992 from properties of the format string and properties of string
8993 arguments.
8994
8995 * textprop.c (text_property_list): New.
8996 (add_text_properties_from_list): New.
8997 (extend_property_ranges): New.
8998
89991999-03-29 Gerd Moellmann <gerd@gnu.org>
9000
9001 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
9002 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
9003 Use these symbols for the box face attribute instead of the
9004 removed ones.
9005
90061999-03-12 Gerd Moellmann <gerd@gnu.org>
9007
9008 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
9009 Correct wrong test for slant.
9010
90111999-03-10 Gerd Moellmann <gerd@gnu.org>
9012
9013 * xfaces.c: Use `unspecified' for unspecified face attributes,
9014 use t and nil for on/off.
9015
90161999-03-06 Gerd Moellmann <gerd@gnu.org>
9017
9018 * buffer.c (syms_of_buffer): Extend doc string of
9019 mode-line-format.
9020
9021 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
9022 (first_font_matching): New.
9023 (set_lface_from_font_name): Use it if font name is a pattern.
9024 (font_field_wildcard_p): Removed.
9025
9026 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
9027 Recompute visible height of rows.
9028
9029 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
9030 Don't accept non-strings for help-echo from overlays.
9031
90321999-03-04 Dave Love <fx@gnu.org>
9033
9034 * xterm.c (note_mouse_highlight): Check overlays for help-text
9035 property.
9036 (XTread_socket): Fix compiler warning.
427ec082 9037
26901792
DL
90381999-03-05 Gerd Moellmann <gerd@gnu.org>
9039
427ec082 9040 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9041 overlay to 10. Call overlays_at so that it doesn't try to
9042 extend the vector.
9043
9044 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9045 height.
9046
9047 * dispnew.c (row_equal_p): Compare visible row height, only.
9048 (update_text_area): Draw whole line if visible heights of
9049 rows differ.
9050 (update_window_line): Call after_update_window_line_hook
9051 if visible row height has changed.
9052
9053 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9054 (struct glyph_row): New member visible_height.
9055
9056 * xfaces.c (font_field_wildcard_p): New.
9057 (set_lface_from_font_name): Remove parameter force_p. Accept
9058 font names containing wildcards.
9059
90601999-03-04 Gerd Moellmann <gerd@gnu.org>
9061
9062 * xterm.c (x_after_update_window_line): Clear internal border
9063 when windows_or_buffers_changed.
9064
9065 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9066 buffer has a nil mode_line_format.
9067
90681999-03-03 Gerd Moellmann <gerd@gnu.org>
9069
9070 * xterm.c (x_setup_relief_colors): Use either background color
9071 or specified color.
9072
9073 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9074
9075 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9076
9077 * xterm.c (x_draw_box_rect): New.
9078 (x_draw_glyph_string_box): Renamed from
9079 x_draw_glyph_string_relief. Call x_draw_box_rect.
9080
9081 * xfns.c (QCrelief): New.
9082 (syms_of_xfns): Initialize it.
9083
9084 * dispextern.h (struct glyph): Rename left_shadow_p to
9085 left_box_line_p, right_shadow_p to right_box_line_p.
9086 (MAX_RELIEF_THICKNESS): Removed.
9087 (struct it): Rename members having `relief' in their names
9088 to contain `box' instead.
9089
9090 * xfaces.c (realize_x_face): Handle new box attribute values.
9091 (QCrelief, Qbox): Removed.
9092 (QCshadow, QCcolor, Qraised, Qsunken): New.
9093 (syms_of_xfaces): Initialize new symbols.
9094
90951999-03-02 Gerd Moellmann <gerd@gnu.org>
9096
9097 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9098
9099 * xfaces.c (LFACE_RELIEF): Removed.
9100 (merge_face_vector_with_property): Remove handling of `:relief'.
9101 (Finternal_set_lisp_face_attribute): Ditto.
9102 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9103 (Finternal_get_lisp_face_attribute): Ditto.
9104 (realize_default_face): Ditto.
9105 (lface_hash): Don't compute hash from relief.
9106
9107 * dispextern.h (struct face): Replace member `relief' by
9108 `box_line_width'. Add member `box'.
9109 (face_box_type): New.
9110
9111 * xterm.c (x_produce_glyphs): If face has overline, add overline
9112 thickness + 1 to ascent.
9113
91141999-03-01 Gerd Moellmann <gerd@gnu.org>
9115
9116 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9117 strike-through, and boxes.
9118 (x_draw_glyph_string_underline): Removed.
9119
9120 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9121 (Qoverline, Qstrike_through, Qbox): New.
9122 (syms_of_xfaces): Define these symbols.
9123 (check_lface_attrs): Add checks for overline, strike-through,
9124 and box.
9125 (Finternal_set_lisp_face_attribute): Set new attributes.
9126 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9127 (load_color): Handle new attributes.
9128 (realize_x_face): Ditto.
9129 (merge_face_vector_with_property): Ditto.
9130 (free_face_colors): Ditto.
9131 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9132 (Finternal_get_lisp_face_attribute): Ditto.
9133 (Finternal_lisp_face_attribute_values): Ditto.
9134
9135 * dispextern.h (lface_attribute_index): Add enumerators for
9136 overstrike, strike-through, and box.
9137 (struct face): Add members for overline, strike-through, and
9138 box.
9139
91401999-02-17 Dave Love <fx@gnu.org>
9141
9142 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9143 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9144 files.
9145
91461999-02-16 Gerd Moellmann <gerd@gnu.org>
9147
9148 * keyboard.c (toolbar_items): Call access_keymap with third
9149 parameter 1, so that we don't get inherited toolbar item
9150 definitions.
9151
9152 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9153 the window end vpos when in empty first line of window.
9154
91551999-02-15 Gerd Moellmann <gerd@gnu.org>
9156
9157 * xfaces.c (set_font_frame_param): New.
9158 (Finternal_set_lisp_face_attribute): Call it.
9159
9160Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9161
9162 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9163 Accept specifications of color for underline.
9164
91651999-02-13 Gerd Moellmann <gerd@gnu.org>
9166
9167 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9168 `frame' is t, operate on face defaults for new frames. If it
9169 is nil, operate on the selected frame.
9170
91711999-02-12 Gerd Moellmann <gerd@gnu.org>
9172
9173 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9174 (update_window): Put the call to check_matrix_invariants in #if 0.
9175
9176Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9177
9178 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9179 Remove definition of UNDERLINE_COLOR.
9180
9181Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9182
9183 * xfaces.c (free_face_colors): Free the color for underline.
9184
9185 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9186 to the GC.
9187
9188Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9189
9190 * dispextern.h (UNDERLINE_COLOR): Defined.
9191 (struct face): Added two new members.
9192 underline_color, underline_defaulted_p.
9193
427ec082 9194 * xfaces.c (merge_face_vector_with_property):
26901792 9195 (check_lface_attrs): Accept the string value for underline.
427ec082 9196 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9197
9198 * xfaces.c (load_color): Change the last argument type to enum
9199 lface_attribute_index from int. And addec code for underling coloring.
9200 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9201
26901792
DL
92021999-02-12 Gerd Moellmann <gerd@gnu.org>
9203
9204 * xfns.c (Fx_image_header): Removed.
9205
92061999-02-07 Gerd Moellmann <gerd@gnu.org>
9207
9208 * xterm.c: Don't include <bitmaps/gray>.
9209 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9210
9211 * xfns.c (Fx_image_header): Add missing `\n\'.
9212 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9213
92141999-02-01 Gerd Moellmann <gerd@gnu.org>
9215
9216 * xterm.c (x_scroll_bar_create): Set background pixel from
9217 specified scroll bar color.
9218 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9219
9220 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9221 (x_set_scroll_bar_background): Ditto.
9222
9223 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9224
9225 * xfns.c (x_default_scroll_bar_color_parameter): New.
9226 (Fx_create_frame): Call it.
9227
92281999-01-31 Gerd Moellmann <gerd@gnu.org>
9229
9230 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9231 values in x_output structure.
26901792
DL
9232 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9233 (syms_of_xfns): Initialize these symbols.
9234
9235 * xterm.h (struct x_output): Add scroll bar pixel colors.
9236
9237 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9238 (x_set_scroll_bar_foreground): New.
9239 (x_set_scroll_bar_background): New.
9240
26901792
DL
92411999-01-12 Gerd Moellmann <gerd@gnu.org>
9242
9243 * xdisp.c (handle_single_display_prop): New.
9244 (handle_display_prop): Call it.
9245 (handle_raise_prop): Removed.
9246 (handle_height_prop): Removed.
9247 (handle_space_width_prop): Removed.
9248 (handle_face_prop): Remove handling of raised text.
9249 (handle_display_prop): Do it here.
9250
9251 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9252 (RAISE_PROP_IDX): Removed.
9253 (HEIGHT_PROP_IDX): Removed.
9254 (SPACE_WIDTH_PROP_IDX): Removed.
9255
9256 * xdisp.c (Qdisplay): Replaces Qglyph.
9257 (handle_display_prop): Formerly handle_glyph_prop.
9258
92591999-01-11 Gerd Moellmann <gerd@gnu.org>
9260
9261 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9262 (handle_stop): Set position in display vector to -1. Don't
9263 check overlay strings when set up to deliver characters from a
9264 display vector.
9265 (set_iterator_to_next): At the end of a run of characters from a
9266 display vector, check whether the display vector display replaces
9267 the display of a character.
9268
92691999-01-05 Gerd Moellmann <gerd@gnu.org>
9270
9271 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9272 X window hasn't been created yet.
9273
92741998-12-06 Gerd Moellmann <gerd@gnu.org>
9275
9276 * sound.c: New.
9277
92781998-12-04 Gerd Moellmann <gerd@gnu.org>
9279
9280 * config.in (HAVE_SOUND): New.
9281
9282 * emacs.c (main): Call syms_of_sound and init_sound.
9283
9284 * Makefile.in (obj): Add sound.o.
9285
9286 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9287
9288 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9289 (HAVE_SYS_SOUNDCARD_H): New.
9290
92911998-12-03 Gerd Moellmann <gerd@gnu.org>
9292
9293 * buffer.h (struct buffer): indicate_empty_lines renamed from
9294 indicate_zv_lines.
9295
9296 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9297 (default-indicate-zv-lines): Likewise.
9298
9299 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9300 to indicate_empty_line_p.
9301
9302 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9303 to next_element_from_buffer.
9304
9305 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9306
9307 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9308 and `N-'.
9309
9310 * xfns.c (xbm_scan): New.
9311 (xbm_read_hexint): Removed.
9312 (xbm_read_bitmap_file_data): Use xbm_scan.
9313
9314 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9315
93161998-12-02 Gerd Moellmann <gerd@gnu.org>
9317
9318 * xfns.c (xbm_read_hexint): New.
9319 (xbm_read_bitmap_file_data): New.
9320 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9321 instead of XReadBitmapFileData.
9322
9323 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9324
9325 * xfaces.c (face_with_height): New.
9326
9327 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9328 (eval_form): Renamed from eval_mode_element.
9329 (handle_face_prop): Use it.
9330 (Qheight): Replaces Qsmaller.
9331 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9332 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9333 integer, evaluate it to get the font height to use.
9334
9335 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9336 (struct it): Use `font_height' instead of `smaller'.
9337
93381998-12-01 Gerd Moellmann <gerd@gnu.org>
9339
9340 * xdisp.c (reseat_1): New.
9341 (reseat): Call it.
9342 (move_it_vertically_backward): Ditto.
9343 (redisplay_window): Don't abort when cursor not found in recenter.
9344
93451998-11-30 Gerd Moellmann <gerd@gnu.org>
9346
9347 * xdisp.c (reseat_at_next_visible_line_start): When not
9348 currently delivering display elements from the current buffer,
9349 restore buffer position first.
9350 (init_from_display_pos): Don't set IT's position from the
9351 position passed to this function.
9352
93531998-11-28 Gerd Moellmann <gerd@gnu.org>
9354
9355 * config.in (PROTO): Removed.
9356
9357 * xterm.h: Change PROTO to P_.
9358
93591998-11-26 Gerd Moellmann <gerd@gnu.org>
9360
9361 * xterm.c (take_vertical_position_into_account): New.
9362 (x_produce_image_glyph): Call it.
9363 (x_produce_stretch_glyph): Ditto.
9364 (x_produce_glyphs): Ditto.
9365 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9366 (x_fill_composite_glyph_string): Ditto.
9367 (x_fill_image_glyph_string): Ditto.
9368 (x_fill_stretch_glyph_string): Ditto.
9369
9370 * xdisp.c (display_line): Always compute row height from
9371 max_ascent and max_descent.
9372
9373 * dispextern.h (struct glyph): Add voffset.
9374 (struct it): Replace height by descent, max_height by max_descent.
9375
9376 * xterm.c (x_append_glyph): Set voffset
9377 (x_append_stretch_glyph): Ditto.
9378 (x_produce_image_glyph): Ditto.
9379 (x_produce_glyphs): Take voffset into account.
9380 (x_produce_image_glyph): Ditto.
9381 (x_produce_stretch_glyph): Ditto.
9382
9383 * dispextern.h (struct it): Add voffset.
9384 * xdisp.c (push_it): Save voffset.
9385 (pop_it): Restore it.
9386
9387 * xdisp.c (it_props): Add entry for `raise'.
9388 (handle_raise_prop): New.
9389
9390 * dispextern.h (RAISE_PROP_IDX): New.
9391
9392 * xdisp.c (Qraise): New.
9393 (syms_of_xdisp): Define Qraised.
9394
9395 * xterm.c (x_scroll_bar_move): Clear to the left and right
9396 of toolkit scroll bars differently.
9397 (x_scroll_bar_move): Removed.
9398 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9399
9400 * dispextern.h: Make it compilable --with-x=no.
9401 * alloc.c: Ditto.
9402 * emacs.c: Ditto.
9403 * dispnew.c: Ditto.
9404 * keyboard.c: Ditto.
9405 * term.c: Ditto.
9406 * xdisp.c: Ditto.
9407 * xfaces.c: Ditto.
9408 * xfns.c: Ditto.
9409 * xmenu.c: Ditto.
9410
94111998-11-25 Gerd Moellmann <gerd@gnu.org>
9412
9413 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9414
94151998-11-24 Gerd Moellmann <gerd@gnu.org>
9416
9417 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9418 update slider size, only.
9419 (xm_scroll_callback): Set dragging member of the scroll bar.
9420 (xt_action_hook): Reset last_scroll_bar_part.
9421 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9422
26901792
DL
9423 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9424 window on newly created frames that don't have one.
9425
94261998-11-23 Gerd Moellmann <gerd@gnu.org>
9427
9428 * xdisp.c (restore_overlay_strings): Removed.
9429 (restore_dpvec): Removed.
9430 (init_from_display_pos): Inline both functions above.
9431
9432 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9433 (parse_image_spec): Handle it.
9434 (xbm_format): Use it.
9435 (xpm_format): Ditto.
9436 (pbm_format): Ditto.
9437 (jpeg_format): Ditto.
9438 (tiff_format): Ditto.
9439 (gif_format): Ditto.
9440 (gs_format): Ditto.
9441
9442 * xdisp.c (set_window_cursor): Removed.
9443 (redisplay_internal): Case cursor motion in cursor line of
9444 selected window; use set_cursor_from_row.
9445
94461998-11-22 Gerd Moellmann <gerd@gnu.org>
9447
9448 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9449 into account.
9450
94511998-11-21 Gerd Moellmann <gerd@gnu.org>
9452
9453 * xterm.c (expose_frame): Redraw menu bar window.
9454
9455 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9456 in menu item.
9457
9458 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9459 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9460
9461 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9462 to determine vertical_scroll_bar_extra.
9463 (EmacsFrameSetCharSize): Ditto.
9464 * xfns.c (x_figure_window_size): Ditto.
9465
9466 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9467 (x_draw_bitmap): Ditto.
9468
9469 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9470 * xfaces.c (realize_basic_faces): Realize it.
9471
94721998-11-20 Gerd Moellmann <gerd@gnu.org>
9473
9474 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9475 under LessTif Use the widget of the frame as parent for the
26901792
DL
9476 menu, again.
9477
94781998-11-19 Gerd Moellmann <gerd@gnu.org>
9479
9480 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9481 When EnterNotify, don't generate a mouse movement event if
9482 notification is from a busy-cursor child window.
9483
9484 * xterm.h (struct x_output): Add busy_window, remove cursor.
9485
9486 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9487 Use a transparent window to display the busy-cursor.
9488 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9489
94901998-11-17 Gerd Moellmann <gerd@gnu.org>
9491
9492 * xdisp.c (check_window_end): New, for debugging.
9493 (CHECK_WINDOW_END): New.
9494 (try_window_id): Use it.
9495
9496 * xterm.c (process_expose_from_menu): Return int.
9497
9498 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9499 TOOLBAR_EVENT events in last_nonmenu_event.
9500
95011998-11-16 Gerd Moellmann <gerd@gnu.org>
9502
9503 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9504 window end isn't reliable, so set window_end_valid to nil.
9505 (redisplay_internal): If overlay arrow has changed, set
9506 windows_or_buffers_changed to redisplay thoroughly.
9507
9508 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9509 necessary.
9510
9511 * xfns.c (file_dialog_cb): New.
9512 (Fx_file_dialog): New.
9513 * fileio.c (Fread_file_name): Call it.
9514
427ec082 9515 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9516 selection dialog.
9517
95181998-11-14 Gerd Moellmann <gerd@gnu.org>
9519
9520 * xterm.c (note_mouse_highlight): Don't highlight when popup
9521 is active.
9522
26901792
DL
9523 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9524 timer-event-handler. This busy cursor tends to be anoying if
9525 fontifying stealthily.
9526
9527 * dispnew.c (direct_output_for_insert): Give up if current row
9528 contains trailing whitespace.
9529
95301998-11-13 Gerd Moellmann <gerd@gnu.org>
9531
9532 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9533
9534 * xdisp.c (handle_fontified_prop): New.
9535 (Vfontification_functions): New.
9536 (Qfontification_functions): New.
9537 (it_props): Add handle_fontified_prop.
9538
95391998-11-12 Gerd Moellmann <gerd@gnu.org>
9540
9541 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9542 Otherwise, under LessTif, after the popup has gone, all button
9543 press events come in for the frame's widget, and release events
9544 come in for the edit_widget.
9545 * xterm.c (XTread_socket): Remove workaround for that problem.
9546 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9547 XmScrollBarSetValues.
9548 (SET_SAVED_MENU_EVENT): Give it statement form.
9549
26901792
DL
9550 * xfaces.c (display_message): If waiting_for_input, don't display
9551 the message.
9552
9553 * window.c (scroll_command): If not acting on current_buffer,
9554 make redisplay consider all windows.
9555
9556 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9557
9558 * xdisp.c (handle_glyph_prop): Set it->object for images to
9559 the object having the glyph property.
9560
9561 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9562 invisible.
9563
95641998-11-11 Gerd Moellmann <gerd@gnu.org>
9565
9566 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9567 (x_term_init): Create the gray pixmap.
9568 (x_setup_relief_color): Use it.
9569 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9570 internal border at the top of a frame.
9571 (x_init_glyph_string): Likewise.
427ec082 9572 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9573 full-width lines.
9574 (XTflash): Don't flash the toolbar window.
9575
9576 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9577 in case of ButtonPress events.
9578
95791998-11-10 Gerd Moellmann <gerd@gnu.org>
9580
9581 * xrdb.c (x_load_resources): Add grey background colors as
9582 defaults for menus, scroll bars, and dialogs.
9583
9584 * insdel.c (prepare_to_modify_buffer): Move setting
9585 windows_or_buffers_changed from modify_region here.
9586
9587 * xfns.c (Fx_show_tip): Inhibit redisplay.
9588 (Fx_hide_tip): Ditto.
9589 (Fx_image_header): New.
9590
95911998-11-09 Gerd Moellmann <gerd@gnu.org>
9592
9593 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9594 when clearing current window matrices.
9595
95961998-11-08 Gerd Moellmann <gerd@gnu.org>
9597
9598 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9599 position from a string position. Use the right end position
9600 if the property spans a whole overlay string.
9601
96021998-11-07 Gerd Moellmann <gerd@gnu.org>
9603
9604 * xmenu.c (menubar_selection_callback): Remove workaround for
9605 Lesstif not calling XmNpopdownCallback because it doesn't
9606 handle the case where users don't select any menu item.
9607
26901792
DL
9608 * insdel.c (modify_region): Set windows_or_buffers_changed.
9609
9610 * buffer.c (set_buffer_internal): Don't set
9611 windows_or_buffers_changed.
9612
26901792
DL
9613 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9614
26901792
DL
9615 * xmenu.c (menubar_selection_callback): Add workaround for
9616 Lesstif not calling XmNpopdownCallback.
9617
9618 * xdisp.c (eval_mode_element): New.
9619 (eval_mode_handler): New.
9620 (display_mode_element): Use eval_mode_element.
9621
9622 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9623 Remove code looking at text props of default value.
9624
9625 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9626
26901792
DL
96271998-11-06 Gerd Moellmann <gerd@gnu.org>
9628
427ec082 9629 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9630 BUTTON_TYPE_NONE.
9631 (single_submenu): Likewise for panes and menu items.
9632 (set_frame_menubar): Set button_type of menu bar to none.
9633 (xmenu_show): Likewise.
9634 (single_submenu): Set widget values selected slot.
9635 (xmenu_show): Likewise.
9636
26901792
DL
9637 * xmenu.c (push_menu_item): Add parameters `type' and
9638 `selected'. Store it in menu_items.
9639 (MENU_ITEMS_ITEM_TYPE): New.
9640 (MENU_ITEMS_ITEM_SELECTED): New.
9641 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9642
9643 * xfns.c (clear_image_cache): Get the current time, before
9644 doing anything.
9645 (cache_image): Set prev pointer of next image.
9646 (clear_image_cache): Clear current matrices if any image was
9647 freed.
9648
9649 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9650
9651 * xfns.c (x_set_cursor): New.
9652 (Fx_display_busy_cursor): New.
9653 (Fx_undisplay_busy_cursor): New.
9654
9655 * xterm.h (struct x_output): Add busy_cursor.
9656
9657 * xfns.c (Vx_busy_pointer_shape): New.
9658 (x_set_mouse_color): Create busy cursor.
9659
9660 * process.c (wait_reading_process_input): Show and hide busy
9661 cursor.
9662
9663 * keyboard.c (command_loop_1): Display busy cursor.
9664
9665 * eval.c (Fsignal): Hide busy cursor.
9666
9667 * buffer.c (set_buffer_internal): Don't set
9668 windows_or_buffers_changed.
9669
9670 * xterm.c (redo_mouse_highlight): New.
9671
96721998-11-04 Gerd Moellmann <gerd@gnu.org>
9673
26901792
DL
9674 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9675 (x_build_heuritic_mask): New.
9676 (lookup_image): Call it.
9677
9678 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9679 (previous_help_echo): New.
9680 (XTread_socket): Generate help event with nil message when
9681 leaving a region with help-echo.
9682 (note_mouse_highlight): Handle `help-echo' over text.
9683 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9684 CirculateRequest.
9685 (clear_mouse_face): Don't clear if tooltip is shown.
9686 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9687 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9688
9689 * keyboard.c (Vshow_help_function): New.
9690 (read_char): Use it.
9691
96921998-11-03 Gerd Moellmann <gerd@gnu.org>
9693
9694 * xfns.c (x_create_tip_frame): New.
9695 (Fx_show_tip): New.
9696 (Fx_hide_tip): New.
9697
427ec082 9698 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
9699 a widget.
9700
9701 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9702 to full_width_p. Add internal_border_p.
9703
97041998-11-02 Gerd Moellmann <gerd@gnu.org>
9705
9706 * xterm.c (note_mode_line_highlight): Check the charpos of
9707 the glyph under the mouse pointer before accessing text
9708 properties at that position.
9709
97101998-11-01 Gerd Moellmann <gerd@gnu.org>
9711
9712 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9713
9714 * xdisp.c (auto-raise-toolbar-buttons): New.
9715 (build_desired_toolbar_string): Handle the flag.
9716 (toolbar-button-margin): New.
9717 (toolbar-button-relief): New.
9718 (build_desired_toolbar_string): Use margin and relief.
9719
9720 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9721 for FreeBSD.
9722 (note_mode_line_highlight): New.
9723 (note_mouse_highlight): Call it.
9724
97251998-10-31 Gerd Moellmann <gerd@gnu.org>
9726
9727 * s/freebsd.h (NARROWPROTO): New.
9728
9729 * xdisp.c (display_string): New parameter face_string.
9730 (display_mode_element): When displaying a symbol with a string
9731 value, use text properties from the symbol's default value, maybe.
9732
9733 * xrdb.c (x_load_resources): Add font defaults for menus and
9734 dialogs.
9735
97361998-10-30 Gerd Moellmann <gerd@gnu.org>
9737
9738 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9739
97401998-10-29 Gerd Moellmann <gerd@gnu.org>
9741
9742 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9743 produced for characters with codes < 32 under certain
9744 circumstances.
9745
9746 * xdisp.c (redisplay_window): Handle values of PT in front
9747 of invisible, intangible text.
427ec082 9748 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
9749 displaying lines.
9750 (display_mode_element): Assign to glyphs written for a mode
9751 line spec `%x' as object the Lisp format string, as position
9752 the position of the `%' in that string.
9753 (display_string): If displaying a C string, optionally get
9754 the face to use from a Lisp string.
9755
9756 * xterm.c (expose_window_tree): Include mode line height.
9757
9758 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9759
97601998-10-27 Gerd Moellmann <gerd@gnu.org>
9761
9762 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9763 over mode line.
9764
97651998-10-26 Gerd Moellmann <gerd@gnu.org>
9766
9767 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9768
9769 * xdisp.c (redisplay_window): If mode line height has changed,
9770 arrange for a thorough immediate redisplay using the correct mode
9771 line height.
9772 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9773
9774 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9775 (CURRENT_MODE_LINE_HEIGHT): New.
9776 (DESIRED_MODE_LINE_HEIGHT): New.
9777
9778 * keyboard.c (make_lispy_event): Add string and string position
9779 info to mouse-click events.
9780 (read_key_sequence): Handle `local-map' property of mode line
9781 strings.
9782
9783 * keyboard.h (POSN_STRING): New.
9784
97851998-10-25 Gerd Moellmann <gerd@gnu.org>
9786
9787 * dispnew.c (mode_line_string): Mew.
9788
9789 * xterm.c (xt_action_hook): New.
9790 (x_create_toolkit_scroll_bar): Add action hook.
9791 (xm_scroll_callback): Implement dragging.
9792
9793 * keyboard.c (Qend_scroll): New.
9794 (scroll_bar_parts): Add it.
9795
9796 * termhooks.h (scroll_bar_end_scroll): New.
9797
9798 * xterm.c (XTread_socket): Bug fix.
9799
98001998-10-24 Gerd Moellmann <gerd@gnu.org>
9801
9802 * xdisp.c (redisplay_window): Finish scroll bars after
9803 redisplaying toolbar.
9804
9805 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
9806 (syms_of_keyboard): Add Qbottom.
9807
9808 * termhooks.h (scroll_bar_to_top): New.
9809 (scroll_bar_to_bottom): New.
9810
9811 * xdisp.c (redisplay_window): Always resize toolbar window if
9812 auto_resize_toolbar_p is non-zero.
9813 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
9814 (window_box): New.
9815 (window_box_height): New.
9816 (window_box_width): New.
9817 (window_box_left): New.
9818 (window_box_right): New.
9819 (window_box_edges): New.
9820
98211998-10-23 Gerd Moellmann <gerd@gnu.org>
9822
9823 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
9824 XawScrollbarSetThumb in FreeBSD.
9825 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
9826 to true.
9827
9828 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
9829 is out of range.
9830
9831 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
9832 (x_term_init): Initialize it.
9833
9834 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
9835
9836 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
9837 cursor.
9838
98391998-10-22 Gerd Moellmann <gerd@gnu.org>
9840
9841 * keyboard.c (make_lispy_event): Handle scroll_bar_click
9842 differently when using toolkit scroll bars.
9843
9844 * xterm.c (x_send_scroll_bar_event): New.
9845 (x_scroll_bar_to_input_event): New.
9846 (xaw3d_scroll_callback): New.
9847 (xaw3d_jump_callback): New.
9848 (xm_scroll_callback): New.
9849 (x_toolkit_scroll_p): New.
9850 (XTread_socket): Handle scroll bar client message.
9851 (x_term_init): Initialize Xatom_Scrollbar.
9852 (x_scroll_bar_create): Set cursor.
9853 (xm_scroll_callback):
9854 (x_create_toolkit_scroll_bar): New.
9855 (x_set_toolkit_scroll_bar_thumb): New.
9856 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
9857 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
9858
9859 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
9860
98611998-10-21 Gerd Moellmann <gerd@gnu.org>
9862
9863 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
9864 (XTread_socket): Don't handle mouse button events for scroll bars
9865 if using toolkit scroll bars.
9866 (XTset_vertical_scroll_bar): Set thumb size and position for
9867 Athena scroll bar.
9868
9869 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
9870
9871 * xterm.c (XTread_socket): Dispatch expose event to widget
9872 if using toolkit scroll bars.
9873 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 9874 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
9875 if using toolkit scroll bars.
9876 (x_scroll_bar_move): Handle tookit scroll bars.
9877
9878 * Makefile.in (LIBW): Use Xaw3d if present.
9879
9880 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
9881 (HAVE_XAW3D): New.
427ec082 9882
26901792
DL
9883 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
9884 (HAVE_XAW3D): New.
9885
427ec082 9886 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
9887 right vertical scroll bar.
9888
98891998-10-20 Gerd Moellmann <gerd@gnu.org>
9890
9891 * xfns.c (xpm_load): Support reading XPM images from string
9892 buffers containing data in the same format as an XPM file.
9893 Support `:color-symbols'.
9894 (xpm_format): Add `:data'.
9895 (xpm_keyword_index): Add XPM_DATA.
9896 (syms_of_xfns): Add `:color-symbols'.
9897 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
9898 (xpm_valid_color_symbols_p): New.
9899 (xpm_image_p): Call it.
9900
9901 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
9902 attribute to the image if item is not enabled.
9903
9904 * xfns.c (x_laplace): New.
9905 (x_laplace_read_row): New.
9906 (x_laplace_write_row): New.
9907 (lookup_image): Handle common image attributes here. New
9908 attribute `:algorithm'.
9909
9910 * xfaces.c (clear_face_cache): Call clear_image_cache.
9911
9912 * xterm.c (x_inverted_image_mask): Removed.
9913 (x_draw_image_foreground_1): New.
9914 (x_draw_image_glyph_string): Draw images with mask to a temporary
9915 pixmap to reduce flickering.
9916
9917 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
9918 (display_toolbar_line): Remove parameter `margin'.
9919
99201998-10-19 Gerd Moellmann <gerd@gnu.org>
9921
9922 * xdisp.c (toolbar_lines_needed): New.
9923 (auto-resize-toolbars): New.
9924
9925 * xfns.c (cache_image): Correct call to xrealloc.
9926
9927 * dispnew.c (Fset_toolbar_height): Removed.
9928
9929 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
9930 FRAME_MENU_BAR_LINES.
9931
9932 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
9933 instead of FRAME_MENU_BAR_LINES.
9934 (check_frame_size): Ditto.
9935
9936 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
9937 instead of FRAME_MENU_BAR_LINES.
9938 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
9939 (build_frame_matrix): Ditto.
9940 (change_frame_size_1): Ditto.
9941
9942 * frame.h (FRAME_TOOLBAR_LINES): New.
9943 (FRAME_TOP_MARGIN): New.
9944
9945 * window.c (struct save_window_data): Add frame_toolbar_lines.
9946 (Fset_window_configuration): Handle toolbar lines.
9947 (Fcurrent_window_configuration): Save toolbar lines.
9948
9949 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
9950
9951 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
9952
9953 * frame.h (struct frame): Rename top_margin to toolbar_lines.
9954
9955 * xfns.c (x_frame_parms): Add `toolbar-lines'.
9956 (x_set_toolbar_lines): New.
9957
9958 * keyboard.c (cmd_error_internal): Bug fix.
9959
9960 * xterm.c: Remove double include of syssignal.h.
9961
99621998-10-18 Gerd Moellmann <gerd@gnu.org>
9963
9964 * xterm.c (x_toolbar_item): New.
9965 (x_handle_toolbar_click): Use it.
9966 (note_toolbar_highlight): Use it.
9967
9968 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
9969 and toolbar_items_vectors.
9970
9971 * xterm.c (help_echo): New.
9972 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
9973 (x_set_glyph_string_gc): Handle them.
9974 (x_after_update_window_line): Don't do anything in pseudo-windows.
9975 (x_produce_image_glyph): Take image margin and face relief into
9976 account.
9977 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
9978 (x_draw_glyph_string_background): Optimize case when face has
9979 relief.
9980 (x_setup_relief_color): Take frame instead of glyph string
9981 parameter.
9982 (x_draw_relief_rect): New.
9983 (x_draw_glyph_string_relief): Call it.
9984 (x_draw_image_glyph_string_foreground): Handle margin and image
9985 relief.
9986 (x_draw_image_glyph_string_background): Ditto.
9987 (expose_frame): Redraw toolbar window.
9988 (expose_window): Don't draw cursor for pseudo-windows.
9989 (x_y_to_hpos_vpos): Handle pseudo-windows.
9990 (frame_to_window_pixel_xy): New.
9991 (note_mouse_highlight): Call note_toolbar_highlight.
9992 (x_handle_toolbar_click): New.
9993 (note_toolbar_highlight): New.
9994 (show_mouse_face): Change int parameter `hl' to parameter of
9995 type enum draw_glyphs_face. Handle image highlighting.
9996 (XTread_socket): Return a HELP_EVENT input event if help_echo is
9997 non-nil. Use x_handle_toolbar_click.
9998
9999 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
10000
10001 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
10002 IMAGE_BOOL_VALUE.
10003 (parse_image_spec): Handle them.
10004 (image_spec_value): Additional parameter found.
427ec082 10005 (free_image): Remove image from the vector `images' of the
26901792
DL
10006 image cache.
10007 (clear_image_cache): Additional parameter force_p.
10008 (Fclear_image_cache): New.
10009 (x_find_image_file): New.
10010 (xbm_load): Handle `:margin' and `:relief'. Use
10011 x_find_image_file.
10012 (xpm_load): Likewise.
10013 (pbm_load): Likewise.
10014 (jpeg_load): Likewise.
10015 (tiff_load): Likewise.
10016 (gif_load): Likewise.
10017
10018 * keyboard.c (Qhelp_echo): New symbol.
10019 (read_char): Handle `toolbar' and `help_echo' events.
10020 (kbd_buffer_get_event): Handle HELP_ECHO input event.
10021 (make_lispy_event): Handle TOOLBAR_EVENT.
10022 (toolbar_items): New.
10023 (process_toolbar_item): New.
10024 (PROP): New.
10025 (init_toolbar_items): New.
10026 (append_toolbar_item): New.
10027 (read_char_x_menu_prompt): Handle `toolbar' event.
10028 (read_key_sequence): Ditto.
10029
10030 * xfaces.c (Qtoolbar): New.
10031 (realize_basic_faces): Realize `toolbar' face.
10032 (face_at_string_position): Remove parameter modeline_p, add
10033 base_face_id.
10034
10035 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10036 to read data.
10037
100381998-10-17 Gerd Moellmann <gerd@gnu.org>
10039
10040 * xdisp.c (init_iterator): Replace parameter modeline_p with
10041 base_face_id.
10042 (next_element_from_string): Call get_next_display_element
10043 recursively after handling text properties.
10044 (prepare_menu_bars): Call update_toolbar.
10045 (update_toolbar): New.
10046 (build_desired_toolbar_string): New.
10047 (display_toolbar_line): New.
10048 (redisplay_toolbar): New.
10049 (toolbar_item_info): New.
10050 (redisplay_window): Call redisplay_toolbar.
10051 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10052
10053 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10054 window.
10055 (clear_desired_matrices): Ditto.
10056 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10057 (free_glyphs): Free matrices of toolbar window.
10058 (update_frame): Update toolbar window.
10059 (change_frame_size_1): Take toolbar into account.
10060 (Fset_toolbar_height): New.
10061
10062 * dispextern.h (struct it): Remove member modeline_p, add
10063 base_face_id.
10064 (struct image): Add members relief and margin.
10065 (IMAGE_ASCENT): Include margin in height.
10066
100671998-10-14 Gerd Moellmann <gerd@gnu.org>
10068
10069 * xfns.c (Fclear_image_cache): New.
10070
10071 * xfaces.c (realize_basic_faces): Realize toolbar face.
10072 (face_at_string_position): Remove parameter modeline_p, add
10073 base_face_id.
10074
10075 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10076
100771998-10-13 Gerd Moellmann <gerd@gnu.org>
10078
10079 * keyboard.c (syms_of_keyboard): Intern `:help'.
10080
100811998-10-12 Gerd Moellmann <gerd@gnu.org>
10082
10083 * xterm.c (note_toolbar_highlight): New.
10084 (note_mouse_highlight): Call it.
10085
10086 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10087 (coordinates_in_window): Handle toolbar window.
10088
10089 * keyboard.c (toolbar_items): New.
10090 (process_toolbar_item): New.
10091 (parse_toolbar_item): New.
10092 (init_toolbar_items): New.
10093 (append_toolbar_item): New.
10094
10095 * dispextern.h (enum toolbar_item_idx): New.
10096 (enum toolbar_item_image): New.
10097
10098 * frame.h (struct frame): Add toolbar-related members.
10099
10100 * xfaces.c (face_at_string_position): Remove assertion that
10101 current_buffer == window's buffer. This is not the case when
10102 called for the toolbar window.
10103
10104 * frame.c (make_frame): Initialize toolbar members.
10105
10106 * alloc.c (mark_object): Mark toolbar data of frames.
10107
10108 * frame.h (struct frame): Add toolbar-related members
10109 toolbar_window, desired_toolbar_items, current_toolbar_items,
10110 desired_toolbar_string, current_toolbar_string,
10111 n_desired_toolbar_items, n_current_toolbar_items. Add
10112 window_height.
10113
10114 * xterm.c (x_after_update_window_line): Don't draw bitmap
10115 areas for pseudo-windows.
10116 (expose_frame): Handle toolbar window.
10117 (expose_window): Don't do cursor stuff for pseudo-windows.
10118
10119 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10120
101211998-10-11 Gerd Moellmann <gerd@gnu.org>
10122
10123 * frame.c (make_frame): Initialize toolbar_window.
10124
10125 * alloc.c (mark_object): Make the toolbar window.
10126
10127 * dispnew.c (update_frame): Update frame's toolbar_window.
10128 (clear_current_matrices): Likewise.
10129 (clear_desired_matrices): Likewise.
10130 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10131 (free_glyphs): Free the toolbar window and its matrices.
10132
10133 * frame.h (struct frame): Add toolbar_window.
10134
10135 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10136 with relief.
10137
101381998-10-10 Gerd Moellmann <gerd@gnu.org>
10139
427ec082 10140 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10141 window start is not in the range BEGV..ZV.
10142
101431998-10-09 Gerd Moellmann <gerd@gnu.org>
10144
10145 * xdisp.c (try_scrolling): Experimentally handle the case
10146 that scroll-preserve-screen-position is set to `always'.
10147
10148 * window.c (Vscroll_preserve_screen_position): Replacement for
10149 scroll_preserve_screen_position.
10150
101511998-10-08 Gerd Moellmann <gerd@gnu.org>
10152
10153 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10154 doesn't like it.
10155 * xdisp.c: Ditto.
10156
10157 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10158
101591998-10-06 Gerd Moellmann <gerd@gnu.org>
10160
427ec082 10161 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10162 i_byte when prompts are inserted into minibuffers.
10163
10164 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10165 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10166 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10167
101681998-10-04 Gerd Moellmann <gerd@gnu.org>
10169
10170 * xdisp.c (make_cursor_line_fully_visible): New.
10171 (try_scrolling): New.
10172 (redisplay_window): Move scrolling code to try_scrolling.
10173 (make_cursor_line_fully_visible): Handle case of window too small
10174 to show a single line.
10175 (redisplay_window): Case forced window start---use
10176 make_cursor_line_fully_visible.
10177 (redisplay_window): Case cursor movement via current matrix.
10178 If ending up on a partially visible line, make it fully visible
10179 instead of recentering.
10180 (try_scrolling): Additional parameter scroll_smoothly.
10181
10182 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10183
101841998-09-28 Gerd Moellmann <gerd@gnu.org>
10185
10186 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10187 instead of y-position for scroll-preserved-screen-position.
10188
101891998-09-07 Gerd Moellmann <gerd@gnu.org>
10190
10191 * dispnew.c (update_frame_line): If current row is not enabled,
10192 write the whole line.
10193
101941998-09-06 Gerd Moellmann <gerd@gnu.org>
10195
10196 * lisp.h (HAVE_FACES): Removed.
10197
10198 * dispextern.h (HAVE_FACES): Removed.
10199
10200 * config.in (HAVE_FACES): Removed.
10201
10202 * dispnew.c (HAVE_FACES): Removed.
10203
10204 * xdisp.c (HAVE_FACES): Removed.
10205
10206 * xfaces.c (HAVE_FACES): Removed.
10207
102081998-09-05 Gerd Moellmann <gerd@gnu.org>
10209
10210 * xdisp.c (init_iterator): If face_change_count is non-zero,
10211 free realized faces.
10212
10213 * xfaces.c (free_all_realized_faces): Make it externally visible.
10214 (Finternal_set_lisp_face_attribute): Increment
10215 windows_or_buffers_changed.
10216
10217 * dispnew.c (direct_output_for_insert): Give up if
10218 face_change_count is non-zero.
10219 (direct_output_forward_char): Ditto.
10220
10221 * xfaces.c (face_change_count): New.
10222
102231998-09-04 Gerd Moellmann <gerd@gnu.org>
10224
10225 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10226 of range.
10227
102281998-09-03 Gerd Moellmann <gerd@gnu.org>
10229
10230 * term.c (Ftty_display_color_p): New.
10231
102321998-09-02 Gerd Moellmann <gerd@gnu.org>
10233
10234 * xfaces.c (Ftty_defined_colors): New.
10235
10236 * xterm.c (x_produce_glyphs): Fix computation of
10237 contains_overlapping_glyphs_p for ASCII.
10238
10239 * dispnew.c (Fshow_cursor): Don't change cursor state while
10240 redisplaying.
10241 (direct_output_for_insert): If a glyph with lbearing or rbearing
10242 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10243
102441998-09-01 Gerd Moellmann <gerd@gnu.org>
10245
10246 * term.c (OUTPUT_IF): Make replacement text have statement form.
10247 (OUTPUT1_IF): Ditto.
10248 (TS_italic_mode, TS_end_italic_mode): Removed.
10249 (TS_bold_mode): Removed.
10250 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10251 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10252 (TS_enter_reverse_mode): New.
10253 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10254 (TN_magic_cookie_glitch_ul): New.
10255 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10256 (TS_exit_attribute_mode): New.
10257 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10258 (TS_set_foreground, TS_set_background): New.
10259 (reset_terminal_modes): Switch colors back to default.
10260 (write_glyphs): Turn face on before writing text, turn it off
10261 afterwards.
10262 (insert_glyphs): Ditto.
10263 (term_init): Initialize new terminal capability variables.
10264 (turn_on_face): Turn a face on.
10265 (turn_off_face): Turn a face off.
10266
10267 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10268 (GLYPH_CHAR): Ditto.
10269 (GLYPH_FACE): Ditto.
10270
10271 * xfaces.c (Vface_tty_color_alist): New.
10272 (face-register-tty-color): New.
10273 (face-clear-tty-colors): New.
10274
10275 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10276 (struct it): Remove member faces_p since we now always have faces.
10277
102781998-08-31 Gerd Moellmann <gerd@gnu.org>
10279
10280 * dispextern.h (struct face): Add tty appearance flags.
10281
10282 * xdisp.c (init_iterator): Always handle faces.
10283 (extend_face_to_end_of_line): Handle tty frames.
10284
10285 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10286 passed in.
10287
102881998-08-30 Gerd Moellmann <gerd@gnu.org>
10289
10290 * xfaces.c (realize_default_face): Use empty strings to indicate
10291 that the face should use the default foreground/background
427ec082 10292 color of the terminal. Fill font-related attributes with
26901792
DL
10293 appropriate values for tty frames.
10294
10295 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10296
10297 * xfaces.c (realize_default_face): If face `default' is not
10298 yet known, create it.
10299
10300 * frame.c (make_terminal_frame): Call init_frame_faces
10301 unconditionally.
10302
10303 * xfaces.c (init_frame_faces): Make it work for tty frames.
10304 (free_frame_faces): Ditto.
10305 (clear_face_cache): Ditto.
10306 (recompute_basic_faces): Ditto.
10307 (Fframe_face_alist): Ditto.
10308 (free_realized_face): Ditto.
10309 (prepare_face_for_display): Ditto.
10310 (clear_face_gcs): Ditto.
10311 (lookup_face): Ditto.
10312 (smaller_face): Ditto.
10313 (realize_default_face): Ditto.
10314 (realize_face): Ditto.
10315 (realize_face): Dispatch to functions depending on the frame type.
10316 (realize_x_face): X way of realizing faces.
10317 (realize_tty_face): TTY way of realizing faces.
10318
103191998-08-29 Gerd Moellmann <gerd@gnu.org>
10320
10321 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10322 compute it instead.
10323 (lookup_face): Remove local variable unibyte_registry.
10324
103251998-08-22 Gerd Moellmann <gerd@gnu.org>
10326
10327 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10328 1 pixel longer.
10329
427ec082 10330 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10331 of face in buffer.
10332
10333 * editfns.c (make_buffer_string_both): If prompt in buffer,
10334 prevent start > end.
10335
10336 * indent.c (Fvertical_motion): Set current_buffer to window's
10337 buffer if it isn't already.
10338
103391998-08-21 Gerd Moellmann <gerd@gnu.org>
10340
10341 * dispextern.h (GLYPH_DEBUG): Use default 0.
10342
10343 * xdisp.c (it_props): New member `smaller'.
10344 (init_iterator): Initialize it.
10345 (Qsmaller): New.
10346 (push_it): Save value of `smaller' value on the stack.
10347 (pop_it): Restore `smaller' from the stack.
10348 (handle_smaller_prop): New.
10349 (handle_face_prop): Use `smaller' text property to select a
10350 suitable face.
10351
10352 * dispextern.h (SMALLER_PROP_IDX): New.
10353 (struct it): Add member `smaller'.
10354
10355 * xfaces.c (smaller_face): New.
10356
10357 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10358
10359 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10360 total pixel width of window differently.
10361
10362 * xdisp.c (init_iterator): Compute width of mode line differently.
10363
10364 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10365 of bitmap areas.
10366
10367 * window.c (Fsplit_window): Include width of bitmap areas in
10368 window width.
10369 (window_internal_width): Subtract width of bitmap areas from
10370 total width.
10371
103721998-08-18 Gerd Moellmann <gerd@gnu.org>
10373
10374 * xdisp.c: Functions reordered for better readability.
10375
10376 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10377 lbearing.
10378 (update_window_tree): Parameter no_scrolling_p removed.
10379 (update_single_window): Ditto.
10380
10381 * xterm.c (x_get_char_font_and_encoding): Renamed to
10382 x_get_char_face_and_encoding.
10383
10384 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10385 if end of current row reached.
10386
10387 * xterm.c (x_get_glyph_face_and_encoding): New.
10388 (x_get_glyph_overhangs): Call it.
10389
10390 * xdisp.c (Qshow_trailing_whitespace): New.
10391 (Qtrailing_whitespace): New.
10392 (enum prop_handled): New.
10393 (struct props, it_props): New.
10394 (next_overlay_change): New. Works like Fnext_overlay_change
10395 but doesn't use xmalloc.
10396 (handle_stop): Restructured.
10397 (face_before_or_after_it_pos): Case iteration over a string: fix
10398 handling of face before current position.
10399
104001998-08-16 Gerd Moellmann <gerd@gnu.org>
10401
10402 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10403 reallocation matrix if fonts_changed_p.
10404 (update_text_area): Handle glyphs with lbearing.
10405
104061998-08-14 Gerd Moellmann <gerd@gnu.org>
10407
10408 * xdisp.c (struct props): New.
10409 (it_props): New.
10410 (compute_prop_info): New.
10411 (handle_stop): New.
10412
10413 * textprop.c (validate_interval_range): Make it externally
10414 visible.
10415
10416 * dispnew.c (direct_output_for_insert): Remove calls
10417 to compute_stop_pos.
10418
10419 * dispextern.h (struct it): Remove check_charpos,
10420 next_overlay_pos. Add what_changes.
10421
104221998-08-10 Gerd Moellmann <gerd@gnu.org>
10423
10424 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10425
10426 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10427 face_default_registry instead.
10428
10429 * syntax.c (scan_sexps_forward): Set up syntax table before
10430 jumping to initial state label.
10431
104321998-08-09 Gerd Moellmann <gerd@gnu.org>
10433
10434 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10435 >= ZV specially.
10436
104371998-08-08 Gerd Moellmann <gerd@gnu.org>
10438
10439 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10440 ends up in partially visible row, try to scroll. Case forced
10441 window start---handle windows not tall enough to show a single
10442 line.
10443
10444 * window.h (struct window): Member dy renamed vscroll.
10445
10446 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10447 fonts.
10448 (x_draw_stretch_glyph_string): Set clipping if using GC that
10449 hasn't set it yet.
10450
10451 * xdisp.c (redisplay_window): Case forced window start -
10452 don't let cursor end on partially visible row. Use desired
10453 matrix to find a suitable PT if it doesn't appear.
10454 (decode_mode_spec): Merged with 20.2.97.
10455 (try_window_reusing_current_matrix): Give up if old or
10456 new display is vscrolled.
10457 (redisplay_window): Reset vscrolling if forced window start,
10458 or if recentering.
10459
104601998-08-06 Gerd Moellmann <gerd@gnu.org>
10461
10462 * xfaces.c (realize_default_face): Use the fontset name instead of
10463 the alias for the family attribute of the default face because we
10464 can't easily determine a good alias from fontset-alias-alist.
10465 (face_fontset): Use Fquery_fontset to find the fontset.
10466 (font_list): Additional pattern parameter.
10467 (try_font_list): Ditto.
10468 (set_lface_from_font_name): Set face family from font foundry
10469 and family.
10470 (font_list): If family contains a hyphen, build pattern differently.
10471
104721998-08-05 Gerd Moellmann <gerd@gnu.org>
10473
10474 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10475 changed instead of setting the frame garbaged.
10476
10477 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10478 all attribute values. This is wrong if values are unspecified,
10479 i.e. nil.
10480
10481 * xdisp.c (try_window_id): Give up if window start changed.
10482
10483 * xfaces.c (make_realized_face): Store registry as Lisp object.
10484 (load_face_font_or_fontset): Compute registry of a face
10485 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10486 possible.
10487
10488 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10489 differently.
10490
10491 * alloc.c (mark_face_cache): Mark the registry member of faces.
10492
10493 * dispextern.h (struct face): Make registry a Lisp string.
10494
104951998-08-04 Gerd Moellmann <gerd@gnu.org>
10496
10497 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10498 multibyte_p. Handle unibyte text.
10499 (x_append_glyph): Set the multibyte_p flag of glyphs.
10500 (x_produce_image_glyph): Ditto.
10501 (x_append_stretch_glyph): Ditto.
10502 (x_produce_glyphs): Handle unibyte text like ASCII.
10503
10504 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10505 stack.
10506 (pop_it): Restore it.
10507 (face_before_or_after_it_pos): Handle the case that the string or
10508 buffer is unibyte.
10509 (get_overlay_strings): Set the multibyte flag of the iterator if
10510 the new overlay string is multibyte.
10511 (get_glyph_property): Likewise.
10512 (get_next_display_element): Don't check for charset changes in
10513 unibyte text.
10514 (append_space): Compute face differently for unibyte text.
10515 (extend_face_to_end_of_line): Don't return quickly if face has
10516 stipple.
10517
10518 * xfaces.c (load_face_font_or_fontset): Store registry and
10519 encoding of the font in the registry member of the face.
10520 (make_realized_face): Additional parameter `registry'.
10521 (free_realized_face): Free the registry of a realized face.
10522 (face_suitable_for_charset_p): Function form of the macro
10523 with the same name in uppercase.
10524 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10525 (choose_face_font): New parameter unibyte_registry.
10526 (choose_face_fontset_font): Ditto.
10527 (realize_default_face): Remember the registry and encoding of
10528 the specified frame font in Vx_unibyte_registry_and_encoding.
10529 (face_at_buffer_position): Handle unibyte.
10530 (face_at_string_position): Likewise.
427ec082 10531 (realize_face): New parameter unibyte_registry.
26901792
DL
10532 (compute_char_face): Handle the unibyte case.
10533
10534 * dispextern.h (struct glyph): Add bit multibyte_p.
10535 (struct face): New member registry holding the registry and
10536 encoding of the X font of the face.
10537 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10538 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10539 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10540 text.
10541 (struct iterator_stack_entry): Add multibyte_p.
10542
10543 * xdisp.c (string_pos): Use string_char_to_byte.
10544 (char_charset): Removed.
10545
105461998-08-03 Gerd Moellmann <gerd@gnu.org>
10547
10548 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10549 rectangle for a block cursor over an image without a mask.
10550 (x_stretch_block_cursor): Added. Non-zero means don't draw
10551 a block cursor over a stretch as wide as that stretch.
10552 (x_draw_stretch_glyph_string): Use it.
10553 (x_draw_hollow_cursor): Ditto.
10554
10555 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10556 (read_minibuf): Add front-sticky text property for prompt.
10557
10558 * xdisp.c (char_charset): Return charset of a character,
10559 depending on whether or not multi-byte characters are enabled.
10560
10561 * xfaces.c (Fset_face_charset_registry): Removed.
10562 (x_charset_registry): Determine registry from charset plist.
10563
105641998-08-02 Gerd Moellmann <gerd@gnu.org>
10565
10566 * xdisp.c (get_next_display_element): Don't check for charset
10567 changes if multi-byte characters are not enabled.
427ec082 10568
26901792 10569 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10570 redisplay interface.
26901792
DL
10571 * keyboard.c (detect_input_pending_run_timers): Likewise.
10572
10573 * dispextern.h (produce_*glyphs_hook): Removed.
10574 * term.c (produce_*glyphs): Ditto.
10575 (cursor_to): Remove pixel position parameters.
10576
10577 * dispnew.c: Remove hooks for window-based redisplay, introduce
10578 a redisplay interface structure.
10579
10580 * xterm.c (x_per_char_metric): Return default char metrics if per
10581 char metric exists but contains a zero width. Adobe Courier seems
10582 to contain such characters.
10583
10584 * xdisp.c (compute_line_metrics): Compute the width of rows
10585 without stopping at glyphs with zero width.
10586
105871998-08-01 Gerd Moellmann <gerd@gnu.org>
10588
10589 * xdisp.c (display_mode_line): If nothing was displayed at all,
10590 display a space.
10591 (hscroll_window_tree): Don't subtract 1 from target point if equal
10592 to ZV and window is not the selected window.
10593
10594 * dispnew.c (check_matrix_invariants): Remove check for window
10595 start at BEGV or after newline. This happens in rare cases
10596 intentionally.
10597
105981998-07-31 Gerd Moellmann <gerd@gnu.org>
10599
10600 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10601 (syms_of_xfaces): Add Vface_default_registry.
10602 (x_charset_registry): Use it.
10603
10604 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10605 (redisplay_window): Use it.
10606
10607 * dispnew.c (update_text_area): Handle lbearing of deleted text
10608 by backing up one character.
10609
106101998-07-30 Gerd Moellmann <gerd@gnu.org>
10611
427ec082 10612 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10613 decide to do nothing.
10614
10615 * xfaces.c (face_at_string_position): Additional parameter
10616 mode_line_p. If non-zero, merge with the mode line face
10617 instead of the default face.
10618 * dispextern.h (struct it): Add mode_line_p.
10619 * xdisp.c (init_iterator): Set it.
10620 (compute_face_in_string): Use it.
10621 (face_before_or_after_it_pos): Handle strings.
10622 (get_next_display_element): Don't look for relief end in C strings.
10623 (next_element_from_string): Deliver string position instead of
10624 buffer position.
10625
10626 * xterm.c (x_flush): Flush X output buffer.
10627 (XTflash): Use it.
10628
10629 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10630 Allow strings as face names.
10631
10632 * xfns.c (forall_images_in_image_cache): Check that frame is
10633 alive.
10634
10635 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10636 it's also called from x_destroy_window. Since this function is
10637 called from X, freeing stuff allocated with xmalloc is dangerous
10638 here, anyway.
10639
10640 * xfaces.c (free_realized_faces): Don't clear current matrices
10641 of a frame being destroyed.
10642
427ec082 10643 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10644 Fset_window_buffer.
10645
10646 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10647 with an additional argument specifying whether or not hooks may
10648 be called.
10649 (Fset_window_buffer): Call it.
10650
10651 * dispnew.c (clear_desired_matrices): Check that frame has
10652 a valid root window before clearing matrices in the window tree.
10653 (clear_current_matrices): Ditto.
10654 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10655 vchild are valid windows if not nil.
10656
10657 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10658 for :inverse-video.
10659 (Finternal_set_lisp_face_attribute): Ditto.
10660 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10661 (Finternal_get_lisp_face_attribute): Ditto.
10662 (Finternal_lisp_face_attribute_values): Ditto.
10663 (syms_of_xfaces): Define the symbol `:reverse-video'.
10664
10665 * xdisp.c (get_glyph_property): Renamed from
10666 fill_iterator_from_glyph_property.
10667 (next_element_from_buffer): Handle case that no `glyph' property
10668 was found correctly.
10669 (display_line): Extend face to end of line only if we have faces.
10670
106711998-07-29 Gerd Moellmann <gerd@gnu.org>
10672
10673 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10674 additional window argument.
10675
10676 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10677 set_iterator_to_previous_visible_line_start.
10678 (reseat_at_next_visible_line_start): Likewise.
10679 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10680 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10681 (compute_face_in_buffer): Renamed from
10682 compute_face_at_iterator_position.
10683 (compute_face_in_string): Renamed from
10684 compute_face_at_iterator_string_position.
10685 (get_space_width): Renamed from get_iterator_space_width.
10686 (next_overlay_string): Renamed from
10687 set_iterator_to_next_overlay_string.
10688 (get_overlay_strings): Renamed from
10689 get_overlay_strings_at_iterator_position.
10690 (restore_overlay_strings): Renamed from
10691 setup_overlay_strings_from_glyph_pos.
10692 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10693 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10694 (init_to_row_start): Renamed from init_iterator_to_row_start.
10695 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10696
10697 * xterm.c: Merge with 20.2.97.
10698 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10699
10700 * dispextern.h (struct glyph): Replace text_pos position with
10701 simple charpos.
10702
10703 * xdisp.c (this_line_start_pos): Use struct text_pos.
10704 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10705 (enum move_it_result): Renamed from move_iterator_result.
10706 (string_pos_nchars_ahead): Compute text_pos in a string from a
10707 known text_pos plus a character delta.
10708 (string_pos): Compute text_pos in string from charpos.
10709 (c_string_pos): Likewise for a C string.
10710 (number_of_chars): Return number of characters in a possibly
10711 multi-byte C string.
10712 (check_it): Renamed from check_iterator. Check that charpos and
10713 bytepos are in sync.
10714 (push_it): Renamed from save_iterator_settings.
10715 (pop_it): Renamed from restore_iterator_settings.
10716 (move_it_.*): Renamed from move_iterator_.*.
10717 (charset_at_position): Take charpos/bytepos into account.
10718 (back_to_previous_line_start): Set iterator to previous line start.
10719 (forward_to_next_line_start): Set iterator to next line start.
427ec082 10720 (back_to_previous_visible_line_start): Renamed from
26901792
DL
10721 move_iterator_previous_visible_line_start.
10722 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10723 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10724 Handle charpos/bytepos.
10725 (compute_face_at_iterator_position): Handle charpos/bytepos.
10726 (compute_face_at_iterator_string_position): Likewise.
10727 (get_iterator_space_width): Likewise.
10728 (load_overlay_strings): Likewise.
10729 (get_overlay_strings_at_iterator_position): Likewise.
10730 (reseat_iterator): Take a text_pos position argument.
10731 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10732 bytepos.
10733 (init_iterator): Take additional bytepos parameter.
10734 (reseat_iterator_to_string): Handle charpos/bytepos.
10735 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10736 (next_element_from_string): Handle charpos/bytepos.
10737 (next_element_from_c_string): Likewise.
10738 (fill_iterator_from_glyph_property): Likewise.
10739 (next_element_from_buffer): Likewise.
10740 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10741 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10742 (move_it_to): Likewise.
10743 (move_it_vertically_backward): Likewise.
10744 (move_it_vertically): Likewise.
10745 (move_it_by_lines): Likewise.
10746 (hscroll_window_tree): Likewise.
10747 (redisplay_internal): Likewise.
10748 (set_cursor_from_row): Likewise.
10749 (redisplay_window): Likewise.
10750 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10751 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10752 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10753 (try_window_id): Handle charpos/bytepos.
10754 (Ftrace_redisplay_toggle): Return Qnil.
10755 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10756 (insert_left_trunc_glyphs): Likewise.
10757
10758 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10759 do a real merge).
10760 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10761 (increment_glyph_row_buffer_positions): Ditto.
10762 (copy_glyph_row_contents): Ditto.
10763 (check_matrix_invariants): Add additional checks for charpos/
10764 bytepos consistency.
10765 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 10766 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
10767 `direction-reversed' in #if 0.
10768
10769 * xterm.h: Merge with 20.2.97.
427ec082 10770
26901792
DL
10771 * frame.h: Merge with 20.2.97.
10772
10773 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10774
10775 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10776 start.
10777 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10778 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10779 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10780 (struct it): Various members renamed from .*pos to .*charpos.
10781 (IT_CHARPOS): Access current buffer character position of an
10782 iterator.
10783 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10784 (IT_STRING_CHARPOS): Access current string character position of
10785 an iterator.
10786 (IT_STRING_BYTEPOS): Access current string byte position of
10787 an iterator.
10788 (globally): Add function prototypes from 20.2.97.
10789
10790 * everywhere: Use P_ instead of PROTO for function prototypes
10791 because everyone else seems to use P_.
10792
10793 * dispextern.h (struct text_pos): Structure describing a charpos/
10794 bytepos position in text.
10795 (BYTEPOS): Access the byte position part of a text_pos.
10796 (CHARPOS): Likewise for the character position.
10797 (SET_TEXT_POS): Set a text_pos from a character and byte position.
10798 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
10799 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
10800 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
10801 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
10802 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
10803 for buffer and string positions.
10804 (struct glyph): Use text_pos.
10805 (struct it): Renamed from display_iterator. Use text_pos.
10806
108071998-07-23 Gerd Moellmann <gerd@gnu.org>
10808
10809 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
10810 pixmap.
10811
108121998-07-21 Gerd Moellmann <gerd@gnu.org>
10813
10814 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
10815 * xterm.c (x_draw_row_bitmaps): Use it.
10816 * dispnew.c (row_equal_p): Ditto.
10817 (update_window_line): Ditto.
10818
10819 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
10820 flag of images.
10821
10822 * dispextern.h (struct image): Removed member loading_failed_p.
10823 It's probably better to have the chance to try to load an image
10824 again.
10825
108261998-07-20 Gerd Moellmann <gerd@gnu.org>
10827
10828 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
10829 at ZV if `indicate-zv-lines' is non-nil.
10830 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
10831
10832 * dispnew.c (row_equal_p): Compare displays_text_p and
10833 ends_at_zv_p flags of rows.
10834 (update_window_line): Ditto.
10835
10836 * buffer.h (struct buffer): New member indicate_zv_lines.
10837
10838 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
10839 (init_buffer_once): New variable `default-indicate-zv-lines'.
10840 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
10841
10842 * xdisp.c (redisplay_window): Don't try moving the cursor
10843 if current glyph row w->last_cursor.vpos isn't enabled.
10844
10845 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
10846
10847 * window.c (Fset_window_vscroll): Allow only negative scroll
10848 values. Others don't seem to make sense, and this way it's easy
10849 to restore a vscroll of zero.
10850
10851 * xterm.c (x_inverted_image_mask): Check that pixmap could be
10852 allocated.
10853 (x_draw_image_glyph_string_background): Don't clip if pixmap
10854 could not be created.
10855
10856 * xfns.c (xbm_load_image_from_file): Check that pixmap could
10857 be created.
10858 (xbm_load): Ditto.
10859 (gs_load): Ditto.
10860
10861 * xterm.c (x_get_glyph_overhangs): Take image and stretch
10862 glyphs into account.
10863
10864 * xfaces.c (realize_default_face): Don't set font family of
10865 the default face from the fontset alias name for `fontset-startup'.
10866
10867 * xfns.c (gs_load): Pass frame's pixel foreground and background
10868 color to the Lisp loader.
10869
108701998-07-19 Gerd Moellmann <gerd@gnu.org>
10871
10872 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
10873 libtiff34.
10874
10875 * configure.in (--with-tiff, HAVE_TIFF): Added.
10876
10877 * config.in (HAVE_TIFF): Added.
10878
10879 * Makefile.in (LIBTIFF): Added.
10880
10881 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
10882
10883 * Makefile.in (LIBJPEG): Added.
10884
10885 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
10886 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
10887 jpeglib.h.
10888
427ec082 10889 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
10890 where the library is installed in /usr/local/lib, e.g. FreeBSD,
10891 configure must be run with `--x-includes=/usr/X11R6/include:
10892 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
10893
108941998-07-18 Gerd Moellmann <gerd@gnu.org>
10895
10896 * config.in (HAVE_JPEG): Added.
10897
10898 * xfns.c (ct_init): Initialize color table used to map RGB colors
10899 from images to X pixel colors.
10900 (ct_free): Free color table.
10901 (ct_lookup): Look an RGB color up.
10902 (ct_allocated_colors): Get vector of allocated colors.
427ec082 10903 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
10904 image specification.
10905 (pbm_scan_number): Scan a decimal ASCII number from a file.
10906 (pbm_load): Load a PPM image.
10907
10908 * window.c (Fset_window_vscroll): Adjust glyph matrix if
10909 necessary. Take canonical character units as parameter.
10910 (Fwindow_vscroll): Return canonical character units.
10911
10912 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
10913 w->dy to display height for which glyph rows must be allocated.
10914
109151998-07-17 Gerd Moellmann <gerd@gnu.org>
10916
10917 * xfaces.c (face_at_string_position): Merge in region face
10918 so that it won't overwrite the font in the region.
10919 (face_at_buffer_position): Ditto.
10920 (realize_basic_faces): Don't realize region face.
10921
10922 * dispextern.h (enum face_id): REGION_FACE_ID removed.
10923
10924 * xterm.c (x_set_glyph_string_background_width): Don't let
10925 cursor face extend to end of line.
10926
10927 * xdisp.c (append_space): If adding space of default face,
10928 make sure glyph ist produced with right face.
10929
10930 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
10931 background color of a glyph string.
10932 (x_draw_glyph_string_background): Call it.
10933 (x_draw_glyph_string_bg_rect): Ditto.
10934 (x_draw_stretch_glyph_string): Ditto.
10935
109361998-07-15 Gerd Moellmann <gerd@gnu.org>
10937
10938 * xdisp.c (init_iterator): Initialize it->current_y to the
10939 window's vscroll w->dy.
10940
10941 * window.c (Fwindow_vscroll): Return number of pixels window
10942 is vscrolled smoothly.
10943 (Fset_window_vscroll): Set the number.
10944
10945 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
10946 to_pos in truncated part of a line.
10947
109481998-07-14 Gerd Moellmann <gerd@gnu.org>
10949
10950 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
10951 doesn't fit on the line, truncate it, despite truncate_lines nil.
10952 (display_line): Ditto.
10953
10954 * xfns.c: Experimental support for Ghostscript images.
10955
10956 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
10957 (XTread_socket): React on events from Ghostscript.
10958 (expose_frame): If width or height are zero, redraw entire frame.
10959 (XTread_socket): Call expose_frame after receiving event from
10960 Ghostscript.
10961
10962 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
10963 for Ghostscript support.
10964
10965 * xdisp.c (redisplay_internal): Return quickly if called
10966 recursively.
10967
10968 * alloc.c (NSTATICS): Increased to 1024.
10969
109701998-07-08 Gerd Moellmann <gerd@gnu.org>
10971
10972 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
10973 iterator's glyph row.
10974 (x_produce_stretch_glyph): Call it.
10975 (x_produce_glyphs): Handle `space-width' property; call
10976 x_append_stretch_glyph.
10977
10978 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
10979 property.
10980 (get_iterator_space_width): Determine value of `space-width'
10981 property at iterator's position.
10982 (reseat_iterator): Call it.
10983 (next_element_from_string): Ditto.
10984 (next_element_from_buffer): Ditto.
10985 (init_iterator): Initialize space_width of iterator.
10986 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
10987 moved, but cursor blinks.
10988 (redisplay_internal): Set w->last_cursor_off_p after update.
10989
10990 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
10991 (struct display_iterator): Add new member space_width.
10992
10993 * window.h (struct window): Add last_cursor_off_p.
10994
109951998-07-07 Gerd Moellmann <gerd@gnu.org>
10996
10997 * Saved.
10998
10999 * window.c (Fpos_visible_in_window_p): Case window not up to
11000 date---return nil if iterator hasn't reached position.
11001
110021998-07-06 Gerd Moellmann <gerd@gnu.org>
11003
11004 * xdisp.c (text_outside_line_unchanged_p): Fix case that
11005 overlays have changed.
11006 (redisplay_window): Case cursor movement. Don't try it if
11007 last_cursor.vpos is out of range.
11008
11009 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
11010 way, the display optimization for the line containing the cursor
11011 is used more frequently, esp. when we have a blinking cursor.
11012 (display_line): Don't set this_line_.* variables.
11013
11014 * xterm.c (x_redraw_cursor): Removed.
11015 (x_display_and_set_cursor): Set cursor type depending on
11016 cursor_off_p flag of window.
11017
11018 * dispnew.c (redraw_cursor_hook): Removed.
11019 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
11020 member of the selected window.
11021
11022 * xfaces.c (Fface_font): Added for compatibility with 20.2.
11023
11024 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
11025 Return glyph area under x/y.
11026 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
11027
11028 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
11029 after redisplaying.
11030
110311998-07-05 Gerd Moellmann <gerd@gnu.org>
11032
11033 * xdisp.c (text_outside_line_unchanged_p): Test if changes
11034 are all outside of a line of text.
11035 (redisplay_internal): Use it.
11036
110371998-06-30 Gerd Moellmann <gerd@gnu.org>
11038
11039 * xdisp.c (next_element_from_buffer): After skipping over
11040 invisible text, look for the `glyph' property.
11041 (set_iterator_stop_pos): Ignore check positions in front
11042 of an iterator's current position.
11043
11044 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11045 anymore or which are marked as not having valid contents.
11046
11047 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11048 realized faces if new attribute value is equal to old value.
11049
110501998-06-29 Gerd Moellmann <gerd@gnu.org>
11051
11052 * xfaces.c (Finternal_make_lisp_face): Increment
11053 lface_id_to_name_size when lface_id_to_name is reallocated.
11054
110551998-06-27 Gerd Moellmann <gerd@gnu.org>
11056
11057 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11058 as minimum of endpos and overlay_pos.
11059 (load_overlay_strings): Set next_overlay_pos of iterator to
11060 -1 if we don't have to check for more overlay strings.
11061
110621998-05-09 Gerd Moellmann <gerd@gnu.org>
11063
11064 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11065 do anything if iterator is at ZV because scan_buffer doesn't
11066 work otherwise.
11067
11068 * xterm.c (x_encode_char): Inline it.
11069 (x_get_char_font_and_encoding): Simplified.
11070 (x_per_char_metric): Inline it.
11071
11072 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11073
11074 * xdisp.c (get_next_display_element): Check for end of relief
11075 face moved here from next_element_from_buffer.
11076
11077 * xterm.c (x_produce_image_glyph): Add relief thickness.
11078 (x_produce_stretch_glyph): Ditto.
11079
110801998-05-08 Gerd Moellmann <gerd@gnu.org>
11081
11082 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11083 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11084
11085 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11086 from a glyph property.
11087 (x_produce_glyphs): Use it.
11088
11089 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11090
427ec082 11091 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11092 in text area.
11093 (x_produce_glyphs): Ditto.
11094
427ec082 11095 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11096 marginal areas.
11097
427ec082 11098 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11099 background of an image glyph string.
427ec082 11100 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11101 the background of a glyph string.
11102 (x_draw_image_glyph_string_foreground): Draw the foreground of
11103 an image glyph string.
11104 (x_inverted_image_mask): Return the inverted mask of an image.
11105
11106 * xfns.c (x_draw_image): Removed.
11107
11108 * dispextern.h (struct image_type): Remove drawing function.
11109
11110 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11111
11112 * xdisp.c (get_next_display_element): In marginal areas, translate
11113 newlines, tabs, etc. like normal control characters.
11114
11115 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11116 and color.
11117 (free_realized_faces): Set frame garbaged.
11118
11119 * xfaces.c (syms_of_xfaces): Add defsubr for
11120 internal-lisp-face-attribute-values.
11121
111221998-05-07 Gerd Moellmann <gerd@gnu.org>
11123
11124 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11125 full.
11126 (x_produce_image_glyph): Set IT->nglyphs to 1.
11127 (x_draw_image_glyph_string): Use inverted mask to draw background.
11128
11129 * dispextern.h (struct image_type): Additional clipping rect
11130 parameters for drawing functions.
11131
427ec082 11132 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11133 a glyph string.
11134 (x_draw_image_glyph_string): Use it and pass the rect to the
11135 image drawing function.
11136
11137 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11138 first character with `glyph' property as image position. Set
11139 iterator back to that position as long as the image hasn't been
11140 consumed with set_iterator_to_next.
11141 (set_cursor_from_row): Accept when glyph with given position is
11142 not found in the row. Set cursor x to end of line in that case,
11143 so that we can hscroll.
11144 (redisplay_internal): Correct computation of delta by which
11145 positions have changed in redisplay optimization for cursor
11146 row of selected window.
11147
11148 * xdisp.c (display_line): Remove start_pos.
427ec082 11149 (display_line): Fix bug preventing display optimization for
26901792
DL
11150 cursor line of selected window.
11151 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11152 instead.
11153
11154 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11155 (update_text_area): Take glyph pixel width into account
11156 when trying to find a resync point.
11157 (row_equal_p): Compare glyphs in all areas.
11158
111591998-05-06 Gerd Moellmann <gerd@gnu.org>
11160
11161 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11162
11163 * dispextern.h (struct glyph_row): Use unsigned hash value.
11164
11165 * xdisp.c (display_line): Simplified and made faster by setting
11166 the cursor with set_cursor_from_row.
11167 (set_cursor_from_row): Handle rows of desired matrix.
11168
111691998-05-05 Gerd Moellmann <gerd@gnu.org>
11170
11171 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11172 with type != CHAR_GLYPH.
11173 (fill_iterator_from_glyph_property): Return void. Set
11174 method to next_element_from_image.
11175 (next_element_from_image): Dummy function for delivering a
11176 single image id.
11177 (set_iterator_to_next): Add method next_element_from_image.
11178 (redisplay_window): When recentering, and cursor vpos is -1
11179 after display, assume middle of window is in first line displayed
11180 in window, and display again.
427ec082 11181 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11182 the position of the first character having the glyph property.
11183
11184 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11185 * xfns.c (x_draw_image): Use it.
11186 * xterm.c (x_produce_image_glyph): Use it.
11187
11188 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11189
11190 * Makefile.in: Extraneous #define of LIBXPM removed.
11191
11192 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11193 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11194 stretch glyph.
11195 (x_compute_glyph_string_overhangs): Compute overhangs only
11196 for text glyph strings.
11197 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11198 (x_draw_glyph_string): Call it.
11199
11200 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11201 (struct glyph): Add sub-structure for stretchable glyphs.
11202 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11203
11204 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11205 #ifdef HAVE_FACES.
11206
11207 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11208
11209 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11210 setup_iterator_from_glyph_property. Don't do it for terminal
11211 frames.
11212
11213 * xterm.c (x_produce_image_glyph): Produce glyph for image
11214 that can't be loaded.
11215
11216 * xfns.c (lookup_image): If image can't be loaded, set its
11217 width and height so that we can draw a rectangle.
11218 (x_draw_image): Draw a rectangle for images that don't have
11219 a pixmap.
11220 (make_image): Set hash value.
11221 (image_spec_equal_p): Use image_spec_value.
11222
11223 * xterm.c (expose_frame): Don't try to redraw if basic faces
11224 haven't benn realized yet.
427ec082 11225 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11226 is not as tall as row.
11227
112281998-05-04 Gerd Moellmann <gerd@gnu.org>
11229
11230 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11231 (LIBX)[HAVE_X11]: Add LIBXPM.
11232
11233 * xfns.c (xpm_image_p): Implementation of image type functions
11234 for XPM.
11235 (xpm_load): Ditto.
11236
11237 * dispextern.h (struct image): Add mask pixmap for XPM.
11238
11239 * xfns.c (x_draw_image): Handle images with masks.
11240
11241 * configure.in: --with-xpm added. Code detecting -lXpm added.
11242
11243 * config.in: Add HAVE_XPM.
11244
11245 * xfns.c (xbm_draw): Removed.
11246 (x_draw_image): Default implementation for drawing images.
11247 (xbm_keyword_index): Remove XBM_DEPTH.
11248 (xbm_format): Remove `:depth'.
11249 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11250 (xbm_load_image_from_file): Added for the same reason.
26901792 11251
427ec082 11252 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11253 glyph string.
11254 (x_draw_image_glyph_string): Pass ybase to image draw function.
11255
11256 * xfns.c (make_image): Set default baseline.
11257
11258 * xterm.c (x_produce_image_glyph): Compute ascent of image
11259 from its height and baseline percentage.
11260
11261 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11262 (xbm_format): Add description for `:baseline'.
11263 (xbm_image_spec_from_file): Add keywords from original spec to
11264 result.
11265 (xbm_load): Set baseline of image.
11266 (xbm_image_p): Check range for baseline.
11267
11268 * dispextern.h (struct image): Add member baseline.
11269
11270 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11271
11272 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11273
11274 * xdisp.c (get_next_display_element): Do character translations
11275 only if delivering characters.
11276
112771998-05-03 Gerd Moellmann <gerd@gnu.org>
11278
427ec082 11279 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11280 DISP_CHARACTER.
11281
11282 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11283 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11284
112851998-05-02 Gerd Moellmann <gerd@gnu.org>
11286
11287 * xfns.c (prepare_image_for_display): Set image timestamp.
11288 (clear_image_cache): Clear images if image's timestamp +
11289 Vimage_eviction_seconds is > now.
11290 (syms_of_xfns): New variables image-eviction-seconds, and
11291 image-types.
11292 (add_image_format): Add to image-types.
11293 (xbm_load): Support new image spec format.
11294 (x_alloc_image_color): Allocate a color for an image.
11295
11296 * dispextern.h (struct image): Add timestamp.
11297
11298 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11299 vectors of bool-vectors.
11300 (xbm_lisp_object_from_file): Build new format image spec.
11301
113021998-05-01 Gerd Moellmann <gerd@gnu.org>
11303
11304 * xfaces.c (init_frame_faces): Initialize image cache.
11305 (free_frame_faces): Free it.
11306
11307 * xterm.c (x_delete_display): Don't free image cache.
11308
11309 * emacs.c (main): Call init_xfns.
11310
113111998-04-30 Gerd Moellmann <gerd@gnu.org>
11312
11313 * alloc.c (mark_object): Mark objects in image cache.
11314
427ec082 11315 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11316 widget_store_internal_border_width.
11317
11318 * widget.c (widget_store_internal_border): Return void.
11319
11320 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11321 void.
11322 (init_x_parm_symbols): Return void.
11323 (x_report_frame_params): Ditto.
11324 (x_set_border_pixel): Ditto.
11325 (syms_of_xfns): Ditto.
11326 (x_destroy_all_bitmaps): Use xfree instead of free.
11327
11328 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11329
11330 * xterm.c (x_term_init): Initialize image_cache of display info.
11331 (x_delete_display): Free image cache.
11332
11333 * xterm.h (struct x_display_info): Add image_cache.
11334
11335 * xfns.c (make_image_cache): Allocate a new image cache.
11336 (free_image_cache): Free an image cache.
11337 (make_image): Allocate an image.
11338 (free_image): Free an image.
11339
11340 * dispextern.h (struct image): Structure describing an image.
11341 (struct image_cache): Structure describing an image cache.
11342
113431998-04-29 Gerd Moellmann <gerd@gnu.org>
11344
11345 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11346 non-zero if iterator is filled with something to return.
11347 (next_element_from_buffer): Immediately return if
11348 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11349 (next_element_from_string): Likewise.
11350
11351 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11352
11353 * dispextern.h (struct glyph): Add pixmap_id.
11354 (display_element_type): Add DISP_PIXMAP.
11355
11356 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11357 malloc/free.
11358
11359 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11360 (clear_face_cache): Call it.
11361
11362 * xterm.c (x_query_font): Don't look at empty font table slots.
11363 (x_compute_min_glyph_bounds): Likewise.
11364 (x_term_init): Initialize font_table to null.
11365 (x_load_font): Change allocation of font_info structures so
11366 that it is possible to free fonts.
11367
427ec082 11368 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11369 Only free fonts from filled font table entries.
11370
11371 * xfaces.c (best_matching_font): Support use of scalable fonts.
11372 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11373
11374 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11375 and resy.
11376 * xterm.c (x_term_init): Compute resx and resy.
11377
11378 * xfaces.c (split_font_name): Don't reject scalable fonts.
11379
427ec082 11380 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11381 in #if 0.
11382
11383 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11384 point size cannot be determined.
11385
11386 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11387 width over all fonts on a frame.
11388 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11389 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11390 macros.
11391
11392 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11393 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11394 (x_load_font): Use x_compute_min_char_bounds.
11395
11396 * xterm.h (struct x_display_info): New members smallest_char_width
11397 and smallest_font_height.
11398
113991998-04-28 Gerd Moellmann <gerd@gnu.org>
11400
11401 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11402 the same name if GC of face is zero.
11403
11404 * dispextern.h (struct face): Member non_ascii_gc removed.
11405
11406 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11407 for characters < 0177 in default face. Prepare face for
26901792
DL
11408 display before returning it.
11409 (x_produce_glyphs): Use it->charset.
11410 (x_get_char_font_and_encoding): Simplified.
11411 (x_encode_char): Remove parameter `font'.
11412
11413 * xfaces.c (choose_face_font): If registry from charset symbol
11414 doesn't contain a `-', make it a pattern by appending "*-*".
11415
11416 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11417 glyph_check_pos computation to character boundary.
11418
114191998-04-27 Gerd Moellmann <gerd@gnu.org>
11420
11421 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11422
11423 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11424 ASCII face for a given Lisp face id.
11425
11426 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11427 account.
427ec082 11428 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11429 new position is < original position.
11430 (check_iterator_glyph_property): Handle glyph property in strings.
11431 (next_element_from_string): Call above function.
11432 (next_element_from_display_vector): Handle faces in glyphs.
11433 (get_next_display_element): Set face_id of glyphs for
11434 control chars to zero.
11435
11436 * Makefile.in (term.o): Add dependency on dispextern.h.
11437
11438 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11439 (display_line): Handle marginal areas.
11440 (move_iterator_in_display_line_to): Likewise.
11441
11442 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11443
11444 * xfaces.c (face_at_buffer_position): Don't merge with nil
11445 text property.
11446 (face_at_string_position): Ditto.
11447
11448 * dispextern.h (struct display_iterator): Use a stack of saved
11449 values instead of saving check positions etc. individually.
11450
11451 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11452 maybe pop the iterator's stack.
11453 (save_iterator_settings): Push a value on iterator's stack.
11454 (get_overlay_strings_at_iterator_position): Use it.
11455 (restore_iterator_settings): Pop the stack.
11456 (set_iterator_to_next_overlay_string): Use it.
11457
11458 * xfaces.c (try_font_list): Use alternative font families.
11459
114601998-04-26 Gerd Moellmann <gerd@gnu.org>
11461
11462 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11463 font selection matches fonts.
11464 (Fface_font_sort_order): Return the font sort order.
11465 (best_matching_font): Find best matching font based on sort order.
11466 (cmp_font_names): Sort by given sort order.
11467
11468 * dispextern.h (struct display_iterator): New member faces_p.
11469 * xdisp.c (init_iterator): Initialize it->faces_p.
11470 (compute_face_at_iterator_string_position): Use it.
11471 (compute_face_at_iterator_position): Use it.
11472 (init_iterator): Use it.
11473 (display_mode_line): Ditto.
11474
11475 * xdisp.c (get_next_display_element): Put code choosing a face
11476 when the charset changes in #ifdef HAVE_FACES.
11477
427ec082 11478 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11479 lookup_face_for_charset.
11480
11481 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11482 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11483
114841998-04-25 Gerd Moellmann <gerd@gnu.org>
11485
11486 * xfaces.c (best_matching_font): Return the name of the best
11487 matching font in an array of font_name structures.
11488 (choose_face_font): Use it.
11489 (choose_face_fontset_font): Use it.
11490 (find_best_weight_font): If final font found has same weight as
11491 the font we started with, return the original font because it is a
11492 better match for the resolution of the display.
11493 (find_best_slant_font): Likewise.
11494 (merge_face_vector_with_property): Check more invalid attribute
11495 values.
11496 (lface_suitable_for_charset_p): Replaced by a macro with the same
11497 name in upper-case.
11498
114991998-04-24 Gerd Moellmann <gerd@gnu.org>
11500
11501 * dispextern.h (struct face): Member
11502 fontset_chosen_for_realization_p removed.
11503
11504 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11505 end of the collision list, so that we find more specific faces
11506 first.
11507 (lookup_face_for_charset): Look up a new face if face->fontset >=
11508 0, and charset != CHARSET_COMPOSITION.
11509
11510 * xfaces.c (split_font_name): Return zero if point size of font
11511 couldn't be computed.
11512 (realize_default_face): Use ASCII font of a fontset to determine
11513 font-related attributes of the default face.
11514 (face_fontset): Return fontset id for face family.
11515 (font_list): Additional parameter font_pattern. If non-nil,
11516 return fonts matching that pattern.
11517
115181998-04-23 Gerd Moellmann <gerd@gnu.org>
11519
11520 * xfaces.c (choose_face_fontset): If new fontset cannot be
11521 constructed, or fontset name cannot be split, return the id of the
11522 standard fontset.
11523
11524 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11525 When Emacs starts, it may be called for the initial frame which
11526 isn't an X frame.
11527
11528 * dispextern.h (struct face): New members foreground_defaulted_p,
11529 background_defaulted_p.
11530 (struct face): Members `mask' and `cache' removed.
11531
11532 * xfaces.c (load_color): Set them.
11533 (free_face_colors): Check them.
427ec082 11534 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11535 font unknown.
11536
11537 * xfaces.c (free_font): Removed.
11538 (load_face_font_or_fontset): Renamed from load_font.
11539 (load_face_font_or_fontset): Use message2 instead of signalling.
11540 (load_color): Likewise.
11541 (load_pixmap): Likewise.
11542
11543 * xterm.h (struct x_display_info): Add screen_dpi.
11544 * xterm.c (x_term_init): Initialize it.
11545 * xfaces.c (xlfd_point_size): Use it.
11546 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11547 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11548 similar to that of the frame appear first in the result.
11549
11550 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11551 is set for the face to cache, add it to the end of the collision
11552 list.
11553 (try_font_list): If fonts for given family and registry cannot
11554 be found, first try to keep the registry, and choose a different
11555 family.
11556 (choose_face_font): Allow nfonts == 0.
11557 (try_font_list): Give up if no font matches given registry.
11558
115591998-04-22 Gerd Moellmann <gerd@gnu.org>
11560
11561 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11562 font info id of the face.
11563
11564 * xfaces.c (load_font): Set font_info_id.
11565 (realize_face): Ditto.
11566
11567 * dispextern.h (struct face): Change member font_info to
11568 font_info_id.
11569
11570 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11571 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11572
11573 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11574 isn't ASCII, get the ASCII face before adding a space.
11575 (append_space): Likewise.
11576 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11577 to -1 so that it will compute the right face for the truncation
11578 glyphs.
11579
11580 * xfaces.c (realize_face): Set
11581 face->fontset_chosen_for_realization_p.
11582 (lookup_face_for_charset): If fontset wasn't specified originally
11583 and new charset != CHARSET_COMPOSITION, get a new face for that
11584 charset.
11585
11586 * dispextern.h (struct face): New member
11587 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11588 realize_face has chosen a fontset to display composite characters
11589 for a Lisp face not specifying a fontset.
11590
11591 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11592 face and line already filled here. Don't do anything if current
11593 face hasn't a relief or has a background equal to the frame
11594 background.
11595
11596 * xfaces.c (split_font_name): Additional parameter numeric_p.
11597 Don't compute numeric values if it is non-zero.
11598 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11599 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11600 font whose name cannot be split into fields.
11601
116021998-04-21 Gerd Moellmann <gerd@gnu.org>
11603
427ec082 11604 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11605 possibly using less restrictive patterns.
11606 (choose_face_font): Use it.
11607
11608 * xterm.c (x_get_char_font_and_encoding): For charset !=
11609 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11610
11611 * dispextern.h (struct face): New member font_info.
11612
11613 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11614 specifying a fontset as well as those not having a fontset.
11615 (free_font): Make it empty.
11616 (realize_face): Use changed load_font.
11617
11618 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11619 fit for charset, get the right one.
11620
11621 * xfaces.c (load_font): Take frame and name parameter, return
11622 font.
11623 (free_font): Likewise.
11624 (split_font_name): Compute numeric values for height, swidth etc.
11625 (cmp_font_names): Use them.
11626 (find_best_width_font): Ditto.
11627 (find_best_height_font): Ditto.
11628 (find_best_weight_font): Ditto.
11629 (find_best_slant_font): Ditto.
11630 (lface_hash): Add weight, slant, swidth and relief to hash value.
11631 (lface_equal_p): Make it faster.
11632 (lface_from_symbol): Use assq_no_quit.
11633 (Fnote_default_face_changed): Removed.
11634 (cmp_font_names): Use strcmp instead of xstricmp.
11635 (face_charset_registries): Removed.
11636
116371998-04-20 Gerd Moellmann <gerd@gnu.org>
11638
11639 * frame.h (CHECK_FRAME): Give this macro a statement form.
11640 (CHECK_LIVE_FRAME): Ditto.
11641
11642 * xfaces.c (find_best_width_font): Find the best matching font
11643 for a given width.
11644 (find_best_height_font): Likewise for height.
11645 (find_best_weight_font): Likewise for weight.
11646 (find_best_slant_font): Likewise for slant.
11647 (choose_face_font): Use them.
11648 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11649 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11650 global face attributes.
11651
11652 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11653 Lisp face attributes.
11654
116551998-04-19 Gerd Moellmann <gerd@gnu.org>
11656
11657 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11658 and :italic for compatibility.
11659 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11660 :bold and :italic. Handle boolean resource values for
26901792
DL
11661 :underline and :italic.
11662
11663 * xfns.c (display_x_get_resource): Make it externally visible.
11664
11665 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11666 If that frame is non-null, return the frame-local face.
11667 (Finternal_make_lisp_face): Additional frame argument.
11668 (lface_attributes): Get face attributes from global and frame-local
11669 definitions.
11670 (Finternal_lisp_face_equal_p): Additional frame argument.
11671 (merge_lisp_face_vector_with_property): Ditto.
11672 (Frealize_basic_faces): Removed.
11673 (Finternal_get_lisp_face_attribute): Additional frame argument.
11674 (Finternal_lisp_face_p): Ditto.
11675 (load_color) [MSDOS]: Removed because it isn't clear how
11676 to do this for MS-DOS.
11677
11678 * xfaces.c (lface_from_symbol): Get global face definition
11679 from face-global-alist.
11680
11681 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11682 as values for :underline and :inverse-video.
11683 (Finternal_set_lisp_face_attribute): Allow nil values.
11684
116851998-04-17 Gerd Moellmann <gerd@gnu.org>
11686
11687 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11688
11689 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11690 (Finternal_make_lisp_face): Add new face to Vall_faces.
11691
11692 * xdisp.c (echo_area_display): Remove code recomputing faces.
11693 (redisplay_internal): Ditto.
11694 (init_iterator): Do it here.
11695
11696 * xfaces.c (choose_face_font): Check that swidth doesn't change
11697 for subusequent attributes.
11698 (xlfd_point_size): Return int.
11699
11700 * xdisp.c (redisplay_internal, echo_area-display): If realized
11701 faces have been cleared, call recompute_basic_faces.
11702
11703 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11704 face_attributes_changed_p.
427ec082 11705 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
11706 all frames.
11707 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11708
11709 * xdisp.c (redisplay_internal): If face attributes have been
11710 changed since the last redisplay, recompute basic faces.
11711 (echo_area_display): Ditto.
11712
11713 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11714
11715 * xfaces.c (min_char_bounds): If face cache not yet present,
11716 don't try to get font dimensions from faces.
11717
11718 * xterm.c (x_frame_mode_line_height): If face cache not present
11719 set, return default height.
11720
11721 * alloc.c (mark_face_cache): Check for null faces. Correct
11722 index bug.
11723
11724 * dispextern.h (struct face): Renamed from struct rface. Member
11725 underline renamed underline_p. Make it a bit-field.
11726
11727 * xfaces.c (init_frame_faces): Allocate face cache.
11728 (free_frame_faces): Free face cache.
11729 (recompute_basic_faces): Realize basic faces only if face cache is
11730 allocated, i.e. after init_frame_faces has been called.
11731
11732 * frame.c (make_frame): Initialze face cache with null.
11733
11734 * xfaces.c (same_size_fonts): Removed.
11735
427ec082 11736 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
11737 s->gc != 0.
11738 (x_set_mouse_face_gc): Ditto.
11739 (x_set_mode_line_face_gc): Ditto.
11740
427ec082
SS
11741 * xfaces.c (realize_default_face): Return int. Value is
11742 zero if frame params don't contain enough information to
26901792
DL
11743 realize the default face.
11744 (realize_basic_faces): Ditto.
11745 (init_frame_faces): Realize basic faces.
11746
11747 * xfns.c (x_set_font): First store real font name in frame
11748 parameters, then call recompute_basic_faces.
11749
11750 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11751
117521998-04-16 Gerd Moellmann <gerd@gnu.org>
11753
11754 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11755
11756 * xfns.c (Fx_face_fixed_p): Removed.
11757 (Fx_list_fonts): Moved to xfaces.c.
11758
11759 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11760 face_at_buffer_position. Parameter charset removed; always
11761 compute face for CHARSET_ASCII.
11762 (face_at_string_position): Renamed from
11763 compute_face_at_string_pos. Parameter charset removed; always
11764 compute for CHARSET_ASCII.
427ec082 11765 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
11766 face_cache.
11767 (lookup_face): Ditto.
11768 (compute_char_face): Renamed from compute_glyph_face.
11769
11770 * xdisp.c (init_iterator): Initialize charset member.
11771 (reseat_iterator_to_string): Ditto.
11772 (get_charset_at_buffer_position): Determine charset at
11773 buffer position in current_buffer.
11774 (reseat_iterator): Call above function.
11775 (compute_face_at_iterator_position): Call
11776 compute_face_at_buffer_pos.
11777 (compute_face_at_iterator_string_position): Call
11778 compute_face_at_string_pos.
11779 (get_face_from_id): Removed.
11780 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11781 Call get_charset_at_buffer_position.
11782 (reseat_iterator): Determine face if charset at pos differs
11783 from iterator's charset.
11784 (reseat_iterator_to_glyph_pos): Removed.
11785
11786 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11787 Determine charset from buffer position.
11788 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11789 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11790
11791 * dispextern.h (struct display_iterator): Add member charset.
11792
117931998-04-15 Gerd Moellmann <gerd@gnu.org>
11794
11795 * xfaces.c (compute_char_face): Removed.
11796
11797 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
11798 with new parameter list.
11799
11800 * xfaces.c (region_face): Removed.
11801 (allocate_face): Removed.
11802 (copy_face): Ditto.
11803 (face_eql): Removed.
11804 (intern_face): Removed.
11805 (clear_face_cache): Removed.
11806 (load_font): Ditto.
11807 (unload_font): Ditto.
11808 (load_color): Ditto.
11809 (unload_color): Ditto.
11810 (new_computed_face): Ditto.
11811 (intern_computed_face): Ditto.
11812 (ensure_face_ready): Ditto.
11813 (merge_faces): Ditto.
11814 (compute_base_face): Ditto.
11815 (merge_face_list): Ditto.
11816 (Fmake_face_internal): Removed.
11817 (Fset_face_attribute_internal): Ditto.
11818 (face_name_id_number): Removed.
11819 (Fframe_face_alist): Ditto.
11820 (Fset_frame_face_alist): Ditto.
11821 (Finternal_next_face_id): Ditto.
11822
11823 * xterm.h (struct x_output): Remove computed_faces, and
11824 param_faces. Remove macros accessing them.
11825
11826 * xfaces.c: Entirely new face implementation added.
11827
118281998-04-11 Gerd Moellmann <gerd@gnu.org>
11829
11830 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
11831 `charpos'.
11832
118331998-04-10 Gerd Moellmann <gerd@gnu.org>
11834
11835 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
11836 scroll bar window to reduce flickering. Clear entire height.
11837
11838 * xdisp.c (move_iterator_vertically_backward): Set iterator's
11839 current_x and hpos to zero after moving to previous line
11840 start.
11841
118421998-04-03 Gerd Moellmann <gerd@gnu.org>
11843
11844 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
11845
11846 * xfaces.c (xlfd_point_size): Compute relative point size of
11847 fonts from font and frame resolution.
11848 (sort_fonts): New function to sort fonts, temporarily setting
11849 font_frame to the frame in effect.
11850 (xlfd_point_size): Take additional frame parameter to be able
11851 to get at the display's resolution.
11852
11853 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
11854 BLACK_PIX_DEFAULT.
11855 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
11856 screen of display.
11857
118581998-03-31 Gerd Moellmann <gerd@gnu.org>
11859
11860 * xfaces.c (choose_face_fontset): Instantiate fontsets.
11861
11862 * fontset.h: Add external declarations for Vfontset_alias_alist
11863 and Vglobal_fontset_alist.
11864
11865 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
11866 (realize_default_face): If frame parameters contain an artificial
11867 font name naming a fontset, set the family of the default face to
11868 the fontset name given by the registry.
11869
11870 * Makefile.in (alloc.o): Add dependency to dispextern.h.
11871
118721998-03-22 Gerd Moellmann <gerd@gnu.org>
11873
11874 * alloc.c (mark_object): Add function prototype. Add cast to
11875 Lisp_Object pointer in call to mark_object for symbol names
11876 because this otherwise gives a warning from gcc 2.8.1.
11877 (mark_face_cache): Mark Lisp objects in realized faces.
11878
118791998-03-19 Gerd Moellmann <gerd@gnu.org>
11880
11881 * frame.h (struct frame): Add member face_cache.
11882
11883 * alloc.c (mark_object): Mark face cache.
11884 (mark_face_cache): Mark Lisp faces in face cache of frame.
11885
11886 * frame.c (make_frame): Initialize face_cache.
11887 (Fdelete_frame): Free it.
11888
118891998-03-18 Gerd Moellmann <gerd@gnu.org>
11890
11891 * xfaces.c: Very first skeleton of functions for face realization,
11892 face merging, face cache etc.
11893
11894 * dispextern.h (struct rface): Realized faces. Will replace
11895 struct face when tested.
11896 (struct face_cache): Realized face caches.
11897
11898 * xdisp.c (init_iterator): Initialize area member of display
11899 iterator.
11900
119011998-03-17 Gerd Moellmann <gerd@gnu.org>
11902
11903 * xterm.c (x_append_glyph): Use it->area to store glyphs.
11904
11905 * dispextern.h (struct display_iterator): New member area.
11906
11907 * xterm.c (note_overwritten_text_cursor): Note when the text
11908 cursor of a window is overwritten.
11909
11910 * xdisp.c (set_cursor_from_row): If PT is not found in the
11911 row, display the cursor at the start of the row.
11912
11913 * dispnew.c (direct_output_forward_char): Call
11914 set_cursor_from_row.
11915
11916 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
11917 position is not in an overlay string, set iterator's position and
11918 method explicitly so.
427ec082 11919 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
11920 Make it externally visible.
11921 (redisplay_window): Call set_cursor_from_row so that there is only
11922 one place where the cursor position is calculated from a current
11923 row.
11924
11925 * dispextern.h (struct display_iterator): New member
11926 overlay_strings_at_end_processed_p.
11927
11928 * xdisp.c (check_iterator): Perform sanity checks on
11929 display_iterators.
11930 (next_element_from_buffer): Check for overlay strings at ZV.
11931
119321998-03-16 Gerd Moellmann <gerd@gnu.org>
11933
11934 * buffer.c (init_buffer_once): Add left_margin_width and
11935 right_margin_width to buffer_local_flags.
11936
11937 * dispnew.c (margin_glyphs_to_reserve): Function computing
11938 number of glyphs to reserve for a marginal area.
11939 (adjust_glyph_matrix): Call it.
11940 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
11941 is not alive.
11942
11943 * window.c (Fset_window_margins): Allow floats.
11944
11945 * buffer.c (syms_of_buffer): Add buffer-local variables
11946 left-margin-width and right-margin-width. Add defaults
11947 default-left-margin-width and default-right-margin-width.
11948
11949 * buffer.h (struct buffer): New members left_margin_width
11950 and right_margin_width.
11951
11952 * window.c (Fset_window_margins): Make window the last and
11953 optional argument.
11954
11955 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
11956 flag no_marginal_areas_p differently.
11957 (x_clear_end_of_line): Ditto.
11958 (x_draw_glyph_string_relief): Compute width of relief differently
11959 for rows with flag no_marginal_areas_p.
11960
11961 * dispnew.c (update_window_line): Update marginal areas only
11962 for rows that don't have no_marginal_areas_p set.
11963
11964 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
11965 (display_menu_bar): Ditto.
11966
11967 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
11968
11969 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
11970 marginal areas in window-based redisplay.
11971
11972 * dispextern.h (struct glyph_matrix): New members
11973 left_margin_glyphs and right_margin_glyphs.
11974
119751998-03-15 Gerd Moellmann <gerd@gnu.org>
11976
11977 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
11978
11979 * charset.c (non_ascii_char_to_string): Use char type parameters
11980 because the function is used that way from outside. Use unsigned
11981 char internally.
11982
11983 * window.c (change_window_height): Return void.
11984 (make_dummy_parent): Return void.
11985 (init_window_once): Return void.
11986 (syms_of_window): Ditto.
11987 (keys_of_window): Ditto.
11988 (delete_window): Correct return with and without value.
11989
11990 * buffer.c (record_buffer): Return void.
11991
11992 * marker.c (unchain_marker): Return void.
11993
11994 * window.c (unshow_buffer): Return void.
11995 (replace_window): Ditto.
11996 (delete_window): Ditto.
11997
11998 * term.c (delete_glyphs_hook): Void return type.
11999 (ring_bell_hook): Ditto.
12000 (set_terminal_window_hook): Ditto.
12001
12002 * sysdep.c (init_sigio): Return void.
12003
12004 * xterm.c (x_set_window_size): Return void.
12005 (x_calc_absolute_position): Ditto.
12006 (x_set_offset): Ditto.
12007 (x_focus_on_frame): Ditto.
12008 (x_unfocus_frame): Ditto.
12009 (x_make_frame_visible): Ditto.
12010 (x_make_frame_invisible): Ditto.
12011 (x_iconify_frame): Ditto.
12012 (x_destroy_window): Ditto.
12013 (x_wm_set_window_state): Ditto.
12014 (x_wm_set_icon_pixmap): Ditto.
12015 (x_wm_set_icon_position): Ditto.
12016 (x_initialize): Ditto.
12017 (x_error_quitter): Ditto.
12018 (x_destroy_window): Use xfree instead of free.
12019
12020 * keyboard.c (clear_waiting_for_input): Return void.
12021
12022 * xterm.c (x_wm_set_size_hint): Return void.
12023 (x_raise_frame): Ditto.
12024 (refreshicon): Ditto.
12025 (x_error_catcher): Ditto.
12026 (x_clear_errors): Ditto.
12027
12028 * keyboard.c (record_asynch_buffer_change): Return void.
12029
12030