Maybe include unistd.h.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
8cf8560b
DL
12000-06-23 Dave Love <fx@gnu.org>
2
3 * emacs.c (setgrp): Undefine before defining.
4 (malloc_warning, set_time_zone_rule, index): Prototype.
5
6 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
7 HAVE_STRUCT_TIMEZONE.
8
9 * s/osf1.h: Move string.h hack here from alpha.h and make it
10 conditional.
11 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
12 _XOPEN_SOURCE.
13 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
14 (SOCKLEN_TYPE): Don't define.
15
16 * m/alpha.h: Remove string.h hack.
17
18 * s/osf5-0.h: New file.
19
20 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
21 include time.h, done by systime.h.
22 [__FreeBSD__]: Remove redundant includes.
23
24 * callproc.c: (setpgrp): Undefine before defining.
25 (delete_temp_file): Return Qnil to avoid warning.
26
27 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
28
29 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
30 HAVE_X_WINDOWS.
31
32 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
33
34 * composite.h (compose_text): Declare.
35
36 * xterm.c: Don't include sys/types.h unconditionally. Don't
37 protect its inclusion with !USG (following xmenu.c).
38
ea055732
GM
392000-06-23 Gerd Moellmann <gerd@gnu.org>
40
41 * xfns.c (x_create_tip_frame): Initialize frame's colors like
42 in x_create_frame.
43
74b01b80
EZ
442000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
45
46 * coding.c (decode_eol_post_ccl): Special handling for undecided
47 and inconsistent EOL types.
48
64f3a166
GM
492000-06-22 Gerd Moellmann <gerd@gnu.org>
50
16cf31f7
GM
51 * xrdb.c (x_load_resources): Add default resource for scroll bar's
52 trough color and main window's background color.
53
54 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
55 differently.
56
57 * xterm.h (Xt_app_con): External declaration.
58
59 * widget.c (EmacsFrameRealize): Fix typo.
60
486a103d
GM
61 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
62
64f3a166
GM
63 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
64 (handle_invisible_prop): Record the start of invisible text in
65 it->add_overlay_start.
66 (struct overlay_entry): Add member `overlay'.
67 (handle_overlay_change): Simplify.
68 (next_overlay_string): After having processed overlay strings at the
69 end of the buffer, record that fact in
70 it->overlay_strings_at_end_processed_p.
71 (compare_overlay_entries): If before- and after-strings come
72 from the same overlay, let before-strings come first.
73 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
74 (load_overlay_strings): Take it->add_overlay_start into account
75 when adding overlay strings.
76
77 * dispextern.h (struct it): Add member add_overlay_start.
78
bb746ea6
DL
792000-06-22 Dave Love <fx@gnu.org>
80
81 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
82
83 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
84
a8f573f3
KH
852000-06-22 Kenichi Handa <handa@etl.go.jp>
86
87 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
88 is greater than 0.
89
9f2bbc92
DL
902000-06-21 Dave Love <fx@gnu.org>
91
92 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
93
3ee5041c
SM
942000-06-21 Stefan Monnier <monnier@cs.yale.edu>
95
96 * syntax.c (back_comment): Simplify string-parity counting (with
97 the added benefit of handling multiple string-styles as long as
98 they are not intertwined).
99 Jump to the slow code as soon as a comment starter is found in
100 a "string_lossage" position. Fixes the case: " /* " /* " */.
101
4c343001
DL
1022000-06-21 Dave Love <fx@gnu.org>
103
104 * Makefile.in: Use GETLOADAVG_LIBS.
105
106 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
107 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
108
e6365855
SM
1092000-06-20 Stefan Monnier <monnier@cs.yale.edu>
110
111 * syntax.c (describe_syntax): Recognize the `n'estable bit.
112 (Fforward_comment, scan_lists):
113 Check the comstyle of single-char comment-starters.
114 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
115 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
116 Check the comstyle of single-char comment-starters.
117 Clarify control-flow around the Scomment case.
e6365855 118
5700d2cc
DL
1192000-06-20 Dave Love <fx@gnu.org>
120
d355bd8a
SM
121 * fns.c (make_hash_table, maybe_resize_hash_table):
122 Cast arg of next_almost_prime.
5700d2cc
DL
123
124 * tparam.c [emacs]: Include lisp.h.
125
126 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
127 and unistd.h.
128
4a27bdfb
GM
1292000-06-20 Gerd Moellmann <gerd@gnu.org>
130
a61d762c
GM
131 * keyboard.c (adjust_point_for_property): Check if display
132 property should be treated as intangible by looking at its
133 value.
134
135 * xdisp.c (single_display_prop_intangible_p)
136 (display_prop_intangible_p): New functions.
137
138 * dispextern.h (display_prop_intangible_p): Add prototype.
139
140 * xdisp.c (dump_glyph_row): Show type of glyph->object.
141
4a27bdfb
GM
142 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
143 argument to sigprocmask.
144
145 * s/sco5.h (sigblock): Redefined to pass a pointer as second
146 argument to sigprocmask.
147
148 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
149 sigprocmask_set, and pass a pointer to it to sigprocmask.
150
151 * sysdep.c (sigprocmask_set): New variable.
152
153 * fileio.c (make_temp_name): Don't use `%s' in string passed to
154 report_file_error.
155
427ec082
SS
1562000-06-20 Sam Steingold <sds@gnu.org>
157
158 * xrdb.c: Don't declare xmalloc, xrealloc.
159
8972fe79 1602000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
161
162 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
163 (re_comp): Cast gettext return value to avoid complaints when
164 !HAVE_LIBINTL.
165
074b6efe
DL
1662000-06-20 Dave Love <fx@gnu.org>
167
f85c008a
DL
168 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
169 HAVE_GETTIMEOFDAY.
170
5700d2cc 171 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 172
d355bd8a 173 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
174
175 * m/alpha.h: Don't declare xmalloc, xrealloc.
176
0af4f205
DL
177 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
178
179 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
180
181 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
182
183 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
184 HAVE_GETWD.
185
074b6efe
DL
186 * keyboard.h (poll_for_input_1): Declare.
187
188 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
189
190 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
191
192 * doprnt.c: Don't declare xmalloc, xrealloc.
193
194 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
195 (getenv, ctime, getwd): Removed.
196 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
197
198 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
199 x_set_tool_bar_lines.
200
201 * config.in: Add HAVE_GETWD. Move some definitions above
202 machine/system includes.
203
68a5e97b
KH
2042000-06-20 Kenichi Handa <handa@etl.go.jp>
205
95417e1e
KH
206 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
207
68a5e97b
KH
208 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
209 contain information about ENCODING.
210
211 * fontset.c (FONTSET_ASCII): Use the first element of char table
212 for an ASCII font, not defalt slot.
213 (fontset_ref_via_base): If FONTSET doesn't contain information for
214 C, try the default fontset.
215 (make_fontset): Don't copy the default fontset.
216 (fontset_font_pattern): Likewise.
217 (accumulate_font_info): If ELT is nil, use the corresponding
218 element in the default fontset.
219
3b4fa1b2
DL
2202000-06-19 Dave Love <fx@gnu.org>
221
943e731c
DL
222 * syntax.c (Fparse_partial_sexp): Doc fix.
223
224 * regex.h: Test PROTOTYPES as well as __STDC__.
225
3b4fa1b2
DL
226 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
227 errno, strerror. Put text after #endif in comment.
228
229 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
230 pcc).
231
232 * xterm.c (x_frame_of_widget): Likewise.
233
cdf0357b
GM
2342000-06-19 Gerd Moellmann <gerd@gnu.org>
235
236 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
237 to Vfundamental_mode_abbrev_table.
238
239 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
240 bogus objects are marked. This slows down GC by ~80 percent, but
241 it might be worth trying when debugging GC-related problems.
242 This feature requires conservative stack marking to be enabled.
243
244 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
245 returns XLookupChars, reset `modifiers' to zero.
246
998e9f8c
DL
2472000-06-19 Dave Love <fx@gnu.org>
248
249 * mktime.c: Unprotoized.
250
d1504184
GM
2512000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
252
253 * data.c (set_internal): If variable is frame-local,
254 store the new value immediately into the frame parameter alist.
255
140c4ac6
KR
2562000-06-19 Ken Raeburn <raeburn@gnu.org>
257
14358466
KR
258 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
259 in the custom handler pointer.
260
140c4ac6
KR
261 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
262 value, or checks for CHAR_META can fail when Lisp_Object is a
263 union type.
264 * keymap.c (get_keyelt): Likewise.
265
10d7bf84
KH
2662000-06-19 Kenichi Handa <handa@etl.go.jp>
267
268 * ccl.h (struct ccl_program): New member eol_type.
269 (struct ccl_spec): New member cr_carryover.
270
271 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
272 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
273
274 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
275 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
276 (decode_eol_post_ccl): New function.
277 (decode_coding): Don't detect EOL format here for CCL based coding
278 systems.
279 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
280 decode_eol_post_ccl after running the CCL program.
281 (code_convert_region): Don't detect EOL format here for CCL based
282 coding systems.
283 (decode_coding_string): Likewise.
284
52e386c2
KR
2852000-06-18 Ken Raeburn <raeburn@gnu.org>
286
287 * charset.c (update_charset_table): Use XINT on "iso_final_char"
288 when treating it as an integer.
289
290 * coding.h (encode_coding_string): Declare.
291
292 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
293 it as an integer.
294
295 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
296 "xkeymap" to avoid shadowing the "enum map_type" value that needs
297 to be passed to get_local_map.
298
299 * sound.c (Fplay_sound): Don't call make_number on
300 Frun_hook_with_args count argument.
301
302 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
303 for lisp objects in X event structure data field, when lisp
304 objects are represented with unions.
305 (x_scroll_bar_to_input_event): Ditto.
306
b357b9d4
KR
3072000-06-16 Ken Raeburn <raeburn@gnu.org>
308
309 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
310 termination of string. Fix sense of test whether
311 Vline_number_display_limit is an integer.
b357b9d4 312
a871441d
GM
3132000-06-16 Gerd Moellmann <gerd@gnu.org>
314
a9021acd
GM
315 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
316 only if HAVE_X_WINDOWS.
317
6344985d
GM
318 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
319 of titles.
320
427ec082 321 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
322 out of bounds.
323
228b083e
EZ
3242000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
325
326 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
327 of its headers.
328
c25b53a2
KH
3292000-06-15 Kenichi Handa <handa@etl.go.jp>
330
331 * coding.c (decode_coding_emacs_mule): Always set src_base at the
332 start of the while loop.
333
a6981b11
GM
3342000-06-15 Gerd Moellmann <gerd@gnu.org>
335
e9924e52
GM
336 * atimer.c (alarm_signal_handler): Add forward declaration.
337
a6981b11
GM
338 * data.c (set_internal): Remove debug code.
339
25fa6deb
GM
3402000-06-14 Gerd Moellmann <gerd@gnu.org>
341
dce6b995
GM
342 * Makefile.in (bootstrap-temacs): Add `-I../src'.
343
9f817ea4
GM
344 * unexec.c (toplevel) [COFF]: Include coff.h.
345
346 * s/lynxos.h: New file.
347
348 * keymap.c (Fsingle_key_description): Enclose function key and
349 event symbol names in angle brackets.
350
8a4e3c0c
GM
351 * xdisp.c (setup_echo_area_for_printing): Call
352 message_log_maybe_newline if message_buf_print is not set.
353
354 * print.c (printchar, strout): Don't check message_buf_print
427ec082 355 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
356 function does something useful even when message_buf_print is
357 already set.
358
25fa6deb
GM
359 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
360 variables.
361 (ensure_echo_area_buffers): Initialize echo buffer's
362 truncate lines setting to nil.
363 (with_echo_area_buffer): Don't set the echo buffer's truncate
364 lines setting here.
8a4e3c0c 365 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
366 of message_truncate_lines.
367 (resize_mini_window): Handle case that lines are truncated.
368 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
369 message-truncate-lines.
370
371 * keyboard.c (read_char): Bind message-truncate-lines to t
372 while displaying a help-echo.
373
374 * lisp.h (Qmessage_truncate_lines): External declaration.
375
163dcff3
GM
3762000-06-13 Gerd Moellmann <gerd@gnu.org>
377
1681ead6
GM
378 * xdisp.c (Vline_number_display_limit): Renamed from
379 line_number_display_limit.
380 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
381 Extend documentation string. Initialize
382 Vline_number_display_limit to nil meaning no limit.
383 (decode_mode_spec): Use Vline_number_display_limit with its new
384 meaning.
385
163dcff3
GM
386 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
387
3882000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
389
390 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 391
163dcff3
GM
392 * xfns.c (x_set_frame_parameters): Comment fix.
393
394 * frame.c (store_frame_param): Call swap_in_global_binding if the
395 variable's current binding was chosen based on this frame.
396
397 * data.c (swap_in_global_binding): New function.
398
a704139d
EZ
3992000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
400
401 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
402 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
403
9b6610db
EZ
4042000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
405
406 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
407
c68833d2
JR
4082000-06-12 Jason Rumney <jasonr@gnu.org>
409
410 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
411
412 * w32.h (EMACS_W32_H): Renamed from _NT_H_
413
414 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
415
416 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
417
ed1056b3
GM
4182000-06-12 Gerd Moellmann <gerd@gnu.org>
419
420 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
421 (syms_of_xfaces): Defsubr Sdump_colors.
422 (x_free_colors): Don't treat b&w specially on default visual.
423 (x_free_dpy_colors): New function.
424 (free_face_colors): Don't check visual class; it's done
425 in x_free_colors.
426
427 * xterm.c (x_frame_of_widget): New function.
428 (x_alloc_nearest_color_for_widget): Use it.
429 (x_copy_dpy_color): New function.
430 (x_destroy_window): Free various colors.
431
5050a2ef
KH
4322000-06-12 Kenichi Handa <handa@etl.go.jp>
433
434 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
435
436 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
437
438 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
439
440 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
441
442 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
443
fb1b041d
DL
4442000-06-11 Dave Love <fx@gnu.org>
445
446 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
447
ff96b5f4
EZ
4482000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
449
450 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
451
db8eeecd
GM
4522000-06-11 Gerd Moellmann <gerd@gnu.org>
453
ed1056b3 454 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
455 to `XEvent *'.
456
49b71c5f
KH
4572000-06-10 Kenichi Handa <handa@etl.go.jp>
458
c479bd55
KH
459 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
460 (regex_compile): Fix the code for handling the case of single byte
461 char and multibyte char being mixed in a range within [...].
462
ff6a65c2
KH
463 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
464 and dst_multibyte members of coding.
465
49b71c5f
KH
466 * charset.c (update_charset_table): Update the table
467 bytes_by_char_head.
468 (init_charset_once): Initialize elements of bytes_by_char_head to
469 1 except for leading codes for private charases.
470
471 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
472 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
473 sequence.
474
9e80b57d
KR
4752000-06-09 Ken Raeburn <raeburn@gnu.org>
476
477 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
478 access the data it doesn't point to.
479
f83fe4b4
GM
4802000-06-08 Gerd Moellmann <gerd@gnu.org>
481
482 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 483 will be translated to a switch-frame event when reading the
f83fe4b4
GM
484 event queue. This is necessary because Emacs otherwise won't
485 perform a switch-frame to a new frame until some other event, for
486 example a keystroke event, forces it to do so. This has various
487 effects, one visible being that the cursor of a frame created with
488 C-x 5 2 or switched to with a window manager key binding like
489 A-TAB stays hollow because selected_window isn't on the newly
490 focused frame until the switch-frame is performed.
491
492 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
493 generating a switch-frame event if necessary.
494
495 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
496
497 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
498 it's an integer.
499
0890801b
KH
5002000-06-08 Kenichi Handa <handa@etl.go.jp>
501
502 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
503 charset.
504
173cbca8
GM
5052000-06-07 Gerd Moellmann <gerd@gnu.org>
506
3091c2a6
GM
507 * window.c (displayed_window_lines): Take empty lines at
508 the bottom of a window into account.
427ec082 509
f38952fe
GM
510 * window.c (displayed_window_lines): New function.
511 (Fmove_to_window_line): Use displayed_window_lines to determine
512 the number of lines to move, instead of using the window's height.
513
514 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
515 to stop reading, even if the form read sets point to a different
516 value when evaluated.
517
427ec082 518 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
519 put the cursor.
520
6ba6c818
KH
5212000-06-07 Kenichi Handa <handa@etl.go.jp>
522
523 * fileio.c (e_write): Free composition data if stored in
524 coding->cmp_data.
525
5f1aea9a
GM
5262000-06-06 Gerd Moellmann <gerd@gnu.org>
527
666852af
GM
528 * xdisp.c (display_line): Set row's and iterator's
529 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
530 Set cursor even if row ends in the middle of a character.
531 (dump_glyph_row): Print values of new flags.
532 (redisplay_window) <cursor movement in unchanged window>: When
533 point has been moved forward, and PT is at the end of the cursor
534 row, don't place the cursor in the next row if the cursor row ends
535 in the middle of a character or at ZV.
536
537 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
538 (struct glyph_row): Add starts_in_middle_of_char_p and
539 ends_in_middle_of_char_p.
540 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
541 ends_in_middle_of_char_p flag.
542 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
543
d13f3e2e
GM
544 * term.c (append_glyph): Revert change of 2000-06-06.
545
546 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
547 padding glyph not fitting on line as whole character not
548 fitting on line.
549
5f1aea9a
GM
550 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
551 this isn't true for images with `:ascent 100'.
552
10cda9b0
KH
5532000-06-06 Kenichi Handa <handa@etl.go.jp>
554
ed00559d
KH
555 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
556 as modified if it is originally unmodified.
557
10cda9b0
KH
558 * term.c (encode_terminal_code): Change the way to check if
559 terminal coding does any conversion.
560 (append_glyph): Set glyph->pixel_width correctly.
561
562 * xdisp.c (display_line): While checking line continuation, pay
563 attention to a padding glyph.
564
1969fae2
GM
5652000-06-05 Gerd Moellmann <gerd@gnu.org>
566
567 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
568
162ccef4
DL
5692000-06-05 Dave Love <fx@gnu.org>
570
f19f32dd
DL
571 * xdisp.c: Include fontset.h.
572
573 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
574
575 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
576
577 * dispnew.c: Conditionally include term.h.
578
579 * coding.h: Declare code_convert_string_norecord.
580
581 * frame.h (struct frame): Use volatile unconditionally.
582
583 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
584
585 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
586
587 * systime.h: Protect against multiple inclusion.
588 (timezone) [USG5_4]: Define as time_t.
589
590 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
591 (Foptimize_char_table, make_temp_name): Declare.
592
593 * Makefile.in (xdisp.o): Depend on fontset.h.
594
595 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
596
597 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
598 (Foptimize_char_table, make_temp_name): Declare.
599
427ec082 600 * s/irix4-0.h:
162ccef4
DL
601 * s/irix5-0.h:
602 * s/netbsd.h: Don't define autoconfiscated MATHERR.
603
2082fe81
DL
6042000-06-02 Dave Love <fx@gnu.org>
605
606 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
607
dcf671d2
GM
6082000-06-02 Gerd Moellmann <gerd@gnu.org>
609
610 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 611 result face, set flags in that face indicating that colors may not
dcf671d2
GM
612 be freed.
613
614 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
615 glyph, use the ASCII NUL character to determine the face.
616
d42122a3
DL
6172000-06-02 Dave Love <fx@gnu.org>
618
619 * sysdep.c: Conditionally include stdlib.h, unistd.h.
620 (VFORK_RETURN_TYPE): Remove.
427ec082 621
d42122a3
DL
622 * config.in: Add NO_MATHERR.
623
dd432f16
DL
6242000-06-01 Dave Love <fx@gnu.org>
625
90aa4ea8
DL
626 * cmds.c (internal_self_insert): Don't check
627 Vbefore_change_function, Vafter_change_function.
628
629 * insdel.c (signal_before_change, signal_after_change): Likewise.
630
631 * buffer.c (Vbefore_change_function, Vafter_change_function):
632 Variables and their initializations deleted.
633
2330c9d4
DL
634 * callint.c (Fcall_interactively): Doc fix.
635
dd432f16
DL
636 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
637
bf9e8804
DL
6382000-05-31 Dave Love <fx@gnu.org>
639
640 * textprop.c: Revert last change -- duplicated.
641
3694b4ab
GM
6422000-05-31 Gerd Moellmann <gerd@gnu.org>
643
644 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
645 in #if 0.
646
647 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
648
f14156cd
JR
6492000-05-31 Jason Rumney <jasonr@gnu.org>
650
8119aab8
JR
651 * search.c (Fre_search_forward, Fre_search_backward)
652 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
653
f14156cd
JR
654 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
655
4aab9be3
JR
6562000-05-30 Jason Rumney <jasonr@gnu.org>
657
658 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
659 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
660
661 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
662 member.
663
664 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
665 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
666 expand a nil default_filename.
667
668 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
669 pointer to glyph_to_pixel_coords, not a frame.
670
671 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
672 coding.h to dependencies.
673
674 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
675
676 * w32console.c (glyph_to_pixel_coords): Change first parameter to
677 window pointer to be consistent with w32term.c and xterm.c.
678
679 * w32fns.c: Format and doc changes to bring closer to xfns.c.
680 (VIETNAMESE_CHARSET): Define if not defined in system headers.
681 (Qline_spacing, Qcenter): New variables.
682 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
683 (x_set_line_spacing): New function.
684 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
685 macros.
686 (x_specified_cursor_type): New function.
687 (x_set_cursor_type): Use it.
688 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
689 and icon strings.
690 (validate_x_resource_name, x_get_resource_string): Measure lengths
691 of external strings in bytes.
692 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
693 GetTextExtentPoint32 with NULL title.
694 (Fx_create_frame): Initialize Qline_spacing.
695 (w32_load_system_font): Initialize font->double_byte_p.
696 (x_to_w32_charset): Use Vw32_charset_info_alist.
697 (Image, busy cursor, tooltip functions): Merged changes from
698 xfns.c. Not yet functional on Windows.
699
700 * w32gui.h (W32FontStruct): Add double_byte_p member.
701
702 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
703 (emacs_button_translation): Use it.
704 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
705 in `mask' to be set.
706
707 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
708 menu strings.
709
710 * w32term.c: Format and doc changes to bring closer to xterm.c.
711 (w32_char_font_type): New enum.
712 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
713 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
714 (w32_encode_char): New function.
715 (x_encode_char): Removed.
716 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
717 x_encode_char and w32_font_is_double_byte.
718 (x_produce_image_glyph): Use image_ascent.
719 (x_produce_glyphs): Use new version of w32_per_char_metric and
720 handle NULL return value. Allow extra line spacing.
721 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
722 (w32_get_glyph_overhangs): Remove unicode_p param. Use
723 w32_font_type member of glyph instead.
724 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
725 (fast_find_position): Make sure not to consider rows not visible
726 in the window.
727 (w32_read_socket) [WM_MENUSELECT]: Cannot call
728 w32_menu_display_help with input blocked, as it can abort.
729 (x_display_and_set_cursor): Choose cursor depending
730 on buffer-local value of cursor_type.
731 (x_draw_bar_cursor): Add parameter WIDTH.
732
733 * w32term.h (CP_DEFAULT): Define.
734 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
735
10fc3187
GM
7362000-05-30 Gerd Moellmann <gerd@gnu.org>
737
738 * search.c (Fre_search_forward, Fre_search_backward)
739 (Fposix_search_backward, Fposix_search_forward): Doc fix.
740
d0555360
KH
7412000-05-30 Kenichi Handa <handa@etl.go.jp>
742
743 * coding.c (detect_coding_iso2022): Fix code for checking
744 CODING_CATEGORY_MASK_ISO_8_2.
745
f1ad044f
SM
7462000-05-29 Stefan Monnier <monnier@cs.yale.edu>
747
748 * regex.c (PREFETCH_NOLIMIT): New function.
749 (re_match_2_internal): Use it and adjust the end_match_2 logic.
750
84ec3b4b
GM
7512000-05-29 Gerd Moellmann <gerd@gnu.org>
752
66254a13
GM
753 * syntax.c (find_defun_start): Move test for
754 open_paren_in_column_0_is_defun_start outside of the loop.
755
49e70dec
GM
756 * xdisp.c (redisplay_window): Really switch buffers when
757 displaying mode lines, and temporarily set selected_frame to the
758 frame of the window that's redisplayed.
759
84ec3b4b
GM
760 * xfaces.c (free_realized_faces): Block/unblock input.
761 (free_realized_multibyte_face): Ditto.
762
869a3a14
DL
7632000-05-29 Dave Love <fx@gnu.org>
764
765 * textprop.c (Qkeymap): New variable.
766 (syms_of_textprop): Intern it.
767
768 * keymap.c: Include intervals.h.
769 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
770
771 * Makefile.in (keymap.o): Depend on intervals.h.
772
773 * keyboard.c (menu_bar_items, tool_bar_items)
774 (Fexecute_extended_command): Deal with `keymap' property.
775 (read_key_sequence): Track map from `keymap' property as well as
776 `local_map'.
777
778 * intervals.c (get_local_map): Extra arg to allow looking for
779 `keymap' too.
780
781 * intervals.h (map_property): New enum.
782 (get_local_map): Extra arg using it.
783 (Qkeymap): Declare.
784
84ec3b4b 785 * lisp.h (get_local_map): Don't declare here.
869a3a14 786
89d0c844
KH
7872000-05-29 Kenichi Handa <handa@etl.go.jp>
788
789 * Makefile.in (callproc.o): Depend on composite.h.
790
791 * callproc.c: Include composite.h.
792 (Fcall_process): Handle composition correctly.
793
794 * coding.h (coding_allocate_composition_data): Extern it.
795 (coding_restore_composition): Likewise.
796
797 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
798 yet allocated, finish decoding with result
799 CODING_FINISH_INSUFFICIENT_CMP.
800 (coding_allocate_composition_data): Make it non-static.
801 (coding_restore_composition): Likewise.
802
797a084a
EZ
8032000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
804
805 * charset.c (syms_of_charset): Revert last change.
806
cf872af5
EZ
8072000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
808
809 * term.c (produce_glyphs): Treat characters from the eight-bit-*
810 charsets as unibyte, with 1-column screen width. Sent by Kenichi
811 Handa.
812
5b1ae051
EZ
8132000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
814
815 * charset.c (syms_of_charset): Set width of character sets
816 eight-bit-control and eight-bit-graphic to 1 column.
817
34ec9ebe
GM
8182000-05-26 Gerd Moellmann <gerd@gnu.org>
819
820 * config.in (HAVE_SPEED_T): New define.
821
822 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
823 `extern speed_t'.
824
dd854dc2
DL
8252000-05-26 Dave Love <fx@gnu.org>
826
827 * coding.c (shrink_decoding_region): Initialize eol_conversion.
828
829 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
830 (Fsubr_arity): New function.
831 (syms_of_data): Install them.
832
ba9f8f95
KH
8332000-05-26 Kenichi Handa <handa@etl.go.jp>
834
0f3e0672
KH
835 * charset.c (init_charset_once): Set the table bytes_by_char_head
836 correctly.
837
cebefb44
KH
838 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
839 the default fontset to what Emacs uses by default.
0f3e0672
KH
840 (check_registry_encoding): This function deleted.
841 (Fset_fontset_font): Remove the adhoc condition for the default
842 fontset. Allow cons in FONTNAME.
cebefb44 843
0f3e0672
KH
844 * fns.c (map_char_table): Ignore char-table entries for
845 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 846
7a18af49
KR
8472000-05-25 Ken Raeburn <raeburn@gnu.org>
848
849 * emacs.c (main): Initialize keyboard syms before initializing
850 window code, so face names are available.
851
d2af47df
SM
8522000-05-25 Stefan Monnier <monnier@cs.yale.edu>
853
854 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
855 of an anchor at the beginning of a shy-group.
856
fc6a6a4e
GM
8572000-05-25 Gerd Moellmann <gerd@gnu.org>
858
859 * xdisp.c (handle_invisible_prop): Don't try to skip over
860 invisible text if end of text is already reached.
861
005f0d35
DL
8622000-05-25 Dave Love <fx@gnu.org>
863
02513cdd
DL
864 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
865
005f0d35
DL
866 * coding.c (encode_eol): Add null statement after label.
867
89f6ca4e
EZ
8682000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
869
870 * w16select.c (Fw16_set_clipboard_data): Fix the change from
871 2000-05-20.
872
a4e1759e
KH
8732000-05-25 Kenichi Handa <handa@etl.go.jp>
874
875 * ccl.c (ccl_driver): Fix previous change.
876
eacfd7fe
KH
8772000-05-25 Kenichi Handa <handa@etl.go.jp>
878
46ab33a9
KH
879 * coding.c (run_pre_post_conversion_on_str): Set point to the
880 beginning of buffer before calling coding->post_read_conversion.
881 (decode_coding_string): Give correct args to
882 run_pre_post_conversion_on_str.
883 (encode_coding_string): Likewise.
884
eacfd7fe
KH
885 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
886 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
887 eight-bit-graphic correctly.
888
f8569325
DL
8892000-05-24 Kenichi HANDA <handa@etl.go.jp>
890
891 * fileio.c (Finsert_file_contents): Even if a file is not found,
892 execute codes for setting up coding system. Call
893 after-insert-file-functions unconditionally.
894
04545643
GM
8952000-05-24 Gerd Moellmann <gerd@gnu.org>
896
897 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
898 BSD_PGRPS are not defined.
899
747d90ea
KH
9002000-05-24 Kenichi Handa <handa@etl.go.jp>
901
902 * charset.c (update_charset_table): Accept nil in LONG_NAME and
903 DESCRIPTION.
904 (syms_of_charset): Avoid building same strings.
905
716e3b88
GM
9062000-05-23 Gerd Moellmann <gerd@gnu.org>
907
908 * lread.c (Fload): Add a comment about the meaning of
909 Vuser_init_file being t.
910
911 * puresize.h (BASE_PURESIZE): Increase to 675000.
912
913 * s/gnu-linux.h (setpgrp): Don't define it here because this
914 prevents compilation on GNU/Linux systems with glib 2.2.
915
916 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
917 as setpgid.
427ec082 918
9aeb39fa
EZ
9192000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
920
921 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
922 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
923 version.
924 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
925
29ced61b
KH
9262000-05-23 Kenichi Handa <handa@etl.go.jp>
927
0574a2ed
KH
928 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
929 unconditionally.
930
3d80f24d
KH
931 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
932
933 * term.c (encode_terminal_code): Set coding->src_multibyte
934 properly.
935
29ced61b
KH
936 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
937
d7e00792
KH
9382000-05-22 Kenichi Handa <handa@etl.go.jp>
939
c9d80d38
KH
940 * keyboard.c (read_char): Allow character codes 128..255 to be
941 handled by input-method-function.
942
d7e00792
KH
943 * insdel.c (adjust_markers_for_replace): Fix previous change.
944 (adjust_after_replace): If PREV_TEXT is nil, call
945 adjust_markers_for_insert, not adjust_markers_for_replace.
946
087121cc 9472000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 948
087121cc
GM
949 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
950 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
951 [HAVE_GRANDPT]: Define.
952 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
953
954 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
955 like SYSV_PTYS.
956
957 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
958
959 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
960
c9671f81
KH
9612000-05-20 Kenichi Handa <handa@etl.go.jp>
962
963 The following changes are to handle 8-bit characters in a
964 multibyte buffer/string without facing with byte combining
965 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
966 eight-bit-graphic (for 0xA0..0xFF) are introduced.
967
968 * Makefile.in (fns.o): Depend on charset.h.
969
970 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
971 convert it to unibyte.
972 (make_string): Use parse_str_as_multibyte, not chars_in_text.
973
974 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
975 apparent char boundary.
976 (Fset_buffer_multibyte): Convert 8-bit characters in the range
977 0x80..0x9F to/from multibyte form.
978
979 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
980 to unibyte.
981
982 * callproc.c (Fcall_process): Always encode an argument string if
983 it is multibyte. Setup src_multibyte and dst_multibyte members of
984 process_coding properly.
ce75fd23 985
c9671f81
KH
986 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
987 SPLIT_NON_ASCII_CHAR.
988
989 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
990 as is.
991 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
992
993 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
994 variables.
995 (SPLIT_CHARACTER_SEQ): This macro deleted.
996 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
997 valid.
998 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
999 and eight-bit-graphic.
1000 (char_to_string): Likewise. Signal an error for too large
1001 character code.
1002 (char_printable_p): Return 0 for 8-bit characters.
1003 (update_charset_table): Update iso_charset_table only when a final
1004 character is non-negative.
1005 (find_charset_in_text): Renamed from find_charset_in_str.
1006 Arguments and return value changed. Callers changed.
1007 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1008 be -1 if CHARSET is used only internally.
1009 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1010 eight-bit-graphic.
1011 (Fcharset_after): Simplified.
1012 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1013 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1014 (multibyte_chars_in_text): Simplified by assuming there's no
1015 invalid multibyte sequence.
1016 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1017 str_as_unibyte): New functions.
1018 (Fstring): Simpified by assuming that byte combining never
1019 happens.
1020 (init_charset_once): Initialization for
1021 LEADING_CODE_8_BIT_CONTROL.
1022 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1023 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1024 eight-bit-control and eight-bit-graphic.
1025
1026 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1027 CHARSET_8_BIT_GRAPHIC): New macros.
1028 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1029 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1030 (CHARSET_REVERSE_CHARSET): Likewise.
1031 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1032 eight-bit-graphic.
1033 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1034 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1035 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1036 encounter an invalid multibyte sequence.
1037 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1038 sequence is always valid.
1039 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1040 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1041 macros.
1042 (CHAR_STRING): For 8-bit characters, call char_to_string.
1043 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1044 multibyte sequence is always valid.
1045 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1046 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1047 str_as_unibyte): Extern them.
1048 (BCOPY_SHORT): Fix a bug.
1049 (CHAR_LEN): This macro deleted. Callers changed to use
1050 CHAR_BYTES.
1051 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1052 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1053 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1054
bd4bde7f 1055 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1056 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1057 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1058 EMIT_BYTES): New macros.
1059 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1060 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1061 macros deleted.
1062 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1063 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1064 check the validity of multibyte sequence.
1065 (decode_coding_emacs_mule): New function.
1066 (encode_coding_emacs_mule): New macro.
1067 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1068 the source.
1069 (DECODE_ISO_CHARACTER): Just return a character code.
1070 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1071 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1072 EMIT_CHAR to produced decoded characters. Exit the loop only by
1073 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1074 block here.
1075 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1076 only position codes for an invalid character.
1077 (encode_designation_at_bol): Return new destination pointer. 5th
1078 arg DSTP is changed to DST.
1079 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1080 from the source by ONE_MORE_CHAR. Don't handle the case of last
1081 block here.
1082 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1083 macros deleted.
1084 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1085 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1086 TWO_MORE_BYTES to fetch a byte from the source.
1087 (encode_eol): Pay attention to coding->src_multibyte.
1088 (detect_coding, detect_eol): Preserve members src_multibyte and
1089 dst_multibyte.
1090 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1091 (encoding_buffer_size): Set magnification to 3 for all coding
1092 systems that require encoding.
1093 (ccl_coding_driver): For decoding, be sure that the result is
1094 valid multibyte sequence.
1095 (decode_coding): Initialize coding->errors and coding->result.
1096 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1097 and raw-text, always call decode_eol. Handle the case of last
1098 block here. If not coding->dst_multibyte, convert the resulting
1099 sequence to unibyte.
1100 (encode_coding): Initialize coding->errors and coding->result.
1101 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1102 and raw-text, always call encode_eol. Handle the case of last
1103 block here.
1104 (shrink_decoding_region, shrink_encoding_region): Detect cases
1105 that we can't skip data more rigidly.
1106 (code_convert_region): Setup src_multibyte and dst_multibyte
1107 members of coding. For decoding, if the buffer is multibyte,
1108 convert the source sequence to unibyte in advance. For encoding,
1109 if the buffer is multibyte, convert the resulting sequence to
1110 multibyte afterward.
1111 (run_pre_post_conversion_on_str): New function.
1112 (code_convert_string): Deleted and divided into the following two.
1113 (decode_coding_string, encode_coding_string): New functions.
1114 (code_convert_string1, code_convert_string_norecord): Call one of
1115 above.
1116 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1117 MAKE_NON_ASCII_CHAR.
1118 (Fset_terminal_coding_system_internal,
1119 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1120 and dst_multibyte members.
1121 (init_coding_once): Initialize iso_code_class with new enum
1122 ISO_control_0 and ISO_control_1.
1123
1124 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1125 devided into ISO_control_0 and ISO_control_1.
1126 (struct coding_system): New members src_multibyte, dst_multibyte,
1127 errors, and result. Delete member fake_multibyte.
1128 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1129 nonzero.
1130 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1131 nonzero.
1132
1133 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1134 (Faset): Likewise.
1135
1136 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1137 multibyte form.
1138 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1139 combining occurs.
1140 (Ftranspose_region): Delete codes for handling byte combining.
1141
1142 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1143 dst_multibyte members of coding. On handling REPLACE on unibyte
1144 buffer, convert the result of decode_coding to unibyte. On
1145 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1146 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1147 multibyteness of the source (buffer or string).
1148
1149 * fns.c (concat): Handle 8-bit characters correctly.
1150 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1151 unibyte in the result.
1152 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1153 valid multibyte form in the result.
1154 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1155 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1156 return -1, signal an error.
1157 (base64_encode_1): New arg MULTIBYTE. Get each character by
1158 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1159 character is found, return -1.
1160 (Fbase64_decode_region): Delete codes for handling byte-combining.
1161 Treat each decoded byte as a unibyte character.
1162 (Fbase64_decode_string): Return unibyte string.
1163 (Fcompare_strings, concat, string_byte_to_char): Use
1164 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1165 FETCH_STRING_CHAR_ADVANCE.
1166 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1167 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1168
1169 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1170 SPLIT_NON_ASCII_CHAR.
1171 (fontset_ref_via_base, fontset_set): Likewise
1172
1173 * insdel.c (adjust_markers_for_record_delete): Deleted.
1174 (adjust_markers_for_insert): Argument changed. Caller changed.
1175 (adjust_markers_for_replace): Likewise.
1176 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1177 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1178 (copy_text): Delete unused local varialbe c_save. For converting
1179 to multibyte, be sure to make all 8-bit characters in valid
1180 multibyte form.
1181 (count_size_as_multibyte): Handle 8-bit characters correctly.
1182 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1183 adjust_after_replace, replace_range, del_range_2)
1184 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1185 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1186 adjust_after_replace, replace_range, del_range_2) Delete codes for
1187 handling byte combining.
1188 (adjust_before_replace): Deleted.
427ec082 1189
c9671f81
KH
1190 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1191 SPLIT_NON_ASCII_CHAR.
1192 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1193 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1194 unconditionally.
1195 (Fkey_description): Likewise.
1196
1197 * lread.c (read1): On reading multibyte string, be sure to make
1198 all 8-bit chararacters in valid multibyte form.
1199 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1200
1201 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1202 unconditionally.
1203
1204 * process.c (Fstart_process): GCPRO current_dir before calling
1205 Ffind_operation_coding_system. Encode arguments here.
1206 (create_process): Don't encode arguments here. Setup
1207 src_multibyte and dst_multibyte members of struct coding.
1208 (read_process_output): Setup src_multibyte and dst_multibyte
1209 members of struct coding. If the output is to multibyte buffer,
1210 always decode the output of the process. Adjust the
1211 representation of 8-bit characters to the multibyteness of the
1212 output.
1213 (send_process): Setup coding->src_multibyte according to the
1214 multibyteness of the source.
1215
1216 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1217 unconditionally.
1218 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1219 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1220
1221 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1222 CHAR_LEN.
1223
1224 * w16select.c (Fw16_set_clipboard_data): Setup members
1225 src_multibyte and dst_multibyte of coding. Adjusted for the
1226 change for find_charset_in_str.
1227 (Fw16_get_clipboard_data): Likewise.
1228
1229 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1230 dst_multibyte of coding.
1231 (x_to_w32_font): Likewise.
1232
1233 * w32select.c (Fw32_set_clipboard_data): Setup members
1234 src_multibyte and dst_multibyte of coding. Adjusted for the
1235 change for find_charset_in_str.
1236 (Fw32_get_clipboard_data): Likewise.
1237
1238 * xdisp.c (get_next_display_element): Handle 8-bit characters
1239 correctly.
1240 (next_element_from_display_vector): Use CHAR_BYTES instead of
1241 CHAR_LEN.
1242 (disp_char_vector): Use SPLIT_CHAR instead of
1243 SPLIT_NON_ASCII_CHAR.
1244
1245 * xselect.c (selection_data_to_lisp_data): Setup members
1246 src_multibyte and dst_multibyte of coding. Adjusted for the
1247 change for find_charset_in_str.
1248 (lisp_data_to_selection_data): Likewise.
1249
5f64c9e0
GM
12502000-05-19 Gerd Moellmann <gerd@gnu.org>
1251
2b63d473
GM
1252 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1253 buffer.
1254
5f64c9e0
GM
1255 * dispextern.h (Vimage_types): Add extern declaration.
1256
1257 * xdisp.c (Vimage_types): Moved here from xfns.c.
1258 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1259
1260 * xfns.c (Vimages_types): Moved to xdisp.c.
1261 (syms_of_xfns): Move `image-types' to xdisp.c.
1262
1263 * w32fns.c (Vimage_types): Removed.
1264 (syms_of_w32fns): Remove `image-types'.
1265
813086ea
KH
12662000-05-18 Kenichi Handa <handa@etl.go.jp>
1267
1268 * fns.c (map_char_table): Pay attention to character number of
1269 charset. Check the validity of charset at the first level. For
1270 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1271 the default value.
1272
1273 * fontset.c: Include "buffer.h".
1274 (fs_load_font): If the face has fontset, record the face ID in
1275 that fontset.
1276 (Finternal_char_font): New function.
1277 (accumulate_font_info): New function.
1278 (Ffontset_info): Rewritten for the new fontset implementation.
1279 (syms_of_fontset): Register Vdefault_fontset in the first element
1280 of Vfontset_table. Include Vdefault_fontset in
1281 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1282 function.
1283
bdaebbf0
DL
12842000-05-16 Dave Love <fx@gnu.org>
1285
1286 * m/iris5d.h: Deleted -- unused.
1287
cb613bb8
GM
12882000-05-16 Gerd Moellmann <gerd@gnu.org>
1289
b15f3b77
GM
1290 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1291 `invalid' instead of `illegal'.
1292
1293 * indent.c (Fmove_to_column): When ending within a tab, insert
1294 spaces first so that markers at the end of the tab get adjusted.
1295
835c1b36
GM
1296 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1297 buffer list that wasn't selected in that frame.
1298
cb613bb8
GM
1299 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1300 is needed on mescaline, use a 2 char prefix, and call
1301 make_temp_name with second arg non-zero.
1302
1303 * fileio.c (make_temp_name): New function, extracted from
1304 Fmake_temp_name.
1305 (Fmake_temp_name): Use it.
1306
f685bea9
EZ
13072000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1308
1309 * window.c (coordinates_in_window): Subtract 1 when computing
1310 right_x.
1311
a1b8d58b
GM
13122000-05-15 Gerd Moellmann <gerd@gnu.org>
1313
1314 * Makefile.in (lisp): Add env.elc.
1315
1316 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1317
a265079f
GM
13182000-05-12 Gerd Moellmann <gerd@gnu.org>
1319
1320 * search.c (Freplace_match): Handle case of `\N' in the
1321 replacement when there's no group N.
1322
da4496b6
GM
13232000-05-11 Gerd Moellmann <gerd@gnu.org>
1324
0ace421a
GM
1325 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1326 of the message to message_dolog.
1327
1172eb8d
GM
1328 * keyboard.c (read_char): Don't clear current message for help
1329 events; let the code handling help events handle this. Change
1330 code detecting help events that should be ignored.
1331
da4496b6
GM
1332 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1333 we're interating over a string.
1334
0623e40f
DL
13352000-05-09 Dave Love <fx@gnu.org>
1336
1337 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1338 that offset before writing. Move gcpro region past call of
1339 Ffile_regular_p.
1340
bae2503b
DL
13412000-05-04 Dave Love <fx@gnu.org>
1342
1343 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1344
ec82fb2f
GM
13452000-05-04 Gerd Moellmann <gerd@gnu.org>
1346
1347 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1348 of inserted characters when BUF equals the current buffer, and PT
1349 is in front of or equal to FROM.
1350
cbf18892
GM
13512000-05-03 Gerd Moellmann <gerd@gnu.org>
1352
4ff40dd0
GM
1353 * xdisp.c (handle_single_display_prop): If display property value
1354 is invalid, or something not supported on the frame, restore
1355 iterator's position to what it was initially. Make sure to return
1356 0 for invalid and unsupported property values.
1357
cbf18892
GM
1358 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1359 that x_per_char_metric returns null.
1360
1b0672c3
GM
13612000-05-02 Gerd Moellmann <gerd@gnu.org>
1362
576da55d
GM
1363 * xterm.h (struct face): Add forward declaration.
1364 (struct image): Ditto.
1365 (image_ascent): Add prototype.
1366
1367 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1368 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1369 image_ascent instead of using IMAGE_ASCENT.
1370
1371 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1372 (IMAGE_ASCENT): Removed.
1373
1374 * xfns.c (Qcenter): New variable.
1375 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1376 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1377 (image_ascent): New function.
1378 (lookup_image): Recognize `:ascent center'.
1379 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1380 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1381 (xbm_load): Don't set image's ascent here.
1382 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1383 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1384 check ascent values here.
1385 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1386 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1387 (syms_of_xfns): Initialize Qcenter.
1388
1b0672c3
GM
1389 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1390 to the limits, increase the limits.
1391
0d7811ed
KH
13922000-05-01 Kenichi Handa <handa@etl.go.jp>
1393
1394 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1395 Check Vfont_encoding_alist against the full name of the opened
1396 font.
1397
a943a5ca
GM
13982000-04-28 Gerd Moellmann <gerd@gnu.org>
1399
1400 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1401 taller than the window.
1402
5dba1e29
KH
14032000-04-28 Kenichi Handa <handa@etl.go.jp>
1404
1405 * xfaces.c (realize_x_face): Fix the argument of the second
1406 xassert. BASE_FACE may not be a face for ASCII.
1407
353964e3
GM
14082000-04-27 Gerd Moellmann <gerd@gnu.org>
1409
c76e04a8
GM
1410 * print.c (print_object): Treat print-length < 0 as nil.
1411
1412 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1413
1414 * s/freebsd.h (TERMCAP_OBJ): Removed.
1415 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1416
1417 * lread.c (read1): Don't treat period followed by certain
1418 characters as symbol start.
1419
1420 * xfns.c (slurp_file): New function.
1421 (xbm_image_p): Handle case of in-memory XBM files.
1422 (xbm_scan): Rewritten to work on memory buffers instead of files.
1423 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1424 Work on memory buffers instead of files. If DATA is null test
1425 if buffer looks like an in-memory XBM file.
1426 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1427 memory buffers instead of files.
1428 (xbm_file_p): New function.
1429 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1430
353964e3
GM
1431 * lread.c (end_of_file_error): New function.
1432 (read1): Call it instead of signaling `end-of-file' directly.
1433
427ec082 1434 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1435 with Fprinc instead of Fprin1.
1436
24d744ac
KR
14372000-04-26 Ken Raeburn <raeburn@gnu.org>
1438
1439 * window.c (freeze_window_start): Check that minibuffer scroll
1440 window isn't nil before extracting the window structure pointer
1441 from it.
1442
1443 * undo.c (record_delete): If we hit the end of the undo list, stop
1444 picking elements apart.
1445
7464346d
GM
14462000-04-26 Gerd Moellmann <gerd@gnu.org>
1447
1448 * xdisp.c (display_line): If lines are continued, restore
1449 iterator's ascent/descent information to the values before the
1450 first glyph not fitting on the line.
1451
612839b6
GM
14522000-04-25 Gerd Moellmann <gerd@gnu.org>
1453
1454 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1455 positions in glyph matrix. Don't compute new window end
1456 positions.
1457
1458 * dispnew.c (increment_matrix_positions): Renamed from
1459 increment_glyph_matrix_buffer_positions.
1460 (increment_row_positions): Renamed from
1461 increment_glyph_row_buffer_positions.
1462
1463 * dispextern.h: Change names of renamed functions from dispnew.c
1464 in prototypes.
1465
cc181e95
GM
14662000-04-24 Gerd Moellmann <gerd@gnu.org>
1467
abfcc168
GM
1468 * fileio.c (Fdo_auto_save): Create directories for auto-save
1469 list file if necessary.
1470
cc181e95
GM
1471 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1472 from buffer or frame.
1473 (automatic_hscrolling_p): New variable.
1474 (hscroll_windows): Scroll windows horizontally only if automatic
1475 hscrolling is allowed.
1476 (syms_of_xdisp): New variable `automatic-hscrolling'.
1477
1478 * frame.h (struct frame): Add member extra_line_spacing.
1479
1480 * xfns.c (x_set_line_spacing): New function.
1481 (Fx_create_frame): Set line spacing from resources.
1482 (Qline_spacing): New variable.
1483 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1484
cc181e95
GM
1485 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1486
1487 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1488 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1489 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1490 extra_line_spacing from default value.
1491 (init_buffer_once): Initialize default value of extra_line_spacing.
1492
1493 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1494 and extra3.
1495
1496 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1497 prompt_width. Add extra line spacing.
1498
1499 * term.c (produce_glyphs): Remove reference to struct it's
1500 prompt_width.
1501
1502 * dispextern.h (struct it): Remove member prompt_width, add
1503 extra_line_spacing.
1504
58827478
GM
15052000-04-22 Gerd Moellmann <gerd@gnu.org>
1506
1507 * dispnew.c (update_frame_line): When writing a whole line, make
1508 sure cursor is in the right row afterwards, otherwise a use of
1509 capability `ch' in cmgoto might leave the cursor in the row below.
1510
25a87f42
GM
15112000-04-21 Gerd Moellmann <gerd@gnu.org>
1512
1513 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1514
1515 * keyboard.c (timer_check): Fix typo in comment.
1516
54edf5c2
KH
15172000-04-21 Kenichi Handa <handa@etl.go.jp>
1518
1519 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1520 name change: ch -> character.
1521
3a64eef5
GM
15222000-04-20 Gerd Moellmann <gerd@gnu.org>
1523
1524 * keyboard.c (echo_message_buffer): New variable.
1525 (echo_now): Set echo_message_buffer to the echo area buffer used
1526 to display the echo.
1527 (cancel_echoing): Reset echo_message_buffer to nil.
1528 (read_char): Code rewritten that handles canceling an echo or
1529 echoing a dash, respectively.
1530
1531 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1532 directory doesn't exist.
1533
6142fdcb
DL
15342000-04-19 Dave Love <fx@gnu.org>
1535
1536 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1537 (concat): Don't allow numeric args.
1538 (Fconcat): Doc change.
6142fdcb 1539
ac6b5352
SM
15402000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1541
1542 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1543 instead define end_match(1|2) more carefully.
1544 Use GET_CHAR_BEFORE_2 for `begline'.
1545
cb9215e4
GM
15462000-04-19 Gerd Moellmann <gerd@gnu.org>
1547
5e3dac3f
GM
1548 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1549 on 64-bit systems where NULL is defined as `0'.
1550
1551 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1552 the `variable argument list' to make it work on Alpha.
1553
cb9215e4
GM
1554 * m/alpha.h (_LP64) [!_LP64]: Define.
1555 (ORDINARY_LINK): Define for NetBSD.
1556
1557 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1558
f532dca0
DL
15592000-04-19 Dave Love <fx@gnu.org>
1560
c750667e
DL
1561 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1562 change.
1563
1564 * Makefile.in (LIBS): Don't use.
1565 (GETLOADAVG_OBJ): Define again.
1566 (otherobj): Add GETLOADAVG_OBJ.
1567
f532dca0
DL
1568 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1569
1c7e22fd
GM
15702000-04-18 Gerd Moellmann <gerd@gnu.org>
1571
f6d3257b
GM
1572 * lread.c (read_filtered_event): Cancel and start busy cursor.
1573
427ec082 1574 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1575 that the per-character metrics may be null.
1576
e10f64e7
GM
15772000-04-17 Gerd Moellmann <gerd@gnu.org>
1578
0daee095
GM
1579 * buffer.c (clone_per_buffer_values): New function.
1580 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1581 clone_per_buffer_values if CLONE is not nil.
1582
e10f64e7
GM
1583 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1584
38687d43
DL
15852000-04-16 Dave Love <fx@gnu.org>
1586
1587 * Makefile.in: Remove obsolete localcpp stuff.
1588 (GETLOADAVG_OBJ): Don't define.
1589 (obj): Move LIBOBJS...
1590 (otherobj): ... to here.
1591 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1592 whitespace-only lines after the continuation (Irix).
1593
c21c7262
GM
15942000-04-14 Gerd Moellmann <gerd@gnu.org>
1595
1596 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1597
1598 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1599
314767c0
DL
16002000-04-14 Dave Love <fx@gnu.org>
1601
1602 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1603 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1604 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1605 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1606 NLIST_STRUCT.
1607
1608 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1609 autoconfiscated HAVE_GETLOADAVG.
1610
1611 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1612 BROKEN_MKTIME.
1613
a2522dca
GM
16142000-04-14 Gerd Moellmann <gerd@gnu.org>
1615
1616 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1617 (fill_in_lock_file_name): Avoid existing files that aren't
1618 links.
1619
33744b5d
DL
16202000-04-14 Dave Love <fx@gnu.org>
1621
c21c7262 1622 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1623 (INTERVAL_SRC): Convert to make variable.
1624 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1625 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1626 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1627 add LIBOBJS.
1628 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1629 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1630 (shortlisp): Add facemenu, float-sup, frame.
1631 (SOME_MACHINE_LISP): Remove them from here.
1632 (LIBES): Change unused LDLIBS to autoconf LIBS.
1633
1634 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1635
9d3d5916
KH
16362000-04-14 Kenichi Handa <handa@etl.go.jp>
1637
1638 * composite.c (update_compositions): If FROM and TO are not in a
1639 valid range, do nothing.
1640
198e3c7a
GM
16412000-04-13 Gerd Moellmann <gerd@gnu.org>
1642
1643 * tparam.c (tparam1): Abort when encountering an unknown
1644 `%'-specifier.
1645
1646 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1647 terminfo.o.
1648
1649 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1650 as TERMCAP_OBJ.
1651
055a28c9
EZ
16522000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1653
1654 * fileio.c (a_write): Remove redundant semi-colons.
1655 (e_write): Return -1 if failed to write all the data.
1656 This fixes the changes made at 1999-12-15.
1657
f5c75033
DL
16582000-04-12 Dave Love <fx@gnu.org>
1659
1660 * fns.c (mapcar1): Test for null vals to support mapc.
1661 (Fmapc): New function.
1662
0c3cfc51
EZ
16632000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1664
1665 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1666 (IT_frame_up_to_date): Support the buffer local value of
1667 cursor-type, if defined.
1668
33465a31
DL
16692000-04-10 Dave Love <fx@gnu.org>
1670
1671 * editfns.c (preceding-char, following-char): Doc fix.
1672
6ed56568
KR
16732000-04-10 Ken Raeburn <raeburn@gnu.org>
1674
1675 * Makefile.in (temacs): Revert 2000-03-12 change.
1676
7cf80d4e
JR
16772000-04-10 Jason Rumney <jasonr@gnu.org>
1678
1679 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1680
34f3f342
GM
16812000-04-10 Gerd Moellmann <gerd@gnu.org>
1682
1a1b1895
GM
1683 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1684 area buffer, if it's not set up yet.
1685
34f3f342
GM
1686 * indent.c (compute_motion): Set immediate_quit.
1687
be0dbdab
GM
16882000-04-09 Gerd Moellmann <gerd@gnu.org>
1689
c45be9ac
GM
1690 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1691 variable.
1692 (realize_tty_face): Suppress boldness if colors are the inverse of
1693 the default colors, and tty_suppress_bold_inverse_default_colors_p
1694 is set.
1695 (Ftty_suppress_bold_inverse_default_colors): New function.
1696 (syms_of_xfaces): Defsubr it.
1697
be0dbdab
GM
1698 * buffer.c (Frestore_buffer_modified_p): New function.
1699 (syms_of_buffer): Defsubr it.
1700
e8413c3b
KR
17012000-04-08 Ken Raeburn <raeburn@gnu.org>
1702
87f67317
KR
1703 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1704 charset id (int) argument, not a charset (Lisp_Object).
1705
e8413c3b
KR
1706 * coding.h (code_convert_string): Declare.
1707 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1708 object, as the fourth argument to code_convert_string.
1709
1710 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1711 value.
1712 (Fset_fontset_font): Use EQ to compare lisp objects.
1713
7c752c80
KR
17142000-04-05 Ken Raeburn <raeburn@gnu.org>
1715
c0333abc
KR
1716 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1717 a pointer that looks like a lisp object.
1718 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1719 zero, instead see whether it's an integer object, since they can't
1720 have intervals.
1721 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1722
7c752c80
KR
1723 * dispnew.c (allocate_matrices_for_frame_redisplay,
1724 direct_output_forward_char): Use X(U)INT and make_number as needed
1725 to convert between (unsigned) int values and lisp integers.
1726 * keyboard.c (read_key_sequence): Likewise.
1727 * lread.c (substitute_object_recurse): Likewise.
1728 * fns.c (concat, hash_lookup, hash_remove): Likewise.
1729 * minibuf.c (do_completion, Fminibuffer_complete_word,
1730 Fminibuffer_completion_help): Likewise.
1731 * term.c (produce_special_glyphs): Likewise.
1732
1733 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
1734 * print.c (print_preprocess, print_object): Likewise.
1735
1736 * search.c (compile_pattern): Use NILP when checking for nil.
1737
74e49b38
KR
1738 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
1739 __OPTIMIZE__]: Provide a GNU C macro version that handles
1740 lisp-object unions.
1741 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
1742 field, to better cope with ENABLE_CHECKING and calls that modify a
1743 Lisp_Object using its old value.
1744
685e5ed2
GM
17452000-04-04 Gerd Moellmann <gerd@gnu.org>
1746
c407c570
GM
1747 * window.c (compare_window_configurations): Signal an error
1748 if parameters C1 or C2 aren't window configurations.
1749
685e5ed2
GM
1750 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
1751 AFTER_POTENTIAL_GC calls around calls to functions that can
1752 signal an error and thus invoke the debugger.
1753
587a49ab
GM
17542000-04-03 Gerd Moellmann <gerd@gnu.org>
1755
62f20204
GM
1756 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
1757 an error if decoding fails.
1758
587a49ab
GM
1759 * keyboard.c (lispy_mouse_names): Variable removed.
1760 (Vlispy_mouse_stem): New variable.
1761 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
1762 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
1763 for any mouse button number. Increase size of mouse_syms and
1764 button_down_location as needed. Call modify_event_symbol with
1765 different arguments.
1766 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
1767 Call modify_event_symbol with different arguments.
1768 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
1769 for any button number. Call modify_event_symbol with different
1770 arguments.
1771 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
1772 Accept a string for NAME_ALIST_OR_STEM.
1773
1774 * lisp.h (larger_vector): Add prototype.
1775
1776 * fns.c (larger_vector): Make externally visible.
1777
1778 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
1779
2d1675e4
SM
17802000-04-02 Stefan Monnier <monnier@cs.yale.edu>
1781
1782 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
1783 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
1784 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
1785 we are between str1 and str2.
1786 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
1787 (PATFETCH): Use `TRANSLATE'.
1788 (PATFETCH_RAW): Fetch multibyte char if applicable.
1789 (PATUNFETCH): Remove.
1790 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
1791 When writing a char, write it directly into the pattern buffer rather
1792 than going needlessly through a temp char-array.
1793 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
1794 multibyte magic and remove the useless `#ifdef emacs'.
1795 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
1796 buffer.
1797
1798 * regex.h (struct re_pattern_buffer): Make field `multibyte'
1799 conditional on `emacs'.
1800
1801 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
1802
cc2d8c6b
KR
18032000-04-01 Ken Raeburn <raeburn@gnu.org>
1804
1805 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
1806 non-union-type versions of XMARK and friends here, because XMARK
1807 and friends won't work on an integer field if NO_UNION_TYPE is not
1808 defined.
1809 (make_number): Define as a function if it's not defined as a
1810 macro.
1811
09654086
KR
1812 * composite.c (run_composite_function): Use NILP when checking for
1813 nil.
1814 (syms_of_composite): Delete local var NARGS, pass an int as first
1815 argument to Fmake_hash_table.
1816
2387b382
KR
1817 * editfns.c (text_property_stickiness): Use NILP to test
1818 Lisp_Object boolean value.
1819 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
1820 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
1821 problems reading from and changing the same lisp value in an
1822 XSETSTRING call.
1823
27660e89
GM
18242000-04-01 Gerd Moellmann <gerd@gnu.org>
1825
1826 * term.c (TN_no_color_video): New variable.
1827 (term_init): Intitialize TN_no_color_video.
1828 (enum no_color_bit): New enumeration.
1829 (MAY_USE_WITH_COLORS_P): New macro.
1830 (turn_on_face): Use it to determine if attributes may be used
1831 combined with colors.
1832
3578db3c
KR
18332000-04-01 Ken Raeburn <raeburn@gnu.org>
1834
1835 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
1836 with int lvalues via casts; instead, just yield lisp object
1837 lvalues.
1838 (enlarge_window): Variable sizep now points to Lisp_Object. Use
1839 proper accessor macros.
1840 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
1841 (grow_mini_window): Fix typo getting int value of root->height.
1842
6fc556fd
KR
1843 * xdisp.c (compute_string_pos): Fix order of arguments to
1844 string_pos_nchars_ahead.
1845 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
1846 count arg to variable-arg routines like Frun_hook_with_args and
1847 Fformat.
587a49ab
GM
1848 (back_to_previous_visible_line_start)
1849 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
1850 fixed-arg routines like Fget_char_property and Fmake_string.
1851 (reconsider_clip_changes): Use XINT when comparing integer lisp
1852 objects, or passing them as int arguments.
587a49ab
GM
1853 (mark_window_display_accurate, insert_left_trunc_glyphs)
1854 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
1855 storing or passing integer values as lisp objects.
1856 (set_cursor_from_row, highlight_trailing_whitespace): Use
1857 INTEGERP, not implicit test against zero, for glyph object.
1858 (try_window_id): Don't use make_number when we want an int value.
1859
1860 * xfaces.c (xlfd_symbolic_value): Make last argument a
1861 Lisp_Object, to be consistent with callers.
1862 (Fbitmap_spec_p): Use XINT to get numeric value of height.
1863 (lface_hash): Apply XFASTINT to lisp values before folding in.
1864
1865 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
1866 fill in window width and height. Pass an int, not a lisp object,
1867 as first arg to Finsert.
1868
6e7b2457
GM
18692000-04-01 Gerd Moellmann <gerd@gnu.org>
1870
610d841e
GM
1871 * xfaces.c (realize_basic_faces): Block input while realizing
1872 the faces.
1873
6e7b2457
GM
1874 * keyboard.c (lispy_mouse_names): Add additional mouse names.
1875
1876 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
1877
aa110c0c
GM
18782000-03-31 Gerd Moellmann <gerd@gnu.org>
1879
1880 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 1881 or ASCII, handle case that per-char metric is null.
aa110c0c 1882
8801a864
KR
18832000-03-30 Ken Raeburn <raeburn@gnu.org>
1884
c6129d7e
KR
1885 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
1886
8801a864
KR
1887 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
1888 XSUBR, XBUFFER): Verify correct object type before returning
1889 pointer, using eassert.
1890 * frame.h (XFRAME): Likewise.
1891
1892 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
1893 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
1894 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
1895 type.
1896 * data.c (set_internal): Likewise.
1897 * dispextern.h (WINDOW_WANTS_MODELINE_P,
1898 WINDOW_WANTS_HEADER_LINE_P): Likewise.
1899 * fileio.c (auto_save_1): Likewise.
1900 * insdel.c (check_markers): Likewise.
1901 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
1902 * undo.c (record_insert): Likewise.
1903 * vmsproc.c (child_sig): Likewise.
1904 * window.c (unshow_buffer, window_loop): Likewise.
1905 * xterm.c (x_erase_phys_cursor): Likewise.
1906
8e7af858
GM
19072000-03-30 Gerd Moellmann <gerd@gnu.org>
1908
1909 * xfns.c (free_image_cache): Free the cache structure itself
1910 last, after all its members have been freed.
1911
1912 * lisp.h (xstrdup): Add prototype.
1913
1914 * alloc.c (xstrdup): Moved here from xfaces.c.
1915 (allocating_for_lisp): Variable removed.
1916 (lisp_malloc): Block input around the calls to malloc and
1917 mem_insert.
1918
1919 * xfaces.c (realize_tty_face): Use find_symbol_value instead
1920 of Fsymbol_value.
1921 (xstrdup): Moved to alloc.c.
1922
e0b8c689
KR
19232000-03-29 Ken Raeburn <raeburn@gnu.org>
1924
b96f9fb7
KR
1925 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
1926
1927 * emacs.c (main): Fix sense of no-loadup test.
1928
e0b8c689
KR
1929 * config.in (ENABLE_CHECKING): Undef.
1930
1931 * lisp.h (struct interval): Replace "parent" field with a union of
1932 interval pointer and Lisp_Object; add new bitfield to use as
1933 discriminant. Change other flag fields to bitfields.
1934 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
1935 is defined and the supplied test fails, print a message and
1936 abort.
1937 (eassert): New macro. Use CHECK to provide an assert-like
1938 facility.
1939
1940 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
1941 pointers; abort if the value looks like a lisp object.
1942 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
1943 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
1944 Modify for new interval parent definition.
1945
1946 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
1947 UNMARK_BALANCE_INTERVALS): Update references that need an
1948 addressable lisp object in the interval structure.
1949 (die): New function.
1950 (suppress_checking): New variable.
1951
1952 * intervals.c (interval_start_pos): Just return 0 if there's no
1953 parent object.
1954
f83c5440
GM
19552000-03-29 Gerd Moellmann <gerd@gnu.org>
1956
1957 * lread.c (read1): Accept `.' (period) as symbol start like in CL
1958 and earlier Emacs versions.
1959
1960 * keyboard.c (Ftop_level): Cancel busy-cursor.
1961
1962 * eval.c (call_debugger): Cancel busy-cursor.
1963
fdce64ff
KH
19642000-03-29 Kenichi Handa <handa@etl.go.jp>
1965
1966 * search.c (Freplace_match): Adjust multibyteness of the current
1967 buffer and NEWTEXT. Free allocated memory before signaling an
1968 error.
1969
f6a3f532
SM
19702000-03-28 Stefan Monnier <monnier@cs.yale.edu>
1971
1972 * regex.c (analyse_first): New function obtained by ripping out most
1973 of re_compile_fastmap and generalizing it a little bit so that it
1974 can also just return whether a given (sub)pattern can match the empty
1975 string or not.
1976 (regex_compile): Use `analyse_first' to decide whether the loop-check
1977 needs to be done or not for *, +, *? and +? (the loop check is costly
1978 for non-greedy repetition).
1979 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
1980
e9b309ac
DL
19812000-03-28 Dave Love <fx@gnu.org>
1982
bb15bd9a
DL
1983 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
1984 alpha.
1985
e9b309ac
DL
1986 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
1987
ed0767d8
SM
19882000-03-27 Stefan Monnier <monnier@cs.yale.edu>
1989
1990 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
1991 an expression.
1992 (enum re_opcode_t): Update description of succeed_n.
1993 (PATFETCH): Always define.
1994 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
1995 operators, char classes, shy-groups and intervals).
1996 Optimize special cases of intervals so as to only use succeed_n and
1997 jump_n when really needed.
1998 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
1999 that we don't have to handle the special cases any more.
2000 Simplify on_failure_jump handling as well.
2001
e11e7e46
JR
20022000-03-28 Jason Rumney <jasonr@gnu.org>
2003
2004 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2005
88faab89
GM
20062000-03-27 Gerd Moellmann <gerd@gnu.org>
2007
182ff242
GM
2008 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2009
2010 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2011
182ff242
GM
2012 * alloc.c (mark_maybe_object): New function.
2013 (mark_memory): Use it.
2014 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2015 (setjmp_tested_p, longjmp_done): New variables.
2016 (test_setjmp): New function.
2017 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2018 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2019
c1005d06
GM
2020 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2021 to DEC_TEXT_POS and INC_TEXT_POS.
2022
2023 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2024 with parameter MULTIBYTE_P.
2025
427ec082 2026 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2027 MULTIBYTE_P.
2028
7439e5b9 2029 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2030 buffers because it looks for multibyte character byte sequences
2031 which don't exist in unibyte text.
7439e5b9 2032
d9c545da
GM
2033 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2034
11fd416e 2035 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2036 [DEBUG_X_COLORS]: New functions.
2037 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2038
2039 * xfns.c (x_set_cursor_color): Get color reference counts right.
2040
2041 * xterm.c (x_copy_color): New function.
2042 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2043
2044 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2045 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2046 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2047 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2048 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2049 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2050 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2051 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2052 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2053 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2054
11fd416e
GM
2055 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2056 names for handling per-buffer variables.
d9c545da
GM
2057
2058 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2059 instead of MAX_BUFFER_LOCAL_VARS.
2060 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2061
2062 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2063
88faab89
GM
2064 * xfns.c (x_specified_cursor_type): New function.
2065 (x_set_cursor_type): Use it.
2066
2067 * buffer.h (struct buffer): Add cursor_type.
2068
d80f42b7
SM
20692000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2070
2071 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2072 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2073 opcode.
d80f42b7
SM
2074 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2075 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2076 executing it as well as when popping it off the stack to find infinite
2077 loops in non-greedy repetition operators.
2078
89e80928
GM
20792000-03-26 Gerd Moellmann <gerd@gnu.org>
2080
3d4ff2dd
GM
2081 * doc.c (Qfunction_documentation): New variable.
2082 (syms_of_doc): Initialize Qfunction_documentation.
2083 (Fdocumentation): If FUNCTION is a symbol with non-nil
2084 `function-documentation' property, return a documentation derived
2085 from that.
2086
bd96bd79
GM
2087 * buffer.c (syms_of_buffer): Add default-cursor-type.
2088 (init_buffer_once): Don't let cursor_type have a local value
2089 in every buffer.
2090
19d1bc27
GM
2091 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2092 on buffer-local value of cursor_type.
2093 (x_draw_bar_cursor): Add parameter WIDTH.
2094
2095 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2096 (init_buffer_once): Set default cursor_type value to t.
2097 Mark cursor_type as local everywhere.
2098 (syms_of_buffer): New per-buffer variable cursor-type.
2099
89e80928
GM
2100 * buffer.h (struct buffer): Remove member local_var_flags,
2101 add local_flags.
2102 (MAX_BUFFER_LOCAL_VARS): New macro.
2103 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2104 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2105 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2106 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2107
2108 * print.c (print_object): Use new macros for per-buffer
2109 variables.
2110
2111 * category.c (Fset_category_table): Use new macros for per-buffer
2112 variables.
2113
2114 * buffer.c (buffer_permanent_local_flags): Make a char array.
2115 (max_buffer_local_idx): New variable.
2116 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2117 for new handling of per-buffer variables.
2118 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2119 (init_buffer_once): Initialize per-buffer vars differently.
2120 Set max_buffer_local_idx.
2121
2122 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2123 variables.
2124
2125 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2126 variables.
2127
2128 * data.c (do_symval_forwarding, store_symval_forwarding)
2129 (find_symbol_value, set_internal, default_value, Fset_default)
2130 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2131 per-buffer variables.
2132
2133 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2134
9a0dd3dc
GM
21352000-03-24 Gerd Moellmann <gerd@gnu.org>
2136
b68c375f
GM
2137 * xterm.c (x_term_init): Unblock input around call1 of
2138 Qvendor_specific_keysyms.
2139
9a0dd3dc
GM
2140 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2141 (find_defun_start): Consider an open parenthesis in column 0
2142 a defun start only if open_paren_in_column_0_is_defun_start is set.
2143 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2144
7973e637
SM
21452000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2146
2147 * eval.c (Fautoload): Add entry in load-history (if after dump).
2148 * lread.c (load-history): Update docstring.
2149
39210e90
GM
21502000-03-24 Gerd Moellmann <gerd@gnu.org>
2151
2152 * indent.c (Fvertical_motion): Always use the current buffer.
2153 Temporarily change the window's buffer, if necessary.
2154
72db3ab5
GM
21552000-03-23 Gerd Moellmann <gerd@gnu.org>
2156
2157 * xterm.c (fast_find_position): Make sure not to consider rows
2158 not visible in the window.
2159
990b2375
SM
21602000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2161
2162 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2163 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2164
ff4df011
JR
21652000-03-22 Jason Rumney <jasonr@gnu.org>
2166
2167 * w32menu.c (single_submenu): Set help string to NULL if none.
2168 (w32_menu_show): Set help string correctly.
2169 (add-menu-item): Set help string in MIIM_DATA for menu item.
2170 Load SetMenuItemInfoA explicitly.
2171 (w32_menu_display_help): New function.
427ec082 2172
ff4df011
JR
2173 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2174 (QCdata): Moved to xdisp.c.
2175
2176 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2177 (Vw32_charset_to_codepage_alist): Removed.
2178 (Vw32_charset_info_alist): New variable.
2179 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2180 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2181 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2182 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2183 with TODO comment.
2184 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2185 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2186 Define Vw32_charset_info_alist and w32_charset symbols.
2187
21882000-03-22 Jason Rumney <jasonr@gnu.org>
2189
2190 * makefile.nt (w32bdf.obj): Update dependencies.
2191
2192 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2193
2194 * w32fns.c: Include fontset.h after dispextern.h.
2195 (Fx_create_frame): Do not create fontset.
2196 (w32_load_system_font): Doc fix.
2197 (Fx_close_connection): Free full_name if it is not shared.
2198
2199 * w32term.c: Include fontset.h after dispextern.h.
2200 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2201 updated.
2202 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2203 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2204 (w32_font_is_double_byte): New function, needs body.
2205 (x_append_glyph): Set glyph->glyph_not_available_p.
2206 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2207 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2208 character, convert it to a unibyte character.
2209 (struct glyph_string): Delete member `charset'.
2210 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2211 calculating it is found.
2212 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2213 the case that per char metric is not available correctly.
2214 (x_fill_glyph_string): Handle the case that the specific glyph is
2215 not available correctly.
2216 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2217 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2218 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2219 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2220 fontset. Don't call FS_LOAD_FONT.
2221
439d5cb4
KR
22222000-03-22 Ken Raeburn <raeburn@gnu.org>
2223
2224 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2225 (INT_LISPLIKE): New macro.
2226 (NULL_INTERVAL_P): Use it.
2227 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2228 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2229 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2230
2231 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2232 explicit references to "parent" field of struct interval and
2233 associated unclean type conversions.
2234 * intervals.c (create_root_interval, root_interval, rotate_right,
2235 rotate_left, balance_possible_root_interval, split_interval_right,
2236 split_interval_left, interval_start_pos, find_interval,
2237 next_interval, previous_interval, update_interval,
2238 adjust_intervals_for_insertion, delete_node, delete_interval,
2239 adjust_intervals_for_deletion, merge_interval_right,
2240 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2241 copy_intervals_to_string): Likewise.
2242 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2243 Likewise.
2244 * syntax.c (update_syntax_table): Likewise.
2245
2246 * intervals.c (reproduce_tree_obj): New function, like
2247 reproduce_tree but takes a Lisp_Object for the parent. Declare
2248 with prototype.
2249 (graft_intervals_into_buffer): Use it when appropriate.
2250 (reproduce_tree): Declare with prototype.
2251 (balance_possible_root_interval): Check that the parent is a lisp
2252 object before trying to examine its type.
2253
ee1c5b21
GM
22542000-03-22 Gerd Moellmann <gerd@gnu.org>
2255
2256 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2257 as strings only if both are known to be strings.
2258
2259 * s/openbsd.h (LIBS_TERMCAP): Undef.
2260
1fb352e0
SM
22612000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2262
2263 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2264 definitions for non-Emacs compilation.
2265 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2266 outside of `#ifdef emacs'.
2267 (print_partial_compiled_pattern): Update.
2268 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2269 (re_compile_fastmap): Merge handling of charset and charset_not (for
2270 emacs and non-emacs compilation as well).
2271 Similarly for (not)categoryspec and (not)syntaxspec.
2272 Don't use the fastmap when reaching `anychar' since the added
2273 complexity is not justified.
2274 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2275 and (not)syntaxspec. Merge (not)categoryspec.
2276
fdaa1f77
KH
22772000-03-22 Kenichi Handa <handa@etl.go.jp>
2278
ff1a0d8e
KH
2279 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2280 FACE_FOR_CHAR): Define them differently for the configuration of
2281 --without-x.
fdaa1f77 2282
d152fb46
DL
22832000-03-21 Dave Love <fx@gnu.org>
2284
2285 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2286 doc string.
2287
d2cafc8c
GM
22882000-03-21 Gerd Moellmann <gerd@gnu.org>
2289
2290 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2291 (lface_fully_specified_p): Don't check contents of
2292 LFACE_FONT_INDEX because that attribute is optional.
2293 (realize_x_face): Remove now unwarranted xassert.
2294
9111d4b5
KH
22952000-03-21 Kenichi HANDA <handa@etl.go.jp>
2296
2297 The following changes are to make font selection based on
2298 characters, not charset. In addition, they recover fontset
2299 facilities while utilizing the new font selection mechanism.
2300
6c4bfdc0
KH
2301 * Makefile.in (fontset.o): Depend on dispextern.h.
2302
2303 * alloc.c (mark_face_cache): Don't mark face->registry.
2304
9111d4b5
KH
2305 * dispextern.h (struct glyph): New member glyph_not_available_p.
2306 Use 22 bits for face_id.
2307 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2308 (struct face): Delete member registry, new member ascii_face.
2309 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2310 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2311 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2312 (struct it): Delete member charset, new member
2313 glyph_not_available_p.
2314
2315 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2316 (struct fontset_info, struct fontset_data): Structs removed.
2317 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2318 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2319 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2320 (fs_free_face_fontset, fontset_font_pattern,
2321 face_suitable_for_char_p, face_for_char,
2322 make_fontset_for_ascii_face): Extern them.
2323 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2324 (FS_LOAD_FACE_FONT): New macro.
2325
2326 * fontset.c: All codes rewritten or adjusted for the change of
2327 fontset implementation. Now fontset is represented by char table.
2328 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2329 removed.
2330 (my_strcasecmp): Function removed.
2331 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2332 variables.
2333 (AREF, ASIZE): New macros.
2334 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2335 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2336 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2337 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2338 fontset_id_valid_p, font_family_registry, fontset_name,
2339 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2340 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2341 New functions.
2342 (fs_load_font): New arg FACE. Caller changed.
2343 (fs_query_fontset): Argument changed. Caller changed.
2344 (Fquery_fontset): call fs_query_fontset.
2345 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2346 Functions removed.
2347 (clear_fontset_elements, check_registry_encoding,
2348 check_fontset_name): New functions.
2349 (syms_of_fontset): Set char-table-extra-slots property of fontset
2350 to 3. Staticpro and initialize Vfontset_table and
2351 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2352
2353 * frame.h (struct frame): Member `fontset_data' removed.
2354 (FRAME_FONTSET_DATA): Macro removed.
2355
2356 * frame.c (make_frame): Don't allocate f->fontset_data.
2357 (Fdelete_frame): Don't free f->fontset_data.
2358
6c4bfdc0
KH
2359 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2360
9111d4b5
KH
2361 * xdisp.c (charset_at_position): Function removed.
2362 (init_iterator): Don't set member charset of struct `it'.
2363 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2364 next_element_from_display_vector, insert_left_trunc_glyphs):
2365 Likewise.
2366 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2367 FACE_FOR_CHARSET.
2368 (get_next_display_element, append_space,
2369 extend_face_to_end_of_line): Likewise.
2370
2371 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2372 Variables removed.
2373 (clear_font_table, frame_update_line_height, load_face_font):
2374 Adjusted for the change of fontset implementation.
2375 (load_face_fontset_font): Function removed.
2376 (pixel_point_size): New function.
2377 (font_list): Argument type changed. Caller changed.
2378 (LFACE_FONT): New macro.
2379 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2380 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2381 Lisp_Object. Determine the font name by actually loading a font
2382 by the specified pattern. Set LFACE_FONT (lface) to the specified
2383 pattern. Even if a font is not found, don't try alternatives.
2384 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2385 (set_font_frame_param): If `font' is specified in lface, use it.
2386 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2387 (lface_same_font_attributes_p): Likewise.
2388 (make_realized_face): Arguent changed. Caller changed. Set
2389 face->ascii_face to face itself.
2390 (free_realized_face): Free face->fontset if face is for ASCII.
2391 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2392 deduce_unibyte_registry, x_charset_registry): Functions removed.
2393 (free_realized_multibyte_face): New function.
2394 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2395 changed. Caller changed.
2396 (try_font_list): Argument type changed.
2397 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2398 (choose_face_font): Argument changed. Handle fontset properly.
2399 (choose_face_fontset_font): Function removed.
2400 (realize_default_face, realize_named_face): Don't remove the
2401 former face here.
2402 (realize_face): Argument changed. Caller changed. Remove face
2403 with the arg former_face_id in advance. Load font for the new
2404 face.
2405 (realize_x_face): Argument changed. Caller changed. For a
2406 multibyte character, share fontset with base_face. For a single
2407 byte character, make a new realized fontset. Don't load a font
2408 here.
2409 (realize_tty_face): Argument changed. Caller changed.
2410 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2411 (face_at_buffer_position): Don't check multibyte_p for returning
2412 DEFAULT_FACE_ID.
2413 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2414 FACE_SUITABLE_FOR_CHARSET_P.
2415 (syms_of_xfaces): Remove code for Qx_charset_registry and
2416 Vface_default_registry.
2417
6c4bfdc0
KH
2418 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2419 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2420 (x_per_char_metric): Don't try FONT->default_char. Even if
2421 pcm->width is zero, glyph bits may exist.
2422 (x_encode_char): Always initialize char2b->byte1.
2423 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2424 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2425 changed.
2426 (x_append_glyph): Set glyph->glyph_not_available_p.
2427 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2428 it->charset. Handle the case that per char metric is not
2429 available. If it->multibyte_p is zero and it->c is a multibyte
2430 character, convert it to a unibyte character.
2431 (struct glyph_string): Delete member `charset'.
2432 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2433 the case that per char metric is not available correctly.
2434 (x_fill_glyph_string): Handle the case that the specific glyph is
2435 not available correctly.
2436 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2437 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2438 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2439 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2440 fontset. Don't call FS_LOAD_FONT.
2441
2442 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2443 (x_create_tip_frame): Likewise.
2444 (Fx_close_connection): Free full_name of font_info.
2445
2446 * fns.c (optimize_sub_char_table): New function.
2447 (Foptimize_char_table): New function.
2448 (syms_of_fns): Defsubr Soptimize_char_table.
2449
b33dd3b0
GM
24502000-03-20 Gerd Moellmann <gerd@gnu.org>
2451
2452 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2453 only if buffer is displayed in some window.
2454
2455 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2456 (try_window_reusing_current_matrix): Don't call scroll run
2457 function if run's current and desired position are the same;
2458 this prevents cursor flickering.
2459
4e8a9132
SM
24602000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2461
2462 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2463
2464 * regex.c (RE_STRING_CHAR): New macro.
2465 (GET_CHAR_AFER_2): Remove.
2466 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2467 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2468 (print_partial_compiled_pattern, re_compile_fastmap)
2469 (re_match_2_internal): Remove on_failure_jump_exclusive.
2470 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2471 optimization only need to work for * (ie. can use of_keep_string_jump).
2472 Remove the special case for .*\n since it is now covered by the general
2473 optimization.
2474 (re_search_2): Don't bother with `room'.
2475 (skip_one_char): New function.
2476 (skip_noops): Simplify since `memory' is not needed any more.
2477 (mutually_exclusive_p): Restructure slightly to use `switch' and
2478 add handling for "all" remaining cases.
2479 (re_match_2_internal): Change on_failure_jump_smart to use
2480 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2481 rather than on_failure_jump_exclusive.
2482
2136fdd4
GM
24832000-03-19 Gerd Moellmann <gerd@gnu.org>
2484
2485 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2486 number of bits per RGB because it's everywhere used as the depth
2487 of the visual.
2488
2489 * term.c (calculate_costs): Remove code dealing with X frames.
2490
e53ae11c
RS
24912000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2492
2493 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2494
d7b511c4
GM
24952000-03-18 Gerd Moellmann <gerd@gnu.org>
2496
2497 * lread.c (read_integer): Unread the last char not consumed.
2498
16b5d424
GM
24992000-03-17 Gerd Moellmann <gerd@gnu.org>
2500
2501 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2502 which are in the process of being deleted.
16b5d424 2503
1fa28578
GM
25042000-03-16 Gerd Moellmann <gerd@gnu.org>
2505
83488cce
GM
2506 * Makefile.in (mostlyclean): Add `*.core'.
2507 (clean): Add `bootstrap-emacs'.
2508
1fa28578
GM
2509 * lread.c (read_integer): New function.
2510 (read1): Support read syntax #o, #x, #b, #r.
2511
99633e97
SM
25122000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2513
1fa28578
GM
2514 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2515 make sure POINTER_TO_OFFSET gives the same value before and after
2516 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2517 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2518 (debug): Now only active if > 0 rather than if != 0.
2519 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2520 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2521 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2522 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2523 (store_op1, store_op2, insert_op1, insert_op2)
2524 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2525 (group_in_compile_stack): Move to after its arg's types are
2526 declared and add a prototype.
99633e97 2527 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2528 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2529 wrapper.
99633e97 2530 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2531 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2532 indentation of the greedy-op and shy-group code.
99633e97
SM
2533 (at_(beg|end)line_loc_p): Fix argument's types.
2534 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2535 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2536 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2537 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2538 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2539 QUIT unconditionally.
99633e97 2540
699238d9
GM
25412000-03-15 Gerd Moellmann <gerd@gnu.org>
2542
2543 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2544 a sole completion.
2545
2546 * process.c (send_process): Add a hint that the function
2547 can call Lisp code to its comment.
2548
2549 * lread.c (load_dangerous_libraries): New variable.
2550 (Vbytecomp_version_regexp): New variable.
2551 (safe_to_load_p): New function.
2552 (Fload): Handle files not compiled with Emacs specially.
2553 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2554
34e23e5a
GM
25552000-03-14 Gerd Moellmann <gerd@gnu.org>
2556
9c763cca
GM
2557 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2558
2559 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2560 support functions only if HAVE_X11R6_XIM is defined.
2561 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2562
2563 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2564
2565 * xfns.c (X_I18N_INHIBITED): Don't define.
2566 (create_frame_xic): Remove conditional compilation on
2567 X_I18N_INHIBITED.
2568 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2569
2570 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2571 (HAVE_X11R6_XIM): Define.
2572
2573 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2574
34e23e5a
GM
2575 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2576 If set, call XSynchronize.
2577
66f0296e
SM
25782000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2579
34e23e5a
GM
2580 * regex.c: Declare a new type `re_char' used throughout the code
2581 for the string char type. It's `const unsigned char' to match the
2582 rest of Emacs. Consistently make sure all pointers to strings use
2583 it and make sure all pointers into the pattern use `unsigned
2584 char'.
66f0296e 2585 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2586 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2587 code duplication.
66f0296e
SM
2588
2589 * charset.h (GET_CHAR_AFTER_2): Remove.
2590 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2591
854a025c
KR
25922000-03-12 Ken Raeburn <raeburn@gnu.org>
2593
2594 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2595 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2596 of them try to use backquotes.
2597
b9d2c7e2
DL
25982000-03-12 Dave Love <fx@gnu.org>
2599
2600 * unexelf.c: Restore changes of 1999-10-19.
2601 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2602 fix its type and alignment; copy it from current process.
2603
5e5dff44
GM
26042000-03-12 Gerd Moellmann <gerd@gnu.org>
2605
9b2f3c38
GM
2606 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2607 has been found. Fix bug not computing timer's predecessor.
2608
427ec082 2609 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
2610 file name.
2611
e1cff360
GM
2612 * window.c (Fsave_window_excursion): Doc fix.
2613
5e5dff44
GM
2614 * xfns.c (x_defined_color): Rewritten to use
2615 x_allocate_nearest_color.
2616
e411ce4b
EZ
26172000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2618
2619 * msdos.c (vga_installed): New function, code moved from
2620 dos_set_window_size.
2621 (Qbar, Qcursor_type, outside_cursor): New variables.
2622 (syms_of_msdos): Intern and staticpro them.
2623 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2624 shape used outside Emacs when called for the first time.
2625 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2626 cursor shape used outside Emacs.
2627 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2628 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2629 type has changed.
2630 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2631 parameters specify the cursor. Make qreverse a global
2632 variable (renamed to Qreverse).
2633
80460654
GM
26342000-03-09 Gerd Moellmann <gerd@gnu.org>
2635
2636 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2637
95cd4c40
SM
26382000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2639
2640 This is a big redesign of failure-stack and register handling, prompted
2641 by bugs revealed when trying to add shy-groups. Overall, what happened
2642 is that loops are now structured a little differently, groups can be
2643 shy and the code is a little simpler.
2644
2645 * regex.h: Update the copyright.
2646 (RE_SHY_GROUPS): New value.
2647 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2648 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2649
80460654
GM
2650 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2651 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2652 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2653 for (start|stop)_memory since they now only take one argument (the
2654 second has becomes unnecessary).
2655 (print_partial_compiled_pattern): Adjust for changes in
2656 re_opcode_t.
2657 (print_compiled_pattern): Use %ld to printf long ints and flush to
2658 make debugging a little easier.
95cd4c40
SM
2659 (union fail_stack_elt): Make the integer unsigned.
2660 (struct fail_stack_type): Add a `frame' element.
2661 (INIT_FAIL_STACK): Init `frame' as well.
2662 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2663 (DEBUG_PUSH, DEBUG_POP): Remove.
2664 (NUM_REG_ITEMS): Remove.
2665 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2666 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2667 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2668 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2669 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2670 macros.
2671 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2672 address pushed is not the destination of the jump but the source
2673 of it instead.
95cd4c40
SM
2674 (NUM_FAILURE_ITEMS): Remove.
2675 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2676 registers before the actual failure point). Don't hardcode any
2677 meaning for str==NULL anymore.
95cd4c40 2678 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2679 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2680 Remove.
95cd4c40
SM
2681 (REG_UNSET_VALUE): Use NULL (why not?).
2682 (compile_range): Remove declaration since it doesn't exist.
2683 (struct compile_stack_elt_t): Remove inner_group_offset.
2684 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2685 (regex_grow_registers): Remove dead code.
2686 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2687 (regex_compile): Add shy-groups Change loops to use
2688 on_failure_jump_smart&jump instead of
2689 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2690 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2691 variable to me). Use `jump' instead of `jump_past_alt' and don't
2692 bother with push_dummy_failure in alternatives since it is now
2693 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2694 emacs' for (re)allocating the stack.
2695 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2696 from loop when bufp->can_be_null rather than jumping to `done'.
2697 Avoid jumping backwards so as to ensure termination. Use
2698 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2699 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2700 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2701 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2702 improve mutually_exclusive_p to handle ".+\n".
2703 (lowest_active_reg, highest_active_reg,
2704 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2705 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2706 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2707 variables. Push register (in `start_memory') on the stack rather
2708 than storing it in old_reg(start|end). Remove the cycle detection
2709 from `stop_memory', replaced by the use of on_failure_jump_loop
2710 for greedy loops. Add code for the new on_failure_jump_<foo>.
2711 Remove ad-hoc code in `on_failure_jump' to push more registers in
2712 the case of a loop. Take out code from `maybe_pop_jump' into
2713 separate functions and adapt it to the semantics of
2714 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2715 and push_dummy_failure. Remove dummy_failure handling and
2716 handling of `failures to jump to on_failure_jump' (this last one
2717 was already dead code, it seems).
2718 (group_match_null_string_p, alt_match_null_string_p)
2719 (common_op_match_null_string_p): Remove.
95cd4c40 2720
7397acc4
DL
27212000-03-08 Dave Love <fx@gnu.org>
2722
2723 * config.in: Don't depend on __STDC__ for volatile.
2724 Add POINTER_TYPE, PTR, PROTOTYPES.
2725
2726 * hftctl.c, strftime.c: Use PROTOTYPES.
2727 * eval.c (find_handler_clause): Likewise.
2728
2729 * mem-limits.h: Use POINTER_TYPE.
2730
2731 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
2732 (memory_warnings): Declare using POINTER_TYPE.
2733
5e91ff9e
GM
27342000-03-08 Gerd Moellmann <gerd@gnu.org>
2735
feab4fba
GM
2736 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
2737
25edb08f
GM
2738 * xdisp.c (display_echo_area): Temporarily inhibit garbage
2739 collection.
2740
5e91ff9e
GM
2741 * xfns.c: Remove obsolete code in #if 0.
2742 (Fx_focus_frame): New function.
2743
a735b7e1
KH
27442000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2745
2746 * coding.c (coding_category_name): Add coding-category-utf-8,
2747 coding-category-utf-16-be, coding-category-utf-16-le.
2748 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
2749 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
2750 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
2751 (detect_coding_utf_8): New function.
2752 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
2753 UTF_16_LOW_SURROGATE_P): New macros.
2754 (detect_coding_utf_16): New function
2755 (detect_coding_mask): When priorities are specified, skip any
2756 categories that have `nil' coding-system. Fix bug of returning
2757 wrong mask when PRIORITIES is specified and detect_coding_XXX()
2758 returns a mask not set in PRIORITIES.
2759 (detect_eol_type_in_2_octet_form): New function.
2760 (detect_eol): selects detect_eol_type_XXX to call according to
2761 cooding->category_idx.
2762 (detect_coding_system): Remove `nil' coding-system in the result.
2763 (Fupdate_coding_systems_internal): Update all coding-categories.
2764
2765 * coding.h (CODING_CATEGORY_IDX_UTF_8,
2766 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
2767 macros.
2768 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
2769 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
2770 CODING_CATEGORY_IDX_UTF_16_LE.
2771 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
2772 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
2773 (CODING_CATEGORY_MASK_ANY): Include the above macros.
2774 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
2775
9994cc69
GM
27762000-03-07 Gerd Moellmann <gerd@gnu.org>
2777
e9b4e5ff
GM
2778 * doc.c (Fdocumentation_property): If value is not a string,
2779 and doesn't refer to etc/DOC, evaluate it to obtain a string.
2780
f7daf1e1
GM
2781 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
2782 close the display with XtCloseDisplay. This caused a bus error
2783 on OpenWindows.
2784
9994cc69
GM
2785 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
2786 complete but not unique.
2787
4336c705
GM
27882000-03-06 Gerd Moellmann <gerd@gnu.org>
2789
18bb0684
GM
2790 * process.c (send_process): Remove local variable `procname' that
2791 might become invalid when a GC happens. Instead, access the
2792 process name slot directly.
2793
4336c705
GM
2794 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
2795 orig_height if set.
2796
2797 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
2798 orig_height if set.
2799
515d0d0e
EZ
28002000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2801
2802 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
2803 glyph matrices have been freed.
2804
100b3cbb
GM
28052000-03-05 Gerd Moellmann <gerd@gnu.org>
2806
50df5e5a 2807 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 2808 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
2809
2810 * xfns.c (QCdata): Moved to xdisp.c.
2811
2812 * xdisp.c (QCdata): Moved here from xfns.c.
2813 (syms_of_xdisp): Initialize QCdata.
2814
2815 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
2816
2817 * window.c (coordinates_in_window): Use
2818 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
2819 FRAME_INTERNAL_BORDER_WIDTH.
2820
100b3cbb 2821 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 2822 it is obviously invalid.
100b3cbb
GM
2823
2824 * xterm.c (x_term_init): Create a colormap if not using the
2825 default visual.
2826
2827 * xterm.h (select_visual): Change prototype.
2828
2829 * xfns.c (select_visual): Rewritten. Recognize user-specified
2830 visual classes.
2831 (visual_classes): New variable.
2832
64d739c4
GM
28332000-03-04 Gerd Moellmann <gerd@gnu.org>
2834
2835 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
2836 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
2837 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
2838 (x_decode_color): Don't handle allocation of white and black
2839 specially.
2840 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
2841 XtNcolormap resources.
2842 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
2843 (Fx_create_frame): Initialize color members of x_output structure.
2844 (xpm_load): Pass colormap to XPM lib.
2845
2846 * xfaces.c (x_free_colors): Access colormap of frame using
2847 FRAME_X_COLORMAP. Be paranoid about freeing black and white
2848 when default colormap is used.
2849
2850 * xterm.c (x_term_init): Set Colormap member of x_display_info
2851 structure. Copy colormap if resource `privateColormap' is
2852 specified (PseudoColor only).
2853 (x_setup_relief_color): Access colormap of frame using
2854 FRAME_X_COLORMAP.
2855
2856 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
2857 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
2858
c3cee013
JR
28592000-03-04 Jason Rumney <jasonr@gnu.org>
2860
2861 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
2862 other non-platform-specific equivalents.
64d739c4 2863 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
2864 specific functions and macros as their w32 equivalents where
2865 non-platform-specifics are not available.
2866 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
2867 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
2868 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
2869 (frame_update_line_height): Use macros to access f->output_data.
2870 (defined_color): Remove FIXME comments; fixed.
2871 (x_face_list_fonts, prepare_face_for_display): Put X specifics
2872 into #ifdef blocks. Add WINDOWSNT blocks.
2873 (Fx_list_fonts): Use macros for accessing font data.
2874 (set_lface_from_font_name): Different default fonts for X and
2875 WINDOWSNT.
2876 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
2877 scalable for backward compatibility.
64d739c4 2878 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
2879 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
2880
64d739c4 2881 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
2882 syms_of_w32faces.
2883
2884 * makefile.nt (w32faces.obj): Remove.
2885 (xfaces.obj): Add.
2886
807cc41c
JR
28872000-03-03 Jason Rumney <jasonr@gnu.org>
2888
2889 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
2890 correct parameters.
2891
0007072a
KR
28922000-03-03 Ken Raeburn <raeburn@gnu.org>
2893
2894 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
2895 standard ELF definitions here if the system header does not.
2896
71a6ba55
GM
28972000-03-03 Gerd Moellmann <gerd@gnu.org>
2898
2899 * xterm.c (PER_CHAR_METRIC): Removed.
2900 (x_per_char_metric_1, x_default_char): New functions.
2901 (x_per_char_metric): If font's default char is invalid, return
2902 metrics of a suitably chosen usable default char.
2903 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
2904 char, replace occurrences of unprintable chars with a suitably
2905 chosen usable default char.
71a6ba55 2906
900fa1f1
GM
29072000-03-02 Gerd Moellmann <gerd@gnu.org>
2908
42f55fe0
GM
2909 * xterm.c (note_mouse_highlight): Return quickly if frame's
2910 glyph matrices have been freed.
2911
2912 * dispnew.c (free_glyphs): Block input while freeing matrices.
2913
900fa1f1
GM
2914 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
2915
2916 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
2917 x_free_colors.
2918
2919 * dispextern.h (x_free_colors): Add prototype.
2920
2921 * xfaces.c (x_free_colors): New function.
2922 (unload_color, free_face_colors): Use it.
2923
2f950292
EZ
29242000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2925
2926 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
2927
2928 * window.c [MSDOS]: Include msdos.h.
2929
54d04320
DL
29302000-03-02 Dave Love <fx@gnu.org>
2931
2932 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
2933
2934 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
2935 set C_OPTIMIZE_SWITCH for gcc.
2936
0ba93ac4
KH
29372000-03-02 Kenichi Handa <handa@etl.go.jp>
2938
2939 * coding.c (coding_save_composition): Be sure to allocate
2940 composition data area in coding even if there's no composition in
2941 the current run.
2942
a2bc11d4
JR
29432000-03-01 Jason Rumney <jasonr@gnu.org>
2944
2945 * w32term.c: Equivalent changes to those made to xterm.c on
2946 2000-02-25 and 2000-02-24.
2947
2948 * w32fns.c: Equivalent changes to those made to xfns.c on
2949 2000-02-25 and 2000-02-21.
2950
2951 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
2952 correct line-end convention is followed.
2953
2954 * w32menu.c [HAVE_BOXES]: Remove #undef.
2955 (single_keymap_panes): Remove code for simulating checkmarks.
2956 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
2957 Remove code for drawing simulated checkmarks.
2958 (w32_menu_show): make unibyte help string correctly.
2959 (add_menu_item): draw standard Windows checkmarks. Draw radio
2960 buttons as radio buttons if possible.
2961
72d19d75
GM
29622000-03-01 Gerd Moellmann <gerd@gnu.org>
2963
2df636f4
GM
2964 * sysdep.c (start_of_text): Don't define this function for NetBSD
2965 with ELF.
2966
427ec082 2967 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
2968 Don't define.
2969 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
2970 (LINKER): Don't undef if __NetBSD__ is defined.
2971
2972 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
2973
2974 * fileio.c [__NetBSD__]: Define `unix'.
2975
72d19d75
GM
2976 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
2977
ed4d0512
GM
29782000-02-29 Gerd Moellmann <gerd@gnu.org>
2979
50b1039f
GM
2980 * atimer.c (start_atimer): Don't abort when timers are stopped.
2981 (append_atimer_lists): New function.
2982 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
2983 arbitrary lists of stopped and running atimers.
2984
ed4d0512
GM
2985 * atimer.c (cancel_atimer): Handle canceling an atimer when
2986 some timers are stopped.
2987
2988 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
2989 after canceling it.
2990
2991 * fns.c (maybe_resize_hash_table): Handle case of new size
2992 coming out as being the same as old size.
2993
387023ee
JR
29942000-02-27 Jason Rumney <jasonr@gnu.org>
2995
2996 * makefile.nt: Add atimer.h to dependencies.
2997 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
2998 * w32console.c: Only disable window system features for dispextern.h
2999 (initialize_w32_display): Build a display info for the console.
3000 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3001 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3002 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3003 as 2 button mice.
3004 * w32gui.h (struct W32FontStruct): Revert last change after change
3005 to xdisp.c.
3006 * w32menu.c (single_submenu): Set up help string.
3007 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3008 (w32_dialog_show): Set up help string.
3009 * w32term.c (w32_display_info_for_display): Remove unused function.
3010 (w32_draw_bitmap): Use pre-built bitmaps.
3011 (w32_initialize_display_info): New function to initialize parts of
3012 display info that are common to both GUI and console frames.
3013 (w32_term_init): Use w32_initialize_display_info. Do not set
3014 Vw32_num_mouse_buttons here, as it is not called for console
3015 frames. Build bitmaps for indicating truncated lines etc.
3016 (x_delete_display): Destroy pre-built bitmaps.
3017 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3018 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3019
4516715a
DL
30202000-02-27 Dave Love <fx@gnu.org>
3021
3022 * lisp.h: Add a bunch of prototypes.
3023
171ca836
KH
30242000-02-26 Kenichi Handa <handa@etl.go.jp>
3025
3026 * keyboard.c (read_char): Set `usec' correctly.
3027
4013921d
KH
30282000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3029
3030 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3031 `lambda', set reg[RRR] to the map index.
3032 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3033 reg[RRR] to 0. Otherwise, set it to -1.
3034
9244a058
GM
30352000-02-25 Gerd Moellmann <gerd@gnu.org>
3036
2df636f4 3037 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3038
f43d79c1 30392000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3040
f43d79c1
GM
3041 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3042 and contains a `:', prepend `/:'.
3043
3044 * window.c (select_window_1): If selected_window is nil,
3045 don't "swap out" the buffer's point.
3046 (Fset_window_configuration): Set selected_window to nil
3047 before calling Fselect_window.
3048 (unshow_buffer): Don't set point in buffer from window's point
3049 if another more recently selected window also shows the buffer.
3050
bed0c171
GM
30512000-02-25 Gerd Moellmann <gerd@gnu.org>
3052
449c3c52
GM
3053 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3054
f5b58615
GM
3055 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3056 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3057 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3058 variables.
3059 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3060 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3061 (hide_busy_cursor): New functions.
3062 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3063
3064 * minibuf.c (read_minibuf): Cancel busy-cursor.
3065
3066 * keyboard.c (command_loop_1): Call start_busy_cursor before
3067 Fcommand_execute and cancel_busy_cursor after it.
3068 (timer_check): Remove busy-cursor code.
3069 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3070 cursor timer.
3071
3072 * process.c (wait_reading_process_input): Remove busy-cursor code.
3073
3074 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3075 Fx_hide_busy_cursor.
3076
3077 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3078 Remove prototyoes.
3079 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3080
3081 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3082
3083 * xterm.c (XTread_socket): Remove busy-cursor code.
3084
4eb8436f
GM
3085 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3086 (build_frame_matrix_from_leaf_window): Put code handling
3087 glyph row's not being a slice of a frame row in #if 0.
3088 (sync_window_with_frame_matrix_rows): New function.
3089 (frame_row_to_window): New function.
3090 (mirror_line_dance): Handle copies between windows.
3091
3cb65b0e
GM
3092 * lread.c (Fload): Use `xfree' instead of `free'.
3093 (init_obarray): Use `xmalloc' instead of `malloc'.
3094
bed0c171
GM
3095 * window.c (Fset_window_buffer): Set WINDOW to the window
3096 after decoding.
2add4349
GM
3097 (coordinates_in_window): Take frame's internal border width
3098 into account.
bed0c171 3099
42088c12
GM
31002000-02-24 Gerd Moellmann <gerd@gnu.org>
3101
3102 * xterm.c (x_display_and_set_cursor): Display cursor of
3103 non-selected windows depending on the setting of
3104 cursor_in_non_selected_windows.
3105
3106 * xdisp.c (cursor_in_non_selected_windows): New variable.
3107 (syms_of_xdisp): DEFVAR_BOOL it.
3108
d1e103b2
GM
31092000-02-23 Gerd Moellmann <gerd@gnu.org>
3110
723e779c
GM
3111 * data.c (Fstring_to_number): If number is greater than what
3112 fits into an integer, return a float.
3113
d1e103b2
GM
3114 * eval.c (specbind): Remove references to
3115 keyword_symbols_constant_flag.
3116
3117 * data.c (keyword_symbols_constant_flag): Removed.
3118 (Fmakunbound, set_internal, syms_of_data): Remove references to
3119 keyword_symbols_constant_flag.
3120
3121 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3122
214f877f
KH
31232000-02-23 Kenichi Handa <handa@etl.go.jp>
3124
3125 * syntax.c (multibyte_syntax_as_symbol): New variable.
3126 (syms_of_syntax): Declare it as a Lisp variable.
3127 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3128 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3129 nonzero, treat all multibyte characters as symbol.
42088c12 3130 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3131 characters.
3132
130adcb7
EZ
31332000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3134
3cb65b0e 3135 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3136 a deleted frame.
3137
17cbbf95
GM
31382000-02-21 Gerd Moellmann <gerd@gnu.org>
3139
3140 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3141
3142 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3143 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3144
beb0bc36
DL
31452000-02-21 Dave Love <fx@gnu.org>
3146
3147 * frame.c (Vmouse_position_function): New variable.
3148 (Fmouse_position): Use it.
3149 (syms_of_frame): Install it.
3150
3151 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3152
1d92afcd
GM
31532000-02-20 Gerd Moellmann <gerd@gnu.org>
3154
3155 * fileio.c (Finsert_file_contents): Unbind the binding of
3156 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3157
3158 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3159 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3160 (specbind, unbind_to): Handle most common case of non-constant
3161 symbol with trivial value specially.
3162
3163 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3164
2d06696f
RS
31652000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3166
3167 * data.c (Fmake_variable_buffer_local): Doc fix.
3168 Init found_for_buffer to 0.
3169 (Fmake_variable_frame_local): If the variable has already
3170 been buffer-local, set the check_frame field.
3171
1d4311c3
EZ
31722000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3173
3174 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3175 produced for CODING_MODE_LAST_BLOCK requires.
3176
2dc95ddd
DL
31772000-02-18 Dave Love <fx@gnu.org>
3178
3179 * keyboard.c (echo_keystrokes): Remove declaration.
3180 (Vecho_keystrokes) New variable.
3181 (read_char, record_menu_key, read_key_sequence): Use it to allow
3182 use of float value.
3183 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3184
3185 * lread.c: Undef feature selection macros before defining.
3186
f0930f35
GM
31872000-02-18 Gerd Moellmann <gerd@gnu.org>
3188
3189 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3190 for symbols other than the symbol in question.
3191
e3d4de90
DL
31922000-02-17 Dave Love <fx@gnu.org>
3193
3194 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3195
0b378936
GM
31962000-02-17 Gerd Moellmann <gerd@gnu.org>
3197
d621caf7
GM
3198 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3199
0b378936
GM
3200 * alloc.c (enum mem_type): Compile unconditionally.
3201
3b451f74
EZ
32022000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3203
3204 * xfaces.c (tty_defined_color): Don't return faulire indication
3205 for unspecified-fg and unspecified-bg pseudo-colors.
3206
10689a01
GM
32072000-02-17 Gerd Moellmann <gerd@gnu.org>
3208
1216f5e4
GM
3209 * alloc.c (mark_object): Don't mark symbol names in pure space.
3210 (gc_sweep): Don't unmark symbol names in pure space.
3211
3212 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3213 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3214 [GC_MARK_STACK]: New defines.
427ec082 3215 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3216 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3217
3218 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3219
3220 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3221 allocate_buffer instead of xmalloc.
3222
3223 * alloc.c (toplevel): Include setjmp.h.
3224 (PURE_POINTER_P): New define.
3225 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3226 (Vdead) [GC_MARK_STACK]: New variable.
3227 (lisp_malloc): Add parameter TYPE, call mem_insert if
3228 GC_MARK_STACK is defined.
3229 (allocate_buffer): New function.
427ec082 3230 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3231 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3232 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3233 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3234 (MEM_NIL) [GC_MARK_STACK]: New define.
3235 (struct mem_node) [GC_MARK_STACK]: New structure.
3236 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3237 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3238 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3239 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3240 (mark_stack) [GC_MARK_STACK]: New functions.
3241 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3242 (clear_marks): Removed.
3243 (gc_sweep): Set free conses' car, free floats' type, free
3244 symbols' function to Vdead. Use lisp_free to free buffers.
3245 (init_alloc_once): Initialize Vdead.
3246 (survives_gc_p): Return non-zero for pure objects.
3247
3248 * alloc.c: Add comments throughout the file.
3249
2503c8b1
GM
3250 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3251 that unblocks alarms.
3252
8389e1e2
GM
3253 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3254 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3255 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3256
10689a01 3257 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3258
bfc17d18
KH
32592000-02-17 Kenichi Handa <handa@etl.go.jp>
3260
4a09dee0
KH
3261 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3262 avoid infinite error signaling. Allocate sufficient memory for
3263 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3264
2b927d02
SM
32652000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3266
3267 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3268 depends on the previous behavior.
3269
b49cb764
GM
32702000-02-16 Gerd Moellmann <gerd@gnu.org>
3271
3272 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3273
99e95407
GM
32742000-02-15 Gerd Moellmann <gerd@gnu.org>
3275
3276 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3277
3278 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3279 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3280 write(2).
3281
6ffd3cf7
RS
32822000-02-15 Richard M. Stallman <rms@gnu.org>
3283
3284 * data.c (set_internal): Don't make variable buffer-local
3285 if within a let-binding for the same buffer.
3286 (let_shadows_buffer_binding_p): New function.
3287
3288 * eval.c (specbind): For buffer-local value,
3289 record the current buffer also.
3290 (unbind_to): Cope with that change.
3291
cad53475
GM
32922000-02-15 Gerd Moellmann <gerd@gnu.org>
3293
3294 * window.c (Fsave_window_excursion): Doc fix.
3295
1aa963c8
SM
32962000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3297
3298 * syntax.c (back_comment): Make sure we only consider comment-starters
3299 of the relevant style and return -1 in case of a failure to find the
3300 beginning of the comment.
3301 (Fforward_comment): If back_comment fails, go back to the position just
3302 after the comment-end.
3303 (scan_lists): Add comment describing a very minor bug.
3304
b9b84fd3
SM
33052000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3306
3307 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3308 `completion-regexp-list' in the docstring.
3309
3a28db80
DL
33102000-02-14 Dave Love <fx@gnu.org>
3311
3312 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3313
fb4a568d
SM
33142000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3315
3316 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3317 to Emacs' syntax. Also fix the comment about set/not-set meanings
3318 since Emacs syntax is not the value 0 any more.
3319 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3320 since it's now part of RE_SYNTAX_EMACS.
3321
1063ebb5
DL
33222000-02-12 Dave Love <fx@gnu.org>
3323
3324 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3325 Alpha.
3326
fb07a302
GM
33272000-02-12 Gerd Moellmann <gerd@gnu.org>
3328
3329 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3330
aaf2320c
DL
33312000-02-12 Dave Love <fx@gnu.org>
3332
3333 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3334
3335 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3336 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3337 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3338
3339 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3340
3341 * s/nextstep.h: Don't define HAVE_ALLOCA.
3342
3343 * config.in: Add vfork bits.
3344
eedf8bde
GM
33452000-02-12 Gerd Moellmann <gerd@gnu.org>
3346
3347 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3348 unwind function to undo the effect of stopping atimers.
3349
3350 * keyboard.c (bind_polling_period): Stop all timers except
3351 poll_timer.
3352
3353 * atimer.c (stopped_atimers): New variable.
3354 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3355 New functions.
3356
3357 * atimer.h (stop_other_atimers, run_all_atimers)
3358 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3359
eedf8bde
GM
3360 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3361
8476c2f8
KR
33622000-02-11 Ken Raeburn <raeburn@gnu.org>
3363
3364 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3365 library may depend on jpeg.
3366 (atimer.o): Depends on atimer.c.
3367
0e85e4a3
KH
33682000-02-11 Kenichi Handa <handa@etl.go.jp>
3369
3370 * insdel.c (del_range_1): Call update_compositions.
3371 (del_range_both): Call update_compositions just once..
3372
97fa0cc8
DL
33732000-02-10 Dave Love <fx@gnu.org>
3374
3375 * xfns.c (create_frame_xic): Fix initialization of automatic
3376 aggregates for pcc.
3377
25566a3c
KH
33782000-02-09 Kenichi Handa <handa@etl.go.jp>
3379
3380 * ccl.c (CCL_MAKE_CHAR): New macro.
3381 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3382 registers by CCL_MAKE_CHAR before calling translate_char.
3383 <CCL_TranslateCharacterConstTbl> Likewise.
3384
69da54ba
DL
33852000-02-08 Dave Love <fx@gnu.org>
3386
3387 * lread.c (__EXTENSIONS__): Define.
3388
f7136ee8
GM
33892000-02-08 Gerd Moellmann <gerd@gnu.org>
3390
3391 * puresize.h (BASE_PURESIZE): Increase to 650000.
3392
7768790b
EZ
33932000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3394
3395 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3396 the help message.
3397
38fd211b
EZ
33982000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3399
3400 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3401 md, mh, mb, mr, and me to the fake termcap entry.
3402
66e4690f
KR
34032000-02-06 Ken Raeburn <raeburn@gnu.org>
3404
3405 * sound.c (sound_cleanup): Don't call device close routine if the
3406 function pointer is null.
3407
a75dfea0
AI
34082000-02-06 Andrew Innes <andrewi@gnu.org>
3409
3410 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3411 around image definitions and prototypes.
3412 (gamma_correct) [WINDOWSNT]: New prototype.
3413
3414 * w32term.c (x_make_frame_visible): Replace call to
3415 input_poll_signal with poll_for_input.
3416
3417 * window.c [WINDOWSNT]: Include w32term.h.
3418
3419 * xdisp.c [WINDOWSNT]: Include w32term.h.
3420
3421 * makefile.nt: Add dependencies on w32gui.h.
3422 (OBJ1): Include atimer.obj.
3423 ($(BLD)\atimer.obj): New dependency rule.
3424
3425 * w32.c (sigmask): New function (does nothing).
3426 (sigunblock): Ditto.
3427
3428 * frame.c [WINDOWSNT]: Include w32term.h.
3429
3430 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3431
3432 * lread.c (syms_of_lread): Fix literal newlines.
3433
3434 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3435 the string constant limit (2048 bytes) in MSVC.
3436 (main): Ditto.
3437
59ddecde
GM
34382000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3439
3440 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3441 area.
3442 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3443 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3444 dispatch the event.
3445
07590973
DL
34462000-02-04 Dave Love <fx@gnu.org>
3447
3448 * fileio.c: Remove some unused vars.
3449 (_GNU_SOURCE): Define (for euidaccess).
3450
3451 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3452
3453 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3454 gcpro1, gcpro2.
3455 (read_minibuf): Deal with allow_props correctly.
3456
649351f9
EZ
34572000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3458
3459 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3460
66e4690f 34612000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3462
3463 * search.c (compile_pattern): If a cache entry has a nil regexp,
3464 fill in that entry instead of clobbering a previously cached
3465 string regexp.
3466
66e4690f 34672000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3468
3469 * puresize.h (BASE_PURESIZE): Increase to 610000.
3470
d240a249
GM
34712000-02-02 Gerd Moellmann <gerd@gnu.org>
3472
3473 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3474 can GC.
3475
ca91fb26
KH
34762000-02-02 Kenichi Handa <handa@etl.go.jp>
3477
25660570
KH
3478 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3479 instead of incrementing ic directly.
3480 <CCL_WriteExprConst> Likewise.
3481 <ccl_set_expr>: Set ic to jump_address.
3482
ca91fb26
KH
3483 * fileio.c (e_write): Fix the handling of
3484 CODING_FINISH_INSUFFICIENT_SRC.
3485
2ede9689
DL
34862000-02-01 Dave Love <fx@gnu.org>
3487
3488 * editfns.c (Fpropertize): Doc fix.
3489
3490 * process.c (Fstart_process): Doc fix.
3491
3492 * eval.c: Fix various doc strings not to duplicate information
3493 from help-manyarg-func-alist.
3494
3495 * window.c (Fset_window_margins): Don't make interactive. Doc
3496 fix.
3497
3498 * doc.c (Vhelp_manyarg_func_alist): New variable.
3499 (Fdocumentation): Use it.
3500 (syms_of_doc): Define it.
3501
b6680a0e
GM
35022000-01-31 Gerd Moellmann <gerd@gnu.org>
3503
2cb750ba
GM
3504 * xterm.c (xim_open_dpy): Remove unused local variable.
3505
74e9213b
GM
3506 * emacs.c (USAGE): Use term `display options' instead of `X
3507 options'.
3508
3509 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3510 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3511
b6680a0e
GM
3512 * fns.c (sweep_weak_table): New function.
3513 (sweep_weak_hash_tables): Use it. Keep on marking until there
3514 is no more change.
3515
994c5afe
GM
35162000-01-30 Gerd Moellmann <gerd@gnu.org>
3517
3518 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3519 that XTread_socket does not crash by trying to call XNoOp on a
3520 closed display.
427ec082 3521
f00276e3
JR
35222000-01-30 Jason Rumney <jasonr@gnu.org>
3523
3524 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3525 Change selected_frame to SELECTED_FRAME ().
3526 (w32_console_mouse_position): Remove #ifndef MULE from around
3527 `insist' parameter.
3528
3529 * makefile.nt: Remove dosfns.obj.
3530
3531 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3532
3533 * w32fns.c (w32_defined_color): Check for valid frame before
3534 applying gamma correction. Eliminate dependency on frame elsewhere.
3535 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3536 (w32_to_x_font): Use resx and resy not height_in and width_in.
3537 (x_to_w32_font): Doc fix.
3538 (xlfd_strip_height): New function to strip and return font height.
3539 (w32_font_match): Compare height separately from rest of xlfd
3540 spec, using xlfd_strip_height.
3541
3542 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3543 width_in. Use w32_defined_color in place of defined_color.
3544
3545 * w32faces.c: Merge more of DOS and X specifics in preparation for
3546 merge with xfaces.c.
3547 (defined_color): Remove FIXME comment.
3548 (tty_color_name): Provide w32-specific function.
3549 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3550
3551 * w32console.c (turn_on_face, turn_off_face): Removed.
3552 (w32_face_attributes): New function.
3553 (Global_variables): Reduce scope where possible.
3554 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3555 fill attribute.
3556 (hl_mode): Don't modify text attributes.
3557 (write_glyphs): Don't do anything if len <= 0. Use
3558 w32_face_attributes to get attributes for drawing. Write
3559 terminating codes using char_attr_normal.
3560 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3561 (update_begin, update_end): Likewise.
3562 (vga_stdcolor_name): New function.
3563 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3564 (Fset_screen_color): Remove char_attr_reverse.
3565
b08e8bb2
GM
35662000-01-29 Gerd Moellmann <gerd@gnu.org>
3567
3568 * xfns.c (xic_set_preeditarea): Take window parameter and
3569 window-relative pixel-positions.
3570
3571 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3572 is its frame's selected window.
3573 (xim_instantiate_callback): Likewise.
3574
3575 * xfns.c (x_create_im): Removed.
3576 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3577 (supported_xim_styles): Renamed from supported_styles.
3578 (best_xim_style): Renamed from best_style.
3579 (create_frame_xic): Renamed from xic_create_frame.
3580 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3581
b08e8bb2
GM
35822000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3583
3584 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3585 our frames, call XFilterEvent with 2nd parameter `None'.
3586 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3587 returning XBufferOverflow.
3588 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3589 area.
3590 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3591 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3592 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3593 (xim_initialize, xim_close)
3594 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3595 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3596 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3597 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3598
3599 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3600 and `xim_styles'.
3601 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3602 `xic_style' and `xic_xfs'.
3603 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3604 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3605 (FRAME_XIM): Removed.
3606
3607 * xfns.c (supported_styles): New variable.
3608 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3609 (xic_create_xfontset, best_style, xic_create_frame)
3610 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3611 (xic_set_xfontset): New functions.
3612
142e109c
DL
36132000-01-28 Dave Love <fx@gnu.org>
3614
3615 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3616
3617 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3618
b02786f9
GM
36192000-01-28 Gerd Moellmann <gerd@gnu.org>
3620
d060bc9f
GM
3621 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3622 for *scratch* if it already existed.
3623
b02786f9
GM
3624 * emacs.c (USAGE): New macro.
3625 (main): Use it to display usage information.
3626
2c52d7e4
EZ
36272000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3628
3629 Support for the menu-help feature:
3630
3631 * msdos.h: Change prototypes of XMenuAddSelection and
3632 XMenuActivate.
3633
3634 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3635 part of the line to the termscript file.
3636 (IT_clear_to_end): Clear the entire line, not just its beginning.
3637 (menu_help_message, prev_menu_help_message): New variables.
3638 (IT_menu_make_room): Make room for the help_text member.
3639 (IT_menu_display): New argument disp_help; all callers changed.
3640 If disp_help is non-zero, store the help text of the active menu
3641 item in menu_help_message.
3642 (XMenuAddPane): Initialize the help_text member to NULL.
3643 (XMenuAddSelection): New argument help_text. Store it in the
3644 XMenu structure.
3645 (XMenuActivate): New argument help_callback. If the value of
3646 menu_help_message has changed since the last time, display the
3647 menu help message text while waiting for the mouse to move. Clear
3648 the echo area before exiting.
3649 (XMenuDestroy): Free the help_text member.
3650
ffe0bcd1
GM
36512000-01-27 Gerd Moellmann <gerd@gnu.org>
3652
3653 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3654 XMenuAddSelection. Pass help callback to XMenuActivate.
3655 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3656
50dbd23f
EZ
36572000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3658
3659 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3660 and EMACS_SET_USECS.
3661
f5941bf8
GM
36622000-01-26 Dave Love <fx@gnu.org>
3663
6c67ddee
DL
3664 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3665
f5941bf8
GM
3666 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3667 an error may be signalled.
3668
9e49c990
GM
36692000-01-26 Gerd Moellmann <gerd@gnu.org>
3670
fc3cb460
GM
3671 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3672 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3673
9e49c990
GM
3674 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3675
d0c037d8
GM
36762000-01-25 Gerd Moellmann <gerd@gnu.org>
3677
3678 * charset.c (Fstring): If there is a multibyte char among
3679 the args, always return a multibyte string.
3680
e12489f9
GM
36812000-01-25 Gerd Moellmann <gerd@gnu.org>
3682
3683 * sysdep.c (sys_select): Turn atimers off and on instead of
3684 recording and restoring old alarm handler
3685
3686 * process.c (toplevel): Include atimer.h.
3687 (create_process_1): Rewritten.
3688 (create_process): Use atimers instead of alarm.
3689 (wait_reading_process_input) [hpux]: Turn atimers off instead
3690 of turning off SIGALRM.
3691 (wait_reading_process_input): Turn off atimers instead off
3692 calling stop_polling.
3693
3694 * emacs.c (main): Call init_atimer.
3695
3696 * keyboard.c (toplevel): Include systime.h and atimer.h.
3697 (polling_for_input): Removed because unused.
3698 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3699 (poll_timer): New variable.
3700 (poll_for_input, poll_for_input_1): New functions.
3701 (start_polling, stop_polling): Rewritten.
3702
3703 * keyboard.h (polling_for_input): Removed.
427ec082 3704
e12489f9
GM
3705 * atimer.h, atimer.c: New files.
3706
3707 * Makefile.in (obj): Add atimer.o.
3708 (atimer.o): New target.
3709
3710 * blockinput.h (pending_atimers): Add extern declaration.
3711 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3712
3713 * lisp.h (popup_activated_flag): Add extern declaration.
3714
3715 * xmenu.c (popup_activated_flag): Make externally visible.
3716 (popup_activate_callback) [USE_MOTIF]: Increment
3717 popup_activated_flag.
3718 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3719
3720 * xterm.c (toplevel): Include atimer.h.
3721 (toolkit_scroll_bar_interaction): New variable.
3722 (Fxt_process_timeouts): Removed.
3723 (x_process_timeouts): New function.
3724 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
3725 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
3726 (x_make_frame_visible): Call poll_for_input_1 instead of
3727 input_poll_signal. Don't call alarm.
3728 (x_initialize): Install timer calling x_process_timeouts.
427ec082 3729
1e5279b9
DL
37302000-01-24 Dave Love <fx@gnu.org>
3731
6c67ddee 3732 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
3733 Don't use -cckr -- apparently not now necessary.
3734
edf6aeb8
EZ
37352000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3736
3737 * msdos.c (IT_menu_display): Truncate long menu lines at the right
3738 screen boundary.
3739
9badad41
JR
37402000-01-23 Jason Rumney <jasonr@gnu.org>
3741
3742 * w32fns.c (w32_defined_color): Apply gamma correction before
3743 trying to map to the palette.
3744 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
3745 to w32_clear_rect.
3746
3747 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
3748 here. Callers changed to always pass real device context.
3749 (w32_draw_bitmap): Likewise.
3750 (w32_get_glyph_overhangs): Likewise.
3751 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
3752 one.
3753 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
3754 pfnSetScrollInfo and SetScrollRange.
3755 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
3756 back into MULE characters after decoding them.
3757 (x_get_glyph_face_and_encoding): Likewise.
3758 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
3759 GetCharABCWidthsW fails, since this is defined on Windows 9x.
3760 (x_produce_glyphs): Calculate per char metrics for a character
3761 that we know exists in default font when font_not_found_p is true.
3762
63bd786b
JR
37632000-01-22 Jason Rumney <jasonr@gnu.org>
3764
3765 * makefile.nt (intervals.obj, composite.obj): New modules.
3766 (composite.h): Added as dependency where appropriate.
3767
3768 * w32gui.h (XGCValue): New struct for emulating X GCs.
3769
3770 * w32term.h (XCharStruct): New struct for emulating X.
3771
3772 * w32console.c (turn_on_face, turn_off_face): New functions.
3773 (change_line_highlight): New prototype for new redisplay.
3774 (write_glyphs): Support multibyte text. Support faces.
3775
3776 * w32faces.c: Complete rewrite for new redisplay based on new
3777 xfaces.c.
3778
3779 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
3780 throughout. struct frame * in place of FRAME_PTR.
3781 Skeleton support for images, toolbars, tooltips from xfns.c.
3782 (Fx_create_frame): Use system default for default scroll bar
3783 width.
3784 (w32_get_arg): Renamed from x_get_arg.
3785 (Fx_file_dialog): New function.
3786 (w32_list_fonts): Check cache before asking system.
3787 (Vw32_enable_synthesized_fonts): New variable.
3788 (Vw32_enable_italics): Obsolete, removed.
3789
3790 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3791 Use SELECTED_FRAME macro.
3792
3793 * w32menu.c: Add skeleton support for help strings on menus.
3794 (add_menu_item): Native checkbox and radio support added, but not
3795 yet enabled due to bugs.
3796 (push_menu_item): Add parameters type, selection and help.
3797 Callers updated.
3798 Formatting changes to reduce unnecessary diffs with xmenu.c.
3799
3800 * w32select.c (Fw32_set_clipboard_data): Update call to
3801 find_charset_in_str.
3802
3803 * w32term.c: Complete rewrite for new redisplay based on new
3804 xterm.c with necessary sections merged back in from old w32term.c.
3805
6ffd3cf7 38062000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
3807
3808 * data.c (set_internal): Further fix in same criterion.
3809
6ffd3cf7 38102000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
3811
3812 * data.c (set_internal): Fix the criteria for whether
3813 to swap out the old cached binding.
3814
60af03f1
DL
38152000-01-19 Dave Love <fx@gnu.org>
3816
3817 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
3818
f9be074f
KH
38192000-01-18 Kenichi Handa <handa@etl.go.jp>
3820
3821 * regex.c (re_compile_fastmap): While checking a range table for
3822 `charset', skip flag bits for a character class correctly.
3823
52b8dbf9
GM
38242000-01-17 Gerd Moellmann <gerd@gnu.org>
3825
d36100c9
GM
3826 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
3827
52b8dbf9
GM
3828 * xfns.c (x_window): Call lw_create_widget with new parameter
3829 list.
3830
3831 * widget.c (EmacsFrameSetCharSize): Change size of children first
3832 because of problems with main window geometry management under
3833 Lesstif.
3834
3835 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
3836 MENU_ITEMS_ITEM_.*.
3837 (MENU_ITEMS_ITEM_HELP): New enumerator.
3838 (push_menu_item): Add parameter HELP. Record help in menu_items.
3839 (single_menu_item, single_submenu, list_of_items): Call
3840 push_menu_item with new parameter.
3841 (single_submenu): Set help string in widget value.
3842 (menu_highlight_callback): New function.
3843 (set_frame_menubar): Call lw_create_widget with new
3844 parameter list.
3845 (xmenu_show, xdialog_show): Ditto.
3846
3139018f
GM
38472000-01-13 Gerd Moellmann <gerd@gnu.org>
3848
3849 * sound.c (Fplay_sound): Improve doc string.
3850
83c8f461
RS
38512000-01-11 Richard M. Stallman <rms@gnu.org>
3852
3853 * lisp.h (set_internal): Enter the new arg.
3854
3855 * eval.c (specbind): Record buffer-local variables specially,
3856 indicating which buffer's binding was saved.
3857 (unbind_to): Restore buffer-local variables specially
3858 in the proper buffer.
3859
3860 * data.c (set_internal): New arg BUF.
427ec082 3861
83c8f461
RS
3862 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
3863 * data.c (Fset): Pass new arg to set_internal.
3864 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 3865
1fab1775
GM
38662000-01-11 Gerd Moellmann <gerd@gnu.org>
3867
3868 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
3869 xprintsym.
3870
83c8f461 38712000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
3872
3873 * minibuf.c (Ftry_completion): Doc fix.
3874
7a85e4df
GM
38752000-01-11 Gerd Moellmann <gerd@gnu.org>
3876
3877 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
3878 vector, too.
3879
a970dae4
AS
38802000-01-11 Andreas Schwab <schwab@suse.de>
3881
3882 * coding.c (code_convert_region): Initialize total_skip.
3883
c65d14ee
DL
38842000-01-08 Dave Love <fx@gnu.org>
3885
3886 * eval.c (Fuser_variable_p): Check customizability too.
3887
834938d2
GM
38882000-01-07 Gerd Moellmann <gerd@gnu.org>
3889
3890 * minibuf.c (Fcompleting_read): Doc fix.
3891
e0303cd6
GM
38922000-01-05 Gerd Moellmann <gerd@gnu.org>
3893
8a26744b
GM
3894 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
3895 -L /usr/local/lib.
3896
e0303cd6
GM
3897 * xfns.c (x_create_im): New function to set IM and IC of a frame.
3898 Check that input style is supported before trying to create an
3899 IC for it.
3900 (x_window): Call x_create_im.
427ec082 3901
2e471eb5
GM
39022000-01-04 Gerd Moellmann <gerd@gnu.org>
3903
560a7bd2
GM
3904 * xfns.c (current_gif_memory_src): New variable.
3905 (gif_load): Record the address of the current memory source
3906 in current_gif_memory_src.
3907 (gif_read_from_memory): Use current_gif_memory_src.
3908
f9ee84a3
GM
3909 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
3910 macros statement form.
3911
d1299cde
GM
3912 * sound.c (struct sound): Renamed from struct sound_file.
3913 (struct sound): Add members `data' and `header_size'.
3914 (enum sound_attr): Add SOUND_DATA.
3915 (current_sound, current_sound_device): Variables renamed from
3916 sound_file and sound_device.
3917 (parse_sound): Parse :data.
3918 (parse_sound): Handle sound data in strings.
3919 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 3920 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
3921 needed header size.
3922 (wav_play, au_play): Play sounds from string data.
3923
2e471eb5
GM
3924 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
3925
3926 * lisp.h: Add prototype for allocate_string_data.
3927
3928 * alloc.c (Fgarbage_collect): Return number of live and free
3929 strings.
3930
3931 * alloc.c (mark_buffer): Remove code in #if 0.
3932 (gc_sweep): Ditto.
3933 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
3934 (strings_consed): New variable.
3935 (allocate_string): Set it.
3936 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
3937 (Fmemory_use_counts): Return strings_consed. Use Flist.
3938
3939 * alloc.c: General cleanup in comments etc. Remove conditional
3940 compilation for `standalone'.
3941
3942 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
3943
3944 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
3945 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
3946 (DONT_COPY_FLAG): Removed.
3947 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
3948 (struct sdata, struct sblock): New
3949 (struct string_block): Rewritten.
3950 (STRINGS_IN_STRING_BLOCK): New macro.
3951 (oldest_sblock, current_sblock, total_strings, total_free_strings)
3952 (large_sblocks, string_blocks, string_free_list): New variables.
3953 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
3954 (init_strings): Rewritten.
3955 (allocate_string, allocate_string_data, compact_small_strings)
3956 (free_large_strings, sweep_strings): New functions.
3957 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
3958 (struct string_block_head, current_string_block)
3959 (first_string_block, large_string_blocks, STRING_FULLSIZE)
3960 (STRING_PAD): Removed.
3961 (make_uninit_multibyte_string, make_pure_string): Rewritten.
3962 (Fgarbage_collect): Don't set mark bit in large strings.
3963 (mark_object): Mark strings differently. Mark symbol names
3964 differently.
3965 (survives_gc_p): Test marked strings differently.
427ec082 3966 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
3967 symbol names.
3968 (compact_strings): Removed.
3969
42608ba8
EZ
39702000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
3971
3972 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
3973 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
3974
e0a09e1a
KH
39752000-01-04 Kenichi Handa <handa@etl.go.jp>
3976
dd9f0750 3977 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 3978 in a non-empty buffer.
dd9f0750 3979
3c0f3b15 3980 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 3981
44cd3ae5
GM
39822000-01-03 Gerd Moellmann <gerd@gnu.org>
3983
3984 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
3985 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
3986
3987 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
3988
c182a70f
EZ
39892000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3990
3991 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
3992 need to test for MSDOS frames.
3993
24480d5b
EZ
39942000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3995
3996 * dosfns.c (unspecified_colors): Remove.
3997 (msdos_stdcolor_idx): Use global variables unspecified_fg and
3998 unspecified_bg.
3999 (msdos_stdcolor_name): Return strings for unspecified fore- and
4000 back-ground colors.
4001
4002 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4003 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4004 (tty_color_name): Return Lisp strings for unspecified fore- and
4005 back-ground colors.
4006 (Finternal_set_lisp_face_attribute): Remove the special treatment
4007 for Qunspecified_{f,b}g.
4008 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4009 string.
4010
047f434a
GM
40112000-01-03 Gerd Moellmann <gerd@gnu.org>
4012
4013 * xdisp.c (reseat_at_next_visible_line_start): Position before
4014 newline only if ending up on a newline.
4015 (next_element_from_ellipsis): Return success. Handle case of
4016 displaying no ellipsis. Fix case of ellipsis defined in display
4017 table.
4018 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4019 returns 0.
4020
d684c676
EZ
40212000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4022
4023 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4024 (Fcolor_supported_p): Renamed from face-color-supported-p.
4025
5fe1d139
EZ
40262000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4027
4028 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4029 list of colors renamed to tty-defined-color-alist.
4030 (tty_color_name): Pass the frame to tty-color-by-index.
4031 (realize_tty_face): tty-color-alist is now a function which
4032 accepts the frame as argument.
4033
4034 * term.c (Ftty_display_color_p): Accept an optional argument
4035 FRAME.
4036
816be8b8
EZ
40372000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4038
4039 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4040 encode_terminal_code.
4041
b635321e
EZ
40422000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4043
4044 * dispnew.c (mode_line_string): Support termcap frames as well.
4045
9b784e96
GM
40462000-01-01 Gerd Moellmann <gerd@gnu.org>
4047
27189709
GM
4048 * syntax.c (Fforward_word): Undo previous change.
4049
4050 * editfns.c (Fconstrain_to_field): Don't constrain if
4051 inhibit-field-text-motion is non-nil.
4052 (Fline_beginning_position): Undo previous change.
4053 (Fline_end_position): Ditto.
4054
4055 * syntax.c (Fforward_word): Notice field boundaries only if
4056 inhibit-field-text-motion is nil.
4057
4058 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4059
4060 * editfns.c (Vinhibit_field_text_motion): New variable.
4061 (inhibit-field-text-motion): New DEFVAR_LISP.
4062 (Fline_beginning_position, Fline_end_position): Notice field
4063 boundaries only if inhibit-field-text-motion is nil.
4064
45158a91
GM
4065 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4066 All calls adjusted.
4067 (x_build_heuristic_mask): Likewise.
4068 (xbm_load_image_from_file): Change error output.
4069 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4070 (gif_load, gs_load, x_kill_gs_process): Ditto.
4071
9b784e96
GM
4072 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4073 color indices when accessing raster pixels.
63cec32f
GM
4074 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4075 one of :file or :data.
4076 (enum pbm_keyword_index): Add PBM_DATA.
4077 (pbm_format): Add :data.
4078 (pbm_image_p): Allow either :file or :data.
4079 (pbm_read_file): New function.
4080 (pbm_scan_number): Rewritten to read from string.
4081 (pbm_load): Support :data.
9b784e96 4082
5ad6a5fb
GM
40831999-12-31 Gerd Moellmann <gerd@gnu.org>
4084
4085 * xfns.c: New image functions adapted to Emacs conventions.
4086 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4087 variable `file'.
4088
63448a4d
WP
40891999-12-31 William M. Perry <wmperry@aventail.com>
4090
4091 * xfns.c (jpeg_format): Added the :data keyword
4092 (jpeg_image_p): JPEG is valid with :file _or_ :data
4093 (jpeg_memory_src): Defined new JPEG image source to read from a
4094 memory buffer.
4095 (jpeg_load): Pay attention to the :data keyword if specified.
4096 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4097 found.
4098 (png_format): Added the :data keyword
4099 (png_image_p): PNG is valid with :file _or_ :data
4100 (png_read_from_memory): New PNG read function to read from a
4101 memory buffer.
4102 (png_load): Pay attention to the :data keyword if specified. Uses
4103 png_set_read_fn() instead of png_init_io() if specified.
4104 (tiff_format): Added the :data keyword for TIFF images.
4105 (tiff_image_p): TIFF is valid with :file _or_ :data
4106 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4107 from a memory buffer.
4108 (tiff_load): Pay attention to the :data keyword if specified.
4109 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4110 (gif_format): Added the :data keyword
4111 (gif_image_p): GIF is valid with :file _or_ :data
4112 (gif_read_from_memory): New GIF input function to read from a
4113 memory buffer.
c65d14ee 4114 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4115 instead of DGifOpenFileName() if specified.
4116
c880678e
GM
41171999-12-31 Gerd Moellmann <gerd@gnu.org>
4118
4119 * xdisp.c (next_element_from_buffer): Change assertion at the end
4120 because it doesn't hold when there's an overlay string at the end
4121 from which we deliver an image.
4122
8ccb9a54
EZ
41231999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4124
4125 * msdos.c (IT_update_begin): Don't dereference members of struct
4126 window for deleted windows.
4127
12ce2351
GM
41281999-12-30 Gerd Moellmann <gerd@gnu.org>
4129
a915c648
GM
4130 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4131 a hook, and the hook has a non-nil `no-self-insert' property, let
4132 the return value of the hook specify whether an expansion took
4133 place. If it returns nil, no expansion has been performed.
4134
12ce2351
GM
4135 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4136 differently.
4137
04ee4f45
EZ
41381999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4139
4140 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4141
7f4bc0c3
EZ
41421999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4143
4144 * dispnew.c (mode_line_string): Support MS-DOS frames.
4145
dac204bc
GM
41461999-12-29 Gerd Moellmann <gerd@gnu.org>
4147
4148 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4149
7b712ad8
KH
41501999-12-29 Kenichi Handa <handa@etl.go.jp>
4151
4152 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4153 to signal_after_change.
4154
adb9900f
EZ
41551999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4156
41ad069b
EZ
4157 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4158 dimensions changed, invalidate the mouse highlight info.
4159 (disable_mouse_highlight, help_echo, previous_help_echo): New
4160 variables.
4161 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4162 (fast_find_position, IT_note_mode_line_highlight)
4163 (IT_note_mouse_highlight): New functions.
4164 (IT_update_begin): If the redisplay affects the window where the
4165 mouse highlight is, clear the highlight. If the frame where the
4166 highlight was displayed was killed, invalidate the highlight
4167 info.
4168 (IT_update_end): Reset the highlight flag. Reset the mouse
4169 highlight-defer flag.
4170 (IT_frame_up_to_date): New function, if mouse highlight was
4171 deferred due to GC, do it now.
4172 (internal_terminal_init): Initialize mouse-highlight related
4173 members of the_only_x_display. Assign IT_frame_up_to_date to
4174 frame_up_to_date_hook.
4175 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4176 help_echo changed value, generate a HELP_EVENT event.
4177 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4178
adb9900f
EZ
4179 * msdos.h (struct display_info): New.
4180 (struct x_output): Add the display_info member.
4181 (FRAME_X_DISPLAY_INFO): New macro.
4182
481b5054
GM
41831999-12-28 Gerd Moellmann <gerd@gnu.org>
4184
4185 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4186 if MODIFF > 1.
6448a6b3 4187 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4188
4189 * buffer.c (modify_overlay): Always compute unchanged info.
4190
a2882b0d
KH
41911999-12-27 Kenichi Handa <handa@etl.go.jp>
4192
4193 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4194
89ba5b5f
KH
41951999-12-27 Kenichi Handa <handa@etl.go.jp>
4196
4197 The following changes are to use more bits for face IDs.
4198
4199 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4200 lowest 8 bits are single byte character code, the bits above are
4201 face ID.
481b5054 4202 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4203 above.
481b5054
GM
4204 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4205 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4206
4207 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4208 of GLYPH_MASK_CHAR.
4209
4210 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4211 of GLYPH_MASK_CHAR.
4212
4213 * dispextern.h (struct glyph): Make face_id and padding_p the top
4214 level members. Change members in union `u'.
4215 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4216 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4217 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4218 (CHAR_GLYPH_PADDING_P): Likewise.
4219 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4220 characters.
4221
481b5054 4222 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4223 for the change of struct glyph.
4224 (line_draw_cost): Adjusted for the change of
4225 GLYPH_FROM_CHAR_GLYPH.
4226 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4227
4228 * term.c (encode_terminal_code): Adjusted for the change of struct
4229 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4230 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4231 change of struct glyph.
4232
4233 * xdisp.c: All codes adjusted for the change of struct glyph.
4234
4235 * xterm.c: All codes adjusted for the change of struct glyph.
4236
5bcd116c
KH
42371999-12-27 Kenichi Handa <handa@etl.go.jp>
4238
4239 * composite.h (struct composition): Change the order of declaring
4240 members to reduce the byte size of the structure.
4241
f21b06b7
GM
42421999-12-25 Gerd Moellmann <gerd@gnu.org>
4243
4244 * search.c (looking_at_1): Reset immediate_quit before modifying
4245 global data.
4246
e36557c9
KH
42471999-12-24 Kenichi Handa <handa@etl.go.jp>
4248
4249 * process.c (read_process_output): Fix the arg FROM to
4250 update_compositions.
4251
83c8f461 42521999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4253
4254 * search.c (Freplace_match): For nonliteral replacement in buffer,
4255 construct all the new text first, then insert all at once.
4256
0b863bd9
DL
42571999-12-22 Dave Love <fx@gnu.org>
4258
4259 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4260
6d8e8ef3
GM
42611999-12-22 Gerd Moellmann <gerd@gnu.org>
4262
28d7281d
GM
4263 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4264 lead to size changes to after the X window has been created.
4265
e22ef6eb 4266 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4267 variable in xassert.
4268
8affcced
KH
42691999-12-22 Kenichi Handa <handa@etl.go.jp>
4270
4271 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4272 only when the frame is not for a window system.
8affcced 4273
f2be1146
GM
42741999-12-22 Gerd Moellmann <gerd@gnu.org>
4275
deca1348
GM
4276 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4277 redisplay after changing the multibyteness of a buffer.
4278
f2be1146
GM
4279 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4280 frame's X window to XFilterEvent instead of None because that's
4281 the X window for which the IC was created. This makes dead
4282 accents work when the pointer is not in Emacs' frame.
4283 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4284
a744a2ec
DL
42851999-12-20 Dave Love <fx@gnu.org>
4286
4287 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4288
9e6985ed
GM
42891999-12-19 Gerd Moellmann <gerd@gnu.org>
4290
4291 * eval.c (debugger_may_continue): New variable.
4292 (syms_of_eval): Add a DEFVAR_BOOL for it.
4293 (call_debugger): Bind it.
4294
3b620731
EZ
42951999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4296
4297 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4298 fp->tty_reverse_p is set, unless the computed colors are identical
4299 to frame colors. Print both original and computed colors to
4300 termscript file.
4301 (IT_write_glyphs): Track the changes in handling of composite
4302 characters.
4303 (IT_set_frame_parameters): Don't set frame colors from
4304 unspecified-fg and unspecified-bg pseudo-colors.
4305
0f9a51c4
DL
43061999-12-17 Dave Love <fx@gnu.org>
4307
4308 * data.c (Fkeywordp): New function.
4309 (syms_of_data): Install it.
4310
363e4e42
EZ
43111999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4312
4313 * xfaces.c (tty_defined_color): Fix last change.
4314
cfad01b4
GM
43151999-12-15 Gerd Moellmann <gerd@gnu.org>
4316
4317 * xdisp.c (redisplay_window) <optional new window start>: Check
4318 that window start is in [BEGV..ZV].
4319
f9d2fdc4
EZ
43201999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4321
4322 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4323 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4324
4325 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4326 (syms_of_xfaces): Initialize and staticpro them.
4327 (tty_defined_color): If the color name is unspecified-fg or
4328 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4329 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4330 (tty_color_name): If the color pixel value is either
4331 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4332 Qunspecified_fg or Qunspecified_bg, respectively.
4333 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4334 and Qunspecified_bg for foreground and background colors.
4335 (realize_default_face): If the foreground and background colors
4336 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4337 (realize_tty_face): By default, set the face colors to
4338 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4339 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4340 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4341 Reverse the colors if the default colors were reversed.
4342
4343 * dispnew.c (init_display): Initialize the frame pixels of the
4344 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4345 FACE_TTY_DEFAULT_BG_COLOR.
4346
4347 * term.c (turn_on_face): If the default fore- and background
4348 colors are reversed, enter inverse video mode. Don't send color
4349 escape sequences for unspecified foreground and background colors.
4350 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4351
4352 * dosfns.c (unspecified_colors): New variable.
4353 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4354 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4355 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4356 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4357 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4358 Qunspecified_bg, respectively.
4359
4360 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4361 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4362
e19539f1
KH
43631999-12-15 Kenichi Handa <handa@etl.go.jp>
4364
4365 * coding.c (code_convert_region): Fix the secoding arg to
4366 update_compositions.
4367
5ec14d3c
KH
43681999-12-15 Kenichi Handa <handa@etl.go.jp>
4369
4370 The following changes are for the new composition mechanism. We
4371 have deleted `composition' charset and composite characters,
4372 instead introduced a special text property `composition'.
4373
4374 * Makefile.in (INTERVAL_SRC): Include composite.h.
4375 (INTERVAL_OBJ): Include composite.o.
4376 (SOME_MACHINE_OBJECTS): Include composite.o.
4377 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4378 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4379 Depend on composite.h.
4380 (doc.o): Depend on charset.h.
4381 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4382 (composite.o): New target.
427ec082 4383
5ec14d3c
KH
4384 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4385
4386 * callproc.c (Fcall_process): Call code_convert_string to encode
4387 arguments. Use CODING_REQUIRE_DECODING to check if the process
4388 output should be decoded.
4389
4390 * casefiddle.c: Include composite.h.
4391 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4392 multibyte character. Adjusted for the change of CHAR_STRING.
4393 (casify_region): Likewise. Call update_compositions.
4394
4395 * category.h (CATEGORY_SET): Delete codes for a composite
4396 character.
4397
4398 * category.c (word_boundary_p): Delete codes for a composite
4399 character.
4400 (Fmake_category_table): New function.
4401 (syms_of_category): Defsubr it.
4402
4403 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4404 (ccl_driver): Delete codes for a composite character.
4405
4406 * charset.h: In this entry, just `Modified' means that codes for a
4407 composite character is deleted.
4408 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4409 (charset_composition) (MIN_CHAR_COMPOSITION)
4410 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4411 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4412 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4413 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4414 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4415 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4416 Modified.
4417 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4418 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4419 non_ascii_char_to_string.
4420 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4421 (STRING_CHAR_AND_LENGTH): Likewise.
4422 (FETCH_CHAR_ADVANCE): New macro.
4423 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4424 (MAX_MULTIBYTE_LENGTH): New macro.
4425 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4426 (find_charset_in_str): Argument adjusted.
4427 (CHAR_LEN): Modified.
427ec082 4428
5ec14d3c
KH
4429 * charset.c: In this entry, just `Modified' means that codes for a
4430 composite character is deleted.
4431 (Qcomposition) (leading_code_composition)
4432 (charset_composition) (min_composite_char) (cmpchar_table)
4433 (cmpchar_table_size) (n_cmpchars): Deleted.
4434 (SPLIT_COMPOSITE_SEQ): Deleted.
4435 (SPLIT_MULTIBYTE_SEQ): Modified.
4436 (char_to_string): Renamed from non_ascii_char_to_string.
4437 Modified.
4438 (string_to_char): Renamed from string_to_non_ascii_char.
4439 (split_string): Renamed from split_non_ascii_string.
4440 (char_printable_p) (Fsplit_char)
4441 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4442 (char_bytes) (Fchar_width) (strwidth): Modified.
4443 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4444 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4445 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4446 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4447 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4448 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4449 (Fcmpchar_cmp_count): Deleted.
4450 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4451 (init_charset_once): Modified.
4452 (syms_of_charset): Modified.
4453
4454 * cmds.c (internal_self_insert): Adjusted for the change of
4455 CHAR_STRING.
4456
4457 * coding.h (emacs_code_class_type): Delete the member
4458 EMACS_leading_code_composition.
4459 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4460 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4461 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4462 (COMPOSING_WITH_RULE_P): Macros deleted.
4463 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4464 macros.
4465 (struct composition_data): New structure.
4466 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4467 (struct coding_system): New members composition_rule_follows,
4468 cmp_data, cmp_data_start, cmp_data_index.
4469 (coding_save_composition) (coding_free_composition_data)
4470 (coding_adjust_composition_offset): Extern them.
4471
4472 * coding.c: Include composite.h.
4473 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4474 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4475 of multibyte code here.
4476 (DECODE_CHARACTER_DIMENSION2): Likewise.
4477 (detect_coding_emacs_mule): Change the case label from
4478 EMACS_leading_code_composition to 0x80.
4479 (detect_coding_iso2022): Handle new composition sequence.
4480 (DECODE_ISO_CHARACTER): Likewise.
4481 (check_composing_code): Deleted.
4482 (coding_allocate_composition_data): New function.
4483 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4484 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4485 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4486 (decode_coding_iso2022): Handle new composition sequence.
4487 (ENCODE_ISO_CHARACTER): Don't check composition here.
4488 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4489 (ENCODE_COMPOSITION_NO_RULE_START)
4490 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4491 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4492 (ENCODE_COMPOSITION_FAKE_START): New macro.
4493 (encode_coding_iso2022): Handle new composition sequence.
4494 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4495 (encode_coding_sjis_big5): Ignore composition.
4496 (setup_coding_system): Initialize new members of struct
4497 coding_system. Enable composition only when the coding system has
4498 `composition' property t.
4499 (coding_free_composition_data) (coding_adjust_composition_offset)
4500 (coding_save_composition) (coding_restore_composition): New
4501 functions.
4502 (code_convert_region): Call coding_save_composition for encoding
4503 and coding_allocate_composition_data for decoding. Don't skip
4504 ASCII characters if we handle composition on encoding. Call
4505 signal_after_change with Check_BORDER.
4506 (code_convert_string): Call coding_save_composition for encoding
4507 and coding_allocate_composition_data for decoding. Don't skip
4508 ASCII characters if we handle composition on encoding.
4509 (code_convert_string1): Set Vlast_coding_system_used after calling
4510 code_convert_string.
4511 (code_convert_string_norecord): Disable composition.
4512 (Fset_terminal_coding_system_internal): Likewise.
4513 (Fset_safe_terminal_coding_system_internal): Likewise.
4514 (Fset_keyboard_coding_system_internal): Likewise.
4515 (init_coding_once): Set emacs_code_class[0x80] to
4516 EMACS_invalid_code.
4517
4518 * composite.h: New file.
4519
4520 * composite.c: New file.
4521
4522 * data.c (Faref): Delete codes for a composite character..
4523 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4524
4525 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4526 (struct glyph): Add new sub-structure cmp to the union `u'.
4527 (enum display_element_type): New member IT_COMPOSITION.
4528 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4529 (struct it): New members cmp_id, cmp_len.
4530
4531 * dispnew.c (direct_output_forward_char): Check point moving into
4532 or out of a composition. If so, give up direct method.
4533
4534 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4535
4536 * editfns.c (Fchar_to_string): Adjusted for the change of
4537 CHAR_STRING.
4538 (general_insert_function): Likewise.
4539 (Finsert_char): Likewise.
4540 (Fsubst_char_in_region): Likewise. Call update_compositions.
4541 (Ftranslate_region): Call update_compositions.
4542 (Ftranspose_regions): Call update_compositions.
4543
4544 * emacs.c (main): Call syms_of_composite.
4545
4546 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4547 CHAR_STRING.
4548 (Finsert_file_contents): Set Vlast_coding_system_used before
4549 calling signal_after_change. Call update_compositions if some
4550 texts are inserted..
4551 (Fwrite_region): Adjusted for the change of a_write and e_write.
4552 (a_write): Argument changed. Work based on character position,
4553 not byte position.
4554 (e_write): Argument changed. Handle new way of composition.
4555
4556 * fns.c (Flength): The length of char-table is MAX_CHAR.
4557 (concat): Adjusted for the change of CHAR_STRING.
4558 (Ffillarray): Adjusted for the change of CHAR_STRING.
4559 (Fset_char_table_default): Delete codes for a composite character.
4560 (hash_put): Return hash index.
4561
4562 * fontset.h (struct font_info): New member vertical_centering.
4563 (Vvertical_centering_font_regexp): Extern it.
4564
4565 * fontset.c (Vvertical_centering_font_regexp): New variable.
4566 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4567 Set Vignore_relative_composition to nil.
4568 (fs_load_font): Initialize `vertical_centering' of struct
4569 font_info.
4570
4571 * indent.c (check_composition): New function.
4572 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4573 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4574 (current_column_1): Handle new way of composition.
4575 (Fmove_to_column): Likewise.
4576 (compute_motion): Likewise.
4577
4578 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4579 (insert_char): Likewise.
4580 (insert): Call update_compositions.
4581 (insert_and_inherit): Likewise.
4582 (insert_before_markers): Likewise.
4583 (insert_before_markers_and_inherit): Likewise.
4584 (insert_from_string): Likewise.
4585 (insert_from_string_before_markers): Likewise.
4586 (insert_from_buffer): Likewise.
4587 (replace_range): Likewise.
4588 (count_combining_composition): Deleted.
4589 (count_combining_before): Delete codes for a composite character.
4590 (count_combining_after): Likewise.
4591 (del_range_1): Call update_compositions.
4592 (del_range_byte): Likewise.
4593 (del_range_both): Likewise.
4594 (Fcombine_after_change_execute): Likewise.
4595
4596 * intervals.h: Include composite.h.
4597 (get_property_and_range): Extern it.
4598 (Vtext_property_default_nonsticky): Extern it.
427ec082 4599
5ec14d3c
KH
4600 * intervals.c (adjust_intervals_for_insertion): To check stickines
4601 of properties, pay attention to text-property-default-nonsticky.
4602 (merge_properties_sticky): Likewise.
4603 (get_property_and_range): New function.
4604
4605 * keyboard.c (Vdisable_point_adjustment): New variable.
4606 (Vglobal_disable_point_adjustment): New variable.
4607 (syms_of_keyboard): Declare them as Lisp variables.
4608 (command_loop_1): Check them and call adjust_point_for_property if
4609 necessary.
4610 (adjust_point_for_property): New function.
4611
4612 * keymap.c (push_key_description): Adjusted for the change of
4613 CHAR_STRING.
4614 (Ftext_char_description): Likewise.
4615
4616 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4617 (hash_put): Adjusted for the change of the definition.
4618 (signal_after_change): Likewise.
4619 (check_point_in_composition): Extern it.
4620
4621 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4622 Delete a code that handles an invalid too-long multibyte sequence
4623 because we are now sure that we never encounter with such a
4624 sequence.
4625 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4626 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4627 (init_obarray): Likewise.
4628 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4629
4630 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4631
4632 * process.c: Include composite.h.
4633 (read_process_output): Call update_compositions.
4634
4635 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4636
4637 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4638
4639 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4640 character.
4641
4642 * term.c (encode_terminal_code): Delete codes for a composite
4643 character. Adjusted for the change of CHAR_STRING.
4644 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4645 Delete codes for a composite character.
4646
4647 * textprop.c (Vtext_property_default_nonsticky): New variable
4648 (syms_of_textprop): Declare it as a Lisp variable.
4649
4650 * window.c (Frecenter): Clear all caches of compositions.
4651
4652 * xdisp.c (it_props): Add an entry for composition.
4653 (face_before_or_after_it_pos): For composition, check face of a
4654 character after the composition.
4655 (handle_composition_prop): New function.
4656 (get_next_display_element): Adjusted for the change of
4657 CHAR_STRING.
4658 (set_iterator_to_next): Handle the case that it->method ==
4659 next_element_from_composition.
4660 (next_element_from_composition): New function.
4661 (message_dolog): Adjusted for the change of CHAR_STRING.
4662 (set_message_1): Likewise.
4663 (check_point_in_composition): New function.
4664 (reconsider_clip_changes): If point moved into or out of
4665 composition, set b->clip_changed to 1 to force updating of the
4666 screen.
4667 (disp_char_vector): Delete codes for a composite character.
4668 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4669
4670 * xfaces.c (choose_face_fontset_font): Delete codes for a
4671 composite character.
4672 (realize_x_face): Likewise. Change a place to set local variable
4673 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4674
4675 * xfns.c: Include intervals.h.
4676 (syms_of_xfns): Make `display' property nonsticky by default.
4677
4678 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4679 for find_charset_in_str.
4680
4681 * xterm.h (struct x_output): Change member font_baseline to
4682 baseline_offset.
4683
4684 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4685 for composition.
4686 (x_append_composite_glyph): New function.
4687 (VCENTER_BASELINE_OFFSET): New macro.
4688 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4689 of struct it for the composition. Cache pixel offsets in the
4690 struct composition. Delete codes for a composite character.
4691 Handle Vignore_relative_composition in composition code.
4692 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4693 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4694 (x_compute_glyph_string_overhangs): Likewise.
4695 (x_get_glyph_overhangs): Delete codes for a composite character.
4696 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4697 (x_draw_glyph_string_background): Likewise. Delete codes for
4698 checking s->gidx for a composition.
4699 (x_draw_glyph_string_foreground): Delete code for a composite
4700 character.
4701 (x_draw_composite_glyph_string_foreground): New function.
4702 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4703 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4704 (struct work): Deleted.
4705 (x_fill_composite_glyph_string): Argument changed. Mostly
4706 rewritten for that.
4707 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4708 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4709 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4710 (BUILD_GLYPH_STRINGS): For composition, call
4711 BUILD_COMPOSITE_GLYPH_STRING.
4712 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4713 f->output_data.x->font_baseline.
4714
c3c60f13
GM
47151999-12-14 Gerd Moellmann <gerd@gnu.org>
4716
4717 * xterm.c (show_mouse_face): Don't use updated_area, use
4718 TEXT_AREA.
4719
83c8f461 47201999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4721
4722 * minibuf.c (Fall_completions): Doc fix.
4723
83c8f461 47241999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4725
4726 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
4727 has been changed by the Lisp code.
4728
d8eccf12
GM
47291999-12-12 Gerd Moellmann <gerd@gnu.org>
4730
4731 * xfns.c: Indentation fixes.
4732
ae56feae
SM
47331999-12-10 Stefan Monnier <monnier@cs.yale.edu>
4734
4735 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
4736
dfa1c6ae
GM
47371999-12-10 Gerd Moellmann <gerd@gnu.org>
4738
4739 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
4740 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
4741
4742 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
4743 to frame.h.
4744
ec18280f
SM
47451999-12-09 Stefan Monnier <monnier@cs.yale.edu>
4746
4747 * keyboard.c (Qratio): New symbol.
4748 (scroll_bar_parts): Add `Qratio' to it.
4749 (syms_of_keyboard): Init `Qratio'.
4750 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
4751 * xterm.c (#includes): Allow compilation with only Xaw.
4752 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
4753 (xt_action_hook): Replace XAW3D by XAW.
4754 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
4755 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
4756 Determine epsilon dynamically and don't try to be too clever.
4757 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
4758 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
4759 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
4760 scrollbar (using `ratio').
4761 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
4762 scrollbar we have so as to set it up more optimally and to fix
4763 xaw3d_arrow_scroll and xaw3d_pick_top.
4764 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
4765 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
4766 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
4767 is not ignored, using a major gross hack.
4768 (x_initialize): Init default values for xaw3d_arrow_scroll and
4769 xaw3d_pick_top.
4770
83b6d970
DL
47711999-12-09 Dave Love <fx@gnu.org>
4772
4773 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
4774
3648c842
GM
47751999-12-08 Gerd Moellmann <gerd@gnu.org>
4776
4777 * eval.c: Remove conditional compilation on `standalone'.
4778 (call_debugger): When entering the debugger while redisplaying,
4779 reset redisplaying_p, and go back to the top-level if the debugger
4780 returns.
4781
05e71564
GM
47821999-12-07 Gerd Moellmann <gerd@gnu.org>
4783
4784 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
4785 basic faces are realized before trying to use face `menu'.
4786
4787 * window.c (delete_window): Block input for the time window
4788 matrices are being changed.
4789
b46cd536
DL
47901999-12-07 Dave Love <fx@gnu.org>
4791
4792 * lread.c (Fintern_soft): Fix newlines in doc string.
4793
96acb1f7
GM
47941999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
4795
4796 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
4797 duplicate definition of ElfW.
4798 (find_section): Copied from unexsgi.c.
4799 (unexec): Use find_section. Adjust whitespace. Initialize
4800 new_data2_offset based on old_data, not sbss (this fixes a bug on
4801 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
4802 Adjust test for presence of .mdebug section to the new return
4803 value of find_section.
427ec082 4804
96acb1f7
GM
48051999-12-07 Gerd Moellmann <gerd@gnu.org>
4806
4807 * unexelf.c: Merge changes from 20.5.
4808 (unexec): Handle .lit4 and .lit8 unconditionally.
4809
4810 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
4811 unexsgi.o again.
427ec082 4812
96acb1f7
GM
4813 * m/iris5d.h (UNEXEC): Likewise.
4814
7dae4502
SM
48151999-12-06 Stefan Monnier <monnier@cs.yale.edu>
4816
4817 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
4818 (syms_of_editfns): Register it.
4819 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
4820 (del_range_1, del_range_2): Add a ret_string argument to
4821 request that the deleted text be returned.
4822 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 4823 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
4824 * casefiddle.c (casify_region): Update del_range_1 call.
4825 * coding.c (code_convert_region): Update del_range_2 call.
4826 * fileio.c (Finsert_file_contents): Update del_range_2 call.
4827
397e4fae
GM
48281999-12-06 Gerd Moellmann <gerd@gnu.org>
4829
4830 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
4831
3d973f71
GM
48321999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
4833
4834 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 4835
740e985f
EZ
48361999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4837
4838 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
4839
4840 * insdel.c (adjust_markers_for_delete): Fix last change.
4841
2d764c78
EZ
48421999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4843
4844 Changes for automatic remapping of X colors on terminal frames:
4845
4846 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
4847 frames.
4848 (Vface_tty_color_alist): Remove.
4849 (tty_defined_color): New function.
4850 (defined_color): Rewrite to support any type of frame.
4851 (tty_color_name): New function.
4852 (face_color_supported_p, Fface_color_gray_p,
4853 Fface_color_supported_p): Support non-X frames.
4854 (load_color): Enclose the color name in quotes, in the log
4855 messages. Remove DOS-specific version of load_color.
4856 (realize_tty_face): Take the supported colors from
4857 tty-color-alist. Support translation of X colors to the closest
4858 tty color, for both MSDOS and tty frames.
4859 [MSDOS]: Don't invert face colors if they were taken from the
4860 frame colors.
4861 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
4862
4863 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
4864 Define a mostly empty surrogate.
4865 (tty_display): Declare.
4866
4867 * frame.c (make_terminal_frame) [!macintosh]: Don't use
4868 tty_display.
4869 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
4870 frames when the frame's param_alist includes 'reverse.
4871 (tty_display): Define.
4872 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
4873 output_data.x member.
4874 (Fframe_parameters): Return foreground and background color names
4875 on tty frames as well, in addition to MSDOS frames.
4876
4877 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
4878 selected_frame.
4879 (struct x_output): Remove unused members; document who uses each
4880 member.
4881 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
4882 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
4883 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
4884 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
4885 unused macro definintions.
4886
4887 * msdos.c (IT_set_frame_parameters): Don't call
4888 recompute_basic_faces, the next redisplay will, anyway.
4889 (x_current_display): Remove unused variable.
4890 Many functions: changes for Lisp_object selected_frame.
4891 (IT_set_face): If the tty_reverse_p flag is set for the face,
4892 reverse the foreground and background colors.
4893 (Fmsdos_remember_default_colors): New function.
4894 (syms_of_msdos): Defsubr it.
4895 (IT_set_frame_parameters): Use initial_screen_colors[] when
4896 creating a new frame. If the frame parameters include 'reverse,
4897 swap the foreground and background colors.
4898 (internal_terminal_init): Initialize initial_screen_colors to -1.
4899 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
4900 cus-start.el.
4901
4902 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
4903
4904 * xfns.c (x_defined_color): Rename from defined_color. All
4905 callers changed.
4906 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4907 all callers changed.
4908 (Fxw_color_values): Renamed from Fx_color_values; all callers
4909 changed.
4910 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4911 callers changed.
4912 (x_window_to_frame, x_any_window_to_frame,
4913 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4914 x_top_window_to_frame): Use !FRAME_X_P instead of
4915 f->output_data.nothing.
4916 * xterm.h (x_defined_color): Rename from defined_color.
4917
4918 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
4919 f->output_data.nothing.
4920 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4921 all callers changed.
4922 (Fxw_color_values): Renamed from Fx_color_values; all callers
4923 changed.
4924 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4925 callers changed.
4926
4927 * dispextern.h (tty_color_name): Add prototype.
4928
4929 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
4930 f->output_data.nothing.
4931 * w32menu.c (menubar_id_to_frame): Likewise.
4932 * w32term.h (w32_output): Declare.
4933
4934 * dosfns.c (Qmsdos_color_translate): Remove.
4935 (msdos_stdcolor_name): Now returns a Lisp_Object.
4936 * dosfns.h (Qmsdos_color_translate): Remove.
4937
4938 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
4939
b3e5232e
KH
49401999-12-06 Kenichi Handa <handa@etl.go.jp>
4941
4942 * fileio.c (decide_coding_unwind): Renamed from
4943 set_auto_coding_unwind.
4944 (Finsert_file_contents): Make single unwind protect to call both
4945 Vset_auto_coding_function and Ffind_operation_coding_system.
4946
4947 * insdel.c (adjust_markers_for_delete): Make it non-static.
4948
db0e466c
SM
49491999-12-04 Stefan Monnier <monnier@cs.yale.edu>
4950
4951 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
4952 operators and handle them properly.
4953 * regex.h (RE_ALL_GREEDY): New option.
4954 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
4955 sorting would put it.
4956 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
4957 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
4958
22afa6e8
DL
49591999-12-04 Dave Love <d.love@dl.ac.uk>
4960
4961 * m/arm.h: New file.
4962
40afb967
DL
49631999-12-03 Dave Love <fx@gnu.org>
4964
4965 * editfns.c (Fmessage_or_box): Use use_dialog_box.
4966
ddf8eff5
GM
49671999-12-02 Gerd Moellmann <gerd@gnu.org>
4968
4969 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
4970 for building with Motif.
4971
4972 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
4973 unexelf.o.
427ec082 4974
ddf8eff5
GM
4975 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
4976
fa09a82d
DL
49771999-12-01 Dave Love <fx@gnu.org>
4978
4979 * emacs.c (main): Set LANG=C iff AX3_2 defined.
4980
ddf8eff5
GM
49811999-11-28 Gerd Moellmann <gerd@gnu.org>
4982
4983 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
4984 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
4985 macros.
4986
4987 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
4988
fa09a82d
DL
49891999-11-28 eliz <eliz@dlpx1>
4990
4991 * emacs.c (synchronize_locale): Avoid compiler warnings about
4992 pointer type mismatch.
4993
f9632fc8
GM
49941999-11-28 Gerd Moellmann <gerd@gnu.org>
4995
717d0121
GM
4996 * window.c (Fwindow_end): Don't call temp_set_pt_both with
4997 out of range position.
4998
427ec082 4999 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5000 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5001
59c65f1e
EZ
50021999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5003
613a8346
EZ
5004 * charset.c (Fmake_char_internal): Print the charset ID when
5005 signalling an error.
5006
59c65f1e
EZ
5007 * emacs.c (synchronize_locale): Avoid compiler warnings about
5008 pointer type mismatch.
5009
83c8f461 50101999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5011
5012 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5013
18df9369
GM
50141999-11-26 Gerd Moellmann <gerd@gnu.org>
5015
65a3ccf7
GM
5016 * puresize.h (BASE_PURESIZE): Increase to 550000.
5017
b3b98592
GM
5018 * textprop.c (set_text_properties): New function. Like
5019 Fset_text_properties, but with additional parameter
5020 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5021 changes.
5022 (Fset_text_properties): Use it.
5023
5024 * insdel.c (insert_1_both): Call set_text_properties with last
5025 parameter nil so that no after changes will be signaled.
5026
5027 * lisp.h: Add prototype for set_text_properties.
5028
18df9369
GM
5029 * xfaces.c (set_lface_from_font_name): Fix previous change.
5030 (recompute_basic_faces): Change assert to abort.
5031
71a8e74b
DL
50321999-11-25 Dave Love <fx@gnu.org>
5033
5034 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5035 (Fmember, Fdelq, Fdelete): Inline car.
5036 (Fy_or_n_p): Doc fix.
5037
bc6a5782
GM
50381999-11-25 Gerd Moellmann <gerd@gnu.org>
5039
3221576b 5040 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5041 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5042 is not set, try to use a reasonable default.
5043
bc6a5782
GM
5044 * dispnew.c (direct_output_for_insert): Set glyph row's
5045 displays_text_p flag. Correct window's window_end_vpos if
5046 necessary.
5047
0c8559bb
PE
50481999-11-25 Paul Eggert <eggert@twinsun.com>
5049
5050 * emacs.c (fixup_locale): Don't bother to record initial locale.
5051 (synchronize_locale): If the desired locale is nil,
5052 treat it as if it were the empty string,
5053 so that we set the locale from the environment.
5054
35737351
KH
50551999-11-25 Kenichi Handa <handa@etl.go.jp>
5056
5057 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5058 of the current buffer via Fset.
5059
5562b47f
DL
50601999-11-24 Dave Love <fx@gnu.org>
5061
5562b47f
DL
5062 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5063
5064 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5065
00da0e4a
GM
50661999-11-24 Gerd Moellmann <gerd@gnu.org>
5067
5068 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5069
5070 * emacs.c (PVEC_FLAG): New variable.
5071
b1775dc1
GM
50721999-11-23 Gerd Moellmann <gerd@gnu.org>
5073
5074 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5075 that fails on IBM PowerPC, AIX 4.2.
427ec082 5076
08de6200
EZ
50771999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5078
5079 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5080 string of mode-line-format. Remove the obsolete %t.
5081
02fda8ff
GM
50821999-11-22 Gerd Moellmann <gerd@gnu.org>
5083
f2fa858f
GM
5084 * dispnew.c (direct_output_for_insert): Increment glyph positions
5085 for glyphs from buffer text only.
5086
02fda8ff
GM
5087 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5088 (gdb_data_seg_bits): New variables.
427ec082 5089
02fda8ff
GM
5090 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5091 work on systems not allowing enumerators > INT_MAX, and it
5092 won't work if EMACS_INT is long long.
5093
1b0d24e7
PE
50941999-11-22 Paul Eggert <eggert@twinsun.com>
5095
5096 Port to SunOS 4.1.x again. Help out with Alpha port.
5097 Rename messages-locale to system-messages-locale,
5098 and likewise for time-locale.
427ec082 5099
1b0d24e7
PE
5100 * callproc.c (strerror): Remove decl.
5101 * fileio.c (strerror): Likewise.
5102 * process.c (strerror): Likewise.
5103 * emacs.c (strerror): Likewise.
5104 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5105 All uses changed.
5106 (Vprevious_system_messages_locale): Likewise, from
5107 Vprevious_messages_locale.
5108 (Vsystem_time_locale): Likewise, from Vtime_locale.
5109 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5110 (ABORT_RETURN_TYPE): New macro.
5111 (abort): Return type is now ABORT_RETURN_TYPE.
5112 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5113 defined.
5114 (syms_of_emacs): messages-locale -> system-messages-locale,
5115 previous-messages-locale -> previous-system-messages-locale,
5116 time-locale -> system-time-locale,
5117 previous-time-locale -> previous-system-time-locale.
5118
5119 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5120 (const): Do not define; that's config.h's job.
5121 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5122 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5123 (<stddef.h>): Include if STDC_HEADERS is defined.
5124 (FREE_RETURN_TYPE): New macro.
5125 (free): Return type is now FREE_RETURN_TYPE.
5126
5127 * lisp.h (synchronize_system_time_locale): Renamed from
5128 synchronize_time_locale. All uses changed.
5129 (synchronize_system_messages_locale): Likewise, from
5130 synchronize_messages_locale.
5131
5132 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5133 stdlib.h now does this.
5134
5135 * process.c (sys_siglist): Remove.
5136
5137 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5138 New macros.
5139
5140 * syntax.c (scan_sexps_forward): Use abort, not assert.
5141
5142 * sysdep.c (my_sys_siglist): New var.
5143 (sys_siglist): New macro. Remove old initialized vars of same name.
5144 (init_signals): Initialize sys_siglist.
5145
5146 * xfns.c (abort): Remove decl; stdlib.h now does this.
5147
0dcd5b54
DL
51481999-11-18 Dave Love <fx@gnu.org>
5149
946173ad
DL
5150 * filelock.c: Add forward declaration for get_boot_time_1.
5151
0dcd5b54
DL
5152 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5153
71447e8f
GM
51541999-11-18 Gerd Moellmann <gerd@gnu.org>
5155
5156 * buffer.h (struct buffer_text): Add comment about moving
5157 buffer text if REL_ALLOC is defined.
5158
eeedff63
KH
51591999-11-18 Kenichi Handa <handa@etl.go.jp>
5160
5161 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5162
5163 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5164 memory for push_key_description.
5165
5166 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5167 allocate memory for push_key_description.
5168 (describe_buffer_bindings): Likewise.
5169
5d7e4a2c
GM
51701999-11-17 Gerd Moellmann <gerd@gnu.org>
5171
5172 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5173 (Fx_hide_busy_cursor): Ditto.
5174
51751999-11-17 Marco Walther <walther@siemens-pyramid.com>
5176
5177 * unexsni.c (unexec): Handle .rel.dyn section.
5178
b5b41e02
DL
51791999-11-16 Dave Love <fx@gnu.org>
5180
5181 * doc.c (Fdocumentation): Remove gcpro here too.
5182
e35b6123
GM
51831999-11-16 Gerd Moellmann <gerd@gnu.org>
5184
5185 * keyboard.c (command_loop_1): Remove no_redisplay.
5186
83c8f461 51871999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5188
5189 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5190 in noninteractive.
5191
b05d3bee
GM
51921999-11-14 Gerd Moellmann <gerd@gnu.org>
5193
5bcfeb49
GM
5194 * xdisp.c (ensure_echo_area_buffers): New.
5195 (with_echo_area_buffer): Use it.
5196 (setup_echo_area_for_printing): Ditto.
5197
b05d3bee
GM
5198 * buffer.c (indicate-empty-lines): Doc-fix.
5199
9b2e6e4c
GM
52001999-11-12 Gerd Moellmann <gerd@gnu.org>
5201
e7f90eab
GM
5202 * term.c (term_init): If "op" isn't available, don't support color
5203 because we can't switch back to the default foreground and
5204 background.
5205
9b2e6e4c
GM
5206 * doc.c (Fdocumentation_property): Remove GCPRO because
5207 Fsubstitute_command_keys gcpro's the string.
5208
1bf21027
KH
52091999-11-12 Kenichi Handa <handa@etl.go.jp>
5210
5211 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5212
3bc6df53
GM
52131999-11-11 Gerd Moellmann <gerd@gnu.org>
5214
5215 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5216 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5217 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5218
35a5514b
GM
52191999-11-10 Gerd Moellmann <gerd@gnu.org>
5220
5221 * xfns.c (QCuser_data): Removed.
5222 (syms_of_xfns): Initialization of QCuser_data removed.
5223 (parse_image_spec): Don't handle :user-data specially. Allow
5224 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5225 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5226 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5227 parse_image_spec accordingly.
5228
83c8f461 52291999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5230
5231 * cmds.c (Fbeginning_of_line): Doc fix.
5232 (Fend_of_line): Doc fix.
5233
5234 * editfns.c (Fline_beginning_position): If N is not 1,
5235 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5236
5237 * syntax.c (Fforward_word): Handle fields even if would have hit
5238 an edge of the buffer. Return nil if affected by fields.
5239
83c8f461 52401999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5241
5242 * editfns.c (preceding_pos): Function deleted.
5243 (text_property_stickiness): Decrement POS directly.
5244 Fix a confusion that used PT instead of POS.
5245
5246 * editfns.c (find_field): Properly handle the case
5247 of a field boundary where `field' inherits from neither side.
5248
5249 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5250 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5251
fa9aabf6
GM
52521999-11-08 Gerd Moellmann <gerd@gnu.org>
5253
5254 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5255 BEFORE_POTENTIAL_GC before DISCARD.
5256
4015b3c0
GM
52571999-11-07 Gerd Moellmann <gerd@gnu.org>
5258
033a5fa3
GM
5259 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5260
5261 * lisp.h: Add prototype for unmark_byte_stack.
5262
5263 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5264 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5265 XUNMARK.
5266
55b064bd
GM
5267 * xdisp.c (resize_mini_window): Fix computation of needed
5268 mini-window height.
5269
5270 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5271 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5272
4015b3c0 5273 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5274 locally there. Rearrange case statements so that those most
4015b3c0
GM
5275 frequently executed come first. Avoid goto's in frequently
5276 executed cases.
5277
fe512f27
GM
52781999-11-05 Gerd Moellmann <gerd@gnu.org>
5279
dd59e217
GM
5280 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5281 AFTER_POTENTIAL_GC around internal_catch.
5282
bcf28080
GM
5283 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5284 relocate_byte_pcs.
5285 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5286
5287 * eval.c (struct catchtag): Add member byte_stack.
5288 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5289 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5290 catchtag.
5291 (unwind_to_catch): Restore byte_stack_list from catchtag.
5292
5293 * lisp.h: Add prototypes for new functions in bytecode.c.
5294 Add extern declaration for byte_stack_list.
5295
5296 * bytecode.c (struct byte_stack): New.
5297 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5298 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5299 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5300 (HANDLE_RELOCATION): Removed.
5301 (Fbyte_code): Use byte_stack structures.
5302
4d59c34c
GM
5303 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5304
fe512f27
GM
5305 * buffer.c (syms_of_buffer): Extend documentation of
5306 mode-line-format.
5307
60b64cd6
GM
53081999-11-04 Gerd Moellmann <gerd@gnu.org>
5309
5310 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5311
5312 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5313 Ferase_field instead of Fdelete_field.
5314
b51b619b
GM
53151999-11-03 Gerd Moellmann <gerd@gnu.org>
5316
5317 * dispnew.c (Finternal_show_cursor): Change it to set the
5318 cursor on/off, not toggle its state.
5319 (Finternal_show_cursor_p): New.
5320 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5321
5865af0d
DL
53221999-11-03 Dave Love <fx@gnu.org>
5323
5324 * charset.c (split_non_ascii_string): Define return value.
5325
82a700f3
GM
53261999-11-03 Gerd Moellmann <gerd@gnu.org>
5327
edfef199
GM
5328 * minibuf.c (string_to_object): New.
5329 (read_minibuf_noninteractive): New.
5330 (read_minibuf): Call read_minibuf_noninteractive if
5331 noninteractive. Use string_to_object.
5332
82a700f3
GM
5333 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5334
b5540f0d
DL
53351999-11-02 Dave Love <fx@gnu.org>
5336
e69dcd60
DL
5337 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5338
827a1788
DL
5339 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5340 declared with glibc2.
b5540f0d 5341
a69a6e61
GM
53421999-11-02 Gerd Moellmann <gerd@gnu.org>
5343
5344 * lisp.h (QUIT): Give it statement form.
5345
87e21fbd
DL
53461999-11-02 Dave Love <fx@gnu.org>
5347
5348 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5349
1b335865
GM
53501999-11-02 Gerd Moellmann <gerd@gnu.org>
5351
9fb5e03d
GM
5352 * xfns.c (QCuser_data): New.
5353 (syms_of_xfns): Initialize QCuser_data.
5354 (parse_image_spec): Ignore :user-data DATA properties.
5355
1b335865
GM
5356 * xdisp.c (display_line): Set charpos of first glyph in blank
5357 lines not corresponding to any text to -1, even if no glyphs are
5358 filled in in that line.
5359
e76f1c44
GM
53601999-11-01 Gerd Moellmann <gerd@gnu.org>
5361
427ec082 5362 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5363 png_get_sRGB in #ifdef.
5364
111259b4
GM
5365 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5366 (syms_of_display): Use the new name.
5367
dd5c96e8
GM
5368 * textprop.c (verify_interval_modification): Signal text-read-only
5369 instead of calling error.
5370
db8878fb
GM
5371 * data.c (Qtext_read_only): New built-in error.
5372 (syms_of_data): Initialize it.
5373
5374 * lisp.h: Add extern declaration for Qtext_read_only.
5375
e76f1c44
GM
5376 * syntax.c: Remove whitespace after open or in front of closing
5377 parentheses.
5378
83c8f461 53791999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5380
5381 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5382
7843e09c
GM
53831999-10-31 Gerd Moellmann <gerd@gnu.org>
5384
575ed805
GM
5385 * xdisp.c (resize_mini_window): Compute needed height differently.
5386
7843e09c
GM
5387 * fns.c (Flength): Unroll loop over lists.
5388
5389 * xdisp.c (append_space): Return non-zero if space was appended.
5390 (display_line): Set charpos of first glyph to -1 only if that
5391 glyph is the space added by append_glyph.
5392
83c8f461 53931999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5394
5395 * print.c (strout): Consider `noninteractive' and use stdout
5396 only when PRINTCHARFUN is t.
5397
5398 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5399 (gcpro_level): Declare it extern.
5400 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5401 Alternate definitions that set `level' and increment `gcpro_level'.
5402 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5403
5404 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5405 (init_eval) [DEBUG_GCPRO]: Initialize it.
5406 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5407 from remaining gcprolist.
5408
3636f7a3
KH
54091999-10-29 Kenichi Handa <handa@etl.go.jp>
5410
5411 * coding.c (code_convert_region): Update `dst' correctly.
5412
a2ad7096
GM
54131999-10-28 Gerd Moellmann <gerd@gnu.org>
5414
5415 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5416 (Frassoc): Rewritten.
5417
1e3196e8
GM
54181999-10-27 Noah Friedman <friedman@splode.com>
5419
5420 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5421 Define PTY_NAME_SPRINTF.
5422 Redefine PTY_TTY_NAME_SPRINTF.
5423 * config.in: Add undef for HAVE_DEV_PTMX.
5424
83c8f461 54251999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5426
5427 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5428 as arg to DEBUG_POP and DEBUG_PRINT.
5429
83c8f461 54301999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5431
5432 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5433 (Ffset): Call Qad_activate_internal.
5434 (syms_of_data): Initialize Qad_activate_internal.
5435
26922151
GM
54361999-10-27 Gerd Moellmann <gerd@gnu.org>
5437
5438 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5439 Vterminal_frame is selected and Vwindow_system is non-nil.
5440
67a5596f
GM
54411999-10-26 Gerd Moellmann <gerd@gnu.org>
5442
2bea706b
GM
5443 * xdisp.c (echo_area_display): Put previous change in #if 0.
5444
67a5596f
GM
5445 * emacs.c (standard_args): Add `file' as synonym for `visit',
5446 `execute' as synonym for `eval'.
5447 (main): Add new options to usage message.
5448
81dc5de5
GM
54491999-10-25 Gerd Moellmann <gerd@gnu.org>
5450
5451 * data.c (Qhash_table): New.
5452 (Ftype_of): Return it for hash tables.
5453 (syms_of_data): Initialize Qhash_table.
5454
83c8f461 54551999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5456
5457 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5458
66e4690f 54591999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5460
7539e11f
KR
5461 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5462 lisp.h.
5463
5464 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5465 Fbuffer_local_variables, Fother_buffer, record_buffer,
5466 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5467 swap_out_buffer_local_variables, overlays_at, overlays_in,
5468 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5469 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5470 Foverlay_put, report_overlay_modification, evaporate_overlays):
5471 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5472 references.
5473 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5474 swap_in_symval_forwarding, set_internal, default_value,
5475 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5476 Fmake_variable_frame_local, Flocal_variable_p,
5477 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5478 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5479 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5480 * emacs.c (main): Likewise.
5481 * fontset.c (fs_load_font, fs_register_fontset,
5482 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5483 Fnew_fontset, Fset_fontset_font): Likewise.
5484 * frame.c (do_switch_frame, next_frame, prev_frame,
5485 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5486 Likewise.
5487 * keyboard.c (read_char, help_char_p, event_to_kboard,
5488 kbd_buffer_get_event, timer_start_idle, timer_check,
5489 make_lispy_event, apply_modifiers, reorder_modifiers,
5490 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5491 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5492 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5493 Fcommand_execute, Fexecute_extended_command): Likewise.
5494 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5495 Fall_completions): Likewise.
5496 * window.c (Fset_window_margins): Likewise.
5497
5498 * callint.c (quotify_args): Don't explicitly use struct
5499 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5500
3a7093d8
KR
5501 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5502 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5503 if __ELF__ is defined.
5504
2a3d7146
GM
55051999-10-24 Gerd Moellmann <gerd@gnu.org>
5506
5507 * window.c (Fnext_window): Add a QUIT in the loop.
5508
8ac52782
GM
55091999-10-23 Gerd Moellmann <gerd@gnu.org>
5510
427ec082 5511 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5512 New targets.
5513
05f0d15a
DL
55141999-10-22 Dave Love <fx@gnu.org>
5515
5516 * emacs.c (main): Enable profiling conditional on __linux also.
5517
882fb0e6
GM
55181999-10-20 Gerd Moellmann <gerd@gnu.org>
5519
5520 * xrdb.c (x_load_resources): Set default resources for resource
5521 classes instead of for the specific Emacs.
5522
b5f5bc31
GM
55231999-10-19 Gerd Moellmann <gerd@gnu.org>
5524
66f4dd69
GM
5525 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5526 defines it that way.
427ec082 5527
b5f5bc31
GM
5528 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5529 if selected_frame is equal to Vterminal_frame.
5530
68c45bf0 55311999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5532
68c45bf0 5533 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5534
68c45bf0
PE
5535 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5536 when dumping, so that the dumped Emacs doesn't have stray locale info.
5537 (dired.o): Depend on systime.h.
5538 (editfns.o): Depend on coding.h.
5539
5540 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5541 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5542 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5543 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5544 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5545 Include <config.h> before any system include files.
5546
5547 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5548 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5549 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5550 xmenu.c, xterm.c:
5551 Do not include <stdlib.h>, as <config.h> does this now.
5552
5553 * callproc.c (Fcall_process):
5554 Synchronize messages locale before invoking strerror.
5555 Decode resulting string with locale-coding-system.
5556
5557 * coding.c (Vlocale_coding_system): New var.
5558 (syms_of_coding): Adjust to above change.
5559 (emacs_strerror): New function.
5560
5561 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5562
68c45bf0
PE
5563 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5564 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5565 HAVE_STRSIGNAL): New macros.
5566 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5567 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5568
5569 * dired.c: Include "systime.h".
5570 (Ffile_attributes): Do not cast s.st_size to int; this loses
5571 information if int is 32 bits but st_size and EMACS_INT are larger.
5572 Treat large device numbers like large inode numbers.
5573
5574 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5575
5576 * editfns.c: Include coding.h.
5577 (emacs_strftime): Remove decl.
5578 (emacs_strftimeu): New decl.
5579 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5580 Use emacs_strftimeu instead of emacs_strftime.
5581 (Fformat_time_string): Convert format string using
5582 Vlocale_coding_system, and convert result back. Synchronize time
5583 locale before invoking lower level function. Invoke
5584 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5585
68c45bf0
PE
5586 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5587 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5588 Vprevious_time_locale): New variables.
5589 (main): Invoke setlocale early, so that initial error messages are
5590 localized properly. But skip locale-setting if LC_ALL is "C".
5591 Fix up locale when it's safe to do so.
5592 (fixup_locale): Moved here from xterm.c.
5593 (synchronize_locale, synchronize_time_locale,
5594 synchronize_messages_locale): New functions.
5595 (syms_of_emacs): Accommodate above changes.
5596
5597 * fileio.c (report_file_error): Convert strerror output according
5598 to Vlocale_coding_system.
5599 (Finsert_file_contents): Check for arithmetic overflow in
5600 computations that depend on file size. Report IO errors
5601 with emacs_strerror, not strerror.
5602
5603 * fns.c (Fgethash): Declare dflt parameter.
5604
5605 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5606 is defined; that's config.h's job.
5607
5608 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5609 default these values to long, BITS_PER_LONG, and unsigned long.
5610 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5611 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5612 (code_convert_string_norecord, fixup_locale,
5613 synchronize_messages_locale, synchronize_time_locale,
5614 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5615 All Emacs callers of open, close, read, write changed to use
5616 emacs_open, emacs_close, emacs_read, emacs_write.
5617
5618 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5619 changed to file_tell.
5620 (saved_doc_string_position, prev_saved_doc_string_position): Now
5621 of type file_offset.
5622 (init_lread): Do not fix locale here; fixup_locale now does this.
5623
5624 * m/amdahl.h, s/usg5-4.h:
5625 (NSIG): Remove.
5626 (NSIG_MINIMUM): New macro.
5627
5628 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5629 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5630 s/umips.h, s/usg5-4.h:
5631 (SIGIO): Do not undef.
5632 (BROKEN_SIGIO): New macro.
5633
5634 * m/ustation.h:
5635 (SIGTSTP): Do not undef.
5636 (BROKEN_SIGTSTP): New macro.
5637
5638 * s/gnu-linux.h:
5639 (SIGPOLL, SIGURG): Do not undef.
5640 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5641
5642 * s/ptx4.h:
5643 (SIGINFO): Do not undef.
5644 (BROKEN_SIGINFO): New macros.
427ec082 5645
68c45bf0
PE
5646 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5647
5648 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5649 some Emacs-related changes merged.
5650
5651 * print.c (float_to_string): Prepend "-" to representation of a
5652 NaN if the NaN is negative.
5653
5654 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5655 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 5656
68c45bf0
PE
5657 * process.c (status_message, sigchld_handler): Synchronize locale,
5658 then use strsignal istead of sys_siglist.
5659 * w32proc.c (sys_wait): Likewise.
427ec082 5660
68c45bf0
PE
5661 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5662 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5663 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5664 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5665 (open, close, read, write, INTERRUPTIBLE_OPEN,
5666 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5667
5668 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5669
5670 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5671 sys_open, open): Remove.
5672 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5673 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5674 macros are no longer used.
5675 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5676 (emacs_close): Renamed from sys_close.
5677 (emacs_read): Renamed from sys_read.
5678 (emacs_write): Renamed from sys_write.
5679 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5680 (dup2): Do not print error on failure; the real dup2 doesn't.
5681 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5682
5683 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5684 is defined.
5685 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5686 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5687 (strsignal): Declare if !HAVE_STRSIGNAL.
5688
5689 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5690 (ElfW): Define in terms of ElfExpandBitsW.
5691
5692 * w32proc.c (sys_siglist): Remove decl.
5693
5694 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5695 with ANSI C.
5696 (display_string): Declare face_string_pos arg.
5697
5698 * xfns.c (Fx_show_tip): Declare timeout param.
5699
5700 * xterm.c: No need to include locale.h.
5701 (x_alloc_lighter_color, x_setup_relief_color):
5702 Pass arg as double, not float, for compatibility with ANSI C.
5703 (fixup_locale): Move to emacs.c.
5704 (x_term_init): Do not setlocale or fixup locale; the main program
5705 does this now.
5706
2f0b74ea
DL
57071999-10-18 Dave Love <fx@gnu.org>
5708
5709 * doc.c (Fdocumentation_property): Gcpro `tem'.
5710
471aa4a0
KH
57111999-10-18 Kenichi Handa <handa@etl.go.jp>
5712
5713 * lread.c (Fload): Calculate bytes of filename correctly.
5714 (openp): Likewise.
5715
aca2020b
KH
57161999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5717
5718 * print.c (print_preprocess): In case print-circle is nil,
5719 add OBJ to Vprint_number_table only when OBJ is a symbol.
5720
1f5fe392 57211999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
5722
5723 * coding.c (code_convert_string): Add record_unwind_protect to
5724 assure setting inhibit_pre_post_conversion back to zero. Take
5725 care of the multibyteness of the working buffer.
5726
5727 * coding.c (inhibit_pre_post_conversion): New variable.
5728 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
5729 ignore post-read-conversion and pre-write-conversion property of
5730 the coding system.
5731 (code_convert_region_unwind): New function.
5732 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
5733 running pre-write-conversion and post-read-conversion.
5734 (code_convert_string): Likewise.
5735
cd876a91
GM
57361999-10-17 Miles Bader <miles@gnu.org>
5737
5738 * editfns.c: Doc fix.
5739
57401999-10-17 Miles Bader <miles@gnu.org>
5741
5742 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
5743 argument preconditions of find_before_next_newline in the case
5744 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
5745 was indeed at the edge.
5746
57471999-10-17 Miles Bader <miles@gnu.org>
5748
5749 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
5750 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
5751
5752 * editfns.c (text_property_eq, text_property_stickiness): Don't
5753 use initializers for auto variables of type Lisp_Object.
5754 (find_field): Likewise. Use braces around nested ifs.
5755 (Fline_end_position): Store the raw eol in a variable, so that the
5756 final expression doesn't look so ugly.
5757 (Fconstrain_to_field): Doc fix.
5758 (preceding_pos): Renamed from `preceeding_pos'.
5759 (text_property_stickiness, find_field): Call preceding_pos,
5760 not preceeding_pos.
5761
57621999-10-17 Miles Bader <miles@gnu.org>
5763
5764 * editfns.c (Ffield_string_no_properties): New function.
5765 (text_property_stickiness, preceeding_pos): New functions.
5766 (Ffield_string): Remove PROPS parameter.
5767 (find_field): Add MERGE_AT_BOUNDARY parameter.
5768 Rewrite to use stickiness of `field' property to resolve
5769 ambiguous cases.
5770 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
5771 (Fconstrain_to_field): Likewise.
5772 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 5773 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
5774 Supply new MERGE_AT_BOUNDARY argument to find_field.
5775 (Fline_beginning_position, Fline_end_position): Supply new
5776 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
5777 Pass a value of Qt for the ONLY_IN_LINE argument to
5778 Fconstrain_to_field (only matters if N != 1).
5779 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
5780 to Fconstrain_to_field.
5781
5782 * minibuf.c (Fminibuffer_complete_word): Use
5783 Ffield_beginning to find the prompt end.
5784
57851999-10-17 Miles Bader <miles@gnu.org>
5786
5787 * editfns.c (Fconstrain_to_field): Add get/set-current-point
5788 behavior when NEW_POS is nil.
5789 (find_field): Use XSETFASTINT instead of make_number.
5790 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
5791 input string by seeing where the field begins, instead of
5792 looking at text-properties.
5793
57941999-10-17 Miles Bader <miles@gnu.org>
5795
5796 * editfns.c (Qfield): New variable.
5797 (find_field, Ferase_field, Ffield_string,
5798 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
5799 (Fline_beginning_position, Fline_end_position): Constrain to any field.
5800 (make_buffer_string_both): Remove minibuffer-prompt hack.
5801 (syms_of_editfns): Initialize Qfield, and subr entries for
5802 field functions above.
5803 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
5804 minibuf_save_list.
5805 Don't initialize minibuffer prompt length.
5806 Wrap prompt text-properties around the entire prompt.
5807 Add 'prompt text-property to prompt.
5808 Get final value with Ffield_string instead of make_buffer_string.
5809 (read_minibuf_unwind): Don't restore minibuffer prompt length from
5810 minibuf_save_list.
5811 (do_completion): Get minibuffer input with Ffield_string
5812 instead of Fbuffer_string.
5813 Erase minibuffer input with Ferase_field instead of erase_buffer.
5814 (Fminibuffer_complete_and_exit): Likewise.
5815 Test whether buffer is empty by looking for the 'prompt text
5816 property at the end.
5817 Set prompt length by looking for the end of the prompt text property,
5818 and save prompt length for later use (since there is no longer a
5819 buffer variable to get it from).
5820 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
5821 (syms_of_minibuf): Remove initializations of
5822 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
5823 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 5824 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
5825 Don't initialize prompt_end_charpos field.
5826 * syntax.c (Fforward_word): Likewise.
5827 Constrain to any field.
5828
3f6f7508
GM
58291999-10-16 Gerd Moellmann <gerd@gnu.org>
5830
5831 * window.c (enum save_restore_action): New.
5832 (save_restore_orig_size): Change parameter list. Add
5833 functionality to check for valid orig_top and orig_height members
5834 in a window tree.
5835 (grow_mini_window): Call save_restore_orig_size with new parameter
5836 list.
5837 (shrink_mini_window): Restore old window sizes only if old
5838 size information is valid in all windows in a window tree.
427ec082 5839
06482119
GM
58401999-10-15 Gerd Moellmann <gerd@gnu.org>
5841
2710454d
GM
5842 * xmenu.c (set_frame_menubar): Don't call
5843 x_set_menu_resources_from_menu_face here.
5844 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
5845
06482119
GM
5846 * xfns.c (gif_load): Fix handling of interlaced GIFs.
5847
17fa2837
DL
58481999-10-14 Dave Love <fx@gnu.org>
5849
5850 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
5851
45f93416
GM
58521999-10-14 Gerd Moellmann <gerd@gnu.org>
5853
5854 * process.c (Fopen_network_stream): Don't loop if gethostbyname
5855 fails and h_errno is TRY_AGAIN.
5856
c765b723
DL
58571999-10-13 Dave Love <fx@gnu.org>
5858
5859 * filelock.c (lock_file): Move gcpro of `fn'.
5860
dace7f4e
GM
58611999-10-10 Gerd Moellmann <gerd@gnu.org>
5862
5863 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 5864
83c8f461 58651999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
5866
5867 * print.c (print): When removing objects from Vprint_number_table,
5868 only scan the newly added objects.
5869 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
5870 unconditionally force it to stay in the table.
5871
85177c86
GM
58721999-10-09 Gerd Moellmann <gerd@gnu.org>
5873
5874 * xfns.c (prepare_image_for_display): Don't try to load image if
5875 loading it failed before.
5876 (lookup_image, prepare_image_for_display): Remember if loading the
5877 image failed.
5878 (xpm_load): Add missing UNBLOCK_INPUT.
5879
5880 * dispextern.h (struct image): New member load_failed_p.
5881
11e4de5d
SM
58821999-10-08 Stefan Monnier <monnier@cs.yale.edu>
5883
f28eba7b 5884 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
5885 in the docstring.
5886
f1da8f06
GM
58871999-10-08 Gerd Moellmann <gerd@gnu.org>
5888
5889 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
5890 Don't call XSetInputFocus because that can generate additional
5891 FocusIn events.
427ec082 5892
c37bbd4f
GM
58931999-10-07 Jeffrey C Honig <jch@bsdi.com>
5894
5895 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
5896
83c8f461 58971999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
5898
5899 * process.c (wait_reading_process_input): When trying to suck
5900 input from one process, for accept-process-output,
5901 exit that loop if we get EAGAIN or EWOULDBLOCK.
5902
577d9e2f
GM
59031999-10-07 Gerd Moellmann <gerd@gnu.org>
5904
5905 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
5906 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
5907 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
5908 Fpixmap_spec_p and Qpixmap_spec_p.
5909 (load_face_colors, check_lface_attrs,
5910 merge_face_vector_with_property,
5911 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
5912 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
5913 Fbitmap_spec_p.
5914
f5737ad2
GM
59151999-10-07 Gerd Moellmann <gerd@gnu.org>
5916
5917 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
5918 MODE_LINE_FACE_ID.
5919
5920 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
5921 (struct x_resources) [USE_X_TOOLKIT]: New.
5922 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
5923 [USE_MOTIF]: New.
5924 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
5925 [USE_LUCID]: New.
5926 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
5927 (Qmenu): New.
5928 (syms_of_xfaces): Initialize Qmenu.
5929 (realize_basic_faces): Realize face `menu'.
5930 (resolve_face_name): New.
5931 (lface_from_face_name): Use it.
5932 (Finternal_set_lisp_face_attribute): Ditto.
5933 (Fpixmap_spec_p): Rewritten. Extend doc string.
5934
5935 * xmenu.c (set_frame_menubar, xmenu_show): Call
5936 x_set_menu_resources_from_menu_face.
5937
5938 * dispextern.h (enum face_id): Add MENU_FACE_ID.
5939 (toplevel): Include X11/Intrinsic.h.
5940
6a1aa823
DL
59411999-10-03 Ken'ichi Handa <handa@gnu.org>
5942
5943 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
5944 correctly.
5945
26901792
DL
59461999-09-30 Kenichi Handa <handa@etl.go.jp>
5947
5948 * category.c (modify_lower_category_set): Set default value of
5949 TABLE correctly.
5950
5951 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
5952 size correctly.
5953
59541999-09-29 Gerd Moellmann <gerd@gnu.org>
5955
5956 * editfns.c (Fpropertize): Renamed from Fproperties.
5957
59581999-09-29 Gerd Moellmann <gerd@gnu.org>
5959
5960 * xdisp.c (resize_mini_window): Do nothing if frame is an X
5961 frame that hasn't been initialized yet.
5962
83c8f461 59631999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
5964
5965 * keymap.c (Fsingle_key_description): Make tem big enough.
5966 (describe_buffer_bindings): Make buf big enough.
5967
83c8f461 59681999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
5969
5970 * intervals.c (get_local_map): Use indirect_function,
5971 not Findirect_function.
5972
26901792
DL
59731999-09-27 Dave Love <fx@gnu.org>
5974
5975 * cm.h: Remove unneeded declaration of ospeed.
5976
59771999-09-26 Gerd Moellmann <gerd@gnu.org>
5978
5979 * lisp.h (toplevel): Add prototype for
5980 next_single_char_property_change.
5981
5982 * textprop.c (next_single_char_property_change): New.
5983
5984 * xdisp.c (display_prop_end, invisible_text_between_p): Use
5985 next_single_char_property_change.
5986
59871999-09-25 Gerd Moellmann <gerd@gnu.org>
5988
5989 * editfns.c (Fproperties): New.
5990 (syms_of_editfns): Defsubr it.
5991
5992 * xfns.c (lookup_image): Set image's timestamp because it's
5993 used when we look it up.
5994
59951999-09-23 Gerd Moellmann <gerd@gnu.org>
5996
5997 * window.c (enlarge_window): Add window parameter instead of using
5998 selected_window.
5999 (Fdisplay_buffer): Call it with window parameter instead of
6000 setting selected_window.
6001 (Fenlarge_window, Fshrink_window): Ditto.
6002 (shrink_mini_window): If there is no recorded height and position
6003 info, resize mini-window to height 1.
6004
6005 * xfns.c (image_error): Use add_to_log.
6006
6007 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6008 (load_face_font_or_fontset, load_color,
6009 merge_face_vector_with_property): Ditto.
6010
6011 * dispextern.h: Add prototype for add_to_log.
6012
6013 * xfaces.c (add_to_log): Move to xdisp.c.
6014
6015 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6016 parameter.
6017
60181999-09-23 Gerd Moellmann <gerd@gnu.org>
6019
6020 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6021 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6022
6023 * xdisp.c (resize_mini_window): Use grow_mini_window and
6024 shrink_mini_window.
6025
6026 * window.c (window_min_size): Add parameter ignore_fixed_p.
6027 (change_window_height): Call window_min_size with new parameter.
6028 (shrink_window_lowest_first, save_restore_orig_size,
6029 grow_mini_window, shrink_mini_window): New.
6030 (make_window, replace_window): Initialize orig_top and
6031 orig_height.
6032 (enlarge_window): Renamed from change_window_height. Make it
6033 static.
6034 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6035 enlarge_window instead of change_window_height.
6036
6037 * window.h (struct window): New members orig_top, orig_height.
6038 (toplevel): Add prototypes for grow_mini_window and
6039 shrink_mini_window. Remove prototype for change_window_height.
6040
60411999-09-21 Eli Zaretskii <eliz@gnu.org>
6042
6043 * frame.c (frame_name_fnn_p): Fix previous change.
6044
60451999-09-20 Gerd Moellmann <gerd@gnu.org>
6046
6047 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6048
6049 * dispnew.c (direct_output_for_insert): Cast arguments to
6050 safe_bcopy to char *.
6051
6052 * lread.c (readchar): Remove unused variables.
6053 (read_filtered_event, read1, Fmapatoms): Ditto.
6054 (toplevel): Include intervals.h.
6055
6056 * eval.c (Fsignal): Remove unused variables.
6057 (Fcommandp, do_autoload): Ditto.
6058
6059 * lisp.h: Add prototype for safe_bcopy, fatal.
6060
6061 * editfns.c (init_editfns): Remove unused variables.
6062 (Fgoto_char, Fchar_after, Fformat): Ditto.
6063 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6064
6065 * data.c (find_symbol_value): Remove unused variables.
6066 (Faref, Fstring_to_number): Ditto.
6067 (toplevel): Include stdio.h.
6068 (Fnumber_to_string): Cast XINT to long for %ld.
6069
6070 * casefiddle.c (casify_object): Remove unused variables.
6071 (casify_region): Ditto.
6072
427ec082 6073 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6074 conditinally compiled section in #ifdef.
6075 (toplevel): Include stdio.h.
6076
6077 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6078 keys_of_keymap, syms_of_keymap): Remove unused variables.
6079
60801999-09-20 Gerd Moellmann <gerd@gnu.org>
6081
6082 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6083 whose corresponding window rows have been disabled in
6084 try_window_id.
6085
60861999-09-20 Gerd Moellmann <gerd@gnu.org>
6087
6088 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6089 that window start is out of range.
6090 (handle_display_prop, handle_single_display_prop): Replace
6091 marginal area specifications like `left-margin' with `(margin
6092 left-margin)'.
6093 (Qmargin): New.
6094 (syms_of_xdisp): Initialize Qmargin.
6095
60961999-09-19 Gerd Moellmann <gerd@gnu.org>
6097
6098 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6099 describe_syntax, skip_chars): Remove unused variables.
6100 (back_comment, forw_comment): Add braces to if-statement with
6101 if-else as dependent statement.
6102
6103 * process.c (list_processes_1): Remove unused variables.
6104 (Fopen_network_stream, create_process): Add parentheses to
6105 conditional expressions.
6106 (create_process): Put declaration of sigchld in #if 0.
6107 (Fopen_network_stream): Removed unused variables.
6108 (Fopen_network_stream, wait_reading_process_input,
6109 wait_reading_process_input, send_process, send_process): Ditto.
6110 (toplevel): Add prototypes for set_waiting_for_input and
6111 keyboard_bit_set.
6112
6113 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6114
6115 * textprop.c (Fset_text_properties): Remove unused variables.
6116 (text_property_list, verify_interval_modification,
6117 interval_has_all_properties): Ditto.
6118
6119 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6120 (Fcall_process): Remove unused variable.
6121
6122 * keyboard.c (Frecursive_edit): Remove unused variable.
6123 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6124 timer_check, make_lispy_event, menu_bar_items,
6125 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6126 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6127 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6128 read_key_sequence): Ditto. Fread_key_sequence,
6129 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6130 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6131 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6132 (Fexecute_extended_command): Cast XINT to long for %ld.
6133 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6134 (toplevel): Include sys/types.h.
6135
6136 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6137 (toplevel): Add prototypes for stuff_char, and
6138 code_convert_string_norecord.
6139
61401999-09-19 Gerd Moellmann <gerd@gnu.org>
6141
6142 * buffer.h: Add prototype for r_re_alloc.
6143
6144 * insdel.c (copy_text): Removed unused variables.
6145 (count_combining_after, count_combining_after, insert_1_both,
6146 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6147 (adjust_after_replace, replace_range): Add parentheses to logical
6148 expressions. Remove unused variables.
6149 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6150 expression.
6151
6152 * alloc.c (Fgarbage_collect): Remove unused variable.
6153 (compact_strings): Add parentheses around assignments in
6154 conditional context.
6155 (toplevel): Put declaration of unused function clear_marks
6156 in #if 0 like its definition.
6157
6158 * lisp.h: Add prototype for shrink_regexp_cache,
6159 sweep_weak_hash_tables.
6160
61611999-09-19 Dave Love <fx@gnu.org>
6162
6163 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6164
6165 * doc.c (read_bytecode_char): Declare arg.
6166
6167 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6168 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6169
61701999-09-18 Richard Stallman <rms@gnu.org>
6171
6172 * xdisp.c (echo_area_display): Turn off code that returned
6173 without doing anything when using a terminal frame.
6174
83c8f461 61751999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6176
6177 * unexelf.c (unexec): Don't get confused by a short section
6178 just before the bss section.
6179
26901792
DL
61801999-09-16 Gerd Moellmann <gerd@gnu.org>
6181
6182 * emacs.c (main): Remove unused variables.
6183 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6184
6185 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6186 init_fileio_once, syms_of_sound, init_xfns, init_fns
6187 init_sound, check_message_stack.
6188
6189 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6190
6191 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6192 ambiguous else warning.
6193 (split_interval_left): Remove unused variables.
6194 (previous_interval, adjust_intervals_for_deletion,
6195 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6196 (icount, idepth, zero_length): Move into #if 0 section below
6197 original position where these are used.
6198
6199 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6200
6201 * buffer.c (Fkill_buffer): Remove unused variables.
6202 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6203 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6204 init_buffer_once, (syms_of_buffer): Ditto.
6205
6206 * xrdb.c (get_fallback): Remove unused variable.
6207 (x_load_resources): Ditto. Put local variable used for Motif only
6208 in #ifdef USE_MOTIF.
6209
62101999-09-16 Gerd Moellmann <gerd@gnu.org>
6211
6212 * minibuf.c (read_minibuf): Remove unused variables.
6213 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6214 (do_completion): Move assignment out of conditional context.
6215 (Fdisplay_completion_list): Add parentheses to conditional expression.
6216
6217 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6218
6219 * lisp.h: Add prototype for no_switch_window.
6220
6221 * window.c (Fset_window_buffer): Remove unused variables.
6222 (Fset_window_margins): Ditto.
6223
6224 * xdisp.c (resize_mini_window): Temporarily set the selected
6225 window's or Vminibuf_scroll_window's height to "fixed" around
6226 the call the change_window_height.
6227
6228 * window.c (window_fixed_size_p): Check window's height_fixed_p
6229 flag.
6230
6231 * window.h (struct window): New member height_fixed_p.
6232
6233 * dispnew.c (direct_output_forward_char): Don't use this method
6234 if showing a message or a message was just cleared because we
6235 might need to resize the mini-window.
6236
62371999-09-16 Gerd Moellmann <gerd@gnu.org>
6238
6239 * frame.c (Fdelete_frame): Correct local variable pointing to
6240 selected frame after selecting new frame.
6241
62421999-09-15 Richard Stallman <rms@gnu.org>
6243
6244 * puresize.h (BASE_PURESIZE): Increase to 525000.
6245
6246 * filelock.c (Vtemporary_file_directory): New variable.
6247 (syms_of_filelock): Set up Lisp variable.
6248
62491999-09-15 Gerd Moellmann <gerd@gnu.org>
6250
6251 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6252 (encode_terminal_code): Remove unused variables.
6253 (turn_off_face): Ditto.
6254 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6255
6256 * dispnew.c (update_frame_line): If writing whole desired line,
6257 don't clear to end of line if already at the end.
6258
62591999-09-15 Gerd Moellmann <gerd@gnu.org>
6260
6261 * xdisp.c (resize_mini_window): Don't report changed window
6262 height if it actually hasn't changed.
6263
427ec082 6264 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6265 unused variables.
6266 (mark_shell_size_user_specified): Put in #if 0 because not used.
6267 (create_frame_gcs): Put in #if 0 because currently unused.
6268 (first_frame_p): Ditto.
6269
6270 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6271 single_submenu, update_frame_menubar, set_frame_menubar,
6272 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6273 variables.
6274
6275 * print.c (PRINTFULLP): Removed because it is no longer used and
6276 is misleading.
6277 (Ferror_message_string): Remove unused variables.
6278 (print_object): Cast argument of sprintf to long for `%ld'
6279 specifier. Remove unused variable.
6280
62811999-09-14 Gerd Moellmann <gerd@gnu.org>
6282
6283 * sound.c (Fplay_sound): Remove usused variables.
6284 (be2hs): Put in #if 0 because it's currently not used.
6285
62861999-09-14 Ken Raeburn <raeburn@gnu.org>
6287
6288 * print.c (Ferror_message_string, print_error_message,
6289 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6290 member access.
6291
62921999-09-14 Gerd Moellmann <gerd@gnu.org>
6293
6294 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6295
6296 * frame.c (Fnext_frame): Remove unused variable(s).
6297 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6298 (store_frame_param): Add parentheses to conditional expression.
6299 (Fmodify_frame_parameters): Remove unused variables.
6300 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6301 Ditto.
6302
6303 * xfns.c (x_set_background_color): Remove unused variable(s).
6304 (x_set_border_pixel): Ditto.
6305 (x_set_menu_bar_lines): Put local variable used only for
6306 non-toolkit case in #ifdef/#endif.
6307 (x_figure_window_size): Remove unused variable(s).
427ec082 6308 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6309 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6310 png_load, jpeg_load, gif_load, x_create_tip_frame,
6311 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6312
6313 * xterm.c (x_scroll_bar_handle_click): Compile only if
6314 not USE_TOOLKIT_SCROLL_BARS.
6315 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6316
6317 * dispextern.h: Add prototypes for gamma_correct and
6318 x_kill_gs_process.
6319
6320 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6321 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6322 x_set_toolkit_scroll_bar_thumb): Ditto.
6323 (x_scroll_bar_create): Move local variable to the
6324 conditionally compiled section of code where it is used.
6325 (x_scroll_bar_create): Remove unused variable(s).
6326 (x_scroll_bar_remove, XTread_socket): Ditto.
6327 (XTread_socket) <ConfigureNotify>: Move variables used for
6328 non-toolkit case into conditionally compiled section of code.
6329
6330 * window.h (freeze_window_starts): Fix typo in prototype.
6331
6332 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6333 variable(s).
6334
6335 * lisp.h: Add prototype for debug_print.
6336
6337 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6338 to use do-while.
6339
6340 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6341 (Fchar_table_range, Fset_char_table_default, mapcar1,
6342 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6343
6344 * lisp.h: Add prototype for getloadavg.
6345
63461999-09-14 Andreas Schwab <schwab@gnu.org>
6347
6348 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6349
6350 * lisp.h: Declare close_file_unwind.
6351
63521999-09-14 Richard Stallman <rms@gnu.org>
6353
6354 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6355
63561999-09-13 Gerd Moellmann <gerd@gnu.org>
6357
6358 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6359 is always set correctly.
6360
63611999-09-13 Dave Love <fx@gnu.org>
6362
6363 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6364 declaration.
6365
63661999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6367
6368 * xdisp.c (QCfile): Move here from xfns.c.
6369 (syms_of_xdisp): Initialize it.
6370 (message2_nolog): Change for Lisp_Object selected_frame.
6371 (message3_nolog, message_with_string, message,
6372 setup_echo_area_for_printing, truncate_echo_area,
6373 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6374
63751999-09-13 Dave Love <fx@gnu.org>
6376
6377 * xterm.c: Don't continue #define args for benefit of old cc.
6378 (xt_action_hook): Indent #error for benefit of K&R cc.
6379
63801999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6381
6382 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6383 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6384 (XRINGBELL): Removed.
6385
63861999-09-13 Dave Love <fx@gnu.org>
6387
6388 * xfns.c (x_put_x_image): Make type consistent with declaration.
6389
6390 * fns.c (Fmake_hash_table): Fix string continuation.
6391
63921999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6393
6394 * xfns.c (QCfile): Moved to xdisp.c.
6395 (syms_of_xfns): Don't initialize QCfile.
6396 (check_x_frame): Change for Lisp_Object selected_frame.
6397 (check_x_display_info, x_get_resource_string): Ditto.
6398
63991999-09-13 Gerd Moellmann <gerd@gnu.org>
6400
6401 * minibuf.c (choose_minibuf_frame): Don't try to set the
6402 mini-buffer window's buffer, if the buffer is invalid.
6403
6404 * xfns.c (QCfile): Moved to xdisp.c.
6405 (syms_of_xfns): Don't initialize QCfile.
6406
6407 * xdisp.c (QCfile): Move here from xfns.c.
6408 (syms_of_xdisp): Initialize it.
6409
6410 * lisp.h (selected_frame): Add external declaration.
6411
6412 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6413 (Fx_store_cut_buffer_internal): Ditto.
6414 (Fx_rotate_cut_buffers_internal): Ditto.
6415
6416 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6417 selected_frame.
6418 (Finternal_set_lisp_face_attribute): Ditto.
6419 (Finternal_get_lisp_face_attribute): Ditto.
6420 (Finternal_lisp_face_empty_p): Ditto.
6421 (Fdump_face): Ditto.
6422
6423 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6424 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6425 set_terminal_window, set_scroll_region, reassert_line_highlight,
6426 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6427 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6428 encode_terminal_code, write_glyphs, term_init): Ditto.
6429
6430 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6431 (kbd_input_ast, read_input_waiting): Ditto.
6432
6433 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6434 selected_frame.
6435 (read_minibuf): Ditto.
6436
6437 * keyboard.c (command_loop_1): Change for Lisp_Object
6438 selected_frame.
6439 (cmd_error_internal, command_loop_1, read_char,
6440 kbd_buffer_get_event, read_avail_input,
6441 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6442 interrupt_signal, quit_throw_to_read_char): Ditto.
6443
6444 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6445 (Ffontset_info): DItto.
6446
6447 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6448
6449 * dispnew.c (selected_frame): Make it a Lisp_Object.
6450 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6451 (direct_output_for_insert, direct_output_forward_char,
6452 init_display): Ditto.
6453
6454 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6455 selected_frame.
6456 (set_internal): Ditto.
6457
6458 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6459 (record_buffer): Ditto.
6460
6461 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6462 (do_switch_frame): Change for Lisp_Object selected_frame.
6463 (Fselected_frame): Ditto.
6464 (Fframe_first_window): Use SELECTED_FRAME.
6465 (Fframe_root_window): Change for Lisp_Object selected_frame.
6466 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6467 Fprevious_frame, other_visible_frames, Fdelete_frame,
6468 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6469 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6470 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6471 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6472 Fset_frame_height, Fset_frame_width): Ditto.
6473
64741999-09-13 Gerd Moellmann <gerd@gnu.org>
6475
6476 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6477 (message3_nolog, message_with_string, message,
6478 setup_echo_area_for_printing, truncate_echo_area,
6479 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6480
6481 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6482 (Fx_popup_dialog): Ditto.
6483
6484 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6485 (check_x_display_info, x_get_resource_string): Ditto.
6486
6487 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6488 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6489 (XRINGBELL): Removed.
6490
6491 * window.c (Fminibuffer_window): Change for Lisp_Object
6492 selected_frame.
6493 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6494 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6495 Fcurrent_window_configuration, init_window_once): Ditto.
6496
6497 * frame.h (SELECTED_FRAME): New.
6498
64991999-09-12 Ken Raeburn <raeburn@gnu.org>
6500
6501 * category.c (word_boundary_p): Use XCAR and XCDR.
6502 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6503 Fregister_code_conversion_map): Likewise.
6504 * coding.c (setup_coding_system, detect_coding_system,
6505 Ffind_operation_coding_system, Fset_coding_priority_internal):
6506 Likewise.
6507 * doc.c (get_doc_string, Fdocumentation,
6508 store_function_docstring): Likewise.
6509 * editfns.c (save_restriction_restore): Likewise.
6510 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6511 skip_debugger, find_handler_clause, Fautoload, Fapply,
6512 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6513 Likewise.
6514 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6515 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6516 Fread_file_name): Likewise.
6517 * filelock.c (unlock_all_files): Likewise.
6518 * insdel.c (Fcombine_after_change_execute): Likewise.
6519 * intervals.c (adjust_intervals_for_insertion): Likewise.
6520 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6521 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6522 store_in_keymap, Fcopy_keymap, define_as_prefix,
6523 current_minor_maps, Faccessible_keymaps,
6524 accessible_keymaps_char_table, Fkey_description,
6525 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6526 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6527 describe_map): Likewise.
6528 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6529 read_list, init_lread): Likewise.
6530 * search.c (Fmatch_data): Likewise.
6531 * sunfns.c (Fsun_menu_internal): Likewise.
6532 * syntax.c (describe_syntax): Likewise.
6533 * undo.c (record_insert, record_delete, Fundo_boundary,
6534 truncate_undo_list): Likewise.
6535 * vmsproc.c (child_sig): Likewise.
6536
6537 * editfns.c (Fformat): Use XFLOAT_DATA.
6538
65391999-09-12 Gerd Moellmann <gerd@gnu.org>
6540
6541 * keyboard.c (command_loop_1): Resize mini-window to the
6542 exact size of a message displayed, if any.
6543
6544 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6545 to exact size if exact_p is non-zero.
6546 (display_echo_area_1): Call resize_mini_window with
6547 new parameter.
6548 (redisplay_internal): Ditto.
6549 (resize_echo_area_axactly): New.
6550
6551 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6552 new parameter.
6553
6554 * dispextern.h: Change prototype of resize_mini_window.
6555 Add prototype for resize_echo_area_axactly.
6556
6557 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6558 (syms_of_xfaces): Defsubr accordingly.
6559
6560 * xdisp.c (hscroll_window_tree): Choose cursor row from
6561 desired or current matrix.
6562 (redisplay_internal): Hscroll before updating.
6563
65641999-09-12 Gerd Moellmann <gerd@gnu.org>
6565
6566 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6567 of minibuffer_prompt_length.
6568
6569 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6570 of minibuffer_prompt_length.
6571 (read_minibuf_unwind): Ditto.
6572 (Fminibuffer_complete_and_exit): Ditto.
6573 (Fminibuffer_complete_word): Ditto.
6574 (Fminibuffer_prompt_end): Ditto.
6575
6576 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6577 of minibuffer_prompt_length.
6578 (Fline_beginning_position): Ditto.
6579
6580 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6581 of minibuffer_prompt_length.
6582 (Fmake_indirect_buffer): Ditto.
6583 (Fkill_buffer): Ditto.
6584 (Ferase_buffer): Ditto.
6585
6586 * buffer.h (prompt_end_charpos): Replaces
6587 minibuffer_prompt_length.
6588
427ec082 6589 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6590 without the prompt.
6591
6592 * editfns.c (make_buffer_string_both): Take out the code
6593 to handle mini-buffer prompts.
6594 (Fbuffer_string): Handle the prompt here, instead.
6595
6596 * xfaces.c (lface_from_face_name): Resolve face aliases.
6597 (Qmode_line): Replaces Qmodeline.
6598 (realize_basic_faces): Use Qmode_line.
6599 (syms_of_xfaces): Initialize Qmode_line.
6600
66011999-09-12 Gerd Moellmann <gerd@gnu.org>
6602
6603 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6604 current column after inserting prompt.
6605 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6606
6607 * xfaces.c (Qframe_update_face_colors): New.
6608 (syms_of_xfaces): Initialize call.
6609 (update_face_from_frame_parameter): Call that function when
6610 the frame's background changes.
6611
66121999-09-12 Richard Stallman <rms@gnu.org>
6613
6614 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6615
66161999-09-12 Ken Raeburn <raeburn@gnu.org>
6617
6618 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6619 mark_object, mark_buffer): Use XCAR and XCDR.
6620 * bytecode.c (Fbyte_code): Likewise.
6621 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6622 Likewise.
6623 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6624 getenv_internal): Likewise.
6625 * dired.c (file_name_completion): Likewise.
6626 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6627 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6628 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6629 * indent.c (Fcompute_motion): Likewise.
6630 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6631 list_processes_1, Fstart_process, Fopen_network_stream,
6632 wait_reading_process_input, read_process_output_call,
6633 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6634 status_notify, wait_reading_process_input): Likewise.
6635 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6636 extend_property_ranges): Likewise.
6637 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6638 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6639 x_report_frame_params, x_set_cursor_type, x_icon_type,
6640 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6641 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6642 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6643 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6644 x_display_info_for_name, Fx_display_list): Likewise.
6645 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6646 Fx_popup_menu, Fx_popup_dialog): Likewise.
6647 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6648 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6649 w32_term_init, x_delete_display): Likewise.
6650 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6651 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6652 x_top_window_to_frame, x_set_frame_parameters,
6653 x_report_frame_params, x_set_cursor_type, x_icon_type,
6654 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6655 Fx_display_list, x_create_tip_frame): Likewise.
6656 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6657 Fx_popup_menu, Fx_popup_dialog): Likewise.
6658 * xselect.c (x_own_selection, x_get_local_selection,
6659 x_handle_selection_request, x_handle_selection_clear,
6660 x_clear_frame_selections, wait_for_property_change_unwind,
6661 wait_for_property_change, x_handle_property_notify,
6662 copy_multiple_data, x_get_foreign_selection,
6663 lisp_data_to_selection_data, clean_local_selection_data,
6664 x_handle_selection_notify, Fx_get_selection_internal,
6665 x_disown_buffer_selections): Likewise.
6666 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6667 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6668 Likewise.
6669
6670 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6671 XFLOAT_DATA.
6672 * bytecode.c (Fbyte_code): Likewise.
6673 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6674 fmod_float): Likewise.
6675
66761999-09-11 Richard Stallman <rms@gnu.org>
6677
6678 * xdisp.c (run_window_scroll_functions): If hook functions switch
6679 buffers, switch back after.
6680
66811999-09-11 Ken Raeburn <raeburn@gnu.org>
6682
6683 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6684 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6685 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6686 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6687 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6688 XCDR.
6689 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6690 XCDR.
6691
66921999-09-10 Richard Stallman <rms@gnu.org>
6693
6694 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6695 not RevertToPointerRoot.
6696 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6697 Fix the code to clear around the scroll bar.
6698
66991999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6700
6701 * print.c: Support print-circle and related features.
6702 (Vprint_gensym_alist): Removed.
6703 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6704 Vprint_number_table): New variables.
6705 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6706 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6707 (print, print_preprocess, print_preprocess_string, print_object):
6708 New/modified functions with print-circle feature. Use
6709 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6710 (syms_of_print): Defined new Lisp variables `print-circle',
6711 `print-continuous-numbering', `print-number-table'.
6712
67131999-09-10 Gerd Moellmann <gerd@gnu.org>
6714
6715 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6716 as background color specification instead of an integer.
6717 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6718 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6719 (clear_image_cache, syms_of_xfns): Use it.
6720 (Qpostscript): Replaces Qghostscript.
6721 (gs_type): Use it.
6722 (gs_image_p): Ditto.
6723 (syms_of_xfns): Initialize Qpostscript.
6724
67251999-09-10 Richard Stallman <rms@gnu.org>
6726
6727 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
6728
67291999-09-09 Richard Stallman <rms@gnu.org>
6730
6731 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
6732
6733 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
6734
67351999-09-09 Gerd Moellmann <gerd@gnu.org>
6736
6737 * fns.c (Fmakehash): Accept just one optional argument TEST.
6738
6739 * xfns.c (QCindex): New.
6740 (syms_of_xfns): Initialize QCindex.
6741 (gif_load): Use it instead of `:image'.
6742
67431999-09-09 Richard Stallman <rms@gnu.org>
6744
6745 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
6746 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
6747
67481999-09-08 Gerd Moellmann <gerd@gnu.org>
6749
6750 * xdisp.c (Qwhen): Replaces QCwhen.
6751 (syms_of_xdisp): Initialized it instead of QCwhen.
6752 (handle_single_display_prop): Use it instead of QCwhen.
6753
67541999-09-08 Ken'ichi Handa <handa@gnu.org>
6755
6756 * charset.c (translate_char): Reset MSBs of arguments of
6757 MAKE_CHAR.
6758 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
6759
67601999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
6761
6762 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
6763
6764 * fns.c (Fbase64_decode_region): Don't place point outside of the
6765 current accessible portion.
6766
67671999-09-07 Richard Stallman <rms@gnu.org>
6768
6769 * keymap.c (fix_submap_inheritance): Do nothing if the proper
6770 parent is an ancestor of SUBMAP; otherwise, add it as the
6771 ultimate ancestor.
6772
67731999-09-07 Gerd Moellmann <gerd@gnu.org>
6774
6775 * xdisp.c (handle_single_display_prop): Change conditional
6776 display property to `:when FORM . VALUE'.
6777
67781999-09-07 Richard Stallman <rms@gnu.org>
6779
6780 * fileio.c (Fwrite_region): Doc fix.
6781
67821999-09-07 Stefan Monnier <monnier@cs.yale.edu>
6783
6784 * fileio.c (Qexcl): New variable.
6785 (report_file_error): Handle EEXIST specially.
6786 (Fwrite_region): Special handling for CONFIRM = `excl'.
6787 (syms_of_fileio): Initialize Qexcl.
6788
67891999-09-07 Gerd Moellmann <gerd@gnu.org>
6790
6791 * xfns.c (x_set_foreground_color): Call
6792 update_face_from_frame_parameter.
6793 (x_set_background_color): Ditto.
6794 (x_set_mouse_color): Ditto.
6795 (x_set_cursor_color): Ditto.
6796 (x_set_border_color): Ditto.
6797 (x_set_scroll_bar_foreground): Ditto.
6798 (x_set_scroll_bar_background): Ditto.
6799
6800 * xfaces.c (recompute_basic_faces): Clear face cache.
6801 (Finternal_set_lisp_face_attribute): Modify frame parameters
6802 if attributes of certain faces are changed.
6803 (update_face_from_frame_parameter): New.
6804
6805 * xfaces.c (realize_basic_faces): Realize new basic faces.
6806
6807 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
6808 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
6809
6810 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
6811 (syms_of_xfaces): Intialize new symbols.
6812
6813 * fns.c (Fmakehash): Take one argument, test, make all the
6814 rest keyword arguments.
6815
6816 * window.c (Fset_window_margins): Make window the first argument.
6817 (set_window_buffer): Call Fset_window_margins with window as first
6818 argument.
6819
68201999-09-07 Gerd Moellmann <gerd@gnu.org>
6821
6822 * xfaces.c (Qfringe): Replaces Qmargin.
6823
68241999-09-07 Kenichi Handa <handa@etl.go.jp>
6825
6826 * charset.h: Lots of comments fixed.
6827 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
6828 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
6829
6830 * charset.c : Lots of comments fixed.
6831 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
6832 (CHAR_COMPONENTS_VALID_P): Name changed from
6833 CHAR_COMPONENT_VALID_P. Caller changed.
6834
68351999-09-06 Richard Stallman <rms@gnu.org>
6836
6837 * insdel.c (syms_of_insdel): Define Lisp variable
6838 inhibit-modification-hooks.
6839
68401999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
6841
6842 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
6843 unexaix.c.
6844
6845 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
6846
68471999-09-06 Dave Love <fx@gnu.org>
6848
6849 * unexaix.c: New version incorporating Michael Sperber's changes
6850 from XEmacs. Should solve problems on AIX 4.3.
6851
6852 * lread.c (Vbyte_boolean_vars): New variable.
6853 (defvar_bool, syms_of_lread): Use it.
6854
68551999-09-05 Richard Stallman <rms@gnu.org>
6856
6857 * minibuf.c (read_minibuf): Put all three properties on the
6858 same range, the whole prompt.
6859
68601999-09-05 Gerd Moellmann <gerd@gnu.org>
6861
6862 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
6863 (Fplay_sound, syms_of_sound): Use it.
6864 (parse_sound): Allow float volume values in the range [0, 1].
6865 (Fplay_sound): Ditto.
6866
6867 * window.c (Fset_window_vscroll): Make window the first argument,
6868 amount to scroll the second. Take non-negative vscroll as
6869 argument.
6870 (Fwindow_vscroll): Return non-negative vscroll.
6871
6872 * xfns.c (Fx_show_tip): Improve documentation.
6873
68741999-09-05 Gerd Moellmann <gerd@gnu.org>
6875
6876 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
6877 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
6878 `top-line' and `top_line' to `header-line' and `header_line'.
6879 Likewise for similar spellings.
6880
68811999-09-05 Gerd Moellmann <gerd@gnu.org>
6882
6883 * xdisp.c (row_containing_pos): New.
6884 (try_window_id): Use it.
6885
6886 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
6887 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
6888 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
6889 Likewise for upper-case etc.
6890
68911999-09-05 Gerd Moellmann <gerd@gnu.org>
6892
6893 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6894 Fix reference to renamed variable.
6895
68961999-09-04 Gerd Moellmann <gerd@gnu.org>
6897
6898 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 6899 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
6900 Qfixed_window_size.
6901 (syms_of_window): Ditto.
6902
6903 * fns.c (Fmakehash): Exchange optional test and size arguments.
6904
69051999-09-03 Gerd Moellmann <gerd@gnu.org>
6906
6907 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
6908 under newly created scroll bar.
6909 (expose_window): If window is not yet fully initialized, do
6910 nothing. This can happen when toolkit scroll bars are used and a
6911 window is split. Reconfiguring the scroll bars will generate an
6912 expose for a newly created window.
6913
6914 * frame.h (struct frame): New member `gamma'.
6915
6916 * xfns.c: Include math.h. Add extern declaration for atof in case
6917 we don't see one.
6918 (Qscreen_gamma): New.
6919 (struct x_frame_parm_table): Add prototypes, add
6920 x_set_screen_gamma.
6921 (gamma_correct): New function.
6922 (defined_color): Call it.
6923 (x_set_screen_gamma): New.
6924 (x_set_title): Add parameter old_value.
6925 (RES_TYPE_FLOAT): New.
6926 (x_get_arg): Handle RES_TYPE_FLOAT.
6927 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
6928 (lookup_pixel_color): Change call to x_alloc_nearest_color to
6929 new prototype.
6930 (lookup_rgb_color): Ditto.
6931 (syms_of_xfns): Initialize Qscreen_gamma.
6932
6933 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
6934 New. Allocate color for lwlib widgets.
6935 (x_alloc_nearest_color): Change parameter list include the
6936 frame on which to allocate colors. Gamma-correct colors.
6937 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
6938 parameter list.
6939
6940 * xterm.h: Change protorype of x_alloc_nearest_color.
6941
69421999-09-03 Richard Stallman <rms@gnu.org>
6943
6944 * callproc.c: Delete the system-independent include of stdlib.h
6945 (leaving only the one in the WINDOWSNT conditional).
6946
69471999-09-03 Andrew Choi <choi@cs.hku.hk>
6948
6949 * callproc.c (call-process) [macintosh]: Call mac_run_command in
6950 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 6951
26901792
DL
6952 * dispextern.h [macintosh]: Include macterm.h to define substitute X
6953 Window types and macros.
6954
6955 * frame.h: Do nothing if included a second time.
6956 (enum output_method): Add mac_output frame type.
6957 (union output_data): Add new alternative `mac'.
6958 (FRAME_MAC_P): New macro.
427ec082 6959
26901792
DL
6960 * frame.c (Fframep) [macintosh]: Handle mac frame type.
6961 (syms_of_frame_1): Initialize Qmac.
6962 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
6963 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
6964 (Fmodify_frame_parameters) [macintosh]: Call
6965 mac_set_frame_parameter in macterm.c.
427ec082 6966
26901792
DL
6967 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
6968 (512) because Mac compilers limit local data of a function to 32K.
427ec082 6969
26901792
DL
6970 * make-docfiles.c: Correctly handle input files with Mac-style
6971 eol's.
427ec082 6972
26901792 6973 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 6974
26901792
DL
6975 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
6976 file of an X Window environment.
427ec082 6977
26901792
DL
6978 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
6979 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 6980
26901792
DL
6981 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
6982 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
6983 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
6984 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
6985 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
6986 New functions, replacing POSIX features.
427ec082 6987
26901792
DL
6988 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
6989 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
6990 (InitEmacsPasswdDir, run_mac_command): New subroutines.
6991
6992 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
6993 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
6994 (myPasswdDir, TempDirName, sys_siglist): New variables.
6995
6996 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
6997 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
6998 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
6999 Define empty stubs so Emacs will link.
7000
70011999-09-03 Gerd Moellmann <gerd@gnu.org>
7002
7003 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7004
7005 * window.h: New member frozen_window_start_p.
7006
7007 * window.c (foreach_window, foreach_window_1): New.
7008 (freeze_window_start, freeze_window_starts): New.
7009 (make_window): Initialize frozen_window_start_p.
7010 (replace_window): Ditto.
7011 (Fset_window_point): Remove references to deleted variables.
7012 (Fset_window_start): Ditto.
7013
7014 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7015 resize_mini_initial_height): Removed.
7016 (syms_of_xdisp): Remove references to these variables.
7017 (resize_mini_window): Don't save window configuration, freeze
7018 window starts instead. Enlarge window until displaying an empty
7019 buffer, then shrink it. Make the function externally visible.
7020 (redisplay_window): Treat frozen window start like forced start,
7021 but accept point outside of the window.
7022
7023 * dispextern.h: Add function prototype for resize_mini_window.
7024
7025 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7026 reaching minibuf_level 0.
7027
7028 * lisp.h: Remove extern declarations for variables deleted from
7029 xdisp.c.
7030
7031 * dispnew.c (adjust_frame_glyphs): Remove reference to
7032 Vresize_mini_config.
7033
70341999-09-03 Gerd Moellmann <gerd@gnu.org>
7035
7036 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7037 to USE_TOOLKIT_SCROLL_BARS.
7038
7039 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7040 here.
7041 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7042 under newly created scroll bar. Put toolkit scroll bars in the
7043 middle of the area reserved for the scroll bar.
7044
70451999-09-03 Kenichi Handa <handa@etl.go.jp>
7046
7047 The following changes are for the new handling of mulitbyte
7048 sequence. Now, except for a composite character, no multibyte
7049 character in string/buffer has trailing garbage bytes. For
7050 instance, the length of string "\201\300\300" is now 2, the first
7051 character is Latin-1 A-grave, the second is raw \300.
7052
7053 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7054 are negative.
7055 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7056 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7057 (PARSE_COMPOSITE_SEQ): New macro.
7058 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7059 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7060 (CHAR_PRINTABLE_P): New macro.
7061 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7062 (STRING_CHAR_AND_LENGTH): Likewise.
7063 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7064 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7065 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7066
7067 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7068 (SPLIT_CHARACTER_SEQ): New macro.
7069 (SPLIT_MULTIBYTE_SEQ): New macro.
7070 (CHAR_COMPONENT_VALID_P): New macro.
7071 (non_ascii_char_to_string): Generate a multibyte sequence as far
7072 as possible.
7073 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7074 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7075 (split_non_ascii_string): Likewise.
7076 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7077 (char_printable_p): New function.
7078 (translate_char): Check character by NATNUMP instead of INTEGERP.
7079 (unibyte_char_to_multibyte): Call char_valid_p instead of
7080 VALID_MULTIBYTE_CHAR_P.
7081 (Fmake_char_internal): Check the arguments more rigidly.
7082 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7083 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7084 (Fmultibyte_char_to_unibyte): Check the validity of character by
7085 CHAR_VALID_P.
7086 (chars_in_text): Call multibyte_chars_in_text.
7087 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7088 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7089 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7090
7091 * data.c (Faset): Adjust the way to check byte-combining
7092 possibility for the new handling of multibyte sequence.
7093
7094 * editfns.c (Fsubst_char_in_region): Likewise.
7095
7096 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7097 (string_char_to_byte): Likewise.
7098 (string_byte_to_char): Likewise.
7099
7100 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7101 macro STRING_CHAR_AND_LENGTH. Caller changed.
7102
7103 * insdel.c (count_combining_composition): New function.
7104 (count_combining_before): Adjust the way to check byte-combining
7105 possibility for the new handling of multibyte sequence. Call
7106 count_combining_composition for a composite character.
7107 (count_combining_after): Likewise.
7108
7109 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7110 (print): Likewise.
7111
7112 * dispextern.h (struct it): Change the size of the member
7113 `ctl_chars'.
7114
7115 * xdisp.c (get_next_display_element): Display incomplete multibyte
7116 sequence (e.g. \222\300) by octal form.
7117
71181999-09-02 Gerd Moellmann <gerd@gnu.org>
7119
7120 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7121
7122 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7123 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7124
71251999-09-02 Gerd Moellmann <gerd@gnu.org>
7126
7127 * buffer.c (set_buffer_internal): Never set
7128 windows_or_buffers_changed.
7129
7130 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7131 if we have displayed to the bottom of the window.
7132
7133 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7134 in both directions. Extend documentation.
7135
71361999-09-01 Gerd Moellmann <gerd@gnu.org>
7137
7138 * minibuf.c (read_minibuf): Flush display after setting cursor to
7139 column 0.
7140
71411999-08-31 Gerd Moellmann <gerd@gnu.org>
7142
7143 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7144 already defined. This avoids a warning from buffer.c.
7145
71461999-08-30 Gerd Moellmann <gerd@gnu.org>
7147
7148 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7149 of both margins.
7150 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7151 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7152 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7153
7154 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7155 once instead of twice.
7156 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7157
7158 * xterm.c: Remove unused bitmaps.
7159 (continued_bits, continuation_bits, overlay_bits): Change images.
7160 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7161 instead of FRAME_X_FLAGS_AREA_WIDTH.
7162 (x_after_update_window_line): Ditto.
7163 (x_draw_bitmap): Likewise.
7164 (x_draw_row_bitmaps): Likewise.
7165 (x_draw_glyph_string_box): Likewise.
7166 (x_draw_glyphs): Likewise.
7167 (x_scroll_run): Likewise.
7168 (expose_window_tree): Likewise.
7169 (note_mode_line_highlight): Likewise.
7170 (XTset_vertical_scroll_bar): Likewise.
7171 (x_clip_to_row): Likewise.
7172 (x_set_window_size): Likewise.
7173
7174 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7175 of 2 * that value.
7176
7177 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7178 2 * that value.
7179 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7180 FRAME_FLAGS_AREA_WIDTH.
7181
7182 * window.c (coordinates_in_window): Use
7183 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7184 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7185 instead of twice.
7186
427ec082 7187 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7188 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7189 (EmacsFrameSetCharSize): Ditto.
7190
7191 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7192 instead of FRAME_FLAGS_AREA_WIDTH.
7193
7194 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7195 FRAME_FLAGS_AREA_COLS once.
7196 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7197 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7198
71991999-08-30 Gerd Moellmann <gerd@gnu.org>
7200
7201 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7202 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7203
72041999-08-30 Gerd Moellmann <gerd@gnu.org>
7205
7206 * fns.c (QCweakness): Replaces QCweak.
7207 (Fmake_hash_table): Ditto.
7208 (Fmakehash): Ditto.
7209 (syms_of_fns): Ditto.
7210
72111999-08-29 Richard Stallman <rms@gnu.org>
7212
7213 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7214
7215 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7216
7217 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7218 Add support for nested comments.
7219
863476d1
SM
7220 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7221 Consolidate the forward comment code into the new `forw_comment'.
7222 (forw_comment): New subroutine. Added support for nested comments.
7223 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7224 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7225
72261999-08-28 Ken Raeburn <raeburn@gnu.org>
7227
7228 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7229 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7230 defined, to help detect code that uses knowledge of the Lisp
7231 internals that it shouldn't have.
7232 (XFLOAT_DATA): New macro.
7233
72341999-08-25 Gerd Moellmann <gerd@gnu.org>
7235
7236 * syntax.c (Fforward_word): If in a mini-buffer and moving
7237 backwards, stop in front of the prompt to prevent accidentially
7238 moving into the read-only prompt.
7239
7240 * window.c (Frecenter): Clear frame if called with nil or no arg.
7241
7242 * xdisp.c (resize_mini_window): Don't resize if
7243 Vmax_mini_window_height is nil. Otherwise, use a default if
7244 Vmax_mini_window_height is not ot a number.
7245 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7246
72471999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7248
7249 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7250 * m/iris4d.h: Use unexelf for IRIX 5.*.
7251 * m/iris5d.h: Use unexelf for IRIX 6.*.
7252 * unexsgi.c: Deleted.
7253
7254 * unexelf.c: Auto-detect .sbss section.
7255 (round_up): Make it static.
7256 (unexec): Declare alignment as Elf Word. Skip ``Program
7257 segment above .bss'' test on MIPS without .sbss.
7258 Copy sections .got and .sdata1 sections. Adjust offsets in
7259 sections .sdata, .lit4, .lit8, .got and .sdata1.
7260
72611999-08-25 Gerd Moellmann <gerd@gnu.org>
7262
7263 * xdisp.c (try_window_id): Remove typo.
7264
72651999-08-24 Gerd Moellmann <gerd@gnu.org>
7266
7267 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7268 unchanged text at the bottom when computing the cursor position.
7269 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7270 set.
7271
7272 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7273
72741999-08-24 Gerd Moellmann <gerd@gnu.org>
7275
7276 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7277 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7278 (syms_of_xfaces): Ditto.
7279
7280 * window.c (Fset_window_point): Reset Vresize_mini_config.
7281 (Fset_window_start): Ditto.
7282 (set_window_buffer): Ditto.
7283
7284 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7285
7286 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7287 before calling try_window.
7288 (echo_area_display): If height has changed, update other windows.
7289 (resize_mini_frame, resize_mini_initial_height): New.
7290 (resize_mini_window): Save/restore window configuration
7291 differently.
7292
427ec082 7293 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7294 resize_mini_initial_height): Add extern declarations.
7295
7296 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7297 CANON_X_UNIT.
7298
7299 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7300 being redefined in jconfig.h.
7301
73021999-08-23 Ken'ichi Handa <handa@gnu.org>
7303
7304 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7305
73061999-08-22 Gerd Moellmann <gerd@gnu.org>
7307
7308 * alloc.c (mark_glyph_matrix): Mark strings only.
7309
7310 * xdisp.c (redisplay_internal): Clear garbaged frames after
7311 resizing mini-window.
7312
73131999-08-22 Gerd Moellmann <gerd@gnu.org>
7314
7315 * xdisp.c (unwind_with_echo_area_buffer): Use
7316 set_buffer_internal_1 instead of set_buffer_internal.
7317 (with_echo_area_buffer): Ditto.
7318
7319 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7320 only if buffer is displayed somewhere.
7321
7322 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7323
7324 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7325 (gap_right): Ditto.
7326 (modify_region): Ditto.
7327
7328 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7329
7330 * xdisp.c (Vresize_mini_config): New.
7331 (resize_mini_window): Use it to save restore original window
7332 configuration
7333 (syms_of_xdisp): Initialize it.
7334
7335 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7336
7337 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7338
7339 * xdisp.c (reconsider_clip_changes): New.
7340 (redisplay_internal, redisplay_window): Call it.
7341 (mark_window_display_accurate, redisplay_internal): Set current
7342 matrix' buffer, begv, zv.
7343
7344 * window.c (Fset_window_hscroll): Set
7345 prevent_redisplay_optimizations_p instead of clip_changed.
7346 (Fset_window_hscroll): Ditto.
7347 (temp_output_buffer_show): Ditto.
7348 (Fset_window_vscroll): Ditto.
7349
7350 * buffer.c (reset_buffer): Set clip_changed to 0 and
7351 prevent_redisplay_optimizations_p to 1.
7352 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7353
7354 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7355 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7356 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7357 END_UNCHANGED): New.
7358 (struct buffer_text): Add beg_unchanged, end_unchanged,
7359 unchanged_modified, overlay_unchanged_modified.
7360
7361 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7362 overlay_unchanged_modified): Removed.
7363 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7364 (unwind_with_echo_area_buffer): Don't restore them.
7365 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7366 (text_outside_line_unchanged_p, redisplay_internal,
7367 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7368 (redisplay_window): Let try_window_id be called if more than one
7369 window is displayed. Use/set buffer-specific beg/end_unchanged.
7370 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7371 try_window_id):
7372 Use buffer-specific beg/end_unchanged.
7373
7374 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7375 overlay_unchanged_modified): Remove extern declarations.
7376
7377 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7378 buffer.
7379
7380 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7381 (gap_right): Ditto.
7382 (adjust_after_replace): Likewise.
7383 (replace_range, del_range_2, modify_region): Likewise.
7384
7385 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7386 and unchanged_modified per buffer.
7387
7388 * coding.c (code_convert_region): Compute beg/end_unchanged per
7389 buffer.
7390
7391 * buffer.c (modify_overlay): Compute beg/end_unchanged
7392 per buffer.
427ec082 7393 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7394 structure.
7395
73961999-08-22 Gerd Moellmann <gerd@gnu.org>
7397
7398 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7399
7400 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7401 (Qkey_value_weak): Removed.
7402 (make_hash_table): Use nil, `key', `value', t for weakness.
7403 (Fmake_hash_table): Ditto.
7404 (copy_hash_table): New.
7405 (Fcopy_hash_table): New.
7406
74071999-08-22 Gerd Moellmann <gerd@gnu.org>
7408
7409 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7410 new parameter.
26901792
DL
7411
74121999-08-21 Gerd Moellmann <gerd@gnu.org>
7413
7414 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7415 well.
427ec082 7416 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7417 have changed.
7418 (display_echo_area): Reset displayed echo_area_buffer to nil
7419 at the end if we're displaying a nil message.
7420
74211999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7422
26901792
DL
7423 * fns.c (hash_lookup): Test with EQ before calling key comparion
7424 function.
7425 (hash_remove): Ditto.
7426 (cmpfn_eq): Removed.
7427 (cmpfn_eql): Don't test with EQ.
7428 (cmpfn_equal): Ditto.
7429 (make_hash_table): Set comparison function for `eq' to null.
7430
7431 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7432 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7433
7434 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7435
7436 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7437 xterm.c: Call change_frame_size and do_pending_window_change with
7438 new parameter.
7439
7440 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7441 (change_frame_size): Ditto.
7442 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7443 and not called from a safe place.
7444 (window_change_signal): Call change_frame_size with new parameter.
7445
7446 * dispextern.h: Change prototypes for do_pending_window_change
7447 and change_frame_size.
7448
7449 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7450 window's buffers equals current_buffer; this is not the
26901792
DL
7451 case during echo area display.
7452
74531999-08-21 Gerd Moellmann <gerd@gnu.org>
7454
7455 * xdisp.c, minibuf.c: Remove conditional compilation on
7456 NO_PROMPT_IN_BUFFER.
7457
7458 * minibuf.c (Fminibuffer_prompt_end): New.
7459 (syms_of_minibuf): Defsubr it. Remove
7460 minibuffer-prompt-in-buffer.
7461 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7462 Extend documentation.
7463
7464 * xdisp.c (get_next_display_element): Display \r as ^M.
7465
7466 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7467 under scroll bar widget.
7468
74691999-08-21 Gerd Moellmann <gerd@gnu.org>
7470
7471 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7472 anywhere.
7473 (unwind_redisplay): Return nil.
7474 (clear_garbaged_frames): New.
7475 (redisplay_internal): Use it.
7476 (echo_area_display): Ditto.
7477 (resize_mini_window): Mew.
7478 (display_echo_area_1): Use it to resize echo area window.
7479 (redisplay_internal): Use it to resize active mini-window.
7480
7481 * dispextern.h, lisp.h: Add function prototypes.
7482
427ec082 7483 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7484 cursor_in_echo_area case only for a mini-window showing
7485 a message. Don't let cursor end up after the end of a row.
7486
7487 * xdisp.c (echo_area_glyphs, echo_area_message,
7488 echo_area_glyphs_length, previous_echo_glyphs,
7489 previous_echo_area_message, previous_echo_area_glyphs_length):
7490 Removed.
7491 (Vmessage_stack, echo_area_buffer, echo_buffer,
7492 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7493 (message2_nolog): Use set_message and clear_message.
7494 (message3): Rename parameter len to nbytes to make clear what
7495 it is.
7496 (message3_nolog): Ditto. Use set_message and clear_message.
7497 (update_echo_area): Rewritten.
7498 (with_echo_area_buffer): New.
7499 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7500 (setup_echo_area_for_printing): New.
7501 (display_echo_area, display_echo_area_1): New.
7502
7503 (current_message, current_message_1): New.
427ec082 7504 (push_message, restore_message, pop_message,
26901792
DL
7505 check_message_stack): New.
7506 (truncate_echo_area): Rewritten.
7507 (truncate_message_1): New.
7508 (set_message, set_message_1, clear_message): New.
7509 (echo_area_display): Rewritten.
7510 (redisplay_internal): Check for needed echo area update
7511 differently.
7512 (redisplay_preserve_echo_area): Rewritten.
427ec082 7513 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7514 message differently.
7515 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7516 Remove initialzation of removed variables.
7517 (init_xdisp): Remove references to removed variables.
7518
7519 * dispnew.c (adjust_frame_message_buffer): Removed references
7520 to echo_area_glyphs and previous_echo_glyphs.
7521 (direct_output_for_insert): Check for mini-window displaying
7522 echo area message differently.
7523 (update_frame): Likewise.
7524 (set_window_cursor_after_update): Likewise. In echo area,
7525 don't try to set cursor on rows that aren't enabled.
7526
7527 * print.c: Remove conditional compilation on `standalone'.
7528 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7529 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7530 longer used in that way.
7531 (PRINTDECLARE): Add multibyte.
7532 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7533 (printbufidx): Removed.
7534 (printchar, strout): Rewritten.
7535
7536 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7537 a struct kboard.
7538 (echo_kboard): New.
7539 (echo_now): Set echo_kboard to the current kboard.
7540 (cancel_echoing): Set echo_kboard to null.
7541 (cmd_error_internal): Use clear_message, remove references
7542 to echo_area_glyphs and echo_area_message.
7543 (command_loop_1): Check for echo area messages differently.
7544 (read_char): Likewise.
7545 (record_menu_key): Use clear_message.
7546 (Fexecute_extended_command): Check for echo area messages
7547 differently. Use push_message, restore_message, pop_message.
7548
7549 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7550 pop_message.
7551
7552 * emacs.c (shut_down_emacs): Call check_message_stack.
7553
7554 * lisp.h: Add function prototypes and extern declarations for
7555 new functions and variables.
7556
7557 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7558 pop_message.
7559
427ec082 7560 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7561 setting echo_area_glyphs.
7562 (Fminibuffer_completion_help): Ditto.
7563
7564 * editfns.c (Fcurrent_message): Rewritten.
7565
7566 * frame.c, window.h: Remove references to echo_area_glyphs
7567 and previous_echo_glyphs.
7568
75691999-08-21 Dave Love <fx@gnu.org>
7570
7571 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7572 * aix4-1.h: Likewise.
7573
7574 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7575
75761999-08-20 Gerd Moellmann <gerd@gnu.org>
7577
7578 * xfns.c: Remove tiff34 prefix from include.
7579
75801999-08-20 Dave Love <fx@gnu.org>
7581
7582 * cm.c: Revert previous change.
7583
75841999-08-19 Gerd Moellmann <gerd@gnu.org>
7585
7586 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7587 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7588
75891999-08-18 Dave Love <fx@gnu.org>
7590
7591 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7592 stdlib.h.
7593
7594 * doprnt.c: Use stdlib.h, unistd.h.
7595
7596 * config.in: Add HAVE_TERMCAP_H.
7597
7598 * cm.c: Use termcap.h.
7599
76001999-08-18 Gerd Moellmann <gerd@gnu.org>
7601
7602 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7603 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7604 cannot be created we will already have crashed earlier. Call
7605 lw_set_main_areas with a null menu-bar widget, so that we have
7606 a reasonable default.
7607 (Fx_create_frame): Rearranged so that Lisp errors during frame
7608 initialization cause less damage. Initialize menu bar widget
7609 here.
7610
76111999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 7612
26901792
DL
7613 * dispnew.c (update_frame_line): Fix previous change. If writing
7614 whole line clear to end of frame.
7615
76161999-08-17 Gerd Moellmann <gerd@gnu.org>
7617
7618 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7619 and `right-bitmap-area' if position is in the bitmap areas. This
7620 avoids an error when clicking on the bitmap areas. Instead, they
7621 are currently treated like clicks inside the window.
7622 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7623 (Qleft_bitmap_area, Qright_bitmap_area): New.
7624 (syms_of_window): Initialize new symbols.
7625
7626 * dispnew.c (update_frame_line): If writing whole line,
7627 don't write trailing spaces unless we must.
7628
7629 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7630 (redisplay_internal): Register unwind_redisplay with
7631 register_unwind_protect.
7632 (try_window_reusing_current_matrix): If new start > old start,
7633 give up if start pos of first reusable row is not equal to new
7634 start.
7635
7636 * eval.c (Fsignal): Don't reset redisplaying_p here.
7637
7638 * xterm.c (expose_area): If row extends face to end of line,
7639 write the whole line.
7640
76411999-08-16 Gerd Moellmann <gerd@gnu.org>
7642
7643 * dispextern.h (struct it): Remove member
7644 show_trailing_whitespace_p.
7645
7646 * dispnew.c (direct_output_for_insert): Use
7647 Vshow_trailing_whitespace instead of former iterator member
7648 show_trailing_whitespace_p.
7649 (direct_output_forward_char): Don't do it if hightlighting
7650 trailing whitespace.
7651
7652 * xdisp.c (Qshow_trailing_whitespace): Removed.
7653 (Vshow_trailing_whitespace): Added.
7654 (init_iterator): Remove initialization code for
7655 show_trailing_whitespace_p.
7656 (redisplay_internal): Don't try cursor movement in this_line
7657 if showing trailing whitespace.
7658 (redisplay_window): Likewise for cursor movement in current
7659 matrix and try_window_id.
7660 (try_window_reusing_current_matrix): Likewise.
7661 (trailing_whitespace_p): Return 0 if trailing whitespace is
7662 in front of point.
7663 (display_line): Use Vshow_trailing_whitespace instead of
7664 former iterator member show_trailing_whitespace_p.
7665 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7666
76671999-08-16 Gerd Moellmann <gerd@gnu.org>
7668
7669 * window.c (Fpos_visible_in_window_p): Rewritten.
7670
7671 * xfaces.c (add_to_log): Renamed from display_message.
7672 Don't display messages in echo area.
7673
7674 * xterm.c (x_draw_glyph_string_box): Use the background width
7675 of the glyph string for the width of the box.
7676
76771999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7678
7679 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7680
76811999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7682
7683 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7684 background first, and then set other parameters that might
7685 depend upon their new values.
7686
76871999-08-15 Gerd Moellmann <gerd@gnu.org>
7688
7689 * xfaces.c (Vfont_list_limit): New.
7690 (syms_of_xfaces): Make it a user-variable.
7691 (DEFAULT_FONT_LIST_LIMIT): New.
7692 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7693 maximally that number of fonts, otherwise use
7694 DEFAULT_FONT_LIST_LIMIT.
427ec082 7695 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
7696 until we have all fonts.
7697 (Fxfont_list): Additionally return the full names of fonts and
7698 their registry and encoding.
7699
427ec082 7700 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
7701 Simplify clearing "under" scroll bar.
7702
7703 * window.c (Qfixed_window_size): New.
7704 (syms_of_window): Initialiaze it.
7705 (check_all_windows): Add return type void.
7706 (window_fixed_size_p): New. Return non-zero if window
7707 is fixed-size.
7708 (window_min_size_1): New.
7709 (window_min_size): Handle fixed-size windows.
7710 (size_window): New. Rewritten combination of set_window_height and
7711 set_window_width that handles fixed-size windows.
7712 (set_window_height): Call it.
7713 (set_window_width): Call it.
7714 (Fsplit_window): Give an error on attempt to split a fixed-size
7715 window.
7716 (change_window_height): Partly rewritten to handle fixed-size
7717 windows.
7718
77191999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7720
7721 * process.c (Fopen_network_stream): Fix previous change.
7722
77231999-08-13 Karl Heuer <kwzh@gnu.org>
7724
7725 * xdisp.c (line_number_display_limit_width): New var.
7726 (decode_mode_spec): Use it instead of hardcoded value.
7727 (syms_of_xdisp): Defvar it.
7728
77291999-08-13 Richard M. Stallman <rms@gnu.org>
7730
7731 * eval.c (run_hook_list_with_args): Gcpro `globals'.
7732 (run_hook_with_args): Likewise.
7733
7734 * window.h (struct window): New field too_small_ok.
7735
427ec082 7736 * window.c (set_window_height, set_window_width):
26901792
DL
7737 If window starts out "too small", set its too_small_ok flag.
7738 If window's too_small_ok flag is set, don't delete it
7739 unless it is so small it would cause a crash.
7740
77411999-08-13 Gerd Moellmann <gerd@gnu.org>
7742
7743 * window.c (MINSIZE): Removed.
7744 (window_min_size): New.
7745 (set_window_height): Use window_min_size.
7746 (change_window_height): Ditto.
7747
77481999-08-12 Gerd Moellmann <gerd@gnu.org>
7749
7750 * indent.c (vmotion): Don't add in mini-buffer prompt width
7751 if prompts are inserted into mini-buffer.
7752
77531999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7754
7755 * config.in: Add HAVE_GETADDRINFO.
7756 * process.c (Fopen_network_stream): Use getaddrinfo.
7757
77581999-08-11 Gerd Moellmann <gerd@gnu.org>
7759
7760 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
7761 glyphs to -1.
7762
7763 * xdisp.c (face_before_or_after_it_pos): If position after
7764 or before iterator's current position in the buffer is out
7765 of bounds, return the iterator's original face id.
7766
7767 * dispnew.c (mirror_make_current): If desired row isn't enabled,
7768 just swap glyphs pointers between current and desired row.
7769 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
7770 desired matrix method string to current matrix.
7771
77721999-08-11 Kenichi Handa <handa@etl.go.jp>
7773
7774 * lisp.h (CHAR_MODIFIER_MASK): New macro.
7775
7776 * lread.c (read_escape): For Control modifier, pay attention to
7777 multibyte character.
7778 (read1): Likewise. Singal error or a multibyte character which
7779 has a modifer bit. Check validity of Shift modifer.
7780
7781 * charset.c (non_ascii_char_to_string): Handle modifier bits as
7782 the same as Lisp reader.
7783
77841999-08-10 Richard M. Stallman <rms@gnu.org>
7785
7786 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
7787
77881999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
7789
7790 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
7791
77921999-08-10 Eli Zaretskii <eliz@gnu.org>
7793
7794 * msdos.c (IT_set_face): Abort if the default face is not realized
7795 and cached.
7796 (IT_write_glyphs): Reset the screen face to the default face
7797 before writing glyphs.
7798
7799 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
7800 colors from the frame here.
7801 (realize_tty_face) [MSDOS]: Do it here. Update the face
7802 attributes with the actual name of the color taken from the
7803 frame.
7804
7805 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
7806 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
7807
7808 * frame.c (Fframe_parameters): Swap foreground and background
7809 colors returned in frame parameters if the frame has reverse in
7810 its parameter alist.
7811 (Fmake_terminal_frame): Make a unique copy of face_alist for
7812 each frame.
7813
78141999-08-07 Richard Stallman <rms@gnu.org>
7815
7816 * buffer.c (Fprevious_overlay_change): Just return
7817 the answer obtained from overlays_at.
7818
7819 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
7820 Use XpmCloseness and attrs.closeness instead.
7821
78221999-08-06 Richard Stallman <rms@gnu.org>
7823
7824 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
7825
78261999-08-06 Geoff Voelker <voelker@cs.washington.edu>
7827
427ec082 7828 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
7829 Ffile_attributes_lessp): New functions.
7830 (Fdirectory_files): Use directory_files_internal.
7831 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
7832 Ffile_attributes_lessp.
7833
7834 * w32.c (stat): Check for directory ending in separator when
7835 doing readdir fast path.
7836
7837 * w32fns.c (x_set_icon_type): Support setting frame icons.
7838 * w32term.c (x_bitmap_icon): New function.
7839 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 7840
26901792
DL
78411999-08-06 Gerd Moellmann <gerd@gnu.org>
7842
7843 * xdisp.c (set_iterator_to_next): After delivering a character
7844 from a display vector, restore face and charset to what they were
7845 before the display vector was processed.
7846
78471999-08-06 Gerd Moellmann <gerd@gnu.org>
7848
7849 * xdisp.c (reseat_at_next_visible_line_start): New parameter
7850 on_newline_p.
7851 (set_iterator_to_next): After delivering last char
427ec082 7852 from display vector, reseat on next visible line start if
26901792
DL
7853 dpvec_char_len < 0.
7854 (next_element_from_buffer): Set dpvec_char_len to -1 for
7855 selective display.
7856
78571999-08-06 Gerd Moellmann <gerd@gnu.org>
7858
7859 * xdisp.c (compute_line_metrics): If first line's physical ascent
7860 is larger than its logical ascent, use the physical ascent, and
7861 make the row taller. Set row's overlapping_p flag.
7862
7863 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
7864 (direct_output_for_insert): Ditto.
7865
7866 * dispextern.h (struct glyph_row): Add overlapping_p.
7867
7868 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
7869
7870 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
7871 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
7872
7873 * dispnew.c (direct_output_for_insert): Don't use this method if
7874 row is overlapped by others.
7875 (update_text_area): Write full line if current line is overlapped.
7876 (redraw_overlapped_rows): New.
7877 (update_window): Call it.
7878 (redraw_overlapping_rows): New.
7879 (update_window): Call it.
7880 (scrolling_window): Make sure overlapped_p flag in current rows is
7881 unchanged.
7882 (row_equal_p): Take rows overlapped_p flag into account.
7883
7884 * dispextern.h (struct glyph_row): Add flag overlapped_p.
7885
7886 * xterm.c (x_fix_overlapping_area): New.
7887 (x_redisplay_interface): Add x_fix_overlapping_area.
7888
7889 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
7890
78911999-08-06 Gerd Moellmann <gerd@gnu.org>
7892
7893 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
7894 (struct glyph_string): Add member for_overlaps_p.
7895 (x_get_glyph_string_clip_rect): If glyph string draws foreground
7896 of overlapping rows, clip to window bottom.
7897 (x_fill_glyph_string): Add parameter overlaps_p.
7898 (x_fill_composite_glyph_string): Ditto.
7899 (BUILD_GLYPH_STRINGS): Ditto.
7900 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
7901 (x_draw_glyph_string): Don't draw anything but the foreground
7902 if glyph string draws row overlaps.
7903
7904 * dispnew.c (direct_output_for_insert): Don't use this
7905 optimization for rows that overlap others.
7906 (update_window_line): Return non-zero if display has changed.
7907 (update_text_area): Ditto.
7908 (update_window): Record if display has been changed.
7909
7910 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
7911
7912 * dispextern.h (struct redisplay_interface): Add
7913 fix_overlapping_area.
7914
7915 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
7916
7917 * dispextern.h (struct glyph): Add overlaps_vertically_p.
7918
7919 * xterm.c (x_produce_image_glyph): Compute iterator's physical
7920 ascent and descent.
7921 (x_produce_stretch_glyph): Ditto.
7922 (x_produce_glyphs): Ditto.
7923
7924 * xdisp.c (init_iterator): Reset physical line height info
7925 after producing special glyphs.
7926 (display_toolbar_line): Set physical line height info.
7927 (compute_line_metrics): Ditto.
7928 (display_line): Ditto.
7929 (display_string): Ditto.
7930
7931 * term.c (produce_glyphs): Set iterator's physical height
7932 information.
7933
7934 * dispnew.c (blank_row): Compute glyph row's physical height.
7935 (row_equal_p): Take physical row heights into account.
7936 (direct_output_for_insert): Ditto.
7937 (update_text_area): Ditto.
7938
7939 * dispextern.h (struct glyph_row): Add phys_ascent and
7940 phys_height.
7941 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
7942 max_phys_descent.
7943
79441999-08-04 Stefan Monnier <monnier@cs.yale.edu>
7945
7946 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
7947 Fswitch_to_buffer.
7948 (no_switch_buffer): New function.
7949 (Fswitch_to_buffer): Call them. Don't get confused
7950 by "same-window" buffers in a dedicated frame.
7951
7952 * window.c (display-buffer): Don't get confused
7953 by "same-window" buffers in a dedicated frame.
7954
79551999-08-04 Andreas Schwab <schwab@gnu.org>
7956
7957 * insdel.c (insert_from_string_1): Check gap size against number
7958 of outgoing bytes, not incoming bytes.
7959
79601999-08-03 Tom Breton <tob@world.std.com>
7961
7962 * lread.c (read1): Added circular reading code to #N=.
7963 (SUBSTITUTE): New macro.
7964 (seen_list): New variable.
7965 (substitute_object_in_subtree): New function.
7966 (substitute_object_recurse): New function.
7967 (substitute_in_interval): New function.
7968
79691999-08-02 Eli Zaretskii <eliz@gnu.org>
7970
7971 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
7972
7973 * frame.c (make_terminal_frame): Don't call init_frame_faces if
7974 noninteractive, for termcap frames as well.
7975
7976 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
7977 frames.
7978
79791999-08-01 Richard Stallman <rms@gnu.org>
7980
7981 * fns.c (internal_equal): Correct overlay comparison.
7982
83c8f461 79831999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 7984
427ec082 7985 * xfns.c (x_set_internal_border_width):
26901792
DL
7986 Call do_pending_window_change. Don't block input, don't call XFlush.
7987 (x_set_vertical_scroll_bars): Call do_pending_window_change.
7988 (x_set_scroll_bar_width, x_set_font): Likewise.
7989
7990 * frame.c (Fset_frame_height): Call do_pending_window_change.
7991 (Fset_frame_width, Fset_frame_size): Likewise.
7992
7993 * xterm.c (x_set_window_size): When calling change_frame_size,
7994 specify 1 for DELAY.
7995
7996 * widget.c (EmacsFrameSetCharSize): Don't call
7997 do_pending_window_change here.
7998
79991999-07-30 Dave Love <fx@gnu.org>
8000
8001 * config.in: Add HAVE_STDLIB_H.
8002
80031999-07-30 Richard M. Stallman <rms@gnu.org>
8004
8005 * process.c (create_process): Detect failure of `pipe'.
8006
80071999-07-30 Keisuke Nishida <kei@psn.net>
8008
8009 * alloc.c (allocate_vectorlike): Add missing increment.
8010
8011 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8012
8013 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8014 before calling indirect_function.
8015
80161999-07-30 Eli Zaretskii <eliz@gnu.org>
8017
8018 * dispextern.h (load_color, lookup_derived_face): Declare
8019 prototypes.
8020
8021 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8022 it will be done later.
8023
8024 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8025 init_frame_faces if non-interactive.
8026 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8027 array with a call to msdos_stdcolor_name. The font name is now
8028 "ms-dos", consistent with realize_tty_face.
8029
8030 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8031 MSDOS frame.
8032
8033 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8034 x_set_toolbar_lines.
8035
8036 * xfaces.c (load_color): Remove static from definition and remove
8037 prototype.
8038 [MSDOS]: Add a DOS-specific version of load_color.
8039 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8040 (lookup_derived_face): New function.
8041 (realize_default_face): Support MSDOS frames.
8042 [MSDOS]: If fore/background colors are unspecified, inherit them
8043 from the frame.
8044 (realize_face): Support MSDOS frames.
8045 (realize_tty_face): Support MSDOS frames.
8046 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8047 load_color to try to find a suitable approximation. If the face
8048 is inverse-video, swap the foreground and background colors.
8049
8050 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8051 functions.
8052
8053 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8054
8055 * msdos.h: Remove redundant declarations (most of them are now in
8056 dispextern.h).
8057
8058 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8059 Use default frame colors if the face doesn't specify them; invert
8060 the colors if highlight is ON.
8061 (IT_write_glyphs): Rewritten for the new redisplay engine.
8062 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8063 how the hook is called by term.c.
8064 (IT_copy_glyphs): New function, copies an area of the display in
8065 video RAM.
8066 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8067 redisplay now calls it even if char_ins_del_ok is zero.
8068 (IT_set_frame_parameters): Prototype changed. Calls the new
8069 load_color. Puts the new fore/background colors into the default
8070 face on current frame.
8071 (IT_menu_display): Rewritten to handle the new struct glyph
8072 instead of a char array.
8073 (XMenuActivate): Call lookup_derived_face to create and use
8074 special faces for the pop-up and drop-down menus.
8075
80761999-07-29 Gerd Moellmann <gerd@gnu.org>
8077
8078 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8079 XawScrollbarSetThumb if thumb parameters haven't changed because
8080 that function apparently isn't optimized for this case.
8081
80821999-07-29 Eli Zaretskii <eliz@gnu.org>
8083
8084 * msdos.c (getdefdir): Don't return failure indication when
8085 _fixpath sets errno to ENOSYS.
8086
80871999-07-28 Gerd Moellmann <gerd@gnu.org>
8088
8089 * xdisp.c (string_char_and_length): New. Use it everywhere
8090 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8091
80921999-07-28 Kenichi Handa <handa@etl.go.jp>
8093
8094 * fns.c (count_combining): New function.
8095 (struct textprop_rec): New structure.
8096 (concat): Copy text properties correctly when byte combining
8097 occurs.
8098
80991999-07-28 Gerd Moellmann <gerd@gnu.org>
8100
8101 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8102 if display is mono.
8103 (x_draw_row_bitmaps): If face has stipple, don't switch
8104 to foreground color for clearing areas, and set the fill style.
8105
8106 * xfaces.c (load_face_colors): Load background color if setting
8107 stipple, too.
427ec082 8108 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8109 FillStippled.
8110
81111999-07-26 Ken'ichi Handa <handa@gnu.org>
8112
8113 * xterm.c (x_find_ccl_program): Add casting.
8114
8115 * w32fns.c (w32_find_ccl_program): Add casting.
8116
81171999-07-27 Gerd Moellmann <gerd@gnu.org>
8118
8119 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8120
8121 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8122 because this will try to access a nonexisting widget.
8123
81241999-07-26 Markus Rost <rost@gnu.org>
8125
427ec082 8126 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8127 (Fputhash): Ditto.
8128 (Fremhash): Ditto.
8129
81301999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8131
26901792
DL
8132 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8133 value to frame width and height.
8134
8135 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8136 into account for full-width windows. Don't add scroll bar width
8137 to width of clip rect.
8138 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8139 (x_set_glyph_string_background_width): Add 1 to background width.
8140 (x_draw_glyphs): Take internal border into account for full-width
8141 lines.
8142
81431999-07-26 Richard M. Stallman <rms@gnu.org>
8144
8145 * xfns.c (x_set_mouse_color): Always unload the old color.
8146 Don't allow nil as color value.
427ec082 8147 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8148 Always unload the old color.
8149
8150 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8151
81521999-07-26 Karl Heuer <kwzh@gnu.org>
8153
8154 * fns.c (Fy_or_n_p): Doc fix.
8155
81561999-07-26 Kenichi Handa <handa@etl.go.jp>
8157
8158 * ccl.h (setup_ccl_program): The type is changed to `int'.
8159
8160 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8161 stored in the following CCL code. Adjusted for the change of
8162 Vccl_program_table.
8163 (resolve_symbol_ccl_program): Adjusted for the new style of
8164 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8165 is resolving failed.
8166 (ccl_get_compiled_code): New function.
8167 (setup_ccl_program): Function type changed from `void' to `int'.
8168 Resolve symbols in CCL_PROG.
8169 (Fccl_program_p): New function.
8170 (Fccl_execute): Get compiled CCL code by just calling
8171 setup_ccl_program.
8172 (Fccl_execute_on_string): Likewise.
8173 (Fregister_ccl_program): Adjusted for the change of
8174 Vccl_program_table.
8175
8176 * coding.c (setup_coding_system): Get compiled CCL code by just
8177 calling setup_ccl_program.
8178
8179 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8180 calling setup_ccl_program.
8181
8182 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8183 calling setup_ccl_program.
8184
81851999-07-23 Gerd Moellmann <gerd@gnu.org>
8186
8187 * xfaces.c (frame_update_line_height): Just use the height of the
8188 frame's fontset or font, instead of taking face fonts into
8189 account.
8190
8191 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8192
81931999-07-23 Richard M. Stallman <rms@gnu.org>
8194
8195 * window.c (Fsplit_window): For default size, round up for left window.
8196
81971999-07-21 Joe Ramey <ramey@ti.com>
8198
8199 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8200 has returned -1 (lockfile exists but is not a symlink?).
8201
82021999-07-20 Gerd Moellmann <gerd@gnu.org>
8203
8204 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8205 because of a change in cursor_gc made in 20.4.
8206
82071999-07-19 Gerd Moellmann <gerd@gnu.org>
8208
8209 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8210 for YNegative, if using X toolkit.
8211
427ec082 8212 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8213 from positions returned.
8214
82151999-07-17 Gerd Moellmann <gerd@gnu.org>
8216
8217 * xrdb.c (x_load_resources): Set double-click time defaults
8218 for Motif list boxes from double-click-time.
8219
8220 * fns.c (Vhash_table_tests): Remvoed.
8221 (Qhash_table_test): New.
8222 (syms_of_fns): Initialize Qhash_table_test.
8223 (Fmake_hash_table): Look up user-defined tests in symbol prop
8224 `hash-table-test'.
8225 (Fdefine_hash_table_test): Store test and hash function as
8226 symbol prop `hash-table-test'.
8227 (make_hash_table): Add parameters user_test and user_hash.
8228
8229 * window.c (set_window_buffer): Set window margins for tty
8230 frames, too.
8231 (Fset_window_margins): Ditto.
8232
8233 * term.c (append_glyph): Use glyph area of iterator instead of
8234 always TEXT_AREA.
8235
8236 * dispnew.c (update_frame_1): Add left margin width to cursor
8237 hpos.
8238 (direct_output_for_insert): Ditto.
8239 (direct_output_forward_char): Ditto.
8240
8241 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8242
8243 * dispextern.h (struct glyph_matrix): Add top_line_p.
8244
82451999-07-16 Gerd Moellmann <gerd@gnu.org>
8246
8247 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8248 instead.
8249
8250 * fns.c (cmpfn_eq): Add hash code parameters.
8251 (cmpfn_eql): Ditto.
8252 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8253 (cmpfn_user_defined): Likewise.
8254
82551999-07-15 Gerd Moellmann <gerd@gnu.org>
8256
8257 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8258
8259 * fns.c (maybe_resize_hash_table): Correct computation of
8260 index vector size.
8261 (make_hash_table): Ditto.
8262 (Fmakehash): New.
8263
8264 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8265
8266 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8267 (survives_gc_p): Make it externally visible.
8268 (mark_object): Ditto.
8269
8270 * fns.c (remove_hash_entry): Removed.
8271 (sweep_weak_hash_tables): New.
8272
8273 * print.c (print): Print more information about hash tables.
8274
8275 * xfns.c (image_spec_hash): Removed.
8276 (lookup_image): Use sxhash instead of image_spec_hash.
8277 (image_spec_equal_p): Removed.
8278 (lookup_image): Use Fequal instead of image_spec_equal_p.
8279
82801999-07-14 Gerd Moellmann <gerd@gnu.org>
8281
8282 * lisp.h (P_): Moved to top of file.
8283
8284 * fns.c (make_hash_table): Set new members.
8285
8286 * alloc.c (mark_object): Mark hash table's user_hash_function.
8287 Mark index vector for weak hash tables.
8288
8289 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8290 user_hash_function, cmpfn, and hashfn.
8291
8292 * fns.c (build_hash): Removed.
8293 (hash_test): Removed.
8294 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8295 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8296
82971999-07-13 Gerd Moellmann <gerd@gnu.org>
8298
8299 * alloc.c (survives_gc_p): New.
8300
8301 * print.c (print): Add hash table handling.
8302
8303 * alloc.c (mark_object): Add code to mark hash tables.
8304
8305 * lisp.h (GC_HASH_TABLE_P): New.
8306
8307 * emacs.c (main): Call init_fns.
8308
8309 * fns.c (init_fns): New.
8310
8311 * fns.c: Add hash table implementation.
8312
8313 * lisp.h (PVEC_HASH_TABLE): New.
8314 (struct Lisp_Hash_Table): New.
8315 (XHASH_TABLE): New.
8316 (XSET_HASH_TABLE): New.
8317 (HASH_TABLE_P): New.
8318 (CHECK_HASH_TABLE): New.
8319 (DEFAULT_HASH_SIZE): New.
8320 (DEFAULT_REHASH_THRESHOLD): New.
8321 (DEFAULT_REHASH_SIZE): New.
8322
8323 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8324 (x_write_glyphs): Compute overwritten cursor using real start
8325 and end positions of display.
8326 (x_insert_glyphs): Ditto.
8327
83281999-07-10 Gerd Moellmann <gerd@gnu.org>
8329
8330 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8331
8332 * dispnew.c (blank_row): Add y-position as parameter. Compute
8333 visible height.
8334
8335 * xdisp.c (next_element_from_string): Give padding spaces
8336 a position of -1.
8337
427ec082 8338 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8339 marginals areas on tty frames in a future version.
8340 (allocate_matrices_for_frame_redisplay): Ditto.
8341
8342 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8343 to zero if number of glyphs in the row is <= 1.
8344
83451999-07-09 Gerd Moellmann <gerd@gnu.org>
8346
8347 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8348 into account.
8349
8350 * xdisp.c (handle_display_prop): Don't reset area if handing
8351 a property from a string that came from a `display' property.
8352 (handle_single_display_prop): Don't handle recursive `display'
8353 properties.
8354 (handle_single_display_prop): Handle some display property
8355 forms for terminal frames.
8356 (Qimage): Moved here from xfns.c.
8357
8358 * dispextern.h (struct it): New field string_from_display_prop_p.
8359
8360 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8361 line.
8362
83631999-07-08 Gerd Moellmann <gerd@gnu.org>
8364
8365 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8366
8367 * window.c (set_window_buffer): Set window's vscroll to zero.
8368
8369 * xdisp.c (QCwhen): New.
8370 (display_prop_end): New.
8371 (handle_single_display_prop): Use it.
8372 (debug_method_add): Print buffer name if tracing.
8373 (try_window_reusing_current_matrix): Compute visible height
8374 of reused rows. Fix cursor position calculation in case of
8375 top-line.
8376
8377 * dispextern.h (struct redisplay_interface): Add parameter
8378 cursor_on_p to update_window_end_hook.
8379
8380 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8381
83821999-07-07 Gerd Moellmann <gerd@gnu.org>
8383
427ec082 8384 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8385 doesn't become negative when decrementing it.
8386
8387 * eval.c (Fsignal): Reset redisplaying_p to zero.
8388
8389 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8390 for window update.
8391 (try_window_id): Ditto.
8392
8393 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8394 (x_scroll_run): Ditto.
8395 (any_help_event_p): New.
8396 (x_initialize): Set it to zero.
8397 (XTread_socket): Clear help echo only if any_help_event_p.
8398
8399 * xdisp.c (init_iterator): Set top_line_p.
8400 (start_display): Use correct initial y if top-line is present.
8401 (make_cursor_line_fully_visible): Bug fixes for top-line.
8402 (try_scrolling): Ditto.
8403 (try_window_reusing_current_matrix): Ditto.
8404
8405 * dispextern.h (struct it): Add top_line_p.
8406
8407 * dispnew.c (shift_glyph_matrix): Move some computations out
8408 of the loop.
8409
427ec082 8410 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8411 XFLOATINT.
8412
84131999-07-06 Gerd Moellmann <gerd@gnu.org>
8414
8415 * dispnew.c (update_frame_1): When setting cursor in echo area,
8416 skip only over padding spaces at the end.
8417
8418 * xfaces.c (realize_tty_face): Set face's font_name field to
8419 "tty".
8420
8421 * term.c (update_end): Turn cursor on only if selected window's
8422 cursor_off_p flag is not set.
8423
84241999-07-05 Gerd Moellmann <gerd@gnu.org>
8425
8426 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8427 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8428 (TS_cursor_invisible): New.
8429 (term_init): Initialize TS_cursor_invisible.
8430 (tty_hide_cursor): New.
8431 (tty_show_cursor): New.
8432 (update_end): Show tty cursor.
8433 (update_begin): Hide tty cursor to prevent cursor flickering
8434 during redisplays triggered by timers (stealth fontification).
8435
8436 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8437
8438 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8439 in scroll bars.
8440 (x_handle_toolbar_click): Set modifier bits.
8441
84421999-07-04 Gerd Moellmann <gerd@gnu.org>
8443
8444 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8445 instead of a pointer to a volatile input_event.
427ec082 8446 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8447 declaration of local variable `sp'.
8448 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8449 to kbd_fetch_ptr.
8450
84511999-07-03 Gerd Moellmann <gerd@gnu.org>
8452
8453 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8454 only if buffer is modified. Return quickly if changes are
8455 above window start.
8456
84571999-07-02 Gerd Moellmann <gerd@gnu.org>
8458
8459 * dispextern.h (HSCROLL_WINDOWS): Removed.
8460
8461 * xdisp.c (mark_window_display_accurate): Don't set
8462 w->region_showing.
8463 (redisplay_internal): Don't call redraw_garbaged_frames.
8464
84651999-07-01 Gerd Moellmann <gerd@gnu.org>
8466
8467 * xdisp.c (echo_area_display): Don't display truncation marks
8468 for messages because 20.4 doesn't do it either.
8469 (redisplay_window): Case same window start. Instead of giving
8470 up when cursor is partially visible, make it fully visible.
8471 (mark_window_display_accurate): Some cleanup. Record window's
8472 last cursor information.
8473 (debug_method_add): Improved.
8474 (redisplay_internal): Record last cursor info only if not
8475 consider_all_windows_p.
8476
8477 * dispnew.c (update_window): Update top line after scrolling.
8478 (blank_row): Renamed from make_empty_enabled_row.
8479 (increment_glyph_row_buffer_positions): Increment positions
8480 in buffers, only.
8481
8482 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8483 string.
8484
84851999-06-30 Gerd Moellmann <gerd@gnu.org>
8486
8487 * dispnew.c (update_window): Check that updated row is visible.
8488
8489 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8490 top of window differently.
8491
8492 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8493 if region is showing.
8494
8495 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8496 avoiding matrix reallocation. Set window_vscroll in matrix.
8497
8498 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8499
26901792
DL
8500 * xdisp.c (debug_method_add): New.
8501 (debug_redisplay_method): Removed.
8502 (try_window_reusing_current_matrix): Handle case where old
8503 window start is the same as new window start.
8504
8505 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8506 an array instead of a pointer.
8507
26901792
DL
8508 * xfns.c (Fx_show_tip): Undo previous change.
8509
8510 * xterm.c (x_append_glyph): Clear glyph->u.val.
8511
8512 * dispextern.h (struct glyph): Increase size of face_id bit-field
8513 for CHAR_GLYPH to 12.
8514
85151999-06-29 Gerd Moellmann <gerd@gnu.org>
8516
8517 * xfaces.c (x_charset_registry): Make it externally visible.
8518
85191999-06-28 Gerd Moellmann <gerd@gnu.org>
8520
427ec082 8521 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8522 instead of WINDOW_WANTS_MODELINE_P.
8523
8524 * xterm.c (clear_mouse_face): Make externally visible.
8525
8526 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8527
8528 * xterm.c (expose_line): Handle exposure of top-lines.
8529
8530 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8531 if mouse_face_mouse_frame is null.
8532
8533 * xdisp.c (redisplay_window): If window is echo_area_window,
8534 and update_mode_line is set, update menubar and toolbar.
8535
8536 * dispnew.c (space_glyph): Set its charpos to -1.
8537 (update_frame_1): Ignore trailing padding spaces.
8538
8539 * xdisp.c (next_element_from_c_string): Set position of padding
8540 glyphs to -1.
8541
85421999-06-27 Gerd Moellmann <gerd@gnu.org>
8543
8544 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8545 XQueryColor.
8546
8547 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8548 (set_cursor_from_row): Skip over glyphs having a null object at
8549 the start of rows.
8550 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8551 glyphs.
8552 (handle_invisible_prop): Compute next change only when needed.
8553 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8554 line.
8555
85561999-06-26 Gerd Moellmann <gerd@gnu.org>
8557
8558 * xrdb.c (x_load_resources): Don't set resource for double-click
8559 time.
8560
8561 * xdisp.c (try_window_id): Return quickly if all changes are
8562 below the window's current matrix end.
8563
8564 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8565 parameter.
8566
8567 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8568 in desired not in current matrix.
8569 (try_window_reusing_current_matrix): Rotate matrices starting
8570 at start_vpos instead of 0.
8571
8572 * xterm.c (expose_window): Use window_text_bottom_y.
8573 (fast_find_position): Ditto.
8574
8575 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8576 (try_window_reusing_current_matrix): Ditto.
8577 (get_last_unchanged_at_beg_row): Ditto.
8578 (init_iterator): Ditto.
8579
8580 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8581 more row.
8582 (check_matrix_invariants): Use window_text_bottom_y.
8583 (update_window): Ditto.
8584 (scrolling_window): Ditto.
8585
8586 * xdisp.c (window_text_bottom_y): New.
8587
85881999-06-25 Gerd Moellmann <gerd@gnu.org>
8589
8590 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8591 clearing mouse face.
8592 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8593 event.xcrossing.focus is not set, and focus is in the menu bar,
8594 set focus frame as if event.xcrossing.focus were set.
8595
85961999-06-24 Gerd Moellmann <gerd@gnu.org>
8597
8598 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8599 * keyboard.c (make_lispy_movement): Ditto.
8600
8601 * window.c (coordinates_in_window): Return 4 if on top line.
8602 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8603
8604 * xdisp.c (window_box_height): Subtract top line height.
8605 (window_box): Add top line height to top y position if top line
8606 exists.
8607 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8608 the top line row of the window. Set initial y-position to
8609 window's top line height plus delta.
8610 (start_display): Choose start glyph row depending on whether
8611 window has a top line.
8612 (try_scrolling): Take top line height into account for aggressive
8613 scrolling.
8614 (compute_window_start_on_continuation_line): Take top line into
8615 account.
427ec082 8616 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
8617 trigger a new redisplay.
8618 (try_window_reusing_current_matrix): Take top line into account.
8619 (find_last_row_displaying_text): Ditto.
8620 (get_last_unchanged_at_beg_row): DItto.
8621 (try_window_id): Ditto.
8622 (compute_line_metrics): Ditto.
8623
8624 * dispnew.c (shift_glyph_matrix): Compute visible row height
8625 taking top line of window into account.
8626 (update_window): Update top line. If scrolling_window detects
8627 that all rows are equal, only set cursor.
8628 (update_window_line): Call after_update_window_line_hook if
8629 mode_line_p flag of rows has changed.
8630 (scrolling_window): Add parameter top_line_p. Return -1 if
8631 all rows are equal.
8632 (mode_line_string): Add parameter mode_line_p. Handle strings
8633 in top lines.
8634
8635 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8636 (MATRIX_FIRST_TEXT_ROW): New.
8637 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8638 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8639 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8640 (MATRIX_TOP_LINE_HEIGHT): New.
8641 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8642 (CURRENT_TOP_LINE_HEIGHT): New.
8643 (DESIRED_TOP_LINE_HEIGHT): New.
8644 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8645 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8646 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8647 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8648
8649 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8650 lines.
8651 (x_draw_row_bitmaps): Take top line into account when clearing
8652 bitmap area.
8653 (x_estimate_mode_line_height): Replacement for
8654 x_frame_mode_line_height.
8655 (x_get_glyph_string_clip_rect): Take top line into account.
8656 (x_clear_end_of_line): Ditto.
8657 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8658 top lines.
8659 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8660 (x_erase_phys_cursor): Take top line into account.
8661
8662 * xdisp.c (window_box_height): Subtract top line height if
8663 window wants a top line.
8664 (display_mode_lines): New.
8665 (redisplay_window): Call it.
8666 (display_mode_line): Add parameters face_id and format.
8667
8668 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8669 (MATRIX_TOP_LINE_HEIGHT): New.
8670
8671 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8672
8673 * term.c (estimate_mode_line_height): Renamed from
8674 frame_mode_line_height. Add parameter face_id.
8675 (estimate_mode_line_height_hook): Renamed from
8676 frame_mode_line_height_hook.
8677 (produce_special_glyphs_hook): Removed.
8678 (produce_glyphs_hook): Removed.
8679
86801999-06-23 Gerd Moellmann <gerd@gnu.org>
8681
8682 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8683 (struct glyph_row): Add mode_line_p.
8684
8685 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8686 (Qtop_line): New.
8687 (syms_of_xfaces): Initialize Qtop_line.
8688
8689 * dispextern.h (TOP_LINE_FACE_ID): New.
8690
8691 * buffer.c (init_buffer_once): Set default for
8692 top_line_format to nil.
8693 (init_buffer_once): Init top_line_format.
8694 (default-top-line-format): New.
8695 (top-line-format): New buffer-local variable.
8696
8697 * buffer.h: Add top_line_format.
8698
8699 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8700
87011999-06-17 Dave Love <fx@gnu.org>
8702
8703 * xfns.c: Move the PNG section before the JPEG one to avoid
8704 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 8705
26901792
DL
87061999-06-17 Gerd Moellmann <gerd@gnu.org>
8707
8708 * xfns.c (x_kill_gs_process): Don't free colors.
8709
87101999-06-17 Dave Love <fx@gnu.org>
8711
8712 * s/gnu-linux.h: Zap spurious ~.
8713
87141999-06-16 Gerd Moellmann <gerd@gnu.org>
8715
8716 * xfns.c (gif_load): Improve multi-image support.
8717
87181999-06-15 Gerd Moellmann <gerd@gnu.org>
8719
8720 * xfns.c (gif_load): Support multi-image files.
8721
8722 * Makefile.in (LIBGIF): Use libungif.
8723
8724 * configure.in (HAVE_GIF): Use libungif instead of libgif
8725 because the former doesn't contain patented compression code.
8726
8727 * xdisp.c (compute_window_start_on_continuation_line): Don't
8728 do it if line start is too far away from window start.
8729
87301999-06-14 Gerd Moellmann <gerd@gnu.org>
8731
8732 * buffer.c (init_buffer_once): Set buffer_local_flags for
8733 scroll_*_aggressively.
8734 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
8735 (init_buffer_once): Set defaults for these variables.
8736 (syms_of_buffer): Add default-scroll-*-aggressively.
8737
8738 * buffer.h (scroll_up_aggressively): New.
8739 (scroll_down_aggressively): New.
8740
8741 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
8742 a static PNG library.
8743
8744 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
8745 in case it's a static library.
8746
8747 * Makefile.in (ctagsfiles): Split so that files starting
8748 with an `x' are found before files starting with `w32'.
8749 (ctagsfiles1): New.
8750 (ctagsfiles2): New.
8751 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
8752
8753 * xdisp.c (compute_window_start_on_continuation_line): New.
8754 (redisplay_window): Use it.
8755 (INFINITY): New.
8756 (reseat_to_string): Use it.
8757 (hscroll_window_tree): Ditto.
8758 (compute_window_start_on_continuation_line): Ditto.
8759 (redisplay_window): Don't force display with a new window start.
8760
87611999-06-06 Gerd Moellmann <gerd@gnu.org>
8762
8763 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
8764 if widget not present.
8765
8766 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
8767
87681999-06-04 Gerd Moellmann <gerd@gnu.org>
8769
8770 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
8771 value of realize_basic_faces.
8772 (load_face_font_or_fontset): Store full font name in face.
8773 (realize_default_face): Use full font name.
8774
26901792
DL
8775 * xterm.c (x_produce_glyphs): Set member char_to_display.
8776 (x_append_glyph): Store char_to_display in glyphs.
8777
8778 * dispextern.h (struct it): Add char_to_display.
8779
8780 * xfns.c (x_set_font): Don't call face-set-after-frame-default
8781 if faces haven't been initialized.
8782 (Fx_create_frame): Call face-set-after-frame-default after
8783 faces have been initialized, and widget has been created.
8784
8785 * puresize.h (BASE_PURESIZE): Increased.
8786
87871999-06-01 Gerd Moellmann <gerd@gnu.org>
8788
8789 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
8790 (Finternal_set_lisp_face_attribute): If frame is t when
8791 :font attribute is set, use the selected frame.
8792 (clear_face_cache): Add parameter clear_fonts_p.
8793 (Fclear_face_cache): Add optional parameter thorougly.
8794
8795 * xfaces.c (face_numeric_value): Return -1 if symbol is not
8796 in table.
8797 (Fclear_face_cache): New.
8798 (choose_face_fontset_font): If fontset doesn't contain font
8799 pattern for the given charset, use CHARSET_ASCII.
8800 (Finternal_set_lisp_face_attribute): Fix handling of nil
8801 stipple attribute.
8802 (Finternal_set_lisp_face_attribute): Fix handling of changing
8803 font-related face attributes of the default face.
8804 (set_lface_from_font_name): Set only attributes that aren't
8805 specified.
8806
88071999-05-31 Gerd Moellmann <gerd@gnu.org>
8808
8809 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
8810 font support.
8811 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
8812 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
8813 scalable fonts depending on the setting of SCALABLE_FONTS.
8814 (first_font_matching): List more than one font to find the
8815 first non-scalable matching font.
8816 (sorted_font_list): Let x_face_list_fonts return scalable fonts
8817 depending on SCALABLE_FONTS.
8818 (better_font_p): New parameter compare_pt_p. If zero, don't
8819 compare point sizes of fonts.
8820 (exact_face_match_p) [SCALABLE_FONTS]: New.
8821 (build_scalable_font_name) [SCALABLE_FONTS]: New.
8822 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
8823 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
8824 (syms_of_xfaces): Add scalable-fonts-allowed.
8825
88261999-05-26 Gerd Moellmann <gerd@gnu.org>
8827
8828 * xfns.c (png_load): Let PNG lib handle gamma. Construct
8829 mask only if image contains simple transparency information.
8830 Otherwise, combine image with frame background color.
8831
8832 * configure.in (--with-png, HAVE_PNG): New.
8833
8834 * config.in (HAVE_PNG): New.
8835
8836 * Makefile.in: Add PNG library.
8837
8838 * xfns.c: Add PNG support.
8839
88401999-05-25 Gerd Moellmann <gerd@gnu.org>
8841
8842 * xdisp.c (init_xdisp): Initialize echo_area_message and
8843 previous_echo_area_message to nil.
8844
8845 * keyboard.c (read_char): Rename local variable echo_area_message
8846 because it shadows the global one.
8847
88481999-05-05 Gerd Moellmann <gerd@gnu.org>
8849
8850 * xterm.c (note_mode_line_highlight): Restructured.
8851
8852 * window.c (coordinates_in_window): Handle windows that don't have
8853 a mode line because their buffer's mode-line-format is nil.
8854 Recognize the mode line under x positions that correspond to
8855 flags areas and left scroll bar.
8856
88571999-05-02 Dave Love <fx@gnu.org>
8858
8859 * xterm.c (note_mouse_highlight): Separate help-echo processing
8860 from check on mouse-face so that it works generally.
8861
88621999-04-21 Gerd Moellmann <gerd@gnu.org>
8863
8864 * sound.c (Fplay_sound): Run hook play-sound-hook.
8865 (Qplay_sound_hook): New.
8866
88671999-04-20 Gerd Moellmann <gerd@gnu.org>
8868
8869 * xdisp.c (update_echo_area): Handle echo_area_message.
8870
88711999-04-19 Gerd Moellmann <gerd@gnu.org>
8872
8873 * editfns.c (Fmessage): Use message3.
8874
8875 * print.c (printchar): Set echo_area_message to nil.
8876 (strout): Ditto.
8877
8878 * minibuf.c (read_minibuf): Reset echo message strings to nil.
8879 (Fminibuffer_completion_help): Ditto.
8880
8881 * keyboard.c (cmd_error_internal): Set echo_areA_message.
8882 (command_loop_1): Test echo_areA_message.
8883 (read_char): Ditto.
8884 (record_menu_key): Set echo_area_message to nil.
8885 (Fexecute_extended_command): Test echo_area_message.
8886 (Fexecute_extended_command): Handle echo_area_message.
8887
8888 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
8889 is set.
8890
8891 * editfns.c (Fcurrent_message): If echo_area_message is set,
8892 return a substring of that string.
8893
8894 * dispnew.c (direct_output_for_insert): Test echo_area_message
8895 in addition to echo_area_glyphs.
8896 (set_window_cursor_after_update): Ditto.
8897 (update_frame_1): Ditto.
8898
8899 * alloc.c (Fgarbage_collect): Use message3_nolog to display
8900 old Lisp message string.
8901
8902 * xdisp.c (echo_area_message): New.
8903 (previous_echo_area_message): New.
8904 (syms_of_xdisp): Initialize and staticpro new variables.
8905 (echo_area_display): Display echo_area_message if set.
8906 (message2_nolog): Set echo_area_message and
8907 previous_echo_area_message.
8908 (echo_area_display): Set previous_echo_area_message.
8909 (redisplay_internal): Display echo area if echo_area_message
8910 or previous_echo_area_message are set.
8911 (redisplay_preserve_echo_area): Test/set echo_area_message and
8912 previous_echo_area_message.
8913 (redisplay_window): Test echo_area_message.
8914 (message3_nolog): New.
8915 (message3): New.
8916
8917 * editfns.c (Fformat): Add text properties to the result string
8918 from properties of the format string and properties of string
8919 arguments.
8920
8921 * textprop.c (text_property_list): New.
8922 (add_text_properties_from_list): New.
8923 (extend_property_ranges): New.
8924
89251999-03-29 Gerd Moellmann <gerd@gnu.org>
8926
8927 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
8928 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
8929 Use these symbols for the box face attribute instead of the
8930 removed ones.
8931
89321999-03-12 Gerd Moellmann <gerd@gnu.org>
8933
8934 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
8935 Correct wrong test for slant.
8936
89371999-03-10 Gerd Moellmann <gerd@gnu.org>
8938
8939 * xfaces.c: Use `unspecified' for unspecified face attributes,
8940 use t and nil for on/off.
8941
89421999-03-06 Gerd Moellmann <gerd@gnu.org>
8943
8944 * buffer.c (syms_of_buffer): Extend doc string of
8945 mode-line-format.
8946
8947 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
8948 (first_font_matching): New.
8949 (set_lface_from_font_name): Use it if font name is a pattern.
8950 (font_field_wildcard_p): Removed.
8951
8952 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
8953 Recompute visible height of rows.
8954
8955 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
8956 Don't accept non-strings for help-echo from overlays.
8957
89581999-03-04 Dave Love <fx@gnu.org>
8959
8960 * xterm.c (note_mouse_highlight): Check overlays for help-text
8961 property.
8962 (XTread_socket): Fix compiler warning.
427ec082 8963
26901792
DL
89641999-03-05 Gerd Moellmann <gerd@gnu.org>
8965
427ec082 8966 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
8967 overlay to 10. Call overlays_at so that it doesn't try to
8968 extend the vector.
8969
8970 * xdisp.c (compute_line_metrics): Compute glyph row's visible
8971 height.
8972
8973 * dispnew.c (row_equal_p): Compare visible row height, only.
8974 (update_text_area): Draw whole line if visible heights of
8975 rows differ.
8976 (update_window_line): Call after_update_window_line_hook
8977 if visible row height has changed.
8978
8979 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
8980 (struct glyph_row): New member visible_height.
8981
8982 * xfaces.c (font_field_wildcard_p): New.
8983 (set_lface_from_font_name): Remove parameter force_p. Accept
8984 font names containing wildcards.
8985
89861999-03-04 Gerd Moellmann <gerd@gnu.org>
8987
8988 * xterm.c (x_after_update_window_line): Clear internal border
8989 when windows_or_buffers_changed.
8990
8991 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
8992 buffer has a nil mode_line_format.
8993
89941999-03-03 Gerd Moellmann <gerd@gnu.org>
8995
8996 * xterm.c (x_setup_relief_colors): Use either background color
8997 or specified color.
8998
8999 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9000
9001 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9002
9003 * xterm.c (x_draw_box_rect): New.
9004 (x_draw_glyph_string_box): Renamed from
9005 x_draw_glyph_string_relief. Call x_draw_box_rect.
9006
9007 * xfns.c (QCrelief): New.
9008 (syms_of_xfns): Initialize it.
9009
9010 * dispextern.h (struct glyph): Rename left_shadow_p to
9011 left_box_line_p, right_shadow_p to right_box_line_p.
9012 (MAX_RELIEF_THICKNESS): Removed.
9013 (struct it): Rename members having `relief' in their names
9014 to contain `box' instead.
9015
9016 * xfaces.c (realize_x_face): Handle new box attribute values.
9017 (QCrelief, Qbox): Removed.
9018 (QCshadow, QCcolor, Qraised, Qsunken): New.
9019 (syms_of_xfaces): Initialize new symbols.
9020
90211999-03-02 Gerd Moellmann <gerd@gnu.org>
9022
9023 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9024
9025 * xfaces.c (LFACE_RELIEF): Removed.
9026 (merge_face_vector_with_property): Remove handling of `:relief'.
9027 (Finternal_set_lisp_face_attribute): Ditto.
9028 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9029 (Finternal_get_lisp_face_attribute): Ditto.
9030 (realize_default_face): Ditto.
9031 (lface_hash): Don't compute hash from relief.
9032
9033 * dispextern.h (struct face): Replace member `relief' by
9034 `box_line_width'. Add member `box'.
9035 (face_box_type): New.
9036
9037 * xterm.c (x_produce_glyphs): If face has overline, add overline
9038 thickness + 1 to ascent.
9039
90401999-03-01 Gerd Moellmann <gerd@gnu.org>
9041
9042 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9043 strike-through, and boxes.
9044 (x_draw_glyph_string_underline): Removed.
9045
9046 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9047 (Qoverline, Qstrike_through, Qbox): New.
9048 (syms_of_xfaces): Define these symbols.
9049 (check_lface_attrs): Add checks for overline, strike-through,
9050 and box.
9051 (Finternal_set_lisp_face_attribute): Set new attributes.
9052 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9053 (load_color): Handle new attributes.
9054 (realize_x_face): Ditto.
9055 (merge_face_vector_with_property): Ditto.
9056 (free_face_colors): Ditto.
9057 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9058 (Finternal_get_lisp_face_attribute): Ditto.
9059 (Finternal_lisp_face_attribute_values): Ditto.
9060
9061 * dispextern.h (lface_attribute_index): Add enumerators for
9062 overstrike, strike-through, and box.
9063 (struct face): Add members for overline, strike-through, and
9064 box.
9065
90661999-02-17 Dave Love <fx@gnu.org>
9067
9068 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9069 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9070 files.
9071
90721999-02-16 Gerd Moellmann <gerd@gnu.org>
9073
9074 * keyboard.c (toolbar_items): Call access_keymap with third
9075 parameter 1, so that we don't get inherited toolbar item
9076 definitions.
9077
9078 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9079 the window end vpos when in empty first line of window.
9080
90811999-02-15 Gerd Moellmann <gerd@gnu.org>
9082
9083 * xfaces.c (set_font_frame_param): New.
9084 (Finternal_set_lisp_face_attribute): Call it.
9085
9086Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9087
9088 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9089 Accept specifications of color for underline.
9090
90911999-02-13 Gerd Moellmann <gerd@gnu.org>
9092
9093 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9094 `frame' is t, operate on face defaults for new frames. If it
9095 is nil, operate on the selected frame.
9096
90971999-02-12 Gerd Moellmann <gerd@gnu.org>
9098
9099 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9100 (update_window): Put the call to check_matrix_invariants in #if 0.
9101
9102Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9103
9104 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9105 Remove definition of UNDERLINE_COLOR.
9106
9107Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9108
9109 * xfaces.c (free_face_colors): Free the color for underline.
9110
9111 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9112 to the GC.
9113
9114Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9115
9116 * dispextern.h (UNDERLINE_COLOR): Defined.
9117 (struct face): Added two new members.
9118 underline_color, underline_defaulted_p.
9119
427ec082 9120 * xfaces.c (merge_face_vector_with_property):
26901792 9121 (check_lface_attrs): Accept the string value for underline.
427ec082 9122 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9123
9124 * xfaces.c (load_color): Change the last argument type to enum
9125 lface_attribute_index from int. And addec code for underling coloring.
9126 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9127
26901792
DL
91281999-02-12 Gerd Moellmann <gerd@gnu.org>
9129
9130 * xfns.c (Fx_image_header): Removed.
9131
91321999-02-07 Gerd Moellmann <gerd@gnu.org>
9133
9134 * xterm.c: Don't include <bitmaps/gray>.
9135 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9136
9137 * xfns.c (Fx_image_header): Add missing `\n\'.
9138 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9139
91401999-02-01 Gerd Moellmann <gerd@gnu.org>
9141
9142 * xterm.c (x_scroll_bar_create): Set background pixel from
9143 specified scroll bar color.
9144 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9145
9146 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9147 (x_set_scroll_bar_background): Ditto.
9148
9149 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9150
9151 * xfns.c (x_default_scroll_bar_color_parameter): New.
9152 (Fx_create_frame): Call it.
9153
91541999-01-31 Gerd Moellmann <gerd@gnu.org>
9155
9156 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9157 values in x_output structure.
26901792
DL
9158 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9159 (syms_of_xfns): Initialize these symbols.
9160
9161 * xterm.h (struct x_output): Add scroll bar pixel colors.
9162
9163 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9164 (x_set_scroll_bar_foreground): New.
9165 (x_set_scroll_bar_background): New.
9166
26901792
DL
91671999-01-12 Gerd Moellmann <gerd@gnu.org>
9168
9169 * xdisp.c (handle_single_display_prop): New.
9170 (handle_display_prop): Call it.
9171 (handle_raise_prop): Removed.
9172 (handle_height_prop): Removed.
9173 (handle_space_width_prop): Removed.
9174 (handle_face_prop): Remove handling of raised text.
9175 (handle_display_prop): Do it here.
9176
9177 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9178 (RAISE_PROP_IDX): Removed.
9179 (HEIGHT_PROP_IDX): Removed.
9180 (SPACE_WIDTH_PROP_IDX): Removed.
9181
9182 * xdisp.c (Qdisplay): Replaces Qglyph.
9183 (handle_display_prop): Formerly handle_glyph_prop.
9184
91851999-01-11 Gerd Moellmann <gerd@gnu.org>
9186
9187 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9188 (handle_stop): Set position in display vector to -1. Don't
9189 check overlay strings when set up to deliver characters from a
9190 display vector.
9191 (set_iterator_to_next): At the end of a run of characters from a
9192 display vector, check whether the display vector display replaces
9193 the display of a character.
9194
91951999-01-05 Gerd Moellmann <gerd@gnu.org>
9196
9197 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9198 X window hasn't been created yet.
9199
92001998-12-06 Gerd Moellmann <gerd@gnu.org>
9201
9202 * sound.c: New.
9203
92041998-12-04 Gerd Moellmann <gerd@gnu.org>
9205
9206 * config.in (HAVE_SOUND): New.
9207
9208 * emacs.c (main): Call syms_of_sound and init_sound.
9209
9210 * Makefile.in (obj): Add sound.o.
9211
9212 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9213
9214 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9215 (HAVE_SYS_SOUNDCARD_H): New.
9216
92171998-12-03 Gerd Moellmann <gerd@gnu.org>
9218
9219 * buffer.h (struct buffer): indicate_empty_lines renamed from
9220 indicate_zv_lines.
9221
9222 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9223 (default-indicate-zv-lines): Likewise.
9224
9225 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9226 to indicate_empty_line_p.
9227
9228 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9229 to next_element_from_buffer.
9230
9231 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9232
9233 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9234 and `N-'.
9235
9236 * xfns.c (xbm_scan): New.
9237 (xbm_read_hexint): Removed.
9238 (xbm_read_bitmap_file_data): Use xbm_scan.
9239
9240 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9241
92421998-12-02 Gerd Moellmann <gerd@gnu.org>
9243
9244 * xfns.c (xbm_read_hexint): New.
9245 (xbm_read_bitmap_file_data): New.
9246 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9247 instead of XReadBitmapFileData.
9248
9249 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9250
9251 * xfaces.c (face_with_height): New.
9252
9253 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9254 (eval_form): Renamed from eval_mode_element.
9255 (handle_face_prop): Use it.
9256 (Qheight): Replaces Qsmaller.
9257 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9258 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9259 integer, evaluate it to get the font height to use.
9260
9261 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9262 (struct it): Use `font_height' instead of `smaller'.
9263
92641998-12-01 Gerd Moellmann <gerd@gnu.org>
9265
9266 * xdisp.c (reseat_1): New.
9267 (reseat): Call it.
9268 (move_it_vertically_backward): Ditto.
9269 (redisplay_window): Don't abort when cursor not found in recenter.
9270
92711998-11-30 Gerd Moellmann <gerd@gnu.org>
9272
9273 * xdisp.c (reseat_at_next_visible_line_start): When not
9274 currently delivering display elements from the current buffer,
9275 restore buffer position first.
9276 (init_from_display_pos): Don't set IT's position from the
9277 position passed to this function.
9278
92791998-11-28 Gerd Moellmann <gerd@gnu.org>
9280
9281 * config.in (PROTO): Removed.
9282
9283 * xterm.h: Change PROTO to P_.
9284
92851998-11-26 Gerd Moellmann <gerd@gnu.org>
9286
9287 * xterm.c (take_vertical_position_into_account): New.
9288 (x_produce_image_glyph): Call it.
9289 (x_produce_stretch_glyph): Ditto.
9290 (x_produce_glyphs): Ditto.
9291 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9292 (x_fill_composite_glyph_string): Ditto.
9293 (x_fill_image_glyph_string): Ditto.
9294 (x_fill_stretch_glyph_string): Ditto.
9295
9296 * xdisp.c (display_line): Always compute row height from
9297 max_ascent and max_descent.
9298
9299 * dispextern.h (struct glyph): Add voffset.
9300 (struct it): Replace height by descent, max_height by max_descent.
9301
9302 * xterm.c (x_append_glyph): Set voffset
9303 (x_append_stretch_glyph): Ditto.
9304 (x_produce_image_glyph): Ditto.
9305 (x_produce_glyphs): Take voffset into account.
9306 (x_produce_image_glyph): Ditto.
9307 (x_produce_stretch_glyph): Ditto.
9308
9309 * dispextern.h (struct it): Add voffset.
9310 * xdisp.c (push_it): Save voffset.
9311 (pop_it): Restore it.
9312
9313 * xdisp.c (it_props): Add entry for `raise'.
9314 (handle_raise_prop): New.
9315
9316 * dispextern.h (RAISE_PROP_IDX): New.
9317
9318 * xdisp.c (Qraise): New.
9319 (syms_of_xdisp): Define Qraised.
9320
9321 * xterm.c (x_scroll_bar_move): Clear to the left and right
9322 of toolkit scroll bars differently.
9323 (x_scroll_bar_move): Removed.
9324 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9325
9326 * dispextern.h: Make it compilable --with-x=no.
9327 * alloc.c: Ditto.
9328 * emacs.c: Ditto.
9329 * dispnew.c: Ditto.
9330 * keyboard.c: Ditto.
9331 * term.c: Ditto.
9332 * xdisp.c: Ditto.
9333 * xfaces.c: Ditto.
9334 * xfns.c: Ditto.
9335 * xmenu.c: Ditto.
9336
93371998-11-25 Gerd Moellmann <gerd@gnu.org>
9338
9339 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9340
93411998-11-24 Gerd Moellmann <gerd@gnu.org>
9342
9343 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9344 update slider size, only.
9345 (xm_scroll_callback): Set dragging member of the scroll bar.
9346 (xt_action_hook): Reset last_scroll_bar_part.
9347 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9348
26901792
DL
9349 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9350 window on newly created frames that don't have one.
9351
93521998-11-23 Gerd Moellmann <gerd@gnu.org>
9353
9354 * xdisp.c (restore_overlay_strings): Removed.
9355 (restore_dpvec): Removed.
9356 (init_from_display_pos): Inline both functions above.
9357
9358 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9359 (parse_image_spec): Handle it.
9360 (xbm_format): Use it.
9361 (xpm_format): Ditto.
9362 (pbm_format): Ditto.
9363 (jpeg_format): Ditto.
9364 (tiff_format): Ditto.
9365 (gif_format): Ditto.
9366 (gs_format): Ditto.
9367
9368 * xdisp.c (set_window_cursor): Removed.
9369 (redisplay_internal): Case cursor motion in cursor line of
9370 selected window; use set_cursor_from_row.
9371
93721998-11-22 Gerd Moellmann <gerd@gnu.org>
9373
9374 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9375 into account.
9376
93771998-11-21 Gerd Moellmann <gerd@gnu.org>
9378
9379 * xterm.c (expose_frame): Redraw menu bar window.
9380
9381 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9382 in menu item.
9383
9384 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9385 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9386
9387 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9388 to determine vertical_scroll_bar_extra.
9389 (EmacsFrameSetCharSize): Ditto.
9390 * xfns.c (x_figure_window_size): Ditto.
9391
9392 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9393 (x_draw_bitmap): Ditto.
9394
9395 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9396 * xfaces.c (realize_basic_faces): Realize it.
9397
93981998-11-20 Gerd Moellmann <gerd@gnu.org>
9399
9400 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9401 under LessTif Use the widget of the frame as parent for the
26901792
DL
9402 menu, again.
9403
94041998-11-19 Gerd Moellmann <gerd@gnu.org>
9405
9406 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9407 When EnterNotify, don't generate a mouse movement event if
9408 notification is from a busy-cursor child window.
9409
9410 * xterm.h (struct x_output): Add busy_window, remove cursor.
9411
9412 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9413 Use a transparent window to display the busy-cursor.
9414 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9415
94161998-11-17 Gerd Moellmann <gerd@gnu.org>
9417
9418 * xdisp.c (check_window_end): New, for debugging.
9419 (CHECK_WINDOW_END): New.
9420 (try_window_id): Use it.
9421
9422 * xterm.c (process_expose_from_menu): Return int.
9423
9424 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9425 TOOLBAR_EVENT events in last_nonmenu_event.
9426
94271998-11-16 Gerd Moellmann <gerd@gnu.org>
9428
9429 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9430 window end isn't reliable, so set window_end_valid to nil.
9431 (redisplay_internal): If overlay arrow has changed, set
9432 windows_or_buffers_changed to redisplay thoroughly.
9433
9434 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9435 necessary.
9436
9437 * xfns.c (file_dialog_cb): New.
9438 (Fx_file_dialog): New.
9439 * fileio.c (Fread_file_name): Call it.
9440
427ec082 9441 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9442 selection dialog.
9443
94441998-11-14 Gerd Moellmann <gerd@gnu.org>
9445
9446 * xterm.c (note_mouse_highlight): Don't highlight when popup
9447 is active.
9448
26901792
DL
9449 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9450 timer-event-handler. This busy cursor tends to be anoying if
9451 fontifying stealthily.
9452
9453 * dispnew.c (direct_output_for_insert): Give up if current row
9454 contains trailing whitespace.
9455
94561998-11-13 Gerd Moellmann <gerd@gnu.org>
9457
9458 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9459
9460 * xdisp.c (handle_fontified_prop): New.
9461 (Vfontification_functions): New.
9462 (Qfontification_functions): New.
9463 (it_props): Add handle_fontified_prop.
9464
94651998-11-12 Gerd Moellmann <gerd@gnu.org>
9466
9467 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9468 Otherwise, under LessTif, after the popup has gone, all button
9469 press events come in for the frame's widget, and release events
9470 come in for the edit_widget.
9471 * xterm.c (XTread_socket): Remove workaround for that problem.
9472 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9473 XmScrollBarSetValues.
9474 (SET_SAVED_MENU_EVENT): Give it statement form.
9475
26901792
DL
9476 * xfaces.c (display_message): If waiting_for_input, don't display
9477 the message.
9478
9479 * window.c (scroll_command): If not acting on current_buffer,
9480 make redisplay consider all windows.
9481
9482 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9483
9484 * xdisp.c (handle_glyph_prop): Set it->object for images to
9485 the object having the glyph property.
9486
9487 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9488 invisible.
9489
94901998-11-11 Gerd Moellmann <gerd@gnu.org>
9491
9492 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9493 (x_term_init): Create the gray pixmap.
9494 (x_setup_relief_color): Use it.
9495 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9496 internal border at the top of a frame.
9497 (x_init_glyph_string): Likewise.
427ec082 9498 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9499 full-width lines.
9500 (XTflash): Don't flash the toolbar window.
9501
9502 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9503 in case of ButtonPress events.
9504
95051998-11-10 Gerd Moellmann <gerd@gnu.org>
9506
9507 * xrdb.c (x_load_resources): Add grey background colors as
9508 defaults for menus, scroll bars, and dialogs.
9509
9510 * insdel.c (prepare_to_modify_buffer): Move setting
9511 windows_or_buffers_changed from modify_region here.
9512
9513 * xfns.c (Fx_show_tip): Inhibit redisplay.
9514 (Fx_hide_tip): Ditto.
9515 (Fx_image_header): New.
9516
95171998-11-09 Gerd Moellmann <gerd@gnu.org>
9518
9519 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9520 when clearing current window matrices.
9521
95221998-11-08 Gerd Moellmann <gerd@gnu.org>
9523
9524 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9525 position from a string position. Use the right end position
9526 if the property spans a whole overlay string.
9527
95281998-11-07 Gerd Moellmann <gerd@gnu.org>
9529
9530 * xmenu.c (menubar_selection_callback): Remove workaround for
9531 Lesstif not calling XmNpopdownCallback because it doesn't
9532 handle the case where users don't select any menu item.
9533
26901792
DL
9534 * insdel.c (modify_region): Set windows_or_buffers_changed.
9535
9536 * buffer.c (set_buffer_internal): Don't set
9537 windows_or_buffers_changed.
9538
26901792
DL
9539 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9540
26901792
DL
9541 * xmenu.c (menubar_selection_callback): Add workaround for
9542 Lesstif not calling XmNpopdownCallback.
9543
9544 * xdisp.c (eval_mode_element): New.
9545 (eval_mode_handler): New.
9546 (display_mode_element): Use eval_mode_element.
9547
9548 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9549 Remove code looking at text props of default value.
9550
9551 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9552
26901792
DL
95531998-11-06 Gerd Moellmann <gerd@gnu.org>
9554
427ec082 9555 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9556 BUTTON_TYPE_NONE.
9557 (single_submenu): Likewise for panes and menu items.
9558 (set_frame_menubar): Set button_type of menu bar to none.
9559 (xmenu_show): Likewise.
9560 (single_submenu): Set widget values selected slot.
9561 (xmenu_show): Likewise.
9562
26901792
DL
9563 * xmenu.c (push_menu_item): Add parameters `type' and
9564 `selected'. Store it in menu_items.
9565 (MENU_ITEMS_ITEM_TYPE): New.
9566 (MENU_ITEMS_ITEM_SELECTED): New.
9567 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9568
9569 * xfns.c (clear_image_cache): Get the current time, before
9570 doing anything.
9571 (cache_image): Set prev pointer of next image.
9572 (clear_image_cache): Clear current matrices if any image was
9573 freed.
9574
9575 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9576
9577 * xfns.c (x_set_cursor): New.
9578 (Fx_display_busy_cursor): New.
9579 (Fx_undisplay_busy_cursor): New.
9580
9581 * xterm.h (struct x_output): Add busy_cursor.
9582
9583 * xfns.c (Vx_busy_pointer_shape): New.
9584 (x_set_mouse_color): Create busy cursor.
9585
9586 * process.c (wait_reading_process_input): Show and hide busy
9587 cursor.
9588
9589 * keyboard.c (command_loop_1): Display busy cursor.
9590
9591 * eval.c (Fsignal): Hide busy cursor.
9592
9593 * buffer.c (set_buffer_internal): Don't set
9594 windows_or_buffers_changed.
9595
9596 * xterm.c (redo_mouse_highlight): New.
9597
95981998-11-04 Gerd Moellmann <gerd@gnu.org>
9599
26901792
DL
9600 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9601 (x_build_heuritic_mask): New.
9602 (lookup_image): Call it.
9603
9604 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9605 (previous_help_echo): New.
9606 (XTread_socket): Generate help event with nil message when
9607 leaving a region with help-echo.
9608 (note_mouse_highlight): Handle `help-echo' over text.
9609 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9610 CirculateRequest.
9611 (clear_mouse_face): Don't clear if tooltip is shown.
9612 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9613 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9614
9615 * keyboard.c (Vshow_help_function): New.
9616 (read_char): Use it.
9617
96181998-11-03 Gerd Moellmann <gerd@gnu.org>
9619
9620 * xfns.c (x_create_tip_frame): New.
9621 (Fx_show_tip): New.
9622 (Fx_hide_tip): New.
9623
427ec082 9624 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
9625 a widget.
9626
9627 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9628 to full_width_p. Add internal_border_p.
9629
96301998-11-02 Gerd Moellmann <gerd@gnu.org>
9631
9632 * xterm.c (note_mode_line_highlight): Check the charpos of
9633 the glyph under the mouse pointer before accessing text
9634 properties at that position.
9635
96361998-11-01 Gerd Moellmann <gerd@gnu.org>
9637
9638 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9639
9640 * xdisp.c (auto-raise-toolbar-buttons): New.
9641 (build_desired_toolbar_string): Handle the flag.
9642 (toolbar-button-margin): New.
9643 (toolbar-button-relief): New.
9644 (build_desired_toolbar_string): Use margin and relief.
9645
9646 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9647 for FreeBSD.
9648 (note_mode_line_highlight): New.
9649 (note_mouse_highlight): Call it.
9650
96511998-10-31 Gerd Moellmann <gerd@gnu.org>
9652
9653 * s/freebsd.h (NARROWPROTO): New.
9654
9655 * xdisp.c (display_string): New parameter face_string.
9656 (display_mode_element): When displaying a symbol with a string
9657 value, use text properties from the symbol's default value, maybe.
9658
9659 * xrdb.c (x_load_resources): Add font defaults for menus and
9660 dialogs.
9661
96621998-10-30 Gerd Moellmann <gerd@gnu.org>
9663
9664 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9665
96661998-10-29 Gerd Moellmann <gerd@gnu.org>
9667
9668 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9669 produced for characters with codes < 32 under certain
9670 circumstances.
9671
9672 * xdisp.c (redisplay_window): Handle values of PT in front
9673 of invisible, intangible text.
427ec082 9674 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
9675 displaying lines.
9676 (display_mode_element): Assign to glyphs written for a mode
9677 line spec `%x' as object the Lisp format string, as position
9678 the position of the `%' in that string.
9679 (display_string): If displaying a C string, optionally get
9680 the face to use from a Lisp string.
9681
9682 * xterm.c (expose_window_tree): Include mode line height.
9683
9684 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9685
96861998-10-27 Gerd Moellmann <gerd@gnu.org>
9687
9688 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9689 over mode line.
9690
96911998-10-26 Gerd Moellmann <gerd@gnu.org>
9692
9693 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9694
9695 * xdisp.c (redisplay_window): If mode line height has changed,
9696 arrange for a thorough immediate redisplay using the correct mode
9697 line height.
9698 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9699
9700 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9701 (CURRENT_MODE_LINE_HEIGHT): New.
9702 (DESIRED_MODE_LINE_HEIGHT): New.
9703
9704 * keyboard.c (make_lispy_event): Add string and string position
9705 info to mouse-click events.
9706 (read_key_sequence): Handle `local-map' property of mode line
9707 strings.
9708
9709 * keyboard.h (POSN_STRING): New.
9710
97111998-10-25 Gerd Moellmann <gerd@gnu.org>
9712
9713 * dispnew.c (mode_line_string): Mew.
9714
9715 * xterm.c (xt_action_hook): New.
9716 (x_create_toolkit_scroll_bar): Add action hook.
9717 (xm_scroll_callback): Implement dragging.
9718
9719 * keyboard.c (Qend_scroll): New.
9720 (scroll_bar_parts): Add it.
9721
9722 * termhooks.h (scroll_bar_end_scroll): New.
9723
9724 * xterm.c (XTread_socket): Bug fix.
9725
97261998-10-24 Gerd Moellmann <gerd@gnu.org>
9727
9728 * xdisp.c (redisplay_window): Finish scroll bars after
9729 redisplaying toolbar.
9730
9731 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
9732 (syms_of_keyboard): Add Qbottom.
9733
9734 * termhooks.h (scroll_bar_to_top): New.
9735 (scroll_bar_to_bottom): New.
9736
9737 * xdisp.c (redisplay_window): Always resize toolbar window if
9738 auto_resize_toolbar_p is non-zero.
9739 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
9740 (window_box): New.
9741 (window_box_height): New.
9742 (window_box_width): New.
9743 (window_box_left): New.
9744 (window_box_right): New.
9745 (window_box_edges): New.
9746
97471998-10-23 Gerd Moellmann <gerd@gnu.org>
9748
9749 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
9750 XawScrollbarSetThumb in FreeBSD.
9751 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
9752 to true.
9753
9754 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
9755 is out of range.
9756
9757 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
9758 (x_term_init): Initialize it.
9759
9760 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
9761
9762 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
9763 cursor.
9764
97651998-10-22 Gerd Moellmann <gerd@gnu.org>
9766
9767 * keyboard.c (make_lispy_event): Handle scroll_bar_click
9768 differently when using toolkit scroll bars.
9769
9770 * xterm.c (x_send_scroll_bar_event): New.
9771 (x_scroll_bar_to_input_event): New.
9772 (xaw3d_scroll_callback): New.
9773 (xaw3d_jump_callback): New.
9774 (xm_scroll_callback): New.
9775 (x_toolkit_scroll_p): New.
9776 (XTread_socket): Handle scroll bar client message.
9777 (x_term_init): Initialize Xatom_Scrollbar.
9778 (x_scroll_bar_create): Set cursor.
9779 (xm_scroll_callback):
9780 (x_create_toolkit_scroll_bar): New.
9781 (x_set_toolkit_scroll_bar_thumb): New.
9782 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
9783 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
9784
9785 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
9786
97871998-10-21 Gerd Moellmann <gerd@gnu.org>
9788
9789 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
9790 (XTread_socket): Don't handle mouse button events for scroll bars
9791 if using toolkit scroll bars.
9792 (XTset_vertical_scroll_bar): Set thumb size and position for
9793 Athena scroll bar.
9794
9795 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
9796
9797 * xterm.c (XTread_socket): Dispatch expose event to widget
9798 if using toolkit scroll bars.
9799 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 9800 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
9801 if using toolkit scroll bars.
9802 (x_scroll_bar_move): Handle tookit scroll bars.
9803
9804 * Makefile.in (LIBW): Use Xaw3d if present.
9805
9806 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
9807 (HAVE_XAW3D): New.
427ec082 9808
26901792
DL
9809 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
9810 (HAVE_XAW3D): New.
9811
427ec082 9812 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
9813 right vertical scroll bar.
9814
98151998-10-20 Gerd Moellmann <gerd@gnu.org>
9816
9817 * xfns.c (xpm_load): Support reading XPM images from string
9818 buffers containing data in the same format as an XPM file.
9819 Support `:color-symbols'.
9820 (xpm_format): Add `:data'.
9821 (xpm_keyword_index): Add XPM_DATA.
9822 (syms_of_xfns): Add `:color-symbols'.
9823 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
9824 (xpm_valid_color_symbols_p): New.
9825 (xpm_image_p): Call it.
9826
9827 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
9828 attribute to the image if item is not enabled.
9829
9830 * xfns.c (x_laplace): New.
9831 (x_laplace_read_row): New.
9832 (x_laplace_write_row): New.
9833 (lookup_image): Handle common image attributes here. New
9834 attribute `:algorithm'.
9835
9836 * xfaces.c (clear_face_cache): Call clear_image_cache.
9837
9838 * xterm.c (x_inverted_image_mask): Removed.
9839 (x_draw_image_foreground_1): New.
9840 (x_draw_image_glyph_string): Draw images with mask to a temporary
9841 pixmap to reduce flickering.
9842
9843 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
9844 (display_toolbar_line): Remove parameter `margin'.
9845
98461998-10-19 Gerd Moellmann <gerd@gnu.org>
9847
9848 * xdisp.c (toolbar_lines_needed): New.
9849 (auto-resize-toolbars): New.
9850
9851 * xfns.c (cache_image): Correct call to xrealloc.
9852
9853 * dispnew.c (Fset_toolbar_height): Removed.
9854
9855 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
9856 FRAME_MENU_BAR_LINES.
9857
9858 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
9859 instead of FRAME_MENU_BAR_LINES.
9860 (check_frame_size): Ditto.
9861
9862 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
9863 instead of FRAME_MENU_BAR_LINES.
9864 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
9865 (build_frame_matrix): Ditto.
9866 (change_frame_size_1): Ditto.
9867
9868 * frame.h (FRAME_TOOLBAR_LINES): New.
9869 (FRAME_TOP_MARGIN): New.
9870
9871 * window.c (struct save_window_data): Add frame_toolbar_lines.
9872 (Fset_window_configuration): Handle toolbar lines.
9873 (Fcurrent_window_configuration): Save toolbar lines.
9874
9875 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
9876
9877 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
9878
9879 * frame.h (struct frame): Rename top_margin to toolbar_lines.
9880
9881 * xfns.c (x_frame_parms): Add `toolbar-lines'.
9882 (x_set_toolbar_lines): New.
9883
9884 * keyboard.c (cmd_error_internal): Bug fix.
9885
9886 * xterm.c: Remove double include of syssignal.h.
9887
98881998-10-18 Gerd Moellmann <gerd@gnu.org>
9889
9890 * xterm.c (x_toolbar_item): New.
9891 (x_handle_toolbar_click): Use it.
9892 (note_toolbar_highlight): Use it.
9893
9894 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
9895 and toolbar_items_vectors.
9896
9897 * xterm.c (help_echo): New.
9898 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
9899 (x_set_glyph_string_gc): Handle them.
9900 (x_after_update_window_line): Don't do anything in pseudo-windows.
9901 (x_produce_image_glyph): Take image margin and face relief into
9902 account.
9903 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
9904 (x_draw_glyph_string_background): Optimize case when face has
9905 relief.
9906 (x_setup_relief_color): Take frame instead of glyph string
9907 parameter.
9908 (x_draw_relief_rect): New.
9909 (x_draw_glyph_string_relief): Call it.
9910 (x_draw_image_glyph_string_foreground): Handle margin and image
9911 relief.
9912 (x_draw_image_glyph_string_background): Ditto.
9913 (expose_frame): Redraw toolbar window.
9914 (expose_window): Don't draw cursor for pseudo-windows.
9915 (x_y_to_hpos_vpos): Handle pseudo-windows.
9916 (frame_to_window_pixel_xy): New.
9917 (note_mouse_highlight): Call note_toolbar_highlight.
9918 (x_handle_toolbar_click): New.
9919 (note_toolbar_highlight): New.
9920 (show_mouse_face): Change int parameter `hl' to parameter of
9921 type enum draw_glyphs_face. Handle image highlighting.
9922 (XTread_socket): Return a HELP_EVENT input event if help_echo is
9923 non-nil. Use x_handle_toolbar_click.
9924
9925 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
9926
9927 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
9928 IMAGE_BOOL_VALUE.
9929 (parse_image_spec): Handle them.
9930 (image_spec_value): Additional parameter found.
427ec082 9931 (free_image): Remove image from the vector `images' of the
26901792
DL
9932 image cache.
9933 (clear_image_cache): Additional parameter force_p.
9934 (Fclear_image_cache): New.
9935 (x_find_image_file): New.
9936 (xbm_load): Handle `:margin' and `:relief'. Use
9937 x_find_image_file.
9938 (xpm_load): Likewise.
9939 (pbm_load): Likewise.
9940 (jpeg_load): Likewise.
9941 (tiff_load): Likewise.
9942 (gif_load): Likewise.
9943
9944 * keyboard.c (Qhelp_echo): New symbol.
9945 (read_char): Handle `toolbar' and `help_echo' events.
9946 (kbd_buffer_get_event): Handle HELP_ECHO input event.
9947 (make_lispy_event): Handle TOOLBAR_EVENT.
9948 (toolbar_items): New.
9949 (process_toolbar_item): New.
9950 (PROP): New.
9951 (init_toolbar_items): New.
9952 (append_toolbar_item): New.
9953 (read_char_x_menu_prompt): Handle `toolbar' event.
9954 (read_key_sequence): Ditto.
9955
9956 * xfaces.c (Qtoolbar): New.
9957 (realize_basic_faces): Realize `toolbar' face.
9958 (face_at_string_position): Remove parameter modeline_p, add
9959 base_face_id.
9960
9961 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
9962 to read data.
9963
99641998-10-17 Gerd Moellmann <gerd@gnu.org>
9965
9966 * xdisp.c (init_iterator): Replace parameter modeline_p with
9967 base_face_id.
9968 (next_element_from_string): Call get_next_display_element
9969 recursively after handling text properties.
9970 (prepare_menu_bars): Call update_toolbar.
9971 (update_toolbar): New.
9972 (build_desired_toolbar_string): New.
9973 (display_toolbar_line): New.
9974 (redisplay_toolbar): New.
9975 (toolbar_item_info): New.
9976 (redisplay_window): Call redisplay_toolbar.
9977 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
9978
9979 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
9980 window.
9981 (clear_desired_matrices): Ditto.
9982 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
9983 (free_glyphs): Free matrices of toolbar window.
9984 (update_frame): Update toolbar window.
9985 (change_frame_size_1): Take toolbar into account.
9986 (Fset_toolbar_height): New.
9987
9988 * dispextern.h (struct it): Remove member modeline_p, add
9989 base_face_id.
9990 (struct image): Add members relief and margin.
9991 (IMAGE_ASCENT): Include margin in height.
9992
99931998-10-14 Gerd Moellmann <gerd@gnu.org>
9994
9995 * xfns.c (Fclear_image_cache): New.
9996
9997 * xfaces.c (realize_basic_faces): Realize toolbar face.
9998 (face_at_string_position): Remove parameter modeline_p, add
9999 base_face_id.
10000
10001 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10002
100031998-10-13 Gerd Moellmann <gerd@gnu.org>
10004
10005 * keyboard.c (syms_of_keyboard): Intern `:help'.
10006
100071998-10-12 Gerd Moellmann <gerd@gnu.org>
10008
10009 * xterm.c (note_toolbar_highlight): New.
10010 (note_mouse_highlight): Call it.
10011
10012 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10013 (coordinates_in_window): Handle toolbar window.
10014
10015 * keyboard.c (toolbar_items): New.
10016 (process_toolbar_item): New.
10017 (parse_toolbar_item): New.
10018 (init_toolbar_items): New.
10019 (append_toolbar_item): New.
10020
10021 * dispextern.h (enum toolbar_item_idx): New.
10022 (enum toolbar_item_image): New.
10023
10024 * frame.h (struct frame): Add toolbar-related members.
10025
10026 * xfaces.c (face_at_string_position): Remove assertion that
10027 current_buffer == window's buffer. This is not the case when
10028 called for the toolbar window.
10029
10030 * frame.c (make_frame): Initialize toolbar members.
10031
10032 * alloc.c (mark_object): Mark toolbar data of frames.
10033
10034 * frame.h (struct frame): Add toolbar-related members
10035 toolbar_window, desired_toolbar_items, current_toolbar_items,
10036 desired_toolbar_string, current_toolbar_string,
10037 n_desired_toolbar_items, n_current_toolbar_items. Add
10038 window_height.
10039
10040 * xterm.c (x_after_update_window_line): Don't draw bitmap
10041 areas for pseudo-windows.
10042 (expose_frame): Handle toolbar window.
10043 (expose_window): Don't do cursor stuff for pseudo-windows.
10044
10045 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10046
100471998-10-11 Gerd Moellmann <gerd@gnu.org>
10048
10049 * frame.c (make_frame): Initialize toolbar_window.
10050
10051 * alloc.c (mark_object): Make the toolbar window.
10052
10053 * dispnew.c (update_frame): Update frame's toolbar_window.
10054 (clear_current_matrices): Likewise.
10055 (clear_desired_matrices): Likewise.
10056 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10057 (free_glyphs): Free the toolbar window and its matrices.
10058
10059 * frame.h (struct frame): Add toolbar_window.
10060
10061 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10062 with relief.
10063
100641998-10-10 Gerd Moellmann <gerd@gnu.org>
10065
427ec082 10066 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10067 window start is not in the range BEGV..ZV.
10068
100691998-10-09 Gerd Moellmann <gerd@gnu.org>
10070
10071 * xdisp.c (try_scrolling): Experimentally handle the case
10072 that scroll-preserve-screen-position is set to `always'.
10073
10074 * window.c (Vscroll_preserve_screen_position): Replacement for
10075 scroll_preserve_screen_position.
10076
100771998-10-08 Gerd Moellmann <gerd@gnu.org>
10078
10079 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10080 doesn't like it.
10081 * xdisp.c: Ditto.
10082
10083 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10084
100851998-10-06 Gerd Moellmann <gerd@gnu.org>
10086
427ec082 10087 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10088 i_byte when prompts are inserted into minibuffers.
10089
10090 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10091 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10092 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10093
100941998-10-04 Gerd Moellmann <gerd@gnu.org>
10095
10096 * xdisp.c (make_cursor_line_fully_visible): New.
10097 (try_scrolling): New.
10098 (redisplay_window): Move scrolling code to try_scrolling.
10099 (make_cursor_line_fully_visible): Handle case of window too small
10100 to show a single line.
10101 (redisplay_window): Case forced window start---use
10102 make_cursor_line_fully_visible.
10103 (redisplay_window): Case cursor movement via current matrix.
10104 If ending up on a partially visible line, make it fully visible
10105 instead of recentering.
10106 (try_scrolling): Additional parameter scroll_smoothly.
10107
10108 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10109
101101998-09-28 Gerd Moellmann <gerd@gnu.org>
10111
10112 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10113 instead of y-position for scroll-preserved-screen-position.
10114
101151998-09-07 Gerd Moellmann <gerd@gnu.org>
10116
10117 * dispnew.c (update_frame_line): If current row is not enabled,
10118 write the whole line.
10119
101201998-09-06 Gerd Moellmann <gerd@gnu.org>
10121
10122 * lisp.h (HAVE_FACES): Removed.
10123
10124 * dispextern.h (HAVE_FACES): Removed.
10125
10126 * config.in (HAVE_FACES): Removed.
10127
10128 * dispnew.c (HAVE_FACES): Removed.
10129
10130 * xdisp.c (HAVE_FACES): Removed.
10131
10132 * xfaces.c (HAVE_FACES): Removed.
10133
101341998-09-05 Gerd Moellmann <gerd@gnu.org>
10135
10136 * xdisp.c (init_iterator): If face_change_count is non-zero,
10137 free realized faces.
10138
10139 * xfaces.c (free_all_realized_faces): Make it externally visible.
10140 (Finternal_set_lisp_face_attribute): Increment
10141 windows_or_buffers_changed.
10142
10143 * dispnew.c (direct_output_for_insert): Give up if
10144 face_change_count is non-zero.
10145 (direct_output_forward_char): Ditto.
10146
10147 * xfaces.c (face_change_count): New.
10148
101491998-09-04 Gerd Moellmann <gerd@gnu.org>
10150
10151 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10152 of range.
10153
101541998-09-03 Gerd Moellmann <gerd@gnu.org>
10155
10156 * term.c (Ftty_display_color_p): New.
10157
101581998-09-02 Gerd Moellmann <gerd@gnu.org>
10159
10160 * xfaces.c (Ftty_defined_colors): New.
10161
10162 * xterm.c (x_produce_glyphs): Fix computation of
10163 contains_overlapping_glyphs_p for ASCII.
10164
10165 * dispnew.c (Fshow_cursor): Don't change cursor state while
10166 redisplaying.
10167 (direct_output_for_insert): If a glyph with lbearing or rbearing
10168 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10169
101701998-09-01 Gerd Moellmann <gerd@gnu.org>
10171
10172 * term.c (OUTPUT_IF): Make replacement text have statement form.
10173 (OUTPUT1_IF): Ditto.
10174 (TS_italic_mode, TS_end_italic_mode): Removed.
10175 (TS_bold_mode): Removed.
10176 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10177 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10178 (TS_enter_reverse_mode): New.
10179 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10180 (TN_magic_cookie_glitch_ul): New.
10181 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10182 (TS_exit_attribute_mode): New.
10183 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10184 (TS_set_foreground, TS_set_background): New.
10185 (reset_terminal_modes): Switch colors back to default.
10186 (write_glyphs): Turn face on before writing text, turn it off
10187 afterwards.
10188 (insert_glyphs): Ditto.
10189 (term_init): Initialize new terminal capability variables.
10190 (turn_on_face): Turn a face on.
10191 (turn_off_face): Turn a face off.
10192
10193 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10194 (GLYPH_CHAR): Ditto.
10195 (GLYPH_FACE): Ditto.
10196
10197 * xfaces.c (Vface_tty_color_alist): New.
10198 (face-register-tty-color): New.
10199 (face-clear-tty-colors): New.
10200
10201 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10202 (struct it): Remove member faces_p since we now always have faces.
10203
102041998-08-31 Gerd Moellmann <gerd@gnu.org>
10205
10206 * dispextern.h (struct face): Add tty appearance flags.
10207
10208 * xdisp.c (init_iterator): Always handle faces.
10209 (extend_face_to_end_of_line): Handle tty frames.
10210
10211 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10212 passed in.
10213
102141998-08-30 Gerd Moellmann <gerd@gnu.org>
10215
10216 * xfaces.c (realize_default_face): Use empty strings to indicate
10217 that the face should use the default foreground/background
427ec082 10218 color of the terminal. Fill font-related attributes with
26901792
DL
10219 appropriate values for tty frames.
10220
10221 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10222
10223 * xfaces.c (realize_default_face): If face `default' is not
10224 yet known, create it.
10225
10226 * frame.c (make_terminal_frame): Call init_frame_faces
10227 unconditionally.
10228
10229 * xfaces.c (init_frame_faces): Make it work for tty frames.
10230 (free_frame_faces): Ditto.
10231 (clear_face_cache): Ditto.
10232 (recompute_basic_faces): Ditto.
10233 (Fframe_face_alist): Ditto.
10234 (free_realized_face): Ditto.
10235 (prepare_face_for_display): Ditto.
10236 (clear_face_gcs): Ditto.
10237 (lookup_face): Ditto.
10238 (smaller_face): Ditto.
10239 (realize_default_face): Ditto.
10240 (realize_face): Ditto.
10241 (realize_face): Dispatch to functions depending on the frame type.
10242 (realize_x_face): X way of realizing faces.
10243 (realize_tty_face): TTY way of realizing faces.
10244
102451998-08-29 Gerd Moellmann <gerd@gnu.org>
10246
10247 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10248 compute it instead.
10249 (lookup_face): Remove local variable unibyte_registry.
10250
102511998-08-22 Gerd Moellmann <gerd@gnu.org>
10252
10253 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10254 1 pixel longer.
10255
427ec082 10256 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10257 of face in buffer.
10258
10259 * editfns.c (make_buffer_string_both): If prompt in buffer,
10260 prevent start > end.
10261
10262 * indent.c (Fvertical_motion): Set current_buffer to window's
10263 buffer if it isn't already.
10264
102651998-08-21 Gerd Moellmann <gerd@gnu.org>
10266
10267 * dispextern.h (GLYPH_DEBUG): Use default 0.
10268
10269 * xdisp.c (it_props): New member `smaller'.
10270 (init_iterator): Initialize it.
10271 (Qsmaller): New.
10272 (push_it): Save value of `smaller' value on the stack.
10273 (pop_it): Restore `smaller' from the stack.
10274 (handle_smaller_prop): New.
10275 (handle_face_prop): Use `smaller' text property to select a
10276 suitable face.
10277
10278 * dispextern.h (SMALLER_PROP_IDX): New.
10279 (struct it): Add member `smaller'.
10280
10281 * xfaces.c (smaller_face): New.
10282
10283 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10284
10285 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10286 total pixel width of window differently.
10287
10288 * xdisp.c (init_iterator): Compute width of mode line differently.
10289
10290 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10291 of bitmap areas.
10292
10293 * window.c (Fsplit_window): Include width of bitmap areas in
10294 window width.
10295 (window_internal_width): Subtract width of bitmap areas from
10296 total width.
10297
102981998-08-18 Gerd Moellmann <gerd@gnu.org>
10299
10300 * xdisp.c: Functions reordered for better readability.
10301
10302 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10303 lbearing.
10304 (update_window_tree): Parameter no_scrolling_p removed.
10305 (update_single_window): Ditto.
10306
10307 * xterm.c (x_get_char_font_and_encoding): Renamed to
10308 x_get_char_face_and_encoding.
10309
10310 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10311 if end of current row reached.
10312
10313 * xterm.c (x_get_glyph_face_and_encoding): New.
10314 (x_get_glyph_overhangs): Call it.
10315
10316 * xdisp.c (Qshow_trailing_whitespace): New.
10317 (Qtrailing_whitespace): New.
10318 (enum prop_handled): New.
10319 (struct props, it_props): New.
10320 (next_overlay_change): New. Works like Fnext_overlay_change
10321 but doesn't use xmalloc.
10322 (handle_stop): Restructured.
10323 (face_before_or_after_it_pos): Case iteration over a string: fix
10324 handling of face before current position.
10325
103261998-08-16 Gerd Moellmann <gerd@gnu.org>
10327
10328 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10329 reallocation matrix if fonts_changed_p.
10330 (update_text_area): Handle glyphs with lbearing.
10331
103321998-08-14 Gerd Moellmann <gerd@gnu.org>
10333
10334 * xdisp.c (struct props): New.
10335 (it_props): New.
10336 (compute_prop_info): New.
10337 (handle_stop): New.
10338
10339 * textprop.c (validate_interval_range): Make it externally
10340 visible.
10341
10342 * dispnew.c (direct_output_for_insert): Remove calls
10343 to compute_stop_pos.
10344
10345 * dispextern.h (struct it): Remove check_charpos,
10346 next_overlay_pos. Add what_changes.
10347
103481998-08-10 Gerd Moellmann <gerd@gnu.org>
10349
10350 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10351
10352 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10353 face_default_registry instead.
10354
10355 * syntax.c (scan_sexps_forward): Set up syntax table before
10356 jumping to initial state label.
10357
103581998-08-09 Gerd Moellmann <gerd@gnu.org>
10359
10360 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10361 >= ZV specially.
10362
103631998-08-08 Gerd Moellmann <gerd@gnu.org>
10364
10365 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10366 ends up in partially visible row, try to scroll. Case forced
10367 window start---handle windows not tall enough to show a single
10368 line.
10369
10370 * window.h (struct window): Member dy renamed vscroll.
10371
10372 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10373 fonts.
10374 (x_draw_stretch_glyph_string): Set clipping if using GC that
10375 hasn't set it yet.
10376
10377 * xdisp.c (redisplay_window): Case forced window start -
10378 don't let cursor end on partially visible row. Use desired
10379 matrix to find a suitable PT if it doesn't appear.
10380 (decode_mode_spec): Merged with 20.2.97.
10381 (try_window_reusing_current_matrix): Give up if old or
10382 new display is vscrolled.
10383 (redisplay_window): Reset vscrolling if forced window start,
10384 or if recentering.
10385
103861998-08-06 Gerd Moellmann <gerd@gnu.org>
10387
10388 * xfaces.c (realize_default_face): Use the fontset name instead of
10389 the alias for the family attribute of the default face because we
10390 can't easily determine a good alias from fontset-alias-alist.
10391 (face_fontset): Use Fquery_fontset to find the fontset.
10392 (font_list): Additional pattern parameter.
10393 (try_font_list): Ditto.
10394 (set_lface_from_font_name): Set face family from font foundry
10395 and family.
10396 (font_list): If family contains a hyphen, build pattern differently.
10397
103981998-08-05 Gerd Moellmann <gerd@gnu.org>
10399
10400 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10401 changed instead of setting the frame garbaged.
10402
10403 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10404 all attribute values. This is wrong if values are unspecified,
10405 i.e. nil.
10406
10407 * xdisp.c (try_window_id): Give up if window start changed.
10408
10409 * xfaces.c (make_realized_face): Store registry as Lisp object.
10410 (load_face_font_or_fontset): Compute registry of a face
10411 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10412 possible.
10413
10414 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10415 differently.
10416
10417 * alloc.c (mark_face_cache): Mark the registry member of faces.
10418
10419 * dispextern.h (struct face): Make registry a Lisp string.
10420
104211998-08-04 Gerd Moellmann <gerd@gnu.org>
10422
10423 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10424 multibyte_p. Handle unibyte text.
10425 (x_append_glyph): Set the multibyte_p flag of glyphs.
10426 (x_produce_image_glyph): Ditto.
10427 (x_append_stretch_glyph): Ditto.
10428 (x_produce_glyphs): Handle unibyte text like ASCII.
10429
10430 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10431 stack.
10432 (pop_it): Restore it.
10433 (face_before_or_after_it_pos): Handle the case that the string or
10434 buffer is unibyte.
10435 (get_overlay_strings): Set the multibyte flag of the iterator if
10436 the new overlay string is multibyte.
10437 (get_glyph_property): Likewise.
10438 (get_next_display_element): Don't check for charset changes in
10439 unibyte text.
10440 (append_space): Compute face differently for unibyte text.
10441 (extend_face_to_end_of_line): Don't return quickly if face has
10442 stipple.
10443
10444 * xfaces.c (load_face_font_or_fontset): Store registry and
10445 encoding of the font in the registry member of the face.
10446 (make_realized_face): Additional parameter `registry'.
10447 (free_realized_face): Free the registry of a realized face.
10448 (face_suitable_for_charset_p): Function form of the macro
10449 with the same name in uppercase.
10450 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10451 (choose_face_font): New parameter unibyte_registry.
10452 (choose_face_fontset_font): Ditto.
10453 (realize_default_face): Remember the registry and encoding of
10454 the specified frame font in Vx_unibyte_registry_and_encoding.
10455 (face_at_buffer_position): Handle unibyte.
10456 (face_at_string_position): Likewise.
427ec082 10457 (realize_face): New parameter unibyte_registry.
26901792
DL
10458 (compute_char_face): Handle the unibyte case.
10459
10460 * dispextern.h (struct glyph): Add bit multibyte_p.
10461 (struct face): New member registry holding the registry and
10462 encoding of the X font of the face.
10463 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10464 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10465 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10466 text.
10467 (struct iterator_stack_entry): Add multibyte_p.
10468
10469 * xdisp.c (string_pos): Use string_char_to_byte.
10470 (char_charset): Removed.
10471
104721998-08-03 Gerd Moellmann <gerd@gnu.org>
10473
10474 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10475 rectangle for a block cursor over an image without a mask.
10476 (x_stretch_block_cursor): Added. Non-zero means don't draw
10477 a block cursor over a stretch as wide as that stretch.
10478 (x_draw_stretch_glyph_string): Use it.
10479 (x_draw_hollow_cursor): Ditto.
10480
10481 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10482 (read_minibuf): Add front-sticky text property for prompt.
10483
10484 * xdisp.c (char_charset): Return charset of a character,
10485 depending on whether or not multi-byte characters are enabled.
10486
10487 * xfaces.c (Fset_face_charset_registry): Removed.
10488 (x_charset_registry): Determine registry from charset plist.
10489
104901998-08-02 Gerd Moellmann <gerd@gnu.org>
10491
10492 * xdisp.c (get_next_display_element): Don't check for charset
10493 changes if multi-byte characters are not enabled.
427ec082 10494
26901792 10495 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10496 redisplay interface.
26901792
DL
10497 * keyboard.c (detect_input_pending_run_timers): Likewise.
10498
10499 * dispextern.h (produce_*glyphs_hook): Removed.
10500 * term.c (produce_*glyphs): Ditto.
10501 (cursor_to): Remove pixel position parameters.
10502
10503 * dispnew.c: Remove hooks for window-based redisplay, introduce
10504 a redisplay interface structure.
10505
10506 * xterm.c (x_per_char_metric): Return default char metrics if per
10507 char metric exists but contains a zero width. Adobe Courier seems
10508 to contain such characters.
10509
10510 * xdisp.c (compute_line_metrics): Compute the width of rows
10511 without stopping at glyphs with zero width.
10512
105131998-08-01 Gerd Moellmann <gerd@gnu.org>
10514
10515 * xdisp.c (display_mode_line): If nothing was displayed at all,
10516 display a space.
10517 (hscroll_window_tree): Don't subtract 1 from target point if equal
10518 to ZV and window is not the selected window.
10519
10520 * dispnew.c (check_matrix_invariants): Remove check for window
10521 start at BEGV or after newline. This happens in rare cases
10522 intentionally.
10523
105241998-07-31 Gerd Moellmann <gerd@gnu.org>
10525
10526 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10527 (syms_of_xfaces): Add Vface_default_registry.
10528 (x_charset_registry): Use it.
10529
10530 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10531 (redisplay_window): Use it.
10532
10533 * dispnew.c (update_text_area): Handle lbearing of deleted text
10534 by backing up one character.
10535
105361998-07-30 Gerd Moellmann <gerd@gnu.org>
10537
427ec082 10538 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10539 decide to do nothing.
10540
10541 * xfaces.c (face_at_string_position): Additional parameter
10542 mode_line_p. If non-zero, merge with the mode line face
10543 instead of the default face.
10544 * dispextern.h (struct it): Add mode_line_p.
10545 * xdisp.c (init_iterator): Set it.
10546 (compute_face_in_string): Use it.
10547 (face_before_or_after_it_pos): Handle strings.
10548 (get_next_display_element): Don't look for relief end in C strings.
10549 (next_element_from_string): Deliver string position instead of
10550 buffer position.
10551
10552 * xterm.c (x_flush): Flush X output buffer.
10553 (XTflash): Use it.
10554
10555 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10556 Allow strings as face names.
10557
10558 * xfns.c (forall_images_in_image_cache): Check that frame is
10559 alive.
10560
10561 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10562 it's also called from x_destroy_window. Since this function is
10563 called from X, freeing stuff allocated with xmalloc is dangerous
10564 here, anyway.
10565
10566 * xfaces.c (free_realized_faces): Don't clear current matrices
10567 of a frame being destroyed.
10568
427ec082 10569 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10570 Fset_window_buffer.
10571
10572 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10573 with an additional argument specifying whether or not hooks may
10574 be called.
10575 (Fset_window_buffer): Call it.
10576
10577 * dispnew.c (clear_desired_matrices): Check that frame has
10578 a valid root window before clearing matrices in the window tree.
10579 (clear_current_matrices): Ditto.
10580 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10581 vchild are valid windows if not nil.
10582
10583 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10584 for :inverse-video.
10585 (Finternal_set_lisp_face_attribute): Ditto.
10586 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10587 (Finternal_get_lisp_face_attribute): Ditto.
10588 (Finternal_lisp_face_attribute_values): Ditto.
10589 (syms_of_xfaces): Define the symbol `:reverse-video'.
10590
10591 * xdisp.c (get_glyph_property): Renamed from
10592 fill_iterator_from_glyph_property.
10593 (next_element_from_buffer): Handle case that no `glyph' property
10594 was found correctly.
10595 (display_line): Extend face to end of line only if we have faces.
10596
105971998-07-29 Gerd Moellmann <gerd@gnu.org>
10598
10599 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10600 additional window argument.
10601
10602 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10603 set_iterator_to_previous_visible_line_start.
10604 (reseat_at_next_visible_line_start): Likewise.
10605 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10606 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10607 (compute_face_in_buffer): Renamed from
10608 compute_face_at_iterator_position.
10609 (compute_face_in_string): Renamed from
10610 compute_face_at_iterator_string_position.
10611 (get_space_width): Renamed from get_iterator_space_width.
10612 (next_overlay_string): Renamed from
10613 set_iterator_to_next_overlay_string.
10614 (get_overlay_strings): Renamed from
10615 get_overlay_strings_at_iterator_position.
10616 (restore_overlay_strings): Renamed from
10617 setup_overlay_strings_from_glyph_pos.
10618 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10619 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10620 (init_to_row_start): Renamed from init_iterator_to_row_start.
10621 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10622
10623 * xterm.c: Merge with 20.2.97.
10624 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10625
10626 * dispextern.h (struct glyph): Replace text_pos position with
10627 simple charpos.
10628
10629 * xdisp.c (this_line_start_pos): Use struct text_pos.
10630 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10631 (enum move_it_result): Renamed from move_iterator_result.
10632 (string_pos_nchars_ahead): Compute text_pos in a string from a
10633 known text_pos plus a character delta.
10634 (string_pos): Compute text_pos in string from charpos.
10635 (c_string_pos): Likewise for a C string.
10636 (number_of_chars): Return number of characters in a possibly
10637 multi-byte C string.
10638 (check_it): Renamed from check_iterator. Check that charpos and
10639 bytepos are in sync.
10640 (push_it): Renamed from save_iterator_settings.
10641 (pop_it): Renamed from restore_iterator_settings.
10642 (move_it_.*): Renamed from move_iterator_.*.
10643 (charset_at_position): Take charpos/bytepos into account.
10644 (back_to_previous_line_start): Set iterator to previous line start.
10645 (forward_to_next_line_start): Set iterator to next line start.
427ec082 10646 (back_to_previous_visible_line_start): Renamed from
26901792
DL
10647 move_iterator_previous_visible_line_start.
10648 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10649 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10650 Handle charpos/bytepos.
10651 (compute_face_at_iterator_position): Handle charpos/bytepos.
10652 (compute_face_at_iterator_string_position): Likewise.
10653 (get_iterator_space_width): Likewise.
10654 (load_overlay_strings): Likewise.
10655 (get_overlay_strings_at_iterator_position): Likewise.
10656 (reseat_iterator): Take a text_pos position argument.
10657 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10658 bytepos.
10659 (init_iterator): Take additional bytepos parameter.
10660 (reseat_iterator_to_string): Handle charpos/bytepos.
10661 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10662 (next_element_from_string): Handle charpos/bytepos.
10663 (next_element_from_c_string): Likewise.
10664 (fill_iterator_from_glyph_property): Likewise.
10665 (next_element_from_buffer): Likewise.
10666 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10667 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10668 (move_it_to): Likewise.
10669 (move_it_vertically_backward): Likewise.
10670 (move_it_vertically): Likewise.
10671 (move_it_by_lines): Likewise.
10672 (hscroll_window_tree): Likewise.
10673 (redisplay_internal): Likewise.
10674 (set_cursor_from_row): Likewise.
10675 (redisplay_window): Likewise.
10676 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10677 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10678 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10679 (try_window_id): Handle charpos/bytepos.
10680 (Ftrace_redisplay_toggle): Return Qnil.
10681 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10682 (insert_left_trunc_glyphs): Likewise.
10683
10684 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10685 do a real merge).
10686 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10687 (increment_glyph_row_buffer_positions): Ditto.
10688 (copy_glyph_row_contents): Ditto.
10689 (check_matrix_invariants): Add additional checks for charpos/
10690 bytepos consistency.
10691 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 10692 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
10693 `direction-reversed' in #if 0.
10694
10695 * xterm.h: Merge with 20.2.97.
427ec082 10696
26901792
DL
10697 * frame.h: Merge with 20.2.97.
10698
10699 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10700
10701 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10702 start.
10703 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10704 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10705 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10706 (struct it): Various members renamed from .*pos to .*charpos.
10707 (IT_CHARPOS): Access current buffer character position of an
10708 iterator.
10709 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10710 (IT_STRING_CHARPOS): Access current string character position of
10711 an iterator.
10712 (IT_STRING_BYTEPOS): Access current string byte position of
10713 an iterator.
10714 (globally): Add function prototypes from 20.2.97.
10715
10716 * everywhere: Use P_ instead of PROTO for function prototypes
10717 because everyone else seems to use P_.
10718
10719 * dispextern.h (struct text_pos): Structure describing a charpos/
10720 bytepos position in text.
10721 (BYTEPOS): Access the byte position part of a text_pos.
10722 (CHARPOS): Likewise for the character position.
10723 (SET_TEXT_POS): Set a text_pos from a character and byte position.
10724 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
10725 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
10726 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
10727 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
10728 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
10729 for buffer and string positions.
10730 (struct glyph): Use text_pos.
10731 (struct it): Renamed from display_iterator. Use text_pos.
10732
107331998-07-23 Gerd Moellmann <gerd@gnu.org>
10734
10735 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
10736 pixmap.
10737
107381998-07-21 Gerd Moellmann <gerd@gnu.org>
10739
10740 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
10741 * xterm.c (x_draw_row_bitmaps): Use it.
10742 * dispnew.c (row_equal_p): Ditto.
10743 (update_window_line): Ditto.
10744
10745 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
10746 flag of images.
10747
10748 * dispextern.h (struct image): Removed member loading_failed_p.
10749 It's probably better to have the chance to try to load an image
10750 again.
10751
107521998-07-20 Gerd Moellmann <gerd@gnu.org>
10753
10754 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
10755 at ZV if `indicate-zv-lines' is non-nil.
10756 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
10757
10758 * dispnew.c (row_equal_p): Compare displays_text_p and
10759 ends_at_zv_p flags of rows.
10760 (update_window_line): Ditto.
10761
10762 * buffer.h (struct buffer): New member indicate_zv_lines.
10763
10764 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
10765 (init_buffer_once): New variable `default-indicate-zv-lines'.
10766 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
10767
10768 * xdisp.c (redisplay_window): Don't try moving the cursor
10769 if current glyph row w->last_cursor.vpos isn't enabled.
10770
10771 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
10772
10773 * window.c (Fset_window_vscroll): Allow only negative scroll
10774 values. Others don't seem to make sense, and this way it's easy
10775 to restore a vscroll of zero.
10776
10777 * xterm.c (x_inverted_image_mask): Check that pixmap could be
10778 allocated.
10779 (x_draw_image_glyph_string_background): Don't clip if pixmap
10780 could not be created.
10781
10782 * xfns.c (xbm_load_image_from_file): Check that pixmap could
10783 be created.
10784 (xbm_load): Ditto.
10785 (gs_load): Ditto.
10786
10787 * xterm.c (x_get_glyph_overhangs): Take image and stretch
10788 glyphs into account.
10789
10790 * xfaces.c (realize_default_face): Don't set font family of
10791 the default face from the fontset alias name for `fontset-startup'.
10792
10793 * xfns.c (gs_load): Pass frame's pixel foreground and background
10794 color to the Lisp loader.
10795
107961998-07-19 Gerd Moellmann <gerd@gnu.org>
10797
10798 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
10799 libtiff34.
10800
10801 * configure.in (--with-tiff, HAVE_TIFF): Added.
10802
10803 * config.in (HAVE_TIFF): Added.
10804
10805 * Makefile.in (LIBTIFF): Added.
10806
10807 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
10808
10809 * Makefile.in (LIBJPEG): Added.
10810
10811 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
10812 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
10813 jpeglib.h.
10814
427ec082 10815 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
10816 where the library is installed in /usr/local/lib, e.g. FreeBSD,
10817 configure must be run with `--x-includes=/usr/X11R6/include:
10818 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
10819
108201998-07-18 Gerd Moellmann <gerd@gnu.org>
10821
10822 * config.in (HAVE_JPEG): Added.
10823
10824 * xfns.c (ct_init): Initialize color table used to map RGB colors
10825 from images to X pixel colors.
10826 (ct_free): Free color table.
10827 (ct_lookup): Look an RGB color up.
10828 (ct_allocated_colors): Get vector of allocated colors.
427ec082 10829 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
10830 image specification.
10831 (pbm_scan_number): Scan a decimal ASCII number from a file.
10832 (pbm_load): Load a PPM image.
10833
10834 * window.c (Fset_window_vscroll): Adjust glyph matrix if
10835 necessary. Take canonical character units as parameter.
10836 (Fwindow_vscroll): Return canonical character units.
10837
10838 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
10839 w->dy to display height for which glyph rows must be allocated.
10840
108411998-07-17 Gerd Moellmann <gerd@gnu.org>
10842
10843 * xfaces.c (face_at_string_position): Merge in region face
10844 so that it won't overwrite the font in the region.
10845 (face_at_buffer_position): Ditto.
10846 (realize_basic_faces): Don't realize region face.
10847
10848 * dispextern.h (enum face_id): REGION_FACE_ID removed.
10849
10850 * xterm.c (x_set_glyph_string_background_width): Don't let
10851 cursor face extend to end of line.
10852
10853 * xdisp.c (append_space): If adding space of default face,
10854 make sure glyph ist produced with right face.
10855
10856 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
10857 background color of a glyph string.
10858 (x_draw_glyph_string_background): Call it.
10859 (x_draw_glyph_string_bg_rect): Ditto.
10860 (x_draw_stretch_glyph_string): Ditto.
10861
108621998-07-15 Gerd Moellmann <gerd@gnu.org>
10863
10864 * xdisp.c (init_iterator): Initialize it->current_y to the
10865 window's vscroll w->dy.
10866
10867 * window.c (Fwindow_vscroll): Return number of pixels window
10868 is vscrolled smoothly.
10869 (Fset_window_vscroll): Set the number.
10870
10871 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
10872 to_pos in truncated part of a line.
10873
108741998-07-14 Gerd Moellmann <gerd@gnu.org>
10875
10876 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
10877 doesn't fit on the line, truncate it, despite truncate_lines nil.
10878 (display_line): Ditto.
10879
10880 * xfns.c: Experimental support for Ghostscript images.
10881
10882 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
10883 (XTread_socket): React on events from Ghostscript.
10884 (expose_frame): If width or height are zero, redraw entire frame.
10885 (XTread_socket): Call expose_frame after receiving event from
10886 Ghostscript.
10887
10888 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
10889 for Ghostscript support.
10890
10891 * xdisp.c (redisplay_internal): Return quickly if called
10892 recursively.
10893
10894 * alloc.c (NSTATICS): Increased to 1024.
10895
108961998-07-08 Gerd Moellmann <gerd@gnu.org>
10897
10898 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
10899 iterator's glyph row.
10900 (x_produce_stretch_glyph): Call it.
10901 (x_produce_glyphs): Handle `space-width' property; call
10902 x_append_stretch_glyph.
10903
10904 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
10905 property.
10906 (get_iterator_space_width): Determine value of `space-width'
10907 property at iterator's position.
10908 (reseat_iterator): Call it.
10909 (next_element_from_string): Ditto.
10910 (next_element_from_buffer): Ditto.
10911 (init_iterator): Initialize space_width of iterator.
10912 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
10913 moved, but cursor blinks.
10914 (redisplay_internal): Set w->last_cursor_off_p after update.
10915
10916 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
10917 (struct display_iterator): Add new member space_width.
10918
10919 * window.h (struct window): Add last_cursor_off_p.
10920
109211998-07-07 Gerd Moellmann <gerd@gnu.org>
10922
10923 * Saved.
10924
10925 * window.c (Fpos_visible_in_window_p): Case window not up to
10926 date---return nil if iterator hasn't reached position.
10927
109281998-07-06 Gerd Moellmann <gerd@gnu.org>
10929
10930 * xdisp.c (text_outside_line_unchanged_p): Fix case that
10931 overlays have changed.
10932 (redisplay_window): Case cursor movement. Don't try it if
10933 last_cursor.vpos is out of range.
10934
10935 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
10936 way, the display optimization for the line containing the cursor
10937 is used more frequently, esp. when we have a blinking cursor.
10938 (display_line): Don't set this_line_.* variables.
10939
10940 * xterm.c (x_redraw_cursor): Removed.
10941 (x_display_and_set_cursor): Set cursor type depending on
10942 cursor_off_p flag of window.
10943
10944 * dispnew.c (redraw_cursor_hook): Removed.
10945 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
10946 member of the selected window.
10947
10948 * xfaces.c (Fface_font): Added for compatibility with 20.2.
10949
10950 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
10951 Return glyph area under x/y.
10952 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
10953
10954 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
10955 after redisplaying.
10956
109571998-07-05 Gerd Moellmann <gerd@gnu.org>
10958
10959 * xdisp.c (text_outside_line_unchanged_p): Test if changes
10960 are all outside of a line of text.
10961 (redisplay_internal): Use it.
10962
109631998-06-30 Gerd Moellmann <gerd@gnu.org>
10964
10965 * xdisp.c (next_element_from_buffer): After skipping over
10966 invisible text, look for the `glyph' property.
10967 (set_iterator_stop_pos): Ignore check positions in front
10968 of an iterator's current position.
10969
10970 * xterm.c (show_mouse_face): Don't act on rows that don't exist
10971 anymore or which are marked as not having valid contents.
10972
10973 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
10974 realized faces if new attribute value is equal to old value.
10975
109761998-06-29 Gerd Moellmann <gerd@gnu.org>
10977
10978 * xfaces.c (Finternal_make_lisp_face): Increment
10979 lface_id_to_name_size when lface_id_to_name is reallocated.
10980
109811998-06-27 Gerd Moellmann <gerd@gnu.org>
10982
10983 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
10984 as minimum of endpos and overlay_pos.
10985 (load_overlay_strings): Set next_overlay_pos of iterator to
10986 -1 if we don't have to check for more overlay strings.
10987
109881998-05-09 Gerd Moellmann <gerd@gnu.org>
10989
10990 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
10991 do anything if iterator is at ZV because scan_buffer doesn't
10992 work otherwise.
10993
10994 * xterm.c (x_encode_char): Inline it.
10995 (x_get_char_font_and_encoding): Simplified.
10996 (x_per_char_metric): Inline it.
10997
10998 * xterm.c (x_draw_glyph_string_relief): Use clipping.
10999
11000 * xdisp.c (get_next_display_element): Check for end of relief
11001 face moved here from next_element_from_buffer.
11002
11003 * xterm.c (x_produce_image_glyph): Add relief thickness.
11004 (x_produce_stretch_glyph): Ditto.
11005
110061998-05-08 Gerd Moellmann <gerd@gnu.org>
11007
11008 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11009 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11010
11011 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11012 from a glyph property.
11013 (x_produce_glyphs): Use it.
11014
11015 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11016
427ec082 11017 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11018 in text area.
11019 (x_produce_glyphs): Ditto.
11020
427ec082 11021 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11022 marginal areas.
11023
427ec082 11024 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11025 background of an image glyph string.
427ec082 11026 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11027 the background of a glyph string.
11028 (x_draw_image_glyph_string_foreground): Draw the foreground of
11029 an image glyph string.
11030 (x_inverted_image_mask): Return the inverted mask of an image.
11031
11032 * xfns.c (x_draw_image): Removed.
11033
11034 * dispextern.h (struct image_type): Remove drawing function.
11035
11036 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11037
11038 * xdisp.c (get_next_display_element): In marginal areas, translate
11039 newlines, tabs, etc. like normal control characters.
11040
11041 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11042 and color.
11043 (free_realized_faces): Set frame garbaged.
11044
11045 * xfaces.c (syms_of_xfaces): Add defsubr for
11046 internal-lisp-face-attribute-values.
11047
110481998-05-07 Gerd Moellmann <gerd@gnu.org>
11049
11050 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11051 full.
11052 (x_produce_image_glyph): Set IT->nglyphs to 1.
11053 (x_draw_image_glyph_string): Use inverted mask to draw background.
11054
11055 * dispextern.h (struct image_type): Additional clipping rect
11056 parameters for drawing functions.
11057
427ec082 11058 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11059 a glyph string.
11060 (x_draw_image_glyph_string): Use it and pass the rect to the
11061 image drawing function.
11062
11063 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11064 first character with `glyph' property as image position. Set
11065 iterator back to that position as long as the image hasn't been
11066 consumed with set_iterator_to_next.
11067 (set_cursor_from_row): Accept when glyph with given position is
11068 not found in the row. Set cursor x to end of line in that case,
11069 so that we can hscroll.
11070 (redisplay_internal): Correct computation of delta by which
11071 positions have changed in redisplay optimization for cursor
11072 row of selected window.
11073
11074 * xdisp.c (display_line): Remove start_pos.
427ec082 11075 (display_line): Fix bug preventing display optimization for
26901792
DL
11076 cursor line of selected window.
11077 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11078 instead.
11079
11080 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11081 (update_text_area): Take glyph pixel width into account
11082 when trying to find a resync point.
11083 (row_equal_p): Compare glyphs in all areas.
11084
110851998-05-06 Gerd Moellmann <gerd@gnu.org>
11086
11087 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11088
11089 * dispextern.h (struct glyph_row): Use unsigned hash value.
11090
11091 * xdisp.c (display_line): Simplified and made faster by setting
11092 the cursor with set_cursor_from_row.
11093 (set_cursor_from_row): Handle rows of desired matrix.
11094
110951998-05-05 Gerd Moellmann <gerd@gnu.org>
11096
11097 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11098 with type != CHAR_GLYPH.
11099 (fill_iterator_from_glyph_property): Return void. Set
11100 method to next_element_from_image.
11101 (next_element_from_image): Dummy function for delivering a
11102 single image id.
11103 (set_iterator_to_next): Add method next_element_from_image.
11104 (redisplay_window): When recentering, and cursor vpos is -1
11105 after display, assume middle of window is in first line displayed
11106 in window, and display again.
427ec082 11107 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11108 the position of the first character having the glyph property.
11109
11110 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11111 * xfns.c (x_draw_image): Use it.
11112 * xterm.c (x_produce_image_glyph): Use it.
11113
11114 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11115
11116 * Makefile.in: Extraneous #define of LIBXPM removed.
11117
11118 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11119 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11120 stretch glyph.
11121 (x_compute_glyph_string_overhangs): Compute overhangs only
11122 for text glyph strings.
11123 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11124 (x_draw_glyph_string): Call it.
11125
11126 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11127 (struct glyph): Add sub-structure for stretchable glyphs.
11128 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11129
11130 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11131 #ifdef HAVE_FACES.
11132
11133 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11134
11135 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11136 setup_iterator_from_glyph_property. Don't do it for terminal
11137 frames.
11138
11139 * xterm.c (x_produce_image_glyph): Produce glyph for image
11140 that can't be loaded.
11141
11142 * xfns.c (lookup_image): If image can't be loaded, set its
11143 width and height so that we can draw a rectangle.
11144 (x_draw_image): Draw a rectangle for images that don't have
11145 a pixmap.
11146 (make_image): Set hash value.
11147 (image_spec_equal_p): Use image_spec_value.
11148
11149 * xterm.c (expose_frame): Don't try to redraw if basic faces
11150 haven't benn realized yet.
427ec082 11151 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11152 is not as tall as row.
11153
111541998-05-04 Gerd Moellmann <gerd@gnu.org>
11155
11156 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11157 (LIBX)[HAVE_X11]: Add LIBXPM.
11158
11159 * xfns.c (xpm_image_p): Implementation of image type functions
11160 for XPM.
11161 (xpm_load): Ditto.
11162
11163 * dispextern.h (struct image): Add mask pixmap for XPM.
11164
11165 * xfns.c (x_draw_image): Handle images with masks.
11166
11167 * configure.in: --with-xpm added. Code detecting -lXpm added.
11168
11169 * config.in: Add HAVE_XPM.
11170
11171 * xfns.c (xbm_draw): Removed.
11172 (x_draw_image): Default implementation for drawing images.
11173 (xbm_keyword_index): Remove XBM_DEPTH.
11174 (xbm_format): Remove `:depth'.
11175 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11176 (xbm_load_image_from_file): Added for the same reason.
26901792 11177
427ec082 11178 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11179 glyph string.
11180 (x_draw_image_glyph_string): Pass ybase to image draw function.
11181
11182 * xfns.c (make_image): Set default baseline.
11183
11184 * xterm.c (x_produce_image_glyph): Compute ascent of image
11185 from its height and baseline percentage.
11186
11187 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11188 (xbm_format): Add description for `:baseline'.
11189 (xbm_image_spec_from_file): Add keywords from original spec to
11190 result.
11191 (xbm_load): Set baseline of image.
11192 (xbm_image_p): Check range for baseline.
11193
11194 * dispextern.h (struct image): Add member baseline.
11195
11196 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11197
11198 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11199
11200 * xdisp.c (get_next_display_element): Do character translations
11201 only if delivering characters.
11202
112031998-05-03 Gerd Moellmann <gerd@gnu.org>
11204
427ec082 11205 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11206 DISP_CHARACTER.
11207
11208 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11209 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11210
112111998-05-02 Gerd Moellmann <gerd@gnu.org>
11212
11213 * xfns.c (prepare_image_for_display): Set image timestamp.
11214 (clear_image_cache): Clear images if image's timestamp +
11215 Vimage_eviction_seconds is > now.
11216 (syms_of_xfns): New variables image-eviction-seconds, and
11217 image-types.
11218 (add_image_format): Add to image-types.
11219 (xbm_load): Support new image spec format.
11220 (x_alloc_image_color): Allocate a color for an image.
11221
11222 * dispextern.h (struct image): Add timestamp.
11223
11224 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11225 vectors of bool-vectors.
11226 (xbm_lisp_object_from_file): Build new format image spec.
11227
112281998-05-01 Gerd Moellmann <gerd@gnu.org>
11229
11230 * xfaces.c (init_frame_faces): Initialize image cache.
11231 (free_frame_faces): Free it.
11232
11233 * xterm.c (x_delete_display): Don't free image cache.
11234
11235 * emacs.c (main): Call init_xfns.
11236
112371998-04-30 Gerd Moellmann <gerd@gnu.org>
11238
11239 * alloc.c (mark_object): Mark objects in image cache.
11240
427ec082 11241 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11242 widget_store_internal_border_width.
11243
11244 * widget.c (widget_store_internal_border): Return void.
11245
11246 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11247 void.
11248 (init_x_parm_symbols): Return void.
11249 (x_report_frame_params): Ditto.
11250 (x_set_border_pixel): Ditto.
11251 (syms_of_xfns): Ditto.
11252 (x_destroy_all_bitmaps): Use xfree instead of free.
11253
11254 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11255
11256 * xterm.c (x_term_init): Initialize image_cache of display info.
11257 (x_delete_display): Free image cache.
11258
11259 * xterm.h (struct x_display_info): Add image_cache.
11260
11261 * xfns.c (make_image_cache): Allocate a new image cache.
11262 (free_image_cache): Free an image cache.
11263 (make_image): Allocate an image.
11264 (free_image): Free an image.
11265
11266 * dispextern.h (struct image): Structure describing an image.
11267 (struct image_cache): Structure describing an image cache.
11268
112691998-04-29 Gerd Moellmann <gerd@gnu.org>
11270
11271 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11272 non-zero if iterator is filled with something to return.
11273 (next_element_from_buffer): Immediately return if
11274 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11275 (next_element_from_string): Likewise.
11276
11277 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11278
11279 * dispextern.h (struct glyph): Add pixmap_id.
11280 (display_element_type): Add DISP_PIXMAP.
11281
11282 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11283 malloc/free.
11284
11285 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11286 (clear_face_cache): Call it.
11287
11288 * xterm.c (x_query_font): Don't look at empty font table slots.
11289 (x_compute_min_glyph_bounds): Likewise.
11290 (x_term_init): Initialize font_table to null.
11291 (x_load_font): Change allocation of font_info structures so
11292 that it is possible to free fonts.
11293
427ec082 11294 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11295 Only free fonts from filled font table entries.
11296
11297 * xfaces.c (best_matching_font): Support use of scalable fonts.
11298 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11299
11300 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11301 and resy.
11302 * xterm.c (x_term_init): Compute resx and resy.
11303
11304 * xfaces.c (split_font_name): Don't reject scalable fonts.
11305
427ec082 11306 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11307 in #if 0.
11308
11309 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11310 point size cannot be determined.
11311
11312 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11313 width over all fonts on a frame.
11314 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11315 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11316 macros.
11317
11318 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11319 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11320 (x_load_font): Use x_compute_min_char_bounds.
11321
11322 * xterm.h (struct x_display_info): New members smallest_char_width
11323 and smallest_font_height.
11324
113251998-04-28 Gerd Moellmann <gerd@gnu.org>
11326
11327 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11328 the same name if GC of face is zero.
11329
11330 * dispextern.h (struct face): Member non_ascii_gc removed.
11331
11332 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11333 for characters < 0177 in default face. Prepare face for
26901792
DL
11334 display before returning it.
11335 (x_produce_glyphs): Use it->charset.
11336 (x_get_char_font_and_encoding): Simplified.
11337 (x_encode_char): Remove parameter `font'.
11338
11339 * xfaces.c (choose_face_font): If registry from charset symbol
11340 doesn't contain a `-', make it a pattern by appending "*-*".
11341
11342 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11343 glyph_check_pos computation to character boundary.
11344
113451998-04-27 Gerd Moellmann <gerd@gnu.org>
11346
11347 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11348
11349 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11350 ASCII face for a given Lisp face id.
11351
11352 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11353 account.
427ec082 11354 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11355 new position is < original position.
11356 (check_iterator_glyph_property): Handle glyph property in strings.
11357 (next_element_from_string): Call above function.
11358 (next_element_from_display_vector): Handle faces in glyphs.
11359 (get_next_display_element): Set face_id of glyphs for
11360 control chars to zero.
11361
11362 * Makefile.in (term.o): Add dependency on dispextern.h.
11363
11364 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11365 (display_line): Handle marginal areas.
11366 (move_iterator_in_display_line_to): Likewise.
11367
11368 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11369
11370 * xfaces.c (face_at_buffer_position): Don't merge with nil
11371 text property.
11372 (face_at_string_position): Ditto.
11373
11374 * dispextern.h (struct display_iterator): Use a stack of saved
11375 values instead of saving check positions etc. individually.
11376
11377 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11378 maybe pop the iterator's stack.
11379 (save_iterator_settings): Push a value on iterator's stack.
11380 (get_overlay_strings_at_iterator_position): Use it.
11381 (restore_iterator_settings): Pop the stack.
11382 (set_iterator_to_next_overlay_string): Use it.
11383
11384 * xfaces.c (try_font_list): Use alternative font families.
11385
113861998-04-26 Gerd Moellmann <gerd@gnu.org>
11387
11388 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11389 font selection matches fonts.
11390 (Fface_font_sort_order): Return the font sort order.
11391 (best_matching_font): Find best matching font based on sort order.
11392 (cmp_font_names): Sort by given sort order.
11393
11394 * dispextern.h (struct display_iterator): New member faces_p.
11395 * xdisp.c (init_iterator): Initialize it->faces_p.
11396 (compute_face_at_iterator_string_position): Use it.
11397 (compute_face_at_iterator_position): Use it.
11398 (init_iterator): Use it.
11399 (display_mode_line): Ditto.
11400
11401 * xdisp.c (get_next_display_element): Put code choosing a face
11402 when the charset changes in #ifdef HAVE_FACES.
11403
427ec082 11404 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11405 lookup_face_for_charset.
11406
11407 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11408 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11409
114101998-04-25 Gerd Moellmann <gerd@gnu.org>
11411
11412 * xfaces.c (best_matching_font): Return the name of the best
11413 matching font in an array of font_name structures.
11414 (choose_face_font): Use it.
11415 (choose_face_fontset_font): Use it.
11416 (find_best_weight_font): If final font found has same weight as
11417 the font we started with, return the original font because it is a
11418 better match for the resolution of the display.
11419 (find_best_slant_font): Likewise.
11420 (merge_face_vector_with_property): Check more invalid attribute
11421 values.
11422 (lface_suitable_for_charset_p): Replaced by a macro with the same
11423 name in upper-case.
11424
114251998-04-24 Gerd Moellmann <gerd@gnu.org>
11426
11427 * dispextern.h (struct face): Member
11428 fontset_chosen_for_realization_p removed.
11429
11430 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11431 end of the collision list, so that we find more specific faces
11432 first.
11433 (lookup_face_for_charset): Look up a new face if face->fontset >=
11434 0, and charset != CHARSET_COMPOSITION.
11435
11436 * xfaces.c (split_font_name): Return zero if point size of font
11437 couldn't be computed.
11438 (realize_default_face): Use ASCII font of a fontset to determine
11439 font-related attributes of the default face.
11440 (face_fontset): Return fontset id for face family.
11441 (font_list): Additional parameter font_pattern. If non-nil,
11442 return fonts matching that pattern.
11443
114441998-04-23 Gerd Moellmann <gerd@gnu.org>
11445
11446 * xfaces.c (choose_face_fontset): If new fontset cannot be
11447 constructed, or fontset name cannot be split, return the id of the
11448 standard fontset.
11449
11450 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11451 When Emacs starts, it may be called for the initial frame which
11452 isn't an X frame.
11453
11454 * dispextern.h (struct face): New members foreground_defaulted_p,
11455 background_defaulted_p.
11456 (struct face): Members `mask' and `cache' removed.
11457
11458 * xfaces.c (load_color): Set them.
11459 (free_face_colors): Check them.
427ec082 11460 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11461 font unknown.
11462
11463 * xfaces.c (free_font): Removed.
11464 (load_face_font_or_fontset): Renamed from load_font.
11465 (load_face_font_or_fontset): Use message2 instead of signalling.
11466 (load_color): Likewise.
11467 (load_pixmap): Likewise.
11468
11469 * xterm.h (struct x_display_info): Add screen_dpi.
11470 * xterm.c (x_term_init): Initialize it.
11471 * xfaces.c (xlfd_point_size): Use it.
11472 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11473 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11474 similar to that of the frame appear first in the result.
11475
11476 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11477 is set for the face to cache, add it to the end of the collision
11478 list.
11479 (try_font_list): If fonts for given family and registry cannot
11480 be found, first try to keep the registry, and choose a different
11481 family.
11482 (choose_face_font): Allow nfonts == 0.
11483 (try_font_list): Give up if no font matches given registry.
11484
114851998-04-22 Gerd Moellmann <gerd@gnu.org>
11486
11487 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11488 font info id of the face.
11489
11490 * xfaces.c (load_font): Set font_info_id.
11491 (realize_face): Ditto.
11492
11493 * dispextern.h (struct face): Change member font_info to
11494 font_info_id.
11495
11496 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11497 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11498
11499 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11500 isn't ASCII, get the ASCII face before adding a space.
11501 (append_space): Likewise.
11502 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11503 to -1 so that it will compute the right face for the truncation
11504 glyphs.
11505
11506 * xfaces.c (realize_face): Set
11507 face->fontset_chosen_for_realization_p.
11508 (lookup_face_for_charset): If fontset wasn't specified originally
11509 and new charset != CHARSET_COMPOSITION, get a new face for that
11510 charset.
11511
11512 * dispextern.h (struct face): New member
11513 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11514 realize_face has chosen a fontset to display composite characters
11515 for a Lisp face not specifying a fontset.
11516
11517 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11518 face and line already filled here. Don't do anything if current
11519 face hasn't a relief or has a background equal to the frame
11520 background.
11521
11522 * xfaces.c (split_font_name): Additional parameter numeric_p.
11523 Don't compute numeric values if it is non-zero.
11524 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11525 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11526 font whose name cannot be split into fields.
11527
115281998-04-21 Gerd Moellmann <gerd@gnu.org>
11529
427ec082 11530 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11531 possibly using less restrictive patterns.
11532 (choose_face_font): Use it.
11533
11534 * xterm.c (x_get_char_font_and_encoding): For charset !=
11535 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11536
11537 * dispextern.h (struct face): New member font_info.
11538
11539 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11540 specifying a fontset as well as those not having a fontset.
11541 (free_font): Make it empty.
11542 (realize_face): Use changed load_font.
11543
11544 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11545 fit for charset, get the right one.
11546
11547 * xfaces.c (load_font): Take frame and name parameter, return
11548 font.
11549 (free_font): Likewise.
11550 (split_font_name): Compute numeric values for height, swidth etc.
11551 (cmp_font_names): Use them.
11552 (find_best_width_font): Ditto.
11553 (find_best_height_font): Ditto.
11554 (find_best_weight_font): Ditto.
11555 (find_best_slant_font): Ditto.
11556 (lface_hash): Add weight, slant, swidth and relief to hash value.
11557 (lface_equal_p): Make it faster.
11558 (lface_from_symbol): Use assq_no_quit.
11559 (Fnote_default_face_changed): Removed.
11560 (cmp_font_names): Use strcmp instead of xstricmp.
11561 (face_charset_registries): Removed.
11562
115631998-04-20 Gerd Moellmann <gerd@gnu.org>
11564
11565 * frame.h (CHECK_FRAME): Give this macro a statement form.
11566 (CHECK_LIVE_FRAME): Ditto.
11567
11568 * xfaces.c (find_best_width_font): Find the best matching font
11569 for a given width.
11570 (find_best_height_font): Likewise for height.
11571 (find_best_weight_font): Likewise for weight.
11572 (find_best_slant_font): Likewise for slant.
11573 (choose_face_font): Use them.
11574 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11575 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11576 global face attributes.
11577
11578 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11579 Lisp face attributes.
11580
115811998-04-19 Gerd Moellmann <gerd@gnu.org>
11582
11583 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11584 and :italic for compatibility.
11585 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11586 :bold and :italic. Handle boolean resource values for
26901792
DL
11587 :underline and :italic.
11588
11589 * xfns.c (display_x_get_resource): Make it externally visible.
11590
11591 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11592 If that frame is non-null, return the frame-local face.
11593 (Finternal_make_lisp_face): Additional frame argument.
11594 (lface_attributes): Get face attributes from global and frame-local
11595 definitions.
11596 (Finternal_lisp_face_equal_p): Additional frame argument.
11597 (merge_lisp_face_vector_with_property): Ditto.
11598 (Frealize_basic_faces): Removed.
11599 (Finternal_get_lisp_face_attribute): Additional frame argument.
11600 (Finternal_lisp_face_p): Ditto.
11601 (load_color) [MSDOS]: Removed because it isn't clear how
11602 to do this for MS-DOS.
11603
11604 * xfaces.c (lface_from_symbol): Get global face definition
11605 from face-global-alist.
11606
11607 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11608 as values for :underline and :inverse-video.
11609 (Finternal_set_lisp_face_attribute): Allow nil values.
11610
116111998-04-17 Gerd Moellmann <gerd@gnu.org>
11612
11613 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11614
11615 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11616 (Finternal_make_lisp_face): Add new face to Vall_faces.
11617
11618 * xdisp.c (echo_area_display): Remove code recomputing faces.
11619 (redisplay_internal): Ditto.
11620 (init_iterator): Do it here.
11621
11622 * xfaces.c (choose_face_font): Check that swidth doesn't change
11623 for subusequent attributes.
11624 (xlfd_point_size): Return int.
11625
11626 * xdisp.c (redisplay_internal, echo_area-display): If realized
11627 faces have been cleared, call recompute_basic_faces.
11628
11629 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11630 face_attributes_changed_p.
427ec082 11631 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
11632 all frames.
11633 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11634
11635 * xdisp.c (redisplay_internal): If face attributes have been
11636 changed since the last redisplay, recompute basic faces.
11637 (echo_area_display): Ditto.
11638
11639 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11640
11641 * xfaces.c (min_char_bounds): If face cache not yet present,
11642 don't try to get font dimensions from faces.
11643
11644 * xterm.c (x_frame_mode_line_height): If face cache not present
11645 set, return default height.
11646
11647 * alloc.c (mark_face_cache): Check for null faces. Correct
11648 index bug.
11649
11650 * dispextern.h (struct face): Renamed from struct rface. Member
11651 underline renamed underline_p. Make it a bit-field.
11652
11653 * xfaces.c (init_frame_faces): Allocate face cache.
11654 (free_frame_faces): Free face cache.
11655 (recompute_basic_faces): Realize basic faces only if face cache is
11656 allocated, i.e. after init_frame_faces has been called.
11657
11658 * frame.c (make_frame): Initialze face cache with null.
11659
11660 * xfaces.c (same_size_fonts): Removed.
11661
427ec082 11662 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
11663 s->gc != 0.
11664 (x_set_mouse_face_gc): Ditto.
11665 (x_set_mode_line_face_gc): Ditto.
11666
427ec082
SS
11667 * xfaces.c (realize_default_face): Return int. Value is
11668 zero if frame params don't contain enough information to
26901792
DL
11669 realize the default face.
11670 (realize_basic_faces): Ditto.
11671 (init_frame_faces): Realize basic faces.
11672
11673 * xfns.c (x_set_font): First store real font name in frame
11674 parameters, then call recompute_basic_faces.
11675
11676 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11677
116781998-04-16 Gerd Moellmann <gerd@gnu.org>
11679
11680 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11681
11682 * xfns.c (Fx_face_fixed_p): Removed.
11683 (Fx_list_fonts): Moved to xfaces.c.
11684
11685 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11686 face_at_buffer_position. Parameter charset removed; always
11687 compute face for CHARSET_ASCII.
11688 (face_at_string_position): Renamed from
11689 compute_face_at_string_pos. Parameter charset removed; always
11690 compute for CHARSET_ASCII.
427ec082 11691 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
11692 face_cache.
11693 (lookup_face): Ditto.
11694 (compute_char_face): Renamed from compute_glyph_face.
11695
11696 * xdisp.c (init_iterator): Initialize charset member.
11697 (reseat_iterator_to_string): Ditto.
11698 (get_charset_at_buffer_position): Determine charset at
11699 buffer position in current_buffer.
11700 (reseat_iterator): Call above function.
11701 (compute_face_at_iterator_position): Call
11702 compute_face_at_buffer_pos.
11703 (compute_face_at_iterator_string_position): Call
11704 compute_face_at_string_pos.
11705 (get_face_from_id): Removed.
11706 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11707 Call get_charset_at_buffer_position.
11708 (reseat_iterator): Determine face if charset at pos differs
11709 from iterator's charset.
11710 (reseat_iterator_to_glyph_pos): Removed.
11711
11712 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11713 Determine charset from buffer position.
11714 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11715 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11716
11717 * dispextern.h (struct display_iterator): Add member charset.
11718
117191998-04-15 Gerd Moellmann <gerd@gnu.org>
11720
11721 * xfaces.c (compute_char_face): Removed.
11722
11723 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
11724 with new parameter list.
11725
11726 * xfaces.c (region_face): Removed.
11727 (allocate_face): Removed.
11728 (copy_face): Ditto.
11729 (face_eql): Removed.
11730 (intern_face): Removed.
11731 (clear_face_cache): Removed.
11732 (load_font): Ditto.
11733 (unload_font): Ditto.
11734 (load_color): Ditto.
11735 (unload_color): Ditto.
11736 (new_computed_face): Ditto.
11737 (intern_computed_face): Ditto.
11738 (ensure_face_ready): Ditto.
11739 (merge_faces): Ditto.
11740 (compute_base_face): Ditto.
11741 (merge_face_list): Ditto.
11742 (Fmake_face_internal): Removed.
11743 (Fset_face_attribute_internal): Ditto.
11744 (face_name_id_number): Removed.
11745 (Fframe_face_alist): Ditto.
11746 (Fset_frame_face_alist): Ditto.
11747 (Finternal_next_face_id): Ditto.
11748
11749 * xterm.h (struct x_output): Remove computed_faces, and
11750 param_faces. Remove macros accessing them.
11751
11752 * xfaces.c: Entirely new face implementation added.
11753
117541998-04-11 Gerd Moellmann <gerd@gnu.org>
11755
11756 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
11757 `charpos'.
11758
117591998-04-10 Gerd Moellmann <gerd@gnu.org>
11760
11761 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
11762 scroll bar window to reduce flickering. Clear entire height.
11763
11764 * xdisp.c (move_iterator_vertically_backward): Set iterator's
11765 current_x and hpos to zero after moving to previous line
11766 start.
11767
117681998-04-03 Gerd Moellmann <gerd@gnu.org>
11769
11770 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
11771
11772 * xfaces.c (xlfd_point_size): Compute relative point size of
11773 fonts from font and frame resolution.
11774 (sort_fonts): New function to sort fonts, temporarily setting
11775 font_frame to the frame in effect.
11776 (xlfd_point_size): Take additional frame parameter to be able
11777 to get at the display's resolution.
11778
11779 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
11780 BLACK_PIX_DEFAULT.
11781 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
11782 screen of display.
11783
117841998-03-31 Gerd Moellmann <gerd@gnu.org>
11785
11786 * xfaces.c (choose_face_fontset): Instantiate fontsets.
11787
11788 * fontset.h: Add external declarations for Vfontset_alias_alist
11789 and Vglobal_fontset_alist.
11790
11791 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
11792 (realize_default_face): If frame parameters contain an artificial
11793 font name naming a fontset, set the family of the default face to
11794 the fontset name given by the registry.
11795
11796 * Makefile.in (alloc.o): Add dependency to dispextern.h.
11797
117981998-03-22 Gerd Moellmann <gerd@gnu.org>
11799
11800 * alloc.c (mark_object): Add function prototype. Add cast to
11801 Lisp_Object pointer in call to mark_object for symbol names
11802 because this otherwise gives a warning from gcc 2.8.1.
11803 (mark_face_cache): Mark Lisp objects in realized faces.
11804
118051998-03-19 Gerd Moellmann <gerd@gnu.org>
11806
11807 * frame.h (struct frame): Add member face_cache.
11808
11809 * alloc.c (mark_object): Mark face cache.
11810 (mark_face_cache): Mark Lisp faces in face cache of frame.
11811
11812 * frame.c (make_frame): Initialize face_cache.
11813 (Fdelete_frame): Free it.
11814
118151998-03-18 Gerd Moellmann <gerd@gnu.org>
11816
11817 * xfaces.c: Very first skeleton of functions for face realization,
11818 face merging, face cache etc.
11819
11820 * dispextern.h (struct rface): Realized faces. Will replace
11821 struct face when tested.
11822 (struct face_cache): Realized face caches.
11823
11824 * xdisp.c (init_iterator): Initialize area member of display
11825 iterator.
11826
118271998-03-17 Gerd Moellmann <gerd@gnu.org>
11828
11829 * xterm.c (x_append_glyph): Use it->area to store glyphs.
11830
11831 * dispextern.h (struct display_iterator): New member area.
11832
11833 * xterm.c (note_overwritten_text_cursor): Note when the text
11834 cursor of a window is overwritten.
11835
11836 * xdisp.c (set_cursor_from_row): If PT is not found in the
11837 row, display the cursor at the start of the row.
11838
11839 * dispnew.c (direct_output_forward_char): Call
11840 set_cursor_from_row.
11841
11842 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
11843 position is not in an overlay string, set iterator's position and
11844 method explicitly so.
427ec082 11845 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
11846 Make it externally visible.
11847 (redisplay_window): Call set_cursor_from_row so that there is only
11848 one place where the cursor position is calculated from a current
11849 row.
11850
11851 * dispextern.h (struct display_iterator): New member
11852 overlay_strings_at_end_processed_p.
11853
11854 * xdisp.c (check_iterator): Perform sanity checks on
11855 display_iterators.
11856 (next_element_from_buffer): Check for overlay strings at ZV.
11857
118581998-03-16 Gerd Moellmann <gerd@gnu.org>
11859
11860 * buffer.c (init_buffer_once): Add left_margin_width and
11861 right_margin_width to buffer_local_flags.
11862
11863 * dispnew.c (margin_glyphs_to_reserve): Function computing
11864 number of glyphs to reserve for a marginal area.
11865 (adjust_glyph_matrix): Call it.
11866 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
11867 is not alive.
11868
11869 * window.c (Fset_window_margins): Allow floats.
11870
11871 * buffer.c (syms_of_buffer): Add buffer-local variables
11872 left-margin-width and right-margin-width. Add defaults
11873 default-left-margin-width and default-right-margin-width.
11874
11875 * buffer.h (struct buffer): New members left_margin_width
11876 and right_margin_width.
11877
11878 * window.c (Fset_window_margins): Make window the last and
11879 optional argument.
11880
11881 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
11882 flag no_marginal_areas_p differently.
11883 (x_clear_end_of_line): Ditto.
11884 (x_draw_glyph_string_relief): Compute width of relief differently
11885 for rows with flag no_marginal_areas_p.
11886
11887 * dispnew.c (update_window_line): Update marginal areas only
11888 for rows that don't have no_marginal_areas_p set.
11889
11890 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
11891 (display_menu_bar): Ditto.
11892
11893 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
11894
11895 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
11896 marginal areas in window-based redisplay.
11897
11898 * dispextern.h (struct glyph_matrix): New members
11899 left_margin_glyphs and right_margin_glyphs.
11900
119011998-03-15 Gerd Moellmann <gerd@gnu.org>
11902
11903 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
11904
11905 * charset.c (non_ascii_char_to_string): Use char type parameters
11906 because the function is used that way from outside. Use unsigned
11907 char internally.
11908
11909 * window.c (change_window_height): Return void.
11910 (make_dummy_parent): Return void.
11911 (init_window_once): Return void.
11912 (syms_of_window): Ditto.
11913 (keys_of_window): Ditto.
11914 (delete_window): Correct return with and without value.
11915
11916 * buffer.c (record_buffer): Return void.
11917
11918 * marker.c (unchain_marker): Return void.
11919
11920 * window.c (unshow_buffer): Return void.
11921 (replace_window): Ditto.
11922 (delete_window): Ditto.
11923
11924 * term.c (delete_glyphs_hook): Void return type.
11925 (ring_bell_hook): Ditto.
11926 (set_terminal_window_hook): Ditto.
11927
11928 * sysdep.c (init_sigio): Return void.
11929
11930 * xterm.c (x_set_window_size): Return void.
11931 (x_calc_absolute_position): Ditto.
11932 (x_set_offset): Ditto.
11933 (x_focus_on_frame): Ditto.
11934 (x_unfocus_frame): Ditto.
11935 (x_make_frame_visible): Ditto.
11936 (x_make_frame_invisible): Ditto.
11937 (x_iconify_frame): Ditto.
11938 (x_destroy_window): Ditto.
11939 (x_wm_set_window_state): Ditto.
11940 (x_wm_set_icon_pixmap): Ditto.
11941 (x_wm_set_icon_position): Ditto.
11942 (x_initialize): Ditto.
11943 (x_error_quitter): Ditto.
11944 (x_destroy_window): Use xfree instead of free.
11945
11946 * keyboard.c (clear_waiting_for_input): Return void.
11947
11948 * xterm.c (x_wm_set_size_hint): Return void.
11949 (x_raise_frame): Ditto.
11950 (refreshicon): Ditto.
11951 (x_error_catcher): Ditto.
11952 (x_clear_errors): Ditto.
11953
11954 * keyboard.c (record_asynch_buffer_change): Return void.
11955
11956