(xim_initialize) [!USE_XIM]: Don't set up the
[bpt/emacs.git] / src / ChangeLog
CommitLineData
2c69ced2
GM
12000-06-26 Gerd Moellmann <gerd@gnu.org>
2
3fc720e4
GM
3 * keymap.c (get_keyelt): For menu-items containing a `:filter
4 FILTER', apply FILTER to the menu-item's definition to get the
5 real definition to use.
6
7 * lisp.h (QCfilter): External declaration.
8
2c69ced2
GM
9 * xfns.c (Fimage_size): New function.
10 (syms_of_xfns): Defsubr it.
11
f978b2a2
AS
122000-06-26 Andreas Schwab <schwab@suse.de>
13
14 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
15 Fstring_as_unibyte.
16
94cc7892
DL
172000-06-25 Dave Love <fx@gnu.org>
18
19 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
20 tgetnum.
21
22 * Makefile.in (blockinput.h): Depend on atimer.h.
23 (atimer.h): Depend on systime.h.
24
25 * blockinput.h: Protect against multiple inclusion. Include
26 atimer.h.
27
28 * atimer.h: Protect against multiple inclusion. Include
29 systime.h.
30
31 * lisp.h (swap_in_global_binding): Declare.
32
b8c24556
KR
332000-06-24 Ken Raeburn <raeburn@gnu.org>
34
35 * process.c (Fopen_network_stream): Turn off atimers for duration
36 of call to connect. (Patch from Gerd.)
37
8cf8560b
DL
382000-06-23 Dave Love <fx@gnu.org>
39
511c7541
DL
40 * ralloc.c: Maybe include unistd.h
41
8cf8560b
DL
42 * emacs.c (setgrp): Undefine before defining.
43 (malloc_warning, set_time_zone_rule, index): Prototype.
44
45 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
46 HAVE_STRUCT_TIMEZONE.
47
48 * s/osf1.h: Move string.h hack here from alpha.h and make it
49 conditional.
50 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
51 _XOPEN_SOURCE.
52 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
53 (SOCKLEN_TYPE): Don't define.
54
55 * m/alpha.h: Remove string.h hack.
56
57 * s/osf5-0.h: New file.
58
59 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
60 include time.h, done by systime.h.
61 [__FreeBSD__]: Remove redundant includes.
62
3fc720e4 63 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
64 (delete_temp_file): Return Qnil to avoid warning.
65
66 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
67
68 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
69 HAVE_X_WINDOWS.
70
71 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
72
73 * composite.h (compose_text): Declare.
74
75 * xterm.c: Don't include sys/types.h unconditionally. Don't
76 protect its inclusion with !USG (following xmenu.c).
77
ea055732
GM
782000-06-23 Gerd Moellmann <gerd@gnu.org>
79
80 * xfns.c (x_create_tip_frame): Initialize frame's colors like
81 in x_create_frame.
82
74b01b80
EZ
832000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
84
85 * coding.c (decode_eol_post_ccl): Special handling for undecided
86 and inconsistent EOL types.
87
64f3a166
GM
882000-06-22 Gerd Moellmann <gerd@gnu.org>
89
16cf31f7
GM
90 * xrdb.c (x_load_resources): Add default resource for scroll bar's
91 trough color and main window's background color.
92
93 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
94 differently.
95
96 * xterm.h (Xt_app_con): External declaration.
97
98 * widget.c (EmacsFrameRealize): Fix typo.
99
486a103d
GM
100 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
101
64f3a166
GM
102 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
103 (handle_invisible_prop): Record the start of invisible text in
104 it->add_overlay_start.
105 (struct overlay_entry): Add member `overlay'.
106 (handle_overlay_change): Simplify.
107 (next_overlay_string): After having processed overlay strings at the
108 end of the buffer, record that fact in
109 it->overlay_strings_at_end_processed_p.
110 (compare_overlay_entries): If before- and after-strings come
111 from the same overlay, let before-strings come first.
112 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
113 (load_overlay_strings): Take it->add_overlay_start into account
114 when adding overlay strings.
115
116 * dispextern.h (struct it): Add member add_overlay_start.
117
bb746ea6
DL
1182000-06-22 Dave Love <fx@gnu.org>
119
120 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
121
122 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
123
a8f573f3
KH
1242000-06-22 Kenichi Handa <handa@etl.go.jp>
125
126 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
127 is greater than 0.
128
9f2bbc92
DL
1292000-06-21 Dave Love <fx@gnu.org>
130
131 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
132
3ee5041c
SM
1332000-06-21 Stefan Monnier <monnier@cs.yale.edu>
134
135 * syntax.c (back_comment): Simplify string-parity counting (with
136 the added benefit of handling multiple string-styles as long as
137 they are not intertwined).
138 Jump to the slow code as soon as a comment starter is found in
139 a "string_lossage" position. Fixes the case: " /* " /* " */.
140
4c343001
DL
1412000-06-21 Dave Love <fx@gnu.org>
142
143 * Makefile.in: Use GETLOADAVG_LIBS.
144
145 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
146 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
147
e6365855
SM
1482000-06-20 Stefan Monnier <monnier@cs.yale.edu>
149
150 * syntax.c (describe_syntax): Recognize the `n'estable bit.
151 (Fforward_comment, scan_lists):
152 Check the comstyle of single-char comment-starters.
153 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
154 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
155 Check the comstyle of single-char comment-starters.
156 Clarify control-flow around the Scomment case.
e6365855 157
5700d2cc
DL
1582000-06-20 Dave Love <fx@gnu.org>
159
d355bd8a
SM
160 * fns.c (make_hash_table, maybe_resize_hash_table):
161 Cast arg of next_almost_prime.
5700d2cc
DL
162
163 * tparam.c [emacs]: Include lisp.h.
164
165 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
166 and unistd.h.
167
4a27bdfb
GM
1682000-06-20 Gerd Moellmann <gerd@gnu.org>
169
a61d762c
GM
170 * keyboard.c (adjust_point_for_property): Check if display
171 property should be treated as intangible by looking at its
172 value.
173
174 * xdisp.c (single_display_prop_intangible_p)
175 (display_prop_intangible_p): New functions.
176
177 * dispextern.h (display_prop_intangible_p): Add prototype.
178
179 * xdisp.c (dump_glyph_row): Show type of glyph->object.
180
4a27bdfb
GM
181 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
182 argument to sigprocmask.
183
184 * s/sco5.h (sigblock): Redefined to pass a pointer as second
185 argument to sigprocmask.
186
187 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
188 sigprocmask_set, and pass a pointer to it to sigprocmask.
189
190 * sysdep.c (sigprocmask_set): New variable.
191
192 * fileio.c (make_temp_name): Don't use `%s' in string passed to
193 report_file_error.
194
427ec082
SS
1952000-06-20 Sam Steingold <sds@gnu.org>
196
197 * xrdb.c: Don't declare xmalloc, xrealloc.
198
8972fe79 1992000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
200
201 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
202 (re_comp): Cast gettext return value to avoid complaints when
203 !HAVE_LIBINTL.
204
074b6efe
DL
2052000-06-20 Dave Love <fx@gnu.org>
206
f85c008a
DL
207 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
208 HAVE_GETTIMEOFDAY.
209
5700d2cc 210 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 211
d355bd8a 212 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
213
214 * m/alpha.h: Don't declare xmalloc, xrealloc.
215
0af4f205
DL
216 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
217
218 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
219
220 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
221
222 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
223 HAVE_GETWD.
224
074b6efe
DL
225 * keyboard.h (poll_for_input_1): Declare.
226
227 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
228
229 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
230
231 * doprnt.c: Don't declare xmalloc, xrealloc.
232
233 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
234 (getenv, ctime, getwd): Removed.
235 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
236
237 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
238 x_set_tool_bar_lines.
239
240 * config.in: Add HAVE_GETWD. Move some definitions above
241 machine/system includes.
242
68a5e97b
KH
2432000-06-20 Kenichi Handa <handa@etl.go.jp>
244
95417e1e
KH
245 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
246
68a5e97b
KH
247 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
248 contain information about ENCODING.
249
250 * fontset.c (FONTSET_ASCII): Use the first element of char table
251 for an ASCII font, not defalt slot.
252 (fontset_ref_via_base): If FONTSET doesn't contain information for
253 C, try the default fontset.
254 (make_fontset): Don't copy the default fontset.
255 (fontset_font_pattern): Likewise.
256 (accumulate_font_info): If ELT is nil, use the corresponding
257 element in the default fontset.
258
3b4fa1b2
DL
2592000-06-19 Dave Love <fx@gnu.org>
260
943e731c
DL
261 * syntax.c (Fparse_partial_sexp): Doc fix.
262
263 * regex.h: Test PROTOTYPES as well as __STDC__.
264
3b4fa1b2
DL
265 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
266 errno, strerror. Put text after #endif in comment.
267
268 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
269 pcc).
270
271 * xterm.c (x_frame_of_widget): Likewise.
272
cdf0357b
GM
2732000-06-19 Gerd Moellmann <gerd@gnu.org>
274
275 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
276 to Vfundamental_mode_abbrev_table.
277
278 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
279 bogus objects are marked. This slows down GC by ~80 percent, but
280 it might be worth trying when debugging GC-related problems.
281 This feature requires conservative stack marking to be enabled.
282
283 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
284 returns XLookupChars, reset `modifiers' to zero.
285
998e9f8c
DL
2862000-06-19 Dave Love <fx@gnu.org>
287
288 * mktime.c: Unprotoized.
289
d1504184
GM
2902000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
291
292 * data.c (set_internal): If variable is frame-local,
293 store the new value immediately into the frame parameter alist.
294
140c4ac6
KR
2952000-06-19 Ken Raeburn <raeburn@gnu.org>
296
14358466
KR
297 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
298 in the custom handler pointer.
299
140c4ac6
KR
300 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
301 value, or checks for CHAR_META can fail when Lisp_Object is a
302 union type.
303 * keymap.c (get_keyelt): Likewise.
304
10d7bf84
KH
3052000-06-19 Kenichi Handa <handa@etl.go.jp>
306
307 * ccl.h (struct ccl_program): New member eol_type.
308 (struct ccl_spec): New member cr_carryover.
309
310 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
311 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
312
313 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
314 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
315 (decode_eol_post_ccl): New function.
316 (decode_coding): Don't detect EOL format here for CCL based coding
317 systems.
318 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
319 decode_eol_post_ccl after running the CCL program.
320 (code_convert_region): Don't detect EOL format here for CCL based
321 coding systems.
322 (decode_coding_string): Likewise.
323
52e386c2
KR
3242000-06-18 Ken Raeburn <raeburn@gnu.org>
325
326 * charset.c (update_charset_table): Use XINT on "iso_final_char"
327 when treating it as an integer.
328
329 * coding.h (encode_coding_string): Declare.
330
331 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
332 it as an integer.
333
334 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
335 "xkeymap" to avoid shadowing the "enum map_type" value that needs
336 to be passed to get_local_map.
337
338 * sound.c (Fplay_sound): Don't call make_number on
339 Frun_hook_with_args count argument.
340
341 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
342 for lisp objects in X event structure data field, when lisp
343 objects are represented with unions.
344 (x_scroll_bar_to_input_event): Ditto.
345
b357b9d4
KR
3462000-06-16 Ken Raeburn <raeburn@gnu.org>
347
348 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
349 termination of string. Fix sense of test whether
350 Vline_number_display_limit is an integer.
b357b9d4 351
a871441d
GM
3522000-06-16 Gerd Moellmann <gerd@gnu.org>
353
a9021acd
GM
354 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
355 only if HAVE_X_WINDOWS.
356
6344985d
GM
357 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
358 of titles.
359
427ec082 360 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
361 out of bounds.
362
228b083e
EZ
3632000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
364
365 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
366 of its headers.
367
c25b53a2
KH
3682000-06-15 Kenichi Handa <handa@etl.go.jp>
369
370 * coding.c (decode_coding_emacs_mule): Always set src_base at the
371 start of the while loop.
372
a6981b11
GM
3732000-06-15 Gerd Moellmann <gerd@gnu.org>
374
e9924e52
GM
375 * atimer.c (alarm_signal_handler): Add forward declaration.
376
a6981b11
GM
377 * data.c (set_internal): Remove debug code.
378
25fa6deb
GM
3792000-06-14 Gerd Moellmann <gerd@gnu.org>
380
dce6b995
GM
381 * Makefile.in (bootstrap-temacs): Add `-I../src'.
382
9f817ea4
GM
383 * unexec.c (toplevel) [COFF]: Include coff.h.
384
385 * s/lynxos.h: New file.
386
387 * keymap.c (Fsingle_key_description): Enclose function key and
388 event symbol names in angle brackets.
389
8a4e3c0c
GM
390 * xdisp.c (setup_echo_area_for_printing): Call
391 message_log_maybe_newline if message_buf_print is not set.
392
393 * print.c (printchar, strout): Don't check message_buf_print
427ec082 394 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
395 function does something useful even when message_buf_print is
396 already set.
397
25fa6deb
GM
398 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
399 variables.
400 (ensure_echo_area_buffers): Initialize echo buffer's
401 truncate lines setting to nil.
402 (with_echo_area_buffer): Don't set the echo buffer's truncate
403 lines setting here.
8a4e3c0c 404 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
405 of message_truncate_lines.
406 (resize_mini_window): Handle case that lines are truncated.
407 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
408 message-truncate-lines.
409
410 * keyboard.c (read_char): Bind message-truncate-lines to t
411 while displaying a help-echo.
412
413 * lisp.h (Qmessage_truncate_lines): External declaration.
414
163dcff3
GM
4152000-06-13 Gerd Moellmann <gerd@gnu.org>
416
1681ead6
GM
417 * xdisp.c (Vline_number_display_limit): Renamed from
418 line_number_display_limit.
419 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
420 Extend documentation string. Initialize
421 Vline_number_display_limit to nil meaning no limit.
422 (decode_mode_spec): Use Vline_number_display_limit with its new
423 meaning.
424
163dcff3
GM
425 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
426
4272000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
428
429 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 430
163dcff3
GM
431 * xfns.c (x_set_frame_parameters): Comment fix.
432
433 * frame.c (store_frame_param): Call swap_in_global_binding if the
434 variable's current binding was chosen based on this frame.
435
436 * data.c (swap_in_global_binding): New function.
437
a704139d
EZ
4382000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
439
440 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
441 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
442
9b6610db
EZ
4432000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
444
445 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
446
c68833d2
JR
4472000-06-12 Jason Rumney <jasonr@gnu.org>
448
449 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
450
451 * w32.h (EMACS_W32_H): Renamed from _NT_H_
452
453 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
454
455 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
456
ed1056b3
GM
4572000-06-12 Gerd Moellmann <gerd@gnu.org>
458
459 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
460 (syms_of_xfaces): Defsubr Sdump_colors.
461 (x_free_colors): Don't treat b&w specially on default visual.
462 (x_free_dpy_colors): New function.
463 (free_face_colors): Don't check visual class; it's done
464 in x_free_colors.
465
466 * xterm.c (x_frame_of_widget): New function.
467 (x_alloc_nearest_color_for_widget): Use it.
468 (x_copy_dpy_color): New function.
469 (x_destroy_window): Free various colors.
470
5050a2ef
KH
4712000-06-12 Kenichi Handa <handa@etl.go.jp>
472
473 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
474
475 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
476
477 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
478
479 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
480
481 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
482
fb1b041d
DL
4832000-06-11 Dave Love <fx@gnu.org>
484
485 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
486
ff96b5f4
EZ
4872000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
488
489 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
490
db8eeecd
GM
4912000-06-11 Gerd Moellmann <gerd@gnu.org>
492
ed1056b3 493 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
494 to `XEvent *'.
495
49b71c5f
KH
4962000-06-10 Kenichi Handa <handa@etl.go.jp>
497
c479bd55
KH
498 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
499 (regex_compile): Fix the code for handling the case of single byte
500 char and multibyte char being mixed in a range within [...].
501
ff6a65c2
KH
502 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
503 and dst_multibyte members of coding.
504
49b71c5f
KH
505 * charset.c (update_charset_table): Update the table
506 bytes_by_char_head.
507 (init_charset_once): Initialize elements of bytes_by_char_head to
508 1 except for leading codes for private charases.
509
510 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
511 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
512 sequence.
513
9e80b57d
KR
5142000-06-09 Ken Raeburn <raeburn@gnu.org>
515
516 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
517 access the data it doesn't point to.
518
f83fe4b4
GM
5192000-06-08 Gerd Moellmann <gerd@gnu.org>
520
521 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 522 will be translated to a switch-frame event when reading the
f83fe4b4
GM
523 event queue. This is necessary because Emacs otherwise won't
524 perform a switch-frame to a new frame until some other event, for
525 example a keystroke event, forces it to do so. This has various
526 effects, one visible being that the cursor of a frame created with
527 C-x 5 2 or switched to with a window manager key binding like
528 A-TAB stays hollow because selected_window isn't on the newly
529 focused frame until the switch-frame is performed.
530
531 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
532 generating a switch-frame event if necessary.
533
534 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
535
536 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
537 it's an integer.
538
0890801b
KH
5392000-06-08 Kenichi Handa <handa@etl.go.jp>
540
541 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
542 charset.
543
173cbca8
GM
5442000-06-07 Gerd Moellmann <gerd@gnu.org>
545
3091c2a6
GM
546 * window.c (displayed_window_lines): Take empty lines at
547 the bottom of a window into account.
427ec082 548
f38952fe
GM
549 * window.c (displayed_window_lines): New function.
550 (Fmove_to_window_line): Use displayed_window_lines to determine
551 the number of lines to move, instead of using the window's height.
552
553 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
554 to stop reading, even if the form read sets point to a different
555 value when evaluated.
556
427ec082 557 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
558 put the cursor.
559
6ba6c818
KH
5602000-06-07 Kenichi Handa <handa@etl.go.jp>
561
562 * fileio.c (e_write): Free composition data if stored in
563 coding->cmp_data.
564
5f1aea9a
GM
5652000-06-06 Gerd Moellmann <gerd@gnu.org>
566
666852af
GM
567 * xdisp.c (display_line): Set row's and iterator's
568 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
569 Set cursor even if row ends in the middle of a character.
570 (dump_glyph_row): Print values of new flags.
571 (redisplay_window) <cursor movement in unchanged window>: When
572 point has been moved forward, and PT is at the end of the cursor
573 row, don't place the cursor in the next row if the cursor row ends
574 in the middle of a character or at ZV.
575
576 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
577 (struct glyph_row): Add starts_in_middle_of_char_p and
578 ends_in_middle_of_char_p.
579 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
580 ends_in_middle_of_char_p flag.
581 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
582
d13f3e2e
GM
583 * term.c (append_glyph): Revert change of 2000-06-06.
584
585 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
586 padding glyph not fitting on line as whole character not
587 fitting on line.
588
5f1aea9a
GM
589 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
590 this isn't true for images with `:ascent 100'.
591
10cda9b0
KH
5922000-06-06 Kenichi Handa <handa@etl.go.jp>
593
ed00559d
KH
594 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
595 as modified if it is originally unmodified.
596
10cda9b0
KH
597 * term.c (encode_terminal_code): Change the way to check if
598 terminal coding does any conversion.
599 (append_glyph): Set glyph->pixel_width correctly.
600
601 * xdisp.c (display_line): While checking line continuation, pay
602 attention to a padding glyph.
603
1969fae2
GM
6042000-06-05 Gerd Moellmann <gerd@gnu.org>
605
606 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
607
162ccef4
DL
6082000-06-05 Dave Love <fx@gnu.org>
609
f19f32dd
DL
610 * xdisp.c: Include fontset.h.
611
612 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
613
614 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
615
616 * dispnew.c: Conditionally include term.h.
617
618 * coding.h: Declare code_convert_string_norecord.
619
620 * frame.h (struct frame): Use volatile unconditionally.
621
622 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
623
624 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
625
626 * systime.h: Protect against multiple inclusion.
627 (timezone) [USG5_4]: Define as time_t.
628
629 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
630 (Foptimize_char_table, make_temp_name): Declare.
631
632 * Makefile.in (xdisp.o): Depend on fontset.h.
633
634 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
635
636 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
637 (Foptimize_char_table, make_temp_name): Declare.
638
427ec082 639 * s/irix4-0.h:
162ccef4
DL
640 * s/irix5-0.h:
641 * s/netbsd.h: Don't define autoconfiscated MATHERR.
642
2082fe81
DL
6432000-06-02 Dave Love <fx@gnu.org>
644
645 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
646
dcf671d2
GM
6472000-06-02 Gerd Moellmann <gerd@gnu.org>
648
649 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 650 result face, set flags in that face indicating that colors may not
dcf671d2
GM
651 be freed.
652
653 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
654 glyph, use the ASCII NUL character to determine the face.
655
d42122a3
DL
6562000-06-02 Dave Love <fx@gnu.org>
657
658 * sysdep.c: Conditionally include stdlib.h, unistd.h.
659 (VFORK_RETURN_TYPE): Remove.
427ec082 660
d42122a3
DL
661 * config.in: Add NO_MATHERR.
662
dd432f16
DL
6632000-06-01 Dave Love <fx@gnu.org>
664
90aa4ea8
DL
665 * cmds.c (internal_self_insert): Don't check
666 Vbefore_change_function, Vafter_change_function.
667
668 * insdel.c (signal_before_change, signal_after_change): Likewise.
669
670 * buffer.c (Vbefore_change_function, Vafter_change_function):
671 Variables and their initializations deleted.
672
2330c9d4
DL
673 * callint.c (Fcall_interactively): Doc fix.
674
dd432f16
DL
675 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
676
bf9e8804
DL
6772000-05-31 Dave Love <fx@gnu.org>
678
679 * textprop.c: Revert last change -- duplicated.
680
3694b4ab
GM
6812000-05-31 Gerd Moellmann <gerd@gnu.org>
682
683 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
684 in #if 0.
685
686 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
687
f14156cd
JR
6882000-05-31 Jason Rumney <jasonr@gnu.org>
689
8119aab8
JR
690 * search.c (Fre_search_forward, Fre_search_backward)
691 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
692
f14156cd
JR
693 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
694
4aab9be3
JR
6952000-05-30 Jason Rumney <jasonr@gnu.org>
696
697 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
698 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
699
700 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
701 member.
702
703 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
704 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
705 expand a nil default_filename.
706
707 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
708 pointer to glyph_to_pixel_coords, not a frame.
709
710 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
711 coding.h to dependencies.
712
713 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
714
715 * w32console.c (glyph_to_pixel_coords): Change first parameter to
716 window pointer to be consistent with w32term.c and xterm.c.
717
718 * w32fns.c: Format and doc changes to bring closer to xfns.c.
719 (VIETNAMESE_CHARSET): Define if not defined in system headers.
720 (Qline_spacing, Qcenter): New variables.
721 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
722 (x_set_line_spacing): New function.
723 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
724 macros.
725 (x_specified_cursor_type): New function.
726 (x_set_cursor_type): Use it.
727 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
728 and icon strings.
729 (validate_x_resource_name, x_get_resource_string): Measure lengths
730 of external strings in bytes.
731 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
732 GetTextExtentPoint32 with NULL title.
733 (Fx_create_frame): Initialize Qline_spacing.
734 (w32_load_system_font): Initialize font->double_byte_p.
735 (x_to_w32_charset): Use Vw32_charset_info_alist.
736 (Image, busy cursor, tooltip functions): Merged changes from
737 xfns.c. Not yet functional on Windows.
738
739 * w32gui.h (W32FontStruct): Add double_byte_p member.
740
741 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
742 (emacs_button_translation): Use it.
743 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
744 in `mask' to be set.
745
746 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
747 menu strings.
748
749 * w32term.c: Format and doc changes to bring closer to xterm.c.
750 (w32_char_font_type): New enum.
751 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
752 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
753 (w32_encode_char): New function.
754 (x_encode_char): Removed.
755 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
756 x_encode_char and w32_font_is_double_byte.
757 (x_produce_image_glyph): Use image_ascent.
758 (x_produce_glyphs): Use new version of w32_per_char_metric and
759 handle NULL return value. Allow extra line spacing.
760 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
761 (w32_get_glyph_overhangs): Remove unicode_p param. Use
762 w32_font_type member of glyph instead.
763 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
764 (fast_find_position): Make sure not to consider rows not visible
765 in the window.
766 (w32_read_socket) [WM_MENUSELECT]: Cannot call
767 w32_menu_display_help with input blocked, as it can abort.
768 (x_display_and_set_cursor): Choose cursor depending
769 on buffer-local value of cursor_type.
770 (x_draw_bar_cursor): Add parameter WIDTH.
771
772 * w32term.h (CP_DEFAULT): Define.
773 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
774
10fc3187
GM
7752000-05-30 Gerd Moellmann <gerd@gnu.org>
776
777 * search.c (Fre_search_forward, Fre_search_backward)
778 (Fposix_search_backward, Fposix_search_forward): Doc fix.
779
d0555360
KH
7802000-05-30 Kenichi Handa <handa@etl.go.jp>
781
782 * coding.c (detect_coding_iso2022): Fix code for checking
783 CODING_CATEGORY_MASK_ISO_8_2.
784
f1ad044f
SM
7852000-05-29 Stefan Monnier <monnier@cs.yale.edu>
786
787 * regex.c (PREFETCH_NOLIMIT): New function.
788 (re_match_2_internal): Use it and adjust the end_match_2 logic.
789
84ec3b4b
GM
7902000-05-29 Gerd Moellmann <gerd@gnu.org>
791
66254a13
GM
792 * syntax.c (find_defun_start): Move test for
793 open_paren_in_column_0_is_defun_start outside of the loop.
794
49e70dec
GM
795 * xdisp.c (redisplay_window): Really switch buffers when
796 displaying mode lines, and temporarily set selected_frame to the
797 frame of the window that's redisplayed.
798
84ec3b4b
GM
799 * xfaces.c (free_realized_faces): Block/unblock input.
800 (free_realized_multibyte_face): Ditto.
801
869a3a14
DL
8022000-05-29 Dave Love <fx@gnu.org>
803
804 * textprop.c (Qkeymap): New variable.
805 (syms_of_textprop): Intern it.
806
807 * keymap.c: Include intervals.h.
808 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
809
810 * Makefile.in (keymap.o): Depend on intervals.h.
811
812 * keyboard.c (menu_bar_items, tool_bar_items)
813 (Fexecute_extended_command): Deal with `keymap' property.
814 (read_key_sequence): Track map from `keymap' property as well as
815 `local_map'.
816
817 * intervals.c (get_local_map): Extra arg to allow looking for
818 `keymap' too.
819
820 * intervals.h (map_property): New enum.
821 (get_local_map): Extra arg using it.
822 (Qkeymap): Declare.
823
84ec3b4b 824 * lisp.h (get_local_map): Don't declare here.
869a3a14 825
89d0c844
KH
8262000-05-29 Kenichi Handa <handa@etl.go.jp>
827
828 * Makefile.in (callproc.o): Depend on composite.h.
829
830 * callproc.c: Include composite.h.
831 (Fcall_process): Handle composition correctly.
832
833 * coding.h (coding_allocate_composition_data): Extern it.
834 (coding_restore_composition): Likewise.
835
836 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
837 yet allocated, finish decoding with result
838 CODING_FINISH_INSUFFICIENT_CMP.
839 (coding_allocate_composition_data): Make it non-static.
840 (coding_restore_composition): Likewise.
841
797a084a
EZ
8422000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
843
844 * charset.c (syms_of_charset): Revert last change.
845
cf872af5
EZ
8462000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
847
848 * term.c (produce_glyphs): Treat characters from the eight-bit-*
849 charsets as unibyte, with 1-column screen width. Sent by Kenichi
850 Handa.
851
5b1ae051
EZ
8522000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
853
854 * charset.c (syms_of_charset): Set width of character sets
855 eight-bit-control and eight-bit-graphic to 1 column.
856
34ec9ebe
GM
8572000-05-26 Gerd Moellmann <gerd@gnu.org>
858
859 * config.in (HAVE_SPEED_T): New define.
860
861 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
862 `extern speed_t'.
863
dd854dc2
DL
8642000-05-26 Dave Love <fx@gnu.org>
865
866 * coding.c (shrink_decoding_region): Initialize eol_conversion.
867
868 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
869 (Fsubr_arity): New function.
870 (syms_of_data): Install them.
871
ba9f8f95
KH
8722000-05-26 Kenichi Handa <handa@etl.go.jp>
873
0f3e0672
KH
874 * charset.c (init_charset_once): Set the table bytes_by_char_head
875 correctly.
876
cebefb44
KH
877 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
878 the default fontset to what Emacs uses by default.
0f3e0672
KH
879 (check_registry_encoding): This function deleted.
880 (Fset_fontset_font): Remove the adhoc condition for the default
881 fontset. Allow cons in FONTNAME.
cebefb44 882
0f3e0672
KH
883 * fns.c (map_char_table): Ignore char-table entries for
884 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 885
7a18af49
KR
8862000-05-25 Ken Raeburn <raeburn@gnu.org>
887
888 * emacs.c (main): Initialize keyboard syms before initializing
889 window code, so face names are available.
890
d2af47df
SM
8912000-05-25 Stefan Monnier <monnier@cs.yale.edu>
892
893 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
894 of an anchor at the beginning of a shy-group.
895
fc6a6a4e
GM
8962000-05-25 Gerd Moellmann <gerd@gnu.org>
897
898 * xdisp.c (handle_invisible_prop): Don't try to skip over
899 invisible text if end of text is already reached.
900
005f0d35
DL
9012000-05-25 Dave Love <fx@gnu.org>
902
02513cdd
DL
903 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
904
005f0d35
DL
905 * coding.c (encode_eol): Add null statement after label.
906
89f6ca4e
EZ
9072000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
908
909 * w16select.c (Fw16_set_clipboard_data): Fix the change from
910 2000-05-20.
911
a4e1759e
KH
9122000-05-25 Kenichi Handa <handa@etl.go.jp>
913
914 * ccl.c (ccl_driver): Fix previous change.
915
eacfd7fe
KH
9162000-05-25 Kenichi Handa <handa@etl.go.jp>
917
46ab33a9
KH
918 * coding.c (run_pre_post_conversion_on_str): Set point to the
919 beginning of buffer before calling coding->post_read_conversion.
920 (decode_coding_string): Give correct args to
921 run_pre_post_conversion_on_str.
922 (encode_coding_string): Likewise.
923
eacfd7fe
KH
924 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
925 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
926 eight-bit-graphic correctly.
927
f8569325
DL
9282000-05-24 Kenichi HANDA <handa@etl.go.jp>
929
930 * fileio.c (Finsert_file_contents): Even if a file is not found,
931 execute codes for setting up coding system. Call
932 after-insert-file-functions unconditionally.
933
04545643
GM
9342000-05-24 Gerd Moellmann <gerd@gnu.org>
935
936 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
937 BSD_PGRPS are not defined.
938
747d90ea
KH
9392000-05-24 Kenichi Handa <handa@etl.go.jp>
940
941 * charset.c (update_charset_table): Accept nil in LONG_NAME and
942 DESCRIPTION.
943 (syms_of_charset): Avoid building same strings.
944
716e3b88
GM
9452000-05-23 Gerd Moellmann <gerd@gnu.org>
946
947 * lread.c (Fload): Add a comment about the meaning of
948 Vuser_init_file being t.
949
950 * puresize.h (BASE_PURESIZE): Increase to 675000.
951
952 * s/gnu-linux.h (setpgrp): Don't define it here because this
953 prevents compilation on GNU/Linux systems with glib 2.2.
954
955 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
956 as setpgid.
427ec082 957
9aeb39fa
EZ
9582000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
959
960 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
961 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
962 version.
963 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
964
29ced61b
KH
9652000-05-23 Kenichi Handa <handa@etl.go.jp>
966
0574a2ed
KH
967 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
968 unconditionally.
969
3d80f24d
KH
970 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
971
972 * term.c (encode_terminal_code): Set coding->src_multibyte
973 properly.
974
29ced61b
KH
975 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
976
d7e00792
KH
9772000-05-22 Kenichi Handa <handa@etl.go.jp>
978
c9d80d38
KH
979 * keyboard.c (read_char): Allow character codes 128..255 to be
980 handled by input-method-function.
981
d7e00792
KH
982 * insdel.c (adjust_markers_for_replace): Fix previous change.
983 (adjust_after_replace): If PREV_TEXT is nil, call
984 adjust_markers_for_insert, not adjust_markers_for_replace.
985
087121cc 9862000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 987
087121cc
GM
988 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
989 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
990 [HAVE_GRANDPT]: Define.
991 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
992
993 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
994 like SYSV_PTYS.
995
996 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
997
998 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
999
c9671f81
KH
10002000-05-20 Kenichi Handa <handa@etl.go.jp>
1001
1002 The following changes are to handle 8-bit characters in a
1003 multibyte buffer/string without facing with byte combining
1004 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
1005 eight-bit-graphic (for 0xA0..0xFF) are introduced.
1006
1007 * Makefile.in (fns.o): Depend on charset.h.
1008
1009 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
1010 convert it to unibyte.
1011 (make_string): Use parse_str_as_multibyte, not chars_in_text.
1012
1013 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
1014 apparent char boundary.
1015 (Fset_buffer_multibyte): Convert 8-bit characters in the range
1016 0x80..0x9F to/from multibyte form.
1017
1018 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
1019 to unibyte.
1020
1021 * callproc.c (Fcall_process): Always encode an argument string if
1022 it is multibyte. Setup src_multibyte and dst_multibyte members of
1023 process_coding properly.
ce75fd23 1024
c9671f81
KH
1025 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
1026 SPLIT_NON_ASCII_CHAR.
1027
1028 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
1029 as is.
1030 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
1031
1032 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
1033 variables.
1034 (SPLIT_CHARACTER_SEQ): This macro deleted.
1035 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
1036 valid.
1037 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1038 and eight-bit-graphic.
1039 (char_to_string): Likewise. Signal an error for too large
1040 character code.
1041 (char_printable_p): Return 0 for 8-bit characters.
1042 (update_charset_table): Update iso_charset_table only when a final
1043 character is non-negative.
1044 (find_charset_in_text): Renamed from find_charset_in_str.
1045 Arguments and return value changed. Callers changed.
1046 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1047 be -1 if CHARSET is used only internally.
1048 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1049 eight-bit-graphic.
1050 (Fcharset_after): Simplified.
1051 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1052 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1053 (multibyte_chars_in_text): Simplified by assuming there's no
1054 invalid multibyte sequence.
1055 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1056 str_as_unibyte): New functions.
1057 (Fstring): Simpified by assuming that byte combining never
1058 happens.
1059 (init_charset_once): Initialization for
1060 LEADING_CODE_8_BIT_CONTROL.
1061 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1062 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1063 eight-bit-control and eight-bit-graphic.
1064
1065 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1066 CHARSET_8_BIT_GRAPHIC): New macros.
1067 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1068 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1069 (CHARSET_REVERSE_CHARSET): Likewise.
1070 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1071 eight-bit-graphic.
1072 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1073 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1074 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1075 encounter an invalid multibyte sequence.
1076 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1077 sequence is always valid.
1078 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1079 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1080 macros.
1081 (CHAR_STRING): For 8-bit characters, call char_to_string.
1082 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1083 multibyte sequence is always valid.
1084 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1085 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1086 str_as_unibyte): Extern them.
1087 (BCOPY_SHORT): Fix a bug.
1088 (CHAR_LEN): This macro deleted. Callers changed to use
1089 CHAR_BYTES.
1090 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1091 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1092 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1093
bd4bde7f 1094 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1095 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1096 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1097 EMIT_BYTES): New macros.
1098 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1099 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1100 macros deleted.
1101 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1102 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1103 check the validity of multibyte sequence.
1104 (decode_coding_emacs_mule): New function.
1105 (encode_coding_emacs_mule): New macro.
1106 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1107 the source.
1108 (DECODE_ISO_CHARACTER): Just return a character code.
1109 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1110 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1111 EMIT_CHAR to produced decoded characters. Exit the loop only by
1112 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1113 block here.
1114 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1115 only position codes for an invalid character.
1116 (encode_designation_at_bol): Return new destination pointer. 5th
1117 arg DSTP is changed to DST.
1118 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1119 from the source by ONE_MORE_CHAR. Don't handle the case of last
1120 block here.
1121 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1122 macros deleted.
1123 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1124 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1125 TWO_MORE_BYTES to fetch a byte from the source.
1126 (encode_eol): Pay attention to coding->src_multibyte.
1127 (detect_coding, detect_eol): Preserve members src_multibyte and
1128 dst_multibyte.
1129 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1130 (encoding_buffer_size): Set magnification to 3 for all coding
1131 systems that require encoding.
1132 (ccl_coding_driver): For decoding, be sure that the result is
1133 valid multibyte sequence.
1134 (decode_coding): Initialize coding->errors and coding->result.
1135 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1136 and raw-text, always call decode_eol. Handle the case of last
1137 block here. If not coding->dst_multibyte, convert the resulting
1138 sequence to unibyte.
1139 (encode_coding): Initialize coding->errors and coding->result.
1140 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1141 and raw-text, always call encode_eol. Handle the case of last
1142 block here.
1143 (shrink_decoding_region, shrink_encoding_region): Detect cases
1144 that we can't skip data more rigidly.
1145 (code_convert_region): Setup src_multibyte and dst_multibyte
1146 members of coding. For decoding, if the buffer is multibyte,
1147 convert the source sequence to unibyte in advance. For encoding,
1148 if the buffer is multibyte, convert the resulting sequence to
1149 multibyte afterward.
1150 (run_pre_post_conversion_on_str): New function.
1151 (code_convert_string): Deleted and divided into the following two.
1152 (decode_coding_string, encode_coding_string): New functions.
1153 (code_convert_string1, code_convert_string_norecord): Call one of
1154 above.
1155 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1156 MAKE_NON_ASCII_CHAR.
1157 (Fset_terminal_coding_system_internal,
1158 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1159 and dst_multibyte members.
1160 (init_coding_once): Initialize iso_code_class with new enum
1161 ISO_control_0 and ISO_control_1.
1162
1163 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1164 devided into ISO_control_0 and ISO_control_1.
1165 (struct coding_system): New members src_multibyte, dst_multibyte,
1166 errors, and result. Delete member fake_multibyte.
1167 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1168 nonzero.
1169 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1170 nonzero.
1171
1172 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1173 (Faset): Likewise.
1174
1175 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1176 multibyte form.
1177 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1178 combining occurs.
1179 (Ftranspose_region): Delete codes for handling byte combining.
1180
1181 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1182 dst_multibyte members of coding. On handling REPLACE on unibyte
1183 buffer, convert the result of decode_coding to unibyte. On
1184 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1185 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1186 multibyteness of the source (buffer or string).
1187
1188 * fns.c (concat): Handle 8-bit characters correctly.
1189 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1190 unibyte in the result.
1191 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1192 valid multibyte form in the result.
1193 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1194 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1195 return -1, signal an error.
1196 (base64_encode_1): New arg MULTIBYTE. Get each character by
1197 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1198 character is found, return -1.
1199 (Fbase64_decode_region): Delete codes for handling byte-combining.
1200 Treat each decoded byte as a unibyte character.
1201 (Fbase64_decode_string): Return unibyte string.
1202 (Fcompare_strings, concat, string_byte_to_char): Use
1203 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1204 FETCH_STRING_CHAR_ADVANCE.
1205 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1206 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1207
1208 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1209 SPLIT_NON_ASCII_CHAR.
1210 (fontset_ref_via_base, fontset_set): Likewise
1211
1212 * insdel.c (adjust_markers_for_record_delete): Deleted.
1213 (adjust_markers_for_insert): Argument changed. Caller changed.
1214 (adjust_markers_for_replace): Likewise.
1215 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1216 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1217 (copy_text): Delete unused local varialbe c_save. For converting
1218 to multibyte, be sure to make all 8-bit characters in valid
1219 multibyte form.
1220 (count_size_as_multibyte): Handle 8-bit characters correctly.
1221 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1222 adjust_after_replace, replace_range, del_range_2)
1223 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1224 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1225 adjust_after_replace, replace_range, del_range_2) Delete codes for
1226 handling byte combining.
1227 (adjust_before_replace): Deleted.
427ec082 1228
c9671f81
KH
1229 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1230 SPLIT_NON_ASCII_CHAR.
1231 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1232 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1233 unconditionally.
1234 (Fkey_description): Likewise.
1235
1236 * lread.c (read1): On reading multibyte string, be sure to make
1237 all 8-bit chararacters in valid multibyte form.
1238 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1239
1240 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1241 unconditionally.
1242
1243 * process.c (Fstart_process): GCPRO current_dir before calling
1244 Ffind_operation_coding_system. Encode arguments here.
1245 (create_process): Don't encode arguments here. Setup
1246 src_multibyte and dst_multibyte members of struct coding.
1247 (read_process_output): Setup src_multibyte and dst_multibyte
1248 members of struct coding. If the output is to multibyte buffer,
1249 always decode the output of the process. Adjust the
1250 representation of 8-bit characters to the multibyteness of the
1251 output.
1252 (send_process): Setup coding->src_multibyte according to the
1253 multibyteness of the source.
1254
1255 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1256 unconditionally.
1257 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1258 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1259
1260 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1261 CHAR_LEN.
1262
1263 * w16select.c (Fw16_set_clipboard_data): Setup members
1264 src_multibyte and dst_multibyte of coding. Adjusted for the
1265 change for find_charset_in_str.
1266 (Fw16_get_clipboard_data): Likewise.
1267
1268 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1269 dst_multibyte of coding.
1270 (x_to_w32_font): Likewise.
1271
1272 * w32select.c (Fw32_set_clipboard_data): Setup members
1273 src_multibyte and dst_multibyte of coding. Adjusted for the
1274 change for find_charset_in_str.
1275 (Fw32_get_clipboard_data): Likewise.
1276
1277 * xdisp.c (get_next_display_element): Handle 8-bit characters
1278 correctly.
1279 (next_element_from_display_vector): Use CHAR_BYTES instead of
1280 CHAR_LEN.
1281 (disp_char_vector): Use SPLIT_CHAR instead of
1282 SPLIT_NON_ASCII_CHAR.
1283
1284 * xselect.c (selection_data_to_lisp_data): Setup members
1285 src_multibyte and dst_multibyte of coding. Adjusted for the
1286 change for find_charset_in_str.
1287 (lisp_data_to_selection_data): Likewise.
1288
5f64c9e0
GM
12892000-05-19 Gerd Moellmann <gerd@gnu.org>
1290
2b63d473
GM
1291 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1292 buffer.
1293
5f64c9e0
GM
1294 * dispextern.h (Vimage_types): Add extern declaration.
1295
1296 * xdisp.c (Vimage_types): Moved here from xfns.c.
1297 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1298
1299 * xfns.c (Vimages_types): Moved to xdisp.c.
1300 (syms_of_xfns): Move `image-types' to xdisp.c.
1301
1302 * w32fns.c (Vimage_types): Removed.
1303 (syms_of_w32fns): Remove `image-types'.
1304
813086ea
KH
13052000-05-18 Kenichi Handa <handa@etl.go.jp>
1306
1307 * fns.c (map_char_table): Pay attention to character number of
1308 charset. Check the validity of charset at the first level. For
1309 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1310 the default value.
1311
1312 * fontset.c: Include "buffer.h".
1313 (fs_load_font): If the face has fontset, record the face ID in
1314 that fontset.
1315 (Finternal_char_font): New function.
1316 (accumulate_font_info): New function.
1317 (Ffontset_info): Rewritten for the new fontset implementation.
1318 (syms_of_fontset): Register Vdefault_fontset in the first element
1319 of Vfontset_table. Include Vdefault_fontset in
1320 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1321 function.
1322
bdaebbf0
DL
13232000-05-16 Dave Love <fx@gnu.org>
1324
1325 * m/iris5d.h: Deleted -- unused.
1326
cb613bb8
GM
13272000-05-16 Gerd Moellmann <gerd@gnu.org>
1328
b15f3b77
GM
1329 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1330 `invalid' instead of `illegal'.
1331
1332 * indent.c (Fmove_to_column): When ending within a tab, insert
1333 spaces first so that markers at the end of the tab get adjusted.
1334
835c1b36
GM
1335 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1336 buffer list that wasn't selected in that frame.
1337
cb613bb8
GM
1338 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1339 is needed on mescaline, use a 2 char prefix, and call
1340 make_temp_name with second arg non-zero.
1341
1342 * fileio.c (make_temp_name): New function, extracted from
1343 Fmake_temp_name.
1344 (Fmake_temp_name): Use it.
1345
f685bea9
EZ
13462000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1347
1348 * window.c (coordinates_in_window): Subtract 1 when computing
1349 right_x.
1350
a1b8d58b
GM
13512000-05-15 Gerd Moellmann <gerd@gnu.org>
1352
1353 * Makefile.in (lisp): Add env.elc.
1354
1355 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1356
a265079f
GM
13572000-05-12 Gerd Moellmann <gerd@gnu.org>
1358
1359 * search.c (Freplace_match): Handle case of `\N' in the
1360 replacement when there's no group N.
1361
da4496b6
GM
13622000-05-11 Gerd Moellmann <gerd@gnu.org>
1363
0ace421a
GM
1364 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1365 of the message to message_dolog.
1366
1172eb8d
GM
1367 * keyboard.c (read_char): Don't clear current message for help
1368 events; let the code handling help events handle this. Change
1369 code detecting help events that should be ignored.
1370
da4496b6
GM
1371 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1372 we're interating over a string.
1373
0623e40f
DL
13742000-05-09 Dave Love <fx@gnu.org>
1375
1376 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1377 that offset before writing. Move gcpro region past call of
1378 Ffile_regular_p.
1379
bae2503b
DL
13802000-05-04 Dave Love <fx@gnu.org>
1381
1382 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1383
ec82fb2f
GM
13842000-05-04 Gerd Moellmann <gerd@gnu.org>
1385
1386 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1387 of inserted characters when BUF equals the current buffer, and PT
1388 is in front of or equal to FROM.
1389
cbf18892
GM
13902000-05-03 Gerd Moellmann <gerd@gnu.org>
1391
4ff40dd0
GM
1392 * xdisp.c (handle_single_display_prop): If display property value
1393 is invalid, or something not supported on the frame, restore
1394 iterator's position to what it was initially. Make sure to return
1395 0 for invalid and unsupported property values.
1396
cbf18892
GM
1397 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1398 that x_per_char_metric returns null.
1399
1b0672c3
GM
14002000-05-02 Gerd Moellmann <gerd@gnu.org>
1401
576da55d
GM
1402 * xterm.h (struct face): Add forward declaration.
1403 (struct image): Ditto.
1404 (image_ascent): Add prototype.
1405
1406 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1407 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1408 image_ascent instead of using IMAGE_ASCENT.
1409
1410 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1411 (IMAGE_ASCENT): Removed.
1412
1413 * xfns.c (Qcenter): New variable.
1414 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1415 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1416 (image_ascent): New function.
1417 (lookup_image): Recognize `:ascent center'.
1418 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1419 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1420 (xbm_load): Don't set image's ascent here.
1421 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1422 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1423 check ascent values here.
1424 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1425 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1426 (syms_of_xfns): Initialize Qcenter.
1427
1b0672c3
GM
1428 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1429 to the limits, increase the limits.
1430
0d7811ed
KH
14312000-05-01 Kenichi Handa <handa@etl.go.jp>
1432
1433 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1434 Check Vfont_encoding_alist against the full name of the opened
1435 font.
1436
a943a5ca
GM
14372000-04-28 Gerd Moellmann <gerd@gnu.org>
1438
1439 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1440 taller than the window.
1441
5dba1e29
KH
14422000-04-28 Kenichi Handa <handa@etl.go.jp>
1443
1444 * xfaces.c (realize_x_face): Fix the argument of the second
1445 xassert. BASE_FACE may not be a face for ASCII.
1446
353964e3
GM
14472000-04-27 Gerd Moellmann <gerd@gnu.org>
1448
c76e04a8
GM
1449 * print.c (print_object): Treat print-length < 0 as nil.
1450
1451 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1452
1453 * s/freebsd.h (TERMCAP_OBJ): Removed.
1454 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1455
1456 * lread.c (read1): Don't treat period followed by certain
1457 characters as symbol start.
1458
1459 * xfns.c (slurp_file): New function.
1460 (xbm_image_p): Handle case of in-memory XBM files.
1461 (xbm_scan): Rewritten to work on memory buffers instead of files.
1462 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1463 Work on memory buffers instead of files. If DATA is null test
1464 if buffer looks like an in-memory XBM file.
1465 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1466 memory buffers instead of files.
1467 (xbm_file_p): New function.
1468 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1469
353964e3
GM
1470 * lread.c (end_of_file_error): New function.
1471 (read1): Call it instead of signaling `end-of-file' directly.
1472
427ec082 1473 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1474 with Fprinc instead of Fprin1.
1475
24d744ac
KR
14762000-04-26 Ken Raeburn <raeburn@gnu.org>
1477
1478 * window.c (freeze_window_start): Check that minibuffer scroll
1479 window isn't nil before extracting the window structure pointer
1480 from it.
1481
1482 * undo.c (record_delete): If we hit the end of the undo list, stop
1483 picking elements apart.
1484
7464346d
GM
14852000-04-26 Gerd Moellmann <gerd@gnu.org>
1486
1487 * xdisp.c (display_line): If lines are continued, restore
1488 iterator's ascent/descent information to the values before the
1489 first glyph not fitting on the line.
1490
612839b6
GM
14912000-04-25 Gerd Moellmann <gerd@gnu.org>
1492
1493 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1494 positions in glyph matrix. Don't compute new window end
1495 positions.
1496
1497 * dispnew.c (increment_matrix_positions): Renamed from
1498 increment_glyph_matrix_buffer_positions.
1499 (increment_row_positions): Renamed from
1500 increment_glyph_row_buffer_positions.
1501
1502 * dispextern.h: Change names of renamed functions from dispnew.c
1503 in prototypes.
1504
cc181e95
GM
15052000-04-24 Gerd Moellmann <gerd@gnu.org>
1506
abfcc168
GM
1507 * fileio.c (Fdo_auto_save): Create directories for auto-save
1508 list file if necessary.
1509
cc181e95
GM
1510 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1511 from buffer or frame.
1512 (automatic_hscrolling_p): New variable.
1513 (hscroll_windows): Scroll windows horizontally only if automatic
1514 hscrolling is allowed.
1515 (syms_of_xdisp): New variable `automatic-hscrolling'.
1516
1517 * frame.h (struct frame): Add member extra_line_spacing.
1518
1519 * xfns.c (x_set_line_spacing): New function.
1520 (Fx_create_frame): Set line spacing from resources.
1521 (Qline_spacing): New variable.
1522 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1523
cc181e95
GM
1524 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1525
1526 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1527 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1528 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1529 extra_line_spacing from default value.
1530 (init_buffer_once): Initialize default value of extra_line_spacing.
1531
1532 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1533 and extra3.
1534
1535 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1536 prompt_width. Add extra line spacing.
1537
1538 * term.c (produce_glyphs): Remove reference to struct it's
1539 prompt_width.
1540
1541 * dispextern.h (struct it): Remove member prompt_width, add
1542 extra_line_spacing.
1543
58827478
GM
15442000-04-22 Gerd Moellmann <gerd@gnu.org>
1545
1546 * dispnew.c (update_frame_line): When writing a whole line, make
1547 sure cursor is in the right row afterwards, otherwise a use of
1548 capability `ch' in cmgoto might leave the cursor in the row below.
1549
25a87f42
GM
15502000-04-21 Gerd Moellmann <gerd@gnu.org>
1551
1552 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1553
1554 * keyboard.c (timer_check): Fix typo in comment.
1555
54edf5c2
KH
15562000-04-21 Kenichi Handa <handa@etl.go.jp>
1557
1558 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1559 name change: ch -> character.
1560
3a64eef5
GM
15612000-04-20 Gerd Moellmann <gerd@gnu.org>
1562
1563 * keyboard.c (echo_message_buffer): New variable.
1564 (echo_now): Set echo_message_buffer to the echo area buffer used
1565 to display the echo.
1566 (cancel_echoing): Reset echo_message_buffer to nil.
1567 (read_char): Code rewritten that handles canceling an echo or
1568 echoing a dash, respectively.
1569
1570 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1571 directory doesn't exist.
1572
6142fdcb
DL
15732000-04-19 Dave Love <fx@gnu.org>
1574
1575 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1576 (concat): Don't allow numeric args.
1577 (Fconcat): Doc change.
6142fdcb 1578
ac6b5352
SM
15792000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1580
1581 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1582 instead define end_match(1|2) more carefully.
1583 Use GET_CHAR_BEFORE_2 for `begline'.
1584
cb9215e4
GM
15852000-04-19 Gerd Moellmann <gerd@gnu.org>
1586
5e3dac3f
GM
1587 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1588 on 64-bit systems where NULL is defined as `0'.
1589
1590 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1591 the `variable argument list' to make it work on Alpha.
1592
cb9215e4
GM
1593 * m/alpha.h (_LP64) [!_LP64]: Define.
1594 (ORDINARY_LINK): Define for NetBSD.
1595
1596 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1597
f532dca0
DL
15982000-04-19 Dave Love <fx@gnu.org>
1599
c750667e
DL
1600 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1601 change.
1602
1603 * Makefile.in (LIBS): Don't use.
1604 (GETLOADAVG_OBJ): Define again.
1605 (otherobj): Add GETLOADAVG_OBJ.
1606
f532dca0
DL
1607 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1608
1c7e22fd
GM
16092000-04-18 Gerd Moellmann <gerd@gnu.org>
1610
f6d3257b
GM
1611 * lread.c (read_filtered_event): Cancel and start busy cursor.
1612
427ec082 1613 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1614 that the per-character metrics may be null.
1615
e10f64e7
GM
16162000-04-17 Gerd Moellmann <gerd@gnu.org>
1617
0daee095
GM
1618 * buffer.c (clone_per_buffer_values): New function.
1619 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1620 clone_per_buffer_values if CLONE is not nil.
1621
e10f64e7
GM
1622 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1623
38687d43
DL
16242000-04-16 Dave Love <fx@gnu.org>
1625
1626 * Makefile.in: Remove obsolete localcpp stuff.
1627 (GETLOADAVG_OBJ): Don't define.
1628 (obj): Move LIBOBJS...
1629 (otherobj): ... to here.
1630 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1631 whitespace-only lines after the continuation (Irix).
1632
c21c7262
GM
16332000-04-14 Gerd Moellmann <gerd@gnu.org>
1634
1635 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1636
1637 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1638
314767c0
DL
16392000-04-14 Dave Love <fx@gnu.org>
1640
1641 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1642 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1643 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1644 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1645 NLIST_STRUCT.
1646
1647 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1648 autoconfiscated HAVE_GETLOADAVG.
1649
1650 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1651 BROKEN_MKTIME.
1652
a2522dca
GM
16532000-04-14 Gerd Moellmann <gerd@gnu.org>
1654
1655 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1656 (fill_in_lock_file_name): Avoid existing files that aren't
1657 links.
1658
33744b5d
DL
16592000-04-14 Dave Love <fx@gnu.org>
1660
c21c7262 1661 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1662 (INTERVAL_SRC): Convert to make variable.
1663 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1664 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1665 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1666 add LIBOBJS.
1667 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1668 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1669 (shortlisp): Add facemenu, float-sup, frame.
1670 (SOME_MACHINE_LISP): Remove them from here.
1671 (LIBES): Change unused LDLIBS to autoconf LIBS.
1672
1673 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1674
9d3d5916
KH
16752000-04-14 Kenichi Handa <handa@etl.go.jp>
1676
1677 * composite.c (update_compositions): If FROM and TO are not in a
1678 valid range, do nothing.
1679
198e3c7a
GM
16802000-04-13 Gerd Moellmann <gerd@gnu.org>
1681
1682 * tparam.c (tparam1): Abort when encountering an unknown
1683 `%'-specifier.
1684
1685 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1686 terminfo.o.
1687
1688 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1689 as TERMCAP_OBJ.
1690
055a28c9
EZ
16912000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1692
1693 * fileio.c (a_write): Remove redundant semi-colons.
1694 (e_write): Return -1 if failed to write all the data.
1695 This fixes the changes made at 1999-12-15.
1696
f5c75033
DL
16972000-04-12 Dave Love <fx@gnu.org>
1698
1699 * fns.c (mapcar1): Test for null vals to support mapc.
1700 (Fmapc): New function.
1701
0c3cfc51
EZ
17022000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1703
1704 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1705 (IT_frame_up_to_date): Support the buffer local value of
1706 cursor-type, if defined.
1707
33465a31
DL
17082000-04-10 Dave Love <fx@gnu.org>
1709
1710 * editfns.c (preceding-char, following-char): Doc fix.
1711
6ed56568
KR
17122000-04-10 Ken Raeburn <raeburn@gnu.org>
1713
1714 * Makefile.in (temacs): Revert 2000-03-12 change.
1715
7cf80d4e
JR
17162000-04-10 Jason Rumney <jasonr@gnu.org>
1717
1718 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1719
34f3f342
GM
17202000-04-10 Gerd Moellmann <gerd@gnu.org>
1721
1a1b1895
GM
1722 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1723 area buffer, if it's not set up yet.
1724
34f3f342
GM
1725 * indent.c (compute_motion): Set immediate_quit.
1726
be0dbdab
GM
17272000-04-09 Gerd Moellmann <gerd@gnu.org>
1728
c45be9ac
GM
1729 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1730 variable.
1731 (realize_tty_face): Suppress boldness if colors are the inverse of
1732 the default colors, and tty_suppress_bold_inverse_default_colors_p
1733 is set.
1734 (Ftty_suppress_bold_inverse_default_colors): New function.
1735 (syms_of_xfaces): Defsubr it.
1736
be0dbdab
GM
1737 * buffer.c (Frestore_buffer_modified_p): New function.
1738 (syms_of_buffer): Defsubr it.
1739
e8413c3b
KR
17402000-04-08 Ken Raeburn <raeburn@gnu.org>
1741
87f67317
KR
1742 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1743 charset id (int) argument, not a charset (Lisp_Object).
1744
e8413c3b
KR
1745 * coding.h (code_convert_string): Declare.
1746 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1747 object, as the fourth argument to code_convert_string.
1748
1749 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1750 value.
1751 (Fset_fontset_font): Use EQ to compare lisp objects.
1752
7c752c80
KR
17532000-04-05 Ken Raeburn <raeburn@gnu.org>
1754
c0333abc
KR
1755 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1756 a pointer that looks like a lisp object.
1757 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1758 zero, instead see whether it's an integer object, since they can't
1759 have intervals.
1760 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1761
7c752c80
KR
1762 * dispnew.c (allocate_matrices_for_frame_redisplay,
1763 direct_output_forward_char): Use X(U)INT and make_number as needed
1764 to convert between (unsigned) int values and lisp integers.
1765 * keyboard.c (read_key_sequence): Likewise.
1766 * lread.c (substitute_object_recurse): Likewise.
1767 * fns.c (concat, hash_lookup, hash_remove): Likewise.
1768 * minibuf.c (do_completion, Fminibuffer_complete_word,
1769 Fminibuffer_completion_help): Likewise.
1770 * term.c (produce_special_glyphs): Likewise.
1771
1772 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
1773 * print.c (print_preprocess, print_object): Likewise.
1774
1775 * search.c (compile_pattern): Use NILP when checking for nil.
1776
74e49b38
KR
1777 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
1778 __OPTIMIZE__]: Provide a GNU C macro version that handles
1779 lisp-object unions.
1780 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
1781 field, to better cope with ENABLE_CHECKING and calls that modify a
1782 Lisp_Object using its old value.
1783
685e5ed2
GM
17842000-04-04 Gerd Moellmann <gerd@gnu.org>
1785
c407c570
GM
1786 * window.c (compare_window_configurations): Signal an error
1787 if parameters C1 or C2 aren't window configurations.
1788
685e5ed2
GM
1789 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
1790 AFTER_POTENTIAL_GC calls around calls to functions that can
1791 signal an error and thus invoke the debugger.
1792
587a49ab
GM
17932000-04-03 Gerd Moellmann <gerd@gnu.org>
1794
62f20204
GM
1795 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
1796 an error if decoding fails.
1797
587a49ab
GM
1798 * keyboard.c (lispy_mouse_names): Variable removed.
1799 (Vlispy_mouse_stem): New variable.
1800 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
1801 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
1802 for any mouse button number. Increase size of mouse_syms and
1803 button_down_location as needed. Call modify_event_symbol with
1804 different arguments.
1805 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
1806 Call modify_event_symbol with different arguments.
1807 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
1808 for any button number. Call modify_event_symbol with different
1809 arguments.
1810 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
1811 Accept a string for NAME_ALIST_OR_STEM.
1812
1813 * lisp.h (larger_vector): Add prototype.
1814
1815 * fns.c (larger_vector): Make externally visible.
1816
1817 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
1818
2d1675e4
SM
18192000-04-02 Stefan Monnier <monnier@cs.yale.edu>
1820
1821 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
1822 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
1823 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
1824 we are between str1 and str2.
1825 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
1826 (PATFETCH): Use `TRANSLATE'.
1827 (PATFETCH_RAW): Fetch multibyte char if applicable.
1828 (PATUNFETCH): Remove.
1829 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
1830 When writing a char, write it directly into the pattern buffer rather
1831 than going needlessly through a temp char-array.
1832 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
1833 multibyte magic and remove the useless `#ifdef emacs'.
1834 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
1835 buffer.
1836
1837 * regex.h (struct re_pattern_buffer): Make field `multibyte'
1838 conditional on `emacs'.
1839
1840 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
1841
cc2d8c6b
KR
18422000-04-01 Ken Raeburn <raeburn@gnu.org>
1843
1844 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
1845 non-union-type versions of XMARK and friends here, because XMARK
1846 and friends won't work on an integer field if NO_UNION_TYPE is not
1847 defined.
1848 (make_number): Define as a function if it's not defined as a
1849 macro.
1850
09654086
KR
1851 * composite.c (run_composite_function): Use NILP when checking for
1852 nil.
1853 (syms_of_composite): Delete local var NARGS, pass an int as first
1854 argument to Fmake_hash_table.
1855
2387b382
KR
1856 * editfns.c (text_property_stickiness): Use NILP to test
1857 Lisp_Object boolean value.
1858 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
1859 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
1860 problems reading from and changing the same lisp value in an
1861 XSETSTRING call.
1862
27660e89
GM
18632000-04-01 Gerd Moellmann <gerd@gnu.org>
1864
1865 * term.c (TN_no_color_video): New variable.
1866 (term_init): Intitialize TN_no_color_video.
1867 (enum no_color_bit): New enumeration.
1868 (MAY_USE_WITH_COLORS_P): New macro.
1869 (turn_on_face): Use it to determine if attributes may be used
1870 combined with colors.
1871
3578db3c
KR
18722000-04-01 Ken Raeburn <raeburn@gnu.org>
1873
1874 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
1875 with int lvalues via casts; instead, just yield lisp object
1876 lvalues.
1877 (enlarge_window): Variable sizep now points to Lisp_Object. Use
1878 proper accessor macros.
1879 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
1880 (grow_mini_window): Fix typo getting int value of root->height.
1881
6fc556fd
KR
1882 * xdisp.c (compute_string_pos): Fix order of arguments to
1883 string_pos_nchars_ahead.
1884 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
1885 count arg to variable-arg routines like Frun_hook_with_args and
1886 Fformat.
587a49ab
GM
1887 (back_to_previous_visible_line_start)
1888 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
1889 fixed-arg routines like Fget_char_property and Fmake_string.
1890 (reconsider_clip_changes): Use XINT when comparing integer lisp
1891 objects, or passing them as int arguments.
587a49ab
GM
1892 (mark_window_display_accurate, insert_left_trunc_glyphs)
1893 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
1894 storing or passing integer values as lisp objects.
1895 (set_cursor_from_row, highlight_trailing_whitespace): Use
1896 INTEGERP, not implicit test against zero, for glyph object.
1897 (try_window_id): Don't use make_number when we want an int value.
1898
1899 * xfaces.c (xlfd_symbolic_value): Make last argument a
1900 Lisp_Object, to be consistent with callers.
1901 (Fbitmap_spec_p): Use XINT to get numeric value of height.
1902 (lface_hash): Apply XFASTINT to lisp values before folding in.
1903
1904 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
1905 fill in window width and height. Pass an int, not a lisp object,
1906 as first arg to Finsert.
1907
6e7b2457
GM
19082000-04-01 Gerd Moellmann <gerd@gnu.org>
1909
610d841e
GM
1910 * xfaces.c (realize_basic_faces): Block input while realizing
1911 the faces.
1912
6e7b2457
GM
1913 * keyboard.c (lispy_mouse_names): Add additional mouse names.
1914
1915 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
1916
aa110c0c
GM
19172000-03-31 Gerd Moellmann <gerd@gnu.org>
1918
1919 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 1920 or ASCII, handle case that per-char metric is null.
aa110c0c 1921
8801a864
KR
19222000-03-30 Ken Raeburn <raeburn@gnu.org>
1923
c6129d7e
KR
1924 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
1925
8801a864
KR
1926 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
1927 XSUBR, XBUFFER): Verify correct object type before returning
1928 pointer, using eassert.
1929 * frame.h (XFRAME): Likewise.
1930
1931 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
1932 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
1933 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
1934 type.
1935 * data.c (set_internal): Likewise.
1936 * dispextern.h (WINDOW_WANTS_MODELINE_P,
1937 WINDOW_WANTS_HEADER_LINE_P): Likewise.
1938 * fileio.c (auto_save_1): Likewise.
1939 * insdel.c (check_markers): Likewise.
1940 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
1941 * undo.c (record_insert): Likewise.
1942 * vmsproc.c (child_sig): Likewise.
1943 * window.c (unshow_buffer, window_loop): Likewise.
1944 * xterm.c (x_erase_phys_cursor): Likewise.
1945
8e7af858
GM
19462000-03-30 Gerd Moellmann <gerd@gnu.org>
1947
1948 * xfns.c (free_image_cache): Free the cache structure itself
1949 last, after all its members have been freed.
1950
1951 * lisp.h (xstrdup): Add prototype.
1952
1953 * alloc.c (xstrdup): Moved here from xfaces.c.
1954 (allocating_for_lisp): Variable removed.
1955 (lisp_malloc): Block input around the calls to malloc and
1956 mem_insert.
1957
1958 * xfaces.c (realize_tty_face): Use find_symbol_value instead
1959 of Fsymbol_value.
1960 (xstrdup): Moved to alloc.c.
1961
e0b8c689
KR
19622000-03-29 Ken Raeburn <raeburn@gnu.org>
1963
b96f9fb7
KR
1964 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
1965
1966 * emacs.c (main): Fix sense of no-loadup test.
1967
e0b8c689
KR
1968 * config.in (ENABLE_CHECKING): Undef.
1969
1970 * lisp.h (struct interval): Replace "parent" field with a union of
1971 interval pointer and Lisp_Object; add new bitfield to use as
1972 discriminant. Change other flag fields to bitfields.
1973 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
1974 is defined and the supplied test fails, print a message and
1975 abort.
1976 (eassert): New macro. Use CHECK to provide an assert-like
1977 facility.
1978
1979 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
1980 pointers; abort if the value looks like a lisp object.
1981 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
1982 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
1983 Modify for new interval parent definition.
1984
1985 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
1986 UNMARK_BALANCE_INTERVALS): Update references that need an
1987 addressable lisp object in the interval structure.
1988 (die): New function.
1989 (suppress_checking): New variable.
1990
1991 * intervals.c (interval_start_pos): Just return 0 if there's no
1992 parent object.
1993
f83c5440
GM
19942000-03-29 Gerd Moellmann <gerd@gnu.org>
1995
1996 * lread.c (read1): Accept `.' (period) as symbol start like in CL
1997 and earlier Emacs versions.
1998
1999 * keyboard.c (Ftop_level): Cancel busy-cursor.
2000
2001 * eval.c (call_debugger): Cancel busy-cursor.
2002
fdce64ff
KH
20032000-03-29 Kenichi Handa <handa@etl.go.jp>
2004
2005 * search.c (Freplace_match): Adjust multibyteness of the current
2006 buffer and NEWTEXT. Free allocated memory before signaling an
2007 error.
2008
f6a3f532
SM
20092000-03-28 Stefan Monnier <monnier@cs.yale.edu>
2010
2011 * regex.c (analyse_first): New function obtained by ripping out most
2012 of re_compile_fastmap and generalizing it a little bit so that it
2013 can also just return whether a given (sub)pattern can match the empty
2014 string or not.
2015 (regex_compile): Use `analyse_first' to decide whether the loop-check
2016 needs to be done or not for *, +, *? and +? (the loop check is costly
2017 for non-greedy repetition).
2018 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
2019
e9b309ac
DL
20202000-03-28 Dave Love <fx@gnu.org>
2021
bb15bd9a
DL
2022 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
2023 alpha.
2024
e9b309ac
DL
2025 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
2026
ed0767d8
SM
20272000-03-27 Stefan Monnier <monnier@cs.yale.edu>
2028
2029 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
2030 an expression.
2031 (enum re_opcode_t): Update description of succeed_n.
2032 (PATFETCH): Always define.
2033 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
2034 operators, char classes, shy-groups and intervals).
2035 Optimize special cases of intervals so as to only use succeed_n and
2036 jump_n when really needed.
2037 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2038 that we don't have to handle the special cases any more.
2039 Simplify on_failure_jump handling as well.
2040
e11e7e46
JR
20412000-03-28 Jason Rumney <jasonr@gnu.org>
2042
2043 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2044
88faab89
GM
20452000-03-27 Gerd Moellmann <gerd@gnu.org>
2046
182ff242
GM
2047 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2048
2049 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2050
182ff242
GM
2051 * alloc.c (mark_maybe_object): New function.
2052 (mark_memory): Use it.
2053 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2054 (setjmp_tested_p, longjmp_done): New variables.
2055 (test_setjmp): New function.
2056 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2057 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2058
c1005d06
GM
2059 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2060 to DEC_TEXT_POS and INC_TEXT_POS.
2061
2062 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2063 with parameter MULTIBYTE_P.
2064
427ec082 2065 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2066 MULTIBYTE_P.
2067
7439e5b9 2068 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2069 buffers because it looks for multibyte character byte sequences
2070 which don't exist in unibyte text.
7439e5b9 2071
d9c545da
GM
2072 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2073
11fd416e 2074 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2075 [DEBUG_X_COLORS]: New functions.
2076 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2077
2078 * xfns.c (x_set_cursor_color): Get color reference counts right.
2079
2080 * xterm.c (x_copy_color): New function.
2081 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2082
2083 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2084 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2085 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2086 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2087 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2088 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2089 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2090 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2091 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2092 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2093
11fd416e
GM
2094 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2095 names for handling per-buffer variables.
d9c545da
GM
2096
2097 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2098 instead of MAX_BUFFER_LOCAL_VARS.
2099 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2100
2101 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2102
88faab89
GM
2103 * xfns.c (x_specified_cursor_type): New function.
2104 (x_set_cursor_type): Use it.
2105
2106 * buffer.h (struct buffer): Add cursor_type.
2107
d80f42b7
SM
21082000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2109
2110 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2111 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2112 opcode.
d80f42b7
SM
2113 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2114 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2115 executing it as well as when popping it off the stack to find infinite
2116 loops in non-greedy repetition operators.
2117
89e80928
GM
21182000-03-26 Gerd Moellmann <gerd@gnu.org>
2119
3d4ff2dd
GM
2120 * doc.c (Qfunction_documentation): New variable.
2121 (syms_of_doc): Initialize Qfunction_documentation.
2122 (Fdocumentation): If FUNCTION is a symbol with non-nil
2123 `function-documentation' property, return a documentation derived
2124 from that.
2125
bd96bd79
GM
2126 * buffer.c (syms_of_buffer): Add default-cursor-type.
2127 (init_buffer_once): Don't let cursor_type have a local value
2128 in every buffer.
2129
19d1bc27
GM
2130 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2131 on buffer-local value of cursor_type.
2132 (x_draw_bar_cursor): Add parameter WIDTH.
2133
2134 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2135 (init_buffer_once): Set default cursor_type value to t.
2136 Mark cursor_type as local everywhere.
2137 (syms_of_buffer): New per-buffer variable cursor-type.
2138
89e80928
GM
2139 * buffer.h (struct buffer): Remove member local_var_flags,
2140 add local_flags.
2141 (MAX_BUFFER_LOCAL_VARS): New macro.
2142 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2143 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2144 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2145 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2146
2147 * print.c (print_object): Use new macros for per-buffer
2148 variables.
2149
2150 * category.c (Fset_category_table): Use new macros for per-buffer
2151 variables.
2152
2153 * buffer.c (buffer_permanent_local_flags): Make a char array.
2154 (max_buffer_local_idx): New variable.
2155 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2156 for new handling of per-buffer variables.
2157 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2158 (init_buffer_once): Initialize per-buffer vars differently.
2159 Set max_buffer_local_idx.
2160
2161 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2162 variables.
2163
2164 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2165 variables.
2166
2167 * data.c (do_symval_forwarding, store_symval_forwarding)
2168 (find_symbol_value, set_internal, default_value, Fset_default)
2169 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2170 per-buffer variables.
2171
2172 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2173
9a0dd3dc
GM
21742000-03-24 Gerd Moellmann <gerd@gnu.org>
2175
b68c375f
GM
2176 * xterm.c (x_term_init): Unblock input around call1 of
2177 Qvendor_specific_keysyms.
2178
9a0dd3dc
GM
2179 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2180 (find_defun_start): Consider an open parenthesis in column 0
2181 a defun start only if open_paren_in_column_0_is_defun_start is set.
2182 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2183
7973e637
SM
21842000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2185
2186 * eval.c (Fautoload): Add entry in load-history (if after dump).
2187 * lread.c (load-history): Update docstring.
2188
39210e90
GM
21892000-03-24 Gerd Moellmann <gerd@gnu.org>
2190
2191 * indent.c (Fvertical_motion): Always use the current buffer.
2192 Temporarily change the window's buffer, if necessary.
2193
72db3ab5
GM
21942000-03-23 Gerd Moellmann <gerd@gnu.org>
2195
2196 * xterm.c (fast_find_position): Make sure not to consider rows
2197 not visible in the window.
2198
990b2375
SM
21992000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2200
2201 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2202 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2203
ff4df011
JR
22042000-03-22 Jason Rumney <jasonr@gnu.org>
2205
2206 * w32menu.c (single_submenu): Set help string to NULL if none.
2207 (w32_menu_show): Set help string correctly.
2208 (add-menu-item): Set help string in MIIM_DATA for menu item.
2209 Load SetMenuItemInfoA explicitly.
2210 (w32_menu_display_help): New function.
427ec082 2211
ff4df011
JR
2212 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2213 (QCdata): Moved to xdisp.c.
2214
2215 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2216 (Vw32_charset_to_codepage_alist): Removed.
2217 (Vw32_charset_info_alist): New variable.
2218 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2219 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2220 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2221 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2222 with TODO comment.
2223 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2224 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2225 Define Vw32_charset_info_alist and w32_charset symbols.
2226
22272000-03-22 Jason Rumney <jasonr@gnu.org>
2228
2229 * makefile.nt (w32bdf.obj): Update dependencies.
2230
2231 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2232
2233 * w32fns.c: Include fontset.h after dispextern.h.
2234 (Fx_create_frame): Do not create fontset.
2235 (w32_load_system_font): Doc fix.
2236 (Fx_close_connection): Free full_name if it is not shared.
2237
2238 * w32term.c: Include fontset.h after dispextern.h.
2239 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2240 updated.
2241 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2242 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2243 (w32_font_is_double_byte): New function, needs body.
2244 (x_append_glyph): Set glyph->glyph_not_available_p.
2245 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2246 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2247 character, convert it to a unibyte character.
2248 (struct glyph_string): Delete member `charset'.
2249 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2250 calculating it is found.
2251 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2252 the case that per char metric is not available correctly.
2253 (x_fill_glyph_string): Handle the case that the specific glyph is
2254 not available correctly.
2255 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2256 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2257 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2258 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2259 fontset. Don't call FS_LOAD_FONT.
2260
439d5cb4
KR
22612000-03-22 Ken Raeburn <raeburn@gnu.org>
2262
2263 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2264 (INT_LISPLIKE): New macro.
2265 (NULL_INTERVAL_P): Use it.
2266 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2267 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2268 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2269
2270 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2271 explicit references to "parent" field of struct interval and
2272 associated unclean type conversions.
2273 * intervals.c (create_root_interval, root_interval, rotate_right,
2274 rotate_left, balance_possible_root_interval, split_interval_right,
2275 split_interval_left, interval_start_pos, find_interval,
2276 next_interval, previous_interval, update_interval,
2277 adjust_intervals_for_insertion, delete_node, delete_interval,
2278 adjust_intervals_for_deletion, merge_interval_right,
2279 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2280 copy_intervals_to_string): Likewise.
2281 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2282 Likewise.
2283 * syntax.c (update_syntax_table): Likewise.
2284
2285 * intervals.c (reproduce_tree_obj): New function, like
2286 reproduce_tree but takes a Lisp_Object for the parent. Declare
2287 with prototype.
2288 (graft_intervals_into_buffer): Use it when appropriate.
2289 (reproduce_tree): Declare with prototype.
2290 (balance_possible_root_interval): Check that the parent is a lisp
2291 object before trying to examine its type.
2292
ee1c5b21
GM
22932000-03-22 Gerd Moellmann <gerd@gnu.org>
2294
2295 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2296 as strings only if both are known to be strings.
2297
2298 * s/openbsd.h (LIBS_TERMCAP): Undef.
2299
1fb352e0
SM
23002000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2301
2302 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2303 definitions for non-Emacs compilation.
2304 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2305 outside of `#ifdef emacs'.
2306 (print_partial_compiled_pattern): Update.
2307 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2308 (re_compile_fastmap): Merge handling of charset and charset_not (for
2309 emacs and non-emacs compilation as well).
2310 Similarly for (not)categoryspec and (not)syntaxspec.
2311 Don't use the fastmap when reaching `anychar' since the added
2312 complexity is not justified.
2313 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2314 and (not)syntaxspec. Merge (not)categoryspec.
2315
fdaa1f77
KH
23162000-03-22 Kenichi Handa <handa@etl.go.jp>
2317
ff1a0d8e
KH
2318 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2319 FACE_FOR_CHAR): Define them differently for the configuration of
2320 --without-x.
fdaa1f77 2321
d152fb46
DL
23222000-03-21 Dave Love <fx@gnu.org>
2323
2324 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2325 doc string.
2326
d2cafc8c
GM
23272000-03-21 Gerd Moellmann <gerd@gnu.org>
2328
2329 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2330 (lface_fully_specified_p): Don't check contents of
2331 LFACE_FONT_INDEX because that attribute is optional.
2332 (realize_x_face): Remove now unwarranted xassert.
2333
9111d4b5
KH
23342000-03-21 Kenichi HANDA <handa@etl.go.jp>
2335
2336 The following changes are to make font selection based on
2337 characters, not charset. In addition, they recover fontset
2338 facilities while utilizing the new font selection mechanism.
2339
6c4bfdc0
KH
2340 * Makefile.in (fontset.o): Depend on dispextern.h.
2341
2342 * alloc.c (mark_face_cache): Don't mark face->registry.
2343
9111d4b5
KH
2344 * dispextern.h (struct glyph): New member glyph_not_available_p.
2345 Use 22 bits for face_id.
2346 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2347 (struct face): Delete member registry, new member ascii_face.
2348 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2349 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2350 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2351 (struct it): Delete member charset, new member
2352 glyph_not_available_p.
2353
2354 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2355 (struct fontset_info, struct fontset_data): Structs removed.
2356 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2357 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2358 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2359 (fs_free_face_fontset, fontset_font_pattern,
2360 face_suitable_for_char_p, face_for_char,
2361 make_fontset_for_ascii_face): Extern them.
2362 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2363 (FS_LOAD_FACE_FONT): New macro.
2364
2365 * fontset.c: All codes rewritten or adjusted for the change of
2366 fontset implementation. Now fontset is represented by char table.
2367 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2368 removed.
2369 (my_strcasecmp): Function removed.
2370 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2371 variables.
2372 (AREF, ASIZE): New macros.
2373 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2374 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2375 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2376 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2377 fontset_id_valid_p, font_family_registry, fontset_name,
2378 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2379 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2380 New functions.
2381 (fs_load_font): New arg FACE. Caller changed.
2382 (fs_query_fontset): Argument changed. Caller changed.
2383 (Fquery_fontset): call fs_query_fontset.
2384 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2385 Functions removed.
2386 (clear_fontset_elements, check_registry_encoding,
2387 check_fontset_name): New functions.
2388 (syms_of_fontset): Set char-table-extra-slots property of fontset
2389 to 3. Staticpro and initialize Vfontset_table and
2390 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2391
2392 * frame.h (struct frame): Member `fontset_data' removed.
2393 (FRAME_FONTSET_DATA): Macro removed.
2394
2395 * frame.c (make_frame): Don't allocate f->fontset_data.
2396 (Fdelete_frame): Don't free f->fontset_data.
2397
6c4bfdc0
KH
2398 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2399
9111d4b5
KH
2400 * xdisp.c (charset_at_position): Function removed.
2401 (init_iterator): Don't set member charset of struct `it'.
2402 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2403 next_element_from_display_vector, insert_left_trunc_glyphs):
2404 Likewise.
2405 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2406 FACE_FOR_CHARSET.
2407 (get_next_display_element, append_space,
2408 extend_face_to_end_of_line): Likewise.
2409
2410 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2411 Variables removed.
2412 (clear_font_table, frame_update_line_height, load_face_font):
2413 Adjusted for the change of fontset implementation.
2414 (load_face_fontset_font): Function removed.
2415 (pixel_point_size): New function.
2416 (font_list): Argument type changed. Caller changed.
2417 (LFACE_FONT): New macro.
2418 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2419 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2420 Lisp_Object. Determine the font name by actually loading a font
2421 by the specified pattern. Set LFACE_FONT (lface) to the specified
2422 pattern. Even if a font is not found, don't try alternatives.
2423 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2424 (set_font_frame_param): If `font' is specified in lface, use it.
2425 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2426 (lface_same_font_attributes_p): Likewise.
2427 (make_realized_face): Arguent changed. Caller changed. Set
2428 face->ascii_face to face itself.
2429 (free_realized_face): Free face->fontset if face is for ASCII.
2430 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2431 deduce_unibyte_registry, x_charset_registry): Functions removed.
2432 (free_realized_multibyte_face): New function.
2433 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2434 changed. Caller changed.
2435 (try_font_list): Argument type changed.
2436 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2437 (choose_face_font): Argument changed. Handle fontset properly.
2438 (choose_face_fontset_font): Function removed.
2439 (realize_default_face, realize_named_face): Don't remove the
2440 former face here.
2441 (realize_face): Argument changed. Caller changed. Remove face
2442 with the arg former_face_id in advance. Load font for the new
2443 face.
2444 (realize_x_face): Argument changed. Caller changed. For a
2445 multibyte character, share fontset with base_face. For a single
2446 byte character, make a new realized fontset. Don't load a font
2447 here.
2448 (realize_tty_face): Argument changed. Caller changed.
2449 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2450 (face_at_buffer_position): Don't check multibyte_p for returning
2451 DEFAULT_FACE_ID.
2452 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2453 FACE_SUITABLE_FOR_CHARSET_P.
2454 (syms_of_xfaces): Remove code for Qx_charset_registry and
2455 Vface_default_registry.
2456
6c4bfdc0
KH
2457 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2458 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2459 (x_per_char_metric): Don't try FONT->default_char. Even if
2460 pcm->width is zero, glyph bits may exist.
2461 (x_encode_char): Always initialize char2b->byte1.
2462 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2463 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2464 changed.
2465 (x_append_glyph): Set glyph->glyph_not_available_p.
2466 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2467 it->charset. Handle the case that per char metric is not
2468 available. If it->multibyte_p is zero and it->c is a multibyte
2469 character, convert it to a unibyte character.
2470 (struct glyph_string): Delete member `charset'.
2471 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2472 the case that per char metric is not available correctly.
2473 (x_fill_glyph_string): Handle the case that the specific glyph is
2474 not available correctly.
2475 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2476 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2477 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2478 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2479 fontset. Don't call FS_LOAD_FONT.
2480
2481 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2482 (x_create_tip_frame): Likewise.
2483 (Fx_close_connection): Free full_name of font_info.
2484
2485 * fns.c (optimize_sub_char_table): New function.
2486 (Foptimize_char_table): New function.
2487 (syms_of_fns): Defsubr Soptimize_char_table.
2488
b33dd3b0
GM
24892000-03-20 Gerd Moellmann <gerd@gnu.org>
2490
2491 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2492 only if buffer is displayed in some window.
2493
2494 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2495 (try_window_reusing_current_matrix): Don't call scroll run
2496 function if run's current and desired position are the same;
2497 this prevents cursor flickering.
2498
4e8a9132
SM
24992000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2500
2501 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2502
2503 * regex.c (RE_STRING_CHAR): New macro.
2504 (GET_CHAR_AFER_2): Remove.
2505 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2506 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2507 (print_partial_compiled_pattern, re_compile_fastmap)
2508 (re_match_2_internal): Remove on_failure_jump_exclusive.
2509 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2510 optimization only need to work for * (ie. can use of_keep_string_jump).
2511 Remove the special case for .*\n since it is now covered by the general
2512 optimization.
2513 (re_search_2): Don't bother with `room'.
2514 (skip_one_char): New function.
2515 (skip_noops): Simplify since `memory' is not needed any more.
2516 (mutually_exclusive_p): Restructure slightly to use `switch' and
2517 add handling for "all" remaining cases.
2518 (re_match_2_internal): Change on_failure_jump_smart to use
2519 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2520 rather than on_failure_jump_exclusive.
2521
2136fdd4
GM
25222000-03-19 Gerd Moellmann <gerd@gnu.org>
2523
2524 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2525 number of bits per RGB because it's everywhere used as the depth
2526 of the visual.
2527
2528 * term.c (calculate_costs): Remove code dealing with X frames.
2529
e53ae11c
RS
25302000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2531
2532 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2533
d7b511c4
GM
25342000-03-18 Gerd Moellmann <gerd@gnu.org>
2535
2536 * lread.c (read_integer): Unread the last char not consumed.
2537
16b5d424
GM
25382000-03-17 Gerd Moellmann <gerd@gnu.org>
2539
2540 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2541 which are in the process of being deleted.
16b5d424 2542
1fa28578
GM
25432000-03-16 Gerd Moellmann <gerd@gnu.org>
2544
83488cce
GM
2545 * Makefile.in (mostlyclean): Add `*.core'.
2546 (clean): Add `bootstrap-emacs'.
2547
1fa28578
GM
2548 * lread.c (read_integer): New function.
2549 (read1): Support read syntax #o, #x, #b, #r.
2550
99633e97
SM
25512000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2552
1fa28578
GM
2553 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2554 make sure POINTER_TO_OFFSET gives the same value before and after
2555 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2556 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2557 (debug): Now only active if > 0 rather than if != 0.
2558 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2559 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2560 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2561 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2562 (store_op1, store_op2, insert_op1, insert_op2)
2563 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2564 (group_in_compile_stack): Move to after its arg's types are
2565 declared and add a prototype.
99633e97 2566 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2567 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2568 wrapper.
99633e97 2569 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2570 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2571 indentation of the greedy-op and shy-group code.
99633e97
SM
2572 (at_(beg|end)line_loc_p): Fix argument's types.
2573 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2574 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2575 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2576 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2577 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2578 QUIT unconditionally.
99633e97 2579
699238d9
GM
25802000-03-15 Gerd Moellmann <gerd@gnu.org>
2581
2582 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2583 a sole completion.
2584
2585 * process.c (send_process): Add a hint that the function
2586 can call Lisp code to its comment.
2587
2588 * lread.c (load_dangerous_libraries): New variable.
2589 (Vbytecomp_version_regexp): New variable.
2590 (safe_to_load_p): New function.
2591 (Fload): Handle files not compiled with Emacs specially.
2592 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2593
34e23e5a
GM
25942000-03-14 Gerd Moellmann <gerd@gnu.org>
2595
9c763cca
GM
2596 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2597
2598 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2599 support functions only if HAVE_X11R6_XIM is defined.
2600 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2601
2602 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2603
2604 * xfns.c (X_I18N_INHIBITED): Don't define.
2605 (create_frame_xic): Remove conditional compilation on
2606 X_I18N_INHIBITED.
2607 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2608
2609 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2610 (HAVE_X11R6_XIM): Define.
2611
2612 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2613
34e23e5a
GM
2614 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2615 If set, call XSynchronize.
2616
66f0296e
SM
26172000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2618
34e23e5a
GM
2619 * regex.c: Declare a new type `re_char' used throughout the code
2620 for the string char type. It's `const unsigned char' to match the
2621 rest of Emacs. Consistently make sure all pointers to strings use
2622 it and make sure all pointers into the pattern use `unsigned
2623 char'.
66f0296e 2624 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2625 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2626 code duplication.
66f0296e
SM
2627
2628 * charset.h (GET_CHAR_AFTER_2): Remove.
2629 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2630
854a025c
KR
26312000-03-12 Ken Raeburn <raeburn@gnu.org>
2632
2633 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2634 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2635 of them try to use backquotes.
2636
b9d2c7e2
DL
26372000-03-12 Dave Love <fx@gnu.org>
2638
2639 * unexelf.c: Restore changes of 1999-10-19.
2640 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2641 fix its type and alignment; copy it from current process.
2642
5e5dff44
GM
26432000-03-12 Gerd Moellmann <gerd@gnu.org>
2644
9b2f3c38
GM
2645 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2646 has been found. Fix bug not computing timer's predecessor.
2647
427ec082 2648 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
2649 file name.
2650
e1cff360
GM
2651 * window.c (Fsave_window_excursion): Doc fix.
2652
5e5dff44
GM
2653 * xfns.c (x_defined_color): Rewritten to use
2654 x_allocate_nearest_color.
2655
e411ce4b
EZ
26562000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2657
2658 * msdos.c (vga_installed): New function, code moved from
2659 dos_set_window_size.
2660 (Qbar, Qcursor_type, outside_cursor): New variables.
2661 (syms_of_msdos): Intern and staticpro them.
2662 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2663 shape used outside Emacs when called for the first time.
2664 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2665 cursor shape used outside Emacs.
2666 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2667 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2668 type has changed.
2669 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2670 parameters specify the cursor. Make qreverse a global
2671 variable (renamed to Qreverse).
2672
80460654
GM
26732000-03-09 Gerd Moellmann <gerd@gnu.org>
2674
2675 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2676
95cd4c40
SM
26772000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2678
2679 This is a big redesign of failure-stack and register handling, prompted
2680 by bugs revealed when trying to add shy-groups. Overall, what happened
2681 is that loops are now structured a little differently, groups can be
2682 shy and the code is a little simpler.
2683
2684 * regex.h: Update the copyright.
2685 (RE_SHY_GROUPS): New value.
2686 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2687 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2688
80460654
GM
2689 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2690 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2691 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2692 for (start|stop)_memory since they now only take one argument (the
2693 second has becomes unnecessary).
2694 (print_partial_compiled_pattern): Adjust for changes in
2695 re_opcode_t.
2696 (print_compiled_pattern): Use %ld to printf long ints and flush to
2697 make debugging a little easier.
95cd4c40
SM
2698 (union fail_stack_elt): Make the integer unsigned.
2699 (struct fail_stack_type): Add a `frame' element.
2700 (INIT_FAIL_STACK): Init `frame' as well.
2701 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2702 (DEBUG_PUSH, DEBUG_POP): Remove.
2703 (NUM_REG_ITEMS): Remove.
2704 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2705 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2706 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2707 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2708 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2709 macros.
2710 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2711 address pushed is not the destination of the jump but the source
2712 of it instead.
95cd4c40
SM
2713 (NUM_FAILURE_ITEMS): Remove.
2714 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2715 registers before the actual failure point). Don't hardcode any
2716 meaning for str==NULL anymore.
95cd4c40 2717 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2718 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2719 Remove.
95cd4c40
SM
2720 (REG_UNSET_VALUE): Use NULL (why not?).
2721 (compile_range): Remove declaration since it doesn't exist.
2722 (struct compile_stack_elt_t): Remove inner_group_offset.
2723 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2724 (regex_grow_registers): Remove dead code.
2725 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2726 (regex_compile): Add shy-groups Change loops to use
2727 on_failure_jump_smart&jump instead of
2728 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2729 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2730 variable to me). Use `jump' instead of `jump_past_alt' and don't
2731 bother with push_dummy_failure in alternatives since it is now
2732 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2733 emacs' for (re)allocating the stack.
2734 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2735 from loop when bufp->can_be_null rather than jumping to `done'.
2736 Avoid jumping backwards so as to ensure termination. Use
2737 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2738 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2739 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2740 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2741 improve mutually_exclusive_p to handle ".+\n".
2742 (lowest_active_reg, highest_active_reg,
2743 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2744 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2745 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2746 variables. Push register (in `start_memory') on the stack rather
2747 than storing it in old_reg(start|end). Remove the cycle detection
2748 from `stop_memory', replaced by the use of on_failure_jump_loop
2749 for greedy loops. Add code for the new on_failure_jump_<foo>.
2750 Remove ad-hoc code in `on_failure_jump' to push more registers in
2751 the case of a loop. Take out code from `maybe_pop_jump' into
2752 separate functions and adapt it to the semantics of
2753 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2754 and push_dummy_failure. Remove dummy_failure handling and
2755 handling of `failures to jump to on_failure_jump' (this last one
2756 was already dead code, it seems).
2757 (group_match_null_string_p, alt_match_null_string_p)
2758 (common_op_match_null_string_p): Remove.
95cd4c40 2759
7397acc4
DL
27602000-03-08 Dave Love <fx@gnu.org>
2761
2762 * config.in: Don't depend on __STDC__ for volatile.
2763 Add POINTER_TYPE, PTR, PROTOTYPES.
2764
2765 * hftctl.c, strftime.c: Use PROTOTYPES.
2766 * eval.c (find_handler_clause): Likewise.
2767
2768 * mem-limits.h: Use POINTER_TYPE.
2769
2770 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
2771 (memory_warnings): Declare using POINTER_TYPE.
2772
5e91ff9e
GM
27732000-03-08 Gerd Moellmann <gerd@gnu.org>
2774
feab4fba
GM
2775 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
2776
25edb08f
GM
2777 * xdisp.c (display_echo_area): Temporarily inhibit garbage
2778 collection.
2779
5e91ff9e
GM
2780 * xfns.c: Remove obsolete code in #if 0.
2781 (Fx_focus_frame): New function.
2782
a735b7e1
KH
27832000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2784
2785 * coding.c (coding_category_name): Add coding-category-utf-8,
2786 coding-category-utf-16-be, coding-category-utf-16-le.
2787 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
2788 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
2789 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
2790 (detect_coding_utf_8): New function.
2791 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
2792 UTF_16_LOW_SURROGATE_P): New macros.
2793 (detect_coding_utf_16): New function
2794 (detect_coding_mask): When priorities are specified, skip any
2795 categories that have `nil' coding-system. Fix bug of returning
2796 wrong mask when PRIORITIES is specified and detect_coding_XXX()
2797 returns a mask not set in PRIORITIES.
2798 (detect_eol_type_in_2_octet_form): New function.
2799 (detect_eol): selects detect_eol_type_XXX to call according to
2800 cooding->category_idx.
2801 (detect_coding_system): Remove `nil' coding-system in the result.
2802 (Fupdate_coding_systems_internal): Update all coding-categories.
2803
2804 * coding.h (CODING_CATEGORY_IDX_UTF_8,
2805 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
2806 macros.
2807 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
2808 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
2809 CODING_CATEGORY_IDX_UTF_16_LE.
2810 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
2811 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
2812 (CODING_CATEGORY_MASK_ANY): Include the above macros.
2813 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
2814
9994cc69
GM
28152000-03-07 Gerd Moellmann <gerd@gnu.org>
2816
e9b4e5ff
GM
2817 * doc.c (Fdocumentation_property): If value is not a string,
2818 and doesn't refer to etc/DOC, evaluate it to obtain a string.
2819
f7daf1e1
GM
2820 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
2821 close the display with XtCloseDisplay. This caused a bus error
2822 on OpenWindows.
2823
9994cc69
GM
2824 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
2825 complete but not unique.
2826
4336c705
GM
28272000-03-06 Gerd Moellmann <gerd@gnu.org>
2828
18bb0684
GM
2829 * process.c (send_process): Remove local variable `procname' that
2830 might become invalid when a GC happens. Instead, access the
2831 process name slot directly.
2832
4336c705
GM
2833 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
2834 orig_height if set.
2835
2836 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
2837 orig_height if set.
2838
515d0d0e
EZ
28392000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2840
2841 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
2842 glyph matrices have been freed.
2843
100b3cbb
GM
28442000-03-05 Gerd Moellmann <gerd@gnu.org>
2845
50df5e5a 2846 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 2847 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
2848
2849 * xfns.c (QCdata): Moved to xdisp.c.
2850
2851 * xdisp.c (QCdata): Moved here from xfns.c.
2852 (syms_of_xdisp): Initialize QCdata.
2853
2854 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
2855
2856 * window.c (coordinates_in_window): Use
2857 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
2858 FRAME_INTERNAL_BORDER_WIDTH.
2859
100b3cbb 2860 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 2861 it is obviously invalid.
100b3cbb
GM
2862
2863 * xterm.c (x_term_init): Create a colormap if not using the
2864 default visual.
2865
2866 * xterm.h (select_visual): Change prototype.
2867
2868 * xfns.c (select_visual): Rewritten. Recognize user-specified
2869 visual classes.
2870 (visual_classes): New variable.
2871
64d739c4
GM
28722000-03-04 Gerd Moellmann <gerd@gnu.org>
2873
2874 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
2875 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
2876 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
2877 (x_decode_color): Don't handle allocation of white and black
2878 specially.
2879 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
2880 XtNcolormap resources.
2881 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
2882 (Fx_create_frame): Initialize color members of x_output structure.
2883 (xpm_load): Pass colormap to XPM lib.
2884
2885 * xfaces.c (x_free_colors): Access colormap of frame using
2886 FRAME_X_COLORMAP. Be paranoid about freeing black and white
2887 when default colormap is used.
2888
2889 * xterm.c (x_term_init): Set Colormap member of x_display_info
2890 structure. Copy colormap if resource `privateColormap' is
2891 specified (PseudoColor only).
2892 (x_setup_relief_color): Access colormap of frame using
2893 FRAME_X_COLORMAP.
2894
2895 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
2896 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
2897
c3cee013
JR
28982000-03-04 Jason Rumney <jasonr@gnu.org>
2899
2900 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
2901 other non-platform-specific equivalents.
64d739c4 2902 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
2903 specific functions and macros as their w32 equivalents where
2904 non-platform-specifics are not available.
2905 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
2906 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
2907 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
2908 (frame_update_line_height): Use macros to access f->output_data.
2909 (defined_color): Remove FIXME comments; fixed.
2910 (x_face_list_fonts, prepare_face_for_display): Put X specifics
2911 into #ifdef blocks. Add WINDOWSNT blocks.
2912 (Fx_list_fonts): Use macros for accessing font data.
2913 (set_lface_from_font_name): Different default fonts for X and
2914 WINDOWSNT.
2915 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
2916 scalable for backward compatibility.
64d739c4 2917 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
2918 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
2919
64d739c4 2920 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
2921 syms_of_w32faces.
2922
2923 * makefile.nt (w32faces.obj): Remove.
2924 (xfaces.obj): Add.
2925
807cc41c
JR
29262000-03-03 Jason Rumney <jasonr@gnu.org>
2927
2928 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
2929 correct parameters.
2930
0007072a
KR
29312000-03-03 Ken Raeburn <raeburn@gnu.org>
2932
2933 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
2934 standard ELF definitions here if the system header does not.
2935
71a6ba55
GM
29362000-03-03 Gerd Moellmann <gerd@gnu.org>
2937
2938 * xterm.c (PER_CHAR_METRIC): Removed.
2939 (x_per_char_metric_1, x_default_char): New functions.
2940 (x_per_char_metric): If font's default char is invalid, return
2941 metrics of a suitably chosen usable default char.
2942 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
2943 char, replace occurrences of unprintable chars with a suitably
2944 chosen usable default char.
71a6ba55 2945
900fa1f1
GM
29462000-03-02 Gerd Moellmann <gerd@gnu.org>
2947
42f55fe0
GM
2948 * xterm.c (note_mouse_highlight): Return quickly if frame's
2949 glyph matrices have been freed.
2950
2951 * dispnew.c (free_glyphs): Block input while freeing matrices.
2952
900fa1f1
GM
2953 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
2954
2955 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
2956 x_free_colors.
2957
2958 * dispextern.h (x_free_colors): Add prototype.
2959
2960 * xfaces.c (x_free_colors): New function.
2961 (unload_color, free_face_colors): Use it.
2962
2f950292
EZ
29632000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2964
2965 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
2966
2967 * window.c [MSDOS]: Include msdos.h.
2968
54d04320
DL
29692000-03-02 Dave Love <fx@gnu.org>
2970
2971 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
2972
2973 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
2974 set C_OPTIMIZE_SWITCH for gcc.
2975
0ba93ac4
KH
29762000-03-02 Kenichi Handa <handa@etl.go.jp>
2977
2978 * coding.c (coding_save_composition): Be sure to allocate
2979 composition data area in coding even if there's no composition in
2980 the current run.
2981
a2bc11d4
JR
29822000-03-01 Jason Rumney <jasonr@gnu.org>
2983
2984 * w32term.c: Equivalent changes to those made to xterm.c on
2985 2000-02-25 and 2000-02-24.
2986
2987 * w32fns.c: Equivalent changes to those made to xfns.c on
2988 2000-02-25 and 2000-02-21.
2989
2990 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
2991 correct line-end convention is followed.
2992
2993 * w32menu.c [HAVE_BOXES]: Remove #undef.
2994 (single_keymap_panes): Remove code for simulating checkmarks.
2995 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
2996 Remove code for drawing simulated checkmarks.
2997 (w32_menu_show): make unibyte help string correctly.
2998 (add_menu_item): draw standard Windows checkmarks. Draw radio
2999 buttons as radio buttons if possible.
3000
72d19d75
GM
30012000-03-01 Gerd Moellmann <gerd@gnu.org>
3002
2df636f4
GM
3003 * sysdep.c (start_of_text): Don't define this function for NetBSD
3004 with ELF.
3005
427ec082 3006 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
3007 Don't define.
3008 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
3009 (LINKER): Don't undef if __NetBSD__ is defined.
3010
3011 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
3012
3013 * fileio.c [__NetBSD__]: Define `unix'.
3014
72d19d75
GM
3015 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
3016
ed4d0512
GM
30172000-02-29 Gerd Moellmann <gerd@gnu.org>
3018
50b1039f
GM
3019 * atimer.c (start_atimer): Don't abort when timers are stopped.
3020 (append_atimer_lists): New function.
3021 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
3022 arbitrary lists of stopped and running atimers.
3023
ed4d0512
GM
3024 * atimer.c (cancel_atimer): Handle canceling an atimer when
3025 some timers are stopped.
3026
3027 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
3028 after canceling it.
3029
3030 * fns.c (maybe_resize_hash_table): Handle case of new size
3031 coming out as being the same as old size.
3032
387023ee
JR
30332000-02-27 Jason Rumney <jasonr@gnu.org>
3034
3035 * makefile.nt: Add atimer.h to dependencies.
3036 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3037 * w32console.c: Only disable window system features for dispextern.h
3038 (initialize_w32_display): Build a display info for the console.
3039 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3040 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3041 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3042 as 2 button mice.
3043 * w32gui.h (struct W32FontStruct): Revert last change after change
3044 to xdisp.c.
3045 * w32menu.c (single_submenu): Set up help string.
3046 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3047 (w32_dialog_show): Set up help string.
3048 * w32term.c (w32_display_info_for_display): Remove unused function.
3049 (w32_draw_bitmap): Use pre-built bitmaps.
3050 (w32_initialize_display_info): New function to initialize parts of
3051 display info that are common to both GUI and console frames.
3052 (w32_term_init): Use w32_initialize_display_info. Do not set
3053 Vw32_num_mouse_buttons here, as it is not called for console
3054 frames. Build bitmaps for indicating truncated lines etc.
3055 (x_delete_display): Destroy pre-built bitmaps.
3056 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3057 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3058
4516715a
DL
30592000-02-27 Dave Love <fx@gnu.org>
3060
3061 * lisp.h: Add a bunch of prototypes.
3062
171ca836
KH
30632000-02-26 Kenichi Handa <handa@etl.go.jp>
3064
3065 * keyboard.c (read_char): Set `usec' correctly.
3066
4013921d
KH
30672000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3068
3069 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3070 `lambda', set reg[RRR] to the map index.
3071 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3072 reg[RRR] to 0. Otherwise, set it to -1.
3073
9244a058
GM
30742000-02-25 Gerd Moellmann <gerd@gnu.org>
3075
2df636f4 3076 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3077
f43d79c1 30782000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3079
f43d79c1
GM
3080 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3081 and contains a `:', prepend `/:'.
3082
3083 * window.c (select_window_1): If selected_window is nil,
3084 don't "swap out" the buffer's point.
3085 (Fset_window_configuration): Set selected_window to nil
3086 before calling Fselect_window.
3087 (unshow_buffer): Don't set point in buffer from window's point
3088 if another more recently selected window also shows the buffer.
3089
bed0c171
GM
30902000-02-25 Gerd Moellmann <gerd@gnu.org>
3091
449c3c52
GM
3092 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3093
f5b58615
GM
3094 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3095 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3096 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3097 variables.
3098 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3099 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3100 (hide_busy_cursor): New functions.
3101 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3102
3103 * minibuf.c (read_minibuf): Cancel busy-cursor.
3104
3105 * keyboard.c (command_loop_1): Call start_busy_cursor before
3106 Fcommand_execute and cancel_busy_cursor after it.
3107 (timer_check): Remove busy-cursor code.
3108 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3109 cursor timer.
3110
3111 * process.c (wait_reading_process_input): Remove busy-cursor code.
3112
3113 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3114 Fx_hide_busy_cursor.
3115
3116 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3117 Remove prototyoes.
3118 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3119
3120 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3121
3122 * xterm.c (XTread_socket): Remove busy-cursor code.
3123
4eb8436f
GM
3124 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3125 (build_frame_matrix_from_leaf_window): Put code handling
3126 glyph row's not being a slice of a frame row in #if 0.
3127 (sync_window_with_frame_matrix_rows): New function.
3128 (frame_row_to_window): New function.
3129 (mirror_line_dance): Handle copies between windows.
3130
3cb65b0e
GM
3131 * lread.c (Fload): Use `xfree' instead of `free'.
3132 (init_obarray): Use `xmalloc' instead of `malloc'.
3133
bed0c171
GM
3134 * window.c (Fset_window_buffer): Set WINDOW to the window
3135 after decoding.
2add4349
GM
3136 (coordinates_in_window): Take frame's internal border width
3137 into account.
bed0c171 3138
42088c12
GM
31392000-02-24 Gerd Moellmann <gerd@gnu.org>
3140
3141 * xterm.c (x_display_and_set_cursor): Display cursor of
3142 non-selected windows depending on the setting of
3143 cursor_in_non_selected_windows.
3144
3145 * xdisp.c (cursor_in_non_selected_windows): New variable.
3146 (syms_of_xdisp): DEFVAR_BOOL it.
3147
d1e103b2
GM
31482000-02-23 Gerd Moellmann <gerd@gnu.org>
3149
723e779c
GM
3150 * data.c (Fstring_to_number): If number is greater than what
3151 fits into an integer, return a float.
3152
d1e103b2
GM
3153 * eval.c (specbind): Remove references to
3154 keyword_symbols_constant_flag.
3155
3156 * data.c (keyword_symbols_constant_flag): Removed.
3157 (Fmakunbound, set_internal, syms_of_data): Remove references to
3158 keyword_symbols_constant_flag.
3159
3160 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3161
214f877f
KH
31622000-02-23 Kenichi Handa <handa@etl.go.jp>
3163
3164 * syntax.c (multibyte_syntax_as_symbol): New variable.
3165 (syms_of_syntax): Declare it as a Lisp variable.
3166 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3167 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3168 nonzero, treat all multibyte characters as symbol.
42088c12 3169 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3170 characters.
3171
130adcb7
EZ
31722000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3173
3cb65b0e 3174 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3175 a deleted frame.
3176
17cbbf95
GM
31772000-02-21 Gerd Moellmann <gerd@gnu.org>
3178
3179 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3180
3181 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3182 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3183
beb0bc36
DL
31842000-02-21 Dave Love <fx@gnu.org>
3185
3186 * frame.c (Vmouse_position_function): New variable.
3187 (Fmouse_position): Use it.
3188 (syms_of_frame): Install it.
3189
3190 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3191
1d92afcd
GM
31922000-02-20 Gerd Moellmann <gerd@gnu.org>
3193
3194 * fileio.c (Finsert_file_contents): Unbind the binding of
3195 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3196
3197 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3198 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3199 (specbind, unbind_to): Handle most common case of non-constant
3200 symbol with trivial value specially.
3201
3202 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3203
2d06696f
RS
32042000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3205
3206 * data.c (Fmake_variable_buffer_local): Doc fix.
3207 Init found_for_buffer to 0.
3208 (Fmake_variable_frame_local): If the variable has already
3209 been buffer-local, set the check_frame field.
3210
1d4311c3
EZ
32112000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3212
3213 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3214 produced for CODING_MODE_LAST_BLOCK requires.
3215
2dc95ddd
DL
32162000-02-18 Dave Love <fx@gnu.org>
3217
3218 * keyboard.c (echo_keystrokes): Remove declaration.
3219 (Vecho_keystrokes) New variable.
3220 (read_char, record_menu_key, read_key_sequence): Use it to allow
3221 use of float value.
3222 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3223
3224 * lread.c: Undef feature selection macros before defining.
3225
f0930f35
GM
32262000-02-18 Gerd Moellmann <gerd@gnu.org>
3227
3228 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3229 for symbols other than the symbol in question.
3230
e3d4de90
DL
32312000-02-17 Dave Love <fx@gnu.org>
3232
3233 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3234
0b378936
GM
32352000-02-17 Gerd Moellmann <gerd@gnu.org>
3236
d621caf7
GM
3237 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3238
0b378936
GM
3239 * alloc.c (enum mem_type): Compile unconditionally.
3240
3b451f74
EZ
32412000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3242
3243 * xfaces.c (tty_defined_color): Don't return faulire indication
3244 for unspecified-fg and unspecified-bg pseudo-colors.
3245
10689a01
GM
32462000-02-17 Gerd Moellmann <gerd@gnu.org>
3247
1216f5e4
GM
3248 * alloc.c (mark_object): Don't mark symbol names in pure space.
3249 (gc_sweep): Don't unmark symbol names in pure space.
3250
3251 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3252 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3253 [GC_MARK_STACK]: New defines.
427ec082 3254 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3255 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3256
3257 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3258
3259 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3260 allocate_buffer instead of xmalloc.
3261
3262 * alloc.c (toplevel): Include setjmp.h.
3263 (PURE_POINTER_P): New define.
3264 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3265 (Vdead) [GC_MARK_STACK]: New variable.
3266 (lisp_malloc): Add parameter TYPE, call mem_insert if
3267 GC_MARK_STACK is defined.
3268 (allocate_buffer): New function.
427ec082 3269 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3270 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3271 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3272 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3273 (MEM_NIL) [GC_MARK_STACK]: New define.
3274 (struct mem_node) [GC_MARK_STACK]: New structure.
3275 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3276 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3277 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3278 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3279 (mark_stack) [GC_MARK_STACK]: New functions.
3280 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3281 (clear_marks): Removed.
3282 (gc_sweep): Set free conses' car, free floats' type, free
3283 symbols' function to Vdead. Use lisp_free to free buffers.
3284 (init_alloc_once): Initialize Vdead.
3285 (survives_gc_p): Return non-zero for pure objects.
3286
3287 * alloc.c: Add comments throughout the file.
3288
2503c8b1
GM
3289 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3290 that unblocks alarms.
3291
8389e1e2
GM
3292 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3293 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3294 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3295
10689a01 3296 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3297
bfc17d18
KH
32982000-02-17 Kenichi Handa <handa@etl.go.jp>
3299
4a09dee0
KH
3300 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3301 avoid infinite error signaling. Allocate sufficient memory for
3302 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3303
2b927d02
SM
33042000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3305
3306 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3307 depends on the previous behavior.
3308
b49cb764
GM
33092000-02-16 Gerd Moellmann <gerd@gnu.org>
3310
3311 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3312
99e95407
GM
33132000-02-15 Gerd Moellmann <gerd@gnu.org>
3314
3315 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3316
3317 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3318 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3319 write(2).
3320
6ffd3cf7
RS
33212000-02-15 Richard M. Stallman <rms@gnu.org>
3322
3323 * data.c (set_internal): Don't make variable buffer-local
3324 if within a let-binding for the same buffer.
3325 (let_shadows_buffer_binding_p): New function.
3326
3327 * eval.c (specbind): For buffer-local value,
3328 record the current buffer also.
3329 (unbind_to): Cope with that change.
3330
cad53475
GM
33312000-02-15 Gerd Moellmann <gerd@gnu.org>
3332
3333 * window.c (Fsave_window_excursion): Doc fix.
3334
1aa963c8
SM
33352000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3336
3337 * syntax.c (back_comment): Make sure we only consider comment-starters
3338 of the relevant style and return -1 in case of a failure to find the
3339 beginning of the comment.
3340 (Fforward_comment): If back_comment fails, go back to the position just
3341 after the comment-end.
3342 (scan_lists): Add comment describing a very minor bug.
3343
b9b84fd3
SM
33442000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3345
3346 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3347 `completion-regexp-list' in the docstring.
3348
3a28db80
DL
33492000-02-14 Dave Love <fx@gnu.org>
3350
3351 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3352
fb4a568d
SM
33532000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3354
3355 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3356 to Emacs' syntax. Also fix the comment about set/not-set meanings
3357 since Emacs syntax is not the value 0 any more.
3358 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3359 since it's now part of RE_SYNTAX_EMACS.
3360
1063ebb5
DL
33612000-02-12 Dave Love <fx@gnu.org>
3362
3363 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3364 Alpha.
3365
fb07a302
GM
33662000-02-12 Gerd Moellmann <gerd@gnu.org>
3367
3368 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3369
aaf2320c
DL
33702000-02-12 Dave Love <fx@gnu.org>
3371
3372 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3373
3374 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3375 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3376 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3377
3378 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3379
3380 * s/nextstep.h: Don't define HAVE_ALLOCA.
3381
3382 * config.in: Add vfork bits.
3383
eedf8bde
GM
33842000-02-12 Gerd Moellmann <gerd@gnu.org>
3385
3386 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3387 unwind function to undo the effect of stopping atimers.
3388
3389 * keyboard.c (bind_polling_period): Stop all timers except
3390 poll_timer.
3391
3392 * atimer.c (stopped_atimers): New variable.
3393 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3394 New functions.
3395
3396 * atimer.h (stop_other_atimers, run_all_atimers)
3397 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3398
eedf8bde
GM
3399 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3400
8476c2f8
KR
34012000-02-11 Ken Raeburn <raeburn@gnu.org>
3402
3403 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3404 library may depend on jpeg.
3405 (atimer.o): Depends on atimer.c.
3406
0e85e4a3
KH
34072000-02-11 Kenichi Handa <handa@etl.go.jp>
3408
3409 * insdel.c (del_range_1): Call update_compositions.
3410 (del_range_both): Call update_compositions just once..
3411
97fa0cc8
DL
34122000-02-10 Dave Love <fx@gnu.org>
3413
3414 * xfns.c (create_frame_xic): Fix initialization of automatic
3415 aggregates for pcc.
3416
25566a3c
KH
34172000-02-09 Kenichi Handa <handa@etl.go.jp>
3418
3419 * ccl.c (CCL_MAKE_CHAR): New macro.
3420 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3421 registers by CCL_MAKE_CHAR before calling translate_char.
3422 <CCL_TranslateCharacterConstTbl> Likewise.
3423
69da54ba
DL
34242000-02-08 Dave Love <fx@gnu.org>
3425
3426 * lread.c (__EXTENSIONS__): Define.
3427
f7136ee8
GM
34282000-02-08 Gerd Moellmann <gerd@gnu.org>
3429
3430 * puresize.h (BASE_PURESIZE): Increase to 650000.
3431
7768790b
EZ
34322000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3433
3434 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3435 the help message.
3436
38fd211b
EZ
34372000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3438
3439 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3440 md, mh, mb, mr, and me to the fake termcap entry.
3441
66e4690f
KR
34422000-02-06 Ken Raeburn <raeburn@gnu.org>
3443
3444 * sound.c (sound_cleanup): Don't call device close routine if the
3445 function pointer is null.
3446
a75dfea0
AI
34472000-02-06 Andrew Innes <andrewi@gnu.org>
3448
3449 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3450 around image definitions and prototypes.
3451 (gamma_correct) [WINDOWSNT]: New prototype.
3452
3453 * w32term.c (x_make_frame_visible): Replace call to
3454 input_poll_signal with poll_for_input.
3455
3456 * window.c [WINDOWSNT]: Include w32term.h.
3457
3458 * xdisp.c [WINDOWSNT]: Include w32term.h.
3459
3460 * makefile.nt: Add dependencies on w32gui.h.
3461 (OBJ1): Include atimer.obj.
3462 ($(BLD)\atimer.obj): New dependency rule.
3463
3464 * w32.c (sigmask): New function (does nothing).
3465 (sigunblock): Ditto.
3466
3467 * frame.c [WINDOWSNT]: Include w32term.h.
3468
3469 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3470
3471 * lread.c (syms_of_lread): Fix literal newlines.
3472
3473 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3474 the string constant limit (2048 bytes) in MSVC.
3475 (main): Ditto.
3476
59ddecde
GM
34772000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3478
3479 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3480 area.
3481 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3482 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3483 dispatch the event.
3484
07590973
DL
34852000-02-04 Dave Love <fx@gnu.org>
3486
3487 * fileio.c: Remove some unused vars.
3488 (_GNU_SOURCE): Define (for euidaccess).
3489
3490 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3491
3492 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3493 gcpro1, gcpro2.
3494 (read_minibuf): Deal with allow_props correctly.
3495
649351f9
EZ
34962000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3497
3498 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3499
66e4690f 35002000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3501
3502 * search.c (compile_pattern): If a cache entry has a nil regexp,
3503 fill in that entry instead of clobbering a previously cached
3504 string regexp.
3505
66e4690f 35062000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3507
3508 * puresize.h (BASE_PURESIZE): Increase to 610000.
3509
d240a249
GM
35102000-02-02 Gerd Moellmann <gerd@gnu.org>
3511
3512 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3513 can GC.
3514
ca91fb26
KH
35152000-02-02 Kenichi Handa <handa@etl.go.jp>
3516
25660570
KH
3517 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3518 instead of incrementing ic directly.
3519 <CCL_WriteExprConst> Likewise.
3520 <ccl_set_expr>: Set ic to jump_address.
3521
ca91fb26
KH
3522 * fileio.c (e_write): Fix the handling of
3523 CODING_FINISH_INSUFFICIENT_SRC.
3524
2ede9689
DL
35252000-02-01 Dave Love <fx@gnu.org>
3526
3527 * editfns.c (Fpropertize): Doc fix.
3528
3529 * process.c (Fstart_process): Doc fix.
3530
3531 * eval.c: Fix various doc strings not to duplicate information
3532 from help-manyarg-func-alist.
3533
3534 * window.c (Fset_window_margins): Don't make interactive. Doc
3535 fix.
3536
3537 * doc.c (Vhelp_manyarg_func_alist): New variable.
3538 (Fdocumentation): Use it.
3539 (syms_of_doc): Define it.
3540
b6680a0e
GM
35412000-01-31 Gerd Moellmann <gerd@gnu.org>
3542
2cb750ba
GM
3543 * xterm.c (xim_open_dpy): Remove unused local variable.
3544
74e9213b
GM
3545 * emacs.c (USAGE): Use term `display options' instead of `X
3546 options'.
3547
3548 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3549 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3550
b6680a0e
GM
3551 * fns.c (sweep_weak_table): New function.
3552 (sweep_weak_hash_tables): Use it. Keep on marking until there
3553 is no more change.
3554
994c5afe
GM
35552000-01-30 Gerd Moellmann <gerd@gnu.org>
3556
3557 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3558 that XTread_socket does not crash by trying to call XNoOp on a
3559 closed display.
427ec082 3560
f00276e3
JR
35612000-01-30 Jason Rumney <jasonr@gnu.org>
3562
3563 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3564 Change selected_frame to SELECTED_FRAME ().
3565 (w32_console_mouse_position): Remove #ifndef MULE from around
3566 `insist' parameter.
3567
3568 * makefile.nt: Remove dosfns.obj.
3569
3570 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3571
3572 * w32fns.c (w32_defined_color): Check for valid frame before
3573 applying gamma correction. Eliminate dependency on frame elsewhere.
3574 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3575 (w32_to_x_font): Use resx and resy not height_in and width_in.
3576 (x_to_w32_font): Doc fix.
3577 (xlfd_strip_height): New function to strip and return font height.
3578 (w32_font_match): Compare height separately from rest of xlfd
3579 spec, using xlfd_strip_height.
3580
3581 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3582 width_in. Use w32_defined_color in place of defined_color.
3583
3584 * w32faces.c: Merge more of DOS and X specifics in preparation for
3585 merge with xfaces.c.
3586 (defined_color): Remove FIXME comment.
3587 (tty_color_name): Provide w32-specific function.
3588 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3589
3590 * w32console.c (turn_on_face, turn_off_face): Removed.
3591 (w32_face_attributes): New function.
3592 (Global_variables): Reduce scope where possible.
3593 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3594 fill attribute.
3595 (hl_mode): Don't modify text attributes.
3596 (write_glyphs): Don't do anything if len <= 0. Use
3597 w32_face_attributes to get attributes for drawing. Write
3598 terminating codes using char_attr_normal.
3599 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3600 (update_begin, update_end): Likewise.
3601 (vga_stdcolor_name): New function.
3602 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3603 (Fset_screen_color): Remove char_attr_reverse.
3604
b08e8bb2
GM
36052000-01-29 Gerd Moellmann <gerd@gnu.org>
3606
3607 * xfns.c (xic_set_preeditarea): Take window parameter and
3608 window-relative pixel-positions.
3609
3610 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3611 is its frame's selected window.
3612 (xim_instantiate_callback): Likewise.
3613
3614 * xfns.c (x_create_im): Removed.
3615 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3616 (supported_xim_styles): Renamed from supported_styles.
3617 (best_xim_style): Renamed from best_style.
3618 (create_frame_xic): Renamed from xic_create_frame.
3619 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3620
b08e8bb2
GM
36212000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3622
3623 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3624 our frames, call XFilterEvent with 2nd parameter `None'.
3625 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3626 returning XBufferOverflow.
3627 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3628 area.
3629 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3630 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3631 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3632 (xim_initialize, xim_close)
3633 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3634 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3635 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3636 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3637
3638 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3639 and `xim_styles'.
3640 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3641 `xic_style' and `xic_xfs'.
3642 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3643 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3644 (FRAME_XIM): Removed.
3645
3646 * xfns.c (supported_styles): New variable.
3647 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3648 (xic_create_xfontset, best_style, xic_create_frame)
3649 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3650 (xic_set_xfontset): New functions.
3651
142e109c
DL
36522000-01-28 Dave Love <fx@gnu.org>
3653
3654 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3655
3656 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3657
b02786f9
GM
36582000-01-28 Gerd Moellmann <gerd@gnu.org>
3659
d060bc9f
GM
3660 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3661 for *scratch* if it already existed.
3662
b02786f9
GM
3663 * emacs.c (USAGE): New macro.
3664 (main): Use it to display usage information.
3665
2c52d7e4
EZ
36662000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3667
3668 Support for the menu-help feature:
3669
3670 * msdos.h: Change prototypes of XMenuAddSelection and
3671 XMenuActivate.
3672
3673 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3674 part of the line to the termscript file.
3675 (IT_clear_to_end): Clear the entire line, not just its beginning.
3676 (menu_help_message, prev_menu_help_message): New variables.
3677 (IT_menu_make_room): Make room for the help_text member.
3678 (IT_menu_display): New argument disp_help; all callers changed.
3679 If disp_help is non-zero, store the help text of the active menu
3680 item in menu_help_message.
3681 (XMenuAddPane): Initialize the help_text member to NULL.
3682 (XMenuAddSelection): New argument help_text. Store it in the
3683 XMenu structure.
3684 (XMenuActivate): New argument help_callback. If the value of
3685 menu_help_message has changed since the last time, display the
3686 menu help message text while waiting for the mouse to move. Clear
3687 the echo area before exiting.
3688 (XMenuDestroy): Free the help_text member.
3689
ffe0bcd1
GM
36902000-01-27 Gerd Moellmann <gerd@gnu.org>
3691
3692 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3693 XMenuAddSelection. Pass help callback to XMenuActivate.
3694 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3695
50dbd23f
EZ
36962000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3697
3698 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3699 and EMACS_SET_USECS.
3700
f5941bf8
GM
37012000-01-26 Dave Love <fx@gnu.org>
3702
6c67ddee
DL
3703 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3704
f5941bf8
GM
3705 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3706 an error may be signalled.
3707
9e49c990
GM
37082000-01-26 Gerd Moellmann <gerd@gnu.org>
3709
fc3cb460
GM
3710 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3711 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3712
9e49c990
GM
3713 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3714
d0c037d8
GM
37152000-01-25 Gerd Moellmann <gerd@gnu.org>
3716
3717 * charset.c (Fstring): If there is a multibyte char among
3718 the args, always return a multibyte string.
3719
e12489f9
GM
37202000-01-25 Gerd Moellmann <gerd@gnu.org>
3721
3722 * sysdep.c (sys_select): Turn atimers off and on instead of
3723 recording and restoring old alarm handler
3724
3725 * process.c (toplevel): Include atimer.h.
3726 (create_process_1): Rewritten.
3727 (create_process): Use atimers instead of alarm.
3728 (wait_reading_process_input) [hpux]: Turn atimers off instead
3729 of turning off SIGALRM.
3730 (wait_reading_process_input): Turn off atimers instead off
3731 calling stop_polling.
3732
3733 * emacs.c (main): Call init_atimer.
3734
3735 * keyboard.c (toplevel): Include systime.h and atimer.h.
3736 (polling_for_input): Removed because unused.
3737 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3738 (poll_timer): New variable.
3739 (poll_for_input, poll_for_input_1): New functions.
3740 (start_polling, stop_polling): Rewritten.
3741
3742 * keyboard.h (polling_for_input): Removed.
427ec082 3743
e12489f9
GM
3744 * atimer.h, atimer.c: New files.
3745
3746 * Makefile.in (obj): Add atimer.o.
3747 (atimer.o): New target.
3748
3749 * blockinput.h (pending_atimers): Add extern declaration.
3750 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3751
3752 * lisp.h (popup_activated_flag): Add extern declaration.
3753
3754 * xmenu.c (popup_activated_flag): Make externally visible.
3755 (popup_activate_callback) [USE_MOTIF]: Increment
3756 popup_activated_flag.
3757 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3758
3759 * xterm.c (toplevel): Include atimer.h.
3760 (toolkit_scroll_bar_interaction): New variable.
3761 (Fxt_process_timeouts): Removed.
3762 (x_process_timeouts): New function.
3763 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
3764 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
3765 (x_make_frame_visible): Call poll_for_input_1 instead of
3766 input_poll_signal. Don't call alarm.
3767 (x_initialize): Install timer calling x_process_timeouts.
427ec082 3768
1e5279b9
DL
37692000-01-24 Dave Love <fx@gnu.org>
3770
6c67ddee 3771 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
3772 Don't use -cckr -- apparently not now necessary.
3773
edf6aeb8
EZ
37742000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3775
3776 * msdos.c (IT_menu_display): Truncate long menu lines at the right
3777 screen boundary.
3778
9badad41
JR
37792000-01-23 Jason Rumney <jasonr@gnu.org>
3780
3781 * w32fns.c (w32_defined_color): Apply gamma correction before
3782 trying to map to the palette.
3783 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
3784 to w32_clear_rect.
3785
3786 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
3787 here. Callers changed to always pass real device context.
3788 (w32_draw_bitmap): Likewise.
3789 (w32_get_glyph_overhangs): Likewise.
3790 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
3791 one.
3792 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
3793 pfnSetScrollInfo and SetScrollRange.
3794 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
3795 back into MULE characters after decoding them.
3796 (x_get_glyph_face_and_encoding): Likewise.
3797 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
3798 GetCharABCWidthsW fails, since this is defined on Windows 9x.
3799 (x_produce_glyphs): Calculate per char metrics for a character
3800 that we know exists in default font when font_not_found_p is true.
3801
63bd786b
JR
38022000-01-22 Jason Rumney <jasonr@gnu.org>
3803
3804 * makefile.nt (intervals.obj, composite.obj): New modules.
3805 (composite.h): Added as dependency where appropriate.
3806
3807 * w32gui.h (XGCValue): New struct for emulating X GCs.
3808
3809 * w32term.h (XCharStruct): New struct for emulating X.
3810
3811 * w32console.c (turn_on_face, turn_off_face): New functions.
3812 (change_line_highlight): New prototype for new redisplay.
3813 (write_glyphs): Support multibyte text. Support faces.
3814
3815 * w32faces.c: Complete rewrite for new redisplay based on new
3816 xfaces.c.
3817
3818 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
3819 throughout. struct frame * in place of FRAME_PTR.
3820 Skeleton support for images, toolbars, tooltips from xfns.c.
3821 (Fx_create_frame): Use system default for default scroll bar
3822 width.
3823 (w32_get_arg): Renamed from x_get_arg.
3824 (Fx_file_dialog): New function.
3825 (w32_list_fonts): Check cache before asking system.
3826 (Vw32_enable_synthesized_fonts): New variable.
3827 (Vw32_enable_italics): Obsolete, removed.
3828
3829 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3830 Use SELECTED_FRAME macro.
3831
3832 * w32menu.c: Add skeleton support for help strings on menus.
3833 (add_menu_item): Native checkbox and radio support added, but not
3834 yet enabled due to bugs.
3835 (push_menu_item): Add parameters type, selection and help.
3836 Callers updated.
3837 Formatting changes to reduce unnecessary diffs with xmenu.c.
3838
3839 * w32select.c (Fw32_set_clipboard_data): Update call to
3840 find_charset_in_str.
3841
3842 * w32term.c: Complete rewrite for new redisplay based on new
3843 xterm.c with necessary sections merged back in from old w32term.c.
3844
6ffd3cf7 38452000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
3846
3847 * data.c (set_internal): Further fix in same criterion.
3848
6ffd3cf7 38492000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
3850
3851 * data.c (set_internal): Fix the criteria for whether
3852 to swap out the old cached binding.
3853
60af03f1
DL
38542000-01-19 Dave Love <fx@gnu.org>
3855
3856 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
3857
f9be074f
KH
38582000-01-18 Kenichi Handa <handa@etl.go.jp>
3859
3860 * regex.c (re_compile_fastmap): While checking a range table for
3861 `charset', skip flag bits for a character class correctly.
3862
52b8dbf9
GM
38632000-01-17 Gerd Moellmann <gerd@gnu.org>
3864
d36100c9
GM
3865 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
3866
52b8dbf9
GM
3867 * xfns.c (x_window): Call lw_create_widget with new parameter
3868 list.
3869
3870 * widget.c (EmacsFrameSetCharSize): Change size of children first
3871 because of problems with main window geometry management under
3872 Lesstif.
3873
3874 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
3875 MENU_ITEMS_ITEM_.*.
3876 (MENU_ITEMS_ITEM_HELP): New enumerator.
3877 (push_menu_item): Add parameter HELP. Record help in menu_items.
3878 (single_menu_item, single_submenu, list_of_items): Call
3879 push_menu_item with new parameter.
3880 (single_submenu): Set help string in widget value.
3881 (menu_highlight_callback): New function.
3882 (set_frame_menubar): Call lw_create_widget with new
3883 parameter list.
3884 (xmenu_show, xdialog_show): Ditto.
3885
3139018f
GM
38862000-01-13 Gerd Moellmann <gerd@gnu.org>
3887
3888 * sound.c (Fplay_sound): Improve doc string.
3889
83c8f461
RS
38902000-01-11 Richard M. Stallman <rms@gnu.org>
3891
3892 * lisp.h (set_internal): Enter the new arg.
3893
3894 * eval.c (specbind): Record buffer-local variables specially,
3895 indicating which buffer's binding was saved.
3896 (unbind_to): Restore buffer-local variables specially
3897 in the proper buffer.
3898
3899 * data.c (set_internal): New arg BUF.
427ec082 3900
83c8f461
RS
3901 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
3902 * data.c (Fset): Pass new arg to set_internal.
3903 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 3904
1fab1775
GM
39052000-01-11 Gerd Moellmann <gerd@gnu.org>
3906
3907 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
3908 xprintsym.
3909
83c8f461 39102000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
3911
3912 * minibuf.c (Ftry_completion): Doc fix.
3913
7a85e4df
GM
39142000-01-11 Gerd Moellmann <gerd@gnu.org>
3915
3916 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
3917 vector, too.
3918
a970dae4
AS
39192000-01-11 Andreas Schwab <schwab@suse.de>
3920
3921 * coding.c (code_convert_region): Initialize total_skip.
3922
c65d14ee
DL
39232000-01-08 Dave Love <fx@gnu.org>
3924
3925 * eval.c (Fuser_variable_p): Check customizability too.
3926
834938d2
GM
39272000-01-07 Gerd Moellmann <gerd@gnu.org>
3928
3929 * minibuf.c (Fcompleting_read): Doc fix.
3930
e0303cd6
GM
39312000-01-05 Gerd Moellmann <gerd@gnu.org>
3932
8a26744b
GM
3933 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
3934 -L /usr/local/lib.
3935
e0303cd6
GM
3936 * xfns.c (x_create_im): New function to set IM and IC of a frame.
3937 Check that input style is supported before trying to create an
3938 IC for it.
3939 (x_window): Call x_create_im.
427ec082 3940
2e471eb5
GM
39412000-01-04 Gerd Moellmann <gerd@gnu.org>
3942
560a7bd2
GM
3943 * xfns.c (current_gif_memory_src): New variable.
3944 (gif_load): Record the address of the current memory source
3945 in current_gif_memory_src.
3946 (gif_read_from_memory): Use current_gif_memory_src.
3947
f9ee84a3
GM
3948 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
3949 macros statement form.
3950
d1299cde
GM
3951 * sound.c (struct sound): Renamed from struct sound_file.
3952 (struct sound): Add members `data' and `header_size'.
3953 (enum sound_attr): Add SOUND_DATA.
3954 (current_sound, current_sound_device): Variables renamed from
3955 sound_file and sound_device.
3956 (parse_sound): Parse :data.
3957 (parse_sound): Handle sound data in strings.
3958 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 3959 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
3960 needed header size.
3961 (wav_play, au_play): Play sounds from string data.
3962
2e471eb5
GM
3963 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
3964
3965 * lisp.h: Add prototype for allocate_string_data.
3966
3967 * alloc.c (Fgarbage_collect): Return number of live and free
3968 strings.
3969
3970 * alloc.c (mark_buffer): Remove code in #if 0.
3971 (gc_sweep): Ditto.
3972 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
3973 (strings_consed): New variable.
3974 (allocate_string): Set it.
3975 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
3976 (Fmemory_use_counts): Return strings_consed. Use Flist.
3977
3978 * alloc.c: General cleanup in comments etc. Remove conditional
3979 compilation for `standalone'.
3980
3981 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
3982
3983 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
3984 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
3985 (DONT_COPY_FLAG): Removed.
3986 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
3987 (struct sdata, struct sblock): New
3988 (struct string_block): Rewritten.
3989 (STRINGS_IN_STRING_BLOCK): New macro.
3990 (oldest_sblock, current_sblock, total_strings, total_free_strings)
3991 (large_sblocks, string_blocks, string_free_list): New variables.
3992 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
3993 (init_strings): Rewritten.
3994 (allocate_string, allocate_string_data, compact_small_strings)
3995 (free_large_strings, sweep_strings): New functions.
3996 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
3997 (struct string_block_head, current_string_block)
3998 (first_string_block, large_string_blocks, STRING_FULLSIZE)
3999 (STRING_PAD): Removed.
4000 (make_uninit_multibyte_string, make_pure_string): Rewritten.
4001 (Fgarbage_collect): Don't set mark bit in large strings.
4002 (mark_object): Mark strings differently. Mark symbol names
4003 differently.
4004 (survives_gc_p): Test marked strings differently.
427ec082 4005 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
4006 symbol names.
4007 (compact_strings): Removed.
4008
42608ba8
EZ
40092000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
4010
4011 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
4012 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
4013
e0a09e1a
KH
40142000-01-04 Kenichi Handa <handa@etl.go.jp>
4015
dd9f0750 4016 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 4017 in a non-empty buffer.
dd9f0750 4018
3c0f3b15 4019 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 4020
44cd3ae5
GM
40212000-01-03 Gerd Moellmann <gerd@gnu.org>
4022
4023 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
4024 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
4025
4026 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
4027
c182a70f
EZ
40282000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4029
4030 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
4031 need to test for MSDOS frames.
4032
24480d5b
EZ
40332000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4034
4035 * dosfns.c (unspecified_colors): Remove.
4036 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4037 unspecified_bg.
4038 (msdos_stdcolor_name): Return strings for unspecified fore- and
4039 back-ground colors.
4040
4041 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4042 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4043 (tty_color_name): Return Lisp strings for unspecified fore- and
4044 back-ground colors.
4045 (Finternal_set_lisp_face_attribute): Remove the special treatment
4046 for Qunspecified_{f,b}g.
4047 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4048 string.
4049
047f434a
GM
40502000-01-03 Gerd Moellmann <gerd@gnu.org>
4051
4052 * xdisp.c (reseat_at_next_visible_line_start): Position before
4053 newline only if ending up on a newline.
4054 (next_element_from_ellipsis): Return success. Handle case of
4055 displaying no ellipsis. Fix case of ellipsis defined in display
4056 table.
4057 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4058 returns 0.
4059
d684c676
EZ
40602000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4061
4062 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4063 (Fcolor_supported_p): Renamed from face-color-supported-p.
4064
5fe1d139
EZ
40652000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4066
4067 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4068 list of colors renamed to tty-defined-color-alist.
4069 (tty_color_name): Pass the frame to tty-color-by-index.
4070 (realize_tty_face): tty-color-alist is now a function which
4071 accepts the frame as argument.
4072
4073 * term.c (Ftty_display_color_p): Accept an optional argument
4074 FRAME.
4075
816be8b8
EZ
40762000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4077
4078 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4079 encode_terminal_code.
4080
b635321e
EZ
40812000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4082
4083 * dispnew.c (mode_line_string): Support termcap frames as well.
4084
9b784e96
GM
40852000-01-01 Gerd Moellmann <gerd@gnu.org>
4086
27189709
GM
4087 * syntax.c (Fforward_word): Undo previous change.
4088
4089 * editfns.c (Fconstrain_to_field): Don't constrain if
4090 inhibit-field-text-motion is non-nil.
4091 (Fline_beginning_position): Undo previous change.
4092 (Fline_end_position): Ditto.
4093
4094 * syntax.c (Fforward_word): Notice field boundaries only if
4095 inhibit-field-text-motion is nil.
4096
4097 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4098
4099 * editfns.c (Vinhibit_field_text_motion): New variable.
4100 (inhibit-field-text-motion): New DEFVAR_LISP.
4101 (Fline_beginning_position, Fline_end_position): Notice field
4102 boundaries only if inhibit-field-text-motion is nil.
4103
45158a91
GM
4104 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4105 All calls adjusted.
4106 (x_build_heuristic_mask): Likewise.
4107 (xbm_load_image_from_file): Change error output.
4108 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4109 (gif_load, gs_load, x_kill_gs_process): Ditto.
4110
9b784e96
GM
4111 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4112 color indices when accessing raster pixels.
63cec32f
GM
4113 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4114 one of :file or :data.
4115 (enum pbm_keyword_index): Add PBM_DATA.
4116 (pbm_format): Add :data.
4117 (pbm_image_p): Allow either :file or :data.
4118 (pbm_read_file): New function.
4119 (pbm_scan_number): Rewritten to read from string.
4120 (pbm_load): Support :data.
9b784e96 4121
5ad6a5fb
GM
41221999-12-31 Gerd Moellmann <gerd@gnu.org>
4123
4124 * xfns.c: New image functions adapted to Emacs conventions.
4125 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4126 variable `file'.
4127
63448a4d
WP
41281999-12-31 William M. Perry <wmperry@aventail.com>
4129
4130 * xfns.c (jpeg_format): Added the :data keyword
4131 (jpeg_image_p): JPEG is valid with :file _or_ :data
4132 (jpeg_memory_src): Defined new JPEG image source to read from a
4133 memory buffer.
4134 (jpeg_load): Pay attention to the :data keyword if specified.
4135 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4136 found.
4137 (png_format): Added the :data keyword
4138 (png_image_p): PNG is valid with :file _or_ :data
4139 (png_read_from_memory): New PNG read function to read from a
4140 memory buffer.
4141 (png_load): Pay attention to the :data keyword if specified. Uses
4142 png_set_read_fn() instead of png_init_io() if specified.
4143 (tiff_format): Added the :data keyword for TIFF images.
4144 (tiff_image_p): TIFF is valid with :file _or_ :data
4145 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4146 from a memory buffer.
4147 (tiff_load): Pay attention to the :data keyword if specified.
4148 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4149 (gif_format): Added the :data keyword
4150 (gif_image_p): GIF is valid with :file _or_ :data
4151 (gif_read_from_memory): New GIF input function to read from a
4152 memory buffer.
c65d14ee 4153 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4154 instead of DGifOpenFileName() if specified.
4155
c880678e
GM
41561999-12-31 Gerd Moellmann <gerd@gnu.org>
4157
4158 * xdisp.c (next_element_from_buffer): Change assertion at the end
4159 because it doesn't hold when there's an overlay string at the end
4160 from which we deliver an image.
4161
8ccb9a54
EZ
41621999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4163
4164 * msdos.c (IT_update_begin): Don't dereference members of struct
4165 window for deleted windows.
4166
12ce2351
GM
41671999-12-30 Gerd Moellmann <gerd@gnu.org>
4168
a915c648
GM
4169 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4170 a hook, and the hook has a non-nil `no-self-insert' property, let
4171 the return value of the hook specify whether an expansion took
4172 place. If it returns nil, no expansion has been performed.
4173
12ce2351
GM
4174 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4175 differently.
4176
04ee4f45
EZ
41771999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4178
4179 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4180
7f4bc0c3
EZ
41811999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4182
4183 * dispnew.c (mode_line_string): Support MS-DOS frames.
4184
dac204bc
GM
41851999-12-29 Gerd Moellmann <gerd@gnu.org>
4186
4187 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4188
7b712ad8
KH
41891999-12-29 Kenichi Handa <handa@etl.go.jp>
4190
4191 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4192 to signal_after_change.
4193
adb9900f
EZ
41941999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4195
41ad069b
EZ
4196 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4197 dimensions changed, invalidate the mouse highlight info.
4198 (disable_mouse_highlight, help_echo, previous_help_echo): New
4199 variables.
4200 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4201 (fast_find_position, IT_note_mode_line_highlight)
4202 (IT_note_mouse_highlight): New functions.
4203 (IT_update_begin): If the redisplay affects the window where the
4204 mouse highlight is, clear the highlight. If the frame where the
4205 highlight was displayed was killed, invalidate the highlight
4206 info.
4207 (IT_update_end): Reset the highlight flag. Reset the mouse
4208 highlight-defer flag.
4209 (IT_frame_up_to_date): New function, if mouse highlight was
4210 deferred due to GC, do it now.
4211 (internal_terminal_init): Initialize mouse-highlight related
4212 members of the_only_x_display. Assign IT_frame_up_to_date to
4213 frame_up_to_date_hook.
4214 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4215 help_echo changed value, generate a HELP_EVENT event.
4216 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4217
adb9900f
EZ
4218 * msdos.h (struct display_info): New.
4219 (struct x_output): Add the display_info member.
4220 (FRAME_X_DISPLAY_INFO): New macro.
4221
481b5054
GM
42221999-12-28 Gerd Moellmann <gerd@gnu.org>
4223
4224 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4225 if MODIFF > 1.
6448a6b3 4226 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4227
4228 * buffer.c (modify_overlay): Always compute unchanged info.
4229
a2882b0d
KH
42301999-12-27 Kenichi Handa <handa@etl.go.jp>
4231
4232 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4233
89ba5b5f
KH
42341999-12-27 Kenichi Handa <handa@etl.go.jp>
4235
4236 The following changes are to use more bits for face IDs.
4237
4238 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4239 lowest 8 bits are single byte character code, the bits above are
4240 face ID.
481b5054 4241 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4242 above.
481b5054
GM
4243 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4244 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4245
4246 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4247 of GLYPH_MASK_CHAR.
4248
4249 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4250 of GLYPH_MASK_CHAR.
4251
4252 * dispextern.h (struct glyph): Make face_id and padding_p the top
4253 level members. Change members in union `u'.
4254 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4255 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4256 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4257 (CHAR_GLYPH_PADDING_P): Likewise.
4258 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4259 characters.
4260
481b5054 4261 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4262 for the change of struct glyph.
4263 (line_draw_cost): Adjusted for the change of
4264 GLYPH_FROM_CHAR_GLYPH.
4265 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4266
4267 * term.c (encode_terminal_code): Adjusted for the change of struct
4268 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4269 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4270 change of struct glyph.
4271
4272 * xdisp.c: All codes adjusted for the change of struct glyph.
4273
4274 * xterm.c: All codes adjusted for the change of struct glyph.
4275
5bcd116c
KH
42761999-12-27 Kenichi Handa <handa@etl.go.jp>
4277
4278 * composite.h (struct composition): Change the order of declaring
4279 members to reduce the byte size of the structure.
4280
f21b06b7
GM
42811999-12-25 Gerd Moellmann <gerd@gnu.org>
4282
4283 * search.c (looking_at_1): Reset immediate_quit before modifying
4284 global data.
4285
e36557c9
KH
42861999-12-24 Kenichi Handa <handa@etl.go.jp>
4287
4288 * process.c (read_process_output): Fix the arg FROM to
4289 update_compositions.
4290
83c8f461 42911999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4292
4293 * search.c (Freplace_match): For nonliteral replacement in buffer,
4294 construct all the new text first, then insert all at once.
4295
0b863bd9
DL
42961999-12-22 Dave Love <fx@gnu.org>
4297
4298 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4299
6d8e8ef3
GM
43001999-12-22 Gerd Moellmann <gerd@gnu.org>
4301
28d7281d
GM
4302 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4303 lead to size changes to after the X window has been created.
4304
e22ef6eb 4305 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4306 variable in xassert.
4307
8affcced
KH
43081999-12-22 Kenichi Handa <handa@etl.go.jp>
4309
4310 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4311 only when the frame is not for a window system.
8affcced 4312
f2be1146
GM
43131999-12-22 Gerd Moellmann <gerd@gnu.org>
4314
deca1348
GM
4315 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4316 redisplay after changing the multibyteness of a buffer.
4317
f2be1146
GM
4318 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4319 frame's X window to XFilterEvent instead of None because that's
4320 the X window for which the IC was created. This makes dead
4321 accents work when the pointer is not in Emacs' frame.
4322 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4323
a744a2ec
DL
43241999-12-20 Dave Love <fx@gnu.org>
4325
4326 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4327
9e6985ed
GM
43281999-12-19 Gerd Moellmann <gerd@gnu.org>
4329
4330 * eval.c (debugger_may_continue): New variable.
4331 (syms_of_eval): Add a DEFVAR_BOOL for it.
4332 (call_debugger): Bind it.
4333
3b620731
EZ
43341999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4335
4336 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4337 fp->tty_reverse_p is set, unless the computed colors are identical
4338 to frame colors. Print both original and computed colors to
4339 termscript file.
4340 (IT_write_glyphs): Track the changes in handling of composite
4341 characters.
4342 (IT_set_frame_parameters): Don't set frame colors from
4343 unspecified-fg and unspecified-bg pseudo-colors.
4344
0f9a51c4
DL
43451999-12-17 Dave Love <fx@gnu.org>
4346
4347 * data.c (Fkeywordp): New function.
4348 (syms_of_data): Install it.
4349
363e4e42
EZ
43501999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4351
4352 * xfaces.c (tty_defined_color): Fix last change.
4353
cfad01b4
GM
43541999-12-15 Gerd Moellmann <gerd@gnu.org>
4355
4356 * xdisp.c (redisplay_window) <optional new window start>: Check
4357 that window start is in [BEGV..ZV].
4358
f9d2fdc4
EZ
43591999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4360
4361 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4362 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4363
4364 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4365 (syms_of_xfaces): Initialize and staticpro them.
4366 (tty_defined_color): If the color name is unspecified-fg or
4367 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4368 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4369 (tty_color_name): If the color pixel value is either
4370 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4371 Qunspecified_fg or Qunspecified_bg, respectively.
4372 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4373 and Qunspecified_bg for foreground and background colors.
4374 (realize_default_face): If the foreground and background colors
4375 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4376 (realize_tty_face): By default, set the face colors to
4377 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4378 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4379 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4380 Reverse the colors if the default colors were reversed.
4381
4382 * dispnew.c (init_display): Initialize the frame pixels of the
4383 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4384 FACE_TTY_DEFAULT_BG_COLOR.
4385
4386 * term.c (turn_on_face): If the default fore- and background
4387 colors are reversed, enter inverse video mode. Don't send color
4388 escape sequences for unspecified foreground and background colors.
4389 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4390
4391 * dosfns.c (unspecified_colors): New variable.
4392 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4393 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4394 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4395 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4396 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4397 Qunspecified_bg, respectively.
4398
4399 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4400 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4401
e19539f1
KH
44021999-12-15 Kenichi Handa <handa@etl.go.jp>
4403
4404 * coding.c (code_convert_region): Fix the secoding arg to
4405 update_compositions.
4406
5ec14d3c
KH
44071999-12-15 Kenichi Handa <handa@etl.go.jp>
4408
4409 The following changes are for the new composition mechanism. We
4410 have deleted `composition' charset and composite characters,
4411 instead introduced a special text property `composition'.
4412
4413 * Makefile.in (INTERVAL_SRC): Include composite.h.
4414 (INTERVAL_OBJ): Include composite.o.
4415 (SOME_MACHINE_OBJECTS): Include composite.o.
4416 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4417 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4418 Depend on composite.h.
4419 (doc.o): Depend on charset.h.
4420 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4421 (composite.o): New target.
427ec082 4422
5ec14d3c
KH
4423 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4424
4425 * callproc.c (Fcall_process): Call code_convert_string to encode
4426 arguments. Use CODING_REQUIRE_DECODING to check if the process
4427 output should be decoded.
4428
4429 * casefiddle.c: Include composite.h.
4430 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4431 multibyte character. Adjusted for the change of CHAR_STRING.
4432 (casify_region): Likewise. Call update_compositions.
4433
4434 * category.h (CATEGORY_SET): Delete codes for a composite
4435 character.
4436
4437 * category.c (word_boundary_p): Delete codes for a composite
4438 character.
4439 (Fmake_category_table): New function.
4440 (syms_of_category): Defsubr it.
4441
4442 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4443 (ccl_driver): Delete codes for a composite character.
4444
4445 * charset.h: In this entry, just `Modified' means that codes for a
4446 composite character is deleted.
4447 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4448 (charset_composition) (MIN_CHAR_COMPOSITION)
4449 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4450 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4451 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4452 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4453 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4454 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4455 Modified.
4456 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4457 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4458 non_ascii_char_to_string.
4459 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4460 (STRING_CHAR_AND_LENGTH): Likewise.
4461 (FETCH_CHAR_ADVANCE): New macro.
4462 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4463 (MAX_MULTIBYTE_LENGTH): New macro.
4464 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4465 (find_charset_in_str): Argument adjusted.
4466 (CHAR_LEN): Modified.
427ec082 4467
5ec14d3c
KH
4468 * charset.c: In this entry, just `Modified' means that codes for a
4469 composite character is deleted.
4470 (Qcomposition) (leading_code_composition)
4471 (charset_composition) (min_composite_char) (cmpchar_table)
4472 (cmpchar_table_size) (n_cmpchars): Deleted.
4473 (SPLIT_COMPOSITE_SEQ): Deleted.
4474 (SPLIT_MULTIBYTE_SEQ): Modified.
4475 (char_to_string): Renamed from non_ascii_char_to_string.
4476 Modified.
4477 (string_to_char): Renamed from string_to_non_ascii_char.
4478 (split_string): Renamed from split_non_ascii_string.
4479 (char_printable_p) (Fsplit_char)
4480 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4481 (char_bytes) (Fchar_width) (strwidth): Modified.
4482 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4483 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4484 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4485 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4486 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4487 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4488 (Fcmpchar_cmp_count): Deleted.
4489 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4490 (init_charset_once): Modified.
4491 (syms_of_charset): Modified.
4492
4493 * cmds.c (internal_self_insert): Adjusted for the change of
4494 CHAR_STRING.
4495
4496 * coding.h (emacs_code_class_type): Delete the member
4497 EMACS_leading_code_composition.
4498 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4499 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4500 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4501 (COMPOSING_WITH_RULE_P): Macros deleted.
4502 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4503 macros.
4504 (struct composition_data): New structure.
4505 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4506 (struct coding_system): New members composition_rule_follows,
4507 cmp_data, cmp_data_start, cmp_data_index.
4508 (coding_save_composition) (coding_free_composition_data)
4509 (coding_adjust_composition_offset): Extern them.
4510
4511 * coding.c: Include composite.h.
4512 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4513 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4514 of multibyte code here.
4515 (DECODE_CHARACTER_DIMENSION2): Likewise.
4516 (detect_coding_emacs_mule): Change the case label from
4517 EMACS_leading_code_composition to 0x80.
4518 (detect_coding_iso2022): Handle new composition sequence.
4519 (DECODE_ISO_CHARACTER): Likewise.
4520 (check_composing_code): Deleted.
4521 (coding_allocate_composition_data): New function.
4522 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4523 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4524 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4525 (decode_coding_iso2022): Handle new composition sequence.
4526 (ENCODE_ISO_CHARACTER): Don't check composition here.
4527 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4528 (ENCODE_COMPOSITION_NO_RULE_START)
4529 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4530 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4531 (ENCODE_COMPOSITION_FAKE_START): New macro.
4532 (encode_coding_iso2022): Handle new composition sequence.
4533 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4534 (encode_coding_sjis_big5): Ignore composition.
4535 (setup_coding_system): Initialize new members of struct
4536 coding_system. Enable composition only when the coding system has
4537 `composition' property t.
4538 (coding_free_composition_data) (coding_adjust_composition_offset)
4539 (coding_save_composition) (coding_restore_composition): New
4540 functions.
4541 (code_convert_region): Call coding_save_composition for encoding
4542 and coding_allocate_composition_data for decoding. Don't skip
4543 ASCII characters if we handle composition on encoding. Call
4544 signal_after_change with Check_BORDER.
4545 (code_convert_string): Call coding_save_composition for encoding
4546 and coding_allocate_composition_data for decoding. Don't skip
4547 ASCII characters if we handle composition on encoding.
4548 (code_convert_string1): Set Vlast_coding_system_used after calling
4549 code_convert_string.
4550 (code_convert_string_norecord): Disable composition.
4551 (Fset_terminal_coding_system_internal): Likewise.
4552 (Fset_safe_terminal_coding_system_internal): Likewise.
4553 (Fset_keyboard_coding_system_internal): Likewise.
4554 (init_coding_once): Set emacs_code_class[0x80] to
4555 EMACS_invalid_code.
4556
4557 * composite.h: New file.
4558
4559 * composite.c: New file.
4560
4561 * data.c (Faref): Delete codes for a composite character..
4562 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4563
4564 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4565 (struct glyph): Add new sub-structure cmp to the union `u'.
4566 (enum display_element_type): New member IT_COMPOSITION.
4567 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4568 (struct it): New members cmp_id, cmp_len.
4569
4570 * dispnew.c (direct_output_forward_char): Check point moving into
4571 or out of a composition. If so, give up direct method.
4572
4573 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4574
4575 * editfns.c (Fchar_to_string): Adjusted for the change of
4576 CHAR_STRING.
4577 (general_insert_function): Likewise.
4578 (Finsert_char): Likewise.
4579 (Fsubst_char_in_region): Likewise. Call update_compositions.
4580 (Ftranslate_region): Call update_compositions.
4581 (Ftranspose_regions): Call update_compositions.
4582
4583 * emacs.c (main): Call syms_of_composite.
4584
4585 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4586 CHAR_STRING.
4587 (Finsert_file_contents): Set Vlast_coding_system_used before
4588 calling signal_after_change. Call update_compositions if some
4589 texts are inserted..
4590 (Fwrite_region): Adjusted for the change of a_write and e_write.
4591 (a_write): Argument changed. Work based on character position,
4592 not byte position.
4593 (e_write): Argument changed. Handle new way of composition.
4594
4595 * fns.c (Flength): The length of char-table is MAX_CHAR.
4596 (concat): Adjusted for the change of CHAR_STRING.
4597 (Ffillarray): Adjusted for the change of CHAR_STRING.
4598 (Fset_char_table_default): Delete codes for a composite character.
4599 (hash_put): Return hash index.
4600
4601 * fontset.h (struct font_info): New member vertical_centering.
4602 (Vvertical_centering_font_regexp): Extern it.
4603
4604 * fontset.c (Vvertical_centering_font_regexp): New variable.
4605 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4606 Set Vignore_relative_composition to nil.
4607 (fs_load_font): Initialize `vertical_centering' of struct
4608 font_info.
4609
4610 * indent.c (check_composition): New function.
4611 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4612 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4613 (current_column_1): Handle new way of composition.
4614 (Fmove_to_column): Likewise.
4615 (compute_motion): Likewise.
4616
4617 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4618 (insert_char): Likewise.
4619 (insert): Call update_compositions.
4620 (insert_and_inherit): Likewise.
4621 (insert_before_markers): Likewise.
4622 (insert_before_markers_and_inherit): Likewise.
4623 (insert_from_string): Likewise.
4624 (insert_from_string_before_markers): Likewise.
4625 (insert_from_buffer): Likewise.
4626 (replace_range): Likewise.
4627 (count_combining_composition): Deleted.
4628 (count_combining_before): Delete codes for a composite character.
4629 (count_combining_after): Likewise.
4630 (del_range_1): Call update_compositions.
4631 (del_range_byte): Likewise.
4632 (del_range_both): Likewise.
4633 (Fcombine_after_change_execute): Likewise.
4634
4635 * intervals.h: Include composite.h.
4636 (get_property_and_range): Extern it.
4637 (Vtext_property_default_nonsticky): Extern it.
427ec082 4638
5ec14d3c
KH
4639 * intervals.c (adjust_intervals_for_insertion): To check stickines
4640 of properties, pay attention to text-property-default-nonsticky.
4641 (merge_properties_sticky): Likewise.
4642 (get_property_and_range): New function.
4643
4644 * keyboard.c (Vdisable_point_adjustment): New variable.
4645 (Vglobal_disable_point_adjustment): New variable.
4646 (syms_of_keyboard): Declare them as Lisp variables.
4647 (command_loop_1): Check them and call adjust_point_for_property if
4648 necessary.
4649 (adjust_point_for_property): New function.
4650
4651 * keymap.c (push_key_description): Adjusted for the change of
4652 CHAR_STRING.
4653 (Ftext_char_description): Likewise.
4654
4655 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4656 (hash_put): Adjusted for the change of the definition.
4657 (signal_after_change): Likewise.
4658 (check_point_in_composition): Extern it.
4659
4660 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4661 Delete a code that handles an invalid too-long multibyte sequence
4662 because we are now sure that we never encounter with such a
4663 sequence.
4664 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4665 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4666 (init_obarray): Likewise.
4667 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4668
4669 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4670
4671 * process.c: Include composite.h.
4672 (read_process_output): Call update_compositions.
4673
4674 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4675
4676 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4677
4678 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4679 character.
4680
4681 * term.c (encode_terminal_code): Delete codes for a composite
4682 character. Adjusted for the change of CHAR_STRING.
4683 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4684 Delete codes for a composite character.
4685
4686 * textprop.c (Vtext_property_default_nonsticky): New variable
4687 (syms_of_textprop): Declare it as a Lisp variable.
4688
4689 * window.c (Frecenter): Clear all caches of compositions.
4690
4691 * xdisp.c (it_props): Add an entry for composition.
4692 (face_before_or_after_it_pos): For composition, check face of a
4693 character after the composition.
4694 (handle_composition_prop): New function.
4695 (get_next_display_element): Adjusted for the change of
4696 CHAR_STRING.
4697 (set_iterator_to_next): Handle the case that it->method ==
4698 next_element_from_composition.
4699 (next_element_from_composition): New function.
4700 (message_dolog): Adjusted for the change of CHAR_STRING.
4701 (set_message_1): Likewise.
4702 (check_point_in_composition): New function.
4703 (reconsider_clip_changes): If point moved into or out of
4704 composition, set b->clip_changed to 1 to force updating of the
4705 screen.
4706 (disp_char_vector): Delete codes for a composite character.
4707 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4708
4709 * xfaces.c (choose_face_fontset_font): Delete codes for a
4710 composite character.
4711 (realize_x_face): Likewise. Change a place to set local variable
4712 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4713
4714 * xfns.c: Include intervals.h.
4715 (syms_of_xfns): Make `display' property nonsticky by default.
4716
4717 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4718 for find_charset_in_str.
4719
4720 * xterm.h (struct x_output): Change member font_baseline to
4721 baseline_offset.
4722
4723 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4724 for composition.
4725 (x_append_composite_glyph): New function.
4726 (VCENTER_BASELINE_OFFSET): New macro.
4727 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4728 of struct it for the composition. Cache pixel offsets in the
4729 struct composition. Delete codes for a composite character.
4730 Handle Vignore_relative_composition in composition code.
4731 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4732 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4733 (x_compute_glyph_string_overhangs): Likewise.
4734 (x_get_glyph_overhangs): Delete codes for a composite character.
4735 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4736 (x_draw_glyph_string_background): Likewise. Delete codes for
4737 checking s->gidx for a composition.
4738 (x_draw_glyph_string_foreground): Delete code for a composite
4739 character.
4740 (x_draw_composite_glyph_string_foreground): New function.
4741 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4742 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4743 (struct work): Deleted.
4744 (x_fill_composite_glyph_string): Argument changed. Mostly
4745 rewritten for that.
4746 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4747 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4748 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4749 (BUILD_GLYPH_STRINGS): For composition, call
4750 BUILD_COMPOSITE_GLYPH_STRING.
4751 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4752 f->output_data.x->font_baseline.
4753
c3c60f13
GM
47541999-12-14 Gerd Moellmann <gerd@gnu.org>
4755
4756 * xterm.c (show_mouse_face): Don't use updated_area, use
4757 TEXT_AREA.
4758
83c8f461 47591999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4760
4761 * minibuf.c (Fall_completions): Doc fix.
4762
83c8f461 47631999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4764
4765 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
4766 has been changed by the Lisp code.
4767
d8eccf12
GM
47681999-12-12 Gerd Moellmann <gerd@gnu.org>
4769
4770 * xfns.c: Indentation fixes.
4771
ae56feae
SM
47721999-12-10 Stefan Monnier <monnier@cs.yale.edu>
4773
4774 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
4775
dfa1c6ae
GM
47761999-12-10 Gerd Moellmann <gerd@gnu.org>
4777
4778 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
4779 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
4780
4781 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
4782 to frame.h.
4783
ec18280f
SM
47841999-12-09 Stefan Monnier <monnier@cs.yale.edu>
4785
4786 * keyboard.c (Qratio): New symbol.
4787 (scroll_bar_parts): Add `Qratio' to it.
4788 (syms_of_keyboard): Init `Qratio'.
4789 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
4790 * xterm.c (#includes): Allow compilation with only Xaw.
4791 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
4792 (xt_action_hook): Replace XAW3D by XAW.
4793 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
4794 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
4795 Determine epsilon dynamically and don't try to be too clever.
4796 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
4797 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
4798 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
4799 scrollbar (using `ratio').
4800 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
4801 scrollbar we have so as to set it up more optimally and to fix
4802 xaw3d_arrow_scroll and xaw3d_pick_top.
4803 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
4804 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
4805 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
4806 is not ignored, using a major gross hack.
4807 (x_initialize): Init default values for xaw3d_arrow_scroll and
4808 xaw3d_pick_top.
4809
83b6d970
DL
48101999-12-09 Dave Love <fx@gnu.org>
4811
4812 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
4813
3648c842
GM
48141999-12-08 Gerd Moellmann <gerd@gnu.org>
4815
4816 * eval.c: Remove conditional compilation on `standalone'.
4817 (call_debugger): When entering the debugger while redisplaying,
4818 reset redisplaying_p, and go back to the top-level if the debugger
4819 returns.
4820
05e71564
GM
48211999-12-07 Gerd Moellmann <gerd@gnu.org>
4822
4823 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
4824 basic faces are realized before trying to use face `menu'.
4825
4826 * window.c (delete_window): Block input for the time window
4827 matrices are being changed.
4828
b46cd536
DL
48291999-12-07 Dave Love <fx@gnu.org>
4830
4831 * lread.c (Fintern_soft): Fix newlines in doc string.
4832
96acb1f7
GM
48331999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
4834
4835 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
4836 duplicate definition of ElfW.
4837 (find_section): Copied from unexsgi.c.
4838 (unexec): Use find_section. Adjust whitespace. Initialize
4839 new_data2_offset based on old_data, not sbss (this fixes a bug on
4840 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
4841 Adjust test for presence of .mdebug section to the new return
4842 value of find_section.
427ec082 4843
96acb1f7
GM
48441999-12-07 Gerd Moellmann <gerd@gnu.org>
4845
4846 * unexelf.c: Merge changes from 20.5.
4847 (unexec): Handle .lit4 and .lit8 unconditionally.
4848
4849 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
4850 unexsgi.o again.
427ec082 4851
96acb1f7
GM
4852 * m/iris5d.h (UNEXEC): Likewise.
4853
7dae4502
SM
48541999-12-06 Stefan Monnier <monnier@cs.yale.edu>
4855
4856 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
4857 (syms_of_editfns): Register it.
4858 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
4859 (del_range_1, del_range_2): Add a ret_string argument to
4860 request that the deleted text be returned.
4861 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 4862 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
4863 * casefiddle.c (casify_region): Update del_range_1 call.
4864 * coding.c (code_convert_region): Update del_range_2 call.
4865 * fileio.c (Finsert_file_contents): Update del_range_2 call.
4866
397e4fae
GM
48671999-12-06 Gerd Moellmann <gerd@gnu.org>
4868
4869 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
4870
3d973f71
GM
48711999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
4872
4873 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 4874
740e985f
EZ
48751999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4876
4877 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
4878
4879 * insdel.c (adjust_markers_for_delete): Fix last change.
4880
2d764c78
EZ
48811999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4882
4883 Changes for automatic remapping of X colors on terminal frames:
4884
4885 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
4886 frames.
4887 (Vface_tty_color_alist): Remove.
4888 (tty_defined_color): New function.
4889 (defined_color): Rewrite to support any type of frame.
4890 (tty_color_name): New function.
4891 (face_color_supported_p, Fface_color_gray_p,
4892 Fface_color_supported_p): Support non-X frames.
4893 (load_color): Enclose the color name in quotes, in the log
4894 messages. Remove DOS-specific version of load_color.
4895 (realize_tty_face): Take the supported colors from
4896 tty-color-alist. Support translation of X colors to the closest
4897 tty color, for both MSDOS and tty frames.
4898 [MSDOS]: Don't invert face colors if they were taken from the
4899 frame colors.
4900 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
4901
4902 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
4903 Define a mostly empty surrogate.
4904 (tty_display): Declare.
4905
4906 * frame.c (make_terminal_frame) [!macintosh]: Don't use
4907 tty_display.
4908 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
4909 frames when the frame's param_alist includes 'reverse.
4910 (tty_display): Define.
4911 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
4912 output_data.x member.
4913 (Fframe_parameters): Return foreground and background color names
4914 on tty frames as well, in addition to MSDOS frames.
4915
4916 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
4917 selected_frame.
4918 (struct x_output): Remove unused members; document who uses each
4919 member.
4920 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
4921 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
4922 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
4923 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
4924 unused macro definintions.
4925
4926 * msdos.c (IT_set_frame_parameters): Don't call
4927 recompute_basic_faces, the next redisplay will, anyway.
4928 (x_current_display): Remove unused variable.
4929 Many functions: changes for Lisp_object selected_frame.
4930 (IT_set_face): If the tty_reverse_p flag is set for the face,
4931 reverse the foreground and background colors.
4932 (Fmsdos_remember_default_colors): New function.
4933 (syms_of_msdos): Defsubr it.
4934 (IT_set_frame_parameters): Use initial_screen_colors[] when
4935 creating a new frame. If the frame parameters include 'reverse,
4936 swap the foreground and background colors.
4937 (internal_terminal_init): Initialize initial_screen_colors to -1.
4938 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
4939 cus-start.el.
4940
4941 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
4942
4943 * xfns.c (x_defined_color): Rename from defined_color. All
4944 callers changed.
4945 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4946 all callers changed.
4947 (Fxw_color_values): Renamed from Fx_color_values; all callers
4948 changed.
4949 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4950 callers changed.
4951 (x_window_to_frame, x_any_window_to_frame,
4952 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4953 x_top_window_to_frame): Use !FRAME_X_P instead of
4954 f->output_data.nothing.
4955 * xterm.h (x_defined_color): Rename from defined_color.
4956
4957 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
4958 f->output_data.nothing.
4959 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4960 all callers changed.
4961 (Fxw_color_values): Renamed from Fx_color_values; all callers
4962 changed.
4963 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4964 callers changed.
4965
4966 * dispextern.h (tty_color_name): Add prototype.
4967
4968 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
4969 f->output_data.nothing.
4970 * w32menu.c (menubar_id_to_frame): Likewise.
4971 * w32term.h (w32_output): Declare.
4972
4973 * dosfns.c (Qmsdos_color_translate): Remove.
4974 (msdos_stdcolor_name): Now returns a Lisp_Object.
4975 * dosfns.h (Qmsdos_color_translate): Remove.
4976
4977 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
4978
b3e5232e
KH
49791999-12-06 Kenichi Handa <handa@etl.go.jp>
4980
4981 * fileio.c (decide_coding_unwind): Renamed from
4982 set_auto_coding_unwind.
4983 (Finsert_file_contents): Make single unwind protect to call both
4984 Vset_auto_coding_function and Ffind_operation_coding_system.
4985
4986 * insdel.c (adjust_markers_for_delete): Make it non-static.
4987
db0e466c
SM
49881999-12-04 Stefan Monnier <monnier@cs.yale.edu>
4989
4990 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
4991 operators and handle them properly.
4992 * regex.h (RE_ALL_GREEDY): New option.
4993 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
4994 sorting would put it.
4995 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
4996 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
4997
22afa6e8
DL
49981999-12-04 Dave Love <d.love@dl.ac.uk>
4999
5000 * m/arm.h: New file.
5001
40afb967
DL
50021999-12-03 Dave Love <fx@gnu.org>
5003
5004 * editfns.c (Fmessage_or_box): Use use_dialog_box.
5005
ddf8eff5
GM
50061999-12-02 Gerd Moellmann <gerd@gnu.org>
5007
5008 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
5009 for building with Motif.
5010
5011 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
5012 unexelf.o.
427ec082 5013
ddf8eff5
GM
5014 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
5015
fa09a82d
DL
50161999-12-01 Dave Love <fx@gnu.org>
5017
5018 * emacs.c (main): Set LANG=C iff AX3_2 defined.
5019
ddf8eff5
GM
50201999-11-28 Gerd Moellmann <gerd@gnu.org>
5021
5022 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
5023 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
5024 macros.
5025
5026 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
5027
fa09a82d
DL
50281999-11-28 eliz <eliz@dlpx1>
5029
5030 * emacs.c (synchronize_locale): Avoid compiler warnings about
5031 pointer type mismatch.
5032
f9632fc8
GM
50331999-11-28 Gerd Moellmann <gerd@gnu.org>
5034
717d0121
GM
5035 * window.c (Fwindow_end): Don't call temp_set_pt_both with
5036 out of range position.
5037
427ec082 5038 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5039 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5040
59c65f1e
EZ
50411999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5042
613a8346
EZ
5043 * charset.c (Fmake_char_internal): Print the charset ID when
5044 signalling an error.
5045
59c65f1e
EZ
5046 * emacs.c (synchronize_locale): Avoid compiler warnings about
5047 pointer type mismatch.
5048
83c8f461 50491999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5050
5051 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5052
18df9369
GM
50531999-11-26 Gerd Moellmann <gerd@gnu.org>
5054
65a3ccf7
GM
5055 * puresize.h (BASE_PURESIZE): Increase to 550000.
5056
b3b98592
GM
5057 * textprop.c (set_text_properties): New function. Like
5058 Fset_text_properties, but with additional parameter
5059 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5060 changes.
5061 (Fset_text_properties): Use it.
5062
5063 * insdel.c (insert_1_both): Call set_text_properties with last
5064 parameter nil so that no after changes will be signaled.
5065
5066 * lisp.h: Add prototype for set_text_properties.
5067
18df9369
GM
5068 * xfaces.c (set_lface_from_font_name): Fix previous change.
5069 (recompute_basic_faces): Change assert to abort.
5070
71a8e74b
DL
50711999-11-25 Dave Love <fx@gnu.org>
5072
5073 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5074 (Fmember, Fdelq, Fdelete): Inline car.
5075 (Fy_or_n_p): Doc fix.
5076
bc6a5782
GM
50771999-11-25 Gerd Moellmann <gerd@gnu.org>
5078
3221576b 5079 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5080 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5081 is not set, try to use a reasonable default.
5082
bc6a5782
GM
5083 * dispnew.c (direct_output_for_insert): Set glyph row's
5084 displays_text_p flag. Correct window's window_end_vpos if
5085 necessary.
5086
0c8559bb
PE
50871999-11-25 Paul Eggert <eggert@twinsun.com>
5088
5089 * emacs.c (fixup_locale): Don't bother to record initial locale.
5090 (synchronize_locale): If the desired locale is nil,
5091 treat it as if it were the empty string,
5092 so that we set the locale from the environment.
5093
35737351
KH
50941999-11-25 Kenichi Handa <handa@etl.go.jp>
5095
5096 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5097 of the current buffer via Fset.
5098
5562b47f
DL
50991999-11-24 Dave Love <fx@gnu.org>
5100
5562b47f
DL
5101 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5102
5103 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5104
00da0e4a
GM
51051999-11-24 Gerd Moellmann <gerd@gnu.org>
5106
5107 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5108
5109 * emacs.c (PVEC_FLAG): New variable.
5110
b1775dc1
GM
51111999-11-23 Gerd Moellmann <gerd@gnu.org>
5112
5113 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5114 that fails on IBM PowerPC, AIX 4.2.
427ec082 5115
08de6200
EZ
51161999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5117
5118 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5119 string of mode-line-format. Remove the obsolete %t.
5120
02fda8ff
GM
51211999-11-22 Gerd Moellmann <gerd@gnu.org>
5122
f2fa858f
GM
5123 * dispnew.c (direct_output_for_insert): Increment glyph positions
5124 for glyphs from buffer text only.
5125
02fda8ff
GM
5126 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5127 (gdb_data_seg_bits): New variables.
427ec082 5128
02fda8ff
GM
5129 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5130 work on systems not allowing enumerators > INT_MAX, and it
5131 won't work if EMACS_INT is long long.
5132
1b0d24e7
PE
51331999-11-22 Paul Eggert <eggert@twinsun.com>
5134
5135 Port to SunOS 4.1.x again. Help out with Alpha port.
5136 Rename messages-locale to system-messages-locale,
5137 and likewise for time-locale.
427ec082 5138
1b0d24e7
PE
5139 * callproc.c (strerror): Remove decl.
5140 * fileio.c (strerror): Likewise.
5141 * process.c (strerror): Likewise.
5142 * emacs.c (strerror): Likewise.
5143 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5144 All uses changed.
5145 (Vprevious_system_messages_locale): Likewise, from
5146 Vprevious_messages_locale.
5147 (Vsystem_time_locale): Likewise, from Vtime_locale.
5148 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5149 (ABORT_RETURN_TYPE): New macro.
5150 (abort): Return type is now ABORT_RETURN_TYPE.
5151 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5152 defined.
5153 (syms_of_emacs): messages-locale -> system-messages-locale,
5154 previous-messages-locale -> previous-system-messages-locale,
5155 time-locale -> system-time-locale,
5156 previous-time-locale -> previous-system-time-locale.
5157
5158 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5159 (const): Do not define; that's config.h's job.
5160 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5161 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5162 (<stddef.h>): Include if STDC_HEADERS is defined.
5163 (FREE_RETURN_TYPE): New macro.
5164 (free): Return type is now FREE_RETURN_TYPE.
5165
5166 * lisp.h (synchronize_system_time_locale): Renamed from
5167 synchronize_time_locale. All uses changed.
5168 (synchronize_system_messages_locale): Likewise, from
5169 synchronize_messages_locale.
5170
5171 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5172 stdlib.h now does this.
5173
5174 * process.c (sys_siglist): Remove.
5175
5176 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5177 New macros.
5178
5179 * syntax.c (scan_sexps_forward): Use abort, not assert.
5180
5181 * sysdep.c (my_sys_siglist): New var.
5182 (sys_siglist): New macro. Remove old initialized vars of same name.
5183 (init_signals): Initialize sys_siglist.
5184
5185 * xfns.c (abort): Remove decl; stdlib.h now does this.
5186
0dcd5b54
DL
51871999-11-18 Dave Love <fx@gnu.org>
5188
946173ad
DL
5189 * filelock.c: Add forward declaration for get_boot_time_1.
5190
0dcd5b54
DL
5191 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5192
71447e8f
GM
51931999-11-18 Gerd Moellmann <gerd@gnu.org>
5194
5195 * buffer.h (struct buffer_text): Add comment about moving
5196 buffer text if REL_ALLOC is defined.
5197
eeedff63
KH
51981999-11-18 Kenichi Handa <handa@etl.go.jp>
5199
5200 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5201
5202 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5203 memory for push_key_description.
5204
5205 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5206 allocate memory for push_key_description.
5207 (describe_buffer_bindings): Likewise.
5208
5d7e4a2c
GM
52091999-11-17 Gerd Moellmann <gerd@gnu.org>
5210
5211 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5212 (Fx_hide_busy_cursor): Ditto.
5213
52141999-11-17 Marco Walther <walther@siemens-pyramid.com>
5215
5216 * unexsni.c (unexec): Handle .rel.dyn section.
5217
b5b41e02
DL
52181999-11-16 Dave Love <fx@gnu.org>
5219
5220 * doc.c (Fdocumentation): Remove gcpro here too.
5221
e35b6123
GM
52221999-11-16 Gerd Moellmann <gerd@gnu.org>
5223
5224 * keyboard.c (command_loop_1): Remove no_redisplay.
5225
83c8f461 52261999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5227
5228 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5229 in noninteractive.
5230
b05d3bee
GM
52311999-11-14 Gerd Moellmann <gerd@gnu.org>
5232
5bcfeb49
GM
5233 * xdisp.c (ensure_echo_area_buffers): New.
5234 (with_echo_area_buffer): Use it.
5235 (setup_echo_area_for_printing): Ditto.
5236
b05d3bee
GM
5237 * buffer.c (indicate-empty-lines): Doc-fix.
5238
9b2e6e4c
GM
52391999-11-12 Gerd Moellmann <gerd@gnu.org>
5240
e7f90eab
GM
5241 * term.c (term_init): If "op" isn't available, don't support color
5242 because we can't switch back to the default foreground and
5243 background.
5244
9b2e6e4c
GM
5245 * doc.c (Fdocumentation_property): Remove GCPRO because
5246 Fsubstitute_command_keys gcpro's the string.
5247
1bf21027
KH
52481999-11-12 Kenichi Handa <handa@etl.go.jp>
5249
5250 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5251
3bc6df53
GM
52521999-11-11 Gerd Moellmann <gerd@gnu.org>
5253
5254 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5255 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5256 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5257
35a5514b
GM
52581999-11-10 Gerd Moellmann <gerd@gnu.org>
5259
5260 * xfns.c (QCuser_data): Removed.
5261 (syms_of_xfns): Initialization of QCuser_data removed.
5262 (parse_image_spec): Don't handle :user-data specially. Allow
5263 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5264 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5265 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5266 parse_image_spec accordingly.
5267
83c8f461 52681999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5269
5270 * cmds.c (Fbeginning_of_line): Doc fix.
5271 (Fend_of_line): Doc fix.
5272
5273 * editfns.c (Fline_beginning_position): If N is not 1,
5274 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5275
5276 * syntax.c (Fforward_word): Handle fields even if would have hit
5277 an edge of the buffer. Return nil if affected by fields.
5278
83c8f461 52791999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5280
5281 * editfns.c (preceding_pos): Function deleted.
5282 (text_property_stickiness): Decrement POS directly.
5283 Fix a confusion that used PT instead of POS.
5284
5285 * editfns.c (find_field): Properly handle the case
5286 of a field boundary where `field' inherits from neither side.
5287
5288 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5289 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5290
fa9aabf6
GM
52911999-11-08 Gerd Moellmann <gerd@gnu.org>
5292
5293 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5294 BEFORE_POTENTIAL_GC before DISCARD.
5295
4015b3c0
GM
52961999-11-07 Gerd Moellmann <gerd@gnu.org>
5297
033a5fa3
GM
5298 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5299
5300 * lisp.h: Add prototype for unmark_byte_stack.
5301
5302 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5303 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5304 XUNMARK.
5305
55b064bd
GM
5306 * xdisp.c (resize_mini_window): Fix computation of needed
5307 mini-window height.
5308
5309 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5310 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5311
4015b3c0 5312 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5313 locally there. Rearrange case statements so that those most
4015b3c0
GM
5314 frequently executed come first. Avoid goto's in frequently
5315 executed cases.
5316
fe512f27
GM
53171999-11-05 Gerd Moellmann <gerd@gnu.org>
5318
dd59e217
GM
5319 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5320 AFTER_POTENTIAL_GC around internal_catch.
5321
bcf28080
GM
5322 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5323 relocate_byte_pcs.
5324 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5325
5326 * eval.c (struct catchtag): Add member byte_stack.
5327 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5328 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5329 catchtag.
5330 (unwind_to_catch): Restore byte_stack_list from catchtag.
5331
5332 * lisp.h: Add prototypes for new functions in bytecode.c.
5333 Add extern declaration for byte_stack_list.
5334
5335 * bytecode.c (struct byte_stack): New.
5336 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5337 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5338 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5339 (HANDLE_RELOCATION): Removed.
5340 (Fbyte_code): Use byte_stack structures.
5341
4d59c34c
GM
5342 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5343
fe512f27
GM
5344 * buffer.c (syms_of_buffer): Extend documentation of
5345 mode-line-format.
5346
60b64cd6
GM
53471999-11-04 Gerd Moellmann <gerd@gnu.org>
5348
5349 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5350
5351 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5352 Ferase_field instead of Fdelete_field.
5353
b51b619b
GM
53541999-11-03 Gerd Moellmann <gerd@gnu.org>
5355
5356 * dispnew.c (Finternal_show_cursor): Change it to set the
5357 cursor on/off, not toggle its state.
5358 (Finternal_show_cursor_p): New.
5359 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5360
5865af0d
DL
53611999-11-03 Dave Love <fx@gnu.org>
5362
5363 * charset.c (split_non_ascii_string): Define return value.
5364
82a700f3
GM
53651999-11-03 Gerd Moellmann <gerd@gnu.org>
5366
edfef199
GM
5367 * minibuf.c (string_to_object): New.
5368 (read_minibuf_noninteractive): New.
5369 (read_minibuf): Call read_minibuf_noninteractive if
5370 noninteractive. Use string_to_object.
5371
82a700f3
GM
5372 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5373
b5540f0d
DL
53741999-11-02 Dave Love <fx@gnu.org>
5375
e69dcd60
DL
5376 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5377
827a1788
DL
5378 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5379 declared with glibc2.
b5540f0d 5380
a69a6e61
GM
53811999-11-02 Gerd Moellmann <gerd@gnu.org>
5382
5383 * lisp.h (QUIT): Give it statement form.
5384
87e21fbd
DL
53851999-11-02 Dave Love <fx@gnu.org>
5386
5387 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5388
1b335865
GM
53891999-11-02 Gerd Moellmann <gerd@gnu.org>
5390
9fb5e03d
GM
5391 * xfns.c (QCuser_data): New.
5392 (syms_of_xfns): Initialize QCuser_data.
5393 (parse_image_spec): Ignore :user-data DATA properties.
5394
1b335865
GM
5395 * xdisp.c (display_line): Set charpos of first glyph in blank
5396 lines not corresponding to any text to -1, even if no glyphs are
5397 filled in in that line.
5398
e76f1c44
GM
53991999-11-01 Gerd Moellmann <gerd@gnu.org>
5400
427ec082 5401 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5402 png_get_sRGB in #ifdef.
5403
111259b4
GM
5404 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5405 (syms_of_display): Use the new name.
5406
dd5c96e8
GM
5407 * textprop.c (verify_interval_modification): Signal text-read-only
5408 instead of calling error.
5409
db8878fb
GM
5410 * data.c (Qtext_read_only): New built-in error.
5411 (syms_of_data): Initialize it.
5412
5413 * lisp.h: Add extern declaration for Qtext_read_only.
5414
e76f1c44
GM
5415 * syntax.c: Remove whitespace after open or in front of closing
5416 parentheses.
5417
83c8f461 54181999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5419
5420 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5421
7843e09c
GM
54221999-10-31 Gerd Moellmann <gerd@gnu.org>
5423
575ed805
GM
5424 * xdisp.c (resize_mini_window): Compute needed height differently.
5425
7843e09c
GM
5426 * fns.c (Flength): Unroll loop over lists.
5427
5428 * xdisp.c (append_space): Return non-zero if space was appended.
5429 (display_line): Set charpos of first glyph to -1 only if that
5430 glyph is the space added by append_glyph.
5431
83c8f461 54321999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5433
5434 * print.c (strout): Consider `noninteractive' and use stdout
5435 only when PRINTCHARFUN is t.
5436
5437 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5438 (gcpro_level): Declare it extern.
5439 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5440 Alternate definitions that set `level' and increment `gcpro_level'.
5441 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5442
5443 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5444 (init_eval) [DEBUG_GCPRO]: Initialize it.
5445 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5446 from remaining gcprolist.
5447
3636f7a3
KH
54481999-10-29 Kenichi Handa <handa@etl.go.jp>
5449
5450 * coding.c (code_convert_region): Update `dst' correctly.
5451
a2ad7096
GM
54521999-10-28 Gerd Moellmann <gerd@gnu.org>
5453
5454 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5455 (Frassoc): Rewritten.
5456
1e3196e8
GM
54571999-10-27 Noah Friedman <friedman@splode.com>
5458
5459 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5460 Define PTY_NAME_SPRINTF.
5461 Redefine PTY_TTY_NAME_SPRINTF.
5462 * config.in: Add undef for HAVE_DEV_PTMX.
5463
83c8f461 54641999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5465
5466 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5467 as arg to DEBUG_POP and DEBUG_PRINT.
5468
83c8f461 54691999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5470
5471 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5472 (Ffset): Call Qad_activate_internal.
5473 (syms_of_data): Initialize Qad_activate_internal.
5474
26922151
GM
54751999-10-27 Gerd Moellmann <gerd@gnu.org>
5476
5477 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5478 Vterminal_frame is selected and Vwindow_system is non-nil.
5479
67a5596f
GM
54801999-10-26 Gerd Moellmann <gerd@gnu.org>
5481
2bea706b
GM
5482 * xdisp.c (echo_area_display): Put previous change in #if 0.
5483
67a5596f
GM
5484 * emacs.c (standard_args): Add `file' as synonym for `visit',
5485 `execute' as synonym for `eval'.
5486 (main): Add new options to usage message.
5487
81dc5de5
GM
54881999-10-25 Gerd Moellmann <gerd@gnu.org>
5489
5490 * data.c (Qhash_table): New.
5491 (Ftype_of): Return it for hash tables.
5492 (syms_of_data): Initialize Qhash_table.
5493
83c8f461 54941999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5495
5496 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5497
66e4690f 54981999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5499
7539e11f
KR
5500 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5501 lisp.h.
5502
5503 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5504 Fbuffer_local_variables, Fother_buffer, record_buffer,
5505 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5506 swap_out_buffer_local_variables, overlays_at, overlays_in,
5507 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5508 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5509 Foverlay_put, report_overlay_modification, evaporate_overlays):
5510 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5511 references.
5512 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5513 swap_in_symval_forwarding, set_internal, default_value,
5514 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5515 Fmake_variable_frame_local, Flocal_variable_p,
5516 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5517 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5518 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5519 * emacs.c (main): Likewise.
5520 * fontset.c (fs_load_font, fs_register_fontset,
5521 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5522 Fnew_fontset, Fset_fontset_font): Likewise.
5523 * frame.c (do_switch_frame, next_frame, prev_frame,
5524 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5525 Likewise.
5526 * keyboard.c (read_char, help_char_p, event_to_kboard,
5527 kbd_buffer_get_event, timer_start_idle, timer_check,
5528 make_lispy_event, apply_modifiers, reorder_modifiers,
5529 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5530 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5531 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5532 Fcommand_execute, Fexecute_extended_command): Likewise.
5533 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5534 Fall_completions): Likewise.
5535 * window.c (Fset_window_margins): Likewise.
5536
5537 * callint.c (quotify_args): Don't explicitly use struct
5538 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5539
3a7093d8
KR
5540 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5541 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5542 if __ELF__ is defined.
5543
2a3d7146
GM
55441999-10-24 Gerd Moellmann <gerd@gnu.org>
5545
5546 * window.c (Fnext_window): Add a QUIT in the loop.
5547
8ac52782
GM
55481999-10-23 Gerd Moellmann <gerd@gnu.org>
5549
427ec082 5550 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5551 New targets.
5552
05f0d15a
DL
55531999-10-22 Dave Love <fx@gnu.org>
5554
5555 * emacs.c (main): Enable profiling conditional on __linux also.
5556
882fb0e6
GM
55571999-10-20 Gerd Moellmann <gerd@gnu.org>
5558
5559 * xrdb.c (x_load_resources): Set default resources for resource
5560 classes instead of for the specific Emacs.
5561
b5f5bc31
GM
55621999-10-19 Gerd Moellmann <gerd@gnu.org>
5563
66f4dd69
GM
5564 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5565 defines it that way.
427ec082 5566
b5f5bc31
GM
5567 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5568 if selected_frame is equal to Vterminal_frame.
5569
68c45bf0 55701999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5571
68c45bf0 5572 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5573
68c45bf0
PE
5574 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5575 when dumping, so that the dumped Emacs doesn't have stray locale info.
5576 (dired.o): Depend on systime.h.
5577 (editfns.o): Depend on coding.h.
5578
5579 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5580 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5581 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5582 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5583 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5584 Include <config.h> before any system include files.
5585
5586 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5587 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5588 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5589 xmenu.c, xterm.c:
5590 Do not include <stdlib.h>, as <config.h> does this now.
5591
5592 * callproc.c (Fcall_process):
5593 Synchronize messages locale before invoking strerror.
5594 Decode resulting string with locale-coding-system.
5595
5596 * coding.c (Vlocale_coding_system): New var.
5597 (syms_of_coding): Adjust to above change.
5598 (emacs_strerror): New function.
5599
5600 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5601
68c45bf0
PE
5602 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5603 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5604 HAVE_STRSIGNAL): New macros.
5605 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5606 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5607
5608 * dired.c: Include "systime.h".
5609 (Ffile_attributes): Do not cast s.st_size to int; this loses
5610 information if int is 32 bits but st_size and EMACS_INT are larger.
5611 Treat large device numbers like large inode numbers.
5612
5613 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5614
5615 * editfns.c: Include coding.h.
5616 (emacs_strftime): Remove decl.
5617 (emacs_strftimeu): New decl.
5618 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5619 Use emacs_strftimeu instead of emacs_strftime.
5620 (Fformat_time_string): Convert format string using
5621 Vlocale_coding_system, and convert result back. Synchronize time
5622 locale before invoking lower level function. Invoke
5623 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5624
68c45bf0
PE
5625 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5626 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5627 Vprevious_time_locale): New variables.
5628 (main): Invoke setlocale early, so that initial error messages are
5629 localized properly. But skip locale-setting if LC_ALL is "C".
5630 Fix up locale when it's safe to do so.
5631 (fixup_locale): Moved here from xterm.c.
5632 (synchronize_locale, synchronize_time_locale,
5633 synchronize_messages_locale): New functions.
5634 (syms_of_emacs): Accommodate above changes.
5635
5636 * fileio.c (report_file_error): Convert strerror output according
5637 to Vlocale_coding_system.
5638 (Finsert_file_contents): Check for arithmetic overflow in
5639 computations that depend on file size. Report IO errors
5640 with emacs_strerror, not strerror.
5641
5642 * fns.c (Fgethash): Declare dflt parameter.
5643
5644 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5645 is defined; that's config.h's job.
5646
5647 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5648 default these values to long, BITS_PER_LONG, and unsigned long.
5649 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5650 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5651 (code_convert_string_norecord, fixup_locale,
5652 synchronize_messages_locale, synchronize_time_locale,
5653 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5654 All Emacs callers of open, close, read, write changed to use
5655 emacs_open, emacs_close, emacs_read, emacs_write.
5656
5657 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5658 changed to file_tell.
5659 (saved_doc_string_position, prev_saved_doc_string_position): Now
5660 of type file_offset.
5661 (init_lread): Do not fix locale here; fixup_locale now does this.
5662
5663 * m/amdahl.h, s/usg5-4.h:
5664 (NSIG): Remove.
5665 (NSIG_MINIMUM): New macro.
5666
5667 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5668 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5669 s/umips.h, s/usg5-4.h:
5670 (SIGIO): Do not undef.
5671 (BROKEN_SIGIO): New macro.
5672
5673 * m/ustation.h:
5674 (SIGTSTP): Do not undef.
5675 (BROKEN_SIGTSTP): New macro.
5676
5677 * s/gnu-linux.h:
5678 (SIGPOLL, SIGURG): Do not undef.
5679 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5680
5681 * s/ptx4.h:
5682 (SIGINFO): Do not undef.
5683 (BROKEN_SIGINFO): New macros.
427ec082 5684
68c45bf0
PE
5685 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5686
5687 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5688 some Emacs-related changes merged.
5689
5690 * print.c (float_to_string): Prepend "-" to representation of a
5691 NaN if the NaN is negative.
5692
5693 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5694 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 5695
68c45bf0
PE
5696 * process.c (status_message, sigchld_handler): Synchronize locale,
5697 then use strsignal istead of sys_siglist.
5698 * w32proc.c (sys_wait): Likewise.
427ec082 5699
68c45bf0
PE
5700 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5701 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5702 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5703 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5704 (open, close, read, write, INTERRUPTIBLE_OPEN,
5705 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5706
5707 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5708
5709 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5710 sys_open, open): Remove.
5711 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5712 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5713 macros are no longer used.
5714 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5715 (emacs_close): Renamed from sys_close.
5716 (emacs_read): Renamed from sys_read.
5717 (emacs_write): Renamed from sys_write.
5718 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5719 (dup2): Do not print error on failure; the real dup2 doesn't.
5720 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5721
5722 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5723 is defined.
5724 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5725 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5726 (strsignal): Declare if !HAVE_STRSIGNAL.
5727
5728 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5729 (ElfW): Define in terms of ElfExpandBitsW.
5730
5731 * w32proc.c (sys_siglist): Remove decl.
5732
5733 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5734 with ANSI C.
5735 (display_string): Declare face_string_pos arg.
5736
5737 * xfns.c (Fx_show_tip): Declare timeout param.
5738
5739 * xterm.c: No need to include locale.h.
5740 (x_alloc_lighter_color, x_setup_relief_color):
5741 Pass arg as double, not float, for compatibility with ANSI C.
5742 (fixup_locale): Move to emacs.c.
5743 (x_term_init): Do not setlocale or fixup locale; the main program
5744 does this now.
5745
2f0b74ea
DL
57461999-10-18 Dave Love <fx@gnu.org>
5747
5748 * doc.c (Fdocumentation_property): Gcpro `tem'.
5749
471aa4a0
KH
57501999-10-18 Kenichi Handa <handa@etl.go.jp>
5751
5752 * lread.c (Fload): Calculate bytes of filename correctly.
5753 (openp): Likewise.
5754
aca2020b
KH
57551999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5756
5757 * print.c (print_preprocess): In case print-circle is nil,
5758 add OBJ to Vprint_number_table only when OBJ is a symbol.
5759
1f5fe392 57601999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
5761
5762 * coding.c (code_convert_string): Add record_unwind_protect to
5763 assure setting inhibit_pre_post_conversion back to zero. Take
5764 care of the multibyteness of the working buffer.
5765
5766 * coding.c (inhibit_pre_post_conversion): New variable.
5767 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
5768 ignore post-read-conversion and pre-write-conversion property of
5769 the coding system.
5770 (code_convert_region_unwind): New function.
5771 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
5772 running pre-write-conversion and post-read-conversion.
5773 (code_convert_string): Likewise.
5774
cd876a91
GM
57751999-10-17 Miles Bader <miles@gnu.org>
5776
5777 * editfns.c: Doc fix.
5778
57791999-10-17 Miles Bader <miles@gnu.org>
5780
5781 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
5782 argument preconditions of find_before_next_newline in the case
5783 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
5784 was indeed at the edge.
5785
57861999-10-17 Miles Bader <miles@gnu.org>
5787
5788 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
5789 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
5790
5791 * editfns.c (text_property_eq, text_property_stickiness): Don't
5792 use initializers for auto variables of type Lisp_Object.
5793 (find_field): Likewise. Use braces around nested ifs.
5794 (Fline_end_position): Store the raw eol in a variable, so that the
5795 final expression doesn't look so ugly.
5796 (Fconstrain_to_field): Doc fix.
5797 (preceding_pos): Renamed from `preceeding_pos'.
5798 (text_property_stickiness, find_field): Call preceding_pos,
5799 not preceeding_pos.
5800
58011999-10-17 Miles Bader <miles@gnu.org>
5802
5803 * editfns.c (Ffield_string_no_properties): New function.
5804 (text_property_stickiness, preceeding_pos): New functions.
5805 (Ffield_string): Remove PROPS parameter.
5806 (find_field): Add MERGE_AT_BOUNDARY parameter.
5807 Rewrite to use stickiness of `field' property to resolve
5808 ambiguous cases.
5809 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
5810 (Fconstrain_to_field): Likewise.
5811 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 5812 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
5813 Supply new MERGE_AT_BOUNDARY argument to find_field.
5814 (Fline_beginning_position, Fline_end_position): Supply new
5815 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
5816 Pass a value of Qt for the ONLY_IN_LINE argument to
5817 Fconstrain_to_field (only matters if N != 1).
5818 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
5819 to Fconstrain_to_field.
5820
5821 * minibuf.c (Fminibuffer_complete_word): Use
5822 Ffield_beginning to find the prompt end.
5823
58241999-10-17 Miles Bader <miles@gnu.org>
5825
5826 * editfns.c (Fconstrain_to_field): Add get/set-current-point
5827 behavior when NEW_POS is nil.
5828 (find_field): Use XSETFASTINT instead of make_number.
5829 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
5830 input string by seeing where the field begins, instead of
5831 looking at text-properties.
5832
58331999-10-17 Miles Bader <miles@gnu.org>
5834
5835 * editfns.c (Qfield): New variable.
5836 (find_field, Ferase_field, Ffield_string,
5837 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
5838 (Fline_beginning_position, Fline_end_position): Constrain to any field.
5839 (make_buffer_string_both): Remove minibuffer-prompt hack.
5840 (syms_of_editfns): Initialize Qfield, and subr entries for
5841 field functions above.
5842 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
5843 minibuf_save_list.
5844 Don't initialize minibuffer prompt length.
5845 Wrap prompt text-properties around the entire prompt.
5846 Add 'prompt text-property to prompt.
5847 Get final value with Ffield_string instead of make_buffer_string.
5848 (read_minibuf_unwind): Don't restore minibuffer prompt length from
5849 minibuf_save_list.
5850 (do_completion): Get minibuffer input with Ffield_string
5851 instead of Fbuffer_string.
5852 Erase minibuffer input with Ferase_field instead of erase_buffer.
5853 (Fminibuffer_complete_and_exit): Likewise.
5854 Test whether buffer is empty by looking for the 'prompt text
5855 property at the end.
5856 Set prompt length by looking for the end of the prompt text property,
5857 and save prompt length for later use (since there is no longer a
5858 buffer variable to get it from).
5859 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
5860 (syms_of_minibuf): Remove initializations of
5861 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
5862 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 5863 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
5864 Don't initialize prompt_end_charpos field.
5865 * syntax.c (Fforward_word): Likewise.
5866 Constrain to any field.
5867
3f6f7508
GM
58681999-10-16 Gerd Moellmann <gerd@gnu.org>
5869
5870 * window.c (enum save_restore_action): New.
5871 (save_restore_orig_size): Change parameter list. Add
5872 functionality to check for valid orig_top and orig_height members
5873 in a window tree.
5874 (grow_mini_window): Call save_restore_orig_size with new parameter
5875 list.
5876 (shrink_mini_window): Restore old window sizes only if old
5877 size information is valid in all windows in a window tree.
427ec082 5878
06482119
GM
58791999-10-15 Gerd Moellmann <gerd@gnu.org>
5880
2710454d
GM
5881 * xmenu.c (set_frame_menubar): Don't call
5882 x_set_menu_resources_from_menu_face here.
5883 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
5884
06482119
GM
5885 * xfns.c (gif_load): Fix handling of interlaced GIFs.
5886
17fa2837
DL
58871999-10-14 Dave Love <fx@gnu.org>
5888
5889 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
5890
45f93416
GM
58911999-10-14 Gerd Moellmann <gerd@gnu.org>
5892
5893 * process.c (Fopen_network_stream): Don't loop if gethostbyname
5894 fails and h_errno is TRY_AGAIN.
5895
c765b723
DL
58961999-10-13 Dave Love <fx@gnu.org>
5897
5898 * filelock.c (lock_file): Move gcpro of `fn'.
5899
dace7f4e
GM
59001999-10-10 Gerd Moellmann <gerd@gnu.org>
5901
5902 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 5903
83c8f461 59041999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
5905
5906 * print.c (print): When removing objects from Vprint_number_table,
5907 only scan the newly added objects.
5908 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
5909 unconditionally force it to stay in the table.
5910
85177c86
GM
59111999-10-09 Gerd Moellmann <gerd@gnu.org>
5912
5913 * xfns.c (prepare_image_for_display): Don't try to load image if
5914 loading it failed before.
5915 (lookup_image, prepare_image_for_display): Remember if loading the
5916 image failed.
5917 (xpm_load): Add missing UNBLOCK_INPUT.
5918
5919 * dispextern.h (struct image): New member load_failed_p.
5920
11e4de5d
SM
59211999-10-08 Stefan Monnier <monnier@cs.yale.edu>
5922
f28eba7b 5923 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
5924 in the docstring.
5925
f1da8f06
GM
59261999-10-08 Gerd Moellmann <gerd@gnu.org>
5927
5928 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
5929 Don't call XSetInputFocus because that can generate additional
5930 FocusIn events.
427ec082 5931
c37bbd4f
GM
59321999-10-07 Jeffrey C Honig <jch@bsdi.com>
5933
5934 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
5935
83c8f461 59361999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
5937
5938 * process.c (wait_reading_process_input): When trying to suck
5939 input from one process, for accept-process-output,
5940 exit that loop if we get EAGAIN or EWOULDBLOCK.
5941
577d9e2f
GM
59421999-10-07 Gerd Moellmann <gerd@gnu.org>
5943
5944 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
5945 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
5946 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
5947 Fpixmap_spec_p and Qpixmap_spec_p.
5948 (load_face_colors, check_lface_attrs,
5949 merge_face_vector_with_property,
5950 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
5951 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
5952 Fbitmap_spec_p.
5953
f5737ad2
GM
59541999-10-07 Gerd Moellmann <gerd@gnu.org>
5955
5956 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
5957 MODE_LINE_FACE_ID.
5958
5959 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
5960 (struct x_resources) [USE_X_TOOLKIT]: New.
5961 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
5962 [USE_MOTIF]: New.
5963 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
5964 [USE_LUCID]: New.
5965 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
5966 (Qmenu): New.
5967 (syms_of_xfaces): Initialize Qmenu.
5968 (realize_basic_faces): Realize face `menu'.
5969 (resolve_face_name): New.
5970 (lface_from_face_name): Use it.
5971 (Finternal_set_lisp_face_attribute): Ditto.
5972 (Fpixmap_spec_p): Rewritten. Extend doc string.
5973
5974 * xmenu.c (set_frame_menubar, xmenu_show): Call
5975 x_set_menu_resources_from_menu_face.
5976
5977 * dispextern.h (enum face_id): Add MENU_FACE_ID.
5978 (toplevel): Include X11/Intrinsic.h.
5979
6a1aa823
DL
59801999-10-03 Ken'ichi Handa <handa@gnu.org>
5981
5982 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
5983 correctly.
5984
26901792
DL
59851999-09-30 Kenichi Handa <handa@etl.go.jp>
5986
5987 * category.c (modify_lower_category_set): Set default value of
5988 TABLE correctly.
5989
5990 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
5991 size correctly.
5992
59931999-09-29 Gerd Moellmann <gerd@gnu.org>
5994
5995 * editfns.c (Fpropertize): Renamed from Fproperties.
5996
59971999-09-29 Gerd Moellmann <gerd@gnu.org>
5998
5999 * xdisp.c (resize_mini_window): Do nothing if frame is an X
6000 frame that hasn't been initialized yet.
6001
83c8f461 60021999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
6003
6004 * keymap.c (Fsingle_key_description): Make tem big enough.
6005 (describe_buffer_bindings): Make buf big enough.
6006
83c8f461 60071999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
6008
6009 * intervals.c (get_local_map): Use indirect_function,
6010 not Findirect_function.
6011
26901792
DL
60121999-09-27 Dave Love <fx@gnu.org>
6013
6014 * cm.h: Remove unneeded declaration of ospeed.
6015
60161999-09-26 Gerd Moellmann <gerd@gnu.org>
6017
6018 * lisp.h (toplevel): Add prototype for
6019 next_single_char_property_change.
6020
6021 * textprop.c (next_single_char_property_change): New.
6022
6023 * xdisp.c (display_prop_end, invisible_text_between_p): Use
6024 next_single_char_property_change.
6025
60261999-09-25 Gerd Moellmann <gerd@gnu.org>
6027
6028 * editfns.c (Fproperties): New.
6029 (syms_of_editfns): Defsubr it.
6030
6031 * xfns.c (lookup_image): Set image's timestamp because it's
6032 used when we look it up.
6033
60341999-09-23 Gerd Moellmann <gerd@gnu.org>
6035
6036 * window.c (enlarge_window): Add window parameter instead of using
6037 selected_window.
6038 (Fdisplay_buffer): Call it with window parameter instead of
6039 setting selected_window.
6040 (Fenlarge_window, Fshrink_window): Ditto.
6041 (shrink_mini_window): If there is no recorded height and position
6042 info, resize mini-window to height 1.
6043
6044 * xfns.c (image_error): Use add_to_log.
6045
6046 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6047 (load_face_font_or_fontset, load_color,
6048 merge_face_vector_with_property): Ditto.
6049
6050 * dispextern.h: Add prototype for add_to_log.
6051
6052 * xfaces.c (add_to_log): Move to xdisp.c.
6053
6054 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6055 parameter.
6056
60571999-09-23 Gerd Moellmann <gerd@gnu.org>
6058
6059 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6060 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6061
6062 * xdisp.c (resize_mini_window): Use grow_mini_window and
6063 shrink_mini_window.
6064
6065 * window.c (window_min_size): Add parameter ignore_fixed_p.
6066 (change_window_height): Call window_min_size with new parameter.
6067 (shrink_window_lowest_first, save_restore_orig_size,
6068 grow_mini_window, shrink_mini_window): New.
6069 (make_window, replace_window): Initialize orig_top and
6070 orig_height.
6071 (enlarge_window): Renamed from change_window_height. Make it
6072 static.
6073 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6074 enlarge_window instead of change_window_height.
6075
6076 * window.h (struct window): New members orig_top, orig_height.
6077 (toplevel): Add prototypes for grow_mini_window and
6078 shrink_mini_window. Remove prototype for change_window_height.
6079
60801999-09-21 Eli Zaretskii <eliz@gnu.org>
6081
6082 * frame.c (frame_name_fnn_p): Fix previous change.
6083
60841999-09-20 Gerd Moellmann <gerd@gnu.org>
6085
6086 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6087
6088 * dispnew.c (direct_output_for_insert): Cast arguments to
6089 safe_bcopy to char *.
6090
6091 * lread.c (readchar): Remove unused variables.
6092 (read_filtered_event, read1, Fmapatoms): Ditto.
6093 (toplevel): Include intervals.h.
6094
6095 * eval.c (Fsignal): Remove unused variables.
6096 (Fcommandp, do_autoload): Ditto.
6097
6098 * lisp.h: Add prototype for safe_bcopy, fatal.
6099
6100 * editfns.c (init_editfns): Remove unused variables.
6101 (Fgoto_char, Fchar_after, Fformat): Ditto.
6102 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6103
6104 * data.c (find_symbol_value): Remove unused variables.
6105 (Faref, Fstring_to_number): Ditto.
6106 (toplevel): Include stdio.h.
6107 (Fnumber_to_string): Cast XINT to long for %ld.
6108
6109 * casefiddle.c (casify_object): Remove unused variables.
6110 (casify_region): Ditto.
6111
427ec082 6112 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6113 conditinally compiled section in #ifdef.
6114 (toplevel): Include stdio.h.
6115
6116 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6117 keys_of_keymap, syms_of_keymap): Remove unused variables.
6118
61191999-09-20 Gerd Moellmann <gerd@gnu.org>
6120
6121 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6122 whose corresponding window rows have been disabled in
6123 try_window_id.
6124
61251999-09-20 Gerd Moellmann <gerd@gnu.org>
6126
6127 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6128 that window start is out of range.
6129 (handle_display_prop, handle_single_display_prop): Replace
6130 marginal area specifications like `left-margin' with `(margin
6131 left-margin)'.
6132 (Qmargin): New.
6133 (syms_of_xdisp): Initialize Qmargin.
6134
61351999-09-19 Gerd Moellmann <gerd@gnu.org>
6136
6137 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6138 describe_syntax, skip_chars): Remove unused variables.
6139 (back_comment, forw_comment): Add braces to if-statement with
6140 if-else as dependent statement.
6141
6142 * process.c (list_processes_1): Remove unused variables.
6143 (Fopen_network_stream, create_process): Add parentheses to
6144 conditional expressions.
6145 (create_process): Put declaration of sigchld in #if 0.
6146 (Fopen_network_stream): Removed unused variables.
6147 (Fopen_network_stream, wait_reading_process_input,
6148 wait_reading_process_input, send_process, send_process): Ditto.
6149 (toplevel): Add prototypes for set_waiting_for_input and
6150 keyboard_bit_set.
6151
6152 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6153
6154 * textprop.c (Fset_text_properties): Remove unused variables.
6155 (text_property_list, verify_interval_modification,
6156 interval_has_all_properties): Ditto.
6157
6158 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6159 (Fcall_process): Remove unused variable.
6160
6161 * keyboard.c (Frecursive_edit): Remove unused variable.
6162 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6163 timer_check, make_lispy_event, menu_bar_items,
6164 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6165 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6166 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6167 read_key_sequence): Ditto. Fread_key_sequence,
6168 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6169 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6170 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6171 (Fexecute_extended_command): Cast XINT to long for %ld.
6172 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6173 (toplevel): Include sys/types.h.
6174
6175 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6176 (toplevel): Add prototypes for stuff_char, and
6177 code_convert_string_norecord.
6178
61791999-09-19 Gerd Moellmann <gerd@gnu.org>
6180
6181 * buffer.h: Add prototype for r_re_alloc.
6182
6183 * insdel.c (copy_text): Removed unused variables.
6184 (count_combining_after, count_combining_after, insert_1_both,
6185 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6186 (adjust_after_replace, replace_range): Add parentheses to logical
6187 expressions. Remove unused variables.
6188 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6189 expression.
6190
6191 * alloc.c (Fgarbage_collect): Remove unused variable.
6192 (compact_strings): Add parentheses around assignments in
6193 conditional context.
6194 (toplevel): Put declaration of unused function clear_marks
6195 in #if 0 like its definition.
6196
6197 * lisp.h: Add prototype for shrink_regexp_cache,
6198 sweep_weak_hash_tables.
6199
62001999-09-19 Dave Love <fx@gnu.org>
6201
6202 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6203
6204 * doc.c (read_bytecode_char): Declare arg.
6205
6206 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6207 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6208
62091999-09-18 Richard Stallman <rms@gnu.org>
6210
6211 * xdisp.c (echo_area_display): Turn off code that returned
6212 without doing anything when using a terminal frame.
6213
83c8f461 62141999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6215
6216 * unexelf.c (unexec): Don't get confused by a short section
6217 just before the bss section.
6218
26901792
DL
62191999-09-16 Gerd Moellmann <gerd@gnu.org>
6220
6221 * emacs.c (main): Remove unused variables.
6222 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6223
6224 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6225 init_fileio_once, syms_of_sound, init_xfns, init_fns
6226 init_sound, check_message_stack.
6227
6228 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6229
6230 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6231 ambiguous else warning.
6232 (split_interval_left): Remove unused variables.
6233 (previous_interval, adjust_intervals_for_deletion,
6234 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6235 (icount, idepth, zero_length): Move into #if 0 section below
6236 original position where these are used.
6237
6238 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6239
6240 * buffer.c (Fkill_buffer): Remove unused variables.
6241 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6242 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6243 init_buffer_once, (syms_of_buffer): Ditto.
6244
6245 * xrdb.c (get_fallback): Remove unused variable.
6246 (x_load_resources): Ditto. Put local variable used for Motif only
6247 in #ifdef USE_MOTIF.
6248
62491999-09-16 Gerd Moellmann <gerd@gnu.org>
6250
6251 * minibuf.c (read_minibuf): Remove unused variables.
6252 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6253 (do_completion): Move assignment out of conditional context.
6254 (Fdisplay_completion_list): Add parentheses to conditional expression.
6255
6256 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6257
6258 * lisp.h: Add prototype for no_switch_window.
6259
6260 * window.c (Fset_window_buffer): Remove unused variables.
6261 (Fset_window_margins): Ditto.
6262
6263 * xdisp.c (resize_mini_window): Temporarily set the selected
6264 window's or Vminibuf_scroll_window's height to "fixed" around
6265 the call the change_window_height.
6266
6267 * window.c (window_fixed_size_p): Check window's height_fixed_p
6268 flag.
6269
6270 * window.h (struct window): New member height_fixed_p.
6271
6272 * dispnew.c (direct_output_forward_char): Don't use this method
6273 if showing a message or a message was just cleared because we
6274 might need to resize the mini-window.
6275
62761999-09-16 Gerd Moellmann <gerd@gnu.org>
6277
6278 * frame.c (Fdelete_frame): Correct local variable pointing to
6279 selected frame after selecting new frame.
6280
62811999-09-15 Richard Stallman <rms@gnu.org>
6282
6283 * puresize.h (BASE_PURESIZE): Increase to 525000.
6284
6285 * filelock.c (Vtemporary_file_directory): New variable.
6286 (syms_of_filelock): Set up Lisp variable.
6287
62881999-09-15 Gerd Moellmann <gerd@gnu.org>
6289
6290 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6291 (encode_terminal_code): Remove unused variables.
6292 (turn_off_face): Ditto.
6293 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6294
6295 * dispnew.c (update_frame_line): If writing whole desired line,
6296 don't clear to end of line if already at the end.
6297
62981999-09-15 Gerd Moellmann <gerd@gnu.org>
6299
6300 * xdisp.c (resize_mini_window): Don't report changed window
6301 height if it actually hasn't changed.
6302
427ec082 6303 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6304 unused variables.
6305 (mark_shell_size_user_specified): Put in #if 0 because not used.
6306 (create_frame_gcs): Put in #if 0 because currently unused.
6307 (first_frame_p): Ditto.
6308
6309 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6310 single_submenu, update_frame_menubar, set_frame_menubar,
6311 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6312 variables.
6313
6314 * print.c (PRINTFULLP): Removed because it is no longer used and
6315 is misleading.
6316 (Ferror_message_string): Remove unused variables.
6317 (print_object): Cast argument of sprintf to long for `%ld'
6318 specifier. Remove unused variable.
6319
63201999-09-14 Gerd Moellmann <gerd@gnu.org>
6321
6322 * sound.c (Fplay_sound): Remove usused variables.
6323 (be2hs): Put in #if 0 because it's currently not used.
6324
63251999-09-14 Ken Raeburn <raeburn@gnu.org>
6326
6327 * print.c (Ferror_message_string, print_error_message,
6328 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6329 member access.
6330
63311999-09-14 Gerd Moellmann <gerd@gnu.org>
6332
6333 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6334
6335 * frame.c (Fnext_frame): Remove unused variable(s).
6336 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6337 (store_frame_param): Add parentheses to conditional expression.
6338 (Fmodify_frame_parameters): Remove unused variables.
6339 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6340 Ditto.
6341
6342 * xfns.c (x_set_background_color): Remove unused variable(s).
6343 (x_set_border_pixel): Ditto.
6344 (x_set_menu_bar_lines): Put local variable used only for
6345 non-toolkit case in #ifdef/#endif.
6346 (x_figure_window_size): Remove unused variable(s).
427ec082 6347 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6348 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6349 png_load, jpeg_load, gif_load, x_create_tip_frame,
6350 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6351
6352 * xterm.c (x_scroll_bar_handle_click): Compile only if
6353 not USE_TOOLKIT_SCROLL_BARS.
6354 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6355
6356 * dispextern.h: Add prototypes for gamma_correct and
6357 x_kill_gs_process.
6358
6359 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6360 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6361 x_set_toolkit_scroll_bar_thumb): Ditto.
6362 (x_scroll_bar_create): Move local variable to the
6363 conditionally compiled section of code where it is used.
6364 (x_scroll_bar_create): Remove unused variable(s).
6365 (x_scroll_bar_remove, XTread_socket): Ditto.
6366 (XTread_socket) <ConfigureNotify>: Move variables used for
6367 non-toolkit case into conditionally compiled section of code.
6368
6369 * window.h (freeze_window_starts): Fix typo in prototype.
6370
6371 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6372 variable(s).
6373
6374 * lisp.h: Add prototype for debug_print.
6375
6376 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6377 to use do-while.
6378
6379 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6380 (Fchar_table_range, Fset_char_table_default, mapcar1,
6381 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6382
6383 * lisp.h: Add prototype for getloadavg.
6384
63851999-09-14 Andreas Schwab <schwab@gnu.org>
6386
6387 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6388
6389 * lisp.h: Declare close_file_unwind.
6390
63911999-09-14 Richard Stallman <rms@gnu.org>
6392
6393 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6394
63951999-09-13 Gerd Moellmann <gerd@gnu.org>
6396
6397 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6398 is always set correctly.
6399
64001999-09-13 Dave Love <fx@gnu.org>
6401
6402 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6403 declaration.
6404
64051999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6406
6407 * xdisp.c (QCfile): Move here from xfns.c.
6408 (syms_of_xdisp): Initialize it.
6409 (message2_nolog): Change for Lisp_Object selected_frame.
6410 (message3_nolog, message_with_string, message,
6411 setup_echo_area_for_printing, truncate_echo_area,
6412 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6413
64141999-09-13 Dave Love <fx@gnu.org>
6415
6416 * xterm.c: Don't continue #define args for benefit of old cc.
6417 (xt_action_hook): Indent #error for benefit of K&R cc.
6418
64191999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6420
6421 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6422 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6423 (XRINGBELL): Removed.
6424
64251999-09-13 Dave Love <fx@gnu.org>
6426
6427 * xfns.c (x_put_x_image): Make type consistent with declaration.
6428
6429 * fns.c (Fmake_hash_table): Fix string continuation.
6430
64311999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6432
6433 * xfns.c (QCfile): Moved to xdisp.c.
6434 (syms_of_xfns): Don't initialize QCfile.
6435 (check_x_frame): Change for Lisp_Object selected_frame.
6436 (check_x_display_info, x_get_resource_string): Ditto.
6437
64381999-09-13 Gerd Moellmann <gerd@gnu.org>
6439
6440 * minibuf.c (choose_minibuf_frame): Don't try to set the
6441 mini-buffer window's buffer, if the buffer is invalid.
6442
6443 * xfns.c (QCfile): Moved to xdisp.c.
6444 (syms_of_xfns): Don't initialize QCfile.
6445
6446 * xdisp.c (QCfile): Move here from xfns.c.
6447 (syms_of_xdisp): Initialize it.
6448
6449 * lisp.h (selected_frame): Add external declaration.
6450
6451 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6452 (Fx_store_cut_buffer_internal): Ditto.
6453 (Fx_rotate_cut_buffers_internal): Ditto.
6454
6455 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6456 selected_frame.
6457 (Finternal_set_lisp_face_attribute): Ditto.
6458 (Finternal_get_lisp_face_attribute): Ditto.
6459 (Finternal_lisp_face_empty_p): Ditto.
6460 (Fdump_face): Ditto.
6461
6462 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6463 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6464 set_terminal_window, set_scroll_region, reassert_line_highlight,
6465 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6466 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6467 encode_terminal_code, write_glyphs, term_init): Ditto.
6468
6469 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6470 (kbd_input_ast, read_input_waiting): Ditto.
6471
6472 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6473 selected_frame.
6474 (read_minibuf): Ditto.
6475
6476 * keyboard.c (command_loop_1): Change for Lisp_Object
6477 selected_frame.
6478 (cmd_error_internal, command_loop_1, read_char,
6479 kbd_buffer_get_event, read_avail_input,
6480 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6481 interrupt_signal, quit_throw_to_read_char): Ditto.
6482
6483 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6484 (Ffontset_info): DItto.
6485
6486 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6487
6488 * dispnew.c (selected_frame): Make it a Lisp_Object.
6489 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6490 (direct_output_for_insert, direct_output_forward_char,
6491 init_display): Ditto.
6492
6493 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6494 selected_frame.
6495 (set_internal): Ditto.
6496
6497 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6498 (record_buffer): Ditto.
6499
6500 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6501 (do_switch_frame): Change for Lisp_Object selected_frame.
6502 (Fselected_frame): Ditto.
6503 (Fframe_first_window): Use SELECTED_FRAME.
6504 (Fframe_root_window): Change for Lisp_Object selected_frame.
6505 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6506 Fprevious_frame, other_visible_frames, Fdelete_frame,
6507 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6508 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6509 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6510 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6511 Fset_frame_height, Fset_frame_width): Ditto.
6512
65131999-09-13 Gerd Moellmann <gerd@gnu.org>
6514
6515 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6516 (message3_nolog, message_with_string, message,
6517 setup_echo_area_for_printing, truncate_echo_area,
6518 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6519
6520 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6521 (Fx_popup_dialog): Ditto.
6522
6523 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6524 (check_x_display_info, x_get_resource_string): Ditto.
6525
6526 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6527 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6528 (XRINGBELL): Removed.
6529
6530 * window.c (Fminibuffer_window): Change for Lisp_Object
6531 selected_frame.
6532 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6533 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6534 Fcurrent_window_configuration, init_window_once): Ditto.
6535
6536 * frame.h (SELECTED_FRAME): New.
6537
65381999-09-12 Ken Raeburn <raeburn@gnu.org>
6539
6540 * category.c (word_boundary_p): Use XCAR and XCDR.
6541 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6542 Fregister_code_conversion_map): Likewise.
6543 * coding.c (setup_coding_system, detect_coding_system,
6544 Ffind_operation_coding_system, Fset_coding_priority_internal):
6545 Likewise.
6546 * doc.c (get_doc_string, Fdocumentation,
6547 store_function_docstring): Likewise.
6548 * editfns.c (save_restriction_restore): Likewise.
6549 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6550 skip_debugger, find_handler_clause, Fautoload, Fapply,
6551 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6552 Likewise.
6553 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6554 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6555 Fread_file_name): Likewise.
6556 * filelock.c (unlock_all_files): Likewise.
6557 * insdel.c (Fcombine_after_change_execute): Likewise.
6558 * intervals.c (adjust_intervals_for_insertion): Likewise.
6559 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6560 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6561 store_in_keymap, Fcopy_keymap, define_as_prefix,
6562 current_minor_maps, Faccessible_keymaps,
6563 accessible_keymaps_char_table, Fkey_description,
6564 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6565 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6566 describe_map): Likewise.
6567 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6568 read_list, init_lread): Likewise.
6569 * search.c (Fmatch_data): Likewise.
6570 * sunfns.c (Fsun_menu_internal): Likewise.
6571 * syntax.c (describe_syntax): Likewise.
6572 * undo.c (record_insert, record_delete, Fundo_boundary,
6573 truncate_undo_list): Likewise.
6574 * vmsproc.c (child_sig): Likewise.
6575
6576 * editfns.c (Fformat): Use XFLOAT_DATA.
6577
65781999-09-12 Gerd Moellmann <gerd@gnu.org>
6579
6580 * keyboard.c (command_loop_1): Resize mini-window to the
6581 exact size of a message displayed, if any.
6582
6583 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6584 to exact size if exact_p is non-zero.
6585 (display_echo_area_1): Call resize_mini_window with
6586 new parameter.
6587 (redisplay_internal): Ditto.
6588 (resize_echo_area_axactly): New.
6589
6590 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6591 new parameter.
6592
6593 * dispextern.h: Change prototype of resize_mini_window.
6594 Add prototype for resize_echo_area_axactly.
6595
6596 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6597 (syms_of_xfaces): Defsubr accordingly.
6598
6599 * xdisp.c (hscroll_window_tree): Choose cursor row from
6600 desired or current matrix.
6601 (redisplay_internal): Hscroll before updating.
6602
66031999-09-12 Gerd Moellmann <gerd@gnu.org>
6604
6605 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6606 of minibuffer_prompt_length.
6607
6608 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6609 of minibuffer_prompt_length.
6610 (read_minibuf_unwind): Ditto.
6611 (Fminibuffer_complete_and_exit): Ditto.
6612 (Fminibuffer_complete_word): Ditto.
6613 (Fminibuffer_prompt_end): Ditto.
6614
6615 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6616 of minibuffer_prompt_length.
6617 (Fline_beginning_position): Ditto.
6618
6619 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6620 of minibuffer_prompt_length.
6621 (Fmake_indirect_buffer): Ditto.
6622 (Fkill_buffer): Ditto.
6623 (Ferase_buffer): Ditto.
6624
6625 * buffer.h (prompt_end_charpos): Replaces
6626 minibuffer_prompt_length.
6627
427ec082 6628 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6629 without the prompt.
6630
6631 * editfns.c (make_buffer_string_both): Take out the code
6632 to handle mini-buffer prompts.
6633 (Fbuffer_string): Handle the prompt here, instead.
6634
6635 * xfaces.c (lface_from_face_name): Resolve face aliases.
6636 (Qmode_line): Replaces Qmodeline.
6637 (realize_basic_faces): Use Qmode_line.
6638 (syms_of_xfaces): Initialize Qmode_line.
6639
66401999-09-12 Gerd Moellmann <gerd@gnu.org>
6641
6642 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6643 current column after inserting prompt.
6644 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6645
6646 * xfaces.c (Qframe_update_face_colors): New.
6647 (syms_of_xfaces): Initialize call.
6648 (update_face_from_frame_parameter): Call that function when
6649 the frame's background changes.
6650
66511999-09-12 Richard Stallman <rms@gnu.org>
6652
6653 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6654
66551999-09-12 Ken Raeburn <raeburn@gnu.org>
6656
6657 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6658 mark_object, mark_buffer): Use XCAR and XCDR.
6659 * bytecode.c (Fbyte_code): Likewise.
6660 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6661 Likewise.
6662 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6663 getenv_internal): Likewise.
6664 * dired.c (file_name_completion): Likewise.
6665 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6666 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6667 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6668 * indent.c (Fcompute_motion): Likewise.
6669 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6670 list_processes_1, Fstart_process, Fopen_network_stream,
6671 wait_reading_process_input, read_process_output_call,
6672 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6673 status_notify, wait_reading_process_input): Likewise.
6674 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6675 extend_property_ranges): Likewise.
6676 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6677 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6678 x_report_frame_params, x_set_cursor_type, x_icon_type,
6679 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6680 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6681 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6682 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6683 x_display_info_for_name, Fx_display_list): Likewise.
6684 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6685 Fx_popup_menu, Fx_popup_dialog): Likewise.
6686 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6687 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6688 w32_term_init, x_delete_display): Likewise.
6689 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6690 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6691 x_top_window_to_frame, x_set_frame_parameters,
6692 x_report_frame_params, x_set_cursor_type, x_icon_type,
6693 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6694 Fx_display_list, x_create_tip_frame): Likewise.
6695 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6696 Fx_popup_menu, Fx_popup_dialog): Likewise.
6697 * xselect.c (x_own_selection, x_get_local_selection,
6698 x_handle_selection_request, x_handle_selection_clear,
6699 x_clear_frame_selections, wait_for_property_change_unwind,
6700 wait_for_property_change, x_handle_property_notify,
6701 copy_multiple_data, x_get_foreign_selection,
6702 lisp_data_to_selection_data, clean_local_selection_data,
6703 x_handle_selection_notify, Fx_get_selection_internal,
6704 x_disown_buffer_selections): Likewise.
6705 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6706 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6707 Likewise.
6708
6709 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6710 XFLOAT_DATA.
6711 * bytecode.c (Fbyte_code): Likewise.
6712 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6713 fmod_float): Likewise.
6714
67151999-09-11 Richard Stallman <rms@gnu.org>
6716
6717 * xdisp.c (run_window_scroll_functions): If hook functions switch
6718 buffers, switch back after.
6719
67201999-09-11 Ken Raeburn <raeburn@gnu.org>
6721
6722 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6723 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6724 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6725 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6726 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6727 XCDR.
6728 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6729 XCDR.
6730
67311999-09-10 Richard Stallman <rms@gnu.org>
6732
6733 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6734 not RevertToPointerRoot.
6735 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6736 Fix the code to clear around the scroll bar.
6737
67381999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6739
6740 * print.c: Support print-circle and related features.
6741 (Vprint_gensym_alist): Removed.
6742 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6743 Vprint_number_table): New variables.
6744 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6745 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6746 (print, print_preprocess, print_preprocess_string, print_object):
6747 New/modified functions with print-circle feature. Use
6748 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6749 (syms_of_print): Defined new Lisp variables `print-circle',
6750 `print-continuous-numbering', `print-number-table'.
6751
67521999-09-10 Gerd Moellmann <gerd@gnu.org>
6753
6754 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6755 as background color specification instead of an integer.
6756 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6757 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6758 (clear_image_cache, syms_of_xfns): Use it.
6759 (Qpostscript): Replaces Qghostscript.
6760 (gs_type): Use it.
6761 (gs_image_p): Ditto.
6762 (syms_of_xfns): Initialize Qpostscript.
6763
67641999-09-10 Richard Stallman <rms@gnu.org>
6765
6766 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
6767
67681999-09-09 Richard Stallman <rms@gnu.org>
6769
6770 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
6771
6772 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
6773
67741999-09-09 Gerd Moellmann <gerd@gnu.org>
6775
6776 * fns.c (Fmakehash): Accept just one optional argument TEST.
6777
6778 * xfns.c (QCindex): New.
6779 (syms_of_xfns): Initialize QCindex.
6780 (gif_load): Use it instead of `:image'.
6781
67821999-09-09 Richard Stallman <rms@gnu.org>
6783
6784 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
6785 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
6786
67871999-09-08 Gerd Moellmann <gerd@gnu.org>
6788
6789 * xdisp.c (Qwhen): Replaces QCwhen.
6790 (syms_of_xdisp): Initialized it instead of QCwhen.
6791 (handle_single_display_prop): Use it instead of QCwhen.
6792
67931999-09-08 Ken'ichi Handa <handa@gnu.org>
6794
6795 * charset.c (translate_char): Reset MSBs of arguments of
6796 MAKE_CHAR.
6797 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
6798
67991999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
6800
6801 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
6802
6803 * fns.c (Fbase64_decode_region): Don't place point outside of the
6804 current accessible portion.
6805
68061999-09-07 Richard Stallman <rms@gnu.org>
6807
6808 * keymap.c (fix_submap_inheritance): Do nothing if the proper
6809 parent is an ancestor of SUBMAP; otherwise, add it as the
6810 ultimate ancestor.
6811
68121999-09-07 Gerd Moellmann <gerd@gnu.org>
6813
6814 * xdisp.c (handle_single_display_prop): Change conditional
6815 display property to `:when FORM . VALUE'.
6816
68171999-09-07 Richard Stallman <rms@gnu.org>
6818
6819 * fileio.c (Fwrite_region): Doc fix.
6820
68211999-09-07 Stefan Monnier <monnier@cs.yale.edu>
6822
6823 * fileio.c (Qexcl): New variable.
6824 (report_file_error): Handle EEXIST specially.
6825 (Fwrite_region): Special handling for CONFIRM = `excl'.
6826 (syms_of_fileio): Initialize Qexcl.
6827
68281999-09-07 Gerd Moellmann <gerd@gnu.org>
6829
6830 * xfns.c (x_set_foreground_color): Call
6831 update_face_from_frame_parameter.
6832 (x_set_background_color): Ditto.
6833 (x_set_mouse_color): Ditto.
6834 (x_set_cursor_color): Ditto.
6835 (x_set_border_color): Ditto.
6836 (x_set_scroll_bar_foreground): Ditto.
6837 (x_set_scroll_bar_background): Ditto.
6838
6839 * xfaces.c (recompute_basic_faces): Clear face cache.
6840 (Finternal_set_lisp_face_attribute): Modify frame parameters
6841 if attributes of certain faces are changed.
6842 (update_face_from_frame_parameter): New.
6843
6844 * xfaces.c (realize_basic_faces): Realize new basic faces.
6845
6846 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
6847 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
6848
6849 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
6850 (syms_of_xfaces): Intialize new symbols.
6851
6852 * fns.c (Fmakehash): Take one argument, test, make all the
6853 rest keyword arguments.
6854
6855 * window.c (Fset_window_margins): Make window the first argument.
6856 (set_window_buffer): Call Fset_window_margins with window as first
6857 argument.
6858
68591999-09-07 Gerd Moellmann <gerd@gnu.org>
6860
6861 * xfaces.c (Qfringe): Replaces Qmargin.
6862
68631999-09-07 Kenichi Handa <handa@etl.go.jp>
6864
6865 * charset.h: Lots of comments fixed.
6866 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
6867 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
6868
6869 * charset.c : Lots of comments fixed.
6870 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
6871 (CHAR_COMPONENTS_VALID_P): Name changed from
6872 CHAR_COMPONENT_VALID_P. Caller changed.
6873
68741999-09-06 Richard Stallman <rms@gnu.org>
6875
6876 * insdel.c (syms_of_insdel): Define Lisp variable
6877 inhibit-modification-hooks.
6878
68791999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
6880
6881 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
6882 unexaix.c.
6883
6884 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
6885
68861999-09-06 Dave Love <fx@gnu.org>
6887
6888 * unexaix.c: New version incorporating Michael Sperber's changes
6889 from XEmacs. Should solve problems on AIX 4.3.
6890
6891 * lread.c (Vbyte_boolean_vars): New variable.
6892 (defvar_bool, syms_of_lread): Use it.
6893
68941999-09-05 Richard Stallman <rms@gnu.org>
6895
6896 * minibuf.c (read_minibuf): Put all three properties on the
6897 same range, the whole prompt.
6898
68991999-09-05 Gerd Moellmann <gerd@gnu.org>
6900
6901 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
6902 (Fplay_sound, syms_of_sound): Use it.
6903 (parse_sound): Allow float volume values in the range [0, 1].
6904 (Fplay_sound): Ditto.
6905
6906 * window.c (Fset_window_vscroll): Make window the first argument,
6907 amount to scroll the second. Take non-negative vscroll as
6908 argument.
6909 (Fwindow_vscroll): Return non-negative vscroll.
6910
6911 * xfns.c (Fx_show_tip): Improve documentation.
6912
69131999-09-05 Gerd Moellmann <gerd@gnu.org>
6914
6915 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
6916 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
6917 `top-line' and `top_line' to `header-line' and `header_line'.
6918 Likewise for similar spellings.
6919
69201999-09-05 Gerd Moellmann <gerd@gnu.org>
6921
6922 * xdisp.c (row_containing_pos): New.
6923 (try_window_id): Use it.
6924
6925 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
6926 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
6927 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
6928 Likewise for upper-case etc.
6929
69301999-09-05 Gerd Moellmann <gerd@gnu.org>
6931
6932 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6933 Fix reference to renamed variable.
6934
69351999-09-04 Gerd Moellmann <gerd@gnu.org>
6936
6937 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 6938 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
6939 Qfixed_window_size.
6940 (syms_of_window): Ditto.
6941
6942 * fns.c (Fmakehash): Exchange optional test and size arguments.
6943
69441999-09-03 Gerd Moellmann <gerd@gnu.org>
6945
6946 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
6947 under newly created scroll bar.
6948 (expose_window): If window is not yet fully initialized, do
6949 nothing. This can happen when toolkit scroll bars are used and a
6950 window is split. Reconfiguring the scroll bars will generate an
6951 expose for a newly created window.
6952
6953 * frame.h (struct frame): New member `gamma'.
6954
6955 * xfns.c: Include math.h. Add extern declaration for atof in case
6956 we don't see one.
6957 (Qscreen_gamma): New.
6958 (struct x_frame_parm_table): Add prototypes, add
6959 x_set_screen_gamma.
6960 (gamma_correct): New function.
6961 (defined_color): Call it.
6962 (x_set_screen_gamma): New.
6963 (x_set_title): Add parameter old_value.
6964 (RES_TYPE_FLOAT): New.
6965 (x_get_arg): Handle RES_TYPE_FLOAT.
6966 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
6967 (lookup_pixel_color): Change call to x_alloc_nearest_color to
6968 new prototype.
6969 (lookup_rgb_color): Ditto.
6970 (syms_of_xfns): Initialize Qscreen_gamma.
6971
6972 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
6973 New. Allocate color for lwlib widgets.
6974 (x_alloc_nearest_color): Change parameter list include the
6975 frame on which to allocate colors. Gamma-correct colors.
6976 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
6977 parameter list.
6978
6979 * xterm.h: Change protorype of x_alloc_nearest_color.
6980
69811999-09-03 Richard Stallman <rms@gnu.org>
6982
6983 * callproc.c: Delete the system-independent include of stdlib.h
6984 (leaving only the one in the WINDOWSNT conditional).
6985
69861999-09-03 Andrew Choi <choi@cs.hku.hk>
6987
6988 * callproc.c (call-process) [macintosh]: Call mac_run_command in
6989 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 6990
26901792
DL
6991 * dispextern.h [macintosh]: Include macterm.h to define substitute X
6992 Window types and macros.
6993
6994 * frame.h: Do nothing if included a second time.
6995 (enum output_method): Add mac_output frame type.
6996 (union output_data): Add new alternative `mac'.
6997 (FRAME_MAC_P): New macro.
427ec082 6998
26901792
DL
6999 * frame.c (Fframep) [macintosh]: Handle mac frame type.
7000 (syms_of_frame_1): Initialize Qmac.
7001 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
7002 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
7003 (Fmodify_frame_parameters) [macintosh]: Call
7004 mac_set_frame_parameter in macterm.c.
427ec082 7005
26901792
DL
7006 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
7007 (512) because Mac compilers limit local data of a function to 32K.
427ec082 7008
26901792
DL
7009 * make-docfiles.c: Correctly handle input files with Mac-style
7010 eol's.
427ec082 7011
26901792 7012 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 7013
26901792
DL
7014 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
7015 file of an X Window environment.
427ec082 7016
26901792
DL
7017 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
7018 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 7019
26901792
DL
7020 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
7021 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
7022 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
7023 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
7024 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
7025 New functions, replacing POSIX features.
427ec082 7026
26901792
DL
7027 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
7028 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
7029 (InitEmacsPasswdDir, run_mac_command): New subroutines.
7030
7031 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
7032 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
7033 (myPasswdDir, TempDirName, sys_siglist): New variables.
7034
7035 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
7036 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7037 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7038 Define empty stubs so Emacs will link.
7039
70401999-09-03 Gerd Moellmann <gerd@gnu.org>
7041
7042 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7043
7044 * window.h: New member frozen_window_start_p.
7045
7046 * window.c (foreach_window, foreach_window_1): New.
7047 (freeze_window_start, freeze_window_starts): New.
7048 (make_window): Initialize frozen_window_start_p.
7049 (replace_window): Ditto.
7050 (Fset_window_point): Remove references to deleted variables.
7051 (Fset_window_start): Ditto.
7052
7053 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7054 resize_mini_initial_height): Removed.
7055 (syms_of_xdisp): Remove references to these variables.
7056 (resize_mini_window): Don't save window configuration, freeze
7057 window starts instead. Enlarge window until displaying an empty
7058 buffer, then shrink it. Make the function externally visible.
7059 (redisplay_window): Treat frozen window start like forced start,
7060 but accept point outside of the window.
7061
7062 * dispextern.h: Add function prototype for resize_mini_window.
7063
7064 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7065 reaching minibuf_level 0.
7066
7067 * lisp.h: Remove extern declarations for variables deleted from
7068 xdisp.c.
7069
7070 * dispnew.c (adjust_frame_glyphs): Remove reference to
7071 Vresize_mini_config.
7072
70731999-09-03 Gerd Moellmann <gerd@gnu.org>
7074
7075 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7076 to USE_TOOLKIT_SCROLL_BARS.
7077
7078 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7079 here.
7080 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7081 under newly created scroll bar. Put toolkit scroll bars in the
7082 middle of the area reserved for the scroll bar.
7083
70841999-09-03 Kenichi Handa <handa@etl.go.jp>
7085
7086 The following changes are for the new handling of mulitbyte
7087 sequence. Now, except for a composite character, no multibyte
7088 character in string/buffer has trailing garbage bytes. For
7089 instance, the length of string "\201\300\300" is now 2, the first
7090 character is Latin-1 A-grave, the second is raw \300.
7091
7092 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7093 are negative.
7094 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7095 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7096 (PARSE_COMPOSITE_SEQ): New macro.
7097 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7098 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7099 (CHAR_PRINTABLE_P): New macro.
7100 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7101 (STRING_CHAR_AND_LENGTH): Likewise.
7102 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7103 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7104 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7105
7106 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7107 (SPLIT_CHARACTER_SEQ): New macro.
7108 (SPLIT_MULTIBYTE_SEQ): New macro.
7109 (CHAR_COMPONENT_VALID_P): New macro.
7110 (non_ascii_char_to_string): Generate a multibyte sequence as far
7111 as possible.
7112 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7113 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7114 (split_non_ascii_string): Likewise.
7115 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7116 (char_printable_p): New function.
7117 (translate_char): Check character by NATNUMP instead of INTEGERP.
7118 (unibyte_char_to_multibyte): Call char_valid_p instead of
7119 VALID_MULTIBYTE_CHAR_P.
7120 (Fmake_char_internal): Check the arguments more rigidly.
7121 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7122 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7123 (Fmultibyte_char_to_unibyte): Check the validity of character by
7124 CHAR_VALID_P.
7125 (chars_in_text): Call multibyte_chars_in_text.
7126 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7127 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7128 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7129
7130 * data.c (Faset): Adjust the way to check byte-combining
7131 possibility for the new handling of multibyte sequence.
7132
7133 * editfns.c (Fsubst_char_in_region): Likewise.
7134
7135 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7136 (string_char_to_byte): Likewise.
7137 (string_byte_to_char): Likewise.
7138
7139 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7140 macro STRING_CHAR_AND_LENGTH. Caller changed.
7141
7142 * insdel.c (count_combining_composition): New function.
7143 (count_combining_before): Adjust the way to check byte-combining
7144 possibility for the new handling of multibyte sequence. Call
7145 count_combining_composition for a composite character.
7146 (count_combining_after): Likewise.
7147
7148 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7149 (print): Likewise.
7150
7151 * dispextern.h (struct it): Change the size of the member
7152 `ctl_chars'.
7153
7154 * xdisp.c (get_next_display_element): Display incomplete multibyte
7155 sequence (e.g. \222\300) by octal form.
7156
71571999-09-02 Gerd Moellmann <gerd@gnu.org>
7158
7159 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7160
7161 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7162 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7163
71641999-09-02 Gerd Moellmann <gerd@gnu.org>
7165
7166 * buffer.c (set_buffer_internal): Never set
7167 windows_or_buffers_changed.
7168
7169 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7170 if we have displayed to the bottom of the window.
7171
7172 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7173 in both directions. Extend documentation.
7174
71751999-09-01 Gerd Moellmann <gerd@gnu.org>
7176
7177 * minibuf.c (read_minibuf): Flush display after setting cursor to
7178 column 0.
7179
71801999-08-31 Gerd Moellmann <gerd@gnu.org>
7181
7182 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7183 already defined. This avoids a warning from buffer.c.
7184
71851999-08-30 Gerd Moellmann <gerd@gnu.org>
7186
7187 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7188 of both margins.
7189 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7190 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7191 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7192
7193 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7194 once instead of twice.
7195 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7196
7197 * xterm.c: Remove unused bitmaps.
7198 (continued_bits, continuation_bits, overlay_bits): Change images.
7199 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7200 instead of FRAME_X_FLAGS_AREA_WIDTH.
7201 (x_after_update_window_line): Ditto.
7202 (x_draw_bitmap): Likewise.
7203 (x_draw_row_bitmaps): Likewise.
7204 (x_draw_glyph_string_box): Likewise.
7205 (x_draw_glyphs): Likewise.
7206 (x_scroll_run): Likewise.
7207 (expose_window_tree): Likewise.
7208 (note_mode_line_highlight): Likewise.
7209 (XTset_vertical_scroll_bar): Likewise.
7210 (x_clip_to_row): Likewise.
7211 (x_set_window_size): Likewise.
7212
7213 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7214 of 2 * that value.
7215
7216 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7217 2 * that value.
7218 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7219 FRAME_FLAGS_AREA_WIDTH.
7220
7221 * window.c (coordinates_in_window): Use
7222 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7223 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7224 instead of twice.
7225
427ec082 7226 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7227 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7228 (EmacsFrameSetCharSize): Ditto.
7229
7230 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7231 instead of FRAME_FLAGS_AREA_WIDTH.
7232
7233 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7234 FRAME_FLAGS_AREA_COLS once.
7235 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7236 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7237
72381999-08-30 Gerd Moellmann <gerd@gnu.org>
7239
7240 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7241 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7242
72431999-08-30 Gerd Moellmann <gerd@gnu.org>
7244
7245 * fns.c (QCweakness): Replaces QCweak.
7246 (Fmake_hash_table): Ditto.
7247 (Fmakehash): Ditto.
7248 (syms_of_fns): Ditto.
7249
72501999-08-29 Richard Stallman <rms@gnu.org>
7251
7252 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7253
7254 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7255
7256 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7257 Add support for nested comments.
7258
863476d1
SM
7259 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7260 Consolidate the forward comment code into the new `forw_comment'.
7261 (forw_comment): New subroutine. Added support for nested comments.
7262 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7263 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7264
72651999-08-28 Ken Raeburn <raeburn@gnu.org>
7266
7267 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7268 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7269 defined, to help detect code that uses knowledge of the Lisp
7270 internals that it shouldn't have.
7271 (XFLOAT_DATA): New macro.
7272
72731999-08-25 Gerd Moellmann <gerd@gnu.org>
7274
7275 * syntax.c (Fforward_word): If in a mini-buffer and moving
7276 backwards, stop in front of the prompt to prevent accidentially
7277 moving into the read-only prompt.
7278
7279 * window.c (Frecenter): Clear frame if called with nil or no arg.
7280
7281 * xdisp.c (resize_mini_window): Don't resize if
7282 Vmax_mini_window_height is nil. Otherwise, use a default if
7283 Vmax_mini_window_height is not ot a number.
7284 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7285
72861999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7287
7288 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7289 * m/iris4d.h: Use unexelf for IRIX 5.*.
7290 * m/iris5d.h: Use unexelf for IRIX 6.*.
7291 * unexsgi.c: Deleted.
7292
7293 * unexelf.c: Auto-detect .sbss section.
7294 (round_up): Make it static.
7295 (unexec): Declare alignment as Elf Word. Skip ``Program
7296 segment above .bss'' test on MIPS without .sbss.
7297 Copy sections .got and .sdata1 sections. Adjust offsets in
7298 sections .sdata, .lit4, .lit8, .got and .sdata1.
7299
73001999-08-25 Gerd Moellmann <gerd@gnu.org>
7301
7302 * xdisp.c (try_window_id): Remove typo.
7303
73041999-08-24 Gerd Moellmann <gerd@gnu.org>
7305
7306 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7307 unchanged text at the bottom when computing the cursor position.
7308 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7309 set.
7310
7311 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7312
73131999-08-24 Gerd Moellmann <gerd@gnu.org>
7314
7315 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7316 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7317 (syms_of_xfaces): Ditto.
7318
7319 * window.c (Fset_window_point): Reset Vresize_mini_config.
7320 (Fset_window_start): Ditto.
7321 (set_window_buffer): Ditto.
7322
7323 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7324
7325 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7326 before calling try_window.
7327 (echo_area_display): If height has changed, update other windows.
7328 (resize_mini_frame, resize_mini_initial_height): New.
7329 (resize_mini_window): Save/restore window configuration
7330 differently.
7331
427ec082 7332 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7333 resize_mini_initial_height): Add extern declarations.
7334
7335 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7336 CANON_X_UNIT.
7337
7338 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7339 being redefined in jconfig.h.
7340
73411999-08-23 Ken'ichi Handa <handa@gnu.org>
7342
7343 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7344
73451999-08-22 Gerd Moellmann <gerd@gnu.org>
7346
7347 * alloc.c (mark_glyph_matrix): Mark strings only.
7348
7349 * xdisp.c (redisplay_internal): Clear garbaged frames after
7350 resizing mini-window.
7351
73521999-08-22 Gerd Moellmann <gerd@gnu.org>
7353
7354 * xdisp.c (unwind_with_echo_area_buffer): Use
7355 set_buffer_internal_1 instead of set_buffer_internal.
7356 (with_echo_area_buffer): Ditto.
7357
7358 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7359 only if buffer is displayed somewhere.
7360
7361 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7362
7363 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7364 (gap_right): Ditto.
7365 (modify_region): Ditto.
7366
7367 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7368
7369 * xdisp.c (Vresize_mini_config): New.
7370 (resize_mini_window): Use it to save restore original window
7371 configuration
7372 (syms_of_xdisp): Initialize it.
7373
7374 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7375
7376 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7377
7378 * xdisp.c (reconsider_clip_changes): New.
7379 (redisplay_internal, redisplay_window): Call it.
7380 (mark_window_display_accurate, redisplay_internal): Set current
7381 matrix' buffer, begv, zv.
7382
7383 * window.c (Fset_window_hscroll): Set
7384 prevent_redisplay_optimizations_p instead of clip_changed.
7385 (Fset_window_hscroll): Ditto.
7386 (temp_output_buffer_show): Ditto.
7387 (Fset_window_vscroll): Ditto.
7388
7389 * buffer.c (reset_buffer): Set clip_changed to 0 and
7390 prevent_redisplay_optimizations_p to 1.
7391 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7392
7393 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7394 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7395 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7396 END_UNCHANGED): New.
7397 (struct buffer_text): Add beg_unchanged, end_unchanged,
7398 unchanged_modified, overlay_unchanged_modified.
7399
7400 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7401 overlay_unchanged_modified): Removed.
7402 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7403 (unwind_with_echo_area_buffer): Don't restore them.
7404 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7405 (text_outside_line_unchanged_p, redisplay_internal,
7406 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7407 (redisplay_window): Let try_window_id be called if more than one
7408 window is displayed. Use/set buffer-specific beg/end_unchanged.
7409 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7410 try_window_id):
7411 Use buffer-specific beg/end_unchanged.
7412
7413 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7414 overlay_unchanged_modified): Remove extern declarations.
7415
7416 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7417 buffer.
7418
7419 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7420 (gap_right): Ditto.
7421 (adjust_after_replace): Likewise.
7422 (replace_range, del_range_2, modify_region): Likewise.
7423
7424 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7425 and unchanged_modified per buffer.
7426
7427 * coding.c (code_convert_region): Compute beg/end_unchanged per
7428 buffer.
7429
7430 * buffer.c (modify_overlay): Compute beg/end_unchanged
7431 per buffer.
427ec082 7432 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7433 structure.
7434
74351999-08-22 Gerd Moellmann <gerd@gnu.org>
7436
7437 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7438
7439 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7440 (Qkey_value_weak): Removed.
7441 (make_hash_table): Use nil, `key', `value', t for weakness.
7442 (Fmake_hash_table): Ditto.
7443 (copy_hash_table): New.
7444 (Fcopy_hash_table): New.
7445
74461999-08-22 Gerd Moellmann <gerd@gnu.org>
7447
7448 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7449 new parameter.
26901792
DL
7450
74511999-08-21 Gerd Moellmann <gerd@gnu.org>
7452
7453 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7454 well.
427ec082 7455 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7456 have changed.
7457 (display_echo_area): Reset displayed echo_area_buffer to nil
7458 at the end if we're displaying a nil message.
7459
74601999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7461
26901792
DL
7462 * fns.c (hash_lookup): Test with EQ before calling key comparion
7463 function.
7464 (hash_remove): Ditto.
7465 (cmpfn_eq): Removed.
7466 (cmpfn_eql): Don't test with EQ.
7467 (cmpfn_equal): Ditto.
7468 (make_hash_table): Set comparison function for `eq' to null.
7469
7470 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7471 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7472
7473 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7474
7475 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7476 xterm.c: Call change_frame_size and do_pending_window_change with
7477 new parameter.
7478
7479 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7480 (change_frame_size): Ditto.
7481 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7482 and not called from a safe place.
7483 (window_change_signal): Call change_frame_size with new parameter.
7484
7485 * dispextern.h: Change prototypes for do_pending_window_change
7486 and change_frame_size.
7487
7488 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7489 window's buffers equals current_buffer; this is not the
26901792
DL
7490 case during echo area display.
7491
74921999-08-21 Gerd Moellmann <gerd@gnu.org>
7493
7494 * xdisp.c, minibuf.c: Remove conditional compilation on
7495 NO_PROMPT_IN_BUFFER.
7496
7497 * minibuf.c (Fminibuffer_prompt_end): New.
7498 (syms_of_minibuf): Defsubr it. Remove
7499 minibuffer-prompt-in-buffer.
7500 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7501 Extend documentation.
7502
7503 * xdisp.c (get_next_display_element): Display \r as ^M.
7504
7505 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7506 under scroll bar widget.
7507
75081999-08-21 Gerd Moellmann <gerd@gnu.org>
7509
7510 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7511 anywhere.
7512 (unwind_redisplay): Return nil.
7513 (clear_garbaged_frames): New.
7514 (redisplay_internal): Use it.
7515 (echo_area_display): Ditto.
7516 (resize_mini_window): Mew.
7517 (display_echo_area_1): Use it to resize echo area window.
7518 (redisplay_internal): Use it to resize active mini-window.
7519
7520 * dispextern.h, lisp.h: Add function prototypes.
7521
427ec082 7522 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7523 cursor_in_echo_area case only for a mini-window showing
7524 a message. Don't let cursor end up after the end of a row.
7525
7526 * xdisp.c (echo_area_glyphs, echo_area_message,
7527 echo_area_glyphs_length, previous_echo_glyphs,
7528 previous_echo_area_message, previous_echo_area_glyphs_length):
7529 Removed.
7530 (Vmessage_stack, echo_area_buffer, echo_buffer,
7531 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7532 (message2_nolog): Use set_message and clear_message.
7533 (message3): Rename parameter len to nbytes to make clear what
7534 it is.
7535 (message3_nolog): Ditto. Use set_message and clear_message.
7536 (update_echo_area): Rewritten.
7537 (with_echo_area_buffer): New.
7538 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7539 (setup_echo_area_for_printing): New.
7540 (display_echo_area, display_echo_area_1): New.
7541
7542 (current_message, current_message_1): New.
427ec082 7543 (push_message, restore_message, pop_message,
26901792
DL
7544 check_message_stack): New.
7545 (truncate_echo_area): Rewritten.
7546 (truncate_message_1): New.
7547 (set_message, set_message_1, clear_message): New.
7548 (echo_area_display): Rewritten.
7549 (redisplay_internal): Check for needed echo area update
7550 differently.
7551 (redisplay_preserve_echo_area): Rewritten.
427ec082 7552 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7553 message differently.
7554 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7555 Remove initialzation of removed variables.
7556 (init_xdisp): Remove references to removed variables.
7557
7558 * dispnew.c (adjust_frame_message_buffer): Removed references
7559 to echo_area_glyphs and previous_echo_glyphs.
7560 (direct_output_for_insert): Check for mini-window displaying
7561 echo area message differently.
7562 (update_frame): Likewise.
7563 (set_window_cursor_after_update): Likewise. In echo area,
7564 don't try to set cursor on rows that aren't enabled.
7565
7566 * print.c: Remove conditional compilation on `standalone'.
7567 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7568 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7569 longer used in that way.
7570 (PRINTDECLARE): Add multibyte.
7571 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7572 (printbufidx): Removed.
7573 (printchar, strout): Rewritten.
7574
7575 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7576 a struct kboard.
7577 (echo_kboard): New.
7578 (echo_now): Set echo_kboard to the current kboard.
7579 (cancel_echoing): Set echo_kboard to null.
7580 (cmd_error_internal): Use clear_message, remove references
7581 to echo_area_glyphs and echo_area_message.
7582 (command_loop_1): Check for echo area messages differently.
7583 (read_char): Likewise.
7584 (record_menu_key): Use clear_message.
7585 (Fexecute_extended_command): Check for echo area messages
7586 differently. Use push_message, restore_message, pop_message.
7587
7588 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7589 pop_message.
7590
7591 * emacs.c (shut_down_emacs): Call check_message_stack.
7592
7593 * lisp.h: Add function prototypes and extern declarations for
7594 new functions and variables.
7595
7596 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7597 pop_message.
7598
427ec082 7599 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7600 setting echo_area_glyphs.
7601 (Fminibuffer_completion_help): Ditto.
7602
7603 * editfns.c (Fcurrent_message): Rewritten.
7604
7605 * frame.c, window.h: Remove references to echo_area_glyphs
7606 and previous_echo_glyphs.
7607
76081999-08-21 Dave Love <fx@gnu.org>
7609
7610 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7611 * aix4-1.h: Likewise.
7612
7613 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7614
76151999-08-20 Gerd Moellmann <gerd@gnu.org>
7616
7617 * xfns.c: Remove tiff34 prefix from include.
7618
76191999-08-20 Dave Love <fx@gnu.org>
7620
7621 * cm.c: Revert previous change.
7622
76231999-08-19 Gerd Moellmann <gerd@gnu.org>
7624
7625 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7626 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7627
76281999-08-18 Dave Love <fx@gnu.org>
7629
7630 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7631 stdlib.h.
7632
7633 * doprnt.c: Use stdlib.h, unistd.h.
7634
7635 * config.in: Add HAVE_TERMCAP_H.
7636
7637 * cm.c: Use termcap.h.
7638
76391999-08-18 Gerd Moellmann <gerd@gnu.org>
7640
7641 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7642 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7643 cannot be created we will already have crashed earlier. Call
7644 lw_set_main_areas with a null menu-bar widget, so that we have
7645 a reasonable default.
7646 (Fx_create_frame): Rearranged so that Lisp errors during frame
7647 initialization cause less damage. Initialize menu bar widget
7648 here.
7649
76501999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 7651
26901792
DL
7652 * dispnew.c (update_frame_line): Fix previous change. If writing
7653 whole line clear to end of frame.
7654
76551999-08-17 Gerd Moellmann <gerd@gnu.org>
7656
7657 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7658 and `right-bitmap-area' if position is in the bitmap areas. This
7659 avoids an error when clicking on the bitmap areas. Instead, they
7660 are currently treated like clicks inside the window.
7661 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7662 (Qleft_bitmap_area, Qright_bitmap_area): New.
7663 (syms_of_window): Initialize new symbols.
7664
7665 * dispnew.c (update_frame_line): If writing whole line,
7666 don't write trailing spaces unless we must.
7667
7668 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7669 (redisplay_internal): Register unwind_redisplay with
7670 register_unwind_protect.
7671 (try_window_reusing_current_matrix): If new start > old start,
7672 give up if start pos of first reusable row is not equal to new
7673 start.
7674
7675 * eval.c (Fsignal): Don't reset redisplaying_p here.
7676
7677 * xterm.c (expose_area): If row extends face to end of line,
7678 write the whole line.
7679
76801999-08-16 Gerd Moellmann <gerd@gnu.org>
7681
7682 * dispextern.h (struct it): Remove member
7683 show_trailing_whitespace_p.
7684
7685 * dispnew.c (direct_output_for_insert): Use
7686 Vshow_trailing_whitespace instead of former iterator member
7687 show_trailing_whitespace_p.
7688 (direct_output_forward_char): Don't do it if hightlighting
7689 trailing whitespace.
7690
7691 * xdisp.c (Qshow_trailing_whitespace): Removed.
7692 (Vshow_trailing_whitespace): Added.
7693 (init_iterator): Remove initialization code for
7694 show_trailing_whitespace_p.
7695 (redisplay_internal): Don't try cursor movement in this_line
7696 if showing trailing whitespace.
7697 (redisplay_window): Likewise for cursor movement in current
7698 matrix and try_window_id.
7699 (try_window_reusing_current_matrix): Likewise.
7700 (trailing_whitespace_p): Return 0 if trailing whitespace is
7701 in front of point.
7702 (display_line): Use Vshow_trailing_whitespace instead of
7703 former iterator member show_trailing_whitespace_p.
7704 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7705
77061999-08-16 Gerd Moellmann <gerd@gnu.org>
7707
7708 * window.c (Fpos_visible_in_window_p): Rewritten.
7709
7710 * xfaces.c (add_to_log): Renamed from display_message.
7711 Don't display messages in echo area.
7712
7713 * xterm.c (x_draw_glyph_string_box): Use the background width
7714 of the glyph string for the width of the box.
7715
77161999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7717
7718 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7719
77201999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7721
7722 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7723 background first, and then set other parameters that might
7724 depend upon their new values.
7725
77261999-08-15 Gerd Moellmann <gerd@gnu.org>
7727
7728 * xfaces.c (Vfont_list_limit): New.
7729 (syms_of_xfaces): Make it a user-variable.
7730 (DEFAULT_FONT_LIST_LIMIT): New.
7731 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7732 maximally that number of fonts, otherwise use
7733 DEFAULT_FONT_LIST_LIMIT.
427ec082 7734 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
7735 until we have all fonts.
7736 (Fxfont_list): Additionally return the full names of fonts and
7737 their registry and encoding.
7738
427ec082 7739 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
7740 Simplify clearing "under" scroll bar.
7741
7742 * window.c (Qfixed_window_size): New.
7743 (syms_of_window): Initialiaze it.
7744 (check_all_windows): Add return type void.
7745 (window_fixed_size_p): New. Return non-zero if window
7746 is fixed-size.
7747 (window_min_size_1): New.
7748 (window_min_size): Handle fixed-size windows.
7749 (size_window): New. Rewritten combination of set_window_height and
7750 set_window_width that handles fixed-size windows.
7751 (set_window_height): Call it.
7752 (set_window_width): Call it.
7753 (Fsplit_window): Give an error on attempt to split a fixed-size
7754 window.
7755 (change_window_height): Partly rewritten to handle fixed-size
7756 windows.
7757
77581999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7759
7760 * process.c (Fopen_network_stream): Fix previous change.
7761
77621999-08-13 Karl Heuer <kwzh@gnu.org>
7763
7764 * xdisp.c (line_number_display_limit_width): New var.
7765 (decode_mode_spec): Use it instead of hardcoded value.
7766 (syms_of_xdisp): Defvar it.
7767
77681999-08-13 Richard M. Stallman <rms@gnu.org>
7769
7770 * eval.c (run_hook_list_with_args): Gcpro `globals'.
7771 (run_hook_with_args): Likewise.
7772
7773 * window.h (struct window): New field too_small_ok.
7774
427ec082 7775 * window.c (set_window_height, set_window_width):
26901792
DL
7776 If window starts out "too small", set its too_small_ok flag.
7777 If window's too_small_ok flag is set, don't delete it
7778 unless it is so small it would cause a crash.
7779
77801999-08-13 Gerd Moellmann <gerd@gnu.org>
7781
7782 * window.c (MINSIZE): Removed.
7783 (window_min_size): New.
7784 (set_window_height): Use window_min_size.
7785 (change_window_height): Ditto.
7786
77871999-08-12 Gerd Moellmann <gerd@gnu.org>
7788
7789 * indent.c (vmotion): Don't add in mini-buffer prompt width
7790 if prompts are inserted into mini-buffer.
7791
77921999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7793
7794 * config.in: Add HAVE_GETADDRINFO.
7795 * process.c (Fopen_network_stream): Use getaddrinfo.
7796
77971999-08-11 Gerd Moellmann <gerd@gnu.org>
7798
7799 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
7800 glyphs to -1.
7801
7802 * xdisp.c (face_before_or_after_it_pos): If position after
7803 or before iterator's current position in the buffer is out
7804 of bounds, return the iterator's original face id.
7805
7806 * dispnew.c (mirror_make_current): If desired row isn't enabled,
7807 just swap glyphs pointers between current and desired row.
7808 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
7809 desired matrix method string to current matrix.
7810
78111999-08-11 Kenichi Handa <handa@etl.go.jp>
7812
7813 * lisp.h (CHAR_MODIFIER_MASK): New macro.
7814
7815 * lread.c (read_escape): For Control modifier, pay attention to
7816 multibyte character.
7817 (read1): Likewise. Singal error or a multibyte character which
7818 has a modifer bit. Check validity of Shift modifer.
7819
7820 * charset.c (non_ascii_char_to_string): Handle modifier bits as
7821 the same as Lisp reader.
7822
78231999-08-10 Richard M. Stallman <rms@gnu.org>
7824
7825 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
7826
78271999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
7828
7829 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
7830
78311999-08-10 Eli Zaretskii <eliz@gnu.org>
7832
7833 * msdos.c (IT_set_face): Abort if the default face is not realized
7834 and cached.
7835 (IT_write_glyphs): Reset the screen face to the default face
7836 before writing glyphs.
7837
7838 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
7839 colors from the frame here.
7840 (realize_tty_face) [MSDOS]: Do it here. Update the face
7841 attributes with the actual name of the color taken from the
7842 frame.
7843
7844 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
7845 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
7846
7847 * frame.c (Fframe_parameters): Swap foreground and background
7848 colors returned in frame parameters if the frame has reverse in
7849 its parameter alist.
7850 (Fmake_terminal_frame): Make a unique copy of face_alist for
7851 each frame.
7852
78531999-08-07 Richard Stallman <rms@gnu.org>
7854
7855 * buffer.c (Fprevious_overlay_change): Just return
7856 the answer obtained from overlays_at.
7857
7858 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
7859 Use XpmCloseness and attrs.closeness instead.
7860
78611999-08-06 Richard Stallman <rms@gnu.org>
7862
7863 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
7864
78651999-08-06 Geoff Voelker <voelker@cs.washington.edu>
7866
427ec082 7867 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
7868 Ffile_attributes_lessp): New functions.
7869 (Fdirectory_files): Use directory_files_internal.
7870 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
7871 Ffile_attributes_lessp.
7872
7873 * w32.c (stat): Check for directory ending in separator when
7874 doing readdir fast path.
7875
7876 * w32fns.c (x_set_icon_type): Support setting frame icons.
7877 * w32term.c (x_bitmap_icon): New function.
7878 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 7879
26901792
DL
78801999-08-06 Gerd Moellmann <gerd@gnu.org>
7881
7882 * xdisp.c (set_iterator_to_next): After delivering a character
7883 from a display vector, restore face and charset to what they were
7884 before the display vector was processed.
7885
78861999-08-06 Gerd Moellmann <gerd@gnu.org>
7887
7888 * xdisp.c (reseat_at_next_visible_line_start): New parameter
7889 on_newline_p.
7890 (set_iterator_to_next): After delivering last char
427ec082 7891 from display vector, reseat on next visible line start if
26901792
DL
7892 dpvec_char_len < 0.
7893 (next_element_from_buffer): Set dpvec_char_len to -1 for
7894 selective display.
7895
78961999-08-06 Gerd Moellmann <gerd@gnu.org>
7897
7898 * xdisp.c (compute_line_metrics): If first line's physical ascent
7899 is larger than its logical ascent, use the physical ascent, and
7900 make the row taller. Set row's overlapping_p flag.
7901
7902 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
7903 (direct_output_for_insert): Ditto.
7904
7905 * dispextern.h (struct glyph_row): Add overlapping_p.
7906
7907 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
7908
7909 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
7910 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
7911
7912 * dispnew.c (direct_output_for_insert): Don't use this method if
7913 row is overlapped by others.
7914 (update_text_area): Write full line if current line is overlapped.
7915 (redraw_overlapped_rows): New.
7916 (update_window): Call it.
7917 (redraw_overlapping_rows): New.
7918 (update_window): Call it.
7919 (scrolling_window): Make sure overlapped_p flag in current rows is
7920 unchanged.
7921 (row_equal_p): Take rows overlapped_p flag into account.
7922
7923 * dispextern.h (struct glyph_row): Add flag overlapped_p.
7924
7925 * xterm.c (x_fix_overlapping_area): New.
7926 (x_redisplay_interface): Add x_fix_overlapping_area.
7927
7928 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
7929
79301999-08-06 Gerd Moellmann <gerd@gnu.org>
7931
7932 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
7933 (struct glyph_string): Add member for_overlaps_p.
7934 (x_get_glyph_string_clip_rect): If glyph string draws foreground
7935 of overlapping rows, clip to window bottom.
7936 (x_fill_glyph_string): Add parameter overlaps_p.
7937 (x_fill_composite_glyph_string): Ditto.
7938 (BUILD_GLYPH_STRINGS): Ditto.
7939 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
7940 (x_draw_glyph_string): Don't draw anything but the foreground
7941 if glyph string draws row overlaps.
7942
7943 * dispnew.c (direct_output_for_insert): Don't use this
7944 optimization for rows that overlap others.
7945 (update_window_line): Return non-zero if display has changed.
7946 (update_text_area): Ditto.
7947 (update_window): Record if display has been changed.
7948
7949 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
7950
7951 * dispextern.h (struct redisplay_interface): Add
7952 fix_overlapping_area.
7953
7954 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
7955
7956 * dispextern.h (struct glyph): Add overlaps_vertically_p.
7957
7958 * xterm.c (x_produce_image_glyph): Compute iterator's physical
7959 ascent and descent.
7960 (x_produce_stretch_glyph): Ditto.
7961 (x_produce_glyphs): Ditto.
7962
7963 * xdisp.c (init_iterator): Reset physical line height info
7964 after producing special glyphs.
7965 (display_toolbar_line): Set physical line height info.
7966 (compute_line_metrics): Ditto.
7967 (display_line): Ditto.
7968 (display_string): Ditto.
7969
7970 * term.c (produce_glyphs): Set iterator's physical height
7971 information.
7972
7973 * dispnew.c (blank_row): Compute glyph row's physical height.
7974 (row_equal_p): Take physical row heights into account.
7975 (direct_output_for_insert): Ditto.
7976 (update_text_area): Ditto.
7977
7978 * dispextern.h (struct glyph_row): Add phys_ascent and
7979 phys_height.
7980 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
7981 max_phys_descent.
7982
79831999-08-04 Stefan Monnier <monnier@cs.yale.edu>
7984
7985 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
7986 Fswitch_to_buffer.
7987 (no_switch_buffer): New function.
7988 (Fswitch_to_buffer): Call them. Don't get confused
7989 by "same-window" buffers in a dedicated frame.
7990
7991 * window.c (display-buffer): Don't get confused
7992 by "same-window" buffers in a dedicated frame.
7993
79941999-08-04 Andreas Schwab <schwab@gnu.org>
7995
7996 * insdel.c (insert_from_string_1): Check gap size against number
7997 of outgoing bytes, not incoming bytes.
7998
79991999-08-03 Tom Breton <tob@world.std.com>
8000
8001 * lread.c (read1): Added circular reading code to #N=.
8002 (SUBSTITUTE): New macro.
8003 (seen_list): New variable.
8004 (substitute_object_in_subtree): New function.
8005 (substitute_object_recurse): New function.
8006 (substitute_in_interval): New function.
8007
80081999-08-02 Eli Zaretskii <eliz@gnu.org>
8009
8010 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
8011
8012 * frame.c (make_terminal_frame): Don't call init_frame_faces if
8013 noninteractive, for termcap frames as well.
8014
8015 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
8016 frames.
8017
80181999-08-01 Richard Stallman <rms@gnu.org>
8019
8020 * fns.c (internal_equal): Correct overlay comparison.
8021
83c8f461 80221999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 8023
427ec082 8024 * xfns.c (x_set_internal_border_width):
26901792
DL
8025 Call do_pending_window_change. Don't block input, don't call XFlush.
8026 (x_set_vertical_scroll_bars): Call do_pending_window_change.
8027 (x_set_scroll_bar_width, x_set_font): Likewise.
8028
8029 * frame.c (Fset_frame_height): Call do_pending_window_change.
8030 (Fset_frame_width, Fset_frame_size): Likewise.
8031
8032 * xterm.c (x_set_window_size): When calling change_frame_size,
8033 specify 1 for DELAY.
8034
8035 * widget.c (EmacsFrameSetCharSize): Don't call
8036 do_pending_window_change here.
8037
80381999-07-30 Dave Love <fx@gnu.org>
8039
8040 * config.in: Add HAVE_STDLIB_H.
8041
80421999-07-30 Richard M. Stallman <rms@gnu.org>
8043
8044 * process.c (create_process): Detect failure of `pipe'.
8045
80461999-07-30 Keisuke Nishida <kei@psn.net>
8047
8048 * alloc.c (allocate_vectorlike): Add missing increment.
8049
8050 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8051
8052 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8053 before calling indirect_function.
8054
80551999-07-30 Eli Zaretskii <eliz@gnu.org>
8056
8057 * dispextern.h (load_color, lookup_derived_face): Declare
8058 prototypes.
8059
8060 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8061 it will be done later.
8062
8063 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8064 init_frame_faces if non-interactive.
8065 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8066 array with a call to msdos_stdcolor_name. The font name is now
8067 "ms-dos", consistent with realize_tty_face.
8068
8069 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8070 MSDOS frame.
8071
8072 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8073 x_set_toolbar_lines.
8074
8075 * xfaces.c (load_color): Remove static from definition and remove
8076 prototype.
8077 [MSDOS]: Add a DOS-specific version of load_color.
8078 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8079 (lookup_derived_face): New function.
8080 (realize_default_face): Support MSDOS frames.
8081 [MSDOS]: If fore/background colors are unspecified, inherit them
8082 from the frame.
8083 (realize_face): Support MSDOS frames.
8084 (realize_tty_face): Support MSDOS frames.
8085 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8086 load_color to try to find a suitable approximation. If the face
8087 is inverse-video, swap the foreground and background colors.
8088
8089 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8090 functions.
8091
8092 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8093
8094 * msdos.h: Remove redundant declarations (most of them are now in
8095 dispextern.h).
8096
8097 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8098 Use default frame colors if the face doesn't specify them; invert
8099 the colors if highlight is ON.
8100 (IT_write_glyphs): Rewritten for the new redisplay engine.
8101 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8102 how the hook is called by term.c.
8103 (IT_copy_glyphs): New function, copies an area of the display in
8104 video RAM.
8105 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8106 redisplay now calls it even if char_ins_del_ok is zero.
8107 (IT_set_frame_parameters): Prototype changed. Calls the new
8108 load_color. Puts the new fore/background colors into the default
8109 face on current frame.
8110 (IT_menu_display): Rewritten to handle the new struct glyph
8111 instead of a char array.
8112 (XMenuActivate): Call lookup_derived_face to create and use
8113 special faces for the pop-up and drop-down menus.
8114
81151999-07-29 Gerd Moellmann <gerd@gnu.org>
8116
8117 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8118 XawScrollbarSetThumb if thumb parameters haven't changed because
8119 that function apparently isn't optimized for this case.
8120
81211999-07-29 Eli Zaretskii <eliz@gnu.org>
8122
8123 * msdos.c (getdefdir): Don't return failure indication when
8124 _fixpath sets errno to ENOSYS.
8125
81261999-07-28 Gerd Moellmann <gerd@gnu.org>
8127
8128 * xdisp.c (string_char_and_length): New. Use it everywhere
8129 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8130
81311999-07-28 Kenichi Handa <handa@etl.go.jp>
8132
8133 * fns.c (count_combining): New function.
8134 (struct textprop_rec): New structure.
8135 (concat): Copy text properties correctly when byte combining
8136 occurs.
8137
81381999-07-28 Gerd Moellmann <gerd@gnu.org>
8139
8140 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8141 if display is mono.
8142 (x_draw_row_bitmaps): If face has stipple, don't switch
8143 to foreground color for clearing areas, and set the fill style.
8144
8145 * xfaces.c (load_face_colors): Load background color if setting
8146 stipple, too.
427ec082 8147 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8148 FillStippled.
8149
81501999-07-26 Ken'ichi Handa <handa@gnu.org>
8151
8152 * xterm.c (x_find_ccl_program): Add casting.
8153
8154 * w32fns.c (w32_find_ccl_program): Add casting.
8155
81561999-07-27 Gerd Moellmann <gerd@gnu.org>
8157
8158 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8159
8160 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8161 because this will try to access a nonexisting widget.
8162
81631999-07-26 Markus Rost <rost@gnu.org>
8164
427ec082 8165 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8166 (Fputhash): Ditto.
8167 (Fremhash): Ditto.
8168
81691999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8170
26901792
DL
8171 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8172 value to frame width and height.
8173
8174 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8175 into account for full-width windows. Don't add scroll bar width
8176 to width of clip rect.
8177 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8178 (x_set_glyph_string_background_width): Add 1 to background width.
8179 (x_draw_glyphs): Take internal border into account for full-width
8180 lines.
8181
81821999-07-26 Richard M. Stallman <rms@gnu.org>
8183
8184 * xfns.c (x_set_mouse_color): Always unload the old color.
8185 Don't allow nil as color value.
427ec082 8186 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8187 Always unload the old color.
8188
8189 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8190
81911999-07-26 Karl Heuer <kwzh@gnu.org>
8192
8193 * fns.c (Fy_or_n_p): Doc fix.
8194
81951999-07-26 Kenichi Handa <handa@etl.go.jp>
8196
8197 * ccl.h (setup_ccl_program): The type is changed to `int'.
8198
8199 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8200 stored in the following CCL code. Adjusted for the change of
8201 Vccl_program_table.
8202 (resolve_symbol_ccl_program): Adjusted for the new style of
8203 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8204 is resolving failed.
8205 (ccl_get_compiled_code): New function.
8206 (setup_ccl_program): Function type changed from `void' to `int'.
8207 Resolve symbols in CCL_PROG.
8208 (Fccl_program_p): New function.
8209 (Fccl_execute): Get compiled CCL code by just calling
8210 setup_ccl_program.
8211 (Fccl_execute_on_string): Likewise.
8212 (Fregister_ccl_program): Adjusted for the change of
8213 Vccl_program_table.
8214
8215 * coding.c (setup_coding_system): Get compiled CCL code by just
8216 calling setup_ccl_program.
8217
8218 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8219 calling setup_ccl_program.
8220
8221 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8222 calling setup_ccl_program.
8223
82241999-07-23 Gerd Moellmann <gerd@gnu.org>
8225
8226 * xfaces.c (frame_update_line_height): Just use the height of the
8227 frame's fontset or font, instead of taking face fonts into
8228 account.
8229
8230 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8231
82321999-07-23 Richard M. Stallman <rms@gnu.org>
8233
8234 * window.c (Fsplit_window): For default size, round up for left window.
8235
82361999-07-21 Joe Ramey <ramey@ti.com>
8237
8238 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8239 has returned -1 (lockfile exists but is not a symlink?).
8240
82411999-07-20 Gerd Moellmann <gerd@gnu.org>
8242
8243 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8244 because of a change in cursor_gc made in 20.4.
8245
82461999-07-19 Gerd Moellmann <gerd@gnu.org>
8247
8248 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8249 for YNegative, if using X toolkit.
8250
427ec082 8251 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8252 from positions returned.
8253
82541999-07-17 Gerd Moellmann <gerd@gnu.org>
8255
8256 * xrdb.c (x_load_resources): Set double-click time defaults
8257 for Motif list boxes from double-click-time.
8258
8259 * fns.c (Vhash_table_tests): Remvoed.
8260 (Qhash_table_test): New.
8261 (syms_of_fns): Initialize Qhash_table_test.
8262 (Fmake_hash_table): Look up user-defined tests in symbol prop
8263 `hash-table-test'.
8264 (Fdefine_hash_table_test): Store test and hash function as
8265 symbol prop `hash-table-test'.
8266 (make_hash_table): Add parameters user_test and user_hash.
8267
8268 * window.c (set_window_buffer): Set window margins for tty
8269 frames, too.
8270 (Fset_window_margins): Ditto.
8271
8272 * term.c (append_glyph): Use glyph area of iterator instead of
8273 always TEXT_AREA.
8274
8275 * dispnew.c (update_frame_1): Add left margin width to cursor
8276 hpos.
8277 (direct_output_for_insert): Ditto.
8278 (direct_output_forward_char): Ditto.
8279
8280 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8281
8282 * dispextern.h (struct glyph_matrix): Add top_line_p.
8283
82841999-07-16 Gerd Moellmann <gerd@gnu.org>
8285
8286 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8287 instead.
8288
8289 * fns.c (cmpfn_eq): Add hash code parameters.
8290 (cmpfn_eql): Ditto.
8291 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8292 (cmpfn_user_defined): Likewise.
8293
82941999-07-15 Gerd Moellmann <gerd@gnu.org>
8295
8296 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8297
8298 * fns.c (maybe_resize_hash_table): Correct computation of
8299 index vector size.
8300 (make_hash_table): Ditto.
8301 (Fmakehash): New.
8302
8303 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8304
8305 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8306 (survives_gc_p): Make it externally visible.
8307 (mark_object): Ditto.
8308
8309 * fns.c (remove_hash_entry): Removed.
8310 (sweep_weak_hash_tables): New.
8311
8312 * print.c (print): Print more information about hash tables.
8313
8314 * xfns.c (image_spec_hash): Removed.
8315 (lookup_image): Use sxhash instead of image_spec_hash.
8316 (image_spec_equal_p): Removed.
8317 (lookup_image): Use Fequal instead of image_spec_equal_p.
8318
83191999-07-14 Gerd Moellmann <gerd@gnu.org>
8320
8321 * lisp.h (P_): Moved to top of file.
8322
8323 * fns.c (make_hash_table): Set new members.
8324
8325 * alloc.c (mark_object): Mark hash table's user_hash_function.
8326 Mark index vector for weak hash tables.
8327
8328 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8329 user_hash_function, cmpfn, and hashfn.
8330
8331 * fns.c (build_hash): Removed.
8332 (hash_test): Removed.
8333 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8334 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8335
83361999-07-13 Gerd Moellmann <gerd@gnu.org>
8337
8338 * alloc.c (survives_gc_p): New.
8339
8340 * print.c (print): Add hash table handling.
8341
8342 * alloc.c (mark_object): Add code to mark hash tables.
8343
8344 * lisp.h (GC_HASH_TABLE_P): New.
8345
8346 * emacs.c (main): Call init_fns.
8347
8348 * fns.c (init_fns): New.
8349
8350 * fns.c: Add hash table implementation.
8351
8352 * lisp.h (PVEC_HASH_TABLE): New.
8353 (struct Lisp_Hash_Table): New.
8354 (XHASH_TABLE): New.
8355 (XSET_HASH_TABLE): New.
8356 (HASH_TABLE_P): New.
8357 (CHECK_HASH_TABLE): New.
8358 (DEFAULT_HASH_SIZE): New.
8359 (DEFAULT_REHASH_THRESHOLD): New.
8360 (DEFAULT_REHASH_SIZE): New.
8361
8362 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8363 (x_write_glyphs): Compute overwritten cursor using real start
8364 and end positions of display.
8365 (x_insert_glyphs): Ditto.
8366
83671999-07-10 Gerd Moellmann <gerd@gnu.org>
8368
8369 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8370
8371 * dispnew.c (blank_row): Add y-position as parameter. Compute
8372 visible height.
8373
8374 * xdisp.c (next_element_from_string): Give padding spaces
8375 a position of -1.
8376
427ec082 8377 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8378 marginals areas on tty frames in a future version.
8379 (allocate_matrices_for_frame_redisplay): Ditto.
8380
8381 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8382 to zero if number of glyphs in the row is <= 1.
8383
83841999-07-09 Gerd Moellmann <gerd@gnu.org>
8385
8386 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8387 into account.
8388
8389 * xdisp.c (handle_display_prop): Don't reset area if handing
8390 a property from a string that came from a `display' property.
8391 (handle_single_display_prop): Don't handle recursive `display'
8392 properties.
8393 (handle_single_display_prop): Handle some display property
8394 forms for terminal frames.
8395 (Qimage): Moved here from xfns.c.
8396
8397 * dispextern.h (struct it): New field string_from_display_prop_p.
8398
8399 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8400 line.
8401
84021999-07-08 Gerd Moellmann <gerd@gnu.org>
8403
8404 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8405
8406 * window.c (set_window_buffer): Set window's vscroll to zero.
8407
8408 * xdisp.c (QCwhen): New.
8409 (display_prop_end): New.
8410 (handle_single_display_prop): Use it.
8411 (debug_method_add): Print buffer name if tracing.
8412 (try_window_reusing_current_matrix): Compute visible height
8413 of reused rows. Fix cursor position calculation in case of
8414 top-line.
8415
8416 * dispextern.h (struct redisplay_interface): Add parameter
8417 cursor_on_p to update_window_end_hook.
8418
8419 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8420
84211999-07-07 Gerd Moellmann <gerd@gnu.org>
8422
427ec082 8423 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8424 doesn't become negative when decrementing it.
8425
8426 * eval.c (Fsignal): Reset redisplaying_p to zero.
8427
8428 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8429 for window update.
8430 (try_window_id): Ditto.
8431
8432 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8433 (x_scroll_run): Ditto.
8434 (any_help_event_p): New.
8435 (x_initialize): Set it to zero.
8436 (XTread_socket): Clear help echo only if any_help_event_p.
8437
8438 * xdisp.c (init_iterator): Set top_line_p.
8439 (start_display): Use correct initial y if top-line is present.
8440 (make_cursor_line_fully_visible): Bug fixes for top-line.
8441 (try_scrolling): Ditto.
8442 (try_window_reusing_current_matrix): Ditto.
8443
8444 * dispextern.h (struct it): Add top_line_p.
8445
8446 * dispnew.c (shift_glyph_matrix): Move some computations out
8447 of the loop.
8448
427ec082 8449 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8450 XFLOATINT.
8451
84521999-07-06 Gerd Moellmann <gerd@gnu.org>
8453
8454 * dispnew.c (update_frame_1): When setting cursor in echo area,
8455 skip only over padding spaces at the end.
8456
8457 * xfaces.c (realize_tty_face): Set face's font_name field to
8458 "tty".
8459
8460 * term.c (update_end): Turn cursor on only if selected window's
8461 cursor_off_p flag is not set.
8462
84631999-07-05 Gerd Moellmann <gerd@gnu.org>
8464
8465 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8466 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8467 (TS_cursor_invisible): New.
8468 (term_init): Initialize TS_cursor_invisible.
8469 (tty_hide_cursor): New.
8470 (tty_show_cursor): New.
8471 (update_end): Show tty cursor.
8472 (update_begin): Hide tty cursor to prevent cursor flickering
8473 during redisplays triggered by timers (stealth fontification).
8474
8475 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8476
8477 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8478 in scroll bars.
8479 (x_handle_toolbar_click): Set modifier bits.
8480
84811999-07-04 Gerd Moellmann <gerd@gnu.org>
8482
8483 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8484 instead of a pointer to a volatile input_event.
427ec082 8485 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8486 declaration of local variable `sp'.
8487 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8488 to kbd_fetch_ptr.
8489
84901999-07-03 Gerd Moellmann <gerd@gnu.org>
8491
8492 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8493 only if buffer is modified. Return quickly if changes are
8494 above window start.
8495
84961999-07-02 Gerd Moellmann <gerd@gnu.org>
8497
8498 * dispextern.h (HSCROLL_WINDOWS): Removed.
8499
8500 * xdisp.c (mark_window_display_accurate): Don't set
8501 w->region_showing.
8502 (redisplay_internal): Don't call redraw_garbaged_frames.
8503
85041999-07-01 Gerd Moellmann <gerd@gnu.org>
8505
8506 * xdisp.c (echo_area_display): Don't display truncation marks
8507 for messages because 20.4 doesn't do it either.
8508 (redisplay_window): Case same window start. Instead of giving
8509 up when cursor is partially visible, make it fully visible.
8510 (mark_window_display_accurate): Some cleanup. Record window's
8511 last cursor information.
8512 (debug_method_add): Improved.
8513 (redisplay_internal): Record last cursor info only if not
8514 consider_all_windows_p.
8515
8516 * dispnew.c (update_window): Update top line after scrolling.
8517 (blank_row): Renamed from make_empty_enabled_row.
8518 (increment_glyph_row_buffer_positions): Increment positions
8519 in buffers, only.
8520
8521 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8522 string.
8523
85241999-06-30 Gerd Moellmann <gerd@gnu.org>
8525
8526 * dispnew.c (update_window): Check that updated row is visible.
8527
8528 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8529 top of window differently.
8530
8531 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8532 if region is showing.
8533
8534 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8535 avoiding matrix reallocation. Set window_vscroll in matrix.
8536
8537 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8538
26901792
DL
8539 * xdisp.c (debug_method_add): New.
8540 (debug_redisplay_method): Removed.
8541 (try_window_reusing_current_matrix): Handle case where old
8542 window start is the same as new window start.
8543
8544 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8545 an array instead of a pointer.
8546
26901792
DL
8547 * xfns.c (Fx_show_tip): Undo previous change.
8548
8549 * xterm.c (x_append_glyph): Clear glyph->u.val.
8550
8551 * dispextern.h (struct glyph): Increase size of face_id bit-field
8552 for CHAR_GLYPH to 12.
8553
85541999-06-29 Gerd Moellmann <gerd@gnu.org>
8555
8556 * xfaces.c (x_charset_registry): Make it externally visible.
8557
85581999-06-28 Gerd Moellmann <gerd@gnu.org>
8559
427ec082 8560 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8561 instead of WINDOW_WANTS_MODELINE_P.
8562
8563 * xterm.c (clear_mouse_face): Make externally visible.
8564
8565 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8566
8567 * xterm.c (expose_line): Handle exposure of top-lines.
8568
8569 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8570 if mouse_face_mouse_frame is null.
8571
8572 * xdisp.c (redisplay_window): If window is echo_area_window,
8573 and update_mode_line is set, update menubar and toolbar.
8574
8575 * dispnew.c (space_glyph): Set its charpos to -1.
8576 (update_frame_1): Ignore trailing padding spaces.
8577
8578 * xdisp.c (next_element_from_c_string): Set position of padding
8579 glyphs to -1.
8580
85811999-06-27 Gerd Moellmann <gerd@gnu.org>
8582
8583 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8584 XQueryColor.
8585
8586 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8587 (set_cursor_from_row): Skip over glyphs having a null object at
8588 the start of rows.
8589 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8590 glyphs.
8591 (handle_invisible_prop): Compute next change only when needed.
8592 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8593 line.
8594
85951999-06-26 Gerd Moellmann <gerd@gnu.org>
8596
8597 * xrdb.c (x_load_resources): Don't set resource for double-click
8598 time.
8599
8600 * xdisp.c (try_window_id): Return quickly if all changes are
8601 below the window's current matrix end.
8602
8603 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8604 parameter.
8605
8606 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8607 in desired not in current matrix.
8608 (try_window_reusing_current_matrix): Rotate matrices starting
8609 at start_vpos instead of 0.
8610
8611 * xterm.c (expose_window): Use window_text_bottom_y.
8612 (fast_find_position): Ditto.
8613
8614 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8615 (try_window_reusing_current_matrix): Ditto.
8616 (get_last_unchanged_at_beg_row): Ditto.
8617 (init_iterator): Ditto.
8618
8619 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8620 more row.
8621 (check_matrix_invariants): Use window_text_bottom_y.
8622 (update_window): Ditto.
8623 (scrolling_window): Ditto.
8624
8625 * xdisp.c (window_text_bottom_y): New.
8626
86271999-06-25 Gerd Moellmann <gerd@gnu.org>
8628
8629 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8630 clearing mouse face.
8631 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8632 event.xcrossing.focus is not set, and focus is in the menu bar,
8633 set focus frame as if event.xcrossing.focus were set.
8634
86351999-06-24 Gerd Moellmann <gerd@gnu.org>
8636
8637 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8638 * keyboard.c (make_lispy_movement): Ditto.
8639
8640 * window.c (coordinates_in_window): Return 4 if on top line.
8641 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8642
8643 * xdisp.c (window_box_height): Subtract top line height.
8644 (window_box): Add top line height to top y position if top line
8645 exists.
8646 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8647 the top line row of the window. Set initial y-position to
8648 window's top line height plus delta.
8649 (start_display): Choose start glyph row depending on whether
8650 window has a top line.
8651 (try_scrolling): Take top line height into account for aggressive
8652 scrolling.
8653 (compute_window_start_on_continuation_line): Take top line into
8654 account.
427ec082 8655 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
8656 trigger a new redisplay.
8657 (try_window_reusing_current_matrix): Take top line into account.
8658 (find_last_row_displaying_text): Ditto.
8659 (get_last_unchanged_at_beg_row): DItto.
8660 (try_window_id): Ditto.
8661 (compute_line_metrics): Ditto.
8662
8663 * dispnew.c (shift_glyph_matrix): Compute visible row height
8664 taking top line of window into account.
8665 (update_window): Update top line. If scrolling_window detects
8666 that all rows are equal, only set cursor.
8667 (update_window_line): Call after_update_window_line_hook if
8668 mode_line_p flag of rows has changed.
8669 (scrolling_window): Add parameter top_line_p. Return -1 if
8670 all rows are equal.
8671 (mode_line_string): Add parameter mode_line_p. Handle strings
8672 in top lines.
8673
8674 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8675 (MATRIX_FIRST_TEXT_ROW): New.
8676 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8677 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8678 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8679 (MATRIX_TOP_LINE_HEIGHT): New.
8680 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8681 (CURRENT_TOP_LINE_HEIGHT): New.
8682 (DESIRED_TOP_LINE_HEIGHT): New.
8683 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8684 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8685 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8686 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8687
8688 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8689 lines.
8690 (x_draw_row_bitmaps): Take top line into account when clearing
8691 bitmap area.
8692 (x_estimate_mode_line_height): Replacement for
8693 x_frame_mode_line_height.
8694 (x_get_glyph_string_clip_rect): Take top line into account.
8695 (x_clear_end_of_line): Ditto.
8696 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8697 top lines.
8698 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8699 (x_erase_phys_cursor): Take top line into account.
8700
8701 * xdisp.c (window_box_height): Subtract top line height if
8702 window wants a top line.
8703 (display_mode_lines): New.
8704 (redisplay_window): Call it.
8705 (display_mode_line): Add parameters face_id and format.
8706
8707 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8708 (MATRIX_TOP_LINE_HEIGHT): New.
8709
8710 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8711
8712 * term.c (estimate_mode_line_height): Renamed from
8713 frame_mode_line_height. Add parameter face_id.
8714 (estimate_mode_line_height_hook): Renamed from
8715 frame_mode_line_height_hook.
8716 (produce_special_glyphs_hook): Removed.
8717 (produce_glyphs_hook): Removed.
8718
87191999-06-23 Gerd Moellmann <gerd@gnu.org>
8720
8721 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8722 (struct glyph_row): Add mode_line_p.
8723
8724 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8725 (Qtop_line): New.
8726 (syms_of_xfaces): Initialize Qtop_line.
8727
8728 * dispextern.h (TOP_LINE_FACE_ID): New.
8729
8730 * buffer.c (init_buffer_once): Set default for
8731 top_line_format to nil.
8732 (init_buffer_once): Init top_line_format.
8733 (default-top-line-format): New.
8734 (top-line-format): New buffer-local variable.
8735
8736 * buffer.h: Add top_line_format.
8737
8738 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8739
87401999-06-17 Dave Love <fx@gnu.org>
8741
8742 * xfns.c: Move the PNG section before the JPEG one to avoid
8743 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 8744
26901792
DL
87451999-06-17 Gerd Moellmann <gerd@gnu.org>
8746
8747 * xfns.c (x_kill_gs_process): Don't free colors.
8748
87491999-06-17 Dave Love <fx@gnu.org>
8750
8751 * s/gnu-linux.h: Zap spurious ~.
8752
87531999-06-16 Gerd Moellmann <gerd@gnu.org>
8754
8755 * xfns.c (gif_load): Improve multi-image support.
8756
87571999-06-15 Gerd Moellmann <gerd@gnu.org>
8758
8759 * xfns.c (gif_load): Support multi-image files.
8760
8761 * Makefile.in (LIBGIF): Use libungif.
8762
8763 * configure.in (HAVE_GIF): Use libungif instead of libgif
8764 because the former doesn't contain patented compression code.
8765
8766 * xdisp.c (compute_window_start_on_continuation_line): Don't
8767 do it if line start is too far away from window start.
8768
87691999-06-14 Gerd Moellmann <gerd@gnu.org>
8770
8771 * buffer.c (init_buffer_once): Set buffer_local_flags for
8772 scroll_*_aggressively.
8773 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
8774 (init_buffer_once): Set defaults for these variables.
8775 (syms_of_buffer): Add default-scroll-*-aggressively.
8776
8777 * buffer.h (scroll_up_aggressively): New.
8778 (scroll_down_aggressively): New.
8779
8780 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
8781 a static PNG library.
8782
8783 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
8784 in case it's a static library.
8785
8786 * Makefile.in (ctagsfiles): Split so that files starting
8787 with an `x' are found before files starting with `w32'.
8788 (ctagsfiles1): New.
8789 (ctagsfiles2): New.
8790 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
8791
8792 * xdisp.c (compute_window_start_on_continuation_line): New.
8793 (redisplay_window): Use it.
8794 (INFINITY): New.
8795 (reseat_to_string): Use it.
8796 (hscroll_window_tree): Ditto.
8797 (compute_window_start_on_continuation_line): Ditto.
8798 (redisplay_window): Don't force display with a new window start.
8799
88001999-06-06 Gerd Moellmann <gerd@gnu.org>
8801
8802 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
8803 if widget not present.
8804
8805 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
8806
88071999-06-04 Gerd Moellmann <gerd@gnu.org>
8808
8809 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
8810 value of realize_basic_faces.
8811 (load_face_font_or_fontset): Store full font name in face.
8812 (realize_default_face): Use full font name.
8813
26901792
DL
8814 * xterm.c (x_produce_glyphs): Set member char_to_display.
8815 (x_append_glyph): Store char_to_display in glyphs.
8816
8817 * dispextern.h (struct it): Add char_to_display.
8818
8819 * xfns.c (x_set_font): Don't call face-set-after-frame-default
8820 if faces haven't been initialized.
8821 (Fx_create_frame): Call face-set-after-frame-default after
8822 faces have been initialized, and widget has been created.
8823
8824 * puresize.h (BASE_PURESIZE): Increased.
8825
88261999-06-01 Gerd Moellmann <gerd@gnu.org>
8827
8828 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
8829 (Finternal_set_lisp_face_attribute): If frame is t when
8830 :font attribute is set, use the selected frame.
8831 (clear_face_cache): Add parameter clear_fonts_p.
8832 (Fclear_face_cache): Add optional parameter thorougly.
8833
8834 * xfaces.c (face_numeric_value): Return -1 if symbol is not
8835 in table.
8836 (Fclear_face_cache): New.
8837 (choose_face_fontset_font): If fontset doesn't contain font
8838 pattern for the given charset, use CHARSET_ASCII.
8839 (Finternal_set_lisp_face_attribute): Fix handling of nil
8840 stipple attribute.
8841 (Finternal_set_lisp_face_attribute): Fix handling of changing
8842 font-related face attributes of the default face.
8843 (set_lface_from_font_name): Set only attributes that aren't
8844 specified.
8845
88461999-05-31 Gerd Moellmann <gerd@gnu.org>
8847
8848 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
8849 font support.
8850 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
8851 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
8852 scalable fonts depending on the setting of SCALABLE_FONTS.
8853 (first_font_matching): List more than one font to find the
8854 first non-scalable matching font.
8855 (sorted_font_list): Let x_face_list_fonts return scalable fonts
8856 depending on SCALABLE_FONTS.
8857 (better_font_p): New parameter compare_pt_p. If zero, don't
8858 compare point sizes of fonts.
8859 (exact_face_match_p) [SCALABLE_FONTS]: New.
8860 (build_scalable_font_name) [SCALABLE_FONTS]: New.
8861 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
8862 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
8863 (syms_of_xfaces): Add scalable-fonts-allowed.
8864
88651999-05-26 Gerd Moellmann <gerd@gnu.org>
8866
8867 * xfns.c (png_load): Let PNG lib handle gamma. Construct
8868 mask only if image contains simple transparency information.
8869 Otherwise, combine image with frame background color.
8870
8871 * configure.in (--with-png, HAVE_PNG): New.
8872
8873 * config.in (HAVE_PNG): New.
8874
8875 * Makefile.in: Add PNG library.
8876
8877 * xfns.c: Add PNG support.
8878
88791999-05-25 Gerd Moellmann <gerd@gnu.org>
8880
8881 * xdisp.c (init_xdisp): Initialize echo_area_message and
8882 previous_echo_area_message to nil.
8883
8884 * keyboard.c (read_char): Rename local variable echo_area_message
8885 because it shadows the global one.
8886
88871999-05-05 Gerd Moellmann <gerd@gnu.org>
8888
8889 * xterm.c (note_mode_line_highlight): Restructured.
8890
8891 * window.c (coordinates_in_window): Handle windows that don't have
8892 a mode line because their buffer's mode-line-format is nil.
8893 Recognize the mode line under x positions that correspond to
8894 flags areas and left scroll bar.
8895
88961999-05-02 Dave Love <fx@gnu.org>
8897
8898 * xterm.c (note_mouse_highlight): Separate help-echo processing
8899 from check on mouse-face so that it works generally.
8900
89011999-04-21 Gerd Moellmann <gerd@gnu.org>
8902
8903 * sound.c (Fplay_sound): Run hook play-sound-hook.
8904 (Qplay_sound_hook): New.
8905
89061999-04-20 Gerd Moellmann <gerd@gnu.org>
8907
8908 * xdisp.c (update_echo_area): Handle echo_area_message.
8909
89101999-04-19 Gerd Moellmann <gerd@gnu.org>
8911
8912 * editfns.c (Fmessage): Use message3.
8913
8914 * print.c (printchar): Set echo_area_message to nil.
8915 (strout): Ditto.
8916
8917 * minibuf.c (read_minibuf): Reset echo message strings to nil.
8918 (Fminibuffer_completion_help): Ditto.
8919
8920 * keyboard.c (cmd_error_internal): Set echo_areA_message.
8921 (command_loop_1): Test echo_areA_message.
8922 (read_char): Ditto.
8923 (record_menu_key): Set echo_area_message to nil.
8924 (Fexecute_extended_command): Test echo_area_message.
8925 (Fexecute_extended_command): Handle echo_area_message.
8926
8927 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
8928 is set.
8929
8930 * editfns.c (Fcurrent_message): If echo_area_message is set,
8931 return a substring of that string.
8932
8933 * dispnew.c (direct_output_for_insert): Test echo_area_message
8934 in addition to echo_area_glyphs.
8935 (set_window_cursor_after_update): Ditto.
8936 (update_frame_1): Ditto.
8937
8938 * alloc.c (Fgarbage_collect): Use message3_nolog to display
8939 old Lisp message string.
8940
8941 * xdisp.c (echo_area_message): New.
8942 (previous_echo_area_message): New.
8943 (syms_of_xdisp): Initialize and staticpro new variables.
8944 (echo_area_display): Display echo_area_message if set.
8945 (message2_nolog): Set echo_area_message and
8946 previous_echo_area_message.
8947 (echo_area_display): Set previous_echo_area_message.
8948 (redisplay_internal): Display echo area if echo_area_message
8949 or previous_echo_area_message are set.
8950 (redisplay_preserve_echo_area): Test/set echo_area_message and
8951 previous_echo_area_message.
8952 (redisplay_window): Test echo_area_message.
8953 (message3_nolog): New.
8954 (message3): New.
8955
8956 * editfns.c (Fformat): Add text properties to the result string
8957 from properties of the format string and properties of string
8958 arguments.
8959
8960 * textprop.c (text_property_list): New.
8961 (add_text_properties_from_list): New.
8962 (extend_property_ranges): New.
8963
89641999-03-29 Gerd Moellmann <gerd@gnu.org>
8965
8966 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
8967 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
8968 Use these symbols for the box face attribute instead of the
8969 removed ones.
8970
89711999-03-12 Gerd Moellmann <gerd@gnu.org>
8972
8973 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
8974 Correct wrong test for slant.
8975
89761999-03-10 Gerd Moellmann <gerd@gnu.org>
8977
8978 * xfaces.c: Use `unspecified' for unspecified face attributes,
8979 use t and nil for on/off.
8980
89811999-03-06 Gerd Moellmann <gerd@gnu.org>
8982
8983 * buffer.c (syms_of_buffer): Extend doc string of
8984 mode-line-format.
8985
8986 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
8987 (first_font_matching): New.
8988 (set_lface_from_font_name): Use it if font name is a pattern.
8989 (font_field_wildcard_p): Removed.
8990
8991 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
8992 Recompute visible height of rows.
8993
8994 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
8995 Don't accept non-strings for help-echo from overlays.
8996
89971999-03-04 Dave Love <fx@gnu.org>
8998
8999 * xterm.c (note_mouse_highlight): Check overlays for help-text
9000 property.
9001 (XTread_socket): Fix compiler warning.
427ec082 9002
26901792
DL
90031999-03-05 Gerd Moellmann <gerd@gnu.org>
9004
427ec082 9005 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
9006 overlay to 10. Call overlays_at so that it doesn't try to
9007 extend the vector.
9008
9009 * xdisp.c (compute_line_metrics): Compute glyph row's visible
9010 height.
9011
9012 * dispnew.c (row_equal_p): Compare visible row height, only.
9013 (update_text_area): Draw whole line if visible heights of
9014 rows differ.
9015 (update_window_line): Call after_update_window_line_hook
9016 if visible row height has changed.
9017
9018 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
9019 (struct glyph_row): New member visible_height.
9020
9021 * xfaces.c (font_field_wildcard_p): New.
9022 (set_lface_from_font_name): Remove parameter force_p. Accept
9023 font names containing wildcards.
9024
90251999-03-04 Gerd Moellmann <gerd@gnu.org>
9026
9027 * xterm.c (x_after_update_window_line): Clear internal border
9028 when windows_or_buffers_changed.
9029
9030 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
9031 buffer has a nil mode_line_format.
9032
90331999-03-03 Gerd Moellmann <gerd@gnu.org>
9034
9035 * xterm.c (x_setup_relief_colors): Use either background color
9036 or specified color.
9037
9038 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9039
9040 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9041
9042 * xterm.c (x_draw_box_rect): New.
9043 (x_draw_glyph_string_box): Renamed from
9044 x_draw_glyph_string_relief. Call x_draw_box_rect.
9045
9046 * xfns.c (QCrelief): New.
9047 (syms_of_xfns): Initialize it.
9048
9049 * dispextern.h (struct glyph): Rename left_shadow_p to
9050 left_box_line_p, right_shadow_p to right_box_line_p.
9051 (MAX_RELIEF_THICKNESS): Removed.
9052 (struct it): Rename members having `relief' in their names
9053 to contain `box' instead.
9054
9055 * xfaces.c (realize_x_face): Handle new box attribute values.
9056 (QCrelief, Qbox): Removed.
9057 (QCshadow, QCcolor, Qraised, Qsunken): New.
9058 (syms_of_xfaces): Initialize new symbols.
9059
90601999-03-02 Gerd Moellmann <gerd@gnu.org>
9061
9062 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9063
9064 * xfaces.c (LFACE_RELIEF): Removed.
9065 (merge_face_vector_with_property): Remove handling of `:relief'.
9066 (Finternal_set_lisp_face_attribute): Ditto.
9067 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9068 (Finternal_get_lisp_face_attribute): Ditto.
9069 (realize_default_face): Ditto.
9070 (lface_hash): Don't compute hash from relief.
9071
9072 * dispextern.h (struct face): Replace member `relief' by
9073 `box_line_width'. Add member `box'.
9074 (face_box_type): New.
9075
9076 * xterm.c (x_produce_glyphs): If face has overline, add overline
9077 thickness + 1 to ascent.
9078
90791999-03-01 Gerd Moellmann <gerd@gnu.org>
9080
9081 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9082 strike-through, and boxes.
9083 (x_draw_glyph_string_underline): Removed.
9084
9085 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9086 (Qoverline, Qstrike_through, Qbox): New.
9087 (syms_of_xfaces): Define these symbols.
9088 (check_lface_attrs): Add checks for overline, strike-through,
9089 and box.
9090 (Finternal_set_lisp_face_attribute): Set new attributes.
9091 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9092 (load_color): Handle new attributes.
9093 (realize_x_face): Ditto.
9094 (merge_face_vector_with_property): Ditto.
9095 (free_face_colors): Ditto.
9096 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9097 (Finternal_get_lisp_face_attribute): Ditto.
9098 (Finternal_lisp_face_attribute_values): Ditto.
9099
9100 * dispextern.h (lface_attribute_index): Add enumerators for
9101 overstrike, strike-through, and box.
9102 (struct face): Add members for overline, strike-through, and
9103 box.
9104
91051999-02-17 Dave Love <fx@gnu.org>
9106
9107 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9108 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9109 files.
9110
91111999-02-16 Gerd Moellmann <gerd@gnu.org>
9112
9113 * keyboard.c (toolbar_items): Call access_keymap with third
9114 parameter 1, so that we don't get inherited toolbar item
9115 definitions.
9116
9117 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9118 the window end vpos when in empty first line of window.
9119
91201999-02-15 Gerd Moellmann <gerd@gnu.org>
9121
9122 * xfaces.c (set_font_frame_param): New.
9123 (Finternal_set_lisp_face_attribute): Call it.
9124
9125Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9126
9127 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9128 Accept specifications of color for underline.
9129
91301999-02-13 Gerd Moellmann <gerd@gnu.org>
9131
9132 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9133 `frame' is t, operate on face defaults for new frames. If it
9134 is nil, operate on the selected frame.
9135
91361999-02-12 Gerd Moellmann <gerd@gnu.org>
9137
9138 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9139 (update_window): Put the call to check_matrix_invariants in #if 0.
9140
9141Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9142
9143 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9144 Remove definition of UNDERLINE_COLOR.
9145
9146Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9147
9148 * xfaces.c (free_face_colors): Free the color for underline.
9149
9150 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9151 to the GC.
9152
9153Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9154
9155 * dispextern.h (UNDERLINE_COLOR): Defined.
9156 (struct face): Added two new members.
9157 underline_color, underline_defaulted_p.
9158
427ec082 9159 * xfaces.c (merge_face_vector_with_property):
26901792 9160 (check_lface_attrs): Accept the string value for underline.
427ec082 9161 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9162
9163 * xfaces.c (load_color): Change the last argument type to enum
9164 lface_attribute_index from int. And addec code for underling coloring.
9165 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9166
26901792
DL
91671999-02-12 Gerd Moellmann <gerd@gnu.org>
9168
9169 * xfns.c (Fx_image_header): Removed.
9170
91711999-02-07 Gerd Moellmann <gerd@gnu.org>
9172
9173 * xterm.c: Don't include <bitmaps/gray>.
9174 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9175
9176 * xfns.c (Fx_image_header): Add missing `\n\'.
9177 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9178
91791999-02-01 Gerd Moellmann <gerd@gnu.org>
9180
9181 * xterm.c (x_scroll_bar_create): Set background pixel from
9182 specified scroll bar color.
9183 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9184
9185 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9186 (x_set_scroll_bar_background): Ditto.
9187
9188 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9189
9190 * xfns.c (x_default_scroll_bar_color_parameter): New.
9191 (Fx_create_frame): Call it.
9192
91931999-01-31 Gerd Moellmann <gerd@gnu.org>
9194
9195 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9196 values in x_output structure.
26901792
DL
9197 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9198 (syms_of_xfns): Initialize these symbols.
9199
9200 * xterm.h (struct x_output): Add scroll bar pixel colors.
9201
9202 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9203 (x_set_scroll_bar_foreground): New.
9204 (x_set_scroll_bar_background): New.
9205
26901792
DL
92061999-01-12 Gerd Moellmann <gerd@gnu.org>
9207
9208 * xdisp.c (handle_single_display_prop): New.
9209 (handle_display_prop): Call it.
9210 (handle_raise_prop): Removed.
9211 (handle_height_prop): Removed.
9212 (handle_space_width_prop): Removed.
9213 (handle_face_prop): Remove handling of raised text.
9214 (handle_display_prop): Do it here.
9215
9216 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9217 (RAISE_PROP_IDX): Removed.
9218 (HEIGHT_PROP_IDX): Removed.
9219 (SPACE_WIDTH_PROP_IDX): Removed.
9220
9221 * xdisp.c (Qdisplay): Replaces Qglyph.
9222 (handle_display_prop): Formerly handle_glyph_prop.
9223
92241999-01-11 Gerd Moellmann <gerd@gnu.org>
9225
9226 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9227 (handle_stop): Set position in display vector to -1. Don't
9228 check overlay strings when set up to deliver characters from a
9229 display vector.
9230 (set_iterator_to_next): At the end of a run of characters from a
9231 display vector, check whether the display vector display replaces
9232 the display of a character.
9233
92341999-01-05 Gerd Moellmann <gerd@gnu.org>
9235
9236 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9237 X window hasn't been created yet.
9238
92391998-12-06 Gerd Moellmann <gerd@gnu.org>
9240
9241 * sound.c: New.
9242
92431998-12-04 Gerd Moellmann <gerd@gnu.org>
9244
9245 * config.in (HAVE_SOUND): New.
9246
9247 * emacs.c (main): Call syms_of_sound and init_sound.
9248
9249 * Makefile.in (obj): Add sound.o.
9250
9251 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9252
9253 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9254 (HAVE_SYS_SOUNDCARD_H): New.
9255
92561998-12-03 Gerd Moellmann <gerd@gnu.org>
9257
9258 * buffer.h (struct buffer): indicate_empty_lines renamed from
9259 indicate_zv_lines.
9260
9261 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9262 (default-indicate-zv-lines): Likewise.
9263
9264 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9265 to indicate_empty_line_p.
9266
9267 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9268 to next_element_from_buffer.
9269
9270 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9271
9272 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9273 and `N-'.
9274
9275 * xfns.c (xbm_scan): New.
9276 (xbm_read_hexint): Removed.
9277 (xbm_read_bitmap_file_data): Use xbm_scan.
9278
9279 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9280
92811998-12-02 Gerd Moellmann <gerd@gnu.org>
9282
9283 * xfns.c (xbm_read_hexint): New.
9284 (xbm_read_bitmap_file_data): New.
9285 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9286 instead of XReadBitmapFileData.
9287
9288 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9289
9290 * xfaces.c (face_with_height): New.
9291
9292 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9293 (eval_form): Renamed from eval_mode_element.
9294 (handle_face_prop): Use it.
9295 (Qheight): Replaces Qsmaller.
9296 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9297 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9298 integer, evaluate it to get the font height to use.
9299
9300 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9301 (struct it): Use `font_height' instead of `smaller'.
9302
93031998-12-01 Gerd Moellmann <gerd@gnu.org>
9304
9305 * xdisp.c (reseat_1): New.
9306 (reseat): Call it.
9307 (move_it_vertically_backward): Ditto.
9308 (redisplay_window): Don't abort when cursor not found in recenter.
9309
93101998-11-30 Gerd Moellmann <gerd@gnu.org>
9311
9312 * xdisp.c (reseat_at_next_visible_line_start): When not
9313 currently delivering display elements from the current buffer,
9314 restore buffer position first.
9315 (init_from_display_pos): Don't set IT's position from the
9316 position passed to this function.
9317
93181998-11-28 Gerd Moellmann <gerd@gnu.org>
9319
9320 * config.in (PROTO): Removed.
9321
9322 * xterm.h: Change PROTO to P_.
9323
93241998-11-26 Gerd Moellmann <gerd@gnu.org>
9325
9326 * xterm.c (take_vertical_position_into_account): New.
9327 (x_produce_image_glyph): Call it.
9328 (x_produce_stretch_glyph): Ditto.
9329 (x_produce_glyphs): Ditto.
9330 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9331 (x_fill_composite_glyph_string): Ditto.
9332 (x_fill_image_glyph_string): Ditto.
9333 (x_fill_stretch_glyph_string): Ditto.
9334
9335 * xdisp.c (display_line): Always compute row height from
9336 max_ascent and max_descent.
9337
9338 * dispextern.h (struct glyph): Add voffset.
9339 (struct it): Replace height by descent, max_height by max_descent.
9340
9341 * xterm.c (x_append_glyph): Set voffset
9342 (x_append_stretch_glyph): Ditto.
9343 (x_produce_image_glyph): Ditto.
9344 (x_produce_glyphs): Take voffset into account.
9345 (x_produce_image_glyph): Ditto.
9346 (x_produce_stretch_glyph): Ditto.
9347
9348 * dispextern.h (struct it): Add voffset.
9349 * xdisp.c (push_it): Save voffset.
9350 (pop_it): Restore it.
9351
9352 * xdisp.c (it_props): Add entry for `raise'.
9353 (handle_raise_prop): New.
9354
9355 * dispextern.h (RAISE_PROP_IDX): New.
9356
9357 * xdisp.c (Qraise): New.
9358 (syms_of_xdisp): Define Qraised.
9359
9360 * xterm.c (x_scroll_bar_move): Clear to the left and right
9361 of toolkit scroll bars differently.
9362 (x_scroll_bar_move): Removed.
9363 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9364
9365 * dispextern.h: Make it compilable --with-x=no.
9366 * alloc.c: Ditto.
9367 * emacs.c: Ditto.
9368 * dispnew.c: Ditto.
9369 * keyboard.c: Ditto.
9370 * term.c: Ditto.
9371 * xdisp.c: Ditto.
9372 * xfaces.c: Ditto.
9373 * xfns.c: Ditto.
9374 * xmenu.c: Ditto.
9375
93761998-11-25 Gerd Moellmann <gerd@gnu.org>
9377
9378 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9379
93801998-11-24 Gerd Moellmann <gerd@gnu.org>
9381
9382 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9383 update slider size, only.
9384 (xm_scroll_callback): Set dragging member of the scroll bar.
9385 (xt_action_hook): Reset last_scroll_bar_part.
9386 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9387
26901792
DL
9388 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9389 window on newly created frames that don't have one.
9390
93911998-11-23 Gerd Moellmann <gerd@gnu.org>
9392
9393 * xdisp.c (restore_overlay_strings): Removed.
9394 (restore_dpvec): Removed.
9395 (init_from_display_pos): Inline both functions above.
9396
9397 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9398 (parse_image_spec): Handle it.
9399 (xbm_format): Use it.
9400 (xpm_format): Ditto.
9401 (pbm_format): Ditto.
9402 (jpeg_format): Ditto.
9403 (tiff_format): Ditto.
9404 (gif_format): Ditto.
9405 (gs_format): Ditto.
9406
9407 * xdisp.c (set_window_cursor): Removed.
9408 (redisplay_internal): Case cursor motion in cursor line of
9409 selected window; use set_cursor_from_row.
9410
94111998-11-22 Gerd Moellmann <gerd@gnu.org>
9412
9413 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9414 into account.
9415
94161998-11-21 Gerd Moellmann <gerd@gnu.org>
9417
9418 * xterm.c (expose_frame): Redraw menu bar window.
9419
9420 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9421 in menu item.
9422
9423 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9424 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9425
9426 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9427 to determine vertical_scroll_bar_extra.
9428 (EmacsFrameSetCharSize): Ditto.
9429 * xfns.c (x_figure_window_size): Ditto.
9430
9431 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9432 (x_draw_bitmap): Ditto.
9433
9434 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9435 * xfaces.c (realize_basic_faces): Realize it.
9436
94371998-11-20 Gerd Moellmann <gerd@gnu.org>
9438
9439 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9440 under LessTif Use the widget of the frame as parent for the
26901792
DL
9441 menu, again.
9442
94431998-11-19 Gerd Moellmann <gerd@gnu.org>
9444
9445 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9446 When EnterNotify, don't generate a mouse movement event if
9447 notification is from a busy-cursor child window.
9448
9449 * xterm.h (struct x_output): Add busy_window, remove cursor.
9450
9451 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9452 Use a transparent window to display the busy-cursor.
9453 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9454
94551998-11-17 Gerd Moellmann <gerd@gnu.org>
9456
9457 * xdisp.c (check_window_end): New, for debugging.
9458 (CHECK_WINDOW_END): New.
9459 (try_window_id): Use it.
9460
9461 * xterm.c (process_expose_from_menu): Return int.
9462
9463 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9464 TOOLBAR_EVENT events in last_nonmenu_event.
9465
94661998-11-16 Gerd Moellmann <gerd@gnu.org>
9467
9468 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9469 window end isn't reliable, so set window_end_valid to nil.
9470 (redisplay_internal): If overlay arrow has changed, set
9471 windows_or_buffers_changed to redisplay thoroughly.
9472
9473 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9474 necessary.
9475
9476 * xfns.c (file_dialog_cb): New.
9477 (Fx_file_dialog): New.
9478 * fileio.c (Fread_file_name): Call it.
9479
427ec082 9480 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9481 selection dialog.
9482
94831998-11-14 Gerd Moellmann <gerd@gnu.org>
9484
9485 * xterm.c (note_mouse_highlight): Don't highlight when popup
9486 is active.
9487
26901792
DL
9488 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9489 timer-event-handler. This busy cursor tends to be anoying if
9490 fontifying stealthily.
9491
9492 * dispnew.c (direct_output_for_insert): Give up if current row
9493 contains trailing whitespace.
9494
94951998-11-13 Gerd Moellmann <gerd@gnu.org>
9496
9497 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9498
9499 * xdisp.c (handle_fontified_prop): New.
9500 (Vfontification_functions): New.
9501 (Qfontification_functions): New.
9502 (it_props): Add handle_fontified_prop.
9503
95041998-11-12 Gerd Moellmann <gerd@gnu.org>
9505
9506 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9507 Otherwise, under LessTif, after the popup has gone, all button
9508 press events come in for the frame's widget, and release events
9509 come in for the edit_widget.
9510 * xterm.c (XTread_socket): Remove workaround for that problem.
9511 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9512 XmScrollBarSetValues.
9513 (SET_SAVED_MENU_EVENT): Give it statement form.
9514
26901792
DL
9515 * xfaces.c (display_message): If waiting_for_input, don't display
9516 the message.
9517
9518 * window.c (scroll_command): If not acting on current_buffer,
9519 make redisplay consider all windows.
9520
9521 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9522
9523 * xdisp.c (handle_glyph_prop): Set it->object for images to
9524 the object having the glyph property.
9525
9526 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9527 invisible.
9528
95291998-11-11 Gerd Moellmann <gerd@gnu.org>
9530
9531 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9532 (x_term_init): Create the gray pixmap.
9533 (x_setup_relief_color): Use it.
9534 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9535 internal border at the top of a frame.
9536 (x_init_glyph_string): Likewise.
427ec082 9537 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9538 full-width lines.
9539 (XTflash): Don't flash the toolbar window.
9540
9541 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9542 in case of ButtonPress events.
9543
95441998-11-10 Gerd Moellmann <gerd@gnu.org>
9545
9546 * xrdb.c (x_load_resources): Add grey background colors as
9547 defaults for menus, scroll bars, and dialogs.
9548
9549 * insdel.c (prepare_to_modify_buffer): Move setting
9550 windows_or_buffers_changed from modify_region here.
9551
9552 * xfns.c (Fx_show_tip): Inhibit redisplay.
9553 (Fx_hide_tip): Ditto.
9554 (Fx_image_header): New.
9555
95561998-11-09 Gerd Moellmann <gerd@gnu.org>
9557
9558 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9559 when clearing current window matrices.
9560
95611998-11-08 Gerd Moellmann <gerd@gnu.org>
9562
9563 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9564 position from a string position. Use the right end position
9565 if the property spans a whole overlay string.
9566
95671998-11-07 Gerd Moellmann <gerd@gnu.org>
9568
9569 * xmenu.c (menubar_selection_callback): Remove workaround for
9570 Lesstif not calling XmNpopdownCallback because it doesn't
9571 handle the case where users don't select any menu item.
9572
26901792
DL
9573 * insdel.c (modify_region): Set windows_or_buffers_changed.
9574
9575 * buffer.c (set_buffer_internal): Don't set
9576 windows_or_buffers_changed.
9577
26901792
DL
9578 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9579
26901792
DL
9580 * xmenu.c (menubar_selection_callback): Add workaround for
9581 Lesstif not calling XmNpopdownCallback.
9582
9583 * xdisp.c (eval_mode_element): New.
9584 (eval_mode_handler): New.
9585 (display_mode_element): Use eval_mode_element.
9586
9587 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9588 Remove code looking at text props of default value.
9589
9590 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9591
26901792
DL
95921998-11-06 Gerd Moellmann <gerd@gnu.org>
9593
427ec082 9594 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9595 BUTTON_TYPE_NONE.
9596 (single_submenu): Likewise for panes and menu items.
9597 (set_frame_menubar): Set button_type of menu bar to none.
9598 (xmenu_show): Likewise.
9599 (single_submenu): Set widget values selected slot.
9600 (xmenu_show): Likewise.
9601
26901792
DL
9602 * xmenu.c (push_menu_item): Add parameters `type' and
9603 `selected'. Store it in menu_items.
9604 (MENU_ITEMS_ITEM_TYPE): New.
9605 (MENU_ITEMS_ITEM_SELECTED): New.
9606 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9607
9608 * xfns.c (clear_image_cache): Get the current time, before
9609 doing anything.
9610 (cache_image): Set prev pointer of next image.
9611 (clear_image_cache): Clear current matrices if any image was
9612 freed.
9613
9614 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9615
9616 * xfns.c (x_set_cursor): New.
9617 (Fx_display_busy_cursor): New.
9618 (Fx_undisplay_busy_cursor): New.
9619
9620 * xterm.h (struct x_output): Add busy_cursor.
9621
9622 * xfns.c (Vx_busy_pointer_shape): New.
9623 (x_set_mouse_color): Create busy cursor.
9624
9625 * process.c (wait_reading_process_input): Show and hide busy
9626 cursor.
9627
9628 * keyboard.c (command_loop_1): Display busy cursor.
9629
9630 * eval.c (Fsignal): Hide busy cursor.
9631
9632 * buffer.c (set_buffer_internal): Don't set
9633 windows_or_buffers_changed.
9634
9635 * xterm.c (redo_mouse_highlight): New.
9636
96371998-11-04 Gerd Moellmann <gerd@gnu.org>
9638
26901792
DL
9639 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9640 (x_build_heuritic_mask): New.
9641 (lookup_image): Call it.
9642
9643 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9644 (previous_help_echo): New.
9645 (XTread_socket): Generate help event with nil message when
9646 leaving a region with help-echo.
9647 (note_mouse_highlight): Handle `help-echo' over text.
9648 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9649 CirculateRequest.
9650 (clear_mouse_face): Don't clear if tooltip is shown.
9651 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9652 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9653
9654 * keyboard.c (Vshow_help_function): New.
9655 (read_char): Use it.
9656
96571998-11-03 Gerd Moellmann <gerd@gnu.org>
9658
9659 * xfns.c (x_create_tip_frame): New.
9660 (Fx_show_tip): New.
9661 (Fx_hide_tip): New.
9662
427ec082 9663 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
9664 a widget.
9665
9666 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9667 to full_width_p. Add internal_border_p.
9668
96691998-11-02 Gerd Moellmann <gerd@gnu.org>
9670
9671 * xterm.c (note_mode_line_highlight): Check the charpos of
9672 the glyph under the mouse pointer before accessing text
9673 properties at that position.
9674
96751998-11-01 Gerd Moellmann <gerd@gnu.org>
9676
9677 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9678
9679 * xdisp.c (auto-raise-toolbar-buttons): New.
9680 (build_desired_toolbar_string): Handle the flag.
9681 (toolbar-button-margin): New.
9682 (toolbar-button-relief): New.
9683 (build_desired_toolbar_string): Use margin and relief.
9684
9685 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9686 for FreeBSD.
9687 (note_mode_line_highlight): New.
9688 (note_mouse_highlight): Call it.
9689
96901998-10-31 Gerd Moellmann <gerd@gnu.org>
9691
9692 * s/freebsd.h (NARROWPROTO): New.
9693
9694 * xdisp.c (display_string): New parameter face_string.
9695 (display_mode_element): When displaying a symbol with a string
9696 value, use text properties from the symbol's default value, maybe.
9697
9698 * xrdb.c (x_load_resources): Add font defaults for menus and
9699 dialogs.
9700
97011998-10-30 Gerd Moellmann <gerd@gnu.org>
9702
9703 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9704
97051998-10-29 Gerd Moellmann <gerd@gnu.org>
9706
9707 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9708 produced for characters with codes < 32 under certain
9709 circumstances.
9710
9711 * xdisp.c (redisplay_window): Handle values of PT in front
9712 of invisible, intangible text.
427ec082 9713 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
9714 displaying lines.
9715 (display_mode_element): Assign to glyphs written for a mode
9716 line spec `%x' as object the Lisp format string, as position
9717 the position of the `%' in that string.
9718 (display_string): If displaying a C string, optionally get
9719 the face to use from a Lisp string.
9720
9721 * xterm.c (expose_window_tree): Include mode line height.
9722
9723 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9724
97251998-10-27 Gerd Moellmann <gerd@gnu.org>
9726
9727 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9728 over mode line.
9729
97301998-10-26 Gerd Moellmann <gerd@gnu.org>
9731
9732 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9733
9734 * xdisp.c (redisplay_window): If mode line height has changed,
9735 arrange for a thorough immediate redisplay using the correct mode
9736 line height.
9737 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9738
9739 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9740 (CURRENT_MODE_LINE_HEIGHT): New.
9741 (DESIRED_MODE_LINE_HEIGHT): New.
9742
9743 * keyboard.c (make_lispy_event): Add string and string position
9744 info to mouse-click events.
9745 (read_key_sequence): Handle `local-map' property of mode line
9746 strings.
9747
9748 * keyboard.h (POSN_STRING): New.
9749
97501998-10-25 Gerd Moellmann <gerd@gnu.org>
9751
9752 * dispnew.c (mode_line_string): Mew.
9753
9754 * xterm.c (xt_action_hook): New.
9755 (x_create_toolkit_scroll_bar): Add action hook.
9756 (xm_scroll_callback): Implement dragging.
9757
9758 * keyboard.c (Qend_scroll): New.
9759 (scroll_bar_parts): Add it.
9760
9761 * termhooks.h (scroll_bar_end_scroll): New.
9762
9763 * xterm.c (XTread_socket): Bug fix.
9764
97651998-10-24 Gerd Moellmann <gerd@gnu.org>
9766
9767 * xdisp.c (redisplay_window): Finish scroll bars after
9768 redisplaying toolbar.
9769
9770 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
9771 (syms_of_keyboard): Add Qbottom.
9772
9773 * termhooks.h (scroll_bar_to_top): New.
9774 (scroll_bar_to_bottom): New.
9775
9776 * xdisp.c (redisplay_window): Always resize toolbar window if
9777 auto_resize_toolbar_p is non-zero.
9778 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
9779 (window_box): New.
9780 (window_box_height): New.
9781 (window_box_width): New.
9782 (window_box_left): New.
9783 (window_box_right): New.
9784 (window_box_edges): New.
9785
97861998-10-23 Gerd Moellmann <gerd@gnu.org>
9787
9788 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
9789 XawScrollbarSetThumb in FreeBSD.
9790 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
9791 to true.
9792
9793 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
9794 is out of range.
9795
9796 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
9797 (x_term_init): Initialize it.
9798
9799 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
9800
9801 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
9802 cursor.
9803
98041998-10-22 Gerd Moellmann <gerd@gnu.org>
9805
9806 * keyboard.c (make_lispy_event): Handle scroll_bar_click
9807 differently when using toolkit scroll bars.
9808
9809 * xterm.c (x_send_scroll_bar_event): New.
9810 (x_scroll_bar_to_input_event): New.
9811 (xaw3d_scroll_callback): New.
9812 (xaw3d_jump_callback): New.
9813 (xm_scroll_callback): New.
9814 (x_toolkit_scroll_p): New.
9815 (XTread_socket): Handle scroll bar client message.
9816 (x_term_init): Initialize Xatom_Scrollbar.
9817 (x_scroll_bar_create): Set cursor.
9818 (xm_scroll_callback):
9819 (x_create_toolkit_scroll_bar): New.
9820 (x_set_toolkit_scroll_bar_thumb): New.
9821 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
9822 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
9823
9824 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
9825
98261998-10-21 Gerd Moellmann <gerd@gnu.org>
9827
9828 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
9829 (XTread_socket): Don't handle mouse button events for scroll bars
9830 if using toolkit scroll bars.
9831 (XTset_vertical_scroll_bar): Set thumb size and position for
9832 Athena scroll bar.
9833
9834 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
9835
9836 * xterm.c (XTread_socket): Dispatch expose event to widget
9837 if using toolkit scroll bars.
9838 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 9839 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
9840 if using toolkit scroll bars.
9841 (x_scroll_bar_move): Handle tookit scroll bars.
9842
9843 * Makefile.in (LIBW): Use Xaw3d if present.
9844
9845 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
9846 (HAVE_XAW3D): New.
427ec082 9847
26901792
DL
9848 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
9849 (HAVE_XAW3D): New.
9850
427ec082 9851 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
9852 right vertical scroll bar.
9853
98541998-10-20 Gerd Moellmann <gerd@gnu.org>
9855
9856 * xfns.c (xpm_load): Support reading XPM images from string
9857 buffers containing data in the same format as an XPM file.
9858 Support `:color-symbols'.
9859 (xpm_format): Add `:data'.
9860 (xpm_keyword_index): Add XPM_DATA.
9861 (syms_of_xfns): Add `:color-symbols'.
9862 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
9863 (xpm_valid_color_symbols_p): New.
9864 (xpm_image_p): Call it.
9865
9866 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
9867 attribute to the image if item is not enabled.
9868
9869 * xfns.c (x_laplace): New.
9870 (x_laplace_read_row): New.
9871 (x_laplace_write_row): New.
9872 (lookup_image): Handle common image attributes here. New
9873 attribute `:algorithm'.
9874
9875 * xfaces.c (clear_face_cache): Call clear_image_cache.
9876
9877 * xterm.c (x_inverted_image_mask): Removed.
9878 (x_draw_image_foreground_1): New.
9879 (x_draw_image_glyph_string): Draw images with mask to a temporary
9880 pixmap to reduce flickering.
9881
9882 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
9883 (display_toolbar_line): Remove parameter `margin'.
9884
98851998-10-19 Gerd Moellmann <gerd@gnu.org>
9886
9887 * xdisp.c (toolbar_lines_needed): New.
9888 (auto-resize-toolbars): New.
9889
9890 * xfns.c (cache_image): Correct call to xrealloc.
9891
9892 * dispnew.c (Fset_toolbar_height): Removed.
9893
9894 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
9895 FRAME_MENU_BAR_LINES.
9896
9897 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
9898 instead of FRAME_MENU_BAR_LINES.
9899 (check_frame_size): Ditto.
9900
9901 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
9902 instead of FRAME_MENU_BAR_LINES.
9903 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
9904 (build_frame_matrix): Ditto.
9905 (change_frame_size_1): Ditto.
9906
9907 * frame.h (FRAME_TOOLBAR_LINES): New.
9908 (FRAME_TOP_MARGIN): New.
9909
9910 * window.c (struct save_window_data): Add frame_toolbar_lines.
9911 (Fset_window_configuration): Handle toolbar lines.
9912 (Fcurrent_window_configuration): Save toolbar lines.
9913
9914 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
9915
9916 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
9917
9918 * frame.h (struct frame): Rename top_margin to toolbar_lines.
9919
9920 * xfns.c (x_frame_parms): Add `toolbar-lines'.
9921 (x_set_toolbar_lines): New.
9922
9923 * keyboard.c (cmd_error_internal): Bug fix.
9924
9925 * xterm.c: Remove double include of syssignal.h.
9926
99271998-10-18 Gerd Moellmann <gerd@gnu.org>
9928
9929 * xterm.c (x_toolbar_item): New.
9930 (x_handle_toolbar_click): Use it.
9931 (note_toolbar_highlight): Use it.
9932
9933 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
9934 and toolbar_items_vectors.
9935
9936 * xterm.c (help_echo): New.
9937 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
9938 (x_set_glyph_string_gc): Handle them.
9939 (x_after_update_window_line): Don't do anything in pseudo-windows.
9940 (x_produce_image_glyph): Take image margin and face relief into
9941 account.
9942 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
9943 (x_draw_glyph_string_background): Optimize case when face has
9944 relief.
9945 (x_setup_relief_color): Take frame instead of glyph string
9946 parameter.
9947 (x_draw_relief_rect): New.
9948 (x_draw_glyph_string_relief): Call it.
9949 (x_draw_image_glyph_string_foreground): Handle margin and image
9950 relief.
9951 (x_draw_image_glyph_string_background): Ditto.
9952 (expose_frame): Redraw toolbar window.
9953 (expose_window): Don't draw cursor for pseudo-windows.
9954 (x_y_to_hpos_vpos): Handle pseudo-windows.
9955 (frame_to_window_pixel_xy): New.
9956 (note_mouse_highlight): Call note_toolbar_highlight.
9957 (x_handle_toolbar_click): New.
9958 (note_toolbar_highlight): New.
9959 (show_mouse_face): Change int parameter `hl' to parameter of
9960 type enum draw_glyphs_face. Handle image highlighting.
9961 (XTread_socket): Return a HELP_EVENT input event if help_echo is
9962 non-nil. Use x_handle_toolbar_click.
9963
9964 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
9965
9966 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
9967 IMAGE_BOOL_VALUE.
9968 (parse_image_spec): Handle them.
9969 (image_spec_value): Additional parameter found.
427ec082 9970 (free_image): Remove image from the vector `images' of the
26901792
DL
9971 image cache.
9972 (clear_image_cache): Additional parameter force_p.
9973 (Fclear_image_cache): New.
9974 (x_find_image_file): New.
9975 (xbm_load): Handle `:margin' and `:relief'. Use
9976 x_find_image_file.
9977 (xpm_load): Likewise.
9978 (pbm_load): Likewise.
9979 (jpeg_load): Likewise.
9980 (tiff_load): Likewise.
9981 (gif_load): Likewise.
9982
9983 * keyboard.c (Qhelp_echo): New symbol.
9984 (read_char): Handle `toolbar' and `help_echo' events.
9985 (kbd_buffer_get_event): Handle HELP_ECHO input event.
9986 (make_lispy_event): Handle TOOLBAR_EVENT.
9987 (toolbar_items): New.
9988 (process_toolbar_item): New.
9989 (PROP): New.
9990 (init_toolbar_items): New.
9991 (append_toolbar_item): New.
9992 (read_char_x_menu_prompt): Handle `toolbar' event.
9993 (read_key_sequence): Ditto.
9994
9995 * xfaces.c (Qtoolbar): New.
9996 (realize_basic_faces): Realize `toolbar' face.
9997 (face_at_string_position): Remove parameter modeline_p, add
9998 base_face_id.
9999
10000 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
10001 to read data.
10002
100031998-10-17 Gerd Moellmann <gerd@gnu.org>
10004
10005 * xdisp.c (init_iterator): Replace parameter modeline_p with
10006 base_face_id.
10007 (next_element_from_string): Call get_next_display_element
10008 recursively after handling text properties.
10009 (prepare_menu_bars): Call update_toolbar.
10010 (update_toolbar): New.
10011 (build_desired_toolbar_string): New.
10012 (display_toolbar_line): New.
10013 (redisplay_toolbar): New.
10014 (toolbar_item_info): New.
10015 (redisplay_window): Call redisplay_toolbar.
10016 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
10017
10018 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
10019 window.
10020 (clear_desired_matrices): Ditto.
10021 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
10022 (free_glyphs): Free matrices of toolbar window.
10023 (update_frame): Update toolbar window.
10024 (change_frame_size_1): Take toolbar into account.
10025 (Fset_toolbar_height): New.
10026
10027 * dispextern.h (struct it): Remove member modeline_p, add
10028 base_face_id.
10029 (struct image): Add members relief and margin.
10030 (IMAGE_ASCENT): Include margin in height.
10031
100321998-10-14 Gerd Moellmann <gerd@gnu.org>
10033
10034 * xfns.c (Fclear_image_cache): New.
10035
10036 * xfaces.c (realize_basic_faces): Realize toolbar face.
10037 (face_at_string_position): Remove parameter modeline_p, add
10038 base_face_id.
10039
10040 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10041
100421998-10-13 Gerd Moellmann <gerd@gnu.org>
10043
10044 * keyboard.c (syms_of_keyboard): Intern `:help'.
10045
100461998-10-12 Gerd Moellmann <gerd@gnu.org>
10047
10048 * xterm.c (note_toolbar_highlight): New.
10049 (note_mouse_highlight): Call it.
10050
10051 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10052 (coordinates_in_window): Handle toolbar window.
10053
10054 * keyboard.c (toolbar_items): New.
10055 (process_toolbar_item): New.
10056 (parse_toolbar_item): New.
10057 (init_toolbar_items): New.
10058 (append_toolbar_item): New.
10059
10060 * dispextern.h (enum toolbar_item_idx): New.
10061 (enum toolbar_item_image): New.
10062
10063 * frame.h (struct frame): Add toolbar-related members.
10064
10065 * xfaces.c (face_at_string_position): Remove assertion that
10066 current_buffer == window's buffer. This is not the case when
10067 called for the toolbar window.
10068
10069 * frame.c (make_frame): Initialize toolbar members.
10070
10071 * alloc.c (mark_object): Mark toolbar data of frames.
10072
10073 * frame.h (struct frame): Add toolbar-related members
10074 toolbar_window, desired_toolbar_items, current_toolbar_items,
10075 desired_toolbar_string, current_toolbar_string,
10076 n_desired_toolbar_items, n_current_toolbar_items. Add
10077 window_height.
10078
10079 * xterm.c (x_after_update_window_line): Don't draw bitmap
10080 areas for pseudo-windows.
10081 (expose_frame): Handle toolbar window.
10082 (expose_window): Don't do cursor stuff for pseudo-windows.
10083
10084 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10085
100861998-10-11 Gerd Moellmann <gerd@gnu.org>
10087
10088 * frame.c (make_frame): Initialize toolbar_window.
10089
10090 * alloc.c (mark_object): Make the toolbar window.
10091
10092 * dispnew.c (update_frame): Update frame's toolbar_window.
10093 (clear_current_matrices): Likewise.
10094 (clear_desired_matrices): Likewise.
10095 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10096 (free_glyphs): Free the toolbar window and its matrices.
10097
10098 * frame.h (struct frame): Add toolbar_window.
10099
10100 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10101 with relief.
10102
101031998-10-10 Gerd Moellmann <gerd@gnu.org>
10104
427ec082 10105 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10106 window start is not in the range BEGV..ZV.
10107
101081998-10-09 Gerd Moellmann <gerd@gnu.org>
10109
10110 * xdisp.c (try_scrolling): Experimentally handle the case
10111 that scroll-preserve-screen-position is set to `always'.
10112
10113 * window.c (Vscroll_preserve_screen_position): Replacement for
10114 scroll_preserve_screen_position.
10115
101161998-10-08 Gerd Moellmann <gerd@gnu.org>
10117
10118 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10119 doesn't like it.
10120 * xdisp.c: Ditto.
10121
10122 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10123
101241998-10-06 Gerd Moellmann <gerd@gnu.org>
10125
427ec082 10126 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10127 i_byte when prompts are inserted into minibuffers.
10128
10129 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10130 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10131 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10132
101331998-10-04 Gerd Moellmann <gerd@gnu.org>
10134
10135 * xdisp.c (make_cursor_line_fully_visible): New.
10136 (try_scrolling): New.
10137 (redisplay_window): Move scrolling code to try_scrolling.
10138 (make_cursor_line_fully_visible): Handle case of window too small
10139 to show a single line.
10140 (redisplay_window): Case forced window start---use
10141 make_cursor_line_fully_visible.
10142 (redisplay_window): Case cursor movement via current matrix.
10143 If ending up on a partially visible line, make it fully visible
10144 instead of recentering.
10145 (try_scrolling): Additional parameter scroll_smoothly.
10146
10147 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10148
101491998-09-28 Gerd Moellmann <gerd@gnu.org>
10150
10151 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10152 instead of y-position for scroll-preserved-screen-position.
10153
101541998-09-07 Gerd Moellmann <gerd@gnu.org>
10155
10156 * dispnew.c (update_frame_line): If current row is not enabled,
10157 write the whole line.
10158
101591998-09-06 Gerd Moellmann <gerd@gnu.org>
10160
10161 * lisp.h (HAVE_FACES): Removed.
10162
10163 * dispextern.h (HAVE_FACES): Removed.
10164
10165 * config.in (HAVE_FACES): Removed.
10166
10167 * dispnew.c (HAVE_FACES): Removed.
10168
10169 * xdisp.c (HAVE_FACES): Removed.
10170
10171 * xfaces.c (HAVE_FACES): Removed.
10172
101731998-09-05 Gerd Moellmann <gerd@gnu.org>
10174
10175 * xdisp.c (init_iterator): If face_change_count is non-zero,
10176 free realized faces.
10177
10178 * xfaces.c (free_all_realized_faces): Make it externally visible.
10179 (Finternal_set_lisp_face_attribute): Increment
10180 windows_or_buffers_changed.
10181
10182 * dispnew.c (direct_output_for_insert): Give up if
10183 face_change_count is non-zero.
10184 (direct_output_forward_char): Ditto.
10185
10186 * xfaces.c (face_change_count): New.
10187
101881998-09-04 Gerd Moellmann <gerd@gnu.org>
10189
10190 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10191 of range.
10192
101931998-09-03 Gerd Moellmann <gerd@gnu.org>
10194
10195 * term.c (Ftty_display_color_p): New.
10196
101971998-09-02 Gerd Moellmann <gerd@gnu.org>
10198
10199 * xfaces.c (Ftty_defined_colors): New.
10200
10201 * xterm.c (x_produce_glyphs): Fix computation of
10202 contains_overlapping_glyphs_p for ASCII.
10203
10204 * dispnew.c (Fshow_cursor): Don't change cursor state while
10205 redisplaying.
10206 (direct_output_for_insert): If a glyph with lbearing or rbearing
10207 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10208
102091998-09-01 Gerd Moellmann <gerd@gnu.org>
10210
10211 * term.c (OUTPUT_IF): Make replacement text have statement form.
10212 (OUTPUT1_IF): Ditto.
10213 (TS_italic_mode, TS_end_italic_mode): Removed.
10214 (TS_bold_mode): Removed.
10215 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10216 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10217 (TS_enter_reverse_mode): New.
10218 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10219 (TN_magic_cookie_glitch_ul): New.
10220 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10221 (TS_exit_attribute_mode): New.
10222 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10223 (TS_set_foreground, TS_set_background): New.
10224 (reset_terminal_modes): Switch colors back to default.
10225 (write_glyphs): Turn face on before writing text, turn it off
10226 afterwards.
10227 (insert_glyphs): Ditto.
10228 (term_init): Initialize new terminal capability variables.
10229 (turn_on_face): Turn a face on.
10230 (turn_off_face): Turn a face off.
10231
10232 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10233 (GLYPH_CHAR): Ditto.
10234 (GLYPH_FACE): Ditto.
10235
10236 * xfaces.c (Vface_tty_color_alist): New.
10237 (face-register-tty-color): New.
10238 (face-clear-tty-colors): New.
10239
10240 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10241 (struct it): Remove member faces_p since we now always have faces.
10242
102431998-08-31 Gerd Moellmann <gerd@gnu.org>
10244
10245 * dispextern.h (struct face): Add tty appearance flags.
10246
10247 * xdisp.c (init_iterator): Always handle faces.
10248 (extend_face_to_end_of_line): Handle tty frames.
10249
10250 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10251 passed in.
10252
102531998-08-30 Gerd Moellmann <gerd@gnu.org>
10254
10255 * xfaces.c (realize_default_face): Use empty strings to indicate
10256 that the face should use the default foreground/background
427ec082 10257 color of the terminal. Fill font-related attributes with
26901792
DL
10258 appropriate values for tty frames.
10259
10260 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10261
10262 * xfaces.c (realize_default_face): If face `default' is not
10263 yet known, create it.
10264
10265 * frame.c (make_terminal_frame): Call init_frame_faces
10266 unconditionally.
10267
10268 * xfaces.c (init_frame_faces): Make it work for tty frames.
10269 (free_frame_faces): Ditto.
10270 (clear_face_cache): Ditto.
10271 (recompute_basic_faces): Ditto.
10272 (Fframe_face_alist): Ditto.
10273 (free_realized_face): Ditto.
10274 (prepare_face_for_display): Ditto.
10275 (clear_face_gcs): Ditto.
10276 (lookup_face): Ditto.
10277 (smaller_face): Ditto.
10278 (realize_default_face): Ditto.
10279 (realize_face): Ditto.
10280 (realize_face): Dispatch to functions depending on the frame type.
10281 (realize_x_face): X way of realizing faces.
10282 (realize_tty_face): TTY way of realizing faces.
10283
102841998-08-29 Gerd Moellmann <gerd@gnu.org>
10285
10286 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10287 compute it instead.
10288 (lookup_face): Remove local variable unibyte_registry.
10289
102901998-08-22 Gerd Moellmann <gerd@gnu.org>
10291
10292 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10293 1 pixel longer.
10294
427ec082 10295 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10296 of face in buffer.
10297
10298 * editfns.c (make_buffer_string_both): If prompt in buffer,
10299 prevent start > end.
10300
10301 * indent.c (Fvertical_motion): Set current_buffer to window's
10302 buffer if it isn't already.
10303
103041998-08-21 Gerd Moellmann <gerd@gnu.org>
10305
10306 * dispextern.h (GLYPH_DEBUG): Use default 0.
10307
10308 * xdisp.c (it_props): New member `smaller'.
10309 (init_iterator): Initialize it.
10310 (Qsmaller): New.
10311 (push_it): Save value of `smaller' value on the stack.
10312 (pop_it): Restore `smaller' from the stack.
10313 (handle_smaller_prop): New.
10314 (handle_face_prop): Use `smaller' text property to select a
10315 suitable face.
10316
10317 * dispextern.h (SMALLER_PROP_IDX): New.
10318 (struct it): Add member `smaller'.
10319
10320 * xfaces.c (smaller_face): New.
10321
10322 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10323
10324 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10325 total pixel width of window differently.
10326
10327 * xdisp.c (init_iterator): Compute width of mode line differently.
10328
10329 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10330 of bitmap areas.
10331
10332 * window.c (Fsplit_window): Include width of bitmap areas in
10333 window width.
10334 (window_internal_width): Subtract width of bitmap areas from
10335 total width.
10336
103371998-08-18 Gerd Moellmann <gerd@gnu.org>
10338
10339 * xdisp.c: Functions reordered for better readability.
10340
10341 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10342 lbearing.
10343 (update_window_tree): Parameter no_scrolling_p removed.
10344 (update_single_window): Ditto.
10345
10346 * xterm.c (x_get_char_font_and_encoding): Renamed to
10347 x_get_char_face_and_encoding.
10348
10349 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10350 if end of current row reached.
10351
10352 * xterm.c (x_get_glyph_face_and_encoding): New.
10353 (x_get_glyph_overhangs): Call it.
10354
10355 * xdisp.c (Qshow_trailing_whitespace): New.
10356 (Qtrailing_whitespace): New.
10357 (enum prop_handled): New.
10358 (struct props, it_props): New.
10359 (next_overlay_change): New. Works like Fnext_overlay_change
10360 but doesn't use xmalloc.
10361 (handle_stop): Restructured.
10362 (face_before_or_after_it_pos): Case iteration over a string: fix
10363 handling of face before current position.
10364
103651998-08-16 Gerd Moellmann <gerd@gnu.org>
10366
10367 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10368 reallocation matrix if fonts_changed_p.
10369 (update_text_area): Handle glyphs with lbearing.
10370
103711998-08-14 Gerd Moellmann <gerd@gnu.org>
10372
10373 * xdisp.c (struct props): New.
10374 (it_props): New.
10375 (compute_prop_info): New.
10376 (handle_stop): New.
10377
10378 * textprop.c (validate_interval_range): Make it externally
10379 visible.
10380
10381 * dispnew.c (direct_output_for_insert): Remove calls
10382 to compute_stop_pos.
10383
10384 * dispextern.h (struct it): Remove check_charpos,
10385 next_overlay_pos. Add what_changes.
10386
103871998-08-10 Gerd Moellmann <gerd@gnu.org>
10388
10389 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10390
10391 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10392 face_default_registry instead.
10393
10394 * syntax.c (scan_sexps_forward): Set up syntax table before
10395 jumping to initial state label.
10396
103971998-08-09 Gerd Moellmann <gerd@gnu.org>
10398
10399 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10400 >= ZV specially.
10401
104021998-08-08 Gerd Moellmann <gerd@gnu.org>
10403
10404 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10405 ends up in partially visible row, try to scroll. Case forced
10406 window start---handle windows not tall enough to show a single
10407 line.
10408
10409 * window.h (struct window): Member dy renamed vscroll.
10410
10411 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10412 fonts.
10413 (x_draw_stretch_glyph_string): Set clipping if using GC that
10414 hasn't set it yet.
10415
10416 * xdisp.c (redisplay_window): Case forced window start -
10417 don't let cursor end on partially visible row. Use desired
10418 matrix to find a suitable PT if it doesn't appear.
10419 (decode_mode_spec): Merged with 20.2.97.
10420 (try_window_reusing_current_matrix): Give up if old or
10421 new display is vscrolled.
10422 (redisplay_window): Reset vscrolling if forced window start,
10423 or if recentering.
10424
104251998-08-06 Gerd Moellmann <gerd@gnu.org>
10426
10427 * xfaces.c (realize_default_face): Use the fontset name instead of
10428 the alias for the family attribute of the default face because we
10429 can't easily determine a good alias from fontset-alias-alist.
10430 (face_fontset): Use Fquery_fontset to find the fontset.
10431 (font_list): Additional pattern parameter.
10432 (try_font_list): Ditto.
10433 (set_lface_from_font_name): Set face family from font foundry
10434 and family.
10435 (font_list): If family contains a hyphen, build pattern differently.
10436
104371998-08-05 Gerd Moellmann <gerd@gnu.org>
10438
10439 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10440 changed instead of setting the frame garbaged.
10441
10442 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10443 all attribute values. This is wrong if values are unspecified,
10444 i.e. nil.
10445
10446 * xdisp.c (try_window_id): Give up if window start changed.
10447
10448 * xfaces.c (make_realized_face): Store registry as Lisp object.
10449 (load_face_font_or_fontset): Compute registry of a face
10450 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10451 possible.
10452
10453 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10454 differently.
10455
10456 * alloc.c (mark_face_cache): Mark the registry member of faces.
10457
10458 * dispextern.h (struct face): Make registry a Lisp string.
10459
104601998-08-04 Gerd Moellmann <gerd@gnu.org>
10461
10462 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10463 multibyte_p. Handle unibyte text.
10464 (x_append_glyph): Set the multibyte_p flag of glyphs.
10465 (x_produce_image_glyph): Ditto.
10466 (x_append_stretch_glyph): Ditto.
10467 (x_produce_glyphs): Handle unibyte text like ASCII.
10468
10469 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10470 stack.
10471 (pop_it): Restore it.
10472 (face_before_or_after_it_pos): Handle the case that the string or
10473 buffer is unibyte.
10474 (get_overlay_strings): Set the multibyte flag of the iterator if
10475 the new overlay string is multibyte.
10476 (get_glyph_property): Likewise.
10477 (get_next_display_element): Don't check for charset changes in
10478 unibyte text.
10479 (append_space): Compute face differently for unibyte text.
10480 (extend_face_to_end_of_line): Don't return quickly if face has
10481 stipple.
10482
10483 * xfaces.c (load_face_font_or_fontset): Store registry and
10484 encoding of the font in the registry member of the face.
10485 (make_realized_face): Additional parameter `registry'.
10486 (free_realized_face): Free the registry of a realized face.
10487 (face_suitable_for_charset_p): Function form of the macro
10488 with the same name in uppercase.
10489 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10490 (choose_face_font): New parameter unibyte_registry.
10491 (choose_face_fontset_font): Ditto.
10492 (realize_default_face): Remember the registry and encoding of
10493 the specified frame font in Vx_unibyte_registry_and_encoding.
10494 (face_at_buffer_position): Handle unibyte.
10495 (face_at_string_position): Likewise.
427ec082 10496 (realize_face): New parameter unibyte_registry.
26901792
DL
10497 (compute_char_face): Handle the unibyte case.
10498
10499 * dispextern.h (struct glyph): Add bit multibyte_p.
10500 (struct face): New member registry holding the registry and
10501 encoding of the X font of the face.
10502 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10503 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10504 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10505 text.
10506 (struct iterator_stack_entry): Add multibyte_p.
10507
10508 * xdisp.c (string_pos): Use string_char_to_byte.
10509 (char_charset): Removed.
10510
105111998-08-03 Gerd Moellmann <gerd@gnu.org>
10512
10513 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10514 rectangle for a block cursor over an image without a mask.
10515 (x_stretch_block_cursor): Added. Non-zero means don't draw
10516 a block cursor over a stretch as wide as that stretch.
10517 (x_draw_stretch_glyph_string): Use it.
10518 (x_draw_hollow_cursor): Ditto.
10519
10520 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10521 (read_minibuf): Add front-sticky text property for prompt.
10522
10523 * xdisp.c (char_charset): Return charset of a character,
10524 depending on whether or not multi-byte characters are enabled.
10525
10526 * xfaces.c (Fset_face_charset_registry): Removed.
10527 (x_charset_registry): Determine registry from charset plist.
10528
105291998-08-02 Gerd Moellmann <gerd@gnu.org>
10530
10531 * xdisp.c (get_next_display_element): Don't check for charset
10532 changes if multi-byte characters are not enabled.
427ec082 10533
26901792 10534 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10535 redisplay interface.
26901792
DL
10536 * keyboard.c (detect_input_pending_run_timers): Likewise.
10537
10538 * dispextern.h (produce_*glyphs_hook): Removed.
10539 * term.c (produce_*glyphs): Ditto.
10540 (cursor_to): Remove pixel position parameters.
10541
10542 * dispnew.c: Remove hooks for window-based redisplay, introduce
10543 a redisplay interface structure.
10544
10545 * xterm.c (x_per_char_metric): Return default char metrics if per
10546 char metric exists but contains a zero width. Adobe Courier seems
10547 to contain such characters.
10548
10549 * xdisp.c (compute_line_metrics): Compute the width of rows
10550 without stopping at glyphs with zero width.
10551
105521998-08-01 Gerd Moellmann <gerd@gnu.org>
10553
10554 * xdisp.c (display_mode_line): If nothing was displayed at all,
10555 display a space.
10556 (hscroll_window_tree): Don't subtract 1 from target point if equal
10557 to ZV and window is not the selected window.
10558
10559 * dispnew.c (check_matrix_invariants): Remove check for window
10560 start at BEGV or after newline. This happens in rare cases
10561 intentionally.
10562
105631998-07-31 Gerd Moellmann <gerd@gnu.org>
10564
10565 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10566 (syms_of_xfaces): Add Vface_default_registry.
10567 (x_charset_registry): Use it.
10568
10569 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10570 (redisplay_window): Use it.
10571
10572 * dispnew.c (update_text_area): Handle lbearing of deleted text
10573 by backing up one character.
10574
105751998-07-30 Gerd Moellmann <gerd@gnu.org>
10576
427ec082 10577 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10578 decide to do nothing.
10579
10580 * xfaces.c (face_at_string_position): Additional parameter
10581 mode_line_p. If non-zero, merge with the mode line face
10582 instead of the default face.
10583 * dispextern.h (struct it): Add mode_line_p.
10584 * xdisp.c (init_iterator): Set it.
10585 (compute_face_in_string): Use it.
10586 (face_before_or_after_it_pos): Handle strings.
10587 (get_next_display_element): Don't look for relief end in C strings.
10588 (next_element_from_string): Deliver string position instead of
10589 buffer position.
10590
10591 * xterm.c (x_flush): Flush X output buffer.
10592 (XTflash): Use it.
10593
10594 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10595 Allow strings as face names.
10596
10597 * xfns.c (forall_images_in_image_cache): Check that frame is
10598 alive.
10599
10600 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10601 it's also called from x_destroy_window. Since this function is
10602 called from X, freeing stuff allocated with xmalloc is dangerous
10603 here, anyway.
10604
10605 * xfaces.c (free_realized_faces): Don't clear current matrices
10606 of a frame being destroyed.
10607
427ec082 10608 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10609 Fset_window_buffer.
10610
10611 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10612 with an additional argument specifying whether or not hooks may
10613 be called.
10614 (Fset_window_buffer): Call it.
10615
10616 * dispnew.c (clear_desired_matrices): Check that frame has
10617 a valid root window before clearing matrices in the window tree.
10618 (clear_current_matrices): Ditto.
10619 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10620 vchild are valid windows if not nil.
10621
10622 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10623 for :inverse-video.
10624 (Finternal_set_lisp_face_attribute): Ditto.
10625 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10626 (Finternal_get_lisp_face_attribute): Ditto.
10627 (Finternal_lisp_face_attribute_values): Ditto.
10628 (syms_of_xfaces): Define the symbol `:reverse-video'.
10629
10630 * xdisp.c (get_glyph_property): Renamed from
10631 fill_iterator_from_glyph_property.
10632 (next_element_from_buffer): Handle case that no `glyph' property
10633 was found correctly.
10634 (display_line): Extend face to end of line only if we have faces.
10635
106361998-07-29 Gerd Moellmann <gerd@gnu.org>
10637
10638 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10639 additional window argument.
10640
10641 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10642 set_iterator_to_previous_visible_line_start.
10643 (reseat_at_next_visible_line_start): Likewise.
10644 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10645 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10646 (compute_face_in_buffer): Renamed from
10647 compute_face_at_iterator_position.
10648 (compute_face_in_string): Renamed from
10649 compute_face_at_iterator_string_position.
10650 (get_space_width): Renamed from get_iterator_space_width.
10651 (next_overlay_string): Renamed from
10652 set_iterator_to_next_overlay_string.
10653 (get_overlay_strings): Renamed from
10654 get_overlay_strings_at_iterator_position.
10655 (restore_overlay_strings): Renamed from
10656 setup_overlay_strings_from_glyph_pos.
10657 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10658 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10659 (init_to_row_start): Renamed from init_iterator_to_row_start.
10660 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10661
10662 * xterm.c: Merge with 20.2.97.
10663 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10664
10665 * dispextern.h (struct glyph): Replace text_pos position with
10666 simple charpos.
10667
10668 * xdisp.c (this_line_start_pos): Use struct text_pos.
10669 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10670 (enum move_it_result): Renamed from move_iterator_result.
10671 (string_pos_nchars_ahead): Compute text_pos in a string from a
10672 known text_pos plus a character delta.
10673 (string_pos): Compute text_pos in string from charpos.
10674 (c_string_pos): Likewise for a C string.
10675 (number_of_chars): Return number of characters in a possibly
10676 multi-byte C string.
10677 (check_it): Renamed from check_iterator. Check that charpos and
10678 bytepos are in sync.
10679 (push_it): Renamed from save_iterator_settings.
10680 (pop_it): Renamed from restore_iterator_settings.
10681 (move_it_.*): Renamed from move_iterator_.*.
10682 (charset_at_position): Take charpos/bytepos into account.
10683 (back_to_previous_line_start): Set iterator to previous line start.
10684 (forward_to_next_line_start): Set iterator to next line start.
427ec082 10685 (back_to_previous_visible_line_start): Renamed from
26901792
DL
10686 move_iterator_previous_visible_line_start.
10687 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10688 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10689 Handle charpos/bytepos.
10690 (compute_face_at_iterator_position): Handle charpos/bytepos.
10691 (compute_face_at_iterator_string_position): Likewise.
10692 (get_iterator_space_width): Likewise.
10693 (load_overlay_strings): Likewise.
10694 (get_overlay_strings_at_iterator_position): Likewise.
10695 (reseat_iterator): Take a text_pos position argument.
10696 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10697 bytepos.
10698 (init_iterator): Take additional bytepos parameter.
10699 (reseat_iterator_to_string): Handle charpos/bytepos.
10700 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10701 (next_element_from_string): Handle charpos/bytepos.
10702 (next_element_from_c_string): Likewise.
10703 (fill_iterator_from_glyph_property): Likewise.
10704 (next_element_from_buffer): Likewise.
10705 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10706 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10707 (move_it_to): Likewise.
10708 (move_it_vertically_backward): Likewise.
10709 (move_it_vertically): Likewise.
10710 (move_it_by_lines): Likewise.
10711 (hscroll_window_tree): Likewise.
10712 (redisplay_internal): Likewise.
10713 (set_cursor_from_row): Likewise.
10714 (redisplay_window): Likewise.
10715 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10716 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10717 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10718 (try_window_id): Handle charpos/bytepos.
10719 (Ftrace_redisplay_toggle): Return Qnil.
10720 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10721 (insert_left_trunc_glyphs): Likewise.
10722
10723 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10724 do a real merge).
10725 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10726 (increment_glyph_row_buffer_positions): Ditto.
10727 (copy_glyph_row_contents): Ditto.
10728 (check_matrix_invariants): Add additional checks for charpos/
10729 bytepos consistency.
10730 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 10731 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
10732 `direction-reversed' in #if 0.
10733
10734 * xterm.h: Merge with 20.2.97.
427ec082 10735
26901792
DL
10736 * frame.h: Merge with 20.2.97.
10737
10738 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10739
10740 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10741 start.
10742 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10743 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10744 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10745 (struct it): Various members renamed from .*pos to .*charpos.
10746 (IT_CHARPOS): Access current buffer character position of an
10747 iterator.
10748 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10749 (IT_STRING_CHARPOS): Access current string character position of
10750 an iterator.
10751 (IT_STRING_BYTEPOS): Access current string byte position of
10752 an iterator.
10753 (globally): Add function prototypes from 20.2.97.
10754
10755 * everywhere: Use P_ instead of PROTO for function prototypes
10756 because everyone else seems to use P_.
10757
10758 * dispextern.h (struct text_pos): Structure describing a charpos/
10759 bytepos position in text.
10760 (BYTEPOS): Access the byte position part of a text_pos.
10761 (CHARPOS): Likewise for the character position.
10762 (SET_TEXT_POS): Set a text_pos from a character and byte position.
10763 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
10764 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
10765 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
10766 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
10767 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
10768 for buffer and string positions.
10769 (struct glyph): Use text_pos.
10770 (struct it): Renamed from display_iterator. Use text_pos.
10771
107721998-07-23 Gerd Moellmann <gerd@gnu.org>
10773
10774 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
10775 pixmap.
10776
107771998-07-21 Gerd Moellmann <gerd@gnu.org>
10778
10779 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
10780 * xterm.c (x_draw_row_bitmaps): Use it.
10781 * dispnew.c (row_equal_p): Ditto.
10782 (update_window_line): Ditto.
10783
10784 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
10785 flag of images.
10786
10787 * dispextern.h (struct image): Removed member loading_failed_p.
10788 It's probably better to have the chance to try to load an image
10789 again.
10790
107911998-07-20 Gerd Moellmann <gerd@gnu.org>
10792
10793 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
10794 at ZV if `indicate-zv-lines' is non-nil.
10795 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
10796
10797 * dispnew.c (row_equal_p): Compare displays_text_p and
10798 ends_at_zv_p flags of rows.
10799 (update_window_line): Ditto.
10800
10801 * buffer.h (struct buffer): New member indicate_zv_lines.
10802
10803 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
10804 (init_buffer_once): New variable `default-indicate-zv-lines'.
10805 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
10806
10807 * xdisp.c (redisplay_window): Don't try moving the cursor
10808 if current glyph row w->last_cursor.vpos isn't enabled.
10809
10810 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
10811
10812 * window.c (Fset_window_vscroll): Allow only negative scroll
10813 values. Others don't seem to make sense, and this way it's easy
10814 to restore a vscroll of zero.
10815
10816 * xterm.c (x_inverted_image_mask): Check that pixmap could be
10817 allocated.
10818 (x_draw_image_glyph_string_background): Don't clip if pixmap
10819 could not be created.
10820
10821 * xfns.c (xbm_load_image_from_file): Check that pixmap could
10822 be created.
10823 (xbm_load): Ditto.
10824 (gs_load): Ditto.
10825
10826 * xterm.c (x_get_glyph_overhangs): Take image and stretch
10827 glyphs into account.
10828
10829 * xfaces.c (realize_default_face): Don't set font family of
10830 the default face from the fontset alias name for `fontset-startup'.
10831
10832 * xfns.c (gs_load): Pass frame's pixel foreground and background
10833 color to the Lisp loader.
10834
108351998-07-19 Gerd Moellmann <gerd@gnu.org>
10836
10837 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
10838 libtiff34.
10839
10840 * configure.in (--with-tiff, HAVE_TIFF): Added.
10841
10842 * config.in (HAVE_TIFF): Added.
10843
10844 * Makefile.in (LIBTIFF): Added.
10845
10846 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
10847
10848 * Makefile.in (LIBJPEG): Added.
10849
10850 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
10851 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
10852 jpeglib.h.
10853
427ec082 10854 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
10855 where the library is installed in /usr/local/lib, e.g. FreeBSD,
10856 configure must be run with `--x-includes=/usr/X11R6/include:
10857 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
10858
108591998-07-18 Gerd Moellmann <gerd@gnu.org>
10860
10861 * config.in (HAVE_JPEG): Added.
10862
10863 * xfns.c (ct_init): Initialize color table used to map RGB colors
10864 from images to X pixel colors.
10865 (ct_free): Free color table.
10866 (ct_lookup): Look an RGB color up.
10867 (ct_allocated_colors): Get vector of allocated colors.
427ec082 10868 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
10869 image specification.
10870 (pbm_scan_number): Scan a decimal ASCII number from a file.
10871 (pbm_load): Load a PPM image.
10872
10873 * window.c (Fset_window_vscroll): Adjust glyph matrix if
10874 necessary. Take canonical character units as parameter.
10875 (Fwindow_vscroll): Return canonical character units.
10876
10877 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
10878 w->dy to display height for which glyph rows must be allocated.
10879
108801998-07-17 Gerd Moellmann <gerd@gnu.org>
10881
10882 * xfaces.c (face_at_string_position): Merge in region face
10883 so that it won't overwrite the font in the region.
10884 (face_at_buffer_position): Ditto.
10885 (realize_basic_faces): Don't realize region face.
10886
10887 * dispextern.h (enum face_id): REGION_FACE_ID removed.
10888
10889 * xterm.c (x_set_glyph_string_background_width): Don't let
10890 cursor face extend to end of line.
10891
10892 * xdisp.c (append_space): If adding space of default face,
10893 make sure glyph ist produced with right face.
10894
10895 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
10896 background color of a glyph string.
10897 (x_draw_glyph_string_background): Call it.
10898 (x_draw_glyph_string_bg_rect): Ditto.
10899 (x_draw_stretch_glyph_string): Ditto.
10900
109011998-07-15 Gerd Moellmann <gerd@gnu.org>
10902
10903 * xdisp.c (init_iterator): Initialize it->current_y to the
10904 window's vscroll w->dy.
10905
10906 * window.c (Fwindow_vscroll): Return number of pixels window
10907 is vscrolled smoothly.
10908 (Fset_window_vscroll): Set the number.
10909
10910 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
10911 to_pos in truncated part of a line.
10912
109131998-07-14 Gerd Moellmann <gerd@gnu.org>
10914
10915 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
10916 doesn't fit on the line, truncate it, despite truncate_lines nil.
10917 (display_line): Ditto.
10918
10919 * xfns.c: Experimental support for Ghostscript images.
10920
10921 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
10922 (XTread_socket): React on events from Ghostscript.
10923 (expose_frame): If width or height are zero, redraw entire frame.
10924 (XTread_socket): Call expose_frame after receiving event from
10925 Ghostscript.
10926
10927 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
10928 for Ghostscript support.
10929
10930 * xdisp.c (redisplay_internal): Return quickly if called
10931 recursively.
10932
10933 * alloc.c (NSTATICS): Increased to 1024.
10934
109351998-07-08 Gerd Moellmann <gerd@gnu.org>
10936
10937 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
10938 iterator's glyph row.
10939 (x_produce_stretch_glyph): Call it.
10940 (x_produce_glyphs): Handle `space-width' property; call
10941 x_append_stretch_glyph.
10942
10943 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
10944 property.
10945 (get_iterator_space_width): Determine value of `space-width'
10946 property at iterator's position.
10947 (reseat_iterator): Call it.
10948 (next_element_from_string): Ditto.
10949 (next_element_from_buffer): Ditto.
10950 (init_iterator): Initialize space_width of iterator.
10951 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
10952 moved, but cursor blinks.
10953 (redisplay_internal): Set w->last_cursor_off_p after update.
10954
10955 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
10956 (struct display_iterator): Add new member space_width.
10957
10958 * window.h (struct window): Add last_cursor_off_p.
10959
109601998-07-07 Gerd Moellmann <gerd@gnu.org>
10961
10962 * Saved.
10963
10964 * window.c (Fpos_visible_in_window_p): Case window not up to
10965 date---return nil if iterator hasn't reached position.
10966
109671998-07-06 Gerd Moellmann <gerd@gnu.org>
10968
10969 * xdisp.c (text_outside_line_unchanged_p): Fix case that
10970 overlays have changed.
10971 (redisplay_window): Case cursor movement. Don't try it if
10972 last_cursor.vpos is out of range.
10973
10974 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
10975 way, the display optimization for the line containing the cursor
10976 is used more frequently, esp. when we have a blinking cursor.
10977 (display_line): Don't set this_line_.* variables.
10978
10979 * xterm.c (x_redraw_cursor): Removed.
10980 (x_display_and_set_cursor): Set cursor type depending on
10981 cursor_off_p flag of window.
10982
10983 * dispnew.c (redraw_cursor_hook): Removed.
10984 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
10985 member of the selected window.
10986
10987 * xfaces.c (Fface_font): Added for compatibility with 20.2.
10988
10989 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
10990 Return glyph area under x/y.
10991 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
10992
10993 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
10994 after redisplaying.
10995
109961998-07-05 Gerd Moellmann <gerd@gnu.org>
10997
10998 * xdisp.c (text_outside_line_unchanged_p): Test if changes
10999 are all outside of a line of text.
11000 (redisplay_internal): Use it.
11001
110021998-06-30 Gerd Moellmann <gerd@gnu.org>
11003
11004 * xdisp.c (next_element_from_buffer): After skipping over
11005 invisible text, look for the `glyph' property.
11006 (set_iterator_stop_pos): Ignore check positions in front
11007 of an iterator's current position.
11008
11009 * xterm.c (show_mouse_face): Don't act on rows that don't exist
11010 anymore or which are marked as not having valid contents.
11011
11012 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
11013 realized faces if new attribute value is equal to old value.
11014
110151998-06-29 Gerd Moellmann <gerd@gnu.org>
11016
11017 * xfaces.c (Finternal_make_lisp_face): Increment
11018 lface_id_to_name_size when lface_id_to_name is reallocated.
11019
110201998-06-27 Gerd Moellmann <gerd@gnu.org>
11021
11022 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
11023 as minimum of endpos and overlay_pos.
11024 (load_overlay_strings): Set next_overlay_pos of iterator to
11025 -1 if we don't have to check for more overlay strings.
11026
110271998-05-09 Gerd Moellmann <gerd@gnu.org>
11028
11029 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
11030 do anything if iterator is at ZV because scan_buffer doesn't
11031 work otherwise.
11032
11033 * xterm.c (x_encode_char): Inline it.
11034 (x_get_char_font_and_encoding): Simplified.
11035 (x_per_char_metric): Inline it.
11036
11037 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11038
11039 * xdisp.c (get_next_display_element): Check for end of relief
11040 face moved here from next_element_from_buffer.
11041
11042 * xterm.c (x_produce_image_glyph): Add relief thickness.
11043 (x_produce_stretch_glyph): Ditto.
11044
110451998-05-08 Gerd Moellmann <gerd@gnu.org>
11046
11047 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11048 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11049
11050 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11051 from a glyph property.
11052 (x_produce_glyphs): Use it.
11053
11054 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11055
427ec082 11056 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11057 in text area.
11058 (x_produce_glyphs): Ditto.
11059
427ec082 11060 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11061 marginal areas.
11062
427ec082 11063 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11064 background of an image glyph string.
427ec082 11065 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11066 the background of a glyph string.
11067 (x_draw_image_glyph_string_foreground): Draw the foreground of
11068 an image glyph string.
11069 (x_inverted_image_mask): Return the inverted mask of an image.
11070
11071 * xfns.c (x_draw_image): Removed.
11072
11073 * dispextern.h (struct image_type): Remove drawing function.
11074
11075 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11076
11077 * xdisp.c (get_next_display_element): In marginal areas, translate
11078 newlines, tabs, etc. like normal control characters.
11079
11080 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11081 and color.
11082 (free_realized_faces): Set frame garbaged.
11083
11084 * xfaces.c (syms_of_xfaces): Add defsubr for
11085 internal-lisp-face-attribute-values.
11086
110871998-05-07 Gerd Moellmann <gerd@gnu.org>
11088
11089 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11090 full.
11091 (x_produce_image_glyph): Set IT->nglyphs to 1.
11092 (x_draw_image_glyph_string): Use inverted mask to draw background.
11093
11094 * dispextern.h (struct image_type): Additional clipping rect
11095 parameters for drawing functions.
11096
427ec082 11097 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11098 a glyph string.
11099 (x_draw_image_glyph_string): Use it and pass the rect to the
11100 image drawing function.
11101
11102 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11103 first character with `glyph' property as image position. Set
11104 iterator back to that position as long as the image hasn't been
11105 consumed with set_iterator_to_next.
11106 (set_cursor_from_row): Accept when glyph with given position is
11107 not found in the row. Set cursor x to end of line in that case,
11108 so that we can hscroll.
11109 (redisplay_internal): Correct computation of delta by which
11110 positions have changed in redisplay optimization for cursor
11111 row of selected window.
11112
11113 * xdisp.c (display_line): Remove start_pos.
427ec082 11114 (display_line): Fix bug preventing display optimization for
26901792
DL
11115 cursor line of selected window.
11116 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11117 instead.
11118
11119 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11120 (update_text_area): Take glyph pixel width into account
11121 when trying to find a resync point.
11122 (row_equal_p): Compare glyphs in all areas.
11123
111241998-05-06 Gerd Moellmann <gerd@gnu.org>
11125
11126 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11127
11128 * dispextern.h (struct glyph_row): Use unsigned hash value.
11129
11130 * xdisp.c (display_line): Simplified and made faster by setting
11131 the cursor with set_cursor_from_row.
11132 (set_cursor_from_row): Handle rows of desired matrix.
11133
111341998-05-05 Gerd Moellmann <gerd@gnu.org>
11135
11136 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11137 with type != CHAR_GLYPH.
11138 (fill_iterator_from_glyph_property): Return void. Set
11139 method to next_element_from_image.
11140 (next_element_from_image): Dummy function for delivering a
11141 single image id.
11142 (set_iterator_to_next): Add method next_element_from_image.
11143 (redisplay_window): When recentering, and cursor vpos is -1
11144 after display, assume middle of window is in first line displayed
11145 in window, and display again.
427ec082 11146 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11147 the position of the first character having the glyph property.
11148
11149 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11150 * xfns.c (x_draw_image): Use it.
11151 * xterm.c (x_produce_image_glyph): Use it.
11152
11153 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11154
11155 * Makefile.in: Extraneous #define of LIBXPM removed.
11156
11157 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11158 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11159 stretch glyph.
11160 (x_compute_glyph_string_overhangs): Compute overhangs only
11161 for text glyph strings.
11162 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11163 (x_draw_glyph_string): Call it.
11164
11165 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11166 (struct glyph): Add sub-structure for stretchable glyphs.
11167 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11168
11169 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11170 #ifdef HAVE_FACES.
11171
11172 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11173
11174 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11175 setup_iterator_from_glyph_property. Don't do it for terminal
11176 frames.
11177
11178 * xterm.c (x_produce_image_glyph): Produce glyph for image
11179 that can't be loaded.
11180
11181 * xfns.c (lookup_image): If image can't be loaded, set its
11182 width and height so that we can draw a rectangle.
11183 (x_draw_image): Draw a rectangle for images that don't have
11184 a pixmap.
11185 (make_image): Set hash value.
11186 (image_spec_equal_p): Use image_spec_value.
11187
11188 * xterm.c (expose_frame): Don't try to redraw if basic faces
11189 haven't benn realized yet.
427ec082 11190 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11191 is not as tall as row.
11192
111931998-05-04 Gerd Moellmann <gerd@gnu.org>
11194
11195 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11196 (LIBX)[HAVE_X11]: Add LIBXPM.
11197
11198 * xfns.c (xpm_image_p): Implementation of image type functions
11199 for XPM.
11200 (xpm_load): Ditto.
11201
11202 * dispextern.h (struct image): Add mask pixmap for XPM.
11203
11204 * xfns.c (x_draw_image): Handle images with masks.
11205
11206 * configure.in: --with-xpm added. Code detecting -lXpm added.
11207
11208 * config.in: Add HAVE_XPM.
11209
11210 * xfns.c (xbm_draw): Removed.
11211 (x_draw_image): Default implementation for drawing images.
11212 (xbm_keyword_index): Remove XBM_DEPTH.
11213 (xbm_format): Remove `:depth'.
11214 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11215 (xbm_load_image_from_file): Added for the same reason.
26901792 11216
427ec082 11217 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11218 glyph string.
11219 (x_draw_image_glyph_string): Pass ybase to image draw function.
11220
11221 * xfns.c (make_image): Set default baseline.
11222
11223 * xterm.c (x_produce_image_glyph): Compute ascent of image
11224 from its height and baseline percentage.
11225
11226 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11227 (xbm_format): Add description for `:baseline'.
11228 (xbm_image_spec_from_file): Add keywords from original spec to
11229 result.
11230 (xbm_load): Set baseline of image.
11231 (xbm_image_p): Check range for baseline.
11232
11233 * dispextern.h (struct image): Add member baseline.
11234
11235 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11236
11237 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11238
11239 * xdisp.c (get_next_display_element): Do character translations
11240 only if delivering characters.
11241
112421998-05-03 Gerd Moellmann <gerd@gnu.org>
11243
427ec082 11244 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11245 DISP_CHARACTER.
11246
11247 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11248 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11249
112501998-05-02 Gerd Moellmann <gerd@gnu.org>
11251
11252 * xfns.c (prepare_image_for_display): Set image timestamp.
11253 (clear_image_cache): Clear images if image's timestamp +
11254 Vimage_eviction_seconds is > now.
11255 (syms_of_xfns): New variables image-eviction-seconds, and
11256 image-types.
11257 (add_image_format): Add to image-types.
11258 (xbm_load): Support new image spec format.
11259 (x_alloc_image_color): Allocate a color for an image.
11260
11261 * dispextern.h (struct image): Add timestamp.
11262
11263 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11264 vectors of bool-vectors.
11265 (xbm_lisp_object_from_file): Build new format image spec.
11266
112671998-05-01 Gerd Moellmann <gerd@gnu.org>
11268
11269 * xfaces.c (init_frame_faces): Initialize image cache.
11270 (free_frame_faces): Free it.
11271
11272 * xterm.c (x_delete_display): Don't free image cache.
11273
11274 * emacs.c (main): Call init_xfns.
11275
112761998-04-30 Gerd Moellmann <gerd@gnu.org>
11277
11278 * alloc.c (mark_object): Mark objects in image cache.
11279
427ec082 11280 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11281 widget_store_internal_border_width.
11282
11283 * widget.c (widget_store_internal_border): Return void.
11284
11285 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11286 void.
11287 (init_x_parm_symbols): Return void.
11288 (x_report_frame_params): Ditto.
11289 (x_set_border_pixel): Ditto.
11290 (syms_of_xfns): Ditto.
11291 (x_destroy_all_bitmaps): Use xfree instead of free.
11292
11293 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11294
11295 * xterm.c (x_term_init): Initialize image_cache of display info.
11296 (x_delete_display): Free image cache.
11297
11298 * xterm.h (struct x_display_info): Add image_cache.
11299
11300 * xfns.c (make_image_cache): Allocate a new image cache.
11301 (free_image_cache): Free an image cache.
11302 (make_image): Allocate an image.
11303 (free_image): Free an image.
11304
11305 * dispextern.h (struct image): Structure describing an image.
11306 (struct image_cache): Structure describing an image cache.
11307
113081998-04-29 Gerd Moellmann <gerd@gnu.org>
11309
11310 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11311 non-zero if iterator is filled with something to return.
11312 (next_element_from_buffer): Immediately return if
11313 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11314 (next_element_from_string): Likewise.
11315
11316 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11317
11318 * dispextern.h (struct glyph): Add pixmap_id.
11319 (display_element_type): Add DISP_PIXMAP.
11320
11321 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11322 malloc/free.
11323
11324 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11325 (clear_face_cache): Call it.
11326
11327 * xterm.c (x_query_font): Don't look at empty font table slots.
11328 (x_compute_min_glyph_bounds): Likewise.
11329 (x_term_init): Initialize font_table to null.
11330 (x_load_font): Change allocation of font_info structures so
11331 that it is possible to free fonts.
11332
427ec082 11333 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11334 Only free fonts from filled font table entries.
11335
11336 * xfaces.c (best_matching_font): Support use of scalable fonts.
11337 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11338
11339 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11340 and resy.
11341 * xterm.c (x_term_init): Compute resx and resy.
11342
11343 * xfaces.c (split_font_name): Don't reject scalable fonts.
11344
427ec082 11345 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11346 in #if 0.
11347
11348 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11349 point size cannot be determined.
11350
11351 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11352 width over all fonts on a frame.
11353 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11354 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11355 macros.
11356
11357 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11358 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11359 (x_load_font): Use x_compute_min_char_bounds.
11360
11361 * xterm.h (struct x_display_info): New members smallest_char_width
11362 and smallest_font_height.
11363
113641998-04-28 Gerd Moellmann <gerd@gnu.org>
11365
11366 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11367 the same name if GC of face is zero.
11368
11369 * dispextern.h (struct face): Member non_ascii_gc removed.
11370
11371 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11372 for characters < 0177 in default face. Prepare face for
26901792
DL
11373 display before returning it.
11374 (x_produce_glyphs): Use it->charset.
11375 (x_get_char_font_and_encoding): Simplified.
11376 (x_encode_char): Remove parameter `font'.
11377
11378 * xfaces.c (choose_face_font): If registry from charset symbol
11379 doesn't contain a `-', make it a pattern by appending "*-*".
11380
11381 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11382 glyph_check_pos computation to character boundary.
11383
113841998-04-27 Gerd Moellmann <gerd@gnu.org>
11385
11386 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11387
11388 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11389 ASCII face for a given Lisp face id.
11390
11391 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11392 account.
427ec082 11393 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11394 new position is < original position.
11395 (check_iterator_glyph_property): Handle glyph property in strings.
11396 (next_element_from_string): Call above function.
11397 (next_element_from_display_vector): Handle faces in glyphs.
11398 (get_next_display_element): Set face_id of glyphs for
11399 control chars to zero.
11400
11401 * Makefile.in (term.o): Add dependency on dispextern.h.
11402
11403 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11404 (display_line): Handle marginal areas.
11405 (move_iterator_in_display_line_to): Likewise.
11406
11407 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11408
11409 * xfaces.c (face_at_buffer_position): Don't merge with nil
11410 text property.
11411 (face_at_string_position): Ditto.
11412
11413 * dispextern.h (struct display_iterator): Use a stack of saved
11414 values instead of saving check positions etc. individually.
11415
11416 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11417 maybe pop the iterator's stack.
11418 (save_iterator_settings): Push a value on iterator's stack.
11419 (get_overlay_strings_at_iterator_position): Use it.
11420 (restore_iterator_settings): Pop the stack.
11421 (set_iterator_to_next_overlay_string): Use it.
11422
11423 * xfaces.c (try_font_list): Use alternative font families.
11424
114251998-04-26 Gerd Moellmann <gerd@gnu.org>
11426
11427 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11428 font selection matches fonts.
11429 (Fface_font_sort_order): Return the font sort order.
11430 (best_matching_font): Find best matching font based on sort order.
11431 (cmp_font_names): Sort by given sort order.
11432
11433 * dispextern.h (struct display_iterator): New member faces_p.
11434 * xdisp.c (init_iterator): Initialize it->faces_p.
11435 (compute_face_at_iterator_string_position): Use it.
11436 (compute_face_at_iterator_position): Use it.
11437 (init_iterator): Use it.
11438 (display_mode_line): Ditto.
11439
11440 * xdisp.c (get_next_display_element): Put code choosing a face
11441 when the charset changes in #ifdef HAVE_FACES.
11442
427ec082 11443 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11444 lookup_face_for_charset.
11445
11446 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11447 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11448
114491998-04-25 Gerd Moellmann <gerd@gnu.org>
11450
11451 * xfaces.c (best_matching_font): Return the name of the best
11452 matching font in an array of font_name structures.
11453 (choose_face_font): Use it.
11454 (choose_face_fontset_font): Use it.
11455 (find_best_weight_font): If final font found has same weight as
11456 the font we started with, return the original font because it is a
11457 better match for the resolution of the display.
11458 (find_best_slant_font): Likewise.
11459 (merge_face_vector_with_property): Check more invalid attribute
11460 values.
11461 (lface_suitable_for_charset_p): Replaced by a macro with the same
11462 name in upper-case.
11463
114641998-04-24 Gerd Moellmann <gerd@gnu.org>
11465
11466 * dispextern.h (struct face): Member
11467 fontset_chosen_for_realization_p removed.
11468
11469 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11470 end of the collision list, so that we find more specific faces
11471 first.
11472 (lookup_face_for_charset): Look up a new face if face->fontset >=
11473 0, and charset != CHARSET_COMPOSITION.
11474
11475 * xfaces.c (split_font_name): Return zero if point size of font
11476 couldn't be computed.
11477 (realize_default_face): Use ASCII font of a fontset to determine
11478 font-related attributes of the default face.
11479 (face_fontset): Return fontset id for face family.
11480 (font_list): Additional parameter font_pattern. If non-nil,
11481 return fonts matching that pattern.
11482
114831998-04-23 Gerd Moellmann <gerd@gnu.org>
11484
11485 * xfaces.c (choose_face_fontset): If new fontset cannot be
11486 constructed, or fontset name cannot be split, return the id of the
11487 standard fontset.
11488
11489 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11490 When Emacs starts, it may be called for the initial frame which
11491 isn't an X frame.
11492
11493 * dispextern.h (struct face): New members foreground_defaulted_p,
11494 background_defaulted_p.
11495 (struct face): Members `mask' and `cache' removed.
11496
11497 * xfaces.c (load_color): Set them.
11498 (free_face_colors): Check them.
427ec082 11499 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11500 font unknown.
11501
11502 * xfaces.c (free_font): Removed.
11503 (load_face_font_or_fontset): Renamed from load_font.
11504 (load_face_font_or_fontset): Use message2 instead of signalling.
11505 (load_color): Likewise.
11506 (load_pixmap): Likewise.
11507
11508 * xterm.h (struct x_display_info): Add screen_dpi.
11509 * xterm.c (x_term_init): Initialize it.
11510 * xfaces.c (xlfd_point_size): Use it.
11511 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11512 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11513 similar to that of the frame appear first in the result.
11514
11515 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11516 is set for the face to cache, add it to the end of the collision
11517 list.
11518 (try_font_list): If fonts for given family and registry cannot
11519 be found, first try to keep the registry, and choose a different
11520 family.
11521 (choose_face_font): Allow nfonts == 0.
11522 (try_font_list): Give up if no font matches given registry.
11523
115241998-04-22 Gerd Moellmann <gerd@gnu.org>
11525
11526 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11527 font info id of the face.
11528
11529 * xfaces.c (load_font): Set font_info_id.
11530 (realize_face): Ditto.
11531
11532 * dispextern.h (struct face): Change member font_info to
11533 font_info_id.
11534
11535 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11536 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11537
11538 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11539 isn't ASCII, get the ASCII face before adding a space.
11540 (append_space): Likewise.
11541 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11542 to -1 so that it will compute the right face for the truncation
11543 glyphs.
11544
11545 * xfaces.c (realize_face): Set
11546 face->fontset_chosen_for_realization_p.
11547 (lookup_face_for_charset): If fontset wasn't specified originally
11548 and new charset != CHARSET_COMPOSITION, get a new face for that
11549 charset.
11550
11551 * dispextern.h (struct face): New member
11552 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11553 realize_face has chosen a fontset to display composite characters
11554 for a Lisp face not specifying a fontset.
11555
11556 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11557 face and line already filled here. Don't do anything if current
11558 face hasn't a relief or has a background equal to the frame
11559 background.
11560
11561 * xfaces.c (split_font_name): Additional parameter numeric_p.
11562 Don't compute numeric values if it is non-zero.
11563 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11564 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11565 font whose name cannot be split into fields.
11566
115671998-04-21 Gerd Moellmann <gerd@gnu.org>
11568
427ec082 11569 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11570 possibly using less restrictive patterns.
11571 (choose_face_font): Use it.
11572
11573 * xterm.c (x_get_char_font_and_encoding): For charset !=
11574 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11575
11576 * dispextern.h (struct face): New member font_info.
11577
11578 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11579 specifying a fontset as well as those not having a fontset.
11580 (free_font): Make it empty.
11581 (realize_face): Use changed load_font.
11582
11583 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11584 fit for charset, get the right one.
11585
11586 * xfaces.c (load_font): Take frame and name parameter, return
11587 font.
11588 (free_font): Likewise.
11589 (split_font_name): Compute numeric values for height, swidth etc.
11590 (cmp_font_names): Use them.
11591 (find_best_width_font): Ditto.
11592 (find_best_height_font): Ditto.
11593 (find_best_weight_font): Ditto.
11594 (find_best_slant_font): Ditto.
11595 (lface_hash): Add weight, slant, swidth and relief to hash value.
11596 (lface_equal_p): Make it faster.
11597 (lface_from_symbol): Use assq_no_quit.
11598 (Fnote_default_face_changed): Removed.
11599 (cmp_font_names): Use strcmp instead of xstricmp.
11600 (face_charset_registries): Removed.
11601
116021998-04-20 Gerd Moellmann <gerd@gnu.org>
11603
11604 * frame.h (CHECK_FRAME): Give this macro a statement form.
11605 (CHECK_LIVE_FRAME): Ditto.
11606
11607 * xfaces.c (find_best_width_font): Find the best matching font
11608 for a given width.
11609 (find_best_height_font): Likewise for height.
11610 (find_best_weight_font): Likewise for weight.
11611 (find_best_slant_font): Likewise for slant.
11612 (choose_face_font): Use them.
11613 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11614 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11615 global face attributes.
11616
11617 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11618 Lisp face attributes.
11619
116201998-04-19 Gerd Moellmann <gerd@gnu.org>
11621
11622 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11623 and :italic for compatibility.
11624 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11625 :bold and :italic. Handle boolean resource values for
26901792
DL
11626 :underline and :italic.
11627
11628 * xfns.c (display_x_get_resource): Make it externally visible.
11629
11630 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11631 If that frame is non-null, return the frame-local face.
11632 (Finternal_make_lisp_face): Additional frame argument.
11633 (lface_attributes): Get face attributes from global and frame-local
11634 definitions.
11635 (Finternal_lisp_face_equal_p): Additional frame argument.
11636 (merge_lisp_face_vector_with_property): Ditto.
11637 (Frealize_basic_faces): Removed.
11638 (Finternal_get_lisp_face_attribute): Additional frame argument.
11639 (Finternal_lisp_face_p): Ditto.
11640 (load_color) [MSDOS]: Removed because it isn't clear how
11641 to do this for MS-DOS.
11642
11643 * xfaces.c (lface_from_symbol): Get global face definition
11644 from face-global-alist.
11645
11646 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11647 as values for :underline and :inverse-video.
11648 (Finternal_set_lisp_face_attribute): Allow nil values.
11649
116501998-04-17 Gerd Moellmann <gerd@gnu.org>
11651
11652 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11653
11654 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11655 (Finternal_make_lisp_face): Add new face to Vall_faces.
11656
11657 * xdisp.c (echo_area_display): Remove code recomputing faces.
11658 (redisplay_internal): Ditto.
11659 (init_iterator): Do it here.
11660
11661 * xfaces.c (choose_face_font): Check that swidth doesn't change
11662 for subusequent attributes.
11663 (xlfd_point_size): Return int.
11664
11665 * xdisp.c (redisplay_internal, echo_area-display): If realized
11666 faces have been cleared, call recompute_basic_faces.
11667
11668 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11669 face_attributes_changed_p.
427ec082 11670 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
11671 all frames.
11672 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11673
11674 * xdisp.c (redisplay_internal): If face attributes have been
11675 changed since the last redisplay, recompute basic faces.
11676 (echo_area_display): Ditto.
11677
11678 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11679
11680 * xfaces.c (min_char_bounds): If face cache not yet present,
11681 don't try to get font dimensions from faces.
11682
11683 * xterm.c (x_frame_mode_line_height): If face cache not present
11684 set, return default height.
11685
11686 * alloc.c (mark_face_cache): Check for null faces. Correct
11687 index bug.
11688
11689 * dispextern.h (struct face): Renamed from struct rface. Member
11690 underline renamed underline_p. Make it a bit-field.
11691
11692 * xfaces.c (init_frame_faces): Allocate face cache.
11693 (free_frame_faces): Free face cache.
11694 (recompute_basic_faces): Realize basic faces only if face cache is
11695 allocated, i.e. after init_frame_faces has been called.
11696
11697 * frame.c (make_frame): Initialze face cache with null.
11698
11699 * xfaces.c (same_size_fonts): Removed.
11700
427ec082 11701 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
11702 s->gc != 0.
11703 (x_set_mouse_face_gc): Ditto.
11704 (x_set_mode_line_face_gc): Ditto.
11705
427ec082
SS
11706 * xfaces.c (realize_default_face): Return int. Value is
11707 zero if frame params don't contain enough information to
26901792
DL
11708 realize the default face.
11709 (realize_basic_faces): Ditto.
11710 (init_frame_faces): Realize basic faces.
11711
11712 * xfns.c (x_set_font): First store real font name in frame
11713 parameters, then call recompute_basic_faces.
11714
11715 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11716
117171998-04-16 Gerd Moellmann <gerd@gnu.org>
11718
11719 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11720
11721 * xfns.c (Fx_face_fixed_p): Removed.
11722 (Fx_list_fonts): Moved to xfaces.c.
11723
11724 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11725 face_at_buffer_position. Parameter charset removed; always
11726 compute face for CHARSET_ASCII.
11727 (face_at_string_position): Renamed from
11728 compute_face_at_string_pos. Parameter charset removed; always
11729 compute for CHARSET_ASCII.
427ec082 11730 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
11731 face_cache.
11732 (lookup_face): Ditto.
11733 (compute_char_face): Renamed from compute_glyph_face.
11734
11735 * xdisp.c (init_iterator): Initialize charset member.
11736 (reseat_iterator_to_string): Ditto.
11737 (get_charset_at_buffer_position): Determine charset at
11738 buffer position in current_buffer.
11739 (reseat_iterator): Call above function.
11740 (compute_face_at_iterator_position): Call
11741 compute_face_at_buffer_pos.
11742 (compute_face_at_iterator_string_position): Call
11743 compute_face_at_string_pos.
11744 (get_face_from_id): Removed.
11745 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11746 Call get_charset_at_buffer_position.
11747 (reseat_iterator): Determine face if charset at pos differs
11748 from iterator's charset.
11749 (reseat_iterator_to_glyph_pos): Removed.
11750
11751 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11752 Determine charset from buffer position.
11753 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11754 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11755
11756 * dispextern.h (struct display_iterator): Add member charset.
11757
117581998-04-15 Gerd Moellmann <gerd@gnu.org>
11759
11760 * xfaces.c (compute_char_face): Removed.
11761
11762 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
11763 with new parameter list.
11764
11765 * xfaces.c (region_face): Removed.
11766 (allocate_face): Removed.
11767 (copy_face): Ditto.
11768 (face_eql): Removed.
11769 (intern_face): Removed.
11770 (clear_face_cache): Removed.
11771 (load_font): Ditto.
11772 (unload_font): Ditto.
11773 (load_color): Ditto.
11774 (unload_color): Ditto.
11775 (new_computed_face): Ditto.
11776 (intern_computed_face): Ditto.
11777 (ensure_face_ready): Ditto.
11778 (merge_faces): Ditto.
11779 (compute_base_face): Ditto.
11780 (merge_face_list): Ditto.
11781 (Fmake_face_internal): Removed.
11782 (Fset_face_attribute_internal): Ditto.
11783 (face_name_id_number): Removed.
11784 (Fframe_face_alist): Ditto.
11785 (Fset_frame_face_alist): Ditto.
11786 (Finternal_next_face_id): Ditto.
11787
11788 * xterm.h (struct x_output): Remove computed_faces, and
11789 param_faces. Remove macros accessing them.
11790
11791 * xfaces.c: Entirely new face implementation added.
11792
117931998-04-11 Gerd Moellmann <gerd@gnu.org>
11794
11795 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
11796 `charpos'.
11797
117981998-04-10 Gerd Moellmann <gerd@gnu.org>
11799
11800 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
11801 scroll bar window to reduce flickering. Clear entire height.
11802
11803 * xdisp.c (move_iterator_vertically_backward): Set iterator's
11804 current_x and hpos to zero after moving to previous line
11805 start.
11806
118071998-04-03 Gerd Moellmann <gerd@gnu.org>
11808
11809 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
11810
11811 * xfaces.c (xlfd_point_size): Compute relative point size of
11812 fonts from font and frame resolution.
11813 (sort_fonts): New function to sort fonts, temporarily setting
11814 font_frame to the frame in effect.
11815 (xlfd_point_size): Take additional frame parameter to be able
11816 to get at the display's resolution.
11817
11818 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
11819 BLACK_PIX_DEFAULT.
11820 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
11821 screen of display.
11822
118231998-03-31 Gerd Moellmann <gerd@gnu.org>
11824
11825 * xfaces.c (choose_face_fontset): Instantiate fontsets.
11826
11827 * fontset.h: Add external declarations for Vfontset_alias_alist
11828 and Vglobal_fontset_alist.
11829
11830 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
11831 (realize_default_face): If frame parameters contain an artificial
11832 font name naming a fontset, set the family of the default face to
11833 the fontset name given by the registry.
11834
11835 * Makefile.in (alloc.o): Add dependency to dispextern.h.
11836
118371998-03-22 Gerd Moellmann <gerd@gnu.org>
11838
11839 * alloc.c (mark_object): Add function prototype. Add cast to
11840 Lisp_Object pointer in call to mark_object for symbol names
11841 because this otherwise gives a warning from gcc 2.8.1.
11842 (mark_face_cache): Mark Lisp objects in realized faces.
11843
118441998-03-19 Gerd Moellmann <gerd@gnu.org>
11845
11846 * frame.h (struct frame): Add member face_cache.
11847
11848 * alloc.c (mark_object): Mark face cache.
11849 (mark_face_cache): Mark Lisp faces in face cache of frame.
11850
11851 * frame.c (make_frame): Initialize face_cache.
11852 (Fdelete_frame): Free it.
11853
118541998-03-18 Gerd Moellmann <gerd@gnu.org>
11855
11856 * xfaces.c: Very first skeleton of functions for face realization,
11857 face merging, face cache etc.
11858
11859 * dispextern.h (struct rface): Realized faces. Will replace
11860 struct face when tested.
11861 (struct face_cache): Realized face caches.
11862
11863 * xdisp.c (init_iterator): Initialize area member of display
11864 iterator.
11865
118661998-03-17 Gerd Moellmann <gerd@gnu.org>
11867
11868 * xterm.c (x_append_glyph): Use it->area to store glyphs.
11869
11870 * dispextern.h (struct display_iterator): New member area.
11871
11872 * xterm.c (note_overwritten_text_cursor): Note when the text
11873 cursor of a window is overwritten.
11874
11875 * xdisp.c (set_cursor_from_row): If PT is not found in the
11876 row, display the cursor at the start of the row.
11877
11878 * dispnew.c (direct_output_forward_char): Call
11879 set_cursor_from_row.
11880
11881 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
11882 position is not in an overlay string, set iterator's position and
11883 method explicitly so.
427ec082 11884 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
11885 Make it externally visible.
11886 (redisplay_window): Call set_cursor_from_row so that there is only
11887 one place where the cursor position is calculated from a current
11888 row.
11889
11890 * dispextern.h (struct display_iterator): New member
11891 overlay_strings_at_end_processed_p.
11892
11893 * xdisp.c (check_iterator): Perform sanity checks on
11894 display_iterators.
11895 (next_element_from_buffer): Check for overlay strings at ZV.
11896
118971998-03-16 Gerd Moellmann <gerd@gnu.org>
11898
11899 * buffer.c (init_buffer_once): Add left_margin_width and
11900 right_margin_width to buffer_local_flags.
11901
11902 * dispnew.c (margin_glyphs_to_reserve): Function computing
11903 number of glyphs to reserve for a marginal area.
11904 (adjust_glyph_matrix): Call it.
11905 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
11906 is not alive.
11907
11908 * window.c (Fset_window_margins): Allow floats.
11909
11910 * buffer.c (syms_of_buffer): Add buffer-local variables
11911 left-margin-width and right-margin-width. Add defaults
11912 default-left-margin-width and default-right-margin-width.
11913
11914 * buffer.h (struct buffer): New members left_margin_width
11915 and right_margin_width.
11916
11917 * window.c (Fset_window_margins): Make window the last and
11918 optional argument.
11919
11920 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
11921 flag no_marginal_areas_p differently.
11922 (x_clear_end_of_line): Ditto.
11923 (x_draw_glyph_string_relief): Compute width of relief differently
11924 for rows with flag no_marginal_areas_p.
11925
11926 * dispnew.c (update_window_line): Update marginal areas only
11927 for rows that don't have no_marginal_areas_p set.
11928
11929 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
11930 (display_menu_bar): Ditto.
11931
11932 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
11933
11934 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
11935 marginal areas in window-based redisplay.
11936
11937 * dispextern.h (struct glyph_matrix): New members
11938 left_margin_glyphs and right_margin_glyphs.
11939
119401998-03-15 Gerd Moellmann <gerd@gnu.org>
11941
11942 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
11943
11944 * charset.c (non_ascii_char_to_string): Use char type parameters
11945 because the function is used that way from outside. Use unsigned
11946 char internally.
11947
11948 * window.c (change_window_height): Return void.
11949 (make_dummy_parent): Return void.
11950 (init_window_once): Return void.
11951 (syms_of_window): Ditto.
11952 (keys_of_window): Ditto.
11953 (delete_window): Correct return with and without value.
11954
11955 * buffer.c (record_buffer): Return void.
11956
11957 * marker.c (unchain_marker): Return void.
11958
11959 * window.c (unshow_buffer): Return void.
11960 (replace_window): Ditto.
11961 (delete_window): Ditto.
11962
11963 * term.c (delete_glyphs_hook): Void return type.
11964 (ring_bell_hook): Ditto.
11965 (set_terminal_window_hook): Ditto.
11966
11967 * sysdep.c (init_sigio): Return void.
11968
11969 * xterm.c (x_set_window_size): Return void.
11970 (x_calc_absolute_position): Ditto.
11971 (x_set_offset): Ditto.
11972 (x_focus_on_frame): Ditto.
11973 (x_unfocus_frame): Ditto.
11974 (x_make_frame_visible): Ditto.
11975 (x_make_frame_invisible): Ditto.
11976 (x_iconify_frame): Ditto.
11977 (x_destroy_window): Ditto.
11978 (x_wm_set_window_state): Ditto.
11979 (x_wm_set_icon_pixmap): Ditto.
11980 (x_wm_set_icon_position): Ditto.
11981 (x_initialize): Ditto.
11982 (x_error_quitter): Ditto.
11983 (x_destroy_window): Use xfree instead of free.
11984
11985 * keyboard.c (clear_waiting_for_input): Return void.
11986
11987 * xterm.c (x_wm_set_size_hint): Return void.
11988 (x_raise_frame): Ditto.
11989 (refreshicon): Ditto.
11990 (x_error_catcher): Ditto.
11991 (x_clear_errors): Ditto.
11992
11993 * keyboard.c (record_asynch_buffer_change): Return void.
11994
11995