(font-lock-fontify-anchored-keywords): Use line-beginning-position.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
8cf8560b
DL
12000-06-23 Dave Love <fx@gnu.org>
2
511c7541
DL
3 * ralloc.c: Maybe include unistd.h
4
8cf8560b
DL
5 * emacs.c (setgrp): Undefine before defining.
6 (malloc_warning, set_time_zone_rule, index): Prototype.
7
8 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
9 HAVE_STRUCT_TIMEZONE.
10
11 * s/osf1.h: Move string.h hack here from alpha.h and make it
12 conditional.
13 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
14 _XOPEN_SOURCE.
15 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
16 (SOCKLEN_TYPE): Don't define.
17
18 * m/alpha.h: Remove string.h hack.
19
20 * s/osf5-0.h: New file.
21
22 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
23 include time.h, done by systime.h.
24 [__FreeBSD__]: Remove redundant includes.
25
26 * callproc.c: (setpgrp): Undefine before defining.
27 (delete_temp_file): Return Qnil to avoid warning.
28
29 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
30
31 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
32 HAVE_X_WINDOWS.
33
34 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
35
36 * composite.h (compose_text): Declare.
37
38 * xterm.c: Don't include sys/types.h unconditionally. Don't
39 protect its inclusion with !USG (following xmenu.c).
40
ea055732
GM
412000-06-23 Gerd Moellmann <gerd@gnu.org>
42
43 * xfns.c (x_create_tip_frame): Initialize frame's colors like
44 in x_create_frame.
45
74b01b80
EZ
462000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
47
48 * coding.c (decode_eol_post_ccl): Special handling for undecided
49 and inconsistent EOL types.
50
64f3a166
GM
512000-06-22 Gerd Moellmann <gerd@gnu.org>
52
16cf31f7
GM
53 * xrdb.c (x_load_resources): Add default resource for scroll bar's
54 trough color and main window's background color.
55
56 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
57 differently.
58
59 * xterm.h (Xt_app_con): External declaration.
60
61 * widget.c (EmacsFrameRealize): Fix typo.
62
486a103d
GM
63 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
64
64f3a166
GM
65 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
66 (handle_invisible_prop): Record the start of invisible text in
67 it->add_overlay_start.
68 (struct overlay_entry): Add member `overlay'.
69 (handle_overlay_change): Simplify.
70 (next_overlay_string): After having processed overlay strings at the
71 end of the buffer, record that fact in
72 it->overlay_strings_at_end_processed_p.
73 (compare_overlay_entries): If before- and after-strings come
74 from the same overlay, let before-strings come first.
75 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
76 (load_overlay_strings): Take it->add_overlay_start into account
77 when adding overlay strings.
78
79 * dispextern.h (struct it): Add member add_overlay_start.
80
bb746ea6
DL
812000-06-22 Dave Love <fx@gnu.org>
82
83 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
84
85 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
86
a8f573f3
KH
872000-06-22 Kenichi Handa <handa@etl.go.jp>
88
89 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
90 is greater than 0.
91
9f2bbc92
DL
922000-06-21 Dave Love <fx@gnu.org>
93
94 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
95
3ee5041c
SM
962000-06-21 Stefan Monnier <monnier@cs.yale.edu>
97
98 * syntax.c (back_comment): Simplify string-parity counting (with
99 the added benefit of handling multiple string-styles as long as
100 they are not intertwined).
101 Jump to the slow code as soon as a comment starter is found in
102 a "string_lossage" position. Fixes the case: " /* " /* " */.
103
4c343001
DL
1042000-06-21 Dave Love <fx@gnu.org>
105
106 * Makefile.in: Use GETLOADAVG_LIBS.
107
108 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
109 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
110
e6365855
SM
1112000-06-20 Stefan Monnier <monnier@cs.yale.edu>
112
113 * syntax.c (describe_syntax): Recognize the `n'estable bit.
114 (Fforward_comment, scan_lists):
115 Check the comstyle of single-char comment-starters.
116 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
117 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
118 Check the comstyle of single-char comment-starters.
119 Clarify control-flow around the Scomment case.
e6365855 120
5700d2cc
DL
1212000-06-20 Dave Love <fx@gnu.org>
122
d355bd8a
SM
123 * fns.c (make_hash_table, maybe_resize_hash_table):
124 Cast arg of next_almost_prime.
5700d2cc
DL
125
126 * tparam.c [emacs]: Include lisp.h.
127
128 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
129 and unistd.h.
130
4a27bdfb
GM
1312000-06-20 Gerd Moellmann <gerd@gnu.org>
132
a61d762c
GM
133 * keyboard.c (adjust_point_for_property): Check if display
134 property should be treated as intangible by looking at its
135 value.
136
137 * xdisp.c (single_display_prop_intangible_p)
138 (display_prop_intangible_p): New functions.
139
140 * dispextern.h (display_prop_intangible_p): Add prototype.
141
142 * xdisp.c (dump_glyph_row): Show type of glyph->object.
143
4a27bdfb
GM
144 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
145 argument to sigprocmask.
146
147 * s/sco5.h (sigblock): Redefined to pass a pointer as second
148 argument to sigprocmask.
149
150 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
151 sigprocmask_set, and pass a pointer to it to sigprocmask.
152
153 * sysdep.c (sigprocmask_set): New variable.
154
155 * fileio.c (make_temp_name): Don't use `%s' in string passed to
156 report_file_error.
157
427ec082
SS
1582000-06-20 Sam Steingold <sds@gnu.org>
159
160 * xrdb.c: Don't declare xmalloc, xrealloc.
161
8972fe79 1622000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
163
164 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
165 (re_comp): Cast gettext return value to avoid complaints when
166 !HAVE_LIBINTL.
167
074b6efe
DL
1682000-06-20 Dave Love <fx@gnu.org>
169
f85c008a
DL
170 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
171 HAVE_GETTIMEOFDAY.
172
5700d2cc 173 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 174
d355bd8a 175 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
176
177 * m/alpha.h: Don't declare xmalloc, xrealloc.
178
0af4f205
DL
179 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
180
181 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
182
183 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
184
185 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
186 HAVE_GETWD.
187
074b6efe
DL
188 * keyboard.h (poll_for_input_1): Declare.
189
190 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
191
192 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
193
194 * doprnt.c: Don't declare xmalloc, xrealloc.
195
196 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
197 (getenv, ctime, getwd): Removed.
198 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
199
200 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
201 x_set_tool_bar_lines.
202
203 * config.in: Add HAVE_GETWD. Move some definitions above
204 machine/system includes.
205
68a5e97b
KH
2062000-06-20 Kenichi Handa <handa@etl.go.jp>
207
95417e1e
KH
208 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
209
68a5e97b
KH
210 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
211 contain information about ENCODING.
212
213 * fontset.c (FONTSET_ASCII): Use the first element of char table
214 for an ASCII font, not defalt slot.
215 (fontset_ref_via_base): If FONTSET doesn't contain information for
216 C, try the default fontset.
217 (make_fontset): Don't copy the default fontset.
218 (fontset_font_pattern): Likewise.
219 (accumulate_font_info): If ELT is nil, use the corresponding
220 element in the default fontset.
221
3b4fa1b2
DL
2222000-06-19 Dave Love <fx@gnu.org>
223
943e731c
DL
224 * syntax.c (Fparse_partial_sexp): Doc fix.
225
226 * regex.h: Test PROTOTYPES as well as __STDC__.
227
3b4fa1b2
DL
228 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
229 errno, strerror. Put text after #endif in comment.
230
231 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
232 pcc).
233
234 * xterm.c (x_frame_of_widget): Likewise.
235
cdf0357b
GM
2362000-06-19 Gerd Moellmann <gerd@gnu.org>
237
238 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
239 to Vfundamental_mode_abbrev_table.
240
241 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
242 bogus objects are marked. This slows down GC by ~80 percent, but
243 it might be worth trying when debugging GC-related problems.
244 This feature requires conservative stack marking to be enabled.
245
246 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
247 returns XLookupChars, reset `modifiers' to zero.
248
998e9f8c
DL
2492000-06-19 Dave Love <fx@gnu.org>
250
251 * mktime.c: Unprotoized.
252
d1504184
GM
2532000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
254
255 * data.c (set_internal): If variable is frame-local,
256 store the new value immediately into the frame parameter alist.
257
140c4ac6
KR
2582000-06-19 Ken Raeburn <raeburn@gnu.org>
259
14358466
KR
260 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
261 in the custom handler pointer.
262
140c4ac6
KR
263 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
264 value, or checks for CHAR_META can fail when Lisp_Object is a
265 union type.
266 * keymap.c (get_keyelt): Likewise.
267
10d7bf84
KH
2682000-06-19 Kenichi Handa <handa@etl.go.jp>
269
270 * ccl.h (struct ccl_program): New member eol_type.
271 (struct ccl_spec): New member cr_carryover.
272
273 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
274 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
275
276 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
277 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
278 (decode_eol_post_ccl): New function.
279 (decode_coding): Don't detect EOL format here for CCL based coding
280 systems.
281 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
282 decode_eol_post_ccl after running the CCL program.
283 (code_convert_region): Don't detect EOL format here for CCL based
284 coding systems.
285 (decode_coding_string): Likewise.
286
52e386c2
KR
2872000-06-18 Ken Raeburn <raeburn@gnu.org>
288
289 * charset.c (update_charset_table): Use XINT on "iso_final_char"
290 when treating it as an integer.
291
292 * coding.h (encode_coding_string): Declare.
293
294 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
295 it as an integer.
296
297 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
298 "xkeymap" to avoid shadowing the "enum map_type" value that needs
299 to be passed to get_local_map.
300
301 * sound.c (Fplay_sound): Don't call make_number on
302 Frun_hook_with_args count argument.
303
304 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
305 for lisp objects in X event structure data field, when lisp
306 objects are represented with unions.
307 (x_scroll_bar_to_input_event): Ditto.
308
b357b9d4
KR
3092000-06-16 Ken Raeburn <raeburn@gnu.org>
310
311 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
312 termination of string. Fix sense of test whether
313 Vline_number_display_limit is an integer.
b357b9d4 314
a871441d
GM
3152000-06-16 Gerd Moellmann <gerd@gnu.org>
316
a9021acd
GM
317 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
318 only if HAVE_X_WINDOWS.
319
6344985d
GM
320 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
321 of titles.
322
427ec082 323 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
324 out of bounds.
325
228b083e
EZ
3262000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
327
328 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
329 of its headers.
330
c25b53a2
KH
3312000-06-15 Kenichi Handa <handa@etl.go.jp>
332
333 * coding.c (decode_coding_emacs_mule): Always set src_base at the
334 start of the while loop.
335
a6981b11
GM
3362000-06-15 Gerd Moellmann <gerd@gnu.org>
337
e9924e52
GM
338 * atimer.c (alarm_signal_handler): Add forward declaration.
339
a6981b11
GM
340 * data.c (set_internal): Remove debug code.
341
25fa6deb
GM
3422000-06-14 Gerd Moellmann <gerd@gnu.org>
343
dce6b995
GM
344 * Makefile.in (bootstrap-temacs): Add `-I../src'.
345
9f817ea4
GM
346 * unexec.c (toplevel) [COFF]: Include coff.h.
347
348 * s/lynxos.h: New file.
349
350 * keymap.c (Fsingle_key_description): Enclose function key and
351 event symbol names in angle brackets.
352
8a4e3c0c
GM
353 * xdisp.c (setup_echo_area_for_printing): Call
354 message_log_maybe_newline if message_buf_print is not set.
355
356 * print.c (printchar, strout): Don't check message_buf_print
427ec082 357 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
358 function does something useful even when message_buf_print is
359 already set.
360
25fa6deb
GM
361 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
362 variables.
363 (ensure_echo_area_buffers): Initialize echo buffer's
364 truncate lines setting to nil.
365 (with_echo_area_buffer): Don't set the echo buffer's truncate
366 lines setting here.
8a4e3c0c 367 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
368 of message_truncate_lines.
369 (resize_mini_window): Handle case that lines are truncated.
370 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
371 message-truncate-lines.
372
373 * keyboard.c (read_char): Bind message-truncate-lines to t
374 while displaying a help-echo.
375
376 * lisp.h (Qmessage_truncate_lines): External declaration.
377
163dcff3
GM
3782000-06-13 Gerd Moellmann <gerd@gnu.org>
379
1681ead6
GM
380 * xdisp.c (Vline_number_display_limit): Renamed from
381 line_number_display_limit.
382 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
383 Extend documentation string. Initialize
384 Vline_number_display_limit to nil meaning no limit.
385 (decode_mode_spec): Use Vline_number_display_limit with its new
386 meaning.
387
163dcff3
GM
388 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
389
3902000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
391
392 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 393
163dcff3
GM
394 * xfns.c (x_set_frame_parameters): Comment fix.
395
396 * frame.c (store_frame_param): Call swap_in_global_binding if the
397 variable's current binding was chosen based on this frame.
398
399 * data.c (swap_in_global_binding): New function.
400
a704139d
EZ
4012000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
402
403 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
404 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
405
9b6610db
EZ
4062000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
407
408 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
409
c68833d2
JR
4102000-06-12 Jason Rumney <jasonr@gnu.org>
411
412 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
413
414 * w32.h (EMACS_W32_H): Renamed from _NT_H_
415
416 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
417
418 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
419
ed1056b3
GM
4202000-06-12 Gerd Moellmann <gerd@gnu.org>
421
422 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
423 (syms_of_xfaces): Defsubr Sdump_colors.
424 (x_free_colors): Don't treat b&w specially on default visual.
425 (x_free_dpy_colors): New function.
426 (free_face_colors): Don't check visual class; it's done
427 in x_free_colors.
428
429 * xterm.c (x_frame_of_widget): New function.
430 (x_alloc_nearest_color_for_widget): Use it.
431 (x_copy_dpy_color): New function.
432 (x_destroy_window): Free various colors.
433
5050a2ef
KH
4342000-06-12 Kenichi Handa <handa@etl.go.jp>
435
436 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
437
438 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
439
440 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
441
442 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
443
444 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
445
fb1b041d
DL
4462000-06-11 Dave Love <fx@gnu.org>
447
448 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
449
ff96b5f4
EZ
4502000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
451
452 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
453
db8eeecd
GM
4542000-06-11 Gerd Moellmann <gerd@gnu.org>
455
ed1056b3 456 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
457 to `XEvent *'.
458
49b71c5f
KH
4592000-06-10 Kenichi Handa <handa@etl.go.jp>
460
c479bd55
KH
461 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
462 (regex_compile): Fix the code for handling the case of single byte
463 char and multibyte char being mixed in a range within [...].
464
ff6a65c2
KH
465 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
466 and dst_multibyte members of coding.
467
49b71c5f
KH
468 * charset.c (update_charset_table): Update the table
469 bytes_by_char_head.
470 (init_charset_once): Initialize elements of bytes_by_char_head to
471 1 except for leading codes for private charases.
472
473 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
474 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
475 sequence.
476
9e80b57d
KR
4772000-06-09 Ken Raeburn <raeburn@gnu.org>
478
479 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
480 access the data it doesn't point to.
481
f83fe4b4
GM
4822000-06-08 Gerd Moellmann <gerd@gnu.org>
483
484 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 485 will be translated to a switch-frame event when reading the
f83fe4b4
GM
486 event queue. This is necessary because Emacs otherwise won't
487 perform a switch-frame to a new frame until some other event, for
488 example a keystroke event, forces it to do so. This has various
489 effects, one visible being that the cursor of a frame created with
490 C-x 5 2 or switched to with a window manager key binding like
491 A-TAB stays hollow because selected_window isn't on the newly
492 focused frame until the switch-frame is performed.
493
494 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
495 generating a switch-frame event if necessary.
496
497 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
498
499 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
500 it's an integer.
501
0890801b
KH
5022000-06-08 Kenichi Handa <handa@etl.go.jp>
503
504 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
505 charset.
506
173cbca8
GM
5072000-06-07 Gerd Moellmann <gerd@gnu.org>
508
3091c2a6
GM
509 * window.c (displayed_window_lines): Take empty lines at
510 the bottom of a window into account.
427ec082 511
f38952fe
GM
512 * window.c (displayed_window_lines): New function.
513 (Fmove_to_window_line): Use displayed_window_lines to determine
514 the number of lines to move, instead of using the window's height.
515
516 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
517 to stop reading, even if the form read sets point to a different
518 value when evaluated.
519
427ec082 520 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
521 put the cursor.
522
6ba6c818
KH
5232000-06-07 Kenichi Handa <handa@etl.go.jp>
524
525 * fileio.c (e_write): Free composition data if stored in
526 coding->cmp_data.
527
5f1aea9a
GM
5282000-06-06 Gerd Moellmann <gerd@gnu.org>
529
666852af
GM
530 * xdisp.c (display_line): Set row's and iterator's
531 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
532 Set cursor even if row ends in the middle of a character.
533 (dump_glyph_row): Print values of new flags.
534 (redisplay_window) <cursor movement in unchanged window>: When
535 point has been moved forward, and PT is at the end of the cursor
536 row, don't place the cursor in the next row if the cursor row ends
537 in the middle of a character or at ZV.
538
539 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
540 (struct glyph_row): Add starts_in_middle_of_char_p and
541 ends_in_middle_of_char_p.
542 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
543 ends_in_middle_of_char_p flag.
544 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
545
d13f3e2e
GM
546 * term.c (append_glyph): Revert change of 2000-06-06.
547
548 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
549 padding glyph not fitting on line as whole character not
550 fitting on line.
551
5f1aea9a
GM
552 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
553 this isn't true for images with `:ascent 100'.
554
10cda9b0
KH
5552000-06-06 Kenichi Handa <handa@etl.go.jp>
556
ed00559d
KH
557 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
558 as modified if it is originally unmodified.
559
10cda9b0
KH
560 * term.c (encode_terminal_code): Change the way to check if
561 terminal coding does any conversion.
562 (append_glyph): Set glyph->pixel_width correctly.
563
564 * xdisp.c (display_line): While checking line continuation, pay
565 attention to a padding glyph.
566
1969fae2
GM
5672000-06-05 Gerd Moellmann <gerd@gnu.org>
568
569 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
570
162ccef4
DL
5712000-06-05 Dave Love <fx@gnu.org>
572
f19f32dd
DL
573 * xdisp.c: Include fontset.h.
574
575 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
576
577 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
578
579 * dispnew.c: Conditionally include term.h.
580
581 * coding.h: Declare code_convert_string_norecord.
582
583 * frame.h (struct frame): Use volatile unconditionally.
584
585 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
586
587 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
588
589 * systime.h: Protect against multiple inclusion.
590 (timezone) [USG5_4]: Define as time_t.
591
592 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
593 (Foptimize_char_table, make_temp_name): Declare.
594
595 * Makefile.in (xdisp.o): Depend on fontset.h.
596
597 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
598
599 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
600 (Foptimize_char_table, make_temp_name): Declare.
601
427ec082 602 * s/irix4-0.h:
162ccef4
DL
603 * s/irix5-0.h:
604 * s/netbsd.h: Don't define autoconfiscated MATHERR.
605
2082fe81
DL
6062000-06-02 Dave Love <fx@gnu.org>
607
608 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
609
dcf671d2
GM
6102000-06-02 Gerd Moellmann <gerd@gnu.org>
611
612 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 613 result face, set flags in that face indicating that colors may not
dcf671d2
GM
614 be freed.
615
616 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
617 glyph, use the ASCII NUL character to determine the face.
618
d42122a3
DL
6192000-06-02 Dave Love <fx@gnu.org>
620
621 * sysdep.c: Conditionally include stdlib.h, unistd.h.
622 (VFORK_RETURN_TYPE): Remove.
427ec082 623
d42122a3
DL
624 * config.in: Add NO_MATHERR.
625
dd432f16
DL
6262000-06-01 Dave Love <fx@gnu.org>
627
90aa4ea8
DL
628 * cmds.c (internal_self_insert): Don't check
629 Vbefore_change_function, Vafter_change_function.
630
631 * insdel.c (signal_before_change, signal_after_change): Likewise.
632
633 * buffer.c (Vbefore_change_function, Vafter_change_function):
634 Variables and their initializations deleted.
635
2330c9d4
DL
636 * callint.c (Fcall_interactively): Doc fix.
637
dd432f16
DL
638 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
639
bf9e8804
DL
6402000-05-31 Dave Love <fx@gnu.org>
641
642 * textprop.c: Revert last change -- duplicated.
643
3694b4ab
GM
6442000-05-31 Gerd Moellmann <gerd@gnu.org>
645
646 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
647 in #if 0.
648
649 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
650
f14156cd
JR
6512000-05-31 Jason Rumney <jasonr@gnu.org>
652
8119aab8
JR
653 * search.c (Fre_search_forward, Fre_search_backward)
654 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
655
f14156cd
JR
656 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
657
4aab9be3
JR
6582000-05-30 Jason Rumney <jasonr@gnu.org>
659
660 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
661 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
662
663 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
664 member.
665
666 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
667 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
668 expand a nil default_filename.
669
670 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
671 pointer to glyph_to_pixel_coords, not a frame.
672
673 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
674 coding.h to dependencies.
675
676 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
677
678 * w32console.c (glyph_to_pixel_coords): Change first parameter to
679 window pointer to be consistent with w32term.c and xterm.c.
680
681 * w32fns.c: Format and doc changes to bring closer to xfns.c.
682 (VIETNAMESE_CHARSET): Define if not defined in system headers.
683 (Qline_spacing, Qcenter): New variables.
684 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
685 (x_set_line_spacing): New function.
686 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
687 macros.
688 (x_specified_cursor_type): New function.
689 (x_set_cursor_type): Use it.
690 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
691 and icon strings.
692 (validate_x_resource_name, x_get_resource_string): Measure lengths
693 of external strings in bytes.
694 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
695 GetTextExtentPoint32 with NULL title.
696 (Fx_create_frame): Initialize Qline_spacing.
697 (w32_load_system_font): Initialize font->double_byte_p.
698 (x_to_w32_charset): Use Vw32_charset_info_alist.
699 (Image, busy cursor, tooltip functions): Merged changes from
700 xfns.c. Not yet functional on Windows.
701
702 * w32gui.h (W32FontStruct): Add double_byte_p member.
703
704 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
705 (emacs_button_translation): Use it.
706 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
707 in `mask' to be set.
708
709 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
710 menu strings.
711
712 * w32term.c: Format and doc changes to bring closer to xterm.c.
713 (w32_char_font_type): New enum.
714 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
715 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
716 (w32_encode_char): New function.
717 (x_encode_char): Removed.
718 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
719 x_encode_char and w32_font_is_double_byte.
720 (x_produce_image_glyph): Use image_ascent.
721 (x_produce_glyphs): Use new version of w32_per_char_metric and
722 handle NULL return value. Allow extra line spacing.
723 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
724 (w32_get_glyph_overhangs): Remove unicode_p param. Use
725 w32_font_type member of glyph instead.
726 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
727 (fast_find_position): Make sure not to consider rows not visible
728 in the window.
729 (w32_read_socket) [WM_MENUSELECT]: Cannot call
730 w32_menu_display_help with input blocked, as it can abort.
731 (x_display_and_set_cursor): Choose cursor depending
732 on buffer-local value of cursor_type.
733 (x_draw_bar_cursor): Add parameter WIDTH.
734
735 * w32term.h (CP_DEFAULT): Define.
736 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
737
10fc3187
GM
7382000-05-30 Gerd Moellmann <gerd@gnu.org>
739
740 * search.c (Fre_search_forward, Fre_search_backward)
741 (Fposix_search_backward, Fposix_search_forward): Doc fix.
742
d0555360
KH
7432000-05-30 Kenichi Handa <handa@etl.go.jp>
744
745 * coding.c (detect_coding_iso2022): Fix code for checking
746 CODING_CATEGORY_MASK_ISO_8_2.
747
f1ad044f
SM
7482000-05-29 Stefan Monnier <monnier@cs.yale.edu>
749
750 * regex.c (PREFETCH_NOLIMIT): New function.
751 (re_match_2_internal): Use it and adjust the end_match_2 logic.
752
84ec3b4b
GM
7532000-05-29 Gerd Moellmann <gerd@gnu.org>
754
66254a13
GM
755 * syntax.c (find_defun_start): Move test for
756 open_paren_in_column_0_is_defun_start outside of the loop.
757
49e70dec
GM
758 * xdisp.c (redisplay_window): Really switch buffers when
759 displaying mode lines, and temporarily set selected_frame to the
760 frame of the window that's redisplayed.
761
84ec3b4b
GM
762 * xfaces.c (free_realized_faces): Block/unblock input.
763 (free_realized_multibyte_face): Ditto.
764
869a3a14
DL
7652000-05-29 Dave Love <fx@gnu.org>
766
767 * textprop.c (Qkeymap): New variable.
768 (syms_of_textprop): Intern it.
769
770 * keymap.c: Include intervals.h.
771 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
772
773 * Makefile.in (keymap.o): Depend on intervals.h.
774
775 * keyboard.c (menu_bar_items, tool_bar_items)
776 (Fexecute_extended_command): Deal with `keymap' property.
777 (read_key_sequence): Track map from `keymap' property as well as
778 `local_map'.
779
780 * intervals.c (get_local_map): Extra arg to allow looking for
781 `keymap' too.
782
783 * intervals.h (map_property): New enum.
784 (get_local_map): Extra arg using it.
785 (Qkeymap): Declare.
786
84ec3b4b 787 * lisp.h (get_local_map): Don't declare here.
869a3a14 788
89d0c844
KH
7892000-05-29 Kenichi Handa <handa@etl.go.jp>
790
791 * Makefile.in (callproc.o): Depend on composite.h.
792
793 * callproc.c: Include composite.h.
794 (Fcall_process): Handle composition correctly.
795
796 * coding.h (coding_allocate_composition_data): Extern it.
797 (coding_restore_composition): Likewise.
798
799 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
800 yet allocated, finish decoding with result
801 CODING_FINISH_INSUFFICIENT_CMP.
802 (coding_allocate_composition_data): Make it non-static.
803 (coding_restore_composition): Likewise.
804
797a084a
EZ
8052000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
806
807 * charset.c (syms_of_charset): Revert last change.
808
cf872af5
EZ
8092000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
810
811 * term.c (produce_glyphs): Treat characters from the eight-bit-*
812 charsets as unibyte, with 1-column screen width. Sent by Kenichi
813 Handa.
814
5b1ae051
EZ
8152000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
816
817 * charset.c (syms_of_charset): Set width of character sets
818 eight-bit-control and eight-bit-graphic to 1 column.
819
34ec9ebe
GM
8202000-05-26 Gerd Moellmann <gerd@gnu.org>
821
822 * config.in (HAVE_SPEED_T): New define.
823
824 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
825 `extern speed_t'.
826
dd854dc2
DL
8272000-05-26 Dave Love <fx@gnu.org>
828
829 * coding.c (shrink_decoding_region): Initialize eol_conversion.
830
831 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
832 (Fsubr_arity): New function.
833 (syms_of_data): Install them.
834
ba9f8f95
KH
8352000-05-26 Kenichi Handa <handa@etl.go.jp>
836
0f3e0672
KH
837 * charset.c (init_charset_once): Set the table bytes_by_char_head
838 correctly.
839
cebefb44
KH
840 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
841 the default fontset to what Emacs uses by default.
0f3e0672
KH
842 (check_registry_encoding): This function deleted.
843 (Fset_fontset_font): Remove the adhoc condition for the default
844 fontset. Allow cons in FONTNAME.
cebefb44 845
0f3e0672
KH
846 * fns.c (map_char_table): Ignore char-table entries for
847 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 848
7a18af49
KR
8492000-05-25 Ken Raeburn <raeburn@gnu.org>
850
851 * emacs.c (main): Initialize keyboard syms before initializing
852 window code, so face names are available.
853
d2af47df
SM
8542000-05-25 Stefan Monnier <monnier@cs.yale.edu>
855
856 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
857 of an anchor at the beginning of a shy-group.
858
fc6a6a4e
GM
8592000-05-25 Gerd Moellmann <gerd@gnu.org>
860
861 * xdisp.c (handle_invisible_prop): Don't try to skip over
862 invisible text if end of text is already reached.
863
005f0d35
DL
8642000-05-25 Dave Love <fx@gnu.org>
865
02513cdd
DL
866 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
867
005f0d35
DL
868 * coding.c (encode_eol): Add null statement after label.
869
89f6ca4e
EZ
8702000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
871
872 * w16select.c (Fw16_set_clipboard_data): Fix the change from
873 2000-05-20.
874
a4e1759e
KH
8752000-05-25 Kenichi Handa <handa@etl.go.jp>
876
877 * ccl.c (ccl_driver): Fix previous change.
878
eacfd7fe
KH
8792000-05-25 Kenichi Handa <handa@etl.go.jp>
880
46ab33a9
KH
881 * coding.c (run_pre_post_conversion_on_str): Set point to the
882 beginning of buffer before calling coding->post_read_conversion.
883 (decode_coding_string): Give correct args to
884 run_pre_post_conversion_on_str.
885 (encode_coding_string): Likewise.
886
eacfd7fe
KH
887 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
888 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
889 eight-bit-graphic correctly.
890
f8569325
DL
8912000-05-24 Kenichi HANDA <handa@etl.go.jp>
892
893 * fileio.c (Finsert_file_contents): Even if a file is not found,
894 execute codes for setting up coding system. Call
895 after-insert-file-functions unconditionally.
896
04545643
GM
8972000-05-24 Gerd Moellmann <gerd@gnu.org>
898
899 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
900 BSD_PGRPS are not defined.
901
747d90ea
KH
9022000-05-24 Kenichi Handa <handa@etl.go.jp>
903
904 * charset.c (update_charset_table): Accept nil in LONG_NAME and
905 DESCRIPTION.
906 (syms_of_charset): Avoid building same strings.
907
716e3b88
GM
9082000-05-23 Gerd Moellmann <gerd@gnu.org>
909
910 * lread.c (Fload): Add a comment about the meaning of
911 Vuser_init_file being t.
912
913 * puresize.h (BASE_PURESIZE): Increase to 675000.
914
915 * s/gnu-linux.h (setpgrp): Don't define it here because this
916 prevents compilation on GNU/Linux systems with glib 2.2.
917
918 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
919 as setpgid.
427ec082 920
9aeb39fa
EZ
9212000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
922
923 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
924 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
925 version.
926 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
927
29ced61b
KH
9282000-05-23 Kenichi Handa <handa@etl.go.jp>
929
0574a2ed
KH
930 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
931 unconditionally.
932
3d80f24d
KH
933 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
934
935 * term.c (encode_terminal_code): Set coding->src_multibyte
936 properly.
937
29ced61b
KH
938 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
939
d7e00792
KH
9402000-05-22 Kenichi Handa <handa@etl.go.jp>
941
c9d80d38
KH
942 * keyboard.c (read_char): Allow character codes 128..255 to be
943 handled by input-method-function.
944
d7e00792
KH
945 * insdel.c (adjust_markers_for_replace): Fix previous change.
946 (adjust_after_replace): If PREV_TEXT is nil, call
947 adjust_markers_for_insert, not adjust_markers_for_replace.
948
087121cc 9492000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 950
087121cc
GM
951 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
952 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
953 [HAVE_GRANDPT]: Define.
954 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
955
956 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
957 like SYSV_PTYS.
958
959 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
960
961 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
962
c9671f81
KH
9632000-05-20 Kenichi Handa <handa@etl.go.jp>
964
965 The following changes are to handle 8-bit characters in a
966 multibyte buffer/string without facing with byte combining
967 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
968 eight-bit-graphic (for 0xA0..0xFF) are introduced.
969
970 * Makefile.in (fns.o): Depend on charset.h.
971
972 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
973 convert it to unibyte.
974 (make_string): Use parse_str_as_multibyte, not chars_in_text.
975
976 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
977 apparent char boundary.
978 (Fset_buffer_multibyte): Convert 8-bit characters in the range
979 0x80..0x9F to/from multibyte form.
980
981 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
982 to unibyte.
983
984 * callproc.c (Fcall_process): Always encode an argument string if
985 it is multibyte. Setup src_multibyte and dst_multibyte members of
986 process_coding properly.
ce75fd23 987
c9671f81
KH
988 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
989 SPLIT_NON_ASCII_CHAR.
990
991 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
992 as is.
993 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
994
995 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
996 variables.
997 (SPLIT_CHARACTER_SEQ): This macro deleted.
998 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
999 valid.
1000 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
1001 and eight-bit-graphic.
1002 (char_to_string): Likewise. Signal an error for too large
1003 character code.
1004 (char_printable_p): Return 0 for 8-bit characters.
1005 (update_charset_table): Update iso_charset_table only when a final
1006 character is non-negative.
1007 (find_charset_in_text): Renamed from find_charset_in_str.
1008 Arguments and return value changed. Callers changed.
1009 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
1010 be -1 if CHARSET is used only internally.
1011 (Fmake_char_internal): Handle new charsets; eight-bit-control and
1012 eight-bit-graphic.
1013 (Fcharset_after): Simplified.
1014 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
1015 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
1016 (multibyte_chars_in_text): Simplified by assuming there's no
1017 invalid multibyte sequence.
1018 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1019 str_as_unibyte): New functions.
1020 (Fstring): Simpified by assuming that byte combining never
1021 happens.
1022 (init_charset_once): Initialization for
1023 LEADING_CODE_8_BIT_CONTROL.
1024 (syms_of_charset): Intern and staticpro Qeight_bit_control and
1025 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
1026 eight-bit-control and eight-bit-graphic.
1027
1028 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
1029 CHARSET_8_BIT_GRAPHIC): New macros.
1030 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
1031 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
1032 (CHARSET_REVERSE_CHARSET): Likewise.
1033 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
1034 eight-bit-graphic.
1035 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
1036 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
1037 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
1038 encounter an invalid multibyte sequence.
1039 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
1040 sequence is always valid.
1041 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
1042 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
1043 macros.
1044 (CHAR_STRING): For 8-bit characters, call char_to_string.
1045 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
1046 multibyte sequence is always valid.
1047 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
1048 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
1049 str_as_unibyte): Extern them.
1050 (BCOPY_SHORT): Fix a bug.
1051 (CHAR_LEN): This macro deleted. Callers changed to use
1052 CHAR_BYTES.
1053 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
1054 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
1055 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
1056
bd4bde7f 1057 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
1058 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
1059 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
1060 EMIT_BYTES): New macros.
1061 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
1062 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
1063 macros deleted.
1064 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
1065 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
1066 check the validity of multibyte sequence.
1067 (decode_coding_emacs_mule): New function.
1068 (encode_coding_emacs_mule): New macro.
1069 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
1070 the source.
1071 (DECODE_ISO_CHARACTER): Just return a character code.
1072 (DECODE_COMPOSITION_START): Set coding->result instead of result.
1073 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
1074 EMIT_CHAR to produced decoded characters. Exit the loop only by
1075 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
1076 block here.
1077 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
1078 only position codes for an invalid character.
1079 (encode_designation_at_bol): Return new destination pointer. 5th
1080 arg DSTP is changed to DST.
1081 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
1082 from the source by ONE_MORE_CHAR. Don't handle the case of last
1083 block here.
1084 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
1085 macros deleted.
1086 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
1087 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
1088 TWO_MORE_BYTES to fetch a byte from the source.
1089 (encode_eol): Pay attention to coding->src_multibyte.
1090 (detect_coding, detect_eol): Preserve members src_multibyte and
1091 dst_multibyte.
1092 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
1093 (encoding_buffer_size): Set magnification to 3 for all coding
1094 systems that require encoding.
1095 (ccl_coding_driver): For decoding, be sure that the result is
1096 valid multibyte sequence.
1097 (decode_coding): Initialize coding->errors and coding->result.
1098 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
1099 and raw-text, always call decode_eol. Handle the case of last
1100 block here. If not coding->dst_multibyte, convert the resulting
1101 sequence to unibyte.
1102 (encode_coding): Initialize coding->errors and coding->result.
1103 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1104 and raw-text, always call encode_eol. Handle the case of last
1105 block here.
1106 (shrink_decoding_region, shrink_encoding_region): Detect cases
1107 that we can't skip data more rigidly.
1108 (code_convert_region): Setup src_multibyte and dst_multibyte
1109 members of coding. For decoding, if the buffer is multibyte,
1110 convert the source sequence to unibyte in advance. For encoding,
1111 if the buffer is multibyte, convert the resulting sequence to
1112 multibyte afterward.
1113 (run_pre_post_conversion_on_str): New function.
1114 (code_convert_string): Deleted and divided into the following two.
1115 (decode_coding_string, encode_coding_string): New functions.
1116 (code_convert_string1, code_convert_string_norecord): Call one of
1117 above.
1118 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1119 MAKE_NON_ASCII_CHAR.
1120 (Fset_terminal_coding_system_internal,
1121 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1122 and dst_multibyte members.
1123 (init_coding_once): Initialize iso_code_class with new enum
1124 ISO_control_0 and ISO_control_1.
1125
1126 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1127 devided into ISO_control_0 and ISO_control_1.
1128 (struct coding_system): New members src_multibyte, dst_multibyte,
1129 errors, and result. Delete member fake_multibyte.
1130 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1131 nonzero.
1132 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1133 nonzero.
1134
1135 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1136 (Faset): Likewise.
1137
1138 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1139 multibyte form.
1140 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1141 combining occurs.
1142 (Ftranspose_region): Delete codes for handling byte combining.
1143
1144 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1145 dst_multibyte members of coding. On handling REPLACE on unibyte
1146 buffer, convert the result of decode_coding to unibyte. On
1147 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1148 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1149 multibyteness of the source (buffer or string).
1150
1151 * fns.c (concat): Handle 8-bit characters correctly.
1152 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1153 unibyte in the result.
1154 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1155 valid multibyte form in the result.
1156 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1157 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1158 return -1, signal an error.
1159 (base64_encode_1): New arg MULTIBYTE. Get each character by
1160 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1161 character is found, return -1.
1162 (Fbase64_decode_region): Delete codes for handling byte-combining.
1163 Treat each decoded byte as a unibyte character.
1164 (Fbase64_decode_string): Return unibyte string.
1165 (Fcompare_strings, concat, string_byte_to_char): Use
1166 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1167 FETCH_STRING_CHAR_ADVANCE.
1168 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1169 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1170
1171 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1172 SPLIT_NON_ASCII_CHAR.
1173 (fontset_ref_via_base, fontset_set): Likewise
1174
1175 * insdel.c (adjust_markers_for_record_delete): Deleted.
1176 (adjust_markers_for_insert): Argument changed. Caller changed.
1177 (adjust_markers_for_replace): Likewise.
1178 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1179 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1180 (copy_text): Delete unused local varialbe c_save. For converting
1181 to multibyte, be sure to make all 8-bit characters in valid
1182 multibyte form.
1183 (count_size_as_multibyte): Handle 8-bit characters correctly.
1184 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1185 adjust_after_replace, replace_range, del_range_2)
1186 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1187 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1188 adjust_after_replace, replace_range, del_range_2) Delete codes for
1189 handling byte combining.
1190 (adjust_before_replace): Deleted.
427ec082 1191
c9671f81
KH
1192 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1193 SPLIT_NON_ASCII_CHAR.
1194 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1195 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1196 unconditionally.
1197 (Fkey_description): Likewise.
1198
1199 * lread.c (read1): On reading multibyte string, be sure to make
1200 all 8-bit chararacters in valid multibyte form.
1201 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1202
1203 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1204 unconditionally.
1205
1206 * process.c (Fstart_process): GCPRO current_dir before calling
1207 Ffind_operation_coding_system. Encode arguments here.
1208 (create_process): Don't encode arguments here. Setup
1209 src_multibyte and dst_multibyte members of struct coding.
1210 (read_process_output): Setup src_multibyte and dst_multibyte
1211 members of struct coding. If the output is to multibyte buffer,
1212 always decode the output of the process. Adjust the
1213 representation of 8-bit characters to the multibyteness of the
1214 output.
1215 (send_process): Setup coding->src_multibyte according to the
1216 multibyteness of the source.
1217
1218 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1219 unconditionally.
1220 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1221 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1222
1223 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1224 CHAR_LEN.
1225
1226 * w16select.c (Fw16_set_clipboard_data): Setup members
1227 src_multibyte and dst_multibyte of coding. Adjusted for the
1228 change for find_charset_in_str.
1229 (Fw16_get_clipboard_data): Likewise.
1230
1231 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1232 dst_multibyte of coding.
1233 (x_to_w32_font): Likewise.
1234
1235 * w32select.c (Fw32_set_clipboard_data): Setup members
1236 src_multibyte and dst_multibyte of coding. Adjusted for the
1237 change for find_charset_in_str.
1238 (Fw32_get_clipboard_data): Likewise.
1239
1240 * xdisp.c (get_next_display_element): Handle 8-bit characters
1241 correctly.
1242 (next_element_from_display_vector): Use CHAR_BYTES instead of
1243 CHAR_LEN.
1244 (disp_char_vector): Use SPLIT_CHAR instead of
1245 SPLIT_NON_ASCII_CHAR.
1246
1247 * xselect.c (selection_data_to_lisp_data): Setup members
1248 src_multibyte and dst_multibyte of coding. Adjusted for the
1249 change for find_charset_in_str.
1250 (lisp_data_to_selection_data): Likewise.
1251
5f64c9e0
GM
12522000-05-19 Gerd Moellmann <gerd@gnu.org>
1253
2b63d473
GM
1254 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1255 buffer.
1256
5f64c9e0
GM
1257 * dispextern.h (Vimage_types): Add extern declaration.
1258
1259 * xdisp.c (Vimage_types): Moved here from xfns.c.
1260 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1261
1262 * xfns.c (Vimages_types): Moved to xdisp.c.
1263 (syms_of_xfns): Move `image-types' to xdisp.c.
1264
1265 * w32fns.c (Vimage_types): Removed.
1266 (syms_of_w32fns): Remove `image-types'.
1267
813086ea
KH
12682000-05-18 Kenichi Handa <handa@etl.go.jp>
1269
1270 * fns.c (map_char_table): Pay attention to character number of
1271 charset. Check the validity of charset at the first level. For
1272 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1273 the default value.
1274
1275 * fontset.c: Include "buffer.h".
1276 (fs_load_font): If the face has fontset, record the face ID in
1277 that fontset.
1278 (Finternal_char_font): New function.
1279 (accumulate_font_info): New function.
1280 (Ffontset_info): Rewritten for the new fontset implementation.
1281 (syms_of_fontset): Register Vdefault_fontset in the first element
1282 of Vfontset_table. Include Vdefault_fontset in
1283 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1284 function.
1285
bdaebbf0
DL
12862000-05-16 Dave Love <fx@gnu.org>
1287
1288 * m/iris5d.h: Deleted -- unused.
1289
cb613bb8
GM
12902000-05-16 Gerd Moellmann <gerd@gnu.org>
1291
b15f3b77
GM
1292 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1293 `invalid' instead of `illegal'.
1294
1295 * indent.c (Fmove_to_column): When ending within a tab, insert
1296 spaces first so that markers at the end of the tab get adjusted.
1297
835c1b36
GM
1298 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1299 buffer list that wasn't selected in that frame.
1300
cb613bb8
GM
1301 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1302 is needed on mescaline, use a 2 char prefix, and call
1303 make_temp_name with second arg non-zero.
1304
1305 * fileio.c (make_temp_name): New function, extracted from
1306 Fmake_temp_name.
1307 (Fmake_temp_name): Use it.
1308
f685bea9
EZ
13092000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1310
1311 * window.c (coordinates_in_window): Subtract 1 when computing
1312 right_x.
1313
a1b8d58b
GM
13142000-05-15 Gerd Moellmann <gerd@gnu.org>
1315
1316 * Makefile.in (lisp): Add env.elc.
1317
1318 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1319
a265079f
GM
13202000-05-12 Gerd Moellmann <gerd@gnu.org>
1321
1322 * search.c (Freplace_match): Handle case of `\N' in the
1323 replacement when there's no group N.
1324
da4496b6
GM
13252000-05-11 Gerd Moellmann <gerd@gnu.org>
1326
0ace421a
GM
1327 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1328 of the message to message_dolog.
1329
1172eb8d
GM
1330 * keyboard.c (read_char): Don't clear current message for help
1331 events; let the code handling help events handle this. Change
1332 code detecting help events that should be ignored.
1333
da4496b6
GM
1334 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1335 we're interating over a string.
1336
0623e40f
DL
13372000-05-09 Dave Love <fx@gnu.org>
1338
1339 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1340 that offset before writing. Move gcpro region past call of
1341 Ffile_regular_p.
1342
bae2503b
DL
13432000-05-04 Dave Love <fx@gnu.org>
1344
1345 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1346
ec82fb2f
GM
13472000-05-04 Gerd Moellmann <gerd@gnu.org>
1348
1349 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1350 of inserted characters when BUF equals the current buffer, and PT
1351 is in front of or equal to FROM.
1352
cbf18892
GM
13532000-05-03 Gerd Moellmann <gerd@gnu.org>
1354
4ff40dd0
GM
1355 * xdisp.c (handle_single_display_prop): If display property value
1356 is invalid, or something not supported on the frame, restore
1357 iterator's position to what it was initially. Make sure to return
1358 0 for invalid and unsupported property values.
1359
cbf18892
GM
1360 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1361 that x_per_char_metric returns null.
1362
1b0672c3
GM
13632000-05-02 Gerd Moellmann <gerd@gnu.org>
1364
576da55d
GM
1365 * xterm.h (struct face): Add forward declaration.
1366 (struct image): Ditto.
1367 (image_ascent): Add prototype.
1368
1369 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1370 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1371 image_ascent instead of using IMAGE_ASCENT.
1372
1373 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1374 (IMAGE_ASCENT): Removed.
1375
1376 * xfns.c (Qcenter): New variable.
1377 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1378 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1379 (image_ascent): New function.
1380 (lookup_image): Recognize `:ascent center'.
1381 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1382 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1383 (xbm_load): Don't set image's ascent here.
1384 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1385 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1386 check ascent values here.
1387 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1388 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1389 (syms_of_xfns): Initialize Qcenter.
1390
1b0672c3
GM
1391 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1392 to the limits, increase the limits.
1393
0d7811ed
KH
13942000-05-01 Kenichi Handa <handa@etl.go.jp>
1395
1396 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1397 Check Vfont_encoding_alist against the full name of the opened
1398 font.
1399
a943a5ca
GM
14002000-04-28 Gerd Moellmann <gerd@gnu.org>
1401
1402 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1403 taller than the window.
1404
5dba1e29
KH
14052000-04-28 Kenichi Handa <handa@etl.go.jp>
1406
1407 * xfaces.c (realize_x_face): Fix the argument of the second
1408 xassert. BASE_FACE may not be a face for ASCII.
1409
353964e3
GM
14102000-04-27 Gerd Moellmann <gerd@gnu.org>
1411
c76e04a8
GM
1412 * print.c (print_object): Treat print-length < 0 as nil.
1413
1414 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1415
1416 * s/freebsd.h (TERMCAP_OBJ): Removed.
1417 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1418
1419 * lread.c (read1): Don't treat period followed by certain
1420 characters as symbol start.
1421
1422 * xfns.c (slurp_file): New function.
1423 (xbm_image_p): Handle case of in-memory XBM files.
1424 (xbm_scan): Rewritten to work on memory buffers instead of files.
1425 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1426 Work on memory buffers instead of files. If DATA is null test
1427 if buffer looks like an in-memory XBM file.
1428 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1429 memory buffers instead of files.
1430 (xbm_file_p): New function.
1431 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1432
353964e3
GM
1433 * lread.c (end_of_file_error): New function.
1434 (read1): Call it instead of signaling `end-of-file' directly.
1435
427ec082 1436 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1437 with Fprinc instead of Fprin1.
1438
24d744ac
KR
14392000-04-26 Ken Raeburn <raeburn@gnu.org>
1440
1441 * window.c (freeze_window_start): Check that minibuffer scroll
1442 window isn't nil before extracting the window structure pointer
1443 from it.
1444
1445 * undo.c (record_delete): If we hit the end of the undo list, stop
1446 picking elements apart.
1447
7464346d
GM
14482000-04-26 Gerd Moellmann <gerd@gnu.org>
1449
1450 * xdisp.c (display_line): If lines are continued, restore
1451 iterator's ascent/descent information to the values before the
1452 first glyph not fitting on the line.
1453
612839b6
GM
14542000-04-25 Gerd Moellmann <gerd@gnu.org>
1455
1456 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1457 positions in glyph matrix. Don't compute new window end
1458 positions.
1459
1460 * dispnew.c (increment_matrix_positions): Renamed from
1461 increment_glyph_matrix_buffer_positions.
1462 (increment_row_positions): Renamed from
1463 increment_glyph_row_buffer_positions.
1464
1465 * dispextern.h: Change names of renamed functions from dispnew.c
1466 in prototypes.
1467
cc181e95
GM
14682000-04-24 Gerd Moellmann <gerd@gnu.org>
1469
abfcc168
GM
1470 * fileio.c (Fdo_auto_save): Create directories for auto-save
1471 list file if necessary.
1472
cc181e95
GM
1473 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1474 from buffer or frame.
1475 (automatic_hscrolling_p): New variable.
1476 (hscroll_windows): Scroll windows horizontally only if automatic
1477 hscrolling is allowed.
1478 (syms_of_xdisp): New variable `automatic-hscrolling'.
1479
1480 * frame.h (struct frame): Add member extra_line_spacing.
1481
1482 * xfns.c (x_set_line_spacing): New function.
1483 (Fx_create_frame): Set line spacing from resources.
1484 (Qline_spacing): New variable.
1485 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1486
cc181e95
GM
1487 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1488
1489 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1490 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1491 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1492 extra_line_spacing from default value.
1493 (init_buffer_once): Initialize default value of extra_line_spacing.
1494
1495 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1496 and extra3.
1497
1498 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1499 prompt_width. Add extra line spacing.
1500
1501 * term.c (produce_glyphs): Remove reference to struct it's
1502 prompt_width.
1503
1504 * dispextern.h (struct it): Remove member prompt_width, add
1505 extra_line_spacing.
1506
58827478
GM
15072000-04-22 Gerd Moellmann <gerd@gnu.org>
1508
1509 * dispnew.c (update_frame_line): When writing a whole line, make
1510 sure cursor is in the right row afterwards, otherwise a use of
1511 capability `ch' in cmgoto might leave the cursor in the row below.
1512
25a87f42
GM
15132000-04-21 Gerd Moellmann <gerd@gnu.org>
1514
1515 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1516
1517 * keyboard.c (timer_check): Fix typo in comment.
1518
54edf5c2
KH
15192000-04-21 Kenichi Handa <handa@etl.go.jp>
1520
1521 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1522 name change: ch -> character.
1523
3a64eef5
GM
15242000-04-20 Gerd Moellmann <gerd@gnu.org>
1525
1526 * keyboard.c (echo_message_buffer): New variable.
1527 (echo_now): Set echo_message_buffer to the echo area buffer used
1528 to display the echo.
1529 (cancel_echoing): Reset echo_message_buffer to nil.
1530 (read_char): Code rewritten that handles canceling an echo or
1531 echoing a dash, respectively.
1532
1533 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1534 directory doesn't exist.
1535
6142fdcb
DL
15362000-04-19 Dave Love <fx@gnu.org>
1537
1538 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1539 (concat): Don't allow numeric args.
1540 (Fconcat): Doc change.
6142fdcb 1541
ac6b5352
SM
15422000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1543
1544 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1545 instead define end_match(1|2) more carefully.
1546 Use GET_CHAR_BEFORE_2 for `begline'.
1547
cb9215e4
GM
15482000-04-19 Gerd Moellmann <gerd@gnu.org>
1549
5e3dac3f
GM
1550 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1551 on 64-bit systems where NULL is defined as `0'.
1552
1553 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1554 the `variable argument list' to make it work on Alpha.
1555
cb9215e4
GM
1556 * m/alpha.h (_LP64) [!_LP64]: Define.
1557 (ORDINARY_LINK): Define for NetBSD.
1558
1559 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1560
f532dca0
DL
15612000-04-19 Dave Love <fx@gnu.org>
1562
c750667e
DL
1563 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1564 change.
1565
1566 * Makefile.in (LIBS): Don't use.
1567 (GETLOADAVG_OBJ): Define again.
1568 (otherobj): Add GETLOADAVG_OBJ.
1569
f532dca0
DL
1570 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1571
1c7e22fd
GM
15722000-04-18 Gerd Moellmann <gerd@gnu.org>
1573
f6d3257b
GM
1574 * lread.c (read_filtered_event): Cancel and start busy cursor.
1575
427ec082 1576 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1577 that the per-character metrics may be null.
1578
e10f64e7
GM
15792000-04-17 Gerd Moellmann <gerd@gnu.org>
1580
0daee095
GM
1581 * buffer.c (clone_per_buffer_values): New function.
1582 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1583 clone_per_buffer_values if CLONE is not nil.
1584
e10f64e7
GM
1585 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1586
38687d43
DL
15872000-04-16 Dave Love <fx@gnu.org>
1588
1589 * Makefile.in: Remove obsolete localcpp stuff.
1590 (GETLOADAVG_OBJ): Don't define.
1591 (obj): Move LIBOBJS...
1592 (otherobj): ... to here.
1593 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1594 whitespace-only lines after the continuation (Irix).
1595
c21c7262
GM
15962000-04-14 Gerd Moellmann <gerd@gnu.org>
1597
1598 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1599
1600 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1601
314767c0
DL
16022000-04-14 Dave Love <fx@gnu.org>
1603
1604 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1605 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1606 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1607 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1608 NLIST_STRUCT.
1609
1610 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1611 autoconfiscated HAVE_GETLOADAVG.
1612
1613 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1614 BROKEN_MKTIME.
1615
a2522dca
GM
16162000-04-14 Gerd Moellmann <gerd@gnu.org>
1617
1618 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1619 (fill_in_lock_file_name): Avoid existing files that aren't
1620 links.
1621
33744b5d
DL
16222000-04-14 Dave Love <fx@gnu.org>
1623
c21c7262 1624 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1625 (INTERVAL_SRC): Convert to make variable.
1626 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1627 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1628 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1629 add LIBOBJS.
1630 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1631 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1632 (shortlisp): Add facemenu, float-sup, frame.
1633 (SOME_MACHINE_LISP): Remove them from here.
1634 (LIBES): Change unused LDLIBS to autoconf LIBS.
1635
1636 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1637
9d3d5916
KH
16382000-04-14 Kenichi Handa <handa@etl.go.jp>
1639
1640 * composite.c (update_compositions): If FROM and TO are not in a
1641 valid range, do nothing.
1642
198e3c7a
GM
16432000-04-13 Gerd Moellmann <gerd@gnu.org>
1644
1645 * tparam.c (tparam1): Abort when encountering an unknown
1646 `%'-specifier.
1647
1648 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1649 terminfo.o.
1650
1651 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1652 as TERMCAP_OBJ.
1653
055a28c9
EZ
16542000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1655
1656 * fileio.c (a_write): Remove redundant semi-colons.
1657 (e_write): Return -1 if failed to write all the data.
1658 This fixes the changes made at 1999-12-15.
1659
f5c75033
DL
16602000-04-12 Dave Love <fx@gnu.org>
1661
1662 * fns.c (mapcar1): Test for null vals to support mapc.
1663 (Fmapc): New function.
1664
0c3cfc51
EZ
16652000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1666
1667 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1668 (IT_frame_up_to_date): Support the buffer local value of
1669 cursor-type, if defined.
1670
33465a31
DL
16712000-04-10 Dave Love <fx@gnu.org>
1672
1673 * editfns.c (preceding-char, following-char): Doc fix.
1674
6ed56568
KR
16752000-04-10 Ken Raeburn <raeburn@gnu.org>
1676
1677 * Makefile.in (temacs): Revert 2000-03-12 change.
1678
7cf80d4e
JR
16792000-04-10 Jason Rumney <jasonr@gnu.org>
1680
1681 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1682
34f3f342
GM
16832000-04-10 Gerd Moellmann <gerd@gnu.org>
1684
1a1b1895
GM
1685 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1686 area buffer, if it's not set up yet.
1687
34f3f342
GM
1688 * indent.c (compute_motion): Set immediate_quit.
1689
be0dbdab
GM
16902000-04-09 Gerd Moellmann <gerd@gnu.org>
1691
c45be9ac
GM
1692 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1693 variable.
1694 (realize_tty_face): Suppress boldness if colors are the inverse of
1695 the default colors, and tty_suppress_bold_inverse_default_colors_p
1696 is set.
1697 (Ftty_suppress_bold_inverse_default_colors): New function.
1698 (syms_of_xfaces): Defsubr it.
1699
be0dbdab
GM
1700 * buffer.c (Frestore_buffer_modified_p): New function.
1701 (syms_of_buffer): Defsubr it.
1702
e8413c3b
KR
17032000-04-08 Ken Raeburn <raeburn@gnu.org>
1704
87f67317
KR
1705 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1706 charset id (int) argument, not a charset (Lisp_Object).
1707
e8413c3b
KR
1708 * coding.h (code_convert_string): Declare.
1709 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1710 object, as the fourth argument to code_convert_string.
1711
1712 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1713 value.
1714 (Fset_fontset_font): Use EQ to compare lisp objects.
1715
7c752c80
KR
17162000-04-05 Ken Raeburn <raeburn@gnu.org>
1717
c0333abc
KR
1718 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1719 a pointer that looks like a lisp object.
1720 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1721 zero, instead see whether it's an integer object, since they can't
1722 have intervals.
1723 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1724
7c752c80
KR
1725 * dispnew.c (allocate_matrices_for_frame_redisplay,
1726 direct_output_forward_char): Use X(U)INT and make_number as needed
1727 to convert between (unsigned) int values and lisp integers.
1728 * keyboard.c (read_key_sequence): Likewise.
1729 * lread.c (substitute_object_recurse): Likewise.
1730 * fns.c (concat, hash_lookup, hash_remove): Likewise.
1731 * minibuf.c (do_completion, Fminibuffer_complete_word,
1732 Fminibuffer_completion_help): Likewise.
1733 * term.c (produce_special_glyphs): Likewise.
1734
1735 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
1736 * print.c (print_preprocess, print_object): Likewise.
1737
1738 * search.c (compile_pattern): Use NILP when checking for nil.
1739
74e49b38
KR
1740 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
1741 __OPTIMIZE__]: Provide a GNU C macro version that handles
1742 lisp-object unions.
1743 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
1744 field, to better cope with ENABLE_CHECKING and calls that modify a
1745 Lisp_Object using its old value.
1746
685e5ed2
GM
17472000-04-04 Gerd Moellmann <gerd@gnu.org>
1748
c407c570
GM
1749 * window.c (compare_window_configurations): Signal an error
1750 if parameters C1 or C2 aren't window configurations.
1751
685e5ed2
GM
1752 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
1753 AFTER_POTENTIAL_GC calls around calls to functions that can
1754 signal an error and thus invoke the debugger.
1755
587a49ab
GM
17562000-04-03 Gerd Moellmann <gerd@gnu.org>
1757
62f20204
GM
1758 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
1759 an error if decoding fails.
1760
587a49ab
GM
1761 * keyboard.c (lispy_mouse_names): Variable removed.
1762 (Vlispy_mouse_stem): New variable.
1763 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
1764 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
1765 for any mouse button number. Increase size of mouse_syms and
1766 button_down_location as needed. Call modify_event_symbol with
1767 different arguments.
1768 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
1769 Call modify_event_symbol with different arguments.
1770 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
1771 for any button number. Call modify_event_symbol with different
1772 arguments.
1773 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
1774 Accept a string for NAME_ALIST_OR_STEM.
1775
1776 * lisp.h (larger_vector): Add prototype.
1777
1778 * fns.c (larger_vector): Make externally visible.
1779
1780 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
1781
2d1675e4
SM
17822000-04-02 Stefan Monnier <monnier@cs.yale.edu>
1783
1784 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
1785 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
1786 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
1787 we are between str1 and str2.
1788 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
1789 (PATFETCH): Use `TRANSLATE'.
1790 (PATFETCH_RAW): Fetch multibyte char if applicable.
1791 (PATUNFETCH): Remove.
1792 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
1793 When writing a char, write it directly into the pattern buffer rather
1794 than going needlessly through a temp char-array.
1795 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
1796 multibyte magic and remove the useless `#ifdef emacs'.
1797 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
1798 buffer.
1799
1800 * regex.h (struct re_pattern_buffer): Make field `multibyte'
1801 conditional on `emacs'.
1802
1803 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
1804
cc2d8c6b
KR
18052000-04-01 Ken Raeburn <raeburn@gnu.org>
1806
1807 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
1808 non-union-type versions of XMARK and friends here, because XMARK
1809 and friends won't work on an integer field if NO_UNION_TYPE is not
1810 defined.
1811 (make_number): Define as a function if it's not defined as a
1812 macro.
1813
09654086
KR
1814 * composite.c (run_composite_function): Use NILP when checking for
1815 nil.
1816 (syms_of_composite): Delete local var NARGS, pass an int as first
1817 argument to Fmake_hash_table.
1818
2387b382
KR
1819 * editfns.c (text_property_stickiness): Use NILP to test
1820 Lisp_Object boolean value.
1821 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
1822 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
1823 problems reading from and changing the same lisp value in an
1824 XSETSTRING call.
1825
27660e89
GM
18262000-04-01 Gerd Moellmann <gerd@gnu.org>
1827
1828 * term.c (TN_no_color_video): New variable.
1829 (term_init): Intitialize TN_no_color_video.
1830 (enum no_color_bit): New enumeration.
1831 (MAY_USE_WITH_COLORS_P): New macro.
1832 (turn_on_face): Use it to determine if attributes may be used
1833 combined with colors.
1834
3578db3c
KR
18352000-04-01 Ken Raeburn <raeburn@gnu.org>
1836
1837 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
1838 with int lvalues via casts; instead, just yield lisp object
1839 lvalues.
1840 (enlarge_window): Variable sizep now points to Lisp_Object. Use
1841 proper accessor macros.
1842 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
1843 (grow_mini_window): Fix typo getting int value of root->height.
1844
6fc556fd
KR
1845 * xdisp.c (compute_string_pos): Fix order of arguments to
1846 string_pos_nchars_ahead.
1847 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
1848 count arg to variable-arg routines like Frun_hook_with_args and
1849 Fformat.
587a49ab
GM
1850 (back_to_previous_visible_line_start)
1851 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
1852 fixed-arg routines like Fget_char_property and Fmake_string.
1853 (reconsider_clip_changes): Use XINT when comparing integer lisp
1854 objects, or passing them as int arguments.
587a49ab
GM
1855 (mark_window_display_accurate, insert_left_trunc_glyphs)
1856 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
1857 storing or passing integer values as lisp objects.
1858 (set_cursor_from_row, highlight_trailing_whitespace): Use
1859 INTEGERP, not implicit test against zero, for glyph object.
1860 (try_window_id): Don't use make_number when we want an int value.
1861
1862 * xfaces.c (xlfd_symbolic_value): Make last argument a
1863 Lisp_Object, to be consistent with callers.
1864 (Fbitmap_spec_p): Use XINT to get numeric value of height.
1865 (lface_hash): Apply XFASTINT to lisp values before folding in.
1866
1867 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
1868 fill in window width and height. Pass an int, not a lisp object,
1869 as first arg to Finsert.
1870
6e7b2457
GM
18712000-04-01 Gerd Moellmann <gerd@gnu.org>
1872
610d841e
GM
1873 * xfaces.c (realize_basic_faces): Block input while realizing
1874 the faces.
1875
6e7b2457
GM
1876 * keyboard.c (lispy_mouse_names): Add additional mouse names.
1877
1878 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
1879
aa110c0c
GM
18802000-03-31 Gerd Moellmann <gerd@gnu.org>
1881
1882 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 1883 or ASCII, handle case that per-char metric is null.
aa110c0c 1884
8801a864
KR
18852000-03-30 Ken Raeburn <raeburn@gnu.org>
1886
c6129d7e
KR
1887 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
1888
8801a864
KR
1889 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
1890 XSUBR, XBUFFER): Verify correct object type before returning
1891 pointer, using eassert.
1892 * frame.h (XFRAME): Likewise.
1893
1894 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
1895 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
1896 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
1897 type.
1898 * data.c (set_internal): Likewise.
1899 * dispextern.h (WINDOW_WANTS_MODELINE_P,
1900 WINDOW_WANTS_HEADER_LINE_P): Likewise.
1901 * fileio.c (auto_save_1): Likewise.
1902 * insdel.c (check_markers): Likewise.
1903 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
1904 * undo.c (record_insert): Likewise.
1905 * vmsproc.c (child_sig): Likewise.
1906 * window.c (unshow_buffer, window_loop): Likewise.
1907 * xterm.c (x_erase_phys_cursor): Likewise.
1908
8e7af858
GM
19092000-03-30 Gerd Moellmann <gerd@gnu.org>
1910
1911 * xfns.c (free_image_cache): Free the cache structure itself
1912 last, after all its members have been freed.
1913
1914 * lisp.h (xstrdup): Add prototype.
1915
1916 * alloc.c (xstrdup): Moved here from xfaces.c.
1917 (allocating_for_lisp): Variable removed.
1918 (lisp_malloc): Block input around the calls to malloc and
1919 mem_insert.
1920
1921 * xfaces.c (realize_tty_face): Use find_symbol_value instead
1922 of Fsymbol_value.
1923 (xstrdup): Moved to alloc.c.
1924
e0b8c689
KR
19252000-03-29 Ken Raeburn <raeburn@gnu.org>
1926
b96f9fb7
KR
1927 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
1928
1929 * emacs.c (main): Fix sense of no-loadup test.
1930
e0b8c689
KR
1931 * config.in (ENABLE_CHECKING): Undef.
1932
1933 * lisp.h (struct interval): Replace "parent" field with a union of
1934 interval pointer and Lisp_Object; add new bitfield to use as
1935 discriminant. Change other flag fields to bitfields.
1936 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
1937 is defined and the supplied test fails, print a message and
1938 abort.
1939 (eassert): New macro. Use CHECK to provide an assert-like
1940 facility.
1941
1942 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
1943 pointers; abort if the value looks like a lisp object.
1944 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
1945 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
1946 Modify for new interval parent definition.
1947
1948 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
1949 UNMARK_BALANCE_INTERVALS): Update references that need an
1950 addressable lisp object in the interval structure.
1951 (die): New function.
1952 (suppress_checking): New variable.
1953
1954 * intervals.c (interval_start_pos): Just return 0 if there's no
1955 parent object.
1956
f83c5440
GM
19572000-03-29 Gerd Moellmann <gerd@gnu.org>
1958
1959 * lread.c (read1): Accept `.' (period) as symbol start like in CL
1960 and earlier Emacs versions.
1961
1962 * keyboard.c (Ftop_level): Cancel busy-cursor.
1963
1964 * eval.c (call_debugger): Cancel busy-cursor.
1965
fdce64ff
KH
19662000-03-29 Kenichi Handa <handa@etl.go.jp>
1967
1968 * search.c (Freplace_match): Adjust multibyteness of the current
1969 buffer and NEWTEXT. Free allocated memory before signaling an
1970 error.
1971
f6a3f532
SM
19722000-03-28 Stefan Monnier <monnier@cs.yale.edu>
1973
1974 * regex.c (analyse_first): New function obtained by ripping out most
1975 of re_compile_fastmap and generalizing it a little bit so that it
1976 can also just return whether a given (sub)pattern can match the empty
1977 string or not.
1978 (regex_compile): Use `analyse_first' to decide whether the loop-check
1979 needs to be done or not for *, +, *? and +? (the loop check is costly
1980 for non-greedy repetition).
1981 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
1982
e9b309ac
DL
19832000-03-28 Dave Love <fx@gnu.org>
1984
bb15bd9a
DL
1985 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
1986 alpha.
1987
e9b309ac
DL
1988 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
1989
ed0767d8
SM
19902000-03-27 Stefan Monnier <monnier@cs.yale.edu>
1991
1992 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
1993 an expression.
1994 (enum re_opcode_t): Update description of succeed_n.
1995 (PATFETCH): Always define.
1996 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
1997 operators, char classes, shy-groups and intervals).
1998 Optimize special cases of intervals so as to only use succeed_n and
1999 jump_n when really needed.
2000 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
2001 that we don't have to handle the special cases any more.
2002 Simplify on_failure_jump handling as well.
2003
e11e7e46
JR
20042000-03-28 Jason Rumney <jasonr@gnu.org>
2005
2006 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
2007
88faab89
GM
20082000-03-27 Gerd Moellmann <gerd@gnu.org>
2009
182ff242
GM
2010 * s/freebsd.h (GC_SETJMP_WORKS): Define.
2011
2012 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 2013
182ff242
GM
2014 * alloc.c (mark_maybe_object): New function.
2015 (mark_memory): Use it.
2016 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
2017 (setjmp_tested_p, longjmp_done): New variables.
2018 (test_setjmp): New function.
2019 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
2020 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
2021
c1005d06
GM
2022 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
2023 to DEC_TEXT_POS and INC_TEXT_POS.
2024
2025 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
2026 with parameter MULTIBYTE_P.
2027
427ec082 2028 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
2029 MULTIBYTE_P.
2030
7439e5b9 2031 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
2032 buffers because it looks for multibyte character byte sequences
2033 which don't exist in unibyte text.
7439e5b9 2034
d9c545da
GM
2035 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
2036
11fd416e 2037 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
2038 [DEBUG_X_COLORS]: New functions.
2039 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
2040
2041 * xfns.c (x_set_cursor_color): Get color reference counts right.
2042
2043 * xterm.c (x_copy_color): New function.
2044 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
2045
2046 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
2047 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
2048 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
2049 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
2050 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
2051 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
2052 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
2053 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
2054 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
2055 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
2056
11fd416e
GM
2057 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
2058 names for handling per-buffer variables.
d9c545da
GM
2059
2060 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
2061 instead of MAX_BUFFER_LOCAL_VARS.
2062 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
2063
2064 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
2065
88faab89
GM
2066 * xfns.c (x_specified_cursor_type): New function.
2067 (x_set_cursor_type): Use it.
2068
2069 * buffer.h (struct buffer): Add cursor_type.
2070
d80f42b7
SM
20712000-03-26 Stefan Monnier <monnier@cs.yale.edu>
2072
2073 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 2074 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 2075 opcode.
d80f42b7
SM
2076 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
2077 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
2078 executing it as well as when popping it off the stack to find infinite
2079 loops in non-greedy repetition operators.
2080
89e80928
GM
20812000-03-26 Gerd Moellmann <gerd@gnu.org>
2082
3d4ff2dd
GM
2083 * doc.c (Qfunction_documentation): New variable.
2084 (syms_of_doc): Initialize Qfunction_documentation.
2085 (Fdocumentation): If FUNCTION is a symbol with non-nil
2086 `function-documentation' property, return a documentation derived
2087 from that.
2088
bd96bd79
GM
2089 * buffer.c (syms_of_buffer): Add default-cursor-type.
2090 (init_buffer_once): Don't let cursor_type have a local value
2091 in every buffer.
2092
19d1bc27
GM
2093 * xterm.c (x_display_and_set_cursor): Choose cursor depending
2094 on buffer-local value of cursor_type.
2095 (x_draw_bar_cursor): Add parameter WIDTH.
2096
2097 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
2098 (init_buffer_once): Set default cursor_type value to t.
2099 Mark cursor_type as local everywhere.
2100 (syms_of_buffer): New per-buffer variable cursor-type.
2101
89e80928
GM
2102 * buffer.h (struct buffer): Remove member local_var_flags,
2103 add local_flags.
2104 (MAX_BUFFER_LOCAL_VARS): New macro.
2105 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2106 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2107 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2108 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2109
2110 * print.c (print_object): Use new macros for per-buffer
2111 variables.
2112
2113 * category.c (Fset_category_table): Use new macros for per-buffer
2114 variables.
2115
2116 * buffer.c (buffer_permanent_local_flags): Make a char array.
2117 (max_buffer_local_idx): New variable.
2118 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2119 for new handling of per-buffer variables.
2120 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2121 (init_buffer_once): Initialize per-buffer vars differently.
2122 Set max_buffer_local_idx.
2123
2124 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2125 variables.
2126
2127 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2128 variables.
2129
2130 * data.c (do_symval_forwarding, store_symval_forwarding)
2131 (find_symbol_value, set_internal, default_value, Fset_default)
2132 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2133 per-buffer variables.
2134
2135 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2136
9a0dd3dc
GM
21372000-03-24 Gerd Moellmann <gerd@gnu.org>
2138
b68c375f
GM
2139 * xterm.c (x_term_init): Unblock input around call1 of
2140 Qvendor_specific_keysyms.
2141
9a0dd3dc
GM
2142 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2143 (find_defun_start): Consider an open parenthesis in column 0
2144 a defun start only if open_paren_in_column_0_is_defun_start is set.
2145 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2146
7973e637
SM
21472000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2148
2149 * eval.c (Fautoload): Add entry in load-history (if after dump).
2150 * lread.c (load-history): Update docstring.
2151
39210e90
GM
21522000-03-24 Gerd Moellmann <gerd@gnu.org>
2153
2154 * indent.c (Fvertical_motion): Always use the current buffer.
2155 Temporarily change the window's buffer, if necessary.
2156
72db3ab5
GM
21572000-03-23 Gerd Moellmann <gerd@gnu.org>
2158
2159 * xterm.c (fast_find_position): Make sure not to consider rows
2160 not visible in the window.
2161
990b2375
SM
21622000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2163
2164 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2165 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2166
ff4df011
JR
21672000-03-22 Jason Rumney <jasonr@gnu.org>
2168
2169 * w32menu.c (single_submenu): Set help string to NULL if none.
2170 (w32_menu_show): Set help string correctly.
2171 (add-menu-item): Set help string in MIIM_DATA for menu item.
2172 Load SetMenuItemInfoA explicitly.
2173 (w32_menu_display_help): New function.
427ec082 2174
ff4df011
JR
2175 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2176 (QCdata): Moved to xdisp.c.
2177
2178 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2179 (Vw32_charset_to_codepage_alist): Removed.
2180 (Vw32_charset_info_alist): New variable.
2181 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2182 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2183 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2184 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2185 with TODO comment.
2186 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2187 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2188 Define Vw32_charset_info_alist and w32_charset symbols.
2189
21902000-03-22 Jason Rumney <jasonr@gnu.org>
2191
2192 * makefile.nt (w32bdf.obj): Update dependencies.
2193
2194 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2195
2196 * w32fns.c: Include fontset.h after dispextern.h.
2197 (Fx_create_frame): Do not create fontset.
2198 (w32_load_system_font): Doc fix.
2199 (Fx_close_connection): Free full_name if it is not shared.
2200
2201 * w32term.c: Include fontset.h after dispextern.h.
2202 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2203 updated.
2204 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2205 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2206 (w32_font_is_double_byte): New function, needs body.
2207 (x_append_glyph): Set glyph->glyph_not_available_p.
2208 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2209 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2210 character, convert it to a unibyte character.
2211 (struct glyph_string): Delete member `charset'.
2212 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2213 calculating it is found.
2214 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2215 the case that per char metric is not available correctly.
2216 (x_fill_glyph_string): Handle the case that the specific glyph is
2217 not available correctly.
2218 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2219 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2220 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2221 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2222 fontset. Don't call FS_LOAD_FONT.
2223
439d5cb4
KR
22242000-03-22 Ken Raeburn <raeburn@gnu.org>
2225
2226 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2227 (INT_LISPLIKE): New macro.
2228 (NULL_INTERVAL_P): Use it.
2229 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2230 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2231 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2232
2233 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2234 explicit references to "parent" field of struct interval and
2235 associated unclean type conversions.
2236 * intervals.c (create_root_interval, root_interval, rotate_right,
2237 rotate_left, balance_possible_root_interval, split_interval_right,
2238 split_interval_left, interval_start_pos, find_interval,
2239 next_interval, previous_interval, update_interval,
2240 adjust_intervals_for_insertion, delete_node, delete_interval,
2241 adjust_intervals_for_deletion, merge_interval_right,
2242 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2243 copy_intervals_to_string): Likewise.
2244 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2245 Likewise.
2246 * syntax.c (update_syntax_table): Likewise.
2247
2248 * intervals.c (reproduce_tree_obj): New function, like
2249 reproduce_tree but takes a Lisp_Object for the parent. Declare
2250 with prototype.
2251 (graft_intervals_into_buffer): Use it when appropriate.
2252 (reproduce_tree): Declare with prototype.
2253 (balance_possible_root_interval): Check that the parent is a lisp
2254 object before trying to examine its type.
2255
ee1c5b21
GM
22562000-03-22 Gerd Moellmann <gerd@gnu.org>
2257
2258 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2259 as strings only if both are known to be strings.
2260
2261 * s/openbsd.h (LIBS_TERMCAP): Undef.
2262
1fb352e0
SM
22632000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2264
2265 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2266 definitions for non-Emacs compilation.
2267 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2268 outside of `#ifdef emacs'.
2269 (print_partial_compiled_pattern): Update.
2270 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2271 (re_compile_fastmap): Merge handling of charset and charset_not (for
2272 emacs and non-emacs compilation as well).
2273 Similarly for (not)categoryspec and (not)syntaxspec.
2274 Don't use the fastmap when reaching `anychar' since the added
2275 complexity is not justified.
2276 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2277 and (not)syntaxspec. Merge (not)categoryspec.
2278
fdaa1f77
KH
22792000-03-22 Kenichi Handa <handa@etl.go.jp>
2280
ff1a0d8e
KH
2281 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2282 FACE_FOR_CHAR): Define them differently for the configuration of
2283 --without-x.
fdaa1f77 2284
d152fb46
DL
22852000-03-21 Dave Love <fx@gnu.org>
2286
2287 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2288 doc string.
2289
d2cafc8c
GM
22902000-03-21 Gerd Moellmann <gerd@gnu.org>
2291
2292 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2293 (lface_fully_specified_p): Don't check contents of
2294 LFACE_FONT_INDEX because that attribute is optional.
2295 (realize_x_face): Remove now unwarranted xassert.
2296
9111d4b5
KH
22972000-03-21 Kenichi HANDA <handa@etl.go.jp>
2298
2299 The following changes are to make font selection based on
2300 characters, not charset. In addition, they recover fontset
2301 facilities while utilizing the new font selection mechanism.
2302
6c4bfdc0
KH
2303 * Makefile.in (fontset.o): Depend on dispextern.h.
2304
2305 * alloc.c (mark_face_cache): Don't mark face->registry.
2306
9111d4b5
KH
2307 * dispextern.h (struct glyph): New member glyph_not_available_p.
2308 Use 22 bits for face_id.
2309 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2310 (struct face): Delete member registry, new member ascii_face.
2311 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2312 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2313 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2314 (struct it): Delete member charset, new member
2315 glyph_not_available_p.
2316
2317 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2318 (struct fontset_info, struct fontset_data): Structs removed.
2319 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2320 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2321 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2322 (fs_free_face_fontset, fontset_font_pattern,
2323 face_suitable_for_char_p, face_for_char,
2324 make_fontset_for_ascii_face): Extern them.
2325 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2326 (FS_LOAD_FACE_FONT): New macro.
2327
2328 * fontset.c: All codes rewritten or adjusted for the change of
2329 fontset implementation. Now fontset is represented by char table.
2330 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2331 removed.
2332 (my_strcasecmp): Function removed.
2333 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2334 variables.
2335 (AREF, ASIZE): New macros.
2336 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2337 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2338 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2339 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2340 fontset_id_valid_p, font_family_registry, fontset_name,
2341 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2342 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2343 New functions.
2344 (fs_load_font): New arg FACE. Caller changed.
2345 (fs_query_fontset): Argument changed. Caller changed.
2346 (Fquery_fontset): call fs_query_fontset.
2347 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2348 Functions removed.
2349 (clear_fontset_elements, check_registry_encoding,
2350 check_fontset_name): New functions.
2351 (syms_of_fontset): Set char-table-extra-slots property of fontset
2352 to 3. Staticpro and initialize Vfontset_table and
2353 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2354
2355 * frame.h (struct frame): Member `fontset_data' removed.
2356 (FRAME_FONTSET_DATA): Macro removed.
2357
2358 * frame.c (make_frame): Don't allocate f->fontset_data.
2359 (Fdelete_frame): Don't free f->fontset_data.
2360
6c4bfdc0
KH
2361 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2362
9111d4b5
KH
2363 * xdisp.c (charset_at_position): Function removed.
2364 (init_iterator): Don't set member charset of struct `it'.
2365 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2366 next_element_from_display_vector, insert_left_trunc_glyphs):
2367 Likewise.
2368 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2369 FACE_FOR_CHARSET.
2370 (get_next_display_element, append_space,
2371 extend_face_to_end_of_line): Likewise.
2372
2373 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2374 Variables removed.
2375 (clear_font_table, frame_update_line_height, load_face_font):
2376 Adjusted for the change of fontset implementation.
2377 (load_face_fontset_font): Function removed.
2378 (pixel_point_size): New function.
2379 (font_list): Argument type changed. Caller changed.
2380 (LFACE_FONT): New macro.
2381 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2382 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2383 Lisp_Object. Determine the font name by actually loading a font
2384 by the specified pattern. Set LFACE_FONT (lface) to the specified
2385 pattern. Even if a font is not found, don't try alternatives.
2386 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2387 (set_font_frame_param): If `font' is specified in lface, use it.
2388 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2389 (lface_same_font_attributes_p): Likewise.
2390 (make_realized_face): Arguent changed. Caller changed. Set
2391 face->ascii_face to face itself.
2392 (free_realized_face): Free face->fontset if face is for ASCII.
2393 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2394 deduce_unibyte_registry, x_charset_registry): Functions removed.
2395 (free_realized_multibyte_face): New function.
2396 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2397 changed. Caller changed.
2398 (try_font_list): Argument type changed.
2399 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2400 (choose_face_font): Argument changed. Handle fontset properly.
2401 (choose_face_fontset_font): Function removed.
2402 (realize_default_face, realize_named_face): Don't remove the
2403 former face here.
2404 (realize_face): Argument changed. Caller changed. Remove face
2405 with the arg former_face_id in advance. Load font for the new
2406 face.
2407 (realize_x_face): Argument changed. Caller changed. For a
2408 multibyte character, share fontset with base_face. For a single
2409 byte character, make a new realized fontset. Don't load a font
2410 here.
2411 (realize_tty_face): Argument changed. Caller changed.
2412 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2413 (face_at_buffer_position): Don't check multibyte_p for returning
2414 DEFAULT_FACE_ID.
2415 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2416 FACE_SUITABLE_FOR_CHARSET_P.
2417 (syms_of_xfaces): Remove code for Qx_charset_registry and
2418 Vface_default_registry.
2419
6c4bfdc0
KH
2420 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2421 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2422 (x_per_char_metric): Don't try FONT->default_char. Even if
2423 pcm->width is zero, glyph bits may exist.
2424 (x_encode_char): Always initialize char2b->byte1.
2425 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2426 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2427 changed.
2428 (x_append_glyph): Set glyph->glyph_not_available_p.
2429 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2430 it->charset. Handle the case that per char metric is not
2431 available. If it->multibyte_p is zero and it->c is a multibyte
2432 character, convert it to a unibyte character.
2433 (struct glyph_string): Delete member `charset'.
2434 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2435 the case that per char metric is not available correctly.
2436 (x_fill_glyph_string): Handle the case that the specific glyph is
2437 not available correctly.
2438 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2439 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2440 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2441 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2442 fontset. Don't call FS_LOAD_FONT.
2443
2444 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2445 (x_create_tip_frame): Likewise.
2446 (Fx_close_connection): Free full_name of font_info.
2447
2448 * fns.c (optimize_sub_char_table): New function.
2449 (Foptimize_char_table): New function.
2450 (syms_of_fns): Defsubr Soptimize_char_table.
2451
b33dd3b0
GM
24522000-03-20 Gerd Moellmann <gerd@gnu.org>
2453
2454 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2455 only if buffer is displayed in some window.
2456
2457 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2458 (try_window_reusing_current_matrix): Don't call scroll run
2459 function if run's current and desired position are the same;
2460 this prevents cursor flickering.
2461
4e8a9132
SM
24622000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2463
2464 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2465
2466 * regex.c (RE_STRING_CHAR): New macro.
2467 (GET_CHAR_AFER_2): Remove.
2468 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2469 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2470 (print_partial_compiled_pattern, re_compile_fastmap)
2471 (re_match_2_internal): Remove on_failure_jump_exclusive.
2472 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2473 optimization only need to work for * (ie. can use of_keep_string_jump).
2474 Remove the special case for .*\n since it is now covered by the general
2475 optimization.
2476 (re_search_2): Don't bother with `room'.
2477 (skip_one_char): New function.
2478 (skip_noops): Simplify since `memory' is not needed any more.
2479 (mutually_exclusive_p): Restructure slightly to use `switch' and
2480 add handling for "all" remaining cases.
2481 (re_match_2_internal): Change on_failure_jump_smart to use
2482 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2483 rather than on_failure_jump_exclusive.
2484
2136fdd4
GM
24852000-03-19 Gerd Moellmann <gerd@gnu.org>
2486
2487 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2488 number of bits per RGB because it's everywhere used as the depth
2489 of the visual.
2490
2491 * term.c (calculate_costs): Remove code dealing with X frames.
2492
e53ae11c
RS
24932000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2494
2495 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2496
d7b511c4
GM
24972000-03-18 Gerd Moellmann <gerd@gnu.org>
2498
2499 * lread.c (read_integer): Unread the last char not consumed.
2500
16b5d424
GM
25012000-03-17 Gerd Moellmann <gerd@gnu.org>
2502
2503 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2504 which are in the process of being deleted.
16b5d424 2505
1fa28578
GM
25062000-03-16 Gerd Moellmann <gerd@gnu.org>
2507
83488cce
GM
2508 * Makefile.in (mostlyclean): Add `*.core'.
2509 (clean): Add `bootstrap-emacs'.
2510
1fa28578
GM
2511 * lread.c (read_integer): New function.
2512 (read1): Support read syntax #o, #x, #b, #r.
2513
99633e97
SM
25142000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2515
1fa28578
GM
2516 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2517 make sure POINTER_TO_OFFSET gives the same value before and after
2518 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2519 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2520 (debug): Now only active if > 0 rather than if != 0.
2521 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2522 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2523 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2524 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2525 (store_op1, store_op2, insert_op1, insert_op2)
2526 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2527 (group_in_compile_stack): Move to after its arg's types are
2528 declared and add a prototype.
99633e97 2529 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2530 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2531 wrapper.
99633e97 2532 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2533 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2534 indentation of the greedy-op and shy-group code.
99633e97
SM
2535 (at_(beg|end)line_loc_p): Fix argument's types.
2536 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2537 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2538 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2539 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2540 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2541 QUIT unconditionally.
99633e97 2542
699238d9
GM
25432000-03-15 Gerd Moellmann <gerd@gnu.org>
2544
2545 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2546 a sole completion.
2547
2548 * process.c (send_process): Add a hint that the function
2549 can call Lisp code to its comment.
2550
2551 * lread.c (load_dangerous_libraries): New variable.
2552 (Vbytecomp_version_regexp): New variable.
2553 (safe_to_load_p): New function.
2554 (Fload): Handle files not compiled with Emacs specially.
2555 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2556
34e23e5a
GM
25572000-03-14 Gerd Moellmann <gerd@gnu.org>
2558
9c763cca
GM
2559 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2560
2561 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2562 support functions only if HAVE_X11R6_XIM is defined.
2563 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2564
2565 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2566
2567 * xfns.c (X_I18N_INHIBITED): Don't define.
2568 (create_frame_xic): Remove conditional compilation on
2569 X_I18N_INHIBITED.
2570 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2571
2572 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2573 (HAVE_X11R6_XIM): Define.
2574
2575 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2576
34e23e5a
GM
2577 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2578 If set, call XSynchronize.
2579
66f0296e
SM
25802000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2581
34e23e5a
GM
2582 * regex.c: Declare a new type `re_char' used throughout the code
2583 for the string char type. It's `const unsigned char' to match the
2584 rest of Emacs. Consistently make sure all pointers to strings use
2585 it and make sure all pointers into the pattern use `unsigned
2586 char'.
66f0296e 2587 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2588 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2589 code duplication.
66f0296e
SM
2590
2591 * charset.h (GET_CHAR_AFTER_2): Remove.
2592 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2593
854a025c
KR
25942000-03-12 Ken Raeburn <raeburn@gnu.org>
2595
2596 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2597 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2598 of them try to use backquotes.
2599
b9d2c7e2
DL
26002000-03-12 Dave Love <fx@gnu.org>
2601
2602 * unexelf.c: Restore changes of 1999-10-19.
2603 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2604 fix its type and alignment; copy it from current process.
2605
5e5dff44
GM
26062000-03-12 Gerd Moellmann <gerd@gnu.org>
2607
9b2f3c38
GM
2608 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2609 has been found. Fix bug not computing timer's predecessor.
2610
427ec082 2611 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
2612 file name.
2613
e1cff360
GM
2614 * window.c (Fsave_window_excursion): Doc fix.
2615
5e5dff44
GM
2616 * xfns.c (x_defined_color): Rewritten to use
2617 x_allocate_nearest_color.
2618
e411ce4b
EZ
26192000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2620
2621 * msdos.c (vga_installed): New function, code moved from
2622 dos_set_window_size.
2623 (Qbar, Qcursor_type, outside_cursor): New variables.
2624 (syms_of_msdos): Intern and staticpro them.
2625 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2626 shape used outside Emacs when called for the first time.
2627 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2628 cursor shape used outside Emacs.
2629 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2630 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2631 type has changed.
2632 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2633 parameters specify the cursor. Make qreverse a global
2634 variable (renamed to Qreverse).
2635
80460654
GM
26362000-03-09 Gerd Moellmann <gerd@gnu.org>
2637
2638 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2639
95cd4c40
SM
26402000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2641
2642 This is a big redesign of failure-stack and register handling, prompted
2643 by bugs revealed when trying to add shy-groups. Overall, what happened
2644 is that loops are now structured a little differently, groups can be
2645 shy and the code is a little simpler.
2646
2647 * regex.h: Update the copyright.
2648 (RE_SHY_GROUPS): New value.
2649 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2650 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2651
80460654
GM
2652 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2653 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2654 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2655 for (start|stop)_memory since they now only take one argument (the
2656 second has becomes unnecessary).
2657 (print_partial_compiled_pattern): Adjust for changes in
2658 re_opcode_t.
2659 (print_compiled_pattern): Use %ld to printf long ints and flush to
2660 make debugging a little easier.
95cd4c40
SM
2661 (union fail_stack_elt): Make the integer unsigned.
2662 (struct fail_stack_type): Add a `frame' element.
2663 (INIT_FAIL_STACK): Init `frame' as well.
2664 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2665 (DEBUG_PUSH, DEBUG_POP): Remove.
2666 (NUM_REG_ITEMS): Remove.
2667 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2668 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2669 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2670 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2671 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2672 macros.
2673 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2674 address pushed is not the destination of the jump but the source
2675 of it instead.
95cd4c40
SM
2676 (NUM_FAILURE_ITEMS): Remove.
2677 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2678 registers before the actual failure point). Don't hardcode any
2679 meaning for str==NULL anymore.
95cd4c40 2680 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2681 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2682 Remove.
95cd4c40
SM
2683 (REG_UNSET_VALUE): Use NULL (why not?).
2684 (compile_range): Remove declaration since it doesn't exist.
2685 (struct compile_stack_elt_t): Remove inner_group_offset.
2686 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2687 (regex_grow_registers): Remove dead code.
2688 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2689 (regex_compile): Add shy-groups Change loops to use
2690 on_failure_jump_smart&jump instead of
2691 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2692 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2693 variable to me). Use `jump' instead of `jump_past_alt' and don't
2694 bother with push_dummy_failure in alternatives since it is now
2695 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2696 emacs' for (re)allocating the stack.
2697 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2698 from loop when bufp->can_be_null rather than jumping to `done'.
2699 Avoid jumping backwards so as to ensure termination. Use
2700 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2701 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2702 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2703 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2704 improve mutually_exclusive_p to handle ".+\n".
2705 (lowest_active_reg, highest_active_reg,
2706 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2707 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2708 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2709 variables. Push register (in `start_memory') on the stack rather
2710 than storing it in old_reg(start|end). Remove the cycle detection
2711 from `stop_memory', replaced by the use of on_failure_jump_loop
2712 for greedy loops. Add code for the new on_failure_jump_<foo>.
2713 Remove ad-hoc code in `on_failure_jump' to push more registers in
2714 the case of a loop. Take out code from `maybe_pop_jump' into
2715 separate functions and adapt it to the semantics of
2716 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2717 and push_dummy_failure. Remove dummy_failure handling and
2718 handling of `failures to jump to on_failure_jump' (this last one
2719 was already dead code, it seems).
2720 (group_match_null_string_p, alt_match_null_string_p)
2721 (common_op_match_null_string_p): Remove.
95cd4c40 2722
7397acc4
DL
27232000-03-08 Dave Love <fx@gnu.org>
2724
2725 * config.in: Don't depend on __STDC__ for volatile.
2726 Add POINTER_TYPE, PTR, PROTOTYPES.
2727
2728 * hftctl.c, strftime.c: Use PROTOTYPES.
2729 * eval.c (find_handler_clause): Likewise.
2730
2731 * mem-limits.h: Use POINTER_TYPE.
2732
2733 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
2734 (memory_warnings): Declare using POINTER_TYPE.
2735
5e91ff9e
GM
27362000-03-08 Gerd Moellmann <gerd@gnu.org>
2737
feab4fba
GM
2738 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
2739
25edb08f
GM
2740 * xdisp.c (display_echo_area): Temporarily inhibit garbage
2741 collection.
2742
5e91ff9e
GM
2743 * xfns.c: Remove obsolete code in #if 0.
2744 (Fx_focus_frame): New function.
2745
a735b7e1
KH
27462000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2747
2748 * coding.c (coding_category_name): Add coding-category-utf-8,
2749 coding-category-utf-16-be, coding-category-utf-16-le.
2750 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
2751 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
2752 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
2753 (detect_coding_utf_8): New function.
2754 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
2755 UTF_16_LOW_SURROGATE_P): New macros.
2756 (detect_coding_utf_16): New function
2757 (detect_coding_mask): When priorities are specified, skip any
2758 categories that have `nil' coding-system. Fix bug of returning
2759 wrong mask when PRIORITIES is specified and detect_coding_XXX()
2760 returns a mask not set in PRIORITIES.
2761 (detect_eol_type_in_2_octet_form): New function.
2762 (detect_eol): selects detect_eol_type_XXX to call according to
2763 cooding->category_idx.
2764 (detect_coding_system): Remove `nil' coding-system in the result.
2765 (Fupdate_coding_systems_internal): Update all coding-categories.
2766
2767 * coding.h (CODING_CATEGORY_IDX_UTF_8,
2768 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
2769 macros.
2770 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
2771 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
2772 CODING_CATEGORY_IDX_UTF_16_LE.
2773 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
2774 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
2775 (CODING_CATEGORY_MASK_ANY): Include the above macros.
2776 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
2777
9994cc69
GM
27782000-03-07 Gerd Moellmann <gerd@gnu.org>
2779
e9b4e5ff
GM
2780 * doc.c (Fdocumentation_property): If value is not a string,
2781 and doesn't refer to etc/DOC, evaluate it to obtain a string.
2782
f7daf1e1
GM
2783 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
2784 close the display with XtCloseDisplay. This caused a bus error
2785 on OpenWindows.
2786
9994cc69
GM
2787 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
2788 complete but not unique.
2789
4336c705
GM
27902000-03-06 Gerd Moellmann <gerd@gnu.org>
2791
18bb0684
GM
2792 * process.c (send_process): Remove local variable `procname' that
2793 might become invalid when a GC happens. Instead, access the
2794 process name slot directly.
2795
4336c705
GM
2796 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
2797 orig_height if set.
2798
2799 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
2800 orig_height if set.
2801
515d0d0e
EZ
28022000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2803
2804 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
2805 glyph matrices have been freed.
2806
100b3cbb
GM
28072000-03-05 Gerd Moellmann <gerd@gnu.org>
2808
50df5e5a 2809 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 2810 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
2811
2812 * xfns.c (QCdata): Moved to xdisp.c.
2813
2814 * xdisp.c (QCdata): Moved here from xfns.c.
2815 (syms_of_xdisp): Initialize QCdata.
2816
2817 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
2818
2819 * window.c (coordinates_in_window): Use
2820 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
2821 FRAME_INTERNAL_BORDER_WIDTH.
2822
100b3cbb 2823 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 2824 it is obviously invalid.
100b3cbb
GM
2825
2826 * xterm.c (x_term_init): Create a colormap if not using the
2827 default visual.
2828
2829 * xterm.h (select_visual): Change prototype.
2830
2831 * xfns.c (select_visual): Rewritten. Recognize user-specified
2832 visual classes.
2833 (visual_classes): New variable.
2834
64d739c4
GM
28352000-03-04 Gerd Moellmann <gerd@gnu.org>
2836
2837 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
2838 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
2839 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
2840 (x_decode_color): Don't handle allocation of white and black
2841 specially.
2842 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
2843 XtNcolormap resources.
2844 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
2845 (Fx_create_frame): Initialize color members of x_output structure.
2846 (xpm_load): Pass colormap to XPM lib.
2847
2848 * xfaces.c (x_free_colors): Access colormap of frame using
2849 FRAME_X_COLORMAP. Be paranoid about freeing black and white
2850 when default colormap is used.
2851
2852 * xterm.c (x_term_init): Set Colormap member of x_display_info
2853 structure. Copy colormap if resource `privateColormap' is
2854 specified (PseudoColor only).
2855 (x_setup_relief_color): Access colormap of frame using
2856 FRAME_X_COLORMAP.
2857
2858 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
2859 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
2860
c3cee013
JR
28612000-03-04 Jason Rumney <jasonr@gnu.org>
2862
2863 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
2864 other non-platform-specific equivalents.
64d739c4 2865 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
2866 specific functions and macros as their w32 equivalents where
2867 non-platform-specifics are not available.
2868 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
2869 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
2870 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
2871 (frame_update_line_height): Use macros to access f->output_data.
2872 (defined_color): Remove FIXME comments; fixed.
2873 (x_face_list_fonts, prepare_face_for_display): Put X specifics
2874 into #ifdef blocks. Add WINDOWSNT blocks.
2875 (Fx_list_fonts): Use macros for accessing font data.
2876 (set_lface_from_font_name): Different default fonts for X and
2877 WINDOWSNT.
2878 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
2879 scalable for backward compatibility.
64d739c4 2880 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
2881 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
2882
64d739c4 2883 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
2884 syms_of_w32faces.
2885
2886 * makefile.nt (w32faces.obj): Remove.
2887 (xfaces.obj): Add.
2888
807cc41c
JR
28892000-03-03 Jason Rumney <jasonr@gnu.org>
2890
2891 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
2892 correct parameters.
2893
0007072a
KR
28942000-03-03 Ken Raeburn <raeburn@gnu.org>
2895
2896 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
2897 standard ELF definitions here if the system header does not.
2898
71a6ba55
GM
28992000-03-03 Gerd Moellmann <gerd@gnu.org>
2900
2901 * xterm.c (PER_CHAR_METRIC): Removed.
2902 (x_per_char_metric_1, x_default_char): New functions.
2903 (x_per_char_metric): If font's default char is invalid, return
2904 metrics of a suitably chosen usable default char.
2905 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
2906 char, replace occurrences of unprintable chars with a suitably
2907 chosen usable default char.
71a6ba55 2908
900fa1f1
GM
29092000-03-02 Gerd Moellmann <gerd@gnu.org>
2910
42f55fe0
GM
2911 * xterm.c (note_mouse_highlight): Return quickly if frame's
2912 glyph matrices have been freed.
2913
2914 * dispnew.c (free_glyphs): Block input while freeing matrices.
2915
900fa1f1
GM
2916 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
2917
2918 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
2919 x_free_colors.
2920
2921 * dispextern.h (x_free_colors): Add prototype.
2922
2923 * xfaces.c (x_free_colors): New function.
2924 (unload_color, free_face_colors): Use it.
2925
2f950292
EZ
29262000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2927
2928 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
2929
2930 * window.c [MSDOS]: Include msdos.h.
2931
54d04320
DL
29322000-03-02 Dave Love <fx@gnu.org>
2933
2934 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
2935
2936 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
2937 set C_OPTIMIZE_SWITCH for gcc.
2938
0ba93ac4
KH
29392000-03-02 Kenichi Handa <handa@etl.go.jp>
2940
2941 * coding.c (coding_save_composition): Be sure to allocate
2942 composition data area in coding even if there's no composition in
2943 the current run.
2944
a2bc11d4
JR
29452000-03-01 Jason Rumney <jasonr@gnu.org>
2946
2947 * w32term.c: Equivalent changes to those made to xterm.c on
2948 2000-02-25 and 2000-02-24.
2949
2950 * w32fns.c: Equivalent changes to those made to xfns.c on
2951 2000-02-25 and 2000-02-21.
2952
2953 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
2954 correct line-end convention is followed.
2955
2956 * w32menu.c [HAVE_BOXES]: Remove #undef.
2957 (single_keymap_panes): Remove code for simulating checkmarks.
2958 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
2959 Remove code for drawing simulated checkmarks.
2960 (w32_menu_show): make unibyte help string correctly.
2961 (add_menu_item): draw standard Windows checkmarks. Draw radio
2962 buttons as radio buttons if possible.
2963
72d19d75
GM
29642000-03-01 Gerd Moellmann <gerd@gnu.org>
2965
2df636f4
GM
2966 * sysdep.c (start_of_text): Don't define this function for NetBSD
2967 with ELF.
2968
427ec082 2969 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
2970 Don't define.
2971 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
2972 (LINKER): Don't undef if __NetBSD__ is defined.
2973
2974 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
2975
2976 * fileio.c [__NetBSD__]: Define `unix'.
2977
72d19d75
GM
2978 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
2979
ed4d0512
GM
29802000-02-29 Gerd Moellmann <gerd@gnu.org>
2981
50b1039f
GM
2982 * atimer.c (start_atimer): Don't abort when timers are stopped.
2983 (append_atimer_lists): New function.
2984 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
2985 arbitrary lists of stopped and running atimers.
2986
ed4d0512
GM
2987 * atimer.c (cancel_atimer): Handle canceling an atimer when
2988 some timers are stopped.
2989
2990 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
2991 after canceling it.
2992
2993 * fns.c (maybe_resize_hash_table): Handle case of new size
2994 coming out as being the same as old size.
2995
387023ee
JR
29962000-02-27 Jason Rumney <jasonr@gnu.org>
2997
2998 * makefile.nt: Add atimer.h to dependencies.
2999 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
3000 * w32console.c: Only disable window system features for dispextern.h
3001 (initialize_w32_display): Build a display info for the console.
3002 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
3003 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
3004 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
3005 as 2 button mice.
3006 * w32gui.h (struct W32FontStruct): Revert last change after change
3007 to xdisp.c.
3008 * w32menu.c (single_submenu): Set up help string.
3009 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
3010 (w32_dialog_show): Set up help string.
3011 * w32term.c (w32_display_info_for_display): Remove unused function.
3012 (w32_draw_bitmap): Use pre-built bitmaps.
3013 (w32_initialize_display_info): New function to initialize parts of
3014 display info that are common to both GUI and console frames.
3015 (w32_term_init): Use w32_initialize_display_info. Do not set
3016 Vw32_num_mouse_buttons here, as it is not called for console
3017 frames. Build bitmaps for indicating truncated lines etc.
3018 (x_delete_display): Destroy pre-built bitmaps.
3019 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
3020 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
3021
4516715a
DL
30222000-02-27 Dave Love <fx@gnu.org>
3023
3024 * lisp.h: Add a bunch of prototypes.
3025
171ca836
KH
30262000-02-26 Kenichi Handa <handa@etl.go.jp>
3027
3028 * keyboard.c (read_char): Set `usec' correctly.
3029
4013921d
KH
30302000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
3031
3032 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
3033 `lambda', set reg[RRR] to the map index.
3034 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
3035 reg[RRR] to 0. Otherwise, set it to -1.
3036
9244a058
GM
30372000-02-25 Gerd Moellmann <gerd@gnu.org>
3038
2df636f4 3039 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 3040
f43d79c1 30412000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 3042
f43d79c1
GM
3043 * fileio.c (Ffile_symlink_p): If result starts with a `/'
3044 and contains a `:', prepend `/:'.
3045
3046 * window.c (select_window_1): If selected_window is nil,
3047 don't "swap out" the buffer's point.
3048 (Fset_window_configuration): Set selected_window to nil
3049 before calling Fselect_window.
3050 (unshow_buffer): Don't set point in buffer from window's point
3051 if another more recently selected window also shows the buffer.
3052
bed0c171
GM
30532000-02-25 Gerd Moellmann <gerd@gnu.org>
3054
449c3c52
GM
3055 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
3056
f5b58615
GM
3057 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
3058 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
3059 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
3060 variables.
3061 (DEFAULT_BUSY_CURSOR_DELAY): New define.
3062 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
3063 (hide_busy_cursor): New functions.
3064 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
3065
3066 * minibuf.c (read_minibuf): Cancel busy-cursor.
3067
3068 * keyboard.c (command_loop_1): Call start_busy_cursor before
3069 Fcommand_execute and cancel_busy_cursor after it.
3070 (timer_check): Remove busy-cursor code.
3071 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
3072 cursor timer.
3073
3074 * process.c (wait_reading_process_input): Remove busy-cursor code.
3075
3076 * eval.c (Fsignal): Call cancel_busy_cursor instead of
3077 Fx_hide_busy_cursor.
3078
3079 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
3080 Remove prototyoes.
3081 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
3082
3083 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
3084
3085 * xterm.c (XTread_socket): Remove busy-cursor code.
3086
4eb8436f
GM
3087 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
3088 (build_frame_matrix_from_leaf_window): Put code handling
3089 glyph row's not being a slice of a frame row in #if 0.
3090 (sync_window_with_frame_matrix_rows): New function.
3091 (frame_row_to_window): New function.
3092 (mirror_line_dance): Handle copies between windows.
3093
3cb65b0e
GM
3094 * lread.c (Fload): Use `xfree' instead of `free'.
3095 (init_obarray): Use `xmalloc' instead of `malloc'.
3096
bed0c171
GM
3097 * window.c (Fset_window_buffer): Set WINDOW to the window
3098 after decoding.
2add4349
GM
3099 (coordinates_in_window): Take frame's internal border width
3100 into account.
bed0c171 3101
42088c12
GM
31022000-02-24 Gerd Moellmann <gerd@gnu.org>
3103
3104 * xterm.c (x_display_and_set_cursor): Display cursor of
3105 non-selected windows depending on the setting of
3106 cursor_in_non_selected_windows.
3107
3108 * xdisp.c (cursor_in_non_selected_windows): New variable.
3109 (syms_of_xdisp): DEFVAR_BOOL it.
3110
d1e103b2
GM
31112000-02-23 Gerd Moellmann <gerd@gnu.org>
3112
723e779c
GM
3113 * data.c (Fstring_to_number): If number is greater than what
3114 fits into an integer, return a float.
3115
d1e103b2
GM
3116 * eval.c (specbind): Remove references to
3117 keyword_symbols_constant_flag.
3118
3119 * data.c (keyword_symbols_constant_flag): Removed.
3120 (Fmakunbound, set_internal, syms_of_data): Remove references to
3121 keyword_symbols_constant_flag.
3122
3123 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3124
214f877f
KH
31252000-02-23 Kenichi Handa <handa@etl.go.jp>
3126
3127 * syntax.c (multibyte_syntax_as_symbol): New variable.
3128 (syms_of_syntax): Declare it as a Lisp variable.
3129 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3130 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3131 nonzero, treat all multibyte characters as symbol.
42088c12 3132 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3133 characters.
3134
130adcb7
EZ
31352000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3136
3cb65b0e 3137 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3138 a deleted frame.
3139
17cbbf95
GM
31402000-02-21 Gerd Moellmann <gerd@gnu.org>
3141
3142 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3143
3144 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3145 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3146
beb0bc36
DL
31472000-02-21 Dave Love <fx@gnu.org>
3148
3149 * frame.c (Vmouse_position_function): New variable.
3150 (Fmouse_position): Use it.
3151 (syms_of_frame): Install it.
3152
3153 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3154
1d92afcd
GM
31552000-02-20 Gerd Moellmann <gerd@gnu.org>
3156
3157 * fileio.c (Finsert_file_contents): Unbind the binding of
3158 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3159
3160 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3161 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3162 (specbind, unbind_to): Handle most common case of non-constant
3163 symbol with trivial value specially.
3164
3165 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3166
2d06696f
RS
31672000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3168
3169 * data.c (Fmake_variable_buffer_local): Doc fix.
3170 Init found_for_buffer to 0.
3171 (Fmake_variable_frame_local): If the variable has already
3172 been buffer-local, set the check_frame field.
3173
1d4311c3
EZ
31742000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3175
3176 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3177 produced for CODING_MODE_LAST_BLOCK requires.
3178
2dc95ddd
DL
31792000-02-18 Dave Love <fx@gnu.org>
3180
3181 * keyboard.c (echo_keystrokes): Remove declaration.
3182 (Vecho_keystrokes) New variable.
3183 (read_char, record_menu_key, read_key_sequence): Use it to allow
3184 use of float value.
3185 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3186
3187 * lread.c: Undef feature selection macros before defining.
3188
f0930f35
GM
31892000-02-18 Gerd Moellmann <gerd@gnu.org>
3190
3191 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3192 for symbols other than the symbol in question.
3193
e3d4de90
DL
31942000-02-17 Dave Love <fx@gnu.org>
3195
3196 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3197
0b378936
GM
31982000-02-17 Gerd Moellmann <gerd@gnu.org>
3199
d621caf7
GM
3200 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3201
0b378936
GM
3202 * alloc.c (enum mem_type): Compile unconditionally.
3203
3b451f74
EZ
32042000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3205
3206 * xfaces.c (tty_defined_color): Don't return faulire indication
3207 for unspecified-fg and unspecified-bg pseudo-colors.
3208
10689a01
GM
32092000-02-17 Gerd Moellmann <gerd@gnu.org>
3210
1216f5e4
GM
3211 * alloc.c (mark_object): Don't mark symbol names in pure space.
3212 (gc_sweep): Don't unmark symbol names in pure space.
3213
3214 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3215 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3216 [GC_MARK_STACK]: New defines.
427ec082 3217 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3218 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3219
3220 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3221
3222 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3223 allocate_buffer instead of xmalloc.
3224
3225 * alloc.c (toplevel): Include setjmp.h.
3226 (PURE_POINTER_P): New define.
3227 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3228 (Vdead) [GC_MARK_STACK]: New variable.
3229 (lisp_malloc): Add parameter TYPE, call mem_insert if
3230 GC_MARK_STACK is defined.
3231 (allocate_buffer): New function.
427ec082 3232 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3233 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3234 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3235 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3236 (MEM_NIL) [GC_MARK_STACK]: New define.
3237 (struct mem_node) [GC_MARK_STACK]: New structure.
3238 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3239 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3240 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3241 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3242 (mark_stack) [GC_MARK_STACK]: New functions.
3243 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3244 (clear_marks): Removed.
3245 (gc_sweep): Set free conses' car, free floats' type, free
3246 symbols' function to Vdead. Use lisp_free to free buffers.
3247 (init_alloc_once): Initialize Vdead.
3248 (survives_gc_p): Return non-zero for pure objects.
3249
3250 * alloc.c: Add comments throughout the file.
3251
2503c8b1
GM
3252 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3253 that unblocks alarms.
3254
8389e1e2
GM
3255 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3256 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3257 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3258
10689a01 3259 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3260
bfc17d18
KH
32612000-02-17 Kenichi Handa <handa@etl.go.jp>
3262
4a09dee0
KH
3263 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3264 avoid infinite error signaling. Allocate sufficient memory for
3265 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3266
2b927d02
SM
32672000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3268
3269 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3270 depends on the previous behavior.
3271
b49cb764
GM
32722000-02-16 Gerd Moellmann <gerd@gnu.org>
3273
3274 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3275
99e95407
GM
32762000-02-15 Gerd Moellmann <gerd@gnu.org>
3277
3278 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3279
3280 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3281 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3282 write(2).
3283
6ffd3cf7
RS
32842000-02-15 Richard M. Stallman <rms@gnu.org>
3285
3286 * data.c (set_internal): Don't make variable buffer-local
3287 if within a let-binding for the same buffer.
3288 (let_shadows_buffer_binding_p): New function.
3289
3290 * eval.c (specbind): For buffer-local value,
3291 record the current buffer also.
3292 (unbind_to): Cope with that change.
3293
cad53475
GM
32942000-02-15 Gerd Moellmann <gerd@gnu.org>
3295
3296 * window.c (Fsave_window_excursion): Doc fix.
3297
1aa963c8
SM
32982000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3299
3300 * syntax.c (back_comment): Make sure we only consider comment-starters
3301 of the relevant style and return -1 in case of a failure to find the
3302 beginning of the comment.
3303 (Fforward_comment): If back_comment fails, go back to the position just
3304 after the comment-end.
3305 (scan_lists): Add comment describing a very minor bug.
3306
b9b84fd3
SM
33072000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3308
3309 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3310 `completion-regexp-list' in the docstring.
3311
3a28db80
DL
33122000-02-14 Dave Love <fx@gnu.org>
3313
3314 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3315
fb4a568d
SM
33162000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3317
3318 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3319 to Emacs' syntax. Also fix the comment about set/not-set meanings
3320 since Emacs syntax is not the value 0 any more.
3321 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3322 since it's now part of RE_SYNTAX_EMACS.
3323
1063ebb5
DL
33242000-02-12 Dave Love <fx@gnu.org>
3325
3326 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3327 Alpha.
3328
fb07a302
GM
33292000-02-12 Gerd Moellmann <gerd@gnu.org>
3330
3331 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3332
aaf2320c
DL
33332000-02-12 Dave Love <fx@gnu.org>
3334
3335 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3336
3337 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3338 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3339 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3340
3341 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3342
3343 * s/nextstep.h: Don't define HAVE_ALLOCA.
3344
3345 * config.in: Add vfork bits.
3346
eedf8bde
GM
33472000-02-12 Gerd Moellmann <gerd@gnu.org>
3348
3349 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3350 unwind function to undo the effect of stopping atimers.
3351
3352 * keyboard.c (bind_polling_period): Stop all timers except
3353 poll_timer.
3354
3355 * atimer.c (stopped_atimers): New variable.
3356 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3357 New functions.
3358
3359 * atimer.h (stop_other_atimers, run_all_atimers)
3360 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3361
eedf8bde
GM
3362 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3363
8476c2f8
KR
33642000-02-11 Ken Raeburn <raeburn@gnu.org>
3365
3366 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3367 library may depend on jpeg.
3368 (atimer.o): Depends on atimer.c.
3369
0e85e4a3
KH
33702000-02-11 Kenichi Handa <handa@etl.go.jp>
3371
3372 * insdel.c (del_range_1): Call update_compositions.
3373 (del_range_both): Call update_compositions just once..
3374
97fa0cc8
DL
33752000-02-10 Dave Love <fx@gnu.org>
3376
3377 * xfns.c (create_frame_xic): Fix initialization of automatic
3378 aggregates for pcc.
3379
25566a3c
KH
33802000-02-09 Kenichi Handa <handa@etl.go.jp>
3381
3382 * ccl.c (CCL_MAKE_CHAR): New macro.
3383 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3384 registers by CCL_MAKE_CHAR before calling translate_char.
3385 <CCL_TranslateCharacterConstTbl> Likewise.
3386
69da54ba
DL
33872000-02-08 Dave Love <fx@gnu.org>
3388
3389 * lread.c (__EXTENSIONS__): Define.
3390
f7136ee8
GM
33912000-02-08 Gerd Moellmann <gerd@gnu.org>
3392
3393 * puresize.h (BASE_PURESIZE): Increase to 650000.
3394
7768790b
EZ
33952000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3396
3397 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3398 the help message.
3399
38fd211b
EZ
34002000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3401
3402 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3403 md, mh, mb, mr, and me to the fake termcap entry.
3404
66e4690f
KR
34052000-02-06 Ken Raeburn <raeburn@gnu.org>
3406
3407 * sound.c (sound_cleanup): Don't call device close routine if the
3408 function pointer is null.
3409
a75dfea0
AI
34102000-02-06 Andrew Innes <andrewi@gnu.org>
3411
3412 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3413 around image definitions and prototypes.
3414 (gamma_correct) [WINDOWSNT]: New prototype.
3415
3416 * w32term.c (x_make_frame_visible): Replace call to
3417 input_poll_signal with poll_for_input.
3418
3419 * window.c [WINDOWSNT]: Include w32term.h.
3420
3421 * xdisp.c [WINDOWSNT]: Include w32term.h.
3422
3423 * makefile.nt: Add dependencies on w32gui.h.
3424 (OBJ1): Include atimer.obj.
3425 ($(BLD)\atimer.obj): New dependency rule.
3426
3427 * w32.c (sigmask): New function (does nothing).
3428 (sigunblock): Ditto.
3429
3430 * frame.c [WINDOWSNT]: Include w32term.h.
3431
3432 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3433
3434 * lread.c (syms_of_lread): Fix literal newlines.
3435
3436 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3437 the string constant limit (2048 bytes) in MSVC.
3438 (main): Ditto.
3439
59ddecde
GM
34402000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3441
3442 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3443 area.
3444 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3445 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3446 dispatch the event.
3447
07590973
DL
34482000-02-04 Dave Love <fx@gnu.org>
3449
3450 * fileio.c: Remove some unused vars.
3451 (_GNU_SOURCE): Define (for euidaccess).
3452
3453 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3454
3455 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3456 gcpro1, gcpro2.
3457 (read_minibuf): Deal with allow_props correctly.
3458
649351f9
EZ
34592000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3460
3461 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3462
66e4690f 34632000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3464
3465 * search.c (compile_pattern): If a cache entry has a nil regexp,
3466 fill in that entry instead of clobbering a previously cached
3467 string regexp.
3468
66e4690f 34692000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3470
3471 * puresize.h (BASE_PURESIZE): Increase to 610000.
3472
d240a249
GM
34732000-02-02 Gerd Moellmann <gerd@gnu.org>
3474
3475 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3476 can GC.
3477
ca91fb26
KH
34782000-02-02 Kenichi Handa <handa@etl.go.jp>
3479
25660570
KH
3480 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3481 instead of incrementing ic directly.
3482 <CCL_WriteExprConst> Likewise.
3483 <ccl_set_expr>: Set ic to jump_address.
3484
ca91fb26
KH
3485 * fileio.c (e_write): Fix the handling of
3486 CODING_FINISH_INSUFFICIENT_SRC.
3487
2ede9689
DL
34882000-02-01 Dave Love <fx@gnu.org>
3489
3490 * editfns.c (Fpropertize): Doc fix.
3491
3492 * process.c (Fstart_process): Doc fix.
3493
3494 * eval.c: Fix various doc strings not to duplicate information
3495 from help-manyarg-func-alist.
3496
3497 * window.c (Fset_window_margins): Don't make interactive. Doc
3498 fix.
3499
3500 * doc.c (Vhelp_manyarg_func_alist): New variable.
3501 (Fdocumentation): Use it.
3502 (syms_of_doc): Define it.
3503
b6680a0e
GM
35042000-01-31 Gerd Moellmann <gerd@gnu.org>
3505
2cb750ba
GM
3506 * xterm.c (xim_open_dpy): Remove unused local variable.
3507
74e9213b
GM
3508 * emacs.c (USAGE): Use term `display options' instead of `X
3509 options'.
3510
3511 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3512 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3513
b6680a0e
GM
3514 * fns.c (sweep_weak_table): New function.
3515 (sweep_weak_hash_tables): Use it. Keep on marking until there
3516 is no more change.
3517
994c5afe
GM
35182000-01-30 Gerd Moellmann <gerd@gnu.org>
3519
3520 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3521 that XTread_socket does not crash by trying to call XNoOp on a
3522 closed display.
427ec082 3523
f00276e3
JR
35242000-01-30 Jason Rumney <jasonr@gnu.org>
3525
3526 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3527 Change selected_frame to SELECTED_FRAME ().
3528 (w32_console_mouse_position): Remove #ifndef MULE from around
3529 `insist' parameter.
3530
3531 * makefile.nt: Remove dosfns.obj.
3532
3533 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3534
3535 * w32fns.c (w32_defined_color): Check for valid frame before
3536 applying gamma correction. Eliminate dependency on frame elsewhere.
3537 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3538 (w32_to_x_font): Use resx and resy not height_in and width_in.
3539 (x_to_w32_font): Doc fix.
3540 (xlfd_strip_height): New function to strip and return font height.
3541 (w32_font_match): Compare height separately from rest of xlfd
3542 spec, using xlfd_strip_height.
3543
3544 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3545 width_in. Use w32_defined_color in place of defined_color.
3546
3547 * w32faces.c: Merge more of DOS and X specifics in preparation for
3548 merge with xfaces.c.
3549 (defined_color): Remove FIXME comment.
3550 (tty_color_name): Provide w32-specific function.
3551 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3552
3553 * w32console.c (turn_on_face, turn_off_face): Removed.
3554 (w32_face_attributes): New function.
3555 (Global_variables): Reduce scope where possible.
3556 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3557 fill attribute.
3558 (hl_mode): Don't modify text attributes.
3559 (write_glyphs): Don't do anything if len <= 0. Use
3560 w32_face_attributes to get attributes for drawing. Write
3561 terminating codes using char_attr_normal.
3562 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3563 (update_begin, update_end): Likewise.
3564 (vga_stdcolor_name): New function.
3565 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3566 (Fset_screen_color): Remove char_attr_reverse.
3567
b08e8bb2
GM
35682000-01-29 Gerd Moellmann <gerd@gnu.org>
3569
3570 * xfns.c (xic_set_preeditarea): Take window parameter and
3571 window-relative pixel-positions.
3572
3573 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3574 is its frame's selected window.
3575 (xim_instantiate_callback): Likewise.
3576
3577 * xfns.c (x_create_im): Removed.
3578 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3579 (supported_xim_styles): Renamed from supported_styles.
3580 (best_xim_style): Renamed from best_style.
3581 (create_frame_xic): Renamed from xic_create_frame.
3582 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3583
b08e8bb2
GM
35842000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3585
3586 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3587 our frames, call XFilterEvent with 2nd parameter `None'.
3588 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3589 returning XBufferOverflow.
3590 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3591 area.
3592 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3593 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3594 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3595 (xim_initialize, xim_close)
3596 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3597 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3598 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3599 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3600
3601 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3602 and `xim_styles'.
3603 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3604 `xic_style' and `xic_xfs'.
3605 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3606 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3607 (FRAME_XIM): Removed.
3608
3609 * xfns.c (supported_styles): New variable.
3610 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3611 (xic_create_xfontset, best_style, xic_create_frame)
3612 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3613 (xic_set_xfontset): New functions.
3614
142e109c
DL
36152000-01-28 Dave Love <fx@gnu.org>
3616
3617 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3618
3619 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3620
b02786f9
GM
36212000-01-28 Gerd Moellmann <gerd@gnu.org>
3622
d060bc9f
GM
3623 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3624 for *scratch* if it already existed.
3625
b02786f9
GM
3626 * emacs.c (USAGE): New macro.
3627 (main): Use it to display usage information.
3628
2c52d7e4
EZ
36292000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3630
3631 Support for the menu-help feature:
3632
3633 * msdos.h: Change prototypes of XMenuAddSelection and
3634 XMenuActivate.
3635
3636 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3637 part of the line to the termscript file.
3638 (IT_clear_to_end): Clear the entire line, not just its beginning.
3639 (menu_help_message, prev_menu_help_message): New variables.
3640 (IT_menu_make_room): Make room for the help_text member.
3641 (IT_menu_display): New argument disp_help; all callers changed.
3642 If disp_help is non-zero, store the help text of the active menu
3643 item in menu_help_message.
3644 (XMenuAddPane): Initialize the help_text member to NULL.
3645 (XMenuAddSelection): New argument help_text. Store it in the
3646 XMenu structure.
3647 (XMenuActivate): New argument help_callback. If the value of
3648 menu_help_message has changed since the last time, display the
3649 menu help message text while waiting for the mouse to move. Clear
3650 the echo area before exiting.
3651 (XMenuDestroy): Free the help_text member.
3652
ffe0bcd1
GM
36532000-01-27 Gerd Moellmann <gerd@gnu.org>
3654
3655 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3656 XMenuAddSelection. Pass help callback to XMenuActivate.
3657 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3658
50dbd23f
EZ
36592000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3660
3661 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3662 and EMACS_SET_USECS.
3663
f5941bf8
GM
36642000-01-26 Dave Love <fx@gnu.org>
3665
6c67ddee
DL
3666 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3667
f5941bf8
GM
3668 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3669 an error may be signalled.
3670
9e49c990
GM
36712000-01-26 Gerd Moellmann <gerd@gnu.org>
3672
fc3cb460
GM
3673 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3674 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3675
9e49c990
GM
3676 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3677
d0c037d8
GM
36782000-01-25 Gerd Moellmann <gerd@gnu.org>
3679
3680 * charset.c (Fstring): If there is a multibyte char among
3681 the args, always return a multibyte string.
3682
e12489f9
GM
36832000-01-25 Gerd Moellmann <gerd@gnu.org>
3684
3685 * sysdep.c (sys_select): Turn atimers off and on instead of
3686 recording and restoring old alarm handler
3687
3688 * process.c (toplevel): Include atimer.h.
3689 (create_process_1): Rewritten.
3690 (create_process): Use atimers instead of alarm.
3691 (wait_reading_process_input) [hpux]: Turn atimers off instead
3692 of turning off SIGALRM.
3693 (wait_reading_process_input): Turn off atimers instead off
3694 calling stop_polling.
3695
3696 * emacs.c (main): Call init_atimer.
3697
3698 * keyboard.c (toplevel): Include systime.h and atimer.h.
3699 (polling_for_input): Removed because unused.
3700 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3701 (poll_timer): New variable.
3702 (poll_for_input, poll_for_input_1): New functions.
3703 (start_polling, stop_polling): Rewritten.
3704
3705 * keyboard.h (polling_for_input): Removed.
427ec082 3706
e12489f9
GM
3707 * atimer.h, atimer.c: New files.
3708
3709 * Makefile.in (obj): Add atimer.o.
3710 (atimer.o): New target.
3711
3712 * blockinput.h (pending_atimers): Add extern declaration.
3713 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3714
3715 * lisp.h (popup_activated_flag): Add extern declaration.
3716
3717 * xmenu.c (popup_activated_flag): Make externally visible.
3718 (popup_activate_callback) [USE_MOTIF]: Increment
3719 popup_activated_flag.
3720 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3721
3722 * xterm.c (toplevel): Include atimer.h.
3723 (toolkit_scroll_bar_interaction): New variable.
3724 (Fxt_process_timeouts): Removed.
3725 (x_process_timeouts): New function.
3726 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
3727 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
3728 (x_make_frame_visible): Call poll_for_input_1 instead of
3729 input_poll_signal. Don't call alarm.
3730 (x_initialize): Install timer calling x_process_timeouts.
427ec082 3731
1e5279b9
DL
37322000-01-24 Dave Love <fx@gnu.org>
3733
6c67ddee 3734 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
3735 Don't use -cckr -- apparently not now necessary.
3736
edf6aeb8
EZ
37372000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3738
3739 * msdos.c (IT_menu_display): Truncate long menu lines at the right
3740 screen boundary.
3741
9badad41
JR
37422000-01-23 Jason Rumney <jasonr@gnu.org>
3743
3744 * w32fns.c (w32_defined_color): Apply gamma correction before
3745 trying to map to the palette.
3746 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
3747 to w32_clear_rect.
3748
3749 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
3750 here. Callers changed to always pass real device context.
3751 (w32_draw_bitmap): Likewise.
3752 (w32_get_glyph_overhangs): Likewise.
3753 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
3754 one.
3755 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
3756 pfnSetScrollInfo and SetScrollRange.
3757 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
3758 back into MULE characters after decoding them.
3759 (x_get_glyph_face_and_encoding): Likewise.
3760 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
3761 GetCharABCWidthsW fails, since this is defined on Windows 9x.
3762 (x_produce_glyphs): Calculate per char metrics for a character
3763 that we know exists in default font when font_not_found_p is true.
3764
63bd786b
JR
37652000-01-22 Jason Rumney <jasonr@gnu.org>
3766
3767 * makefile.nt (intervals.obj, composite.obj): New modules.
3768 (composite.h): Added as dependency where appropriate.
3769
3770 * w32gui.h (XGCValue): New struct for emulating X GCs.
3771
3772 * w32term.h (XCharStruct): New struct for emulating X.
3773
3774 * w32console.c (turn_on_face, turn_off_face): New functions.
3775 (change_line_highlight): New prototype for new redisplay.
3776 (write_glyphs): Support multibyte text. Support faces.
3777
3778 * w32faces.c: Complete rewrite for new redisplay based on new
3779 xfaces.c.
3780
3781 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
3782 throughout. struct frame * in place of FRAME_PTR.
3783 Skeleton support for images, toolbars, tooltips from xfns.c.
3784 (Fx_create_frame): Use system default for default scroll bar
3785 width.
3786 (w32_get_arg): Renamed from x_get_arg.
3787 (Fx_file_dialog): New function.
3788 (w32_list_fonts): Check cache before asking system.
3789 (Vw32_enable_synthesized_fonts): New variable.
3790 (Vw32_enable_italics): Obsolete, removed.
3791
3792 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3793 Use SELECTED_FRAME macro.
3794
3795 * w32menu.c: Add skeleton support for help strings on menus.
3796 (add_menu_item): Native checkbox and radio support added, but not
3797 yet enabled due to bugs.
3798 (push_menu_item): Add parameters type, selection and help.
3799 Callers updated.
3800 Formatting changes to reduce unnecessary diffs with xmenu.c.
3801
3802 * w32select.c (Fw32_set_clipboard_data): Update call to
3803 find_charset_in_str.
3804
3805 * w32term.c: Complete rewrite for new redisplay based on new
3806 xterm.c with necessary sections merged back in from old w32term.c.
3807
6ffd3cf7 38082000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
3809
3810 * data.c (set_internal): Further fix in same criterion.
3811
6ffd3cf7 38122000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
3813
3814 * data.c (set_internal): Fix the criteria for whether
3815 to swap out the old cached binding.
3816
60af03f1
DL
38172000-01-19 Dave Love <fx@gnu.org>
3818
3819 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
3820
f9be074f
KH
38212000-01-18 Kenichi Handa <handa@etl.go.jp>
3822
3823 * regex.c (re_compile_fastmap): While checking a range table for
3824 `charset', skip flag bits for a character class correctly.
3825
52b8dbf9
GM
38262000-01-17 Gerd Moellmann <gerd@gnu.org>
3827
d36100c9
GM
3828 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
3829
52b8dbf9
GM
3830 * xfns.c (x_window): Call lw_create_widget with new parameter
3831 list.
3832
3833 * widget.c (EmacsFrameSetCharSize): Change size of children first
3834 because of problems with main window geometry management under
3835 Lesstif.
3836
3837 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
3838 MENU_ITEMS_ITEM_.*.
3839 (MENU_ITEMS_ITEM_HELP): New enumerator.
3840 (push_menu_item): Add parameter HELP. Record help in menu_items.
3841 (single_menu_item, single_submenu, list_of_items): Call
3842 push_menu_item with new parameter.
3843 (single_submenu): Set help string in widget value.
3844 (menu_highlight_callback): New function.
3845 (set_frame_menubar): Call lw_create_widget with new
3846 parameter list.
3847 (xmenu_show, xdialog_show): Ditto.
3848
3139018f
GM
38492000-01-13 Gerd Moellmann <gerd@gnu.org>
3850
3851 * sound.c (Fplay_sound): Improve doc string.
3852
83c8f461
RS
38532000-01-11 Richard M. Stallman <rms@gnu.org>
3854
3855 * lisp.h (set_internal): Enter the new arg.
3856
3857 * eval.c (specbind): Record buffer-local variables specially,
3858 indicating which buffer's binding was saved.
3859 (unbind_to): Restore buffer-local variables specially
3860 in the proper buffer.
3861
3862 * data.c (set_internal): New arg BUF.
427ec082 3863
83c8f461
RS
3864 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
3865 * data.c (Fset): Pass new arg to set_internal.
3866 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 3867
1fab1775
GM
38682000-01-11 Gerd Moellmann <gerd@gnu.org>
3869
3870 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
3871 xprintsym.
3872
83c8f461 38732000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
3874
3875 * minibuf.c (Ftry_completion): Doc fix.
3876
7a85e4df
GM
38772000-01-11 Gerd Moellmann <gerd@gnu.org>
3878
3879 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
3880 vector, too.
3881
a970dae4
AS
38822000-01-11 Andreas Schwab <schwab@suse.de>
3883
3884 * coding.c (code_convert_region): Initialize total_skip.
3885
c65d14ee
DL
38862000-01-08 Dave Love <fx@gnu.org>
3887
3888 * eval.c (Fuser_variable_p): Check customizability too.
3889
834938d2
GM
38902000-01-07 Gerd Moellmann <gerd@gnu.org>
3891
3892 * minibuf.c (Fcompleting_read): Doc fix.
3893
e0303cd6
GM
38942000-01-05 Gerd Moellmann <gerd@gnu.org>
3895
8a26744b
GM
3896 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
3897 -L /usr/local/lib.
3898
e0303cd6
GM
3899 * xfns.c (x_create_im): New function to set IM and IC of a frame.
3900 Check that input style is supported before trying to create an
3901 IC for it.
3902 (x_window): Call x_create_im.
427ec082 3903
2e471eb5
GM
39042000-01-04 Gerd Moellmann <gerd@gnu.org>
3905
560a7bd2
GM
3906 * xfns.c (current_gif_memory_src): New variable.
3907 (gif_load): Record the address of the current memory source
3908 in current_gif_memory_src.
3909 (gif_read_from_memory): Use current_gif_memory_src.
3910
f9ee84a3
GM
3911 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
3912 macros statement form.
3913
d1299cde
GM
3914 * sound.c (struct sound): Renamed from struct sound_file.
3915 (struct sound): Add members `data' and `header_size'.
3916 (enum sound_attr): Add SOUND_DATA.
3917 (current_sound, current_sound_device): Variables renamed from
3918 sound_file and sound_device.
3919 (parse_sound): Parse :data.
3920 (parse_sound): Handle sound data in strings.
3921 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 3922 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
3923 needed header size.
3924 (wav_play, au_play): Play sounds from string data.
3925
2e471eb5
GM
3926 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
3927
3928 * lisp.h: Add prototype for allocate_string_data.
3929
3930 * alloc.c (Fgarbage_collect): Return number of live and free
3931 strings.
3932
3933 * alloc.c (mark_buffer): Remove code in #if 0.
3934 (gc_sweep): Ditto.
3935 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
3936 (strings_consed): New variable.
3937 (allocate_string): Set it.
3938 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
3939 (Fmemory_use_counts): Return strings_consed. Use Flist.
3940
3941 * alloc.c: General cleanup in comments etc. Remove conditional
3942 compilation for `standalone'.
3943
3944 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
3945
3946 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
3947 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
3948 (DONT_COPY_FLAG): Removed.
3949 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
3950 (struct sdata, struct sblock): New
3951 (struct string_block): Rewritten.
3952 (STRINGS_IN_STRING_BLOCK): New macro.
3953 (oldest_sblock, current_sblock, total_strings, total_free_strings)
3954 (large_sblocks, string_blocks, string_free_list): New variables.
3955 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
3956 (init_strings): Rewritten.
3957 (allocate_string, allocate_string_data, compact_small_strings)
3958 (free_large_strings, sweep_strings): New functions.
3959 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
3960 (struct string_block_head, current_string_block)
3961 (first_string_block, large_string_blocks, STRING_FULLSIZE)
3962 (STRING_PAD): Removed.
3963 (make_uninit_multibyte_string, make_pure_string): Rewritten.
3964 (Fgarbage_collect): Don't set mark bit in large strings.
3965 (mark_object): Mark strings differently. Mark symbol names
3966 differently.
3967 (survives_gc_p): Test marked strings differently.
427ec082 3968 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
3969 symbol names.
3970 (compact_strings): Removed.
3971
42608ba8
EZ
39722000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
3973
3974 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
3975 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
3976
e0a09e1a
KH
39772000-01-04 Kenichi Handa <handa@etl.go.jp>
3978
dd9f0750 3979 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 3980 in a non-empty buffer.
dd9f0750 3981
3c0f3b15 3982 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 3983
44cd3ae5
GM
39842000-01-03 Gerd Moellmann <gerd@gnu.org>
3985
3986 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
3987 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
3988
3989 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
3990
c182a70f
EZ
39912000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3992
3993 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
3994 need to test for MSDOS frames.
3995
24480d5b
EZ
39962000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3997
3998 * dosfns.c (unspecified_colors): Remove.
3999 (msdos_stdcolor_idx): Use global variables unspecified_fg and
4000 unspecified_bg.
4001 (msdos_stdcolor_name): Return strings for unspecified fore- and
4002 back-ground colors.
4003
4004 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 4005 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
4006 (tty_color_name): Return Lisp strings for unspecified fore- and
4007 back-ground colors.
4008 (Finternal_set_lisp_face_attribute): Remove the special treatment
4009 for Qunspecified_{f,b}g.
4010 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
4011 string.
4012
047f434a
GM
40132000-01-03 Gerd Moellmann <gerd@gnu.org>
4014
4015 * xdisp.c (reseat_at_next_visible_line_start): Position before
4016 newline only if ending up on a newline.
4017 (next_element_from_ellipsis): Return success. Handle case of
4018 displaying no ellipsis. Fix case of ellipsis defined in display
4019 table.
4020 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
4021 returns 0.
4022
d684c676
EZ
40232000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
4024
4025 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
4026 (Fcolor_supported_p): Renamed from face-color-supported-p.
4027
5fe1d139
EZ
40282000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4029
4030 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
4031 list of colors renamed to tty-defined-color-alist.
4032 (tty_color_name): Pass the frame to tty-color-by-index.
4033 (realize_tty_face): tty-color-alist is now a function which
4034 accepts the frame as argument.
4035
4036 * term.c (Ftty_display_color_p): Accept an optional argument
4037 FRAME.
4038
816be8b8
EZ
40392000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4040
4041 * term.c (insert_glyphs): Pass glyph, not &glyph, to
4042 encode_terminal_code.
4043
b635321e
EZ
40442000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4045
4046 * dispnew.c (mode_line_string): Support termcap frames as well.
4047
9b784e96
GM
40482000-01-01 Gerd Moellmann <gerd@gnu.org>
4049
27189709
GM
4050 * syntax.c (Fforward_word): Undo previous change.
4051
4052 * editfns.c (Fconstrain_to_field): Don't constrain if
4053 inhibit-field-text-motion is non-nil.
4054 (Fline_beginning_position): Undo previous change.
4055 (Fline_end_position): Ditto.
4056
4057 * syntax.c (Fforward_word): Notice field boundaries only if
4058 inhibit-field-text-motion is nil.
4059
4060 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
4061
4062 * editfns.c (Vinhibit_field_text_motion): New variable.
4063 (inhibit-field-text-motion): New DEFVAR_LISP.
4064 (Fline_beginning_position, Fline_end_position): Notice field
4065 boundaries only if inhibit-field-text-motion is nil.
4066
45158a91
GM
4067 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
4068 All calls adjusted.
4069 (x_build_heuristic_mask): Likewise.
4070 (xbm_load_image_from_file): Change error output.
4071 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
4072 (gif_load, gs_load, x_kill_gs_process): Ditto.
4073
9b784e96
GM
4074 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
4075 color indices when accessing raster pixels.
63cec32f
GM
4076 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
4077 one of :file or :data.
4078 (enum pbm_keyword_index): Add PBM_DATA.
4079 (pbm_format): Add :data.
4080 (pbm_image_p): Allow either :file or :data.
4081 (pbm_read_file): New function.
4082 (pbm_scan_number): Rewritten to read from string.
4083 (pbm_load): Support :data.
9b784e96 4084
5ad6a5fb
GM
40851999-12-31 Gerd Moellmann <gerd@gnu.org>
4086
4087 * xfns.c: New image functions adapted to Emacs conventions.
4088 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
4089 variable `file'.
4090
63448a4d
WP
40911999-12-31 William M. Perry <wmperry@aventail.com>
4092
4093 * xfns.c (jpeg_format): Added the :data keyword
4094 (jpeg_image_p): JPEG is valid with :file _or_ :data
4095 (jpeg_memory_src): Defined new JPEG image source to read from a
4096 memory buffer.
4097 (jpeg_load): Pay attention to the :data keyword if specified.
4098 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
4099 found.
4100 (png_format): Added the :data keyword
4101 (png_image_p): PNG is valid with :file _or_ :data
4102 (png_read_from_memory): New PNG read function to read from a
4103 memory buffer.
4104 (png_load): Pay attention to the :data keyword if specified. Uses
4105 png_set_read_fn() instead of png_init_io() if specified.
4106 (tiff_format): Added the :data keyword for TIFF images.
4107 (tiff_image_p): TIFF is valid with :file _or_ :data
4108 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4109 from a memory buffer.
4110 (tiff_load): Pay attention to the :data keyword if specified.
4111 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4112 (gif_format): Added the :data keyword
4113 (gif_image_p): GIF is valid with :file _or_ :data
4114 (gif_read_from_memory): New GIF input function to read from a
4115 memory buffer.
c65d14ee 4116 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4117 instead of DGifOpenFileName() if specified.
4118
c880678e
GM
41191999-12-31 Gerd Moellmann <gerd@gnu.org>
4120
4121 * xdisp.c (next_element_from_buffer): Change assertion at the end
4122 because it doesn't hold when there's an overlay string at the end
4123 from which we deliver an image.
4124
8ccb9a54
EZ
41251999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4126
4127 * msdos.c (IT_update_begin): Don't dereference members of struct
4128 window for deleted windows.
4129
12ce2351
GM
41301999-12-30 Gerd Moellmann <gerd@gnu.org>
4131
a915c648
GM
4132 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4133 a hook, and the hook has a non-nil `no-self-insert' property, let
4134 the return value of the hook specify whether an expansion took
4135 place. If it returns nil, no expansion has been performed.
4136
12ce2351
GM
4137 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4138 differently.
4139
04ee4f45
EZ
41401999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4141
4142 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4143
7f4bc0c3
EZ
41441999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4145
4146 * dispnew.c (mode_line_string): Support MS-DOS frames.
4147
dac204bc
GM
41481999-12-29 Gerd Moellmann <gerd@gnu.org>
4149
4150 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4151
7b712ad8
KH
41521999-12-29 Kenichi Handa <handa@etl.go.jp>
4153
4154 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4155 to signal_after_change.
4156
adb9900f
EZ
41571999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4158
41ad069b
EZ
4159 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4160 dimensions changed, invalidate the mouse highlight info.
4161 (disable_mouse_highlight, help_echo, previous_help_echo): New
4162 variables.
4163 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4164 (fast_find_position, IT_note_mode_line_highlight)
4165 (IT_note_mouse_highlight): New functions.
4166 (IT_update_begin): If the redisplay affects the window where the
4167 mouse highlight is, clear the highlight. If the frame where the
4168 highlight was displayed was killed, invalidate the highlight
4169 info.
4170 (IT_update_end): Reset the highlight flag. Reset the mouse
4171 highlight-defer flag.
4172 (IT_frame_up_to_date): New function, if mouse highlight was
4173 deferred due to GC, do it now.
4174 (internal_terminal_init): Initialize mouse-highlight related
4175 members of the_only_x_display. Assign IT_frame_up_to_date to
4176 frame_up_to_date_hook.
4177 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4178 help_echo changed value, generate a HELP_EVENT event.
4179 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4180
adb9900f
EZ
4181 * msdos.h (struct display_info): New.
4182 (struct x_output): Add the display_info member.
4183 (FRAME_X_DISPLAY_INFO): New macro.
4184
481b5054
GM
41851999-12-28 Gerd Moellmann <gerd@gnu.org>
4186
4187 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4188 if MODIFF > 1.
6448a6b3 4189 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4190
4191 * buffer.c (modify_overlay): Always compute unchanged info.
4192
a2882b0d
KH
41931999-12-27 Kenichi Handa <handa@etl.go.jp>
4194
4195 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4196
89ba5b5f
KH
41971999-12-27 Kenichi Handa <handa@etl.go.jp>
4198
4199 The following changes are to use more bits for face IDs.
4200
4201 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4202 lowest 8 bits are single byte character code, the bits above are
4203 face ID.
481b5054 4204 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4205 above.
481b5054
GM
4206 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4207 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4208
4209 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4210 of GLYPH_MASK_CHAR.
4211
4212 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4213 of GLYPH_MASK_CHAR.
4214
4215 * dispextern.h (struct glyph): Make face_id and padding_p the top
4216 level members. Change members in union `u'.
4217 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4218 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4219 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4220 (CHAR_GLYPH_PADDING_P): Likewise.
4221 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4222 characters.
4223
481b5054 4224 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4225 for the change of struct glyph.
4226 (line_draw_cost): Adjusted for the change of
4227 GLYPH_FROM_CHAR_GLYPH.
4228 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4229
4230 * term.c (encode_terminal_code): Adjusted for the change of struct
4231 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4232 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4233 change of struct glyph.
4234
4235 * xdisp.c: All codes adjusted for the change of struct glyph.
4236
4237 * xterm.c: All codes adjusted for the change of struct glyph.
4238
5bcd116c
KH
42391999-12-27 Kenichi Handa <handa@etl.go.jp>
4240
4241 * composite.h (struct composition): Change the order of declaring
4242 members to reduce the byte size of the structure.
4243
f21b06b7
GM
42441999-12-25 Gerd Moellmann <gerd@gnu.org>
4245
4246 * search.c (looking_at_1): Reset immediate_quit before modifying
4247 global data.
4248
e36557c9
KH
42491999-12-24 Kenichi Handa <handa@etl.go.jp>
4250
4251 * process.c (read_process_output): Fix the arg FROM to
4252 update_compositions.
4253
83c8f461 42541999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4255
4256 * search.c (Freplace_match): For nonliteral replacement in buffer,
4257 construct all the new text first, then insert all at once.
4258
0b863bd9
DL
42591999-12-22 Dave Love <fx@gnu.org>
4260
4261 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4262
6d8e8ef3
GM
42631999-12-22 Gerd Moellmann <gerd@gnu.org>
4264
28d7281d
GM
4265 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4266 lead to size changes to after the X window has been created.
4267
e22ef6eb 4268 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4269 variable in xassert.
4270
8affcced
KH
42711999-12-22 Kenichi Handa <handa@etl.go.jp>
4272
4273 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4274 only when the frame is not for a window system.
8affcced 4275
f2be1146
GM
42761999-12-22 Gerd Moellmann <gerd@gnu.org>
4277
deca1348
GM
4278 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4279 redisplay after changing the multibyteness of a buffer.
4280
f2be1146
GM
4281 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4282 frame's X window to XFilterEvent instead of None because that's
4283 the X window for which the IC was created. This makes dead
4284 accents work when the pointer is not in Emacs' frame.
4285 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4286
a744a2ec
DL
42871999-12-20 Dave Love <fx@gnu.org>
4288
4289 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4290
9e6985ed
GM
42911999-12-19 Gerd Moellmann <gerd@gnu.org>
4292
4293 * eval.c (debugger_may_continue): New variable.
4294 (syms_of_eval): Add a DEFVAR_BOOL for it.
4295 (call_debugger): Bind it.
4296
3b620731
EZ
42971999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4298
4299 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4300 fp->tty_reverse_p is set, unless the computed colors are identical
4301 to frame colors. Print both original and computed colors to
4302 termscript file.
4303 (IT_write_glyphs): Track the changes in handling of composite
4304 characters.
4305 (IT_set_frame_parameters): Don't set frame colors from
4306 unspecified-fg and unspecified-bg pseudo-colors.
4307
0f9a51c4
DL
43081999-12-17 Dave Love <fx@gnu.org>
4309
4310 * data.c (Fkeywordp): New function.
4311 (syms_of_data): Install it.
4312
363e4e42
EZ
43131999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4314
4315 * xfaces.c (tty_defined_color): Fix last change.
4316
cfad01b4
GM
43171999-12-15 Gerd Moellmann <gerd@gnu.org>
4318
4319 * xdisp.c (redisplay_window) <optional new window start>: Check
4320 that window start is in [BEGV..ZV].
4321
f9d2fdc4
EZ
43221999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4323
4324 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4325 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4326
4327 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4328 (syms_of_xfaces): Initialize and staticpro them.
4329 (tty_defined_color): If the color name is unspecified-fg or
4330 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4331 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4332 (tty_color_name): If the color pixel value is either
4333 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4334 Qunspecified_fg or Qunspecified_bg, respectively.
4335 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4336 and Qunspecified_bg for foreground and background colors.
4337 (realize_default_face): If the foreground and background colors
4338 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4339 (realize_tty_face): By default, set the face colors to
4340 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4341 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4342 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4343 Reverse the colors if the default colors were reversed.
4344
4345 * dispnew.c (init_display): Initialize the frame pixels of the
4346 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4347 FACE_TTY_DEFAULT_BG_COLOR.
4348
4349 * term.c (turn_on_face): If the default fore- and background
4350 colors are reversed, enter inverse video mode. Don't send color
4351 escape sequences for unspecified foreground and background colors.
4352 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4353
4354 * dosfns.c (unspecified_colors): New variable.
4355 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4356 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4357 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4358 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4359 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4360 Qunspecified_bg, respectively.
4361
4362 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4363 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4364
e19539f1
KH
43651999-12-15 Kenichi Handa <handa@etl.go.jp>
4366
4367 * coding.c (code_convert_region): Fix the secoding arg to
4368 update_compositions.
4369
5ec14d3c
KH
43701999-12-15 Kenichi Handa <handa@etl.go.jp>
4371
4372 The following changes are for the new composition mechanism. We
4373 have deleted `composition' charset and composite characters,
4374 instead introduced a special text property `composition'.
4375
4376 * Makefile.in (INTERVAL_SRC): Include composite.h.
4377 (INTERVAL_OBJ): Include composite.o.
4378 (SOME_MACHINE_OBJECTS): Include composite.o.
4379 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4380 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4381 Depend on composite.h.
4382 (doc.o): Depend on charset.h.
4383 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4384 (composite.o): New target.
427ec082 4385
5ec14d3c
KH
4386 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4387
4388 * callproc.c (Fcall_process): Call code_convert_string to encode
4389 arguments. Use CODING_REQUIRE_DECODING to check if the process
4390 output should be decoded.
4391
4392 * casefiddle.c: Include composite.h.
4393 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4394 multibyte character. Adjusted for the change of CHAR_STRING.
4395 (casify_region): Likewise. Call update_compositions.
4396
4397 * category.h (CATEGORY_SET): Delete codes for a composite
4398 character.
4399
4400 * category.c (word_boundary_p): Delete codes for a composite
4401 character.
4402 (Fmake_category_table): New function.
4403 (syms_of_category): Defsubr it.
4404
4405 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4406 (ccl_driver): Delete codes for a composite character.
4407
4408 * charset.h: In this entry, just `Modified' means that codes for a
4409 composite character is deleted.
4410 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4411 (charset_composition) (MIN_CHAR_COMPOSITION)
4412 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4413 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4414 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4415 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4416 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4417 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4418 Modified.
4419 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4420 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4421 non_ascii_char_to_string.
4422 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4423 (STRING_CHAR_AND_LENGTH): Likewise.
4424 (FETCH_CHAR_ADVANCE): New macro.
4425 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4426 (MAX_MULTIBYTE_LENGTH): New macro.
4427 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4428 (find_charset_in_str): Argument adjusted.
4429 (CHAR_LEN): Modified.
427ec082 4430
5ec14d3c
KH
4431 * charset.c: In this entry, just `Modified' means that codes for a
4432 composite character is deleted.
4433 (Qcomposition) (leading_code_composition)
4434 (charset_composition) (min_composite_char) (cmpchar_table)
4435 (cmpchar_table_size) (n_cmpchars): Deleted.
4436 (SPLIT_COMPOSITE_SEQ): Deleted.
4437 (SPLIT_MULTIBYTE_SEQ): Modified.
4438 (char_to_string): Renamed from non_ascii_char_to_string.
4439 Modified.
4440 (string_to_char): Renamed from string_to_non_ascii_char.
4441 (split_string): Renamed from split_non_ascii_string.
4442 (char_printable_p) (Fsplit_char)
4443 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4444 (char_bytes) (Fchar_width) (strwidth): Modified.
4445 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4446 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4447 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4448 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4449 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4450 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4451 (Fcmpchar_cmp_count): Deleted.
4452 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4453 (init_charset_once): Modified.
4454 (syms_of_charset): Modified.
4455
4456 * cmds.c (internal_self_insert): Adjusted for the change of
4457 CHAR_STRING.
4458
4459 * coding.h (emacs_code_class_type): Delete the member
4460 EMACS_leading_code_composition.
4461 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4462 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4463 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4464 (COMPOSING_WITH_RULE_P): Macros deleted.
4465 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4466 macros.
4467 (struct composition_data): New structure.
4468 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4469 (struct coding_system): New members composition_rule_follows,
4470 cmp_data, cmp_data_start, cmp_data_index.
4471 (coding_save_composition) (coding_free_composition_data)
4472 (coding_adjust_composition_offset): Extern them.
4473
4474 * coding.c: Include composite.h.
4475 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4476 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4477 of multibyte code here.
4478 (DECODE_CHARACTER_DIMENSION2): Likewise.
4479 (detect_coding_emacs_mule): Change the case label from
4480 EMACS_leading_code_composition to 0x80.
4481 (detect_coding_iso2022): Handle new composition sequence.
4482 (DECODE_ISO_CHARACTER): Likewise.
4483 (check_composing_code): Deleted.
4484 (coding_allocate_composition_data): New function.
4485 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4486 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4487 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4488 (decode_coding_iso2022): Handle new composition sequence.
4489 (ENCODE_ISO_CHARACTER): Don't check composition here.
4490 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4491 (ENCODE_COMPOSITION_NO_RULE_START)
4492 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4493 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4494 (ENCODE_COMPOSITION_FAKE_START): New macro.
4495 (encode_coding_iso2022): Handle new composition sequence.
4496 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4497 (encode_coding_sjis_big5): Ignore composition.
4498 (setup_coding_system): Initialize new members of struct
4499 coding_system. Enable composition only when the coding system has
4500 `composition' property t.
4501 (coding_free_composition_data) (coding_adjust_composition_offset)
4502 (coding_save_composition) (coding_restore_composition): New
4503 functions.
4504 (code_convert_region): Call coding_save_composition for encoding
4505 and coding_allocate_composition_data for decoding. Don't skip
4506 ASCII characters if we handle composition on encoding. Call
4507 signal_after_change with Check_BORDER.
4508 (code_convert_string): Call coding_save_composition for encoding
4509 and coding_allocate_composition_data for decoding. Don't skip
4510 ASCII characters if we handle composition on encoding.
4511 (code_convert_string1): Set Vlast_coding_system_used after calling
4512 code_convert_string.
4513 (code_convert_string_norecord): Disable composition.
4514 (Fset_terminal_coding_system_internal): Likewise.
4515 (Fset_safe_terminal_coding_system_internal): Likewise.
4516 (Fset_keyboard_coding_system_internal): Likewise.
4517 (init_coding_once): Set emacs_code_class[0x80] to
4518 EMACS_invalid_code.
4519
4520 * composite.h: New file.
4521
4522 * composite.c: New file.
4523
4524 * data.c (Faref): Delete codes for a composite character..
4525 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4526
4527 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4528 (struct glyph): Add new sub-structure cmp to the union `u'.
4529 (enum display_element_type): New member IT_COMPOSITION.
4530 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4531 (struct it): New members cmp_id, cmp_len.
4532
4533 * dispnew.c (direct_output_forward_char): Check point moving into
4534 or out of a composition. If so, give up direct method.
4535
4536 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4537
4538 * editfns.c (Fchar_to_string): Adjusted for the change of
4539 CHAR_STRING.
4540 (general_insert_function): Likewise.
4541 (Finsert_char): Likewise.
4542 (Fsubst_char_in_region): Likewise. Call update_compositions.
4543 (Ftranslate_region): Call update_compositions.
4544 (Ftranspose_regions): Call update_compositions.
4545
4546 * emacs.c (main): Call syms_of_composite.
4547
4548 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4549 CHAR_STRING.
4550 (Finsert_file_contents): Set Vlast_coding_system_used before
4551 calling signal_after_change. Call update_compositions if some
4552 texts are inserted..
4553 (Fwrite_region): Adjusted for the change of a_write and e_write.
4554 (a_write): Argument changed. Work based on character position,
4555 not byte position.
4556 (e_write): Argument changed. Handle new way of composition.
4557
4558 * fns.c (Flength): The length of char-table is MAX_CHAR.
4559 (concat): Adjusted for the change of CHAR_STRING.
4560 (Ffillarray): Adjusted for the change of CHAR_STRING.
4561 (Fset_char_table_default): Delete codes for a composite character.
4562 (hash_put): Return hash index.
4563
4564 * fontset.h (struct font_info): New member vertical_centering.
4565 (Vvertical_centering_font_regexp): Extern it.
4566
4567 * fontset.c (Vvertical_centering_font_regexp): New variable.
4568 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4569 Set Vignore_relative_composition to nil.
4570 (fs_load_font): Initialize `vertical_centering' of struct
4571 font_info.
4572
4573 * indent.c (check_composition): New function.
4574 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4575 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4576 (current_column_1): Handle new way of composition.
4577 (Fmove_to_column): Likewise.
4578 (compute_motion): Likewise.
4579
4580 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4581 (insert_char): Likewise.
4582 (insert): Call update_compositions.
4583 (insert_and_inherit): Likewise.
4584 (insert_before_markers): Likewise.
4585 (insert_before_markers_and_inherit): Likewise.
4586 (insert_from_string): Likewise.
4587 (insert_from_string_before_markers): Likewise.
4588 (insert_from_buffer): Likewise.
4589 (replace_range): Likewise.
4590 (count_combining_composition): Deleted.
4591 (count_combining_before): Delete codes for a composite character.
4592 (count_combining_after): Likewise.
4593 (del_range_1): Call update_compositions.
4594 (del_range_byte): Likewise.
4595 (del_range_both): Likewise.
4596 (Fcombine_after_change_execute): Likewise.
4597
4598 * intervals.h: Include composite.h.
4599 (get_property_and_range): Extern it.
4600 (Vtext_property_default_nonsticky): Extern it.
427ec082 4601
5ec14d3c
KH
4602 * intervals.c (adjust_intervals_for_insertion): To check stickines
4603 of properties, pay attention to text-property-default-nonsticky.
4604 (merge_properties_sticky): Likewise.
4605 (get_property_and_range): New function.
4606
4607 * keyboard.c (Vdisable_point_adjustment): New variable.
4608 (Vglobal_disable_point_adjustment): New variable.
4609 (syms_of_keyboard): Declare them as Lisp variables.
4610 (command_loop_1): Check them and call adjust_point_for_property if
4611 necessary.
4612 (adjust_point_for_property): New function.
4613
4614 * keymap.c (push_key_description): Adjusted for the change of
4615 CHAR_STRING.
4616 (Ftext_char_description): Likewise.
4617
4618 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4619 (hash_put): Adjusted for the change of the definition.
4620 (signal_after_change): Likewise.
4621 (check_point_in_composition): Extern it.
4622
4623 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4624 Delete a code that handles an invalid too-long multibyte sequence
4625 because we are now sure that we never encounter with such a
4626 sequence.
4627 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4628 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4629 (init_obarray): Likewise.
4630 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4631
4632 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4633
4634 * process.c: Include composite.h.
4635 (read_process_output): Call update_compositions.
4636
4637 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4638
4639 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4640
4641 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4642 character.
4643
4644 * term.c (encode_terminal_code): Delete codes for a composite
4645 character. Adjusted for the change of CHAR_STRING.
4646 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4647 Delete codes for a composite character.
4648
4649 * textprop.c (Vtext_property_default_nonsticky): New variable
4650 (syms_of_textprop): Declare it as a Lisp variable.
4651
4652 * window.c (Frecenter): Clear all caches of compositions.
4653
4654 * xdisp.c (it_props): Add an entry for composition.
4655 (face_before_or_after_it_pos): For composition, check face of a
4656 character after the composition.
4657 (handle_composition_prop): New function.
4658 (get_next_display_element): Adjusted for the change of
4659 CHAR_STRING.
4660 (set_iterator_to_next): Handle the case that it->method ==
4661 next_element_from_composition.
4662 (next_element_from_composition): New function.
4663 (message_dolog): Adjusted for the change of CHAR_STRING.
4664 (set_message_1): Likewise.
4665 (check_point_in_composition): New function.
4666 (reconsider_clip_changes): If point moved into or out of
4667 composition, set b->clip_changed to 1 to force updating of the
4668 screen.
4669 (disp_char_vector): Delete codes for a composite character.
4670 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4671
4672 * xfaces.c (choose_face_fontset_font): Delete codes for a
4673 composite character.
4674 (realize_x_face): Likewise. Change a place to set local variable
4675 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4676
4677 * xfns.c: Include intervals.h.
4678 (syms_of_xfns): Make `display' property nonsticky by default.
4679
4680 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4681 for find_charset_in_str.
4682
4683 * xterm.h (struct x_output): Change member font_baseline to
4684 baseline_offset.
4685
4686 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4687 for composition.
4688 (x_append_composite_glyph): New function.
4689 (VCENTER_BASELINE_OFFSET): New macro.
4690 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4691 of struct it for the composition. Cache pixel offsets in the
4692 struct composition. Delete codes for a composite character.
4693 Handle Vignore_relative_composition in composition code.
4694 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4695 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4696 (x_compute_glyph_string_overhangs): Likewise.
4697 (x_get_glyph_overhangs): Delete codes for a composite character.
4698 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4699 (x_draw_glyph_string_background): Likewise. Delete codes for
4700 checking s->gidx for a composition.
4701 (x_draw_glyph_string_foreground): Delete code for a composite
4702 character.
4703 (x_draw_composite_glyph_string_foreground): New function.
4704 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4705 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4706 (struct work): Deleted.
4707 (x_fill_composite_glyph_string): Argument changed. Mostly
4708 rewritten for that.
4709 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4710 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4711 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4712 (BUILD_GLYPH_STRINGS): For composition, call
4713 BUILD_COMPOSITE_GLYPH_STRING.
4714 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4715 f->output_data.x->font_baseline.
4716
c3c60f13
GM
47171999-12-14 Gerd Moellmann <gerd@gnu.org>
4718
4719 * xterm.c (show_mouse_face): Don't use updated_area, use
4720 TEXT_AREA.
4721
83c8f461 47221999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4723
4724 * minibuf.c (Fall_completions): Doc fix.
4725
83c8f461 47261999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4727
4728 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
4729 has been changed by the Lisp code.
4730
d8eccf12
GM
47311999-12-12 Gerd Moellmann <gerd@gnu.org>
4732
4733 * xfns.c: Indentation fixes.
4734
ae56feae
SM
47351999-12-10 Stefan Monnier <monnier@cs.yale.edu>
4736
4737 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
4738
dfa1c6ae
GM
47391999-12-10 Gerd Moellmann <gerd@gnu.org>
4740
4741 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
4742 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
4743
4744 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
4745 to frame.h.
4746
ec18280f
SM
47471999-12-09 Stefan Monnier <monnier@cs.yale.edu>
4748
4749 * keyboard.c (Qratio): New symbol.
4750 (scroll_bar_parts): Add `Qratio' to it.
4751 (syms_of_keyboard): Init `Qratio'.
4752 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
4753 * xterm.c (#includes): Allow compilation with only Xaw.
4754 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
4755 (xt_action_hook): Replace XAW3D by XAW.
4756 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
4757 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
4758 Determine epsilon dynamically and don't try to be too clever.
4759 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
4760 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
4761 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
4762 scrollbar (using `ratio').
4763 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
4764 scrollbar we have so as to set it up more optimally and to fix
4765 xaw3d_arrow_scroll and xaw3d_pick_top.
4766 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
4767 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
4768 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
4769 is not ignored, using a major gross hack.
4770 (x_initialize): Init default values for xaw3d_arrow_scroll and
4771 xaw3d_pick_top.
4772
83b6d970
DL
47731999-12-09 Dave Love <fx@gnu.org>
4774
4775 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
4776
3648c842
GM
47771999-12-08 Gerd Moellmann <gerd@gnu.org>
4778
4779 * eval.c: Remove conditional compilation on `standalone'.
4780 (call_debugger): When entering the debugger while redisplaying,
4781 reset redisplaying_p, and go back to the top-level if the debugger
4782 returns.
4783
05e71564
GM
47841999-12-07 Gerd Moellmann <gerd@gnu.org>
4785
4786 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
4787 basic faces are realized before trying to use face `menu'.
4788
4789 * window.c (delete_window): Block input for the time window
4790 matrices are being changed.
4791
b46cd536
DL
47921999-12-07 Dave Love <fx@gnu.org>
4793
4794 * lread.c (Fintern_soft): Fix newlines in doc string.
4795
96acb1f7
GM
47961999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
4797
4798 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
4799 duplicate definition of ElfW.
4800 (find_section): Copied from unexsgi.c.
4801 (unexec): Use find_section. Adjust whitespace. Initialize
4802 new_data2_offset based on old_data, not sbss (this fixes a bug on
4803 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
4804 Adjust test for presence of .mdebug section to the new return
4805 value of find_section.
427ec082 4806
96acb1f7
GM
48071999-12-07 Gerd Moellmann <gerd@gnu.org>
4808
4809 * unexelf.c: Merge changes from 20.5.
4810 (unexec): Handle .lit4 and .lit8 unconditionally.
4811
4812 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
4813 unexsgi.o again.
427ec082 4814
96acb1f7
GM
4815 * m/iris5d.h (UNEXEC): Likewise.
4816
7dae4502
SM
48171999-12-06 Stefan Monnier <monnier@cs.yale.edu>
4818
4819 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
4820 (syms_of_editfns): Register it.
4821 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
4822 (del_range_1, del_range_2): Add a ret_string argument to
4823 request that the deleted text be returned.
4824 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 4825 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
4826 * casefiddle.c (casify_region): Update del_range_1 call.
4827 * coding.c (code_convert_region): Update del_range_2 call.
4828 * fileio.c (Finsert_file_contents): Update del_range_2 call.
4829
397e4fae
GM
48301999-12-06 Gerd Moellmann <gerd@gnu.org>
4831
4832 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
4833
3d973f71
GM
48341999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
4835
4836 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 4837
740e985f
EZ
48381999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4839
4840 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
4841
4842 * insdel.c (adjust_markers_for_delete): Fix last change.
4843
2d764c78
EZ
48441999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4845
4846 Changes for automatic remapping of X colors on terminal frames:
4847
4848 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
4849 frames.
4850 (Vface_tty_color_alist): Remove.
4851 (tty_defined_color): New function.
4852 (defined_color): Rewrite to support any type of frame.
4853 (tty_color_name): New function.
4854 (face_color_supported_p, Fface_color_gray_p,
4855 Fface_color_supported_p): Support non-X frames.
4856 (load_color): Enclose the color name in quotes, in the log
4857 messages. Remove DOS-specific version of load_color.
4858 (realize_tty_face): Take the supported colors from
4859 tty-color-alist. Support translation of X colors to the closest
4860 tty color, for both MSDOS and tty frames.
4861 [MSDOS]: Don't invert face colors if they were taken from the
4862 frame colors.
4863 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
4864
4865 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
4866 Define a mostly empty surrogate.
4867 (tty_display): Declare.
4868
4869 * frame.c (make_terminal_frame) [!macintosh]: Don't use
4870 tty_display.
4871 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
4872 frames when the frame's param_alist includes 'reverse.
4873 (tty_display): Define.
4874 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
4875 output_data.x member.
4876 (Fframe_parameters): Return foreground and background color names
4877 on tty frames as well, in addition to MSDOS frames.
4878
4879 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
4880 selected_frame.
4881 (struct x_output): Remove unused members; document who uses each
4882 member.
4883 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
4884 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
4885 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
4886 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
4887 unused macro definintions.
4888
4889 * msdos.c (IT_set_frame_parameters): Don't call
4890 recompute_basic_faces, the next redisplay will, anyway.
4891 (x_current_display): Remove unused variable.
4892 Many functions: changes for Lisp_object selected_frame.
4893 (IT_set_face): If the tty_reverse_p flag is set for the face,
4894 reverse the foreground and background colors.
4895 (Fmsdos_remember_default_colors): New function.
4896 (syms_of_msdos): Defsubr it.
4897 (IT_set_frame_parameters): Use initial_screen_colors[] when
4898 creating a new frame. If the frame parameters include 'reverse,
4899 swap the foreground and background colors.
4900 (internal_terminal_init): Initialize initial_screen_colors to -1.
4901 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
4902 cus-start.el.
4903
4904 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
4905
4906 * xfns.c (x_defined_color): Rename from defined_color. All
4907 callers changed.
4908 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4909 all callers changed.
4910 (Fxw_color_values): Renamed from Fx_color_values; all callers
4911 changed.
4912 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4913 callers changed.
4914 (x_window_to_frame, x_any_window_to_frame,
4915 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4916 x_top_window_to_frame): Use !FRAME_X_P instead of
4917 f->output_data.nothing.
4918 * xterm.h (x_defined_color): Rename from defined_color.
4919
4920 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
4921 f->output_data.nothing.
4922 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4923 all callers changed.
4924 (Fxw_color_values): Renamed from Fx_color_values; all callers
4925 changed.
4926 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4927 callers changed.
4928
4929 * dispextern.h (tty_color_name): Add prototype.
4930
4931 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
4932 f->output_data.nothing.
4933 * w32menu.c (menubar_id_to_frame): Likewise.
4934 * w32term.h (w32_output): Declare.
4935
4936 * dosfns.c (Qmsdos_color_translate): Remove.
4937 (msdos_stdcolor_name): Now returns a Lisp_Object.
4938 * dosfns.h (Qmsdos_color_translate): Remove.
4939
4940 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
4941
b3e5232e
KH
49421999-12-06 Kenichi Handa <handa@etl.go.jp>
4943
4944 * fileio.c (decide_coding_unwind): Renamed from
4945 set_auto_coding_unwind.
4946 (Finsert_file_contents): Make single unwind protect to call both
4947 Vset_auto_coding_function and Ffind_operation_coding_system.
4948
4949 * insdel.c (adjust_markers_for_delete): Make it non-static.
4950
db0e466c
SM
49511999-12-04 Stefan Monnier <monnier@cs.yale.edu>
4952
4953 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
4954 operators and handle them properly.
4955 * regex.h (RE_ALL_GREEDY): New option.
4956 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
4957 sorting would put it.
4958 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
4959 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
4960
22afa6e8
DL
49611999-12-04 Dave Love <d.love@dl.ac.uk>
4962
4963 * m/arm.h: New file.
4964
40afb967
DL
49651999-12-03 Dave Love <fx@gnu.org>
4966
4967 * editfns.c (Fmessage_or_box): Use use_dialog_box.
4968
ddf8eff5
GM
49691999-12-02 Gerd Moellmann <gerd@gnu.org>
4970
4971 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
4972 for building with Motif.
4973
4974 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
4975 unexelf.o.
427ec082 4976
ddf8eff5
GM
4977 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
4978
fa09a82d
DL
49791999-12-01 Dave Love <fx@gnu.org>
4980
4981 * emacs.c (main): Set LANG=C iff AX3_2 defined.
4982
ddf8eff5
GM
49831999-11-28 Gerd Moellmann <gerd@gnu.org>
4984
4985 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
4986 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
4987 macros.
4988
4989 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
4990
fa09a82d
DL
49911999-11-28 eliz <eliz@dlpx1>
4992
4993 * emacs.c (synchronize_locale): Avoid compiler warnings about
4994 pointer type mismatch.
4995
f9632fc8
GM
49961999-11-28 Gerd Moellmann <gerd@gnu.org>
4997
717d0121
GM
4998 * window.c (Fwindow_end): Don't call temp_set_pt_both with
4999 out of range position.
5000
427ec082 5001 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
5002 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
5003
59c65f1e
EZ
50041999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
5005
613a8346
EZ
5006 * charset.c (Fmake_char_internal): Print the charset ID when
5007 signalling an error.
5008
59c65f1e
EZ
5009 * emacs.c (synchronize_locale): Avoid compiler warnings about
5010 pointer type mismatch.
5011
83c8f461 50121999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
5013
5014 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
5015
18df9369
GM
50161999-11-26 Gerd Moellmann <gerd@gnu.org>
5017
65a3ccf7
GM
5018 * puresize.h (BASE_PURESIZE): Increase to 550000.
5019
b3b98592
GM
5020 * textprop.c (set_text_properties): New function. Like
5021 Fset_text_properties, but with additional parameter
5022 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
5023 changes.
5024 (Fset_text_properties): Use it.
5025
5026 * insdel.c (insert_1_both): Call set_text_properties with last
5027 parameter nil so that no after changes will be signaled.
5028
5029 * lisp.h: Add prototype for set_text_properties.
5030
18df9369
GM
5031 * xfaces.c (set_lface_from_font_name): Fix previous change.
5032 (recompute_basic_faces): Change assert to abort.
5033
71a8e74b
DL
50341999-11-25 Dave Love <fx@gnu.org>
5035
5036 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
5037 (Fmember, Fdelq, Fdelete): Inline car.
5038 (Fy_or_n_p): Doc fix.
5039
bc6a5782
GM
50401999-11-25 Gerd Moellmann <gerd@gnu.org>
5041
3221576b 5042 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 5043 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
5044 is not set, try to use a reasonable default.
5045
bc6a5782
GM
5046 * dispnew.c (direct_output_for_insert): Set glyph row's
5047 displays_text_p flag. Correct window's window_end_vpos if
5048 necessary.
5049
0c8559bb
PE
50501999-11-25 Paul Eggert <eggert@twinsun.com>
5051
5052 * emacs.c (fixup_locale): Don't bother to record initial locale.
5053 (synchronize_locale): If the desired locale is nil,
5054 treat it as if it were the empty string,
5055 so that we set the locale from the environment.
5056
35737351
KH
50571999-11-25 Kenichi Handa <handa@etl.go.jp>
5058
5059 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
5060 of the current buffer via Fset.
5061
5562b47f
DL
50621999-11-24 Dave Love <fx@gnu.org>
5063
5562b47f
DL
5064 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
5065
5066 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
5067
00da0e4a
GM
50681999-11-24 Gerd Moellmann <gerd@gnu.org>
5069
5070 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
5071
5072 * emacs.c (PVEC_FLAG): New variable.
5073
b1775dc1
GM
50741999-11-23 Gerd Moellmann <gerd@gnu.org>
5075
5076 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
5077 that fails on IBM PowerPC, AIX 4.2.
427ec082 5078
08de6200
EZ
50791999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
5080
5081 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
5082 string of mode-line-format. Remove the obsolete %t.
5083
02fda8ff
GM
50841999-11-22 Gerd Moellmann <gerd@gnu.org>
5085
f2fa858f
GM
5086 * dispnew.c (direct_output_for_insert): Increment glyph positions
5087 for glyphs from buffer text only.
5088
02fda8ff
GM
5089 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
5090 (gdb_data_seg_bits): New variables.
427ec082 5091
02fda8ff
GM
5092 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
5093 work on systems not allowing enumerators > INT_MAX, and it
5094 won't work if EMACS_INT is long long.
5095
1b0d24e7
PE
50961999-11-22 Paul Eggert <eggert@twinsun.com>
5097
5098 Port to SunOS 4.1.x again. Help out with Alpha port.
5099 Rename messages-locale to system-messages-locale,
5100 and likewise for time-locale.
427ec082 5101
1b0d24e7
PE
5102 * callproc.c (strerror): Remove decl.
5103 * fileio.c (strerror): Likewise.
5104 * process.c (strerror): Likewise.
5105 * emacs.c (strerror): Likewise.
5106 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5107 All uses changed.
5108 (Vprevious_system_messages_locale): Likewise, from
5109 Vprevious_messages_locale.
5110 (Vsystem_time_locale): Likewise, from Vtime_locale.
5111 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5112 (ABORT_RETURN_TYPE): New macro.
5113 (abort): Return type is now ABORT_RETURN_TYPE.
5114 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5115 defined.
5116 (syms_of_emacs): messages-locale -> system-messages-locale,
5117 previous-messages-locale -> previous-system-messages-locale,
5118 time-locale -> system-time-locale,
5119 previous-time-locale -> previous-system-time-locale.
5120
5121 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5122 (const): Do not define; that's config.h's job.
5123 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5124 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5125 (<stddef.h>): Include if STDC_HEADERS is defined.
5126 (FREE_RETURN_TYPE): New macro.
5127 (free): Return type is now FREE_RETURN_TYPE.
5128
5129 * lisp.h (synchronize_system_time_locale): Renamed from
5130 synchronize_time_locale. All uses changed.
5131 (synchronize_system_messages_locale): Likewise, from
5132 synchronize_messages_locale.
5133
5134 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5135 stdlib.h now does this.
5136
5137 * process.c (sys_siglist): Remove.
5138
5139 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5140 New macros.
5141
5142 * syntax.c (scan_sexps_forward): Use abort, not assert.
5143
5144 * sysdep.c (my_sys_siglist): New var.
5145 (sys_siglist): New macro. Remove old initialized vars of same name.
5146 (init_signals): Initialize sys_siglist.
5147
5148 * xfns.c (abort): Remove decl; stdlib.h now does this.
5149
0dcd5b54
DL
51501999-11-18 Dave Love <fx@gnu.org>
5151
946173ad
DL
5152 * filelock.c: Add forward declaration for get_boot_time_1.
5153
0dcd5b54
DL
5154 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5155
71447e8f
GM
51561999-11-18 Gerd Moellmann <gerd@gnu.org>
5157
5158 * buffer.h (struct buffer_text): Add comment about moving
5159 buffer text if REL_ALLOC is defined.
5160
eeedff63
KH
51611999-11-18 Kenichi Handa <handa@etl.go.jp>
5162
5163 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5164
5165 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5166 memory for push_key_description.
5167
5168 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5169 allocate memory for push_key_description.
5170 (describe_buffer_bindings): Likewise.
5171
5d7e4a2c
GM
51721999-11-17 Gerd Moellmann <gerd@gnu.org>
5173
5174 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5175 (Fx_hide_busy_cursor): Ditto.
5176
51771999-11-17 Marco Walther <walther@siemens-pyramid.com>
5178
5179 * unexsni.c (unexec): Handle .rel.dyn section.
5180
b5b41e02
DL
51811999-11-16 Dave Love <fx@gnu.org>
5182
5183 * doc.c (Fdocumentation): Remove gcpro here too.
5184
e35b6123
GM
51851999-11-16 Gerd Moellmann <gerd@gnu.org>
5186
5187 * keyboard.c (command_loop_1): Remove no_redisplay.
5188
83c8f461 51891999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5190
5191 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5192 in noninteractive.
5193
b05d3bee
GM
51941999-11-14 Gerd Moellmann <gerd@gnu.org>
5195
5bcfeb49
GM
5196 * xdisp.c (ensure_echo_area_buffers): New.
5197 (with_echo_area_buffer): Use it.
5198 (setup_echo_area_for_printing): Ditto.
5199
b05d3bee
GM
5200 * buffer.c (indicate-empty-lines): Doc-fix.
5201
9b2e6e4c
GM
52021999-11-12 Gerd Moellmann <gerd@gnu.org>
5203
e7f90eab
GM
5204 * term.c (term_init): If "op" isn't available, don't support color
5205 because we can't switch back to the default foreground and
5206 background.
5207
9b2e6e4c
GM
5208 * doc.c (Fdocumentation_property): Remove GCPRO because
5209 Fsubstitute_command_keys gcpro's the string.
5210
1bf21027
KH
52111999-11-12 Kenichi Handa <handa@etl.go.jp>
5212
5213 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5214
3bc6df53
GM
52151999-11-11 Gerd Moellmann <gerd@gnu.org>
5216
5217 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5218 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5219 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5220
35a5514b
GM
52211999-11-10 Gerd Moellmann <gerd@gnu.org>
5222
5223 * xfns.c (QCuser_data): Removed.
5224 (syms_of_xfns): Initialization of QCuser_data removed.
5225 (parse_image_spec): Don't handle :user-data specially. Allow
5226 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5227 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5228 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5229 parse_image_spec accordingly.
5230
83c8f461 52311999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5232
5233 * cmds.c (Fbeginning_of_line): Doc fix.
5234 (Fend_of_line): Doc fix.
5235
5236 * editfns.c (Fline_beginning_position): If N is not 1,
5237 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5238
5239 * syntax.c (Fforward_word): Handle fields even if would have hit
5240 an edge of the buffer. Return nil if affected by fields.
5241
83c8f461 52421999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5243
5244 * editfns.c (preceding_pos): Function deleted.
5245 (text_property_stickiness): Decrement POS directly.
5246 Fix a confusion that used PT instead of POS.
5247
5248 * editfns.c (find_field): Properly handle the case
5249 of a field boundary where `field' inherits from neither side.
5250
5251 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5252 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5253
fa9aabf6
GM
52541999-11-08 Gerd Moellmann <gerd@gnu.org>
5255
5256 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5257 BEFORE_POTENTIAL_GC before DISCARD.
5258
4015b3c0
GM
52591999-11-07 Gerd Moellmann <gerd@gnu.org>
5260
033a5fa3
GM
5261 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5262
5263 * lisp.h: Add prototype for unmark_byte_stack.
5264
5265 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5266 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5267 XUNMARK.
5268
55b064bd
GM
5269 * xdisp.c (resize_mini_window): Fix computation of needed
5270 mini-window height.
5271
5272 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5273 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5274
4015b3c0 5275 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5276 locally there. Rearrange case statements so that those most
4015b3c0
GM
5277 frequently executed come first. Avoid goto's in frequently
5278 executed cases.
5279
fe512f27
GM
52801999-11-05 Gerd Moellmann <gerd@gnu.org>
5281
dd59e217
GM
5282 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5283 AFTER_POTENTIAL_GC around internal_catch.
5284
bcf28080
GM
5285 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5286 relocate_byte_pcs.
5287 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5288
5289 * eval.c (struct catchtag): Add member byte_stack.
5290 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5291 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5292 catchtag.
5293 (unwind_to_catch): Restore byte_stack_list from catchtag.
5294
5295 * lisp.h: Add prototypes for new functions in bytecode.c.
5296 Add extern declaration for byte_stack_list.
5297
5298 * bytecode.c (struct byte_stack): New.
5299 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5300 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5301 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5302 (HANDLE_RELOCATION): Removed.
5303 (Fbyte_code): Use byte_stack structures.
5304
4d59c34c
GM
5305 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5306
fe512f27
GM
5307 * buffer.c (syms_of_buffer): Extend documentation of
5308 mode-line-format.
5309
60b64cd6
GM
53101999-11-04 Gerd Moellmann <gerd@gnu.org>
5311
5312 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5313
5314 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5315 Ferase_field instead of Fdelete_field.
5316
b51b619b
GM
53171999-11-03 Gerd Moellmann <gerd@gnu.org>
5318
5319 * dispnew.c (Finternal_show_cursor): Change it to set the
5320 cursor on/off, not toggle its state.
5321 (Finternal_show_cursor_p): New.
5322 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5323
5865af0d
DL
53241999-11-03 Dave Love <fx@gnu.org>
5325
5326 * charset.c (split_non_ascii_string): Define return value.
5327
82a700f3
GM
53281999-11-03 Gerd Moellmann <gerd@gnu.org>
5329
edfef199
GM
5330 * minibuf.c (string_to_object): New.
5331 (read_minibuf_noninteractive): New.
5332 (read_minibuf): Call read_minibuf_noninteractive if
5333 noninteractive. Use string_to_object.
5334
82a700f3
GM
5335 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5336
b5540f0d
DL
53371999-11-02 Dave Love <fx@gnu.org>
5338
e69dcd60
DL
5339 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5340
827a1788
DL
5341 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5342 declared with glibc2.
b5540f0d 5343
a69a6e61
GM
53441999-11-02 Gerd Moellmann <gerd@gnu.org>
5345
5346 * lisp.h (QUIT): Give it statement form.
5347
87e21fbd
DL
53481999-11-02 Dave Love <fx@gnu.org>
5349
5350 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5351
1b335865
GM
53521999-11-02 Gerd Moellmann <gerd@gnu.org>
5353
9fb5e03d
GM
5354 * xfns.c (QCuser_data): New.
5355 (syms_of_xfns): Initialize QCuser_data.
5356 (parse_image_spec): Ignore :user-data DATA properties.
5357
1b335865
GM
5358 * xdisp.c (display_line): Set charpos of first glyph in blank
5359 lines not corresponding to any text to -1, even if no glyphs are
5360 filled in in that line.
5361
e76f1c44
GM
53621999-11-01 Gerd Moellmann <gerd@gnu.org>
5363
427ec082 5364 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5365 png_get_sRGB in #ifdef.
5366
111259b4
GM
5367 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5368 (syms_of_display): Use the new name.
5369
dd5c96e8
GM
5370 * textprop.c (verify_interval_modification): Signal text-read-only
5371 instead of calling error.
5372
db8878fb
GM
5373 * data.c (Qtext_read_only): New built-in error.
5374 (syms_of_data): Initialize it.
5375
5376 * lisp.h: Add extern declaration for Qtext_read_only.
5377
e76f1c44
GM
5378 * syntax.c: Remove whitespace after open or in front of closing
5379 parentheses.
5380
83c8f461 53811999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5382
5383 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5384
7843e09c
GM
53851999-10-31 Gerd Moellmann <gerd@gnu.org>
5386
575ed805
GM
5387 * xdisp.c (resize_mini_window): Compute needed height differently.
5388
7843e09c
GM
5389 * fns.c (Flength): Unroll loop over lists.
5390
5391 * xdisp.c (append_space): Return non-zero if space was appended.
5392 (display_line): Set charpos of first glyph to -1 only if that
5393 glyph is the space added by append_glyph.
5394
83c8f461 53951999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5396
5397 * print.c (strout): Consider `noninteractive' and use stdout
5398 only when PRINTCHARFUN is t.
5399
5400 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5401 (gcpro_level): Declare it extern.
5402 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5403 Alternate definitions that set `level' and increment `gcpro_level'.
5404 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5405
5406 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5407 (init_eval) [DEBUG_GCPRO]: Initialize it.
5408 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5409 from remaining gcprolist.
5410
3636f7a3
KH
54111999-10-29 Kenichi Handa <handa@etl.go.jp>
5412
5413 * coding.c (code_convert_region): Update `dst' correctly.
5414
a2ad7096
GM
54151999-10-28 Gerd Moellmann <gerd@gnu.org>
5416
5417 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5418 (Frassoc): Rewritten.
5419
1e3196e8
GM
54201999-10-27 Noah Friedman <friedman@splode.com>
5421
5422 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5423 Define PTY_NAME_SPRINTF.
5424 Redefine PTY_TTY_NAME_SPRINTF.
5425 * config.in: Add undef for HAVE_DEV_PTMX.
5426
83c8f461 54271999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5428
5429 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5430 as arg to DEBUG_POP and DEBUG_PRINT.
5431
83c8f461 54321999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5433
5434 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5435 (Ffset): Call Qad_activate_internal.
5436 (syms_of_data): Initialize Qad_activate_internal.
5437
26922151
GM
54381999-10-27 Gerd Moellmann <gerd@gnu.org>
5439
5440 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5441 Vterminal_frame is selected and Vwindow_system is non-nil.
5442
67a5596f
GM
54431999-10-26 Gerd Moellmann <gerd@gnu.org>
5444
2bea706b
GM
5445 * xdisp.c (echo_area_display): Put previous change in #if 0.
5446
67a5596f
GM
5447 * emacs.c (standard_args): Add `file' as synonym for `visit',
5448 `execute' as synonym for `eval'.
5449 (main): Add new options to usage message.
5450
81dc5de5
GM
54511999-10-25 Gerd Moellmann <gerd@gnu.org>
5452
5453 * data.c (Qhash_table): New.
5454 (Ftype_of): Return it for hash tables.
5455 (syms_of_data): Initialize Qhash_table.
5456
83c8f461 54571999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5458
5459 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5460
66e4690f 54611999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5462
7539e11f
KR
5463 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5464 lisp.h.
5465
5466 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5467 Fbuffer_local_variables, Fother_buffer, record_buffer,
5468 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5469 swap_out_buffer_local_variables, overlays_at, overlays_in,
5470 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5471 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5472 Foverlay_put, report_overlay_modification, evaporate_overlays):
5473 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5474 references.
5475 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5476 swap_in_symval_forwarding, set_internal, default_value,
5477 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5478 Fmake_variable_frame_local, Flocal_variable_p,
5479 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5480 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5481 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5482 * emacs.c (main): Likewise.
5483 * fontset.c (fs_load_font, fs_register_fontset,
5484 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5485 Fnew_fontset, Fset_fontset_font): Likewise.
5486 * frame.c (do_switch_frame, next_frame, prev_frame,
5487 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5488 Likewise.
5489 * keyboard.c (read_char, help_char_p, event_to_kboard,
5490 kbd_buffer_get_event, timer_start_idle, timer_check,
5491 make_lispy_event, apply_modifiers, reorder_modifiers,
5492 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5493 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5494 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5495 Fcommand_execute, Fexecute_extended_command): Likewise.
5496 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5497 Fall_completions): Likewise.
5498 * window.c (Fset_window_margins): Likewise.
5499
5500 * callint.c (quotify_args): Don't explicitly use struct
5501 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5502
3a7093d8
KR
5503 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5504 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5505 if __ELF__ is defined.
5506
2a3d7146
GM
55071999-10-24 Gerd Moellmann <gerd@gnu.org>
5508
5509 * window.c (Fnext_window): Add a QUIT in the loop.
5510
8ac52782
GM
55111999-10-23 Gerd Moellmann <gerd@gnu.org>
5512
427ec082 5513 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5514 New targets.
5515
05f0d15a
DL
55161999-10-22 Dave Love <fx@gnu.org>
5517
5518 * emacs.c (main): Enable profiling conditional on __linux also.
5519
882fb0e6
GM
55201999-10-20 Gerd Moellmann <gerd@gnu.org>
5521
5522 * xrdb.c (x_load_resources): Set default resources for resource
5523 classes instead of for the specific Emacs.
5524
b5f5bc31
GM
55251999-10-19 Gerd Moellmann <gerd@gnu.org>
5526
66f4dd69
GM
5527 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5528 defines it that way.
427ec082 5529
b5f5bc31
GM
5530 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5531 if selected_frame is equal to Vterminal_frame.
5532
68c45bf0 55331999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5534
68c45bf0 5535 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5536
68c45bf0
PE
5537 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5538 when dumping, so that the dumped Emacs doesn't have stray locale info.
5539 (dired.o): Depend on systime.h.
5540 (editfns.o): Depend on coding.h.
5541
5542 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5543 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5544 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5545 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5546 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5547 Include <config.h> before any system include files.
5548
5549 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5550 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5551 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5552 xmenu.c, xterm.c:
5553 Do not include <stdlib.h>, as <config.h> does this now.
5554
5555 * callproc.c (Fcall_process):
5556 Synchronize messages locale before invoking strerror.
5557 Decode resulting string with locale-coding-system.
5558
5559 * coding.c (Vlocale_coding_system): New var.
5560 (syms_of_coding): Adjust to above change.
5561 (emacs_strerror): New function.
5562
5563 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5564
68c45bf0
PE
5565 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5566 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5567 HAVE_STRSIGNAL): New macros.
5568 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5569 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5570
5571 * dired.c: Include "systime.h".
5572 (Ffile_attributes): Do not cast s.st_size to int; this loses
5573 information if int is 32 bits but st_size and EMACS_INT are larger.
5574 Treat large device numbers like large inode numbers.
5575
5576 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5577
5578 * editfns.c: Include coding.h.
5579 (emacs_strftime): Remove decl.
5580 (emacs_strftimeu): New decl.
5581 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5582 Use emacs_strftimeu instead of emacs_strftime.
5583 (Fformat_time_string): Convert format string using
5584 Vlocale_coding_system, and convert result back. Synchronize time
5585 locale before invoking lower level function. Invoke
5586 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5587
68c45bf0
PE
5588 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5589 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5590 Vprevious_time_locale): New variables.
5591 (main): Invoke setlocale early, so that initial error messages are
5592 localized properly. But skip locale-setting if LC_ALL is "C".
5593 Fix up locale when it's safe to do so.
5594 (fixup_locale): Moved here from xterm.c.
5595 (synchronize_locale, synchronize_time_locale,
5596 synchronize_messages_locale): New functions.
5597 (syms_of_emacs): Accommodate above changes.
5598
5599 * fileio.c (report_file_error): Convert strerror output according
5600 to Vlocale_coding_system.
5601 (Finsert_file_contents): Check for arithmetic overflow in
5602 computations that depend on file size. Report IO errors
5603 with emacs_strerror, not strerror.
5604
5605 * fns.c (Fgethash): Declare dflt parameter.
5606
5607 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5608 is defined; that's config.h's job.
5609
5610 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5611 default these values to long, BITS_PER_LONG, and unsigned long.
5612 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5613 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5614 (code_convert_string_norecord, fixup_locale,
5615 synchronize_messages_locale, synchronize_time_locale,
5616 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5617 All Emacs callers of open, close, read, write changed to use
5618 emacs_open, emacs_close, emacs_read, emacs_write.
5619
5620 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5621 changed to file_tell.
5622 (saved_doc_string_position, prev_saved_doc_string_position): Now
5623 of type file_offset.
5624 (init_lread): Do not fix locale here; fixup_locale now does this.
5625
5626 * m/amdahl.h, s/usg5-4.h:
5627 (NSIG): Remove.
5628 (NSIG_MINIMUM): New macro.
5629
5630 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5631 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5632 s/umips.h, s/usg5-4.h:
5633 (SIGIO): Do not undef.
5634 (BROKEN_SIGIO): New macro.
5635
5636 * m/ustation.h:
5637 (SIGTSTP): Do not undef.
5638 (BROKEN_SIGTSTP): New macro.
5639
5640 * s/gnu-linux.h:
5641 (SIGPOLL, SIGURG): Do not undef.
5642 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5643
5644 * s/ptx4.h:
5645 (SIGINFO): Do not undef.
5646 (BROKEN_SIGINFO): New macros.
427ec082 5647
68c45bf0
PE
5648 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5649
5650 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5651 some Emacs-related changes merged.
5652
5653 * print.c (float_to_string): Prepend "-" to representation of a
5654 NaN if the NaN is negative.
5655
5656 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5657 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 5658
68c45bf0
PE
5659 * process.c (status_message, sigchld_handler): Synchronize locale,
5660 then use strsignal istead of sys_siglist.
5661 * w32proc.c (sys_wait): Likewise.
427ec082 5662
68c45bf0
PE
5663 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5664 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5665 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5666 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5667 (open, close, read, write, INTERRUPTIBLE_OPEN,
5668 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5669
5670 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5671
5672 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5673 sys_open, open): Remove.
5674 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5675 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5676 macros are no longer used.
5677 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5678 (emacs_close): Renamed from sys_close.
5679 (emacs_read): Renamed from sys_read.
5680 (emacs_write): Renamed from sys_write.
5681 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5682 (dup2): Do not print error on failure; the real dup2 doesn't.
5683 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5684
5685 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5686 is defined.
5687 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5688 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5689 (strsignal): Declare if !HAVE_STRSIGNAL.
5690
5691 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5692 (ElfW): Define in terms of ElfExpandBitsW.
5693
5694 * w32proc.c (sys_siglist): Remove decl.
5695
5696 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5697 with ANSI C.
5698 (display_string): Declare face_string_pos arg.
5699
5700 * xfns.c (Fx_show_tip): Declare timeout param.
5701
5702 * xterm.c: No need to include locale.h.
5703 (x_alloc_lighter_color, x_setup_relief_color):
5704 Pass arg as double, not float, for compatibility with ANSI C.
5705 (fixup_locale): Move to emacs.c.
5706 (x_term_init): Do not setlocale or fixup locale; the main program
5707 does this now.
5708
2f0b74ea
DL
57091999-10-18 Dave Love <fx@gnu.org>
5710
5711 * doc.c (Fdocumentation_property): Gcpro `tem'.
5712
471aa4a0
KH
57131999-10-18 Kenichi Handa <handa@etl.go.jp>
5714
5715 * lread.c (Fload): Calculate bytes of filename correctly.
5716 (openp): Likewise.
5717
aca2020b
KH
57181999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5719
5720 * print.c (print_preprocess): In case print-circle is nil,
5721 add OBJ to Vprint_number_table only when OBJ is a symbol.
5722
1f5fe392 57231999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
5724
5725 * coding.c (code_convert_string): Add record_unwind_protect to
5726 assure setting inhibit_pre_post_conversion back to zero. Take
5727 care of the multibyteness of the working buffer.
5728
5729 * coding.c (inhibit_pre_post_conversion): New variable.
5730 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
5731 ignore post-read-conversion and pre-write-conversion property of
5732 the coding system.
5733 (code_convert_region_unwind): New function.
5734 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
5735 running pre-write-conversion and post-read-conversion.
5736 (code_convert_string): Likewise.
5737
cd876a91
GM
57381999-10-17 Miles Bader <miles@gnu.org>
5739
5740 * editfns.c: Doc fix.
5741
57421999-10-17 Miles Bader <miles@gnu.org>
5743
5744 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
5745 argument preconditions of find_before_next_newline in the case
5746 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
5747 was indeed at the edge.
5748
57491999-10-17 Miles Bader <miles@gnu.org>
5750
5751 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
5752 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
5753
5754 * editfns.c (text_property_eq, text_property_stickiness): Don't
5755 use initializers for auto variables of type Lisp_Object.
5756 (find_field): Likewise. Use braces around nested ifs.
5757 (Fline_end_position): Store the raw eol in a variable, so that the
5758 final expression doesn't look so ugly.
5759 (Fconstrain_to_field): Doc fix.
5760 (preceding_pos): Renamed from `preceeding_pos'.
5761 (text_property_stickiness, find_field): Call preceding_pos,
5762 not preceeding_pos.
5763
57641999-10-17 Miles Bader <miles@gnu.org>
5765
5766 * editfns.c (Ffield_string_no_properties): New function.
5767 (text_property_stickiness, preceeding_pos): New functions.
5768 (Ffield_string): Remove PROPS parameter.
5769 (find_field): Add MERGE_AT_BOUNDARY parameter.
5770 Rewrite to use stickiness of `field' property to resolve
5771 ambiguous cases.
5772 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
5773 (Fconstrain_to_field): Likewise.
5774 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 5775 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
5776 Supply new MERGE_AT_BOUNDARY argument to find_field.
5777 (Fline_beginning_position, Fline_end_position): Supply new
5778 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
5779 Pass a value of Qt for the ONLY_IN_LINE argument to
5780 Fconstrain_to_field (only matters if N != 1).
5781 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
5782 to Fconstrain_to_field.
5783
5784 * minibuf.c (Fminibuffer_complete_word): Use
5785 Ffield_beginning to find the prompt end.
5786
57871999-10-17 Miles Bader <miles@gnu.org>
5788
5789 * editfns.c (Fconstrain_to_field): Add get/set-current-point
5790 behavior when NEW_POS is nil.
5791 (find_field): Use XSETFASTINT instead of make_number.
5792 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
5793 input string by seeing where the field begins, instead of
5794 looking at text-properties.
5795
57961999-10-17 Miles Bader <miles@gnu.org>
5797
5798 * editfns.c (Qfield): New variable.
5799 (find_field, Ferase_field, Ffield_string,
5800 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
5801 (Fline_beginning_position, Fline_end_position): Constrain to any field.
5802 (make_buffer_string_both): Remove minibuffer-prompt hack.
5803 (syms_of_editfns): Initialize Qfield, and subr entries for
5804 field functions above.
5805 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
5806 minibuf_save_list.
5807 Don't initialize minibuffer prompt length.
5808 Wrap prompt text-properties around the entire prompt.
5809 Add 'prompt text-property to prompt.
5810 Get final value with Ffield_string instead of make_buffer_string.
5811 (read_minibuf_unwind): Don't restore minibuffer prompt length from
5812 minibuf_save_list.
5813 (do_completion): Get minibuffer input with Ffield_string
5814 instead of Fbuffer_string.
5815 Erase minibuffer input with Ferase_field instead of erase_buffer.
5816 (Fminibuffer_complete_and_exit): Likewise.
5817 Test whether buffer is empty by looking for the 'prompt text
5818 property at the end.
5819 Set prompt length by looking for the end of the prompt text property,
5820 and save prompt length for later use (since there is no longer a
5821 buffer variable to get it from).
5822 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
5823 (syms_of_minibuf): Remove initializations of
5824 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
5825 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 5826 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
5827 Don't initialize prompt_end_charpos field.
5828 * syntax.c (Fforward_word): Likewise.
5829 Constrain to any field.
5830
3f6f7508
GM
58311999-10-16 Gerd Moellmann <gerd@gnu.org>
5832
5833 * window.c (enum save_restore_action): New.
5834 (save_restore_orig_size): Change parameter list. Add
5835 functionality to check for valid orig_top and orig_height members
5836 in a window tree.
5837 (grow_mini_window): Call save_restore_orig_size with new parameter
5838 list.
5839 (shrink_mini_window): Restore old window sizes only if old
5840 size information is valid in all windows in a window tree.
427ec082 5841
06482119
GM
58421999-10-15 Gerd Moellmann <gerd@gnu.org>
5843
2710454d
GM
5844 * xmenu.c (set_frame_menubar): Don't call
5845 x_set_menu_resources_from_menu_face here.
5846 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
5847
06482119
GM
5848 * xfns.c (gif_load): Fix handling of interlaced GIFs.
5849
17fa2837
DL
58501999-10-14 Dave Love <fx@gnu.org>
5851
5852 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
5853
45f93416
GM
58541999-10-14 Gerd Moellmann <gerd@gnu.org>
5855
5856 * process.c (Fopen_network_stream): Don't loop if gethostbyname
5857 fails and h_errno is TRY_AGAIN.
5858
c765b723
DL
58591999-10-13 Dave Love <fx@gnu.org>
5860
5861 * filelock.c (lock_file): Move gcpro of `fn'.
5862
dace7f4e
GM
58631999-10-10 Gerd Moellmann <gerd@gnu.org>
5864
5865 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 5866
83c8f461 58671999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
5868
5869 * print.c (print): When removing objects from Vprint_number_table,
5870 only scan the newly added objects.
5871 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
5872 unconditionally force it to stay in the table.
5873
85177c86
GM
58741999-10-09 Gerd Moellmann <gerd@gnu.org>
5875
5876 * xfns.c (prepare_image_for_display): Don't try to load image if
5877 loading it failed before.
5878 (lookup_image, prepare_image_for_display): Remember if loading the
5879 image failed.
5880 (xpm_load): Add missing UNBLOCK_INPUT.
5881
5882 * dispextern.h (struct image): New member load_failed_p.
5883
11e4de5d
SM
58841999-10-08 Stefan Monnier <monnier@cs.yale.edu>
5885
f28eba7b 5886 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
5887 in the docstring.
5888
f1da8f06
GM
58891999-10-08 Gerd Moellmann <gerd@gnu.org>
5890
5891 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
5892 Don't call XSetInputFocus because that can generate additional
5893 FocusIn events.
427ec082 5894
c37bbd4f
GM
58951999-10-07 Jeffrey C Honig <jch@bsdi.com>
5896
5897 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
5898
83c8f461 58991999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
5900
5901 * process.c (wait_reading_process_input): When trying to suck
5902 input from one process, for accept-process-output,
5903 exit that loop if we get EAGAIN or EWOULDBLOCK.
5904
577d9e2f
GM
59051999-10-07 Gerd Moellmann <gerd@gnu.org>
5906
5907 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
5908 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
5909 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
5910 Fpixmap_spec_p and Qpixmap_spec_p.
5911 (load_face_colors, check_lface_attrs,
5912 merge_face_vector_with_property,
5913 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
5914 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
5915 Fbitmap_spec_p.
5916
f5737ad2
GM
59171999-10-07 Gerd Moellmann <gerd@gnu.org>
5918
5919 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
5920 MODE_LINE_FACE_ID.
5921
5922 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
5923 (struct x_resources) [USE_X_TOOLKIT]: New.
5924 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
5925 [USE_MOTIF]: New.
5926 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
5927 [USE_LUCID]: New.
5928 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
5929 (Qmenu): New.
5930 (syms_of_xfaces): Initialize Qmenu.
5931 (realize_basic_faces): Realize face `menu'.
5932 (resolve_face_name): New.
5933 (lface_from_face_name): Use it.
5934 (Finternal_set_lisp_face_attribute): Ditto.
5935 (Fpixmap_spec_p): Rewritten. Extend doc string.
5936
5937 * xmenu.c (set_frame_menubar, xmenu_show): Call
5938 x_set_menu_resources_from_menu_face.
5939
5940 * dispextern.h (enum face_id): Add MENU_FACE_ID.
5941 (toplevel): Include X11/Intrinsic.h.
5942
6a1aa823
DL
59431999-10-03 Ken'ichi Handa <handa@gnu.org>
5944
5945 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
5946 correctly.
5947
26901792
DL
59481999-09-30 Kenichi Handa <handa@etl.go.jp>
5949
5950 * category.c (modify_lower_category_set): Set default value of
5951 TABLE correctly.
5952
5953 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
5954 size correctly.
5955
59561999-09-29 Gerd Moellmann <gerd@gnu.org>
5957
5958 * editfns.c (Fpropertize): Renamed from Fproperties.
5959
59601999-09-29 Gerd Moellmann <gerd@gnu.org>
5961
5962 * xdisp.c (resize_mini_window): Do nothing if frame is an X
5963 frame that hasn't been initialized yet.
5964
83c8f461 59651999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
5966
5967 * keymap.c (Fsingle_key_description): Make tem big enough.
5968 (describe_buffer_bindings): Make buf big enough.
5969
83c8f461 59701999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
5971
5972 * intervals.c (get_local_map): Use indirect_function,
5973 not Findirect_function.
5974
26901792
DL
59751999-09-27 Dave Love <fx@gnu.org>
5976
5977 * cm.h: Remove unneeded declaration of ospeed.
5978
59791999-09-26 Gerd Moellmann <gerd@gnu.org>
5980
5981 * lisp.h (toplevel): Add prototype for
5982 next_single_char_property_change.
5983
5984 * textprop.c (next_single_char_property_change): New.
5985
5986 * xdisp.c (display_prop_end, invisible_text_between_p): Use
5987 next_single_char_property_change.
5988
59891999-09-25 Gerd Moellmann <gerd@gnu.org>
5990
5991 * editfns.c (Fproperties): New.
5992 (syms_of_editfns): Defsubr it.
5993
5994 * xfns.c (lookup_image): Set image's timestamp because it's
5995 used when we look it up.
5996
59971999-09-23 Gerd Moellmann <gerd@gnu.org>
5998
5999 * window.c (enlarge_window): Add window parameter instead of using
6000 selected_window.
6001 (Fdisplay_buffer): Call it with window parameter instead of
6002 setting selected_window.
6003 (Fenlarge_window, Fshrink_window): Ditto.
6004 (shrink_mini_window): If there is no recorded height and position
6005 info, resize mini-window to height 1.
6006
6007 * xfns.c (image_error): Use add_to_log.
6008
6009 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
6010 (load_face_font_or_fontset, load_color,
6011 merge_face_vector_with_property): Ditto.
6012
6013 * dispextern.h: Add prototype for add_to_log.
6014
6015 * xfaces.c (add_to_log): Move to xdisp.c.
6016
6017 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
6018 parameter.
6019
60201999-09-23 Gerd Moellmann <gerd@gnu.org>
6021
6022 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
6023 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
6024
6025 * xdisp.c (resize_mini_window): Use grow_mini_window and
6026 shrink_mini_window.
6027
6028 * window.c (window_min_size): Add parameter ignore_fixed_p.
6029 (change_window_height): Call window_min_size with new parameter.
6030 (shrink_window_lowest_first, save_restore_orig_size,
6031 grow_mini_window, shrink_mini_window): New.
6032 (make_window, replace_window): Initialize orig_top and
6033 orig_height.
6034 (enlarge_window): Renamed from change_window_height. Make it
6035 static.
6036 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
6037 enlarge_window instead of change_window_height.
6038
6039 * window.h (struct window): New members orig_top, orig_height.
6040 (toplevel): Add prototypes for grow_mini_window and
6041 shrink_mini_window. Remove prototype for change_window_height.
6042
60431999-09-21 Eli Zaretskii <eliz@gnu.org>
6044
6045 * frame.c (frame_name_fnn_p): Fix previous change.
6046
60471999-09-20 Gerd Moellmann <gerd@gnu.org>
6048
6049 * minibuf.c (toplevel): Move include of stdio.h to other includes.
6050
6051 * dispnew.c (direct_output_for_insert): Cast arguments to
6052 safe_bcopy to char *.
6053
6054 * lread.c (readchar): Remove unused variables.
6055 (read_filtered_event, read1, Fmapatoms): Ditto.
6056 (toplevel): Include intervals.h.
6057
6058 * eval.c (Fsignal): Remove unused variables.
6059 (Fcommandp, do_autoload): Ditto.
6060
6061 * lisp.h: Add prototype for safe_bcopy, fatal.
6062
6063 * editfns.c (init_editfns): Remove unused variables.
6064 (Fgoto_char, Fchar_after, Fformat): Ditto.
6065 (message_text, message_length): Put in #ifndef HAVE_MENUS.
6066
6067 * data.c (find_symbol_value): Remove unused variables.
6068 (Faref, Fstring_to_number): Ditto.
6069 (toplevel): Include stdio.h.
6070 (Fnumber_to_string): Cast XINT to long for %ld.
6071
6072 * casefiddle.c (casify_object): Remove unused variables.
6073 (casify_region): Ditto.
6074
427ec082 6075 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
6076 conditinally compiled section in #ifdef.
6077 (toplevel): Include stdio.h.
6078
6079 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
6080 keys_of_keymap, syms_of_keymap): Remove unused variables.
6081
60821999-09-20 Gerd Moellmann <gerd@gnu.org>
6083
6084 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
6085 whose corresponding window rows have been disabled in
6086 try_window_id.
6087
60881999-09-20 Gerd Moellmann <gerd@gnu.org>
6089
6090 * xdisp.c (compute_window_start_on_continuation_line): Handle case
6091 that window start is out of range.
6092 (handle_display_prop, handle_single_display_prop): Replace
6093 marginal area specifications like `left-margin' with `(margin
6094 left-margin)'.
6095 (Qmargin): New.
6096 (syms_of_xdisp): Initialize Qmargin.
6097
60981999-09-19 Gerd Moellmann <gerd@gnu.org>
6099
6100 * syntax.c (update_syntax_table, find_defun_start, back_comment,
6101 describe_syntax, skip_chars): Remove unused variables.
6102 (back_comment, forw_comment): Add braces to if-statement with
6103 if-else as dependent statement.
6104
6105 * process.c (list_processes_1): Remove unused variables.
6106 (Fopen_network_stream, create_process): Add parentheses to
6107 conditional expressions.
6108 (create_process): Put declaration of sigchld in #if 0.
6109 (Fopen_network_stream): Removed unused variables.
6110 (Fopen_network_stream, wait_reading_process_input,
6111 wait_reading_process_input, send_process, send_process): Ditto.
6112 (toplevel): Add prototypes for set_waiting_for_input and
6113 keyboard_bit_set.
6114
6115 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6116
6117 * textprop.c (Fset_text_properties): Remove unused variables.
6118 (text_property_list, verify_interval_modification,
6119 interval_has_all_properties): Ditto.
6120
6121 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6122 (Fcall_process): Remove unused variable.
6123
6124 * keyboard.c (Frecursive_edit): Remove unused variable.
6125 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6126 timer_check, make_lispy_event, menu_bar_items,
6127 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6128 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6129 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6130 read_key_sequence): Ditto. Fread_key_sequence,
6131 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6132 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6133 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6134 (Fexecute_extended_command): Cast XINT to long for %ld.
6135 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6136 (toplevel): Include sys/types.h.
6137
6138 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6139 (toplevel): Add prototypes for stuff_char, and
6140 code_convert_string_norecord.
6141
61421999-09-19 Gerd Moellmann <gerd@gnu.org>
6143
6144 * buffer.h: Add prototype for r_re_alloc.
6145
6146 * insdel.c (copy_text): Removed unused variables.
6147 (count_combining_after, count_combining_after, insert_1_both,
6148 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6149 (adjust_after_replace, replace_range): Add parentheses to logical
6150 expressions. Remove unused variables.
6151 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6152 expression.
6153
6154 * alloc.c (Fgarbage_collect): Remove unused variable.
6155 (compact_strings): Add parentheses around assignments in
6156 conditional context.
6157 (toplevel): Put declaration of unused function clear_marks
6158 in #if 0 like its definition.
6159
6160 * lisp.h: Add prototype for shrink_regexp_cache,
6161 sweep_weak_hash_tables.
6162
61631999-09-19 Dave Love <fx@gnu.org>
6164
6165 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6166
6167 * doc.c (read_bytecode_char): Declare arg.
6168
6169 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6170 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6171
61721999-09-18 Richard Stallman <rms@gnu.org>
6173
6174 * xdisp.c (echo_area_display): Turn off code that returned
6175 without doing anything when using a terminal frame.
6176
83c8f461 61771999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6178
6179 * unexelf.c (unexec): Don't get confused by a short section
6180 just before the bss section.
6181
26901792
DL
61821999-09-16 Gerd Moellmann <gerd@gnu.org>
6183
6184 * emacs.c (main): Remove unused variables.
6185 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6186
6187 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6188 init_fileio_once, syms_of_sound, init_xfns, init_fns
6189 init_sound, check_message_stack.
6190
6191 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6192
6193 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6194 ambiguous else warning.
6195 (split_interval_left): Remove unused variables.
6196 (previous_interval, adjust_intervals_for_deletion,
6197 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6198 (icount, idepth, zero_length): Move into #if 0 section below
6199 original position where these are used.
6200
6201 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6202
6203 * buffer.c (Fkill_buffer): Remove unused variables.
6204 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6205 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6206 init_buffer_once, (syms_of_buffer): Ditto.
6207
6208 * xrdb.c (get_fallback): Remove unused variable.
6209 (x_load_resources): Ditto. Put local variable used for Motif only
6210 in #ifdef USE_MOTIF.
6211
62121999-09-16 Gerd Moellmann <gerd@gnu.org>
6213
6214 * minibuf.c (read_minibuf): Remove unused variables.
6215 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6216 (do_completion): Move assignment out of conditional context.
6217 (Fdisplay_completion_list): Add parentheses to conditional expression.
6218
6219 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6220
6221 * lisp.h: Add prototype for no_switch_window.
6222
6223 * window.c (Fset_window_buffer): Remove unused variables.
6224 (Fset_window_margins): Ditto.
6225
6226 * xdisp.c (resize_mini_window): Temporarily set the selected
6227 window's or Vminibuf_scroll_window's height to "fixed" around
6228 the call the change_window_height.
6229
6230 * window.c (window_fixed_size_p): Check window's height_fixed_p
6231 flag.
6232
6233 * window.h (struct window): New member height_fixed_p.
6234
6235 * dispnew.c (direct_output_forward_char): Don't use this method
6236 if showing a message or a message was just cleared because we
6237 might need to resize the mini-window.
6238
62391999-09-16 Gerd Moellmann <gerd@gnu.org>
6240
6241 * frame.c (Fdelete_frame): Correct local variable pointing to
6242 selected frame after selecting new frame.
6243
62441999-09-15 Richard Stallman <rms@gnu.org>
6245
6246 * puresize.h (BASE_PURESIZE): Increase to 525000.
6247
6248 * filelock.c (Vtemporary_file_directory): New variable.
6249 (syms_of_filelock): Set up Lisp variable.
6250
62511999-09-15 Gerd Moellmann <gerd@gnu.org>
6252
6253 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6254 (encode_terminal_code): Remove unused variables.
6255 (turn_off_face): Ditto.
6256 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6257
6258 * dispnew.c (update_frame_line): If writing whole desired line,
6259 don't clear to end of line if already at the end.
6260
62611999-09-15 Gerd Moellmann <gerd@gnu.org>
6262
6263 * xdisp.c (resize_mini_window): Don't report changed window
6264 height if it actually hasn't changed.
6265
427ec082 6266 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6267 unused variables.
6268 (mark_shell_size_user_specified): Put in #if 0 because not used.
6269 (create_frame_gcs): Put in #if 0 because currently unused.
6270 (first_frame_p): Ditto.
6271
6272 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6273 single_submenu, update_frame_menubar, set_frame_menubar,
6274 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6275 variables.
6276
6277 * print.c (PRINTFULLP): Removed because it is no longer used and
6278 is misleading.
6279 (Ferror_message_string): Remove unused variables.
6280 (print_object): Cast argument of sprintf to long for `%ld'
6281 specifier. Remove unused variable.
6282
62831999-09-14 Gerd Moellmann <gerd@gnu.org>
6284
6285 * sound.c (Fplay_sound): Remove usused variables.
6286 (be2hs): Put in #if 0 because it's currently not used.
6287
62881999-09-14 Ken Raeburn <raeburn@gnu.org>
6289
6290 * print.c (Ferror_message_string, print_error_message,
6291 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6292 member access.
6293
62941999-09-14 Gerd Moellmann <gerd@gnu.org>
6295
6296 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6297
6298 * frame.c (Fnext_frame): Remove unused variable(s).
6299 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6300 (store_frame_param): Add parentheses to conditional expression.
6301 (Fmodify_frame_parameters): Remove unused variables.
6302 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6303 Ditto.
6304
6305 * xfns.c (x_set_background_color): Remove unused variable(s).
6306 (x_set_border_pixel): Ditto.
6307 (x_set_menu_bar_lines): Put local variable used only for
6308 non-toolkit case in #ifdef/#endif.
6309 (x_figure_window_size): Remove unused variable(s).
427ec082 6310 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6311 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6312 png_load, jpeg_load, gif_load, x_create_tip_frame,
6313 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6314
6315 * xterm.c (x_scroll_bar_handle_click): Compile only if
6316 not USE_TOOLKIT_SCROLL_BARS.
6317 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6318
6319 * dispextern.h: Add prototypes for gamma_correct and
6320 x_kill_gs_process.
6321
6322 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6323 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6324 x_set_toolkit_scroll_bar_thumb): Ditto.
6325 (x_scroll_bar_create): Move local variable to the
6326 conditionally compiled section of code where it is used.
6327 (x_scroll_bar_create): Remove unused variable(s).
6328 (x_scroll_bar_remove, XTread_socket): Ditto.
6329 (XTread_socket) <ConfigureNotify>: Move variables used for
6330 non-toolkit case into conditionally compiled section of code.
6331
6332 * window.h (freeze_window_starts): Fix typo in prototype.
6333
6334 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6335 variable(s).
6336
6337 * lisp.h: Add prototype for debug_print.
6338
6339 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6340 to use do-while.
6341
6342 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6343 (Fchar_table_range, Fset_char_table_default, mapcar1,
6344 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6345
6346 * lisp.h: Add prototype for getloadavg.
6347
63481999-09-14 Andreas Schwab <schwab@gnu.org>
6349
6350 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6351
6352 * lisp.h: Declare close_file_unwind.
6353
63541999-09-14 Richard Stallman <rms@gnu.org>
6355
6356 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6357
63581999-09-13 Gerd Moellmann <gerd@gnu.org>
6359
6360 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6361 is always set correctly.
6362
63631999-09-13 Dave Love <fx@gnu.org>
6364
6365 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6366 declaration.
6367
63681999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6369
6370 * xdisp.c (QCfile): Move here from xfns.c.
6371 (syms_of_xdisp): Initialize it.
6372 (message2_nolog): Change for Lisp_Object selected_frame.
6373 (message3_nolog, message_with_string, message,
6374 setup_echo_area_for_printing, truncate_echo_area,
6375 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6376
63771999-09-13 Dave Love <fx@gnu.org>
6378
6379 * xterm.c: Don't continue #define args for benefit of old cc.
6380 (xt_action_hook): Indent #error for benefit of K&R cc.
6381
63821999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6383
6384 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6385 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6386 (XRINGBELL): Removed.
6387
63881999-09-13 Dave Love <fx@gnu.org>
6389
6390 * xfns.c (x_put_x_image): Make type consistent with declaration.
6391
6392 * fns.c (Fmake_hash_table): Fix string continuation.
6393
63941999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6395
6396 * xfns.c (QCfile): Moved to xdisp.c.
6397 (syms_of_xfns): Don't initialize QCfile.
6398 (check_x_frame): Change for Lisp_Object selected_frame.
6399 (check_x_display_info, x_get_resource_string): Ditto.
6400
64011999-09-13 Gerd Moellmann <gerd@gnu.org>
6402
6403 * minibuf.c (choose_minibuf_frame): Don't try to set the
6404 mini-buffer window's buffer, if the buffer is invalid.
6405
6406 * xfns.c (QCfile): Moved to xdisp.c.
6407 (syms_of_xfns): Don't initialize QCfile.
6408
6409 * xdisp.c (QCfile): Move here from xfns.c.
6410 (syms_of_xdisp): Initialize it.
6411
6412 * lisp.h (selected_frame): Add external declaration.
6413
6414 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6415 (Fx_store_cut_buffer_internal): Ditto.
6416 (Fx_rotate_cut_buffers_internal): Ditto.
6417
6418 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6419 selected_frame.
6420 (Finternal_set_lisp_face_attribute): Ditto.
6421 (Finternal_get_lisp_face_attribute): Ditto.
6422 (Finternal_lisp_face_empty_p): Ditto.
6423 (Fdump_face): Ditto.
6424
6425 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6426 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6427 set_terminal_window, set_scroll_region, reassert_line_highlight,
6428 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6429 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6430 encode_terminal_code, write_glyphs, term_init): Ditto.
6431
6432 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6433 (kbd_input_ast, read_input_waiting): Ditto.
6434
6435 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6436 selected_frame.
6437 (read_minibuf): Ditto.
6438
6439 * keyboard.c (command_loop_1): Change for Lisp_Object
6440 selected_frame.
6441 (cmd_error_internal, command_loop_1, read_char,
6442 kbd_buffer_get_event, read_avail_input,
6443 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6444 interrupt_signal, quit_throw_to_read_char): Ditto.
6445
6446 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6447 (Ffontset_info): DItto.
6448
6449 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6450
6451 * dispnew.c (selected_frame): Make it a Lisp_Object.
6452 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6453 (direct_output_for_insert, direct_output_forward_char,
6454 init_display): Ditto.
6455
6456 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6457 selected_frame.
6458 (set_internal): Ditto.
6459
6460 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6461 (record_buffer): Ditto.
6462
6463 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6464 (do_switch_frame): Change for Lisp_Object selected_frame.
6465 (Fselected_frame): Ditto.
6466 (Fframe_first_window): Use SELECTED_FRAME.
6467 (Fframe_root_window): Change for Lisp_Object selected_frame.
6468 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6469 Fprevious_frame, other_visible_frames, Fdelete_frame,
6470 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6471 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6472 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6473 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6474 Fset_frame_height, Fset_frame_width): Ditto.
6475
64761999-09-13 Gerd Moellmann <gerd@gnu.org>
6477
6478 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6479 (message3_nolog, message_with_string, message,
6480 setup_echo_area_for_printing, truncate_echo_area,
6481 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6482
6483 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6484 (Fx_popup_dialog): Ditto.
6485
6486 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6487 (check_x_display_info, x_get_resource_string): Ditto.
6488
6489 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6490 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6491 (XRINGBELL): Removed.
6492
6493 * window.c (Fminibuffer_window): Change for Lisp_Object
6494 selected_frame.
6495 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6496 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6497 Fcurrent_window_configuration, init_window_once): Ditto.
6498
6499 * frame.h (SELECTED_FRAME): New.
6500
65011999-09-12 Ken Raeburn <raeburn@gnu.org>
6502
6503 * category.c (word_boundary_p): Use XCAR and XCDR.
6504 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6505 Fregister_code_conversion_map): Likewise.
6506 * coding.c (setup_coding_system, detect_coding_system,
6507 Ffind_operation_coding_system, Fset_coding_priority_internal):
6508 Likewise.
6509 * doc.c (get_doc_string, Fdocumentation,
6510 store_function_docstring): Likewise.
6511 * editfns.c (save_restriction_restore): Likewise.
6512 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6513 skip_debugger, find_handler_clause, Fautoload, Fapply,
6514 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6515 Likewise.
6516 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6517 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6518 Fread_file_name): Likewise.
6519 * filelock.c (unlock_all_files): Likewise.
6520 * insdel.c (Fcombine_after_change_execute): Likewise.
6521 * intervals.c (adjust_intervals_for_insertion): Likewise.
6522 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6523 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6524 store_in_keymap, Fcopy_keymap, define_as_prefix,
6525 current_minor_maps, Faccessible_keymaps,
6526 accessible_keymaps_char_table, Fkey_description,
6527 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6528 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6529 describe_map): Likewise.
6530 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6531 read_list, init_lread): Likewise.
6532 * search.c (Fmatch_data): Likewise.
6533 * sunfns.c (Fsun_menu_internal): Likewise.
6534 * syntax.c (describe_syntax): Likewise.
6535 * undo.c (record_insert, record_delete, Fundo_boundary,
6536 truncate_undo_list): Likewise.
6537 * vmsproc.c (child_sig): Likewise.
6538
6539 * editfns.c (Fformat): Use XFLOAT_DATA.
6540
65411999-09-12 Gerd Moellmann <gerd@gnu.org>
6542
6543 * keyboard.c (command_loop_1): Resize mini-window to the
6544 exact size of a message displayed, if any.
6545
6546 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6547 to exact size if exact_p is non-zero.
6548 (display_echo_area_1): Call resize_mini_window with
6549 new parameter.
6550 (redisplay_internal): Ditto.
6551 (resize_echo_area_axactly): New.
6552
6553 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6554 new parameter.
6555
6556 * dispextern.h: Change prototype of resize_mini_window.
6557 Add prototype for resize_echo_area_axactly.
6558
6559 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6560 (syms_of_xfaces): Defsubr accordingly.
6561
6562 * xdisp.c (hscroll_window_tree): Choose cursor row from
6563 desired or current matrix.
6564 (redisplay_internal): Hscroll before updating.
6565
65661999-09-12 Gerd Moellmann <gerd@gnu.org>
6567
6568 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6569 of minibuffer_prompt_length.
6570
6571 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6572 of minibuffer_prompt_length.
6573 (read_minibuf_unwind): Ditto.
6574 (Fminibuffer_complete_and_exit): Ditto.
6575 (Fminibuffer_complete_word): Ditto.
6576 (Fminibuffer_prompt_end): Ditto.
6577
6578 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6579 of minibuffer_prompt_length.
6580 (Fline_beginning_position): Ditto.
6581
6582 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6583 of minibuffer_prompt_length.
6584 (Fmake_indirect_buffer): Ditto.
6585 (Fkill_buffer): Ditto.
6586 (Ferase_buffer): Ditto.
6587
6588 * buffer.h (prompt_end_charpos): Replaces
6589 minibuffer_prompt_length.
6590
427ec082 6591 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6592 without the prompt.
6593
6594 * editfns.c (make_buffer_string_both): Take out the code
6595 to handle mini-buffer prompts.
6596 (Fbuffer_string): Handle the prompt here, instead.
6597
6598 * xfaces.c (lface_from_face_name): Resolve face aliases.
6599 (Qmode_line): Replaces Qmodeline.
6600 (realize_basic_faces): Use Qmode_line.
6601 (syms_of_xfaces): Initialize Qmode_line.
6602
66031999-09-12 Gerd Moellmann <gerd@gnu.org>
6604
6605 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6606 current column after inserting prompt.
6607 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6608
6609 * xfaces.c (Qframe_update_face_colors): New.
6610 (syms_of_xfaces): Initialize call.
6611 (update_face_from_frame_parameter): Call that function when
6612 the frame's background changes.
6613
66141999-09-12 Richard Stallman <rms@gnu.org>
6615
6616 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6617
66181999-09-12 Ken Raeburn <raeburn@gnu.org>
6619
6620 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6621 mark_object, mark_buffer): Use XCAR and XCDR.
6622 * bytecode.c (Fbyte_code): Likewise.
6623 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6624 Likewise.
6625 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6626 getenv_internal): Likewise.
6627 * dired.c (file_name_completion): Likewise.
6628 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6629 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6630 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6631 * indent.c (Fcompute_motion): Likewise.
6632 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6633 list_processes_1, Fstart_process, Fopen_network_stream,
6634 wait_reading_process_input, read_process_output_call,
6635 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6636 status_notify, wait_reading_process_input): Likewise.
6637 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6638 extend_property_ranges): Likewise.
6639 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6640 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6641 x_report_frame_params, x_set_cursor_type, x_icon_type,
6642 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6643 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6644 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6645 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6646 x_display_info_for_name, Fx_display_list): Likewise.
6647 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6648 Fx_popup_menu, Fx_popup_dialog): Likewise.
6649 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6650 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6651 w32_term_init, x_delete_display): Likewise.
6652 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6653 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6654 x_top_window_to_frame, x_set_frame_parameters,
6655 x_report_frame_params, x_set_cursor_type, x_icon_type,
6656 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6657 Fx_display_list, x_create_tip_frame): Likewise.
6658 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6659 Fx_popup_menu, Fx_popup_dialog): Likewise.
6660 * xselect.c (x_own_selection, x_get_local_selection,
6661 x_handle_selection_request, x_handle_selection_clear,
6662 x_clear_frame_selections, wait_for_property_change_unwind,
6663 wait_for_property_change, x_handle_property_notify,
6664 copy_multiple_data, x_get_foreign_selection,
6665 lisp_data_to_selection_data, clean_local_selection_data,
6666 x_handle_selection_notify, Fx_get_selection_internal,
6667 x_disown_buffer_selections): Likewise.
6668 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6669 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6670 Likewise.
6671
6672 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6673 XFLOAT_DATA.
6674 * bytecode.c (Fbyte_code): Likewise.
6675 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6676 fmod_float): Likewise.
6677
66781999-09-11 Richard Stallman <rms@gnu.org>
6679
6680 * xdisp.c (run_window_scroll_functions): If hook functions switch
6681 buffers, switch back after.
6682
66831999-09-11 Ken Raeburn <raeburn@gnu.org>
6684
6685 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6686 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6687 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6688 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6689 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6690 XCDR.
6691 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6692 XCDR.
6693
66941999-09-10 Richard Stallman <rms@gnu.org>
6695
6696 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6697 not RevertToPointerRoot.
6698 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6699 Fix the code to clear around the scroll bar.
6700
67011999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6702
6703 * print.c: Support print-circle and related features.
6704 (Vprint_gensym_alist): Removed.
6705 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6706 Vprint_number_table): New variables.
6707 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6708 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6709 (print, print_preprocess, print_preprocess_string, print_object):
6710 New/modified functions with print-circle feature. Use
6711 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6712 (syms_of_print): Defined new Lisp variables `print-circle',
6713 `print-continuous-numbering', `print-number-table'.
6714
67151999-09-10 Gerd Moellmann <gerd@gnu.org>
6716
6717 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6718 as background color specification instead of an integer.
6719 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6720 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6721 (clear_image_cache, syms_of_xfns): Use it.
6722 (Qpostscript): Replaces Qghostscript.
6723 (gs_type): Use it.
6724 (gs_image_p): Ditto.
6725 (syms_of_xfns): Initialize Qpostscript.
6726
67271999-09-10 Richard Stallman <rms@gnu.org>
6728
6729 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
6730
67311999-09-09 Richard Stallman <rms@gnu.org>
6732
6733 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
6734
6735 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
6736
67371999-09-09 Gerd Moellmann <gerd@gnu.org>
6738
6739 * fns.c (Fmakehash): Accept just one optional argument TEST.
6740
6741 * xfns.c (QCindex): New.
6742 (syms_of_xfns): Initialize QCindex.
6743 (gif_load): Use it instead of `:image'.
6744
67451999-09-09 Richard Stallman <rms@gnu.org>
6746
6747 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
6748 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
6749
67501999-09-08 Gerd Moellmann <gerd@gnu.org>
6751
6752 * xdisp.c (Qwhen): Replaces QCwhen.
6753 (syms_of_xdisp): Initialized it instead of QCwhen.
6754 (handle_single_display_prop): Use it instead of QCwhen.
6755
67561999-09-08 Ken'ichi Handa <handa@gnu.org>
6757
6758 * charset.c (translate_char): Reset MSBs of arguments of
6759 MAKE_CHAR.
6760 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
6761
67621999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
6763
6764 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
6765
6766 * fns.c (Fbase64_decode_region): Don't place point outside of the
6767 current accessible portion.
6768
67691999-09-07 Richard Stallman <rms@gnu.org>
6770
6771 * keymap.c (fix_submap_inheritance): Do nothing if the proper
6772 parent is an ancestor of SUBMAP; otherwise, add it as the
6773 ultimate ancestor.
6774
67751999-09-07 Gerd Moellmann <gerd@gnu.org>
6776
6777 * xdisp.c (handle_single_display_prop): Change conditional
6778 display property to `:when FORM . VALUE'.
6779
67801999-09-07 Richard Stallman <rms@gnu.org>
6781
6782 * fileio.c (Fwrite_region): Doc fix.
6783
67841999-09-07 Stefan Monnier <monnier@cs.yale.edu>
6785
6786 * fileio.c (Qexcl): New variable.
6787 (report_file_error): Handle EEXIST specially.
6788 (Fwrite_region): Special handling for CONFIRM = `excl'.
6789 (syms_of_fileio): Initialize Qexcl.
6790
67911999-09-07 Gerd Moellmann <gerd@gnu.org>
6792
6793 * xfns.c (x_set_foreground_color): Call
6794 update_face_from_frame_parameter.
6795 (x_set_background_color): Ditto.
6796 (x_set_mouse_color): Ditto.
6797 (x_set_cursor_color): Ditto.
6798 (x_set_border_color): Ditto.
6799 (x_set_scroll_bar_foreground): Ditto.
6800 (x_set_scroll_bar_background): Ditto.
6801
6802 * xfaces.c (recompute_basic_faces): Clear face cache.
6803 (Finternal_set_lisp_face_attribute): Modify frame parameters
6804 if attributes of certain faces are changed.
6805 (update_face_from_frame_parameter): New.
6806
6807 * xfaces.c (realize_basic_faces): Realize new basic faces.
6808
6809 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
6810 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
6811
6812 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
6813 (syms_of_xfaces): Intialize new symbols.
6814
6815 * fns.c (Fmakehash): Take one argument, test, make all the
6816 rest keyword arguments.
6817
6818 * window.c (Fset_window_margins): Make window the first argument.
6819 (set_window_buffer): Call Fset_window_margins with window as first
6820 argument.
6821
68221999-09-07 Gerd Moellmann <gerd@gnu.org>
6823
6824 * xfaces.c (Qfringe): Replaces Qmargin.
6825
68261999-09-07 Kenichi Handa <handa@etl.go.jp>
6827
6828 * charset.h: Lots of comments fixed.
6829 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
6830 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
6831
6832 * charset.c : Lots of comments fixed.
6833 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
6834 (CHAR_COMPONENTS_VALID_P): Name changed from
6835 CHAR_COMPONENT_VALID_P. Caller changed.
6836
68371999-09-06 Richard Stallman <rms@gnu.org>
6838
6839 * insdel.c (syms_of_insdel): Define Lisp variable
6840 inhibit-modification-hooks.
6841
68421999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
6843
6844 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
6845 unexaix.c.
6846
6847 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
6848
68491999-09-06 Dave Love <fx@gnu.org>
6850
6851 * unexaix.c: New version incorporating Michael Sperber's changes
6852 from XEmacs. Should solve problems on AIX 4.3.
6853
6854 * lread.c (Vbyte_boolean_vars): New variable.
6855 (defvar_bool, syms_of_lread): Use it.
6856
68571999-09-05 Richard Stallman <rms@gnu.org>
6858
6859 * minibuf.c (read_minibuf): Put all three properties on the
6860 same range, the whole prompt.
6861
68621999-09-05 Gerd Moellmann <gerd@gnu.org>
6863
6864 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
6865 (Fplay_sound, syms_of_sound): Use it.
6866 (parse_sound): Allow float volume values in the range [0, 1].
6867 (Fplay_sound): Ditto.
6868
6869 * window.c (Fset_window_vscroll): Make window the first argument,
6870 amount to scroll the second. Take non-negative vscroll as
6871 argument.
6872 (Fwindow_vscroll): Return non-negative vscroll.
6873
6874 * xfns.c (Fx_show_tip): Improve documentation.
6875
68761999-09-05 Gerd Moellmann <gerd@gnu.org>
6877
6878 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
6879 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
6880 `top-line' and `top_line' to `header-line' and `header_line'.
6881 Likewise for similar spellings.
6882
68831999-09-05 Gerd Moellmann <gerd@gnu.org>
6884
6885 * xdisp.c (row_containing_pos): New.
6886 (try_window_id): Use it.
6887
6888 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
6889 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
6890 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
6891 Likewise for upper-case etc.
6892
68931999-09-05 Gerd Moellmann <gerd@gnu.org>
6894
6895 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6896 Fix reference to renamed variable.
6897
68981999-09-04 Gerd Moellmann <gerd@gnu.org>
6899
6900 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 6901 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
6902 Qfixed_window_size.
6903 (syms_of_window): Ditto.
6904
6905 * fns.c (Fmakehash): Exchange optional test and size arguments.
6906
69071999-09-03 Gerd Moellmann <gerd@gnu.org>
6908
6909 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
6910 under newly created scroll bar.
6911 (expose_window): If window is not yet fully initialized, do
6912 nothing. This can happen when toolkit scroll bars are used and a
6913 window is split. Reconfiguring the scroll bars will generate an
6914 expose for a newly created window.
6915
6916 * frame.h (struct frame): New member `gamma'.
6917
6918 * xfns.c: Include math.h. Add extern declaration for atof in case
6919 we don't see one.
6920 (Qscreen_gamma): New.
6921 (struct x_frame_parm_table): Add prototypes, add
6922 x_set_screen_gamma.
6923 (gamma_correct): New function.
6924 (defined_color): Call it.
6925 (x_set_screen_gamma): New.
6926 (x_set_title): Add parameter old_value.
6927 (RES_TYPE_FLOAT): New.
6928 (x_get_arg): Handle RES_TYPE_FLOAT.
6929 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
6930 (lookup_pixel_color): Change call to x_alloc_nearest_color to
6931 new prototype.
6932 (lookup_rgb_color): Ditto.
6933 (syms_of_xfns): Initialize Qscreen_gamma.
6934
6935 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
6936 New. Allocate color for lwlib widgets.
6937 (x_alloc_nearest_color): Change parameter list include the
6938 frame on which to allocate colors. Gamma-correct colors.
6939 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
6940 parameter list.
6941
6942 * xterm.h: Change protorype of x_alloc_nearest_color.
6943
69441999-09-03 Richard Stallman <rms@gnu.org>
6945
6946 * callproc.c: Delete the system-independent include of stdlib.h
6947 (leaving only the one in the WINDOWSNT conditional).
6948
69491999-09-03 Andrew Choi <choi@cs.hku.hk>
6950
6951 * callproc.c (call-process) [macintosh]: Call mac_run_command in
6952 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 6953
26901792
DL
6954 * dispextern.h [macintosh]: Include macterm.h to define substitute X
6955 Window types and macros.
6956
6957 * frame.h: Do nothing if included a second time.
6958 (enum output_method): Add mac_output frame type.
6959 (union output_data): Add new alternative `mac'.
6960 (FRAME_MAC_P): New macro.
427ec082 6961
26901792
DL
6962 * frame.c (Fframep) [macintosh]: Handle mac frame type.
6963 (syms_of_frame_1): Initialize Qmac.
6964 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
6965 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
6966 (Fmodify_frame_parameters) [macintosh]: Call
6967 mac_set_frame_parameter in macterm.c.
427ec082 6968
26901792
DL
6969 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
6970 (512) because Mac compilers limit local data of a function to 32K.
427ec082 6971
26901792
DL
6972 * make-docfiles.c: Correctly handle input files with Mac-style
6973 eol's.
427ec082 6974
26901792 6975 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 6976
26901792
DL
6977 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
6978 file of an X Window environment.
427ec082 6979
26901792
DL
6980 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
6981 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 6982
26901792
DL
6983 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
6984 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
6985 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
6986 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
6987 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
6988 New functions, replacing POSIX features.
427ec082 6989
26901792
DL
6990 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
6991 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
6992 (InitEmacsPasswdDir, run_mac_command): New subroutines.
6993
6994 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
6995 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
6996 (myPasswdDir, TempDirName, sys_siglist): New variables.
6997
6998 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
6999 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
7000 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
7001 Define empty stubs so Emacs will link.
7002
70031999-09-03 Gerd Moellmann <gerd@gnu.org>
7004
7005 * xdisp.c: Use XCAR and XCDR instead of XCONS.
7006
7007 * window.h: New member frozen_window_start_p.
7008
7009 * window.c (foreach_window, foreach_window_1): New.
7010 (freeze_window_start, freeze_window_starts): New.
7011 (make_window): Initialize frozen_window_start_p.
7012 (replace_window): Ditto.
7013 (Fset_window_point): Remove references to deleted variables.
7014 (Fset_window_start): Ditto.
7015
7016 * xdisp.c (Vresize_mini_config, resize_mini_frame,
7017 resize_mini_initial_height): Removed.
7018 (syms_of_xdisp): Remove references to these variables.
7019 (resize_mini_window): Don't save window configuration, freeze
7020 window starts instead. Enlarge window until displaying an empty
7021 buffer, then shrink it. Make the function externally visible.
7022 (redisplay_window): Treat frozen window start like forced start,
7023 but accept point outside of the window.
7024
7025 * dispextern.h: Add function prototype for resize_mini_window.
7026
7027 * minibuf.c (read_minibuf_unwind): Resize mini-window when
7028 reaching minibuf_level 0.
7029
7030 * lisp.h: Remove extern declarations for variables deleted from
7031 xdisp.c.
7032
7033 * dispnew.c (adjust_frame_glyphs): Remove reference to
7034 Vresize_mini_config.
7035
70361999-09-03 Gerd Moellmann <gerd@gnu.org>
7037
7038 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
7039 to USE_TOOLKIT_SCROLL_BARS.
7040
7041 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
7042 here.
7043 (XTset_vertical_scroll_bar): Clarify position computations. Clear
7044 under newly created scroll bar. Put toolkit scroll bars in the
7045 middle of the area reserved for the scroll bar.
7046
70471999-09-03 Kenichi Handa <handa@etl.go.jp>
7048
7049 The following changes are for the new handling of mulitbyte
7050 sequence. Now, except for a composite character, no multibyte
7051 character in string/buffer has trailing garbage bytes. For
7052 instance, the length of string "\201\300\300" is now 2, the first
7053 character is Latin-1 A-grave, the second is raw \300.
7054
7055 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
7056 are negative.
7057 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
7058 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
7059 (PARSE_COMPOSITE_SEQ): New macro.
7060 (PARSE_CHARACTER_SEQ): New macro.
427ec082 7061 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
7062 (CHAR_PRINTABLE_P): New macro.
7063 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
7064 (STRING_CHAR_AND_LENGTH): Likewise.
7065 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
7066 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
7067 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
7068
7069 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
7070 (SPLIT_CHARACTER_SEQ): New macro.
7071 (SPLIT_MULTIBYTE_SEQ): New macro.
7072 (CHAR_COMPONENT_VALID_P): New macro.
7073 (non_ascii_char_to_string): Generate a multibyte sequence as far
7074 as possible.
7075 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
7076 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
7077 (split_non_ascii_string): Likewise.
7078 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
7079 (char_printable_p): New function.
7080 (translate_char): Check character by NATNUMP instead of INTEGERP.
7081 (unibyte_char_to_multibyte): Call char_valid_p instead of
7082 VALID_MULTIBYTE_CHAR_P.
7083 (Fmake_char_internal): Check the arguments more rigidly.
7084 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
7085 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
7086 (Fmultibyte_char_to_unibyte): Check the validity of character by
7087 CHAR_VALID_P.
7088 (chars_in_text): Call multibyte_chars_in_text.
7089 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
7090 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
7091 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
7092
7093 * data.c (Faset): Adjust the way to check byte-combining
7094 possibility for the new handling of multibyte sequence.
7095
7096 * editfns.c (Fsubst_char_in_region): Likewise.
7097
7098 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
7099 (string_char_to_byte): Likewise.
7100 (string_byte_to_char): Likewise.
7101
7102 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7103 macro STRING_CHAR_AND_LENGTH. Caller changed.
7104
7105 * insdel.c (count_combining_composition): New function.
7106 (count_combining_before): Adjust the way to check byte-combining
7107 possibility for the new handling of multibyte sequence. Call
7108 count_combining_composition for a composite character.
7109 (count_combining_after): Likewise.
7110
7111 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7112 (print): Likewise.
7113
7114 * dispextern.h (struct it): Change the size of the member
7115 `ctl_chars'.
7116
7117 * xdisp.c (get_next_display_element): Display incomplete multibyte
7118 sequence (e.g. \222\300) by octal form.
7119
71201999-09-02 Gerd Moellmann <gerd@gnu.org>
7121
7122 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7123
7124 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7125 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7126
71271999-09-02 Gerd Moellmann <gerd@gnu.org>
7128
7129 * buffer.c (set_buffer_internal): Never set
7130 windows_or_buffers_changed.
7131
7132 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7133 if we have displayed to the bottom of the window.
7134
7135 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7136 in both directions. Extend documentation.
7137
71381999-09-01 Gerd Moellmann <gerd@gnu.org>
7139
7140 * minibuf.c (read_minibuf): Flush display after setting cursor to
7141 column 0.
7142
71431999-08-31 Gerd Moellmann <gerd@gnu.org>
7144
7145 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7146 already defined. This avoids a warning from buffer.c.
7147
71481999-08-30 Gerd Moellmann <gerd@gnu.org>
7149
7150 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7151 of both margins.
7152 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7153 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7154 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7155
7156 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7157 once instead of twice.
7158 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7159
7160 * xterm.c: Remove unused bitmaps.
7161 (continued_bits, continuation_bits, overlay_bits): Change images.
7162 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7163 instead of FRAME_X_FLAGS_AREA_WIDTH.
7164 (x_after_update_window_line): Ditto.
7165 (x_draw_bitmap): Likewise.
7166 (x_draw_row_bitmaps): Likewise.
7167 (x_draw_glyph_string_box): Likewise.
7168 (x_draw_glyphs): Likewise.
7169 (x_scroll_run): Likewise.
7170 (expose_window_tree): Likewise.
7171 (note_mode_line_highlight): Likewise.
7172 (XTset_vertical_scroll_bar): Likewise.
7173 (x_clip_to_row): Likewise.
7174 (x_set_window_size): Likewise.
7175
7176 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7177 of 2 * that value.
7178
7179 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7180 2 * that value.
7181 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7182 FRAME_FLAGS_AREA_WIDTH.
7183
7184 * window.c (coordinates_in_window): Use
7185 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7186 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7187 instead of twice.
7188
427ec082 7189 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7190 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7191 (EmacsFrameSetCharSize): Ditto.
7192
7193 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7194 instead of FRAME_FLAGS_AREA_WIDTH.
7195
7196 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7197 FRAME_FLAGS_AREA_COLS once.
7198 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7199 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7200
72011999-08-30 Gerd Moellmann <gerd@gnu.org>
7202
7203 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7204 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7205
72061999-08-30 Gerd Moellmann <gerd@gnu.org>
7207
7208 * fns.c (QCweakness): Replaces QCweak.
7209 (Fmake_hash_table): Ditto.
7210 (Fmakehash): Ditto.
7211 (syms_of_fns): Ditto.
7212
72131999-08-29 Richard Stallman <rms@gnu.org>
7214
7215 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7216
7217 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7218
7219 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7220 Add support for nested comments.
7221
863476d1
SM
7222 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7223 Consolidate the forward comment code into the new `forw_comment'.
7224 (forw_comment): New subroutine. Added support for nested comments.
7225 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7226 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7227
72281999-08-28 Ken Raeburn <raeburn@gnu.org>
7229
7230 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7231 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7232 defined, to help detect code that uses knowledge of the Lisp
7233 internals that it shouldn't have.
7234 (XFLOAT_DATA): New macro.
7235
72361999-08-25 Gerd Moellmann <gerd@gnu.org>
7237
7238 * syntax.c (Fforward_word): If in a mini-buffer and moving
7239 backwards, stop in front of the prompt to prevent accidentially
7240 moving into the read-only prompt.
7241
7242 * window.c (Frecenter): Clear frame if called with nil or no arg.
7243
7244 * xdisp.c (resize_mini_window): Don't resize if
7245 Vmax_mini_window_height is nil. Otherwise, use a default if
7246 Vmax_mini_window_height is not ot a number.
7247 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7248
72491999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7250
7251 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7252 * m/iris4d.h: Use unexelf for IRIX 5.*.
7253 * m/iris5d.h: Use unexelf for IRIX 6.*.
7254 * unexsgi.c: Deleted.
7255
7256 * unexelf.c: Auto-detect .sbss section.
7257 (round_up): Make it static.
7258 (unexec): Declare alignment as Elf Word. Skip ``Program
7259 segment above .bss'' test on MIPS without .sbss.
7260 Copy sections .got and .sdata1 sections. Adjust offsets in
7261 sections .sdata, .lit4, .lit8, .got and .sdata1.
7262
72631999-08-25 Gerd Moellmann <gerd@gnu.org>
7264
7265 * xdisp.c (try_window_id): Remove typo.
7266
72671999-08-24 Gerd Moellmann <gerd@gnu.org>
7268
7269 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7270 unchanged text at the bottom when computing the cursor position.
7271 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7272 set.
7273
7274 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7275
72761999-08-24 Gerd Moellmann <gerd@gnu.org>
7277
7278 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7279 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7280 (syms_of_xfaces): Ditto.
7281
7282 * window.c (Fset_window_point): Reset Vresize_mini_config.
7283 (Fset_window_start): Ditto.
7284 (set_window_buffer): Ditto.
7285
7286 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7287
7288 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7289 before calling try_window.
7290 (echo_area_display): If height has changed, update other windows.
7291 (resize_mini_frame, resize_mini_initial_height): New.
7292 (resize_mini_window): Save/restore window configuration
7293 differently.
7294
427ec082 7295 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7296 resize_mini_initial_height): Add extern declarations.
7297
7298 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7299 CANON_X_UNIT.
7300
7301 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7302 being redefined in jconfig.h.
7303
73041999-08-23 Ken'ichi Handa <handa@gnu.org>
7305
7306 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7307
73081999-08-22 Gerd Moellmann <gerd@gnu.org>
7309
7310 * alloc.c (mark_glyph_matrix): Mark strings only.
7311
7312 * xdisp.c (redisplay_internal): Clear garbaged frames after
7313 resizing mini-window.
7314
73151999-08-22 Gerd Moellmann <gerd@gnu.org>
7316
7317 * xdisp.c (unwind_with_echo_area_buffer): Use
7318 set_buffer_internal_1 instead of set_buffer_internal.
7319 (with_echo_area_buffer): Ditto.
7320
7321 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7322 only if buffer is displayed somewhere.
7323
7324 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7325
7326 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7327 (gap_right): Ditto.
7328 (modify_region): Ditto.
7329
7330 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7331
7332 * xdisp.c (Vresize_mini_config): New.
7333 (resize_mini_window): Use it to save restore original window
7334 configuration
7335 (syms_of_xdisp): Initialize it.
7336
7337 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7338
7339 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7340
7341 * xdisp.c (reconsider_clip_changes): New.
7342 (redisplay_internal, redisplay_window): Call it.
7343 (mark_window_display_accurate, redisplay_internal): Set current
7344 matrix' buffer, begv, zv.
7345
7346 * window.c (Fset_window_hscroll): Set
7347 prevent_redisplay_optimizations_p instead of clip_changed.
7348 (Fset_window_hscroll): Ditto.
7349 (temp_output_buffer_show): Ditto.
7350 (Fset_window_vscroll): Ditto.
7351
7352 * buffer.c (reset_buffer): Set clip_changed to 0 and
7353 prevent_redisplay_optimizations_p to 1.
7354 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7355
7356 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7357 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7358 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7359 END_UNCHANGED): New.
7360 (struct buffer_text): Add beg_unchanged, end_unchanged,
7361 unchanged_modified, overlay_unchanged_modified.
7362
7363 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7364 overlay_unchanged_modified): Removed.
7365 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7366 (unwind_with_echo_area_buffer): Don't restore them.
7367 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7368 (text_outside_line_unchanged_p, redisplay_internal,
7369 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7370 (redisplay_window): Let try_window_id be called if more than one
7371 window is displayed. Use/set buffer-specific beg/end_unchanged.
7372 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7373 try_window_id):
7374 Use buffer-specific beg/end_unchanged.
7375
7376 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7377 overlay_unchanged_modified): Remove extern declarations.
7378
7379 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7380 buffer.
7381
7382 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7383 (gap_right): Ditto.
7384 (adjust_after_replace): Likewise.
7385 (replace_range, del_range_2, modify_region): Likewise.
7386
7387 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7388 and unchanged_modified per buffer.
7389
7390 * coding.c (code_convert_region): Compute beg/end_unchanged per
7391 buffer.
7392
7393 * buffer.c (modify_overlay): Compute beg/end_unchanged
7394 per buffer.
427ec082 7395 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7396 structure.
7397
73981999-08-22 Gerd Moellmann <gerd@gnu.org>
7399
7400 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7401
7402 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7403 (Qkey_value_weak): Removed.
7404 (make_hash_table): Use nil, `key', `value', t for weakness.
7405 (Fmake_hash_table): Ditto.
7406 (copy_hash_table): New.
7407 (Fcopy_hash_table): New.
7408
74091999-08-22 Gerd Moellmann <gerd@gnu.org>
7410
7411 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7412 new parameter.
26901792
DL
7413
74141999-08-21 Gerd Moellmann <gerd@gnu.org>
7415
7416 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7417 well.
427ec082 7418 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7419 have changed.
7420 (display_echo_area): Reset displayed echo_area_buffer to nil
7421 at the end if we're displaying a nil message.
7422
74231999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7424
26901792
DL
7425 * fns.c (hash_lookup): Test with EQ before calling key comparion
7426 function.
7427 (hash_remove): Ditto.
7428 (cmpfn_eq): Removed.
7429 (cmpfn_eql): Don't test with EQ.
7430 (cmpfn_equal): Ditto.
7431 (make_hash_table): Set comparison function for `eq' to null.
7432
7433 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7434 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7435
7436 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7437
7438 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7439 xterm.c: Call change_frame_size and do_pending_window_change with
7440 new parameter.
7441
7442 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7443 (change_frame_size): Ditto.
7444 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7445 and not called from a safe place.
7446 (window_change_signal): Call change_frame_size with new parameter.
7447
7448 * dispextern.h: Change prototypes for do_pending_window_change
7449 and change_frame_size.
7450
7451 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7452 window's buffers equals current_buffer; this is not the
26901792
DL
7453 case during echo area display.
7454
74551999-08-21 Gerd Moellmann <gerd@gnu.org>
7456
7457 * xdisp.c, minibuf.c: Remove conditional compilation on
7458 NO_PROMPT_IN_BUFFER.
7459
7460 * minibuf.c (Fminibuffer_prompt_end): New.
7461 (syms_of_minibuf): Defsubr it. Remove
7462 minibuffer-prompt-in-buffer.
7463 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7464 Extend documentation.
7465
7466 * xdisp.c (get_next_display_element): Display \r as ^M.
7467
7468 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7469 under scroll bar widget.
7470
74711999-08-21 Gerd Moellmann <gerd@gnu.org>
7472
7473 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7474 anywhere.
7475 (unwind_redisplay): Return nil.
7476 (clear_garbaged_frames): New.
7477 (redisplay_internal): Use it.
7478 (echo_area_display): Ditto.
7479 (resize_mini_window): Mew.
7480 (display_echo_area_1): Use it to resize echo area window.
7481 (redisplay_internal): Use it to resize active mini-window.
7482
7483 * dispextern.h, lisp.h: Add function prototypes.
7484
427ec082 7485 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7486 cursor_in_echo_area case only for a mini-window showing
7487 a message. Don't let cursor end up after the end of a row.
7488
7489 * xdisp.c (echo_area_glyphs, echo_area_message,
7490 echo_area_glyphs_length, previous_echo_glyphs,
7491 previous_echo_area_message, previous_echo_area_glyphs_length):
7492 Removed.
7493 (Vmessage_stack, echo_area_buffer, echo_buffer,
7494 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7495 (message2_nolog): Use set_message and clear_message.
7496 (message3): Rename parameter len to nbytes to make clear what
7497 it is.
7498 (message3_nolog): Ditto. Use set_message and clear_message.
7499 (update_echo_area): Rewritten.
7500 (with_echo_area_buffer): New.
7501 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7502 (setup_echo_area_for_printing): New.
7503 (display_echo_area, display_echo_area_1): New.
7504
7505 (current_message, current_message_1): New.
427ec082 7506 (push_message, restore_message, pop_message,
26901792
DL
7507 check_message_stack): New.
7508 (truncate_echo_area): Rewritten.
7509 (truncate_message_1): New.
7510 (set_message, set_message_1, clear_message): New.
7511 (echo_area_display): Rewritten.
7512 (redisplay_internal): Check for needed echo area update
7513 differently.
7514 (redisplay_preserve_echo_area): Rewritten.
427ec082 7515 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7516 message differently.
7517 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7518 Remove initialzation of removed variables.
7519 (init_xdisp): Remove references to removed variables.
7520
7521 * dispnew.c (adjust_frame_message_buffer): Removed references
7522 to echo_area_glyphs and previous_echo_glyphs.
7523 (direct_output_for_insert): Check for mini-window displaying
7524 echo area message differently.
7525 (update_frame): Likewise.
7526 (set_window_cursor_after_update): Likewise. In echo area,
7527 don't try to set cursor on rows that aren't enabled.
7528
7529 * print.c: Remove conditional compilation on `standalone'.
7530 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7531 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7532 longer used in that way.
7533 (PRINTDECLARE): Add multibyte.
7534 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7535 (printbufidx): Removed.
7536 (printchar, strout): Rewritten.
7537
7538 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7539 a struct kboard.
7540 (echo_kboard): New.
7541 (echo_now): Set echo_kboard to the current kboard.
7542 (cancel_echoing): Set echo_kboard to null.
7543 (cmd_error_internal): Use clear_message, remove references
7544 to echo_area_glyphs and echo_area_message.
7545 (command_loop_1): Check for echo area messages differently.
7546 (read_char): Likewise.
7547 (record_menu_key): Use clear_message.
7548 (Fexecute_extended_command): Check for echo area messages
7549 differently. Use push_message, restore_message, pop_message.
7550
7551 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7552 pop_message.
7553
7554 * emacs.c (shut_down_emacs): Call check_message_stack.
7555
7556 * lisp.h: Add function prototypes and extern declarations for
7557 new functions and variables.
7558
7559 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7560 pop_message.
7561
427ec082 7562 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7563 setting echo_area_glyphs.
7564 (Fminibuffer_completion_help): Ditto.
7565
7566 * editfns.c (Fcurrent_message): Rewritten.
7567
7568 * frame.c, window.h: Remove references to echo_area_glyphs
7569 and previous_echo_glyphs.
7570
75711999-08-21 Dave Love <fx@gnu.org>
7572
7573 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7574 * aix4-1.h: Likewise.
7575
7576 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7577
75781999-08-20 Gerd Moellmann <gerd@gnu.org>
7579
7580 * xfns.c: Remove tiff34 prefix from include.
7581
75821999-08-20 Dave Love <fx@gnu.org>
7583
7584 * cm.c: Revert previous change.
7585
75861999-08-19 Gerd Moellmann <gerd@gnu.org>
7587
7588 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7589 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7590
75911999-08-18 Dave Love <fx@gnu.org>
7592
7593 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7594 stdlib.h.
7595
7596 * doprnt.c: Use stdlib.h, unistd.h.
7597
7598 * config.in: Add HAVE_TERMCAP_H.
7599
7600 * cm.c: Use termcap.h.
7601
76021999-08-18 Gerd Moellmann <gerd@gnu.org>
7603
7604 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7605 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7606 cannot be created we will already have crashed earlier. Call
7607 lw_set_main_areas with a null menu-bar widget, so that we have
7608 a reasonable default.
7609 (Fx_create_frame): Rearranged so that Lisp errors during frame
7610 initialization cause less damage. Initialize menu bar widget
7611 here.
7612
76131999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 7614
26901792
DL
7615 * dispnew.c (update_frame_line): Fix previous change. If writing
7616 whole line clear to end of frame.
7617
76181999-08-17 Gerd Moellmann <gerd@gnu.org>
7619
7620 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7621 and `right-bitmap-area' if position is in the bitmap areas. This
7622 avoids an error when clicking on the bitmap areas. Instead, they
7623 are currently treated like clicks inside the window.
7624 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7625 (Qleft_bitmap_area, Qright_bitmap_area): New.
7626 (syms_of_window): Initialize new symbols.
7627
7628 * dispnew.c (update_frame_line): If writing whole line,
7629 don't write trailing spaces unless we must.
7630
7631 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7632 (redisplay_internal): Register unwind_redisplay with
7633 register_unwind_protect.
7634 (try_window_reusing_current_matrix): If new start > old start,
7635 give up if start pos of first reusable row is not equal to new
7636 start.
7637
7638 * eval.c (Fsignal): Don't reset redisplaying_p here.
7639
7640 * xterm.c (expose_area): If row extends face to end of line,
7641 write the whole line.
7642
76431999-08-16 Gerd Moellmann <gerd@gnu.org>
7644
7645 * dispextern.h (struct it): Remove member
7646 show_trailing_whitespace_p.
7647
7648 * dispnew.c (direct_output_for_insert): Use
7649 Vshow_trailing_whitespace instead of former iterator member
7650 show_trailing_whitespace_p.
7651 (direct_output_forward_char): Don't do it if hightlighting
7652 trailing whitespace.
7653
7654 * xdisp.c (Qshow_trailing_whitespace): Removed.
7655 (Vshow_trailing_whitespace): Added.
7656 (init_iterator): Remove initialization code for
7657 show_trailing_whitespace_p.
7658 (redisplay_internal): Don't try cursor movement in this_line
7659 if showing trailing whitespace.
7660 (redisplay_window): Likewise for cursor movement in current
7661 matrix and try_window_id.
7662 (try_window_reusing_current_matrix): Likewise.
7663 (trailing_whitespace_p): Return 0 if trailing whitespace is
7664 in front of point.
7665 (display_line): Use Vshow_trailing_whitespace instead of
7666 former iterator member show_trailing_whitespace_p.
7667 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7668
76691999-08-16 Gerd Moellmann <gerd@gnu.org>
7670
7671 * window.c (Fpos_visible_in_window_p): Rewritten.
7672
7673 * xfaces.c (add_to_log): Renamed from display_message.
7674 Don't display messages in echo area.
7675
7676 * xterm.c (x_draw_glyph_string_box): Use the background width
7677 of the glyph string for the width of the box.
7678
76791999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7680
7681 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7682
76831999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7684
7685 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7686 background first, and then set other parameters that might
7687 depend upon their new values.
7688
76891999-08-15 Gerd Moellmann <gerd@gnu.org>
7690
7691 * xfaces.c (Vfont_list_limit): New.
7692 (syms_of_xfaces): Make it a user-variable.
7693 (DEFAULT_FONT_LIST_LIMIT): New.
7694 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7695 maximally that number of fonts, otherwise use
7696 DEFAULT_FONT_LIST_LIMIT.
427ec082 7697 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
7698 until we have all fonts.
7699 (Fxfont_list): Additionally return the full names of fonts and
7700 their registry and encoding.
7701
427ec082 7702 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
7703 Simplify clearing "under" scroll bar.
7704
7705 * window.c (Qfixed_window_size): New.
7706 (syms_of_window): Initialiaze it.
7707 (check_all_windows): Add return type void.
7708 (window_fixed_size_p): New. Return non-zero if window
7709 is fixed-size.
7710 (window_min_size_1): New.
7711 (window_min_size): Handle fixed-size windows.
7712 (size_window): New. Rewritten combination of set_window_height and
7713 set_window_width that handles fixed-size windows.
7714 (set_window_height): Call it.
7715 (set_window_width): Call it.
7716 (Fsplit_window): Give an error on attempt to split a fixed-size
7717 window.
7718 (change_window_height): Partly rewritten to handle fixed-size
7719 windows.
7720
77211999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7722
7723 * process.c (Fopen_network_stream): Fix previous change.
7724
77251999-08-13 Karl Heuer <kwzh@gnu.org>
7726
7727 * xdisp.c (line_number_display_limit_width): New var.
7728 (decode_mode_spec): Use it instead of hardcoded value.
7729 (syms_of_xdisp): Defvar it.
7730
77311999-08-13 Richard M. Stallman <rms@gnu.org>
7732
7733 * eval.c (run_hook_list_with_args): Gcpro `globals'.
7734 (run_hook_with_args): Likewise.
7735
7736 * window.h (struct window): New field too_small_ok.
7737
427ec082 7738 * window.c (set_window_height, set_window_width):
26901792
DL
7739 If window starts out "too small", set its too_small_ok flag.
7740 If window's too_small_ok flag is set, don't delete it
7741 unless it is so small it would cause a crash.
7742
77431999-08-13 Gerd Moellmann <gerd@gnu.org>
7744
7745 * window.c (MINSIZE): Removed.
7746 (window_min_size): New.
7747 (set_window_height): Use window_min_size.
7748 (change_window_height): Ditto.
7749
77501999-08-12 Gerd Moellmann <gerd@gnu.org>
7751
7752 * indent.c (vmotion): Don't add in mini-buffer prompt width
7753 if prompts are inserted into mini-buffer.
7754
77551999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7756
7757 * config.in: Add HAVE_GETADDRINFO.
7758 * process.c (Fopen_network_stream): Use getaddrinfo.
7759
77601999-08-11 Gerd Moellmann <gerd@gnu.org>
7761
7762 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
7763 glyphs to -1.
7764
7765 * xdisp.c (face_before_or_after_it_pos): If position after
7766 or before iterator's current position in the buffer is out
7767 of bounds, return the iterator's original face id.
7768
7769 * dispnew.c (mirror_make_current): If desired row isn't enabled,
7770 just swap glyphs pointers between current and desired row.
7771 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
7772 desired matrix method string to current matrix.
7773
77741999-08-11 Kenichi Handa <handa@etl.go.jp>
7775
7776 * lisp.h (CHAR_MODIFIER_MASK): New macro.
7777
7778 * lread.c (read_escape): For Control modifier, pay attention to
7779 multibyte character.
7780 (read1): Likewise. Singal error or a multibyte character which
7781 has a modifer bit. Check validity of Shift modifer.
7782
7783 * charset.c (non_ascii_char_to_string): Handle modifier bits as
7784 the same as Lisp reader.
7785
77861999-08-10 Richard M. Stallman <rms@gnu.org>
7787
7788 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
7789
77901999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
7791
7792 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
7793
77941999-08-10 Eli Zaretskii <eliz@gnu.org>
7795
7796 * msdos.c (IT_set_face): Abort if the default face is not realized
7797 and cached.
7798 (IT_write_glyphs): Reset the screen face to the default face
7799 before writing glyphs.
7800
7801 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
7802 colors from the frame here.
7803 (realize_tty_face) [MSDOS]: Do it here. Update the face
7804 attributes with the actual name of the color taken from the
7805 frame.
7806
7807 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
7808 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
7809
7810 * frame.c (Fframe_parameters): Swap foreground and background
7811 colors returned in frame parameters if the frame has reverse in
7812 its parameter alist.
7813 (Fmake_terminal_frame): Make a unique copy of face_alist for
7814 each frame.
7815
78161999-08-07 Richard Stallman <rms@gnu.org>
7817
7818 * buffer.c (Fprevious_overlay_change): Just return
7819 the answer obtained from overlays_at.
7820
7821 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
7822 Use XpmCloseness and attrs.closeness instead.
7823
78241999-08-06 Richard Stallman <rms@gnu.org>
7825
7826 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
7827
78281999-08-06 Geoff Voelker <voelker@cs.washington.edu>
7829
427ec082 7830 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
7831 Ffile_attributes_lessp): New functions.
7832 (Fdirectory_files): Use directory_files_internal.
7833 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
7834 Ffile_attributes_lessp.
7835
7836 * w32.c (stat): Check for directory ending in separator when
7837 doing readdir fast path.
7838
7839 * w32fns.c (x_set_icon_type): Support setting frame icons.
7840 * w32term.c (x_bitmap_icon): New function.
7841 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 7842
26901792
DL
78431999-08-06 Gerd Moellmann <gerd@gnu.org>
7844
7845 * xdisp.c (set_iterator_to_next): After delivering a character
7846 from a display vector, restore face and charset to what they were
7847 before the display vector was processed.
7848
78491999-08-06 Gerd Moellmann <gerd@gnu.org>
7850
7851 * xdisp.c (reseat_at_next_visible_line_start): New parameter
7852 on_newline_p.
7853 (set_iterator_to_next): After delivering last char
427ec082 7854 from display vector, reseat on next visible line start if
26901792
DL
7855 dpvec_char_len < 0.
7856 (next_element_from_buffer): Set dpvec_char_len to -1 for
7857 selective display.
7858
78591999-08-06 Gerd Moellmann <gerd@gnu.org>
7860
7861 * xdisp.c (compute_line_metrics): If first line's physical ascent
7862 is larger than its logical ascent, use the physical ascent, and
7863 make the row taller. Set row's overlapping_p flag.
7864
7865 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
7866 (direct_output_for_insert): Ditto.
7867
7868 * dispextern.h (struct glyph_row): Add overlapping_p.
7869
7870 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
7871
7872 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
7873 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
7874
7875 * dispnew.c (direct_output_for_insert): Don't use this method if
7876 row is overlapped by others.
7877 (update_text_area): Write full line if current line is overlapped.
7878 (redraw_overlapped_rows): New.
7879 (update_window): Call it.
7880 (redraw_overlapping_rows): New.
7881 (update_window): Call it.
7882 (scrolling_window): Make sure overlapped_p flag in current rows is
7883 unchanged.
7884 (row_equal_p): Take rows overlapped_p flag into account.
7885
7886 * dispextern.h (struct glyph_row): Add flag overlapped_p.
7887
7888 * xterm.c (x_fix_overlapping_area): New.
7889 (x_redisplay_interface): Add x_fix_overlapping_area.
7890
7891 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
7892
78931999-08-06 Gerd Moellmann <gerd@gnu.org>
7894
7895 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
7896 (struct glyph_string): Add member for_overlaps_p.
7897 (x_get_glyph_string_clip_rect): If glyph string draws foreground
7898 of overlapping rows, clip to window bottom.
7899 (x_fill_glyph_string): Add parameter overlaps_p.
7900 (x_fill_composite_glyph_string): Ditto.
7901 (BUILD_GLYPH_STRINGS): Ditto.
7902 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
7903 (x_draw_glyph_string): Don't draw anything but the foreground
7904 if glyph string draws row overlaps.
7905
7906 * dispnew.c (direct_output_for_insert): Don't use this
7907 optimization for rows that overlap others.
7908 (update_window_line): Return non-zero if display has changed.
7909 (update_text_area): Ditto.
7910 (update_window): Record if display has been changed.
7911
7912 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
7913
7914 * dispextern.h (struct redisplay_interface): Add
7915 fix_overlapping_area.
7916
7917 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
7918
7919 * dispextern.h (struct glyph): Add overlaps_vertically_p.
7920
7921 * xterm.c (x_produce_image_glyph): Compute iterator's physical
7922 ascent and descent.
7923 (x_produce_stretch_glyph): Ditto.
7924 (x_produce_glyphs): Ditto.
7925
7926 * xdisp.c (init_iterator): Reset physical line height info
7927 after producing special glyphs.
7928 (display_toolbar_line): Set physical line height info.
7929 (compute_line_metrics): Ditto.
7930 (display_line): Ditto.
7931 (display_string): Ditto.
7932
7933 * term.c (produce_glyphs): Set iterator's physical height
7934 information.
7935
7936 * dispnew.c (blank_row): Compute glyph row's physical height.
7937 (row_equal_p): Take physical row heights into account.
7938 (direct_output_for_insert): Ditto.
7939 (update_text_area): Ditto.
7940
7941 * dispextern.h (struct glyph_row): Add phys_ascent and
7942 phys_height.
7943 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
7944 max_phys_descent.
7945
79461999-08-04 Stefan Monnier <monnier@cs.yale.edu>
7947
7948 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
7949 Fswitch_to_buffer.
7950 (no_switch_buffer): New function.
7951 (Fswitch_to_buffer): Call them. Don't get confused
7952 by "same-window" buffers in a dedicated frame.
7953
7954 * window.c (display-buffer): Don't get confused
7955 by "same-window" buffers in a dedicated frame.
7956
79571999-08-04 Andreas Schwab <schwab@gnu.org>
7958
7959 * insdel.c (insert_from_string_1): Check gap size against number
7960 of outgoing bytes, not incoming bytes.
7961
79621999-08-03 Tom Breton <tob@world.std.com>
7963
7964 * lread.c (read1): Added circular reading code to #N=.
7965 (SUBSTITUTE): New macro.
7966 (seen_list): New variable.
7967 (substitute_object_in_subtree): New function.
7968 (substitute_object_recurse): New function.
7969 (substitute_in_interval): New function.
7970
79711999-08-02 Eli Zaretskii <eliz@gnu.org>
7972
7973 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
7974
7975 * frame.c (make_terminal_frame): Don't call init_frame_faces if
7976 noninteractive, for termcap frames as well.
7977
7978 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
7979 frames.
7980
79811999-08-01 Richard Stallman <rms@gnu.org>
7982
7983 * fns.c (internal_equal): Correct overlay comparison.
7984
83c8f461 79851999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 7986
427ec082 7987 * xfns.c (x_set_internal_border_width):
26901792
DL
7988 Call do_pending_window_change. Don't block input, don't call XFlush.
7989 (x_set_vertical_scroll_bars): Call do_pending_window_change.
7990 (x_set_scroll_bar_width, x_set_font): Likewise.
7991
7992 * frame.c (Fset_frame_height): Call do_pending_window_change.
7993 (Fset_frame_width, Fset_frame_size): Likewise.
7994
7995 * xterm.c (x_set_window_size): When calling change_frame_size,
7996 specify 1 for DELAY.
7997
7998 * widget.c (EmacsFrameSetCharSize): Don't call
7999 do_pending_window_change here.
8000
80011999-07-30 Dave Love <fx@gnu.org>
8002
8003 * config.in: Add HAVE_STDLIB_H.
8004
80051999-07-30 Richard M. Stallman <rms@gnu.org>
8006
8007 * process.c (create_process): Detect failure of `pipe'.
8008
80091999-07-30 Keisuke Nishida <kei@psn.net>
8010
8011 * alloc.c (allocate_vectorlike): Add missing increment.
8012
8013 * data.c (Fdefalias): Call Ffset instead of duplicating code.
8014
8015 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
8016 before calling indirect_function.
8017
80181999-07-30 Eli Zaretskii <eliz@gnu.org>
8019
8020 * dispextern.h (load_color, lookup_derived_face): Declare
8021 prototypes.
8022
8023 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
8024 it will be done later.
8025
8026 * frame.c (make_terminal_frame) [MSDOS]: Don't call
8027 init_frame_faces if non-interactive.
8028 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
8029 array with a call to msdos_stdcolor_name. The font name is now
8030 "ms-dos", consistent with realize_tty_face.
8031
8032 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
8033 MSDOS frame.
8034
8035 * window.c (Fset_window_configuration) [MSDOS]: Don't call
8036 x_set_toolbar_lines.
8037
8038 * xfaces.c (load_color): Remove static from definition and remove
8039 prototype.
8040 [MSDOS]: Add a DOS-specific version of load_color.
8041 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
8042 (lookup_derived_face): New function.
8043 (realize_default_face): Support MSDOS frames.
8044 [MSDOS]: If fore/background colors are unspecified, inherit them
8045 from the frame.
8046 (realize_face): Support MSDOS frames.
8047 (realize_tty_face): Support MSDOS frames.
8048 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
8049 load_color to try to find a suitable approximation. If the face
8050 is inverse-video, swap the foreground and background colors.
8051
8052 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
8053 functions.
8054
8055 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
8056
8057 * msdos.h: Remove redundant declarations (most of them are now in
8058 dispextern.h).
8059
8060 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
8061 Use default frame colors if the face doesn't specify them; invert
8062 the colors if highlight is ON.
8063 (IT_write_glyphs): Rewritten for the new redisplay engine.
8064 (IT_change_line_highlight): Add (unused) parameter Y, since that's
8065 how the hook is called by term.c.
8066 (IT_copy_glyphs): New function, copies an area of the display in
8067 video RAM.
8068 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
8069 redisplay now calls it even if char_ins_del_ok is zero.
8070 (IT_set_frame_parameters): Prototype changed. Calls the new
8071 load_color. Puts the new fore/background colors into the default
8072 face on current frame.
8073 (IT_menu_display): Rewritten to handle the new struct glyph
8074 instead of a char array.
8075 (XMenuActivate): Call lookup_derived_face to create and use
8076 special faces for the pop-up and drop-down menus.
8077
80781999-07-29 Gerd Moellmann <gerd@gnu.org>
8079
8080 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
8081 XawScrollbarSetThumb if thumb parameters haven't changed because
8082 that function apparently isn't optimized for this case.
8083
80841999-07-29 Eli Zaretskii <eliz@gnu.org>
8085
8086 * msdos.c (getdefdir): Don't return failure indication when
8087 _fixpath sets errno to ENOSYS.
8088
80891999-07-28 Gerd Moellmann <gerd@gnu.org>
8090
8091 * xdisp.c (string_char_and_length): New. Use it everywhere
8092 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
8093
80941999-07-28 Kenichi Handa <handa@etl.go.jp>
8095
8096 * fns.c (count_combining): New function.
8097 (struct textprop_rec): New structure.
8098 (concat): Copy text properties correctly when byte combining
8099 occurs.
8100
81011999-07-28 Gerd Moellmann <gerd@gnu.org>
8102
8103 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8104 if display is mono.
8105 (x_draw_row_bitmaps): If face has stipple, don't switch
8106 to foreground color for clearing areas, and set the fill style.
8107
8108 * xfaces.c (load_face_colors): Load background color if setting
8109 stipple, too.
427ec082 8110 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8111 FillStippled.
8112
81131999-07-26 Ken'ichi Handa <handa@gnu.org>
8114
8115 * xterm.c (x_find_ccl_program): Add casting.
8116
8117 * w32fns.c (w32_find_ccl_program): Add casting.
8118
81191999-07-27 Gerd Moellmann <gerd@gnu.org>
8120
8121 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8122
8123 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8124 because this will try to access a nonexisting widget.
8125
81261999-07-26 Markus Rost <rost@gnu.org>
8127
427ec082 8128 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8129 (Fputhash): Ditto.
8130 (Fremhash): Ditto.
8131
81321999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8133
26901792
DL
8134 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8135 value to frame width and height.
8136
8137 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8138 into account for full-width windows. Don't add scroll bar width
8139 to width of clip rect.
8140 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8141 (x_set_glyph_string_background_width): Add 1 to background width.
8142 (x_draw_glyphs): Take internal border into account for full-width
8143 lines.
8144
81451999-07-26 Richard M. Stallman <rms@gnu.org>
8146
8147 * xfns.c (x_set_mouse_color): Always unload the old color.
8148 Don't allow nil as color value.
427ec082 8149 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8150 Always unload the old color.
8151
8152 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8153
81541999-07-26 Karl Heuer <kwzh@gnu.org>
8155
8156 * fns.c (Fy_or_n_p): Doc fix.
8157
81581999-07-26 Kenichi Handa <handa@etl.go.jp>
8159
8160 * ccl.h (setup_ccl_program): The type is changed to `int'.
8161
8162 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8163 stored in the following CCL code. Adjusted for the change of
8164 Vccl_program_table.
8165 (resolve_symbol_ccl_program): Adjusted for the new style of
8166 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8167 is resolving failed.
8168 (ccl_get_compiled_code): New function.
8169 (setup_ccl_program): Function type changed from `void' to `int'.
8170 Resolve symbols in CCL_PROG.
8171 (Fccl_program_p): New function.
8172 (Fccl_execute): Get compiled CCL code by just calling
8173 setup_ccl_program.
8174 (Fccl_execute_on_string): Likewise.
8175 (Fregister_ccl_program): Adjusted for the change of
8176 Vccl_program_table.
8177
8178 * coding.c (setup_coding_system): Get compiled CCL code by just
8179 calling setup_ccl_program.
8180
8181 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8182 calling setup_ccl_program.
8183
8184 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8185 calling setup_ccl_program.
8186
81871999-07-23 Gerd Moellmann <gerd@gnu.org>
8188
8189 * xfaces.c (frame_update_line_height): Just use the height of the
8190 frame's fontset or font, instead of taking face fonts into
8191 account.
8192
8193 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8194
81951999-07-23 Richard M. Stallman <rms@gnu.org>
8196
8197 * window.c (Fsplit_window): For default size, round up for left window.
8198
81991999-07-21 Joe Ramey <ramey@ti.com>
8200
8201 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8202 has returned -1 (lockfile exists but is not a symlink?).
8203
82041999-07-20 Gerd Moellmann <gerd@gnu.org>
8205
8206 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8207 because of a change in cursor_gc made in 20.4.
8208
82091999-07-19 Gerd Moellmann <gerd@gnu.org>
8210
8211 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8212 for YNegative, if using X toolkit.
8213
427ec082 8214 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8215 from positions returned.
8216
82171999-07-17 Gerd Moellmann <gerd@gnu.org>
8218
8219 * xrdb.c (x_load_resources): Set double-click time defaults
8220 for Motif list boxes from double-click-time.
8221
8222 * fns.c (Vhash_table_tests): Remvoed.
8223 (Qhash_table_test): New.
8224 (syms_of_fns): Initialize Qhash_table_test.
8225 (Fmake_hash_table): Look up user-defined tests in symbol prop
8226 `hash-table-test'.
8227 (Fdefine_hash_table_test): Store test and hash function as
8228 symbol prop `hash-table-test'.
8229 (make_hash_table): Add parameters user_test and user_hash.
8230
8231 * window.c (set_window_buffer): Set window margins for tty
8232 frames, too.
8233 (Fset_window_margins): Ditto.
8234
8235 * term.c (append_glyph): Use glyph area of iterator instead of
8236 always TEXT_AREA.
8237
8238 * dispnew.c (update_frame_1): Add left margin width to cursor
8239 hpos.
8240 (direct_output_for_insert): Ditto.
8241 (direct_output_forward_char): Ditto.
8242
8243 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8244
8245 * dispextern.h (struct glyph_matrix): Add top_line_p.
8246
82471999-07-16 Gerd Moellmann <gerd@gnu.org>
8248
8249 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8250 instead.
8251
8252 * fns.c (cmpfn_eq): Add hash code parameters.
8253 (cmpfn_eql): Ditto.
8254 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8255 (cmpfn_user_defined): Likewise.
8256
82571999-07-15 Gerd Moellmann <gerd@gnu.org>
8258
8259 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8260
8261 * fns.c (maybe_resize_hash_table): Correct computation of
8262 index vector size.
8263 (make_hash_table): Ditto.
8264 (Fmakehash): New.
8265
8266 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8267
8268 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8269 (survives_gc_p): Make it externally visible.
8270 (mark_object): Ditto.
8271
8272 * fns.c (remove_hash_entry): Removed.
8273 (sweep_weak_hash_tables): New.
8274
8275 * print.c (print): Print more information about hash tables.
8276
8277 * xfns.c (image_spec_hash): Removed.
8278 (lookup_image): Use sxhash instead of image_spec_hash.
8279 (image_spec_equal_p): Removed.
8280 (lookup_image): Use Fequal instead of image_spec_equal_p.
8281
82821999-07-14 Gerd Moellmann <gerd@gnu.org>
8283
8284 * lisp.h (P_): Moved to top of file.
8285
8286 * fns.c (make_hash_table): Set new members.
8287
8288 * alloc.c (mark_object): Mark hash table's user_hash_function.
8289 Mark index vector for weak hash tables.
8290
8291 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8292 user_hash_function, cmpfn, and hashfn.
8293
8294 * fns.c (build_hash): Removed.
8295 (hash_test): Removed.
8296 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8297 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8298
82991999-07-13 Gerd Moellmann <gerd@gnu.org>
8300
8301 * alloc.c (survives_gc_p): New.
8302
8303 * print.c (print): Add hash table handling.
8304
8305 * alloc.c (mark_object): Add code to mark hash tables.
8306
8307 * lisp.h (GC_HASH_TABLE_P): New.
8308
8309 * emacs.c (main): Call init_fns.
8310
8311 * fns.c (init_fns): New.
8312
8313 * fns.c: Add hash table implementation.
8314
8315 * lisp.h (PVEC_HASH_TABLE): New.
8316 (struct Lisp_Hash_Table): New.
8317 (XHASH_TABLE): New.
8318 (XSET_HASH_TABLE): New.
8319 (HASH_TABLE_P): New.
8320 (CHECK_HASH_TABLE): New.
8321 (DEFAULT_HASH_SIZE): New.
8322 (DEFAULT_REHASH_THRESHOLD): New.
8323 (DEFAULT_REHASH_SIZE): New.
8324
8325 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8326 (x_write_glyphs): Compute overwritten cursor using real start
8327 and end positions of display.
8328 (x_insert_glyphs): Ditto.
8329
83301999-07-10 Gerd Moellmann <gerd@gnu.org>
8331
8332 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8333
8334 * dispnew.c (blank_row): Add y-position as parameter. Compute
8335 visible height.
8336
8337 * xdisp.c (next_element_from_string): Give padding spaces
8338 a position of -1.
8339
427ec082 8340 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8341 marginals areas on tty frames in a future version.
8342 (allocate_matrices_for_frame_redisplay): Ditto.
8343
8344 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8345 to zero if number of glyphs in the row is <= 1.
8346
83471999-07-09 Gerd Moellmann <gerd@gnu.org>
8348
8349 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8350 into account.
8351
8352 * xdisp.c (handle_display_prop): Don't reset area if handing
8353 a property from a string that came from a `display' property.
8354 (handle_single_display_prop): Don't handle recursive `display'
8355 properties.
8356 (handle_single_display_prop): Handle some display property
8357 forms for terminal frames.
8358 (Qimage): Moved here from xfns.c.
8359
8360 * dispextern.h (struct it): New field string_from_display_prop_p.
8361
8362 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8363 line.
8364
83651999-07-08 Gerd Moellmann <gerd@gnu.org>
8366
8367 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8368
8369 * window.c (set_window_buffer): Set window's vscroll to zero.
8370
8371 * xdisp.c (QCwhen): New.
8372 (display_prop_end): New.
8373 (handle_single_display_prop): Use it.
8374 (debug_method_add): Print buffer name if tracing.
8375 (try_window_reusing_current_matrix): Compute visible height
8376 of reused rows. Fix cursor position calculation in case of
8377 top-line.
8378
8379 * dispextern.h (struct redisplay_interface): Add parameter
8380 cursor_on_p to update_window_end_hook.
8381
8382 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8383
83841999-07-07 Gerd Moellmann <gerd@gnu.org>
8385
427ec082 8386 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8387 doesn't become negative when decrementing it.
8388
8389 * eval.c (Fsignal): Reset redisplaying_p to zero.
8390
8391 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8392 for window update.
8393 (try_window_id): Ditto.
8394
8395 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8396 (x_scroll_run): Ditto.
8397 (any_help_event_p): New.
8398 (x_initialize): Set it to zero.
8399 (XTread_socket): Clear help echo only if any_help_event_p.
8400
8401 * xdisp.c (init_iterator): Set top_line_p.
8402 (start_display): Use correct initial y if top-line is present.
8403 (make_cursor_line_fully_visible): Bug fixes for top-line.
8404 (try_scrolling): Ditto.
8405 (try_window_reusing_current_matrix): Ditto.
8406
8407 * dispextern.h (struct it): Add top_line_p.
8408
8409 * dispnew.c (shift_glyph_matrix): Move some computations out
8410 of the loop.
8411
427ec082 8412 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8413 XFLOATINT.
8414
84151999-07-06 Gerd Moellmann <gerd@gnu.org>
8416
8417 * dispnew.c (update_frame_1): When setting cursor in echo area,
8418 skip only over padding spaces at the end.
8419
8420 * xfaces.c (realize_tty_face): Set face's font_name field to
8421 "tty".
8422
8423 * term.c (update_end): Turn cursor on only if selected window's
8424 cursor_off_p flag is not set.
8425
84261999-07-05 Gerd Moellmann <gerd@gnu.org>
8427
8428 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8429 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8430 (TS_cursor_invisible): New.
8431 (term_init): Initialize TS_cursor_invisible.
8432 (tty_hide_cursor): New.
8433 (tty_show_cursor): New.
8434 (update_end): Show tty cursor.
8435 (update_begin): Hide tty cursor to prevent cursor flickering
8436 during redisplays triggered by timers (stealth fontification).
8437
8438 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8439
8440 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8441 in scroll bars.
8442 (x_handle_toolbar_click): Set modifier bits.
8443
84441999-07-04 Gerd Moellmann <gerd@gnu.org>
8445
8446 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8447 instead of a pointer to a volatile input_event.
427ec082 8448 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8449 declaration of local variable `sp'.
8450 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8451 to kbd_fetch_ptr.
8452
84531999-07-03 Gerd Moellmann <gerd@gnu.org>
8454
8455 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8456 only if buffer is modified. Return quickly if changes are
8457 above window start.
8458
84591999-07-02 Gerd Moellmann <gerd@gnu.org>
8460
8461 * dispextern.h (HSCROLL_WINDOWS): Removed.
8462
8463 * xdisp.c (mark_window_display_accurate): Don't set
8464 w->region_showing.
8465 (redisplay_internal): Don't call redraw_garbaged_frames.
8466
84671999-07-01 Gerd Moellmann <gerd@gnu.org>
8468
8469 * xdisp.c (echo_area_display): Don't display truncation marks
8470 for messages because 20.4 doesn't do it either.
8471 (redisplay_window): Case same window start. Instead of giving
8472 up when cursor is partially visible, make it fully visible.
8473 (mark_window_display_accurate): Some cleanup. Record window's
8474 last cursor information.
8475 (debug_method_add): Improved.
8476 (redisplay_internal): Record last cursor info only if not
8477 consider_all_windows_p.
8478
8479 * dispnew.c (update_window): Update top line after scrolling.
8480 (blank_row): Renamed from make_empty_enabled_row.
8481 (increment_glyph_row_buffer_positions): Increment positions
8482 in buffers, only.
8483
8484 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8485 string.
8486
84871999-06-30 Gerd Moellmann <gerd@gnu.org>
8488
8489 * dispnew.c (update_window): Check that updated row is visible.
8490
8491 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8492 top of window differently.
8493
8494 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8495 if region is showing.
8496
8497 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8498 avoiding matrix reallocation. Set window_vscroll in matrix.
8499
8500 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8501
26901792
DL
8502 * xdisp.c (debug_method_add): New.
8503 (debug_redisplay_method): Removed.
8504 (try_window_reusing_current_matrix): Handle case where old
8505 window start is the same as new window start.
8506
8507 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8508 an array instead of a pointer.
8509
26901792
DL
8510 * xfns.c (Fx_show_tip): Undo previous change.
8511
8512 * xterm.c (x_append_glyph): Clear glyph->u.val.
8513
8514 * dispextern.h (struct glyph): Increase size of face_id bit-field
8515 for CHAR_GLYPH to 12.
8516
85171999-06-29 Gerd Moellmann <gerd@gnu.org>
8518
8519 * xfaces.c (x_charset_registry): Make it externally visible.
8520
85211999-06-28 Gerd Moellmann <gerd@gnu.org>
8522
427ec082 8523 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8524 instead of WINDOW_WANTS_MODELINE_P.
8525
8526 * xterm.c (clear_mouse_face): Make externally visible.
8527
8528 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8529
8530 * xterm.c (expose_line): Handle exposure of top-lines.
8531
8532 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8533 if mouse_face_mouse_frame is null.
8534
8535 * xdisp.c (redisplay_window): If window is echo_area_window,
8536 and update_mode_line is set, update menubar and toolbar.
8537
8538 * dispnew.c (space_glyph): Set its charpos to -1.
8539 (update_frame_1): Ignore trailing padding spaces.
8540
8541 * xdisp.c (next_element_from_c_string): Set position of padding
8542 glyphs to -1.
8543
85441999-06-27 Gerd Moellmann <gerd@gnu.org>
8545
8546 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8547 XQueryColor.
8548
8549 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8550 (set_cursor_from_row): Skip over glyphs having a null object at
8551 the start of rows.
8552 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8553 glyphs.
8554 (handle_invisible_prop): Compute next change only when needed.
8555 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8556 line.
8557
85581999-06-26 Gerd Moellmann <gerd@gnu.org>
8559
8560 * xrdb.c (x_load_resources): Don't set resource for double-click
8561 time.
8562
8563 * xdisp.c (try_window_id): Return quickly if all changes are
8564 below the window's current matrix end.
8565
8566 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8567 parameter.
8568
8569 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8570 in desired not in current matrix.
8571 (try_window_reusing_current_matrix): Rotate matrices starting
8572 at start_vpos instead of 0.
8573
8574 * xterm.c (expose_window): Use window_text_bottom_y.
8575 (fast_find_position): Ditto.
8576
8577 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8578 (try_window_reusing_current_matrix): Ditto.
8579 (get_last_unchanged_at_beg_row): Ditto.
8580 (init_iterator): Ditto.
8581
8582 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8583 more row.
8584 (check_matrix_invariants): Use window_text_bottom_y.
8585 (update_window): Ditto.
8586 (scrolling_window): Ditto.
8587
8588 * xdisp.c (window_text_bottom_y): New.
8589
85901999-06-25 Gerd Moellmann <gerd@gnu.org>
8591
8592 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8593 clearing mouse face.
8594 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8595 event.xcrossing.focus is not set, and focus is in the menu bar,
8596 set focus frame as if event.xcrossing.focus were set.
8597
85981999-06-24 Gerd Moellmann <gerd@gnu.org>
8599
8600 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8601 * keyboard.c (make_lispy_movement): Ditto.
8602
8603 * window.c (coordinates_in_window): Return 4 if on top line.
8604 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8605
8606 * xdisp.c (window_box_height): Subtract top line height.
8607 (window_box): Add top line height to top y position if top line
8608 exists.
8609 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8610 the top line row of the window. Set initial y-position to
8611 window's top line height plus delta.
8612 (start_display): Choose start glyph row depending on whether
8613 window has a top line.
8614 (try_scrolling): Take top line height into account for aggressive
8615 scrolling.
8616 (compute_window_start_on_continuation_line): Take top line into
8617 account.
427ec082 8618 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
8619 trigger a new redisplay.
8620 (try_window_reusing_current_matrix): Take top line into account.
8621 (find_last_row_displaying_text): Ditto.
8622 (get_last_unchanged_at_beg_row): DItto.
8623 (try_window_id): Ditto.
8624 (compute_line_metrics): Ditto.
8625
8626 * dispnew.c (shift_glyph_matrix): Compute visible row height
8627 taking top line of window into account.
8628 (update_window): Update top line. If scrolling_window detects
8629 that all rows are equal, only set cursor.
8630 (update_window_line): Call after_update_window_line_hook if
8631 mode_line_p flag of rows has changed.
8632 (scrolling_window): Add parameter top_line_p. Return -1 if
8633 all rows are equal.
8634 (mode_line_string): Add parameter mode_line_p. Handle strings
8635 in top lines.
8636
8637 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8638 (MATRIX_FIRST_TEXT_ROW): New.
8639 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8640 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8641 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8642 (MATRIX_TOP_LINE_HEIGHT): New.
8643 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8644 (CURRENT_TOP_LINE_HEIGHT): New.
8645 (DESIRED_TOP_LINE_HEIGHT): New.
8646 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8647 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8648 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8649 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8650
8651 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8652 lines.
8653 (x_draw_row_bitmaps): Take top line into account when clearing
8654 bitmap area.
8655 (x_estimate_mode_line_height): Replacement for
8656 x_frame_mode_line_height.
8657 (x_get_glyph_string_clip_rect): Take top line into account.
8658 (x_clear_end_of_line): Ditto.
8659 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8660 top lines.
8661 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8662 (x_erase_phys_cursor): Take top line into account.
8663
8664 * xdisp.c (window_box_height): Subtract top line height if
8665 window wants a top line.
8666 (display_mode_lines): New.
8667 (redisplay_window): Call it.
8668 (display_mode_line): Add parameters face_id and format.
8669
8670 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8671 (MATRIX_TOP_LINE_HEIGHT): New.
8672
8673 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8674
8675 * term.c (estimate_mode_line_height): Renamed from
8676 frame_mode_line_height. Add parameter face_id.
8677 (estimate_mode_line_height_hook): Renamed from
8678 frame_mode_line_height_hook.
8679 (produce_special_glyphs_hook): Removed.
8680 (produce_glyphs_hook): Removed.
8681
86821999-06-23 Gerd Moellmann <gerd@gnu.org>
8683
8684 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8685 (struct glyph_row): Add mode_line_p.
8686
8687 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8688 (Qtop_line): New.
8689 (syms_of_xfaces): Initialize Qtop_line.
8690
8691 * dispextern.h (TOP_LINE_FACE_ID): New.
8692
8693 * buffer.c (init_buffer_once): Set default for
8694 top_line_format to nil.
8695 (init_buffer_once): Init top_line_format.
8696 (default-top-line-format): New.
8697 (top-line-format): New buffer-local variable.
8698
8699 * buffer.h: Add top_line_format.
8700
8701 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8702
87031999-06-17 Dave Love <fx@gnu.org>
8704
8705 * xfns.c: Move the PNG section before the JPEG one to avoid
8706 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 8707
26901792
DL
87081999-06-17 Gerd Moellmann <gerd@gnu.org>
8709
8710 * xfns.c (x_kill_gs_process): Don't free colors.
8711
87121999-06-17 Dave Love <fx@gnu.org>
8713
8714 * s/gnu-linux.h: Zap spurious ~.
8715
87161999-06-16 Gerd Moellmann <gerd@gnu.org>
8717
8718 * xfns.c (gif_load): Improve multi-image support.
8719
87201999-06-15 Gerd Moellmann <gerd@gnu.org>
8721
8722 * xfns.c (gif_load): Support multi-image files.
8723
8724 * Makefile.in (LIBGIF): Use libungif.
8725
8726 * configure.in (HAVE_GIF): Use libungif instead of libgif
8727 because the former doesn't contain patented compression code.
8728
8729 * xdisp.c (compute_window_start_on_continuation_line): Don't
8730 do it if line start is too far away from window start.
8731
87321999-06-14 Gerd Moellmann <gerd@gnu.org>
8733
8734 * buffer.c (init_buffer_once): Set buffer_local_flags for
8735 scroll_*_aggressively.
8736 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
8737 (init_buffer_once): Set defaults for these variables.
8738 (syms_of_buffer): Add default-scroll-*-aggressively.
8739
8740 * buffer.h (scroll_up_aggressively): New.
8741 (scroll_down_aggressively): New.
8742
8743 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
8744 a static PNG library.
8745
8746 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
8747 in case it's a static library.
8748
8749 * Makefile.in (ctagsfiles): Split so that files starting
8750 with an `x' are found before files starting with `w32'.
8751 (ctagsfiles1): New.
8752 (ctagsfiles2): New.
8753 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
8754
8755 * xdisp.c (compute_window_start_on_continuation_line): New.
8756 (redisplay_window): Use it.
8757 (INFINITY): New.
8758 (reseat_to_string): Use it.
8759 (hscroll_window_tree): Ditto.
8760 (compute_window_start_on_continuation_line): Ditto.
8761 (redisplay_window): Don't force display with a new window start.
8762
87631999-06-06 Gerd Moellmann <gerd@gnu.org>
8764
8765 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
8766 if widget not present.
8767
8768 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
8769
87701999-06-04 Gerd Moellmann <gerd@gnu.org>
8771
8772 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
8773 value of realize_basic_faces.
8774 (load_face_font_or_fontset): Store full font name in face.
8775 (realize_default_face): Use full font name.
8776
26901792
DL
8777 * xterm.c (x_produce_glyphs): Set member char_to_display.
8778 (x_append_glyph): Store char_to_display in glyphs.
8779
8780 * dispextern.h (struct it): Add char_to_display.
8781
8782 * xfns.c (x_set_font): Don't call face-set-after-frame-default
8783 if faces haven't been initialized.
8784 (Fx_create_frame): Call face-set-after-frame-default after
8785 faces have been initialized, and widget has been created.
8786
8787 * puresize.h (BASE_PURESIZE): Increased.
8788
87891999-06-01 Gerd Moellmann <gerd@gnu.org>
8790
8791 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
8792 (Finternal_set_lisp_face_attribute): If frame is t when
8793 :font attribute is set, use the selected frame.
8794 (clear_face_cache): Add parameter clear_fonts_p.
8795 (Fclear_face_cache): Add optional parameter thorougly.
8796
8797 * xfaces.c (face_numeric_value): Return -1 if symbol is not
8798 in table.
8799 (Fclear_face_cache): New.
8800 (choose_face_fontset_font): If fontset doesn't contain font
8801 pattern for the given charset, use CHARSET_ASCII.
8802 (Finternal_set_lisp_face_attribute): Fix handling of nil
8803 stipple attribute.
8804 (Finternal_set_lisp_face_attribute): Fix handling of changing
8805 font-related face attributes of the default face.
8806 (set_lface_from_font_name): Set only attributes that aren't
8807 specified.
8808
88091999-05-31 Gerd Moellmann <gerd@gnu.org>
8810
8811 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
8812 font support.
8813 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
8814 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
8815 scalable fonts depending on the setting of SCALABLE_FONTS.
8816 (first_font_matching): List more than one font to find the
8817 first non-scalable matching font.
8818 (sorted_font_list): Let x_face_list_fonts return scalable fonts
8819 depending on SCALABLE_FONTS.
8820 (better_font_p): New parameter compare_pt_p. If zero, don't
8821 compare point sizes of fonts.
8822 (exact_face_match_p) [SCALABLE_FONTS]: New.
8823 (build_scalable_font_name) [SCALABLE_FONTS]: New.
8824 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
8825 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
8826 (syms_of_xfaces): Add scalable-fonts-allowed.
8827
88281999-05-26 Gerd Moellmann <gerd@gnu.org>
8829
8830 * xfns.c (png_load): Let PNG lib handle gamma. Construct
8831 mask only if image contains simple transparency information.
8832 Otherwise, combine image with frame background color.
8833
8834 * configure.in (--with-png, HAVE_PNG): New.
8835
8836 * config.in (HAVE_PNG): New.
8837
8838 * Makefile.in: Add PNG library.
8839
8840 * xfns.c: Add PNG support.
8841
88421999-05-25 Gerd Moellmann <gerd@gnu.org>
8843
8844 * xdisp.c (init_xdisp): Initialize echo_area_message and
8845 previous_echo_area_message to nil.
8846
8847 * keyboard.c (read_char): Rename local variable echo_area_message
8848 because it shadows the global one.
8849
88501999-05-05 Gerd Moellmann <gerd@gnu.org>
8851
8852 * xterm.c (note_mode_line_highlight): Restructured.
8853
8854 * window.c (coordinates_in_window): Handle windows that don't have
8855 a mode line because their buffer's mode-line-format is nil.
8856 Recognize the mode line under x positions that correspond to
8857 flags areas and left scroll bar.
8858
88591999-05-02 Dave Love <fx@gnu.org>
8860
8861 * xterm.c (note_mouse_highlight): Separate help-echo processing
8862 from check on mouse-face so that it works generally.
8863
88641999-04-21 Gerd Moellmann <gerd@gnu.org>
8865
8866 * sound.c (Fplay_sound): Run hook play-sound-hook.
8867 (Qplay_sound_hook): New.
8868
88691999-04-20 Gerd Moellmann <gerd@gnu.org>
8870
8871 * xdisp.c (update_echo_area): Handle echo_area_message.
8872
88731999-04-19 Gerd Moellmann <gerd@gnu.org>
8874
8875 * editfns.c (Fmessage): Use message3.
8876
8877 * print.c (printchar): Set echo_area_message to nil.
8878 (strout): Ditto.
8879
8880 * minibuf.c (read_minibuf): Reset echo message strings to nil.
8881 (Fminibuffer_completion_help): Ditto.
8882
8883 * keyboard.c (cmd_error_internal): Set echo_areA_message.
8884 (command_loop_1): Test echo_areA_message.
8885 (read_char): Ditto.
8886 (record_menu_key): Set echo_area_message to nil.
8887 (Fexecute_extended_command): Test echo_area_message.
8888 (Fexecute_extended_command): Handle echo_area_message.
8889
8890 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
8891 is set.
8892
8893 * editfns.c (Fcurrent_message): If echo_area_message is set,
8894 return a substring of that string.
8895
8896 * dispnew.c (direct_output_for_insert): Test echo_area_message
8897 in addition to echo_area_glyphs.
8898 (set_window_cursor_after_update): Ditto.
8899 (update_frame_1): Ditto.
8900
8901 * alloc.c (Fgarbage_collect): Use message3_nolog to display
8902 old Lisp message string.
8903
8904 * xdisp.c (echo_area_message): New.
8905 (previous_echo_area_message): New.
8906 (syms_of_xdisp): Initialize and staticpro new variables.
8907 (echo_area_display): Display echo_area_message if set.
8908 (message2_nolog): Set echo_area_message and
8909 previous_echo_area_message.
8910 (echo_area_display): Set previous_echo_area_message.
8911 (redisplay_internal): Display echo area if echo_area_message
8912 or previous_echo_area_message are set.
8913 (redisplay_preserve_echo_area): Test/set echo_area_message and
8914 previous_echo_area_message.
8915 (redisplay_window): Test echo_area_message.
8916 (message3_nolog): New.
8917 (message3): New.
8918
8919 * editfns.c (Fformat): Add text properties to the result string
8920 from properties of the format string and properties of string
8921 arguments.
8922
8923 * textprop.c (text_property_list): New.
8924 (add_text_properties_from_list): New.
8925 (extend_property_ranges): New.
8926
89271999-03-29 Gerd Moellmann <gerd@gnu.org>
8928
8929 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
8930 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
8931 Use these symbols for the box face attribute instead of the
8932 removed ones.
8933
89341999-03-12 Gerd Moellmann <gerd@gnu.org>
8935
8936 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
8937 Correct wrong test for slant.
8938
89391999-03-10 Gerd Moellmann <gerd@gnu.org>
8940
8941 * xfaces.c: Use `unspecified' for unspecified face attributes,
8942 use t and nil for on/off.
8943
89441999-03-06 Gerd Moellmann <gerd@gnu.org>
8945
8946 * buffer.c (syms_of_buffer): Extend doc string of
8947 mode-line-format.
8948
8949 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
8950 (first_font_matching): New.
8951 (set_lface_from_font_name): Use it if font name is a pattern.
8952 (font_field_wildcard_p): Removed.
8953
8954 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
8955 Recompute visible height of rows.
8956
8957 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
8958 Don't accept non-strings for help-echo from overlays.
8959
89601999-03-04 Dave Love <fx@gnu.org>
8961
8962 * xterm.c (note_mouse_highlight): Check overlays for help-text
8963 property.
8964 (XTread_socket): Fix compiler warning.
427ec082 8965
26901792
DL
89661999-03-05 Gerd Moellmann <gerd@gnu.org>
8967
427ec082 8968 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
8969 overlay to 10. Call overlays_at so that it doesn't try to
8970 extend the vector.
8971
8972 * xdisp.c (compute_line_metrics): Compute glyph row's visible
8973 height.
8974
8975 * dispnew.c (row_equal_p): Compare visible row height, only.
8976 (update_text_area): Draw whole line if visible heights of
8977 rows differ.
8978 (update_window_line): Call after_update_window_line_hook
8979 if visible row height has changed.
8980
8981 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
8982 (struct glyph_row): New member visible_height.
8983
8984 * xfaces.c (font_field_wildcard_p): New.
8985 (set_lface_from_font_name): Remove parameter force_p. Accept
8986 font names containing wildcards.
8987
89881999-03-04 Gerd Moellmann <gerd@gnu.org>
8989
8990 * xterm.c (x_after_update_window_line): Clear internal border
8991 when windows_or_buffers_changed.
8992
8993 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
8994 buffer has a nil mode_line_format.
8995
89961999-03-03 Gerd Moellmann <gerd@gnu.org>
8997
8998 * xterm.c (x_setup_relief_colors): Use either background color
8999 or specified color.
9000
9001 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
9002
9003 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
9004
9005 * xterm.c (x_draw_box_rect): New.
9006 (x_draw_glyph_string_box): Renamed from
9007 x_draw_glyph_string_relief. Call x_draw_box_rect.
9008
9009 * xfns.c (QCrelief): New.
9010 (syms_of_xfns): Initialize it.
9011
9012 * dispextern.h (struct glyph): Rename left_shadow_p to
9013 left_box_line_p, right_shadow_p to right_box_line_p.
9014 (MAX_RELIEF_THICKNESS): Removed.
9015 (struct it): Rename members having `relief' in their names
9016 to contain `box' instead.
9017
9018 * xfaces.c (realize_x_face): Handle new box attribute values.
9019 (QCrelief, Qbox): Removed.
9020 (QCshadow, QCcolor, Qraised, Qsunken): New.
9021 (syms_of_xfaces): Initialize new symbols.
9022
90231999-03-02 Gerd Moellmann <gerd@gnu.org>
9024
9025 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
9026
9027 * xfaces.c (LFACE_RELIEF): Removed.
9028 (merge_face_vector_with_property): Remove handling of `:relief'.
9029 (Finternal_set_lisp_face_attribute): Ditto.
9030 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9031 (Finternal_get_lisp_face_attribute): Ditto.
9032 (realize_default_face): Ditto.
9033 (lface_hash): Don't compute hash from relief.
9034
9035 * dispextern.h (struct face): Replace member `relief' by
9036 `box_line_width'. Add member `box'.
9037 (face_box_type): New.
9038
9039 * xterm.c (x_produce_glyphs): If face has overline, add overline
9040 thickness + 1 to ascent.
9041
90421999-03-01 Gerd Moellmann <gerd@gnu.org>
9043
9044 * xterm.c (x_draw_glyph_string): Draw underline, overline,
9045 strike-through, and boxes.
9046 (x_draw_glyph_string_underline): Removed.
9047
9048 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
9049 (Qoverline, Qstrike_through, Qbox): New.
9050 (syms_of_xfaces): Define these symbols.
9051 (check_lface_attrs): Add checks for overline, strike-through,
9052 and box.
9053 (Finternal_set_lisp_face_attribute): Set new attributes.
9054 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
9055 (load_color): Handle new attributes.
9056 (realize_x_face): Ditto.
9057 (merge_face_vector_with_property): Ditto.
9058 (free_face_colors): Ditto.
9059 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
9060 (Finternal_get_lisp_face_attribute): Ditto.
9061 (Finternal_lisp_face_attribute_values): Ditto.
9062
9063 * dispextern.h (lface_attribute_index): Add enumerators for
9064 overstrike, strike-through, and box.
9065 (struct face): Add members for overline, strike-through, and
9066 box.
9067
90681999-02-17 Dave Love <fx@gnu.org>
9069
9070 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
9071 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
9072 files.
9073
90741999-02-16 Gerd Moellmann <gerd@gnu.org>
9075
9076 * keyboard.c (toolbar_items): Call access_keymap with third
9077 parameter 1, so that we don't get inherited toolbar item
9078 definitions.
9079
9080 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
9081 the window end vpos when in empty first line of window.
9082
90831999-02-15 Gerd Moellmann <gerd@gnu.org>
9084
9085 * xfaces.c (set_font_frame_param): New.
9086 (Finternal_set_lisp_face_attribute): Call it.
9087
9088Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9089
9090 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
9091 Accept specifications of color for underline.
9092
90931999-02-13 Gerd Moellmann <gerd@gnu.org>
9094
9095 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
9096 `frame' is t, operate on face defaults for new frames. If it
9097 is nil, operate on the selected frame.
9098
90991999-02-12 Gerd Moellmann <gerd@gnu.org>
9100
9101 * dispnew.c (check_matrix_invariants): Put it in #if 0.
9102 (update_window): Put the call to check_matrix_invariants in #if 0.
9103
9104Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9105
9106 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9107 Remove definition of UNDERLINE_COLOR.
9108
9109Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9110
9111 * xfaces.c (free_face_colors): Free the color for underline.
9112
9113 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9114 to the GC.
9115
9116Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9117
9118 * dispextern.h (UNDERLINE_COLOR): Defined.
9119 (struct face): Added two new members.
9120 underline_color, underline_defaulted_p.
9121
427ec082 9122 * xfaces.c (merge_face_vector_with_property):
26901792 9123 (check_lface_attrs): Accept the string value for underline.
427ec082 9124 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9125
9126 * xfaces.c (load_color): Change the last argument type to enum
9127 lface_attribute_index from int. And addec code for underling coloring.
9128 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9129
26901792
DL
91301999-02-12 Gerd Moellmann <gerd@gnu.org>
9131
9132 * xfns.c (Fx_image_header): Removed.
9133
91341999-02-07 Gerd Moellmann <gerd@gnu.org>
9135
9136 * xterm.c: Don't include <bitmaps/gray>.
9137 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9138
9139 * xfns.c (Fx_image_header): Add missing `\n\'.
9140 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9141
91421999-02-01 Gerd Moellmann <gerd@gnu.org>
9143
9144 * xterm.c (x_scroll_bar_create): Set background pixel from
9145 specified scroll bar color.
9146 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9147
9148 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9149 (x_set_scroll_bar_background): Ditto.
9150
9151 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9152
9153 * xfns.c (x_default_scroll_bar_color_parameter): New.
9154 (Fx_create_frame): Call it.
9155
91561999-01-31 Gerd Moellmann <gerd@gnu.org>
9157
9158 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9159 values in x_output structure.
26901792
DL
9160 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9161 (syms_of_xfns): Initialize these symbols.
9162
9163 * xterm.h (struct x_output): Add scroll bar pixel colors.
9164
9165 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9166 (x_set_scroll_bar_foreground): New.
9167 (x_set_scroll_bar_background): New.
9168
26901792
DL
91691999-01-12 Gerd Moellmann <gerd@gnu.org>
9170
9171 * xdisp.c (handle_single_display_prop): New.
9172 (handle_display_prop): Call it.
9173 (handle_raise_prop): Removed.
9174 (handle_height_prop): Removed.
9175 (handle_space_width_prop): Removed.
9176 (handle_face_prop): Remove handling of raised text.
9177 (handle_display_prop): Do it here.
9178
9179 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9180 (RAISE_PROP_IDX): Removed.
9181 (HEIGHT_PROP_IDX): Removed.
9182 (SPACE_WIDTH_PROP_IDX): Removed.
9183
9184 * xdisp.c (Qdisplay): Replaces Qglyph.
9185 (handle_display_prop): Formerly handle_glyph_prop.
9186
91871999-01-11 Gerd Moellmann <gerd@gnu.org>
9188
9189 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9190 (handle_stop): Set position in display vector to -1. Don't
9191 check overlay strings when set up to deliver characters from a
9192 display vector.
9193 (set_iterator_to_next): At the end of a run of characters from a
9194 display vector, check whether the display vector display replaces
9195 the display of a character.
9196
91971999-01-05 Gerd Moellmann <gerd@gnu.org>
9198
9199 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9200 X window hasn't been created yet.
9201
92021998-12-06 Gerd Moellmann <gerd@gnu.org>
9203
9204 * sound.c: New.
9205
92061998-12-04 Gerd Moellmann <gerd@gnu.org>
9207
9208 * config.in (HAVE_SOUND): New.
9209
9210 * emacs.c (main): Call syms_of_sound and init_sound.
9211
9212 * Makefile.in (obj): Add sound.o.
9213
9214 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9215
9216 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9217 (HAVE_SYS_SOUNDCARD_H): New.
9218
92191998-12-03 Gerd Moellmann <gerd@gnu.org>
9220
9221 * buffer.h (struct buffer): indicate_empty_lines renamed from
9222 indicate_zv_lines.
9223
9224 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9225 (default-indicate-zv-lines): Likewise.
9226
9227 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9228 to indicate_empty_line_p.
9229
9230 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9231 to next_element_from_buffer.
9232
9233 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9234
9235 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9236 and `N-'.
9237
9238 * xfns.c (xbm_scan): New.
9239 (xbm_read_hexint): Removed.
9240 (xbm_read_bitmap_file_data): Use xbm_scan.
9241
9242 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9243
92441998-12-02 Gerd Moellmann <gerd@gnu.org>
9245
9246 * xfns.c (xbm_read_hexint): New.
9247 (xbm_read_bitmap_file_data): New.
9248 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9249 instead of XReadBitmapFileData.
9250
9251 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9252
9253 * xfaces.c (face_with_height): New.
9254
9255 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9256 (eval_form): Renamed from eval_mode_element.
9257 (handle_face_prop): Use it.
9258 (Qheight): Replaces Qsmaller.
9259 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9260 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9261 integer, evaluate it to get the font height to use.
9262
9263 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9264 (struct it): Use `font_height' instead of `smaller'.
9265
92661998-12-01 Gerd Moellmann <gerd@gnu.org>
9267
9268 * xdisp.c (reseat_1): New.
9269 (reseat): Call it.
9270 (move_it_vertically_backward): Ditto.
9271 (redisplay_window): Don't abort when cursor not found in recenter.
9272
92731998-11-30 Gerd Moellmann <gerd@gnu.org>
9274
9275 * xdisp.c (reseat_at_next_visible_line_start): When not
9276 currently delivering display elements from the current buffer,
9277 restore buffer position first.
9278 (init_from_display_pos): Don't set IT's position from the
9279 position passed to this function.
9280
92811998-11-28 Gerd Moellmann <gerd@gnu.org>
9282
9283 * config.in (PROTO): Removed.
9284
9285 * xterm.h: Change PROTO to P_.
9286
92871998-11-26 Gerd Moellmann <gerd@gnu.org>
9288
9289 * xterm.c (take_vertical_position_into_account): New.
9290 (x_produce_image_glyph): Call it.
9291 (x_produce_stretch_glyph): Ditto.
9292 (x_produce_glyphs): Ditto.
9293 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9294 (x_fill_composite_glyph_string): Ditto.
9295 (x_fill_image_glyph_string): Ditto.
9296 (x_fill_stretch_glyph_string): Ditto.
9297
9298 * xdisp.c (display_line): Always compute row height from
9299 max_ascent and max_descent.
9300
9301 * dispextern.h (struct glyph): Add voffset.
9302 (struct it): Replace height by descent, max_height by max_descent.
9303
9304 * xterm.c (x_append_glyph): Set voffset
9305 (x_append_stretch_glyph): Ditto.
9306 (x_produce_image_glyph): Ditto.
9307 (x_produce_glyphs): Take voffset into account.
9308 (x_produce_image_glyph): Ditto.
9309 (x_produce_stretch_glyph): Ditto.
9310
9311 * dispextern.h (struct it): Add voffset.
9312 * xdisp.c (push_it): Save voffset.
9313 (pop_it): Restore it.
9314
9315 * xdisp.c (it_props): Add entry for `raise'.
9316 (handle_raise_prop): New.
9317
9318 * dispextern.h (RAISE_PROP_IDX): New.
9319
9320 * xdisp.c (Qraise): New.
9321 (syms_of_xdisp): Define Qraised.
9322
9323 * xterm.c (x_scroll_bar_move): Clear to the left and right
9324 of toolkit scroll bars differently.
9325 (x_scroll_bar_move): Removed.
9326 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9327
9328 * dispextern.h: Make it compilable --with-x=no.
9329 * alloc.c: Ditto.
9330 * emacs.c: Ditto.
9331 * dispnew.c: Ditto.
9332 * keyboard.c: Ditto.
9333 * term.c: Ditto.
9334 * xdisp.c: Ditto.
9335 * xfaces.c: Ditto.
9336 * xfns.c: Ditto.
9337 * xmenu.c: Ditto.
9338
93391998-11-25 Gerd Moellmann <gerd@gnu.org>
9340
9341 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9342
93431998-11-24 Gerd Moellmann <gerd@gnu.org>
9344
9345 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9346 update slider size, only.
9347 (xm_scroll_callback): Set dragging member of the scroll bar.
9348 (xt_action_hook): Reset last_scroll_bar_part.
9349 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9350
26901792
DL
9351 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9352 window on newly created frames that don't have one.
9353
93541998-11-23 Gerd Moellmann <gerd@gnu.org>
9355
9356 * xdisp.c (restore_overlay_strings): Removed.
9357 (restore_dpvec): Removed.
9358 (init_from_display_pos): Inline both functions above.
9359
9360 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9361 (parse_image_spec): Handle it.
9362 (xbm_format): Use it.
9363 (xpm_format): Ditto.
9364 (pbm_format): Ditto.
9365 (jpeg_format): Ditto.
9366 (tiff_format): Ditto.
9367 (gif_format): Ditto.
9368 (gs_format): Ditto.
9369
9370 * xdisp.c (set_window_cursor): Removed.
9371 (redisplay_internal): Case cursor motion in cursor line of
9372 selected window; use set_cursor_from_row.
9373
93741998-11-22 Gerd Moellmann <gerd@gnu.org>
9375
9376 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9377 into account.
9378
93791998-11-21 Gerd Moellmann <gerd@gnu.org>
9380
9381 * xterm.c (expose_frame): Redraw menu bar window.
9382
9383 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9384 in menu item.
9385
9386 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9387 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9388
9389 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9390 to determine vertical_scroll_bar_extra.
9391 (EmacsFrameSetCharSize): Ditto.
9392 * xfns.c (x_figure_window_size): Ditto.
9393
9394 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9395 (x_draw_bitmap): Ditto.
9396
9397 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9398 * xfaces.c (realize_basic_faces): Realize it.
9399
94001998-11-20 Gerd Moellmann <gerd@gnu.org>
9401
9402 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9403 under LessTif Use the widget of the frame as parent for the
26901792
DL
9404 menu, again.
9405
94061998-11-19 Gerd Moellmann <gerd@gnu.org>
9407
9408 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9409 When EnterNotify, don't generate a mouse movement event if
9410 notification is from a busy-cursor child window.
9411
9412 * xterm.h (struct x_output): Add busy_window, remove cursor.
9413
9414 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9415 Use a transparent window to display the busy-cursor.
9416 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9417
94181998-11-17 Gerd Moellmann <gerd@gnu.org>
9419
9420 * xdisp.c (check_window_end): New, for debugging.
9421 (CHECK_WINDOW_END): New.
9422 (try_window_id): Use it.
9423
9424 * xterm.c (process_expose_from_menu): Return int.
9425
9426 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9427 TOOLBAR_EVENT events in last_nonmenu_event.
9428
94291998-11-16 Gerd Moellmann <gerd@gnu.org>
9430
9431 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9432 window end isn't reliable, so set window_end_valid to nil.
9433 (redisplay_internal): If overlay arrow has changed, set
9434 windows_or_buffers_changed to redisplay thoroughly.
9435
9436 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9437 necessary.
9438
9439 * xfns.c (file_dialog_cb): New.
9440 (Fx_file_dialog): New.
9441 * fileio.c (Fread_file_name): Call it.
9442
427ec082 9443 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9444 selection dialog.
9445
94461998-11-14 Gerd Moellmann <gerd@gnu.org>
9447
9448 * xterm.c (note_mouse_highlight): Don't highlight when popup
9449 is active.
9450
26901792
DL
9451 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9452 timer-event-handler. This busy cursor tends to be anoying if
9453 fontifying stealthily.
9454
9455 * dispnew.c (direct_output_for_insert): Give up if current row
9456 contains trailing whitespace.
9457
94581998-11-13 Gerd Moellmann <gerd@gnu.org>
9459
9460 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9461
9462 * xdisp.c (handle_fontified_prop): New.
9463 (Vfontification_functions): New.
9464 (Qfontification_functions): New.
9465 (it_props): Add handle_fontified_prop.
9466
94671998-11-12 Gerd Moellmann <gerd@gnu.org>
9468
9469 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9470 Otherwise, under LessTif, after the popup has gone, all button
9471 press events come in for the frame's widget, and release events
9472 come in for the edit_widget.
9473 * xterm.c (XTread_socket): Remove workaround for that problem.
9474 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9475 XmScrollBarSetValues.
9476 (SET_SAVED_MENU_EVENT): Give it statement form.
9477
26901792
DL
9478 * xfaces.c (display_message): If waiting_for_input, don't display
9479 the message.
9480
9481 * window.c (scroll_command): If not acting on current_buffer,
9482 make redisplay consider all windows.
9483
9484 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9485
9486 * xdisp.c (handle_glyph_prop): Set it->object for images to
9487 the object having the glyph property.
9488
9489 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9490 invisible.
9491
94921998-11-11 Gerd Moellmann <gerd@gnu.org>
9493
9494 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9495 (x_term_init): Create the gray pixmap.
9496 (x_setup_relief_color): Use it.
9497 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9498 internal border at the top of a frame.
9499 (x_init_glyph_string): Likewise.
427ec082 9500 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9501 full-width lines.
9502 (XTflash): Don't flash the toolbar window.
9503
9504 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9505 in case of ButtonPress events.
9506
95071998-11-10 Gerd Moellmann <gerd@gnu.org>
9508
9509 * xrdb.c (x_load_resources): Add grey background colors as
9510 defaults for menus, scroll bars, and dialogs.
9511
9512 * insdel.c (prepare_to_modify_buffer): Move setting
9513 windows_or_buffers_changed from modify_region here.
9514
9515 * xfns.c (Fx_show_tip): Inhibit redisplay.
9516 (Fx_hide_tip): Ditto.
9517 (Fx_image_header): New.
9518
95191998-11-09 Gerd Moellmann <gerd@gnu.org>
9520
9521 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9522 when clearing current window matrices.
9523
95241998-11-08 Gerd Moellmann <gerd@gnu.org>
9525
9526 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9527 position from a string position. Use the right end position
9528 if the property spans a whole overlay string.
9529
95301998-11-07 Gerd Moellmann <gerd@gnu.org>
9531
9532 * xmenu.c (menubar_selection_callback): Remove workaround for
9533 Lesstif not calling XmNpopdownCallback because it doesn't
9534 handle the case where users don't select any menu item.
9535
26901792
DL
9536 * insdel.c (modify_region): Set windows_or_buffers_changed.
9537
9538 * buffer.c (set_buffer_internal): Don't set
9539 windows_or_buffers_changed.
9540
26901792
DL
9541 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9542
26901792
DL
9543 * xmenu.c (menubar_selection_callback): Add workaround for
9544 Lesstif not calling XmNpopdownCallback.
9545
9546 * xdisp.c (eval_mode_element): New.
9547 (eval_mode_handler): New.
9548 (display_mode_element): Use eval_mode_element.
9549
9550 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9551 Remove code looking at text props of default value.
9552
9553 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9554
26901792
DL
95551998-11-06 Gerd Moellmann <gerd@gnu.org>
9556
427ec082 9557 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9558 BUTTON_TYPE_NONE.
9559 (single_submenu): Likewise for panes and menu items.
9560 (set_frame_menubar): Set button_type of menu bar to none.
9561 (xmenu_show): Likewise.
9562 (single_submenu): Set widget values selected slot.
9563 (xmenu_show): Likewise.
9564
26901792
DL
9565 * xmenu.c (push_menu_item): Add parameters `type' and
9566 `selected'. Store it in menu_items.
9567 (MENU_ITEMS_ITEM_TYPE): New.
9568 (MENU_ITEMS_ITEM_SELECTED): New.
9569 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9570
9571 * xfns.c (clear_image_cache): Get the current time, before
9572 doing anything.
9573 (cache_image): Set prev pointer of next image.
9574 (clear_image_cache): Clear current matrices if any image was
9575 freed.
9576
9577 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9578
9579 * xfns.c (x_set_cursor): New.
9580 (Fx_display_busy_cursor): New.
9581 (Fx_undisplay_busy_cursor): New.
9582
9583 * xterm.h (struct x_output): Add busy_cursor.
9584
9585 * xfns.c (Vx_busy_pointer_shape): New.
9586 (x_set_mouse_color): Create busy cursor.
9587
9588 * process.c (wait_reading_process_input): Show and hide busy
9589 cursor.
9590
9591 * keyboard.c (command_loop_1): Display busy cursor.
9592
9593 * eval.c (Fsignal): Hide busy cursor.
9594
9595 * buffer.c (set_buffer_internal): Don't set
9596 windows_or_buffers_changed.
9597
9598 * xterm.c (redo_mouse_highlight): New.
9599
96001998-11-04 Gerd Moellmann <gerd@gnu.org>
9601
26901792
DL
9602 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9603 (x_build_heuritic_mask): New.
9604 (lookup_image): Call it.
9605
9606 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9607 (previous_help_echo): New.
9608 (XTread_socket): Generate help event with nil message when
9609 leaving a region with help-echo.
9610 (note_mouse_highlight): Handle `help-echo' over text.
9611 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9612 CirculateRequest.
9613 (clear_mouse_face): Don't clear if tooltip is shown.
9614 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9615 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9616
9617 * keyboard.c (Vshow_help_function): New.
9618 (read_char): Use it.
9619
96201998-11-03 Gerd Moellmann <gerd@gnu.org>
9621
9622 * xfns.c (x_create_tip_frame): New.
9623 (Fx_show_tip): New.
9624 (Fx_hide_tip): New.
9625
427ec082 9626 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
9627 a widget.
9628
9629 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9630 to full_width_p. Add internal_border_p.
9631
96321998-11-02 Gerd Moellmann <gerd@gnu.org>
9633
9634 * xterm.c (note_mode_line_highlight): Check the charpos of
9635 the glyph under the mouse pointer before accessing text
9636 properties at that position.
9637
96381998-11-01 Gerd Moellmann <gerd@gnu.org>
9639
9640 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9641
9642 * xdisp.c (auto-raise-toolbar-buttons): New.
9643 (build_desired_toolbar_string): Handle the flag.
9644 (toolbar-button-margin): New.
9645 (toolbar-button-relief): New.
9646 (build_desired_toolbar_string): Use margin and relief.
9647
9648 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9649 for FreeBSD.
9650 (note_mode_line_highlight): New.
9651 (note_mouse_highlight): Call it.
9652
96531998-10-31 Gerd Moellmann <gerd@gnu.org>
9654
9655 * s/freebsd.h (NARROWPROTO): New.
9656
9657 * xdisp.c (display_string): New parameter face_string.
9658 (display_mode_element): When displaying a symbol with a string
9659 value, use text properties from the symbol's default value, maybe.
9660
9661 * xrdb.c (x_load_resources): Add font defaults for menus and
9662 dialogs.
9663
96641998-10-30 Gerd Moellmann <gerd@gnu.org>
9665
9666 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9667
96681998-10-29 Gerd Moellmann <gerd@gnu.org>
9669
9670 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9671 produced for characters with codes < 32 under certain
9672 circumstances.
9673
9674 * xdisp.c (redisplay_window): Handle values of PT in front
9675 of invisible, intangible text.
427ec082 9676 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
9677 displaying lines.
9678 (display_mode_element): Assign to glyphs written for a mode
9679 line spec `%x' as object the Lisp format string, as position
9680 the position of the `%' in that string.
9681 (display_string): If displaying a C string, optionally get
9682 the face to use from a Lisp string.
9683
9684 * xterm.c (expose_window_tree): Include mode line height.
9685
9686 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9687
96881998-10-27 Gerd Moellmann <gerd@gnu.org>
9689
9690 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9691 over mode line.
9692
96931998-10-26 Gerd Moellmann <gerd@gnu.org>
9694
9695 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9696
9697 * xdisp.c (redisplay_window): If mode line height has changed,
9698 arrange for a thorough immediate redisplay using the correct mode
9699 line height.
9700 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9701
9702 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9703 (CURRENT_MODE_LINE_HEIGHT): New.
9704 (DESIRED_MODE_LINE_HEIGHT): New.
9705
9706 * keyboard.c (make_lispy_event): Add string and string position
9707 info to mouse-click events.
9708 (read_key_sequence): Handle `local-map' property of mode line
9709 strings.
9710
9711 * keyboard.h (POSN_STRING): New.
9712
97131998-10-25 Gerd Moellmann <gerd@gnu.org>
9714
9715 * dispnew.c (mode_line_string): Mew.
9716
9717 * xterm.c (xt_action_hook): New.
9718 (x_create_toolkit_scroll_bar): Add action hook.
9719 (xm_scroll_callback): Implement dragging.
9720
9721 * keyboard.c (Qend_scroll): New.
9722 (scroll_bar_parts): Add it.
9723
9724 * termhooks.h (scroll_bar_end_scroll): New.
9725
9726 * xterm.c (XTread_socket): Bug fix.
9727
97281998-10-24 Gerd Moellmann <gerd@gnu.org>
9729
9730 * xdisp.c (redisplay_window): Finish scroll bars after
9731 redisplaying toolbar.
9732
9733 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
9734 (syms_of_keyboard): Add Qbottom.
9735
9736 * termhooks.h (scroll_bar_to_top): New.
9737 (scroll_bar_to_bottom): New.
9738
9739 * xdisp.c (redisplay_window): Always resize toolbar window if
9740 auto_resize_toolbar_p is non-zero.
9741 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
9742 (window_box): New.
9743 (window_box_height): New.
9744 (window_box_width): New.
9745 (window_box_left): New.
9746 (window_box_right): New.
9747 (window_box_edges): New.
9748
97491998-10-23 Gerd Moellmann <gerd@gnu.org>
9750
9751 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
9752 XawScrollbarSetThumb in FreeBSD.
9753 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
9754 to true.
9755
9756 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
9757 is out of range.
9758
9759 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
9760 (x_term_init): Initialize it.
9761
9762 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
9763
9764 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
9765 cursor.
9766
97671998-10-22 Gerd Moellmann <gerd@gnu.org>
9768
9769 * keyboard.c (make_lispy_event): Handle scroll_bar_click
9770 differently when using toolkit scroll bars.
9771
9772 * xterm.c (x_send_scroll_bar_event): New.
9773 (x_scroll_bar_to_input_event): New.
9774 (xaw3d_scroll_callback): New.
9775 (xaw3d_jump_callback): New.
9776 (xm_scroll_callback): New.
9777 (x_toolkit_scroll_p): New.
9778 (XTread_socket): Handle scroll bar client message.
9779 (x_term_init): Initialize Xatom_Scrollbar.
9780 (x_scroll_bar_create): Set cursor.
9781 (xm_scroll_callback):
9782 (x_create_toolkit_scroll_bar): New.
9783 (x_set_toolkit_scroll_bar_thumb): New.
9784 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
9785 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
9786
9787 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
9788
97891998-10-21 Gerd Moellmann <gerd@gnu.org>
9790
9791 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
9792 (XTread_socket): Don't handle mouse button events for scroll bars
9793 if using toolkit scroll bars.
9794 (XTset_vertical_scroll_bar): Set thumb size and position for
9795 Athena scroll bar.
9796
9797 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
9798
9799 * xterm.c (XTread_socket): Dispatch expose event to widget
9800 if using toolkit scroll bars.
9801 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 9802 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
9803 if using toolkit scroll bars.
9804 (x_scroll_bar_move): Handle tookit scroll bars.
9805
9806 * Makefile.in (LIBW): Use Xaw3d if present.
9807
9808 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
9809 (HAVE_XAW3D): New.
427ec082 9810
26901792
DL
9811 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
9812 (HAVE_XAW3D): New.
9813
427ec082 9814 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
9815 right vertical scroll bar.
9816
98171998-10-20 Gerd Moellmann <gerd@gnu.org>
9818
9819 * xfns.c (xpm_load): Support reading XPM images from string
9820 buffers containing data in the same format as an XPM file.
9821 Support `:color-symbols'.
9822 (xpm_format): Add `:data'.
9823 (xpm_keyword_index): Add XPM_DATA.
9824 (syms_of_xfns): Add `:color-symbols'.
9825 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
9826 (xpm_valid_color_symbols_p): New.
9827 (xpm_image_p): Call it.
9828
9829 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
9830 attribute to the image if item is not enabled.
9831
9832 * xfns.c (x_laplace): New.
9833 (x_laplace_read_row): New.
9834 (x_laplace_write_row): New.
9835 (lookup_image): Handle common image attributes here. New
9836 attribute `:algorithm'.
9837
9838 * xfaces.c (clear_face_cache): Call clear_image_cache.
9839
9840 * xterm.c (x_inverted_image_mask): Removed.
9841 (x_draw_image_foreground_1): New.
9842 (x_draw_image_glyph_string): Draw images with mask to a temporary
9843 pixmap to reduce flickering.
9844
9845 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
9846 (display_toolbar_line): Remove parameter `margin'.
9847
98481998-10-19 Gerd Moellmann <gerd@gnu.org>
9849
9850 * xdisp.c (toolbar_lines_needed): New.
9851 (auto-resize-toolbars): New.
9852
9853 * xfns.c (cache_image): Correct call to xrealloc.
9854
9855 * dispnew.c (Fset_toolbar_height): Removed.
9856
9857 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
9858 FRAME_MENU_BAR_LINES.
9859
9860 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
9861 instead of FRAME_MENU_BAR_LINES.
9862 (check_frame_size): Ditto.
9863
9864 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
9865 instead of FRAME_MENU_BAR_LINES.
9866 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
9867 (build_frame_matrix): Ditto.
9868 (change_frame_size_1): Ditto.
9869
9870 * frame.h (FRAME_TOOLBAR_LINES): New.
9871 (FRAME_TOP_MARGIN): New.
9872
9873 * window.c (struct save_window_data): Add frame_toolbar_lines.
9874 (Fset_window_configuration): Handle toolbar lines.
9875 (Fcurrent_window_configuration): Save toolbar lines.
9876
9877 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
9878
9879 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
9880
9881 * frame.h (struct frame): Rename top_margin to toolbar_lines.
9882
9883 * xfns.c (x_frame_parms): Add `toolbar-lines'.
9884 (x_set_toolbar_lines): New.
9885
9886 * keyboard.c (cmd_error_internal): Bug fix.
9887
9888 * xterm.c: Remove double include of syssignal.h.
9889
98901998-10-18 Gerd Moellmann <gerd@gnu.org>
9891
9892 * xterm.c (x_toolbar_item): New.
9893 (x_handle_toolbar_click): Use it.
9894 (note_toolbar_highlight): Use it.
9895
9896 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
9897 and toolbar_items_vectors.
9898
9899 * xterm.c (help_echo): New.
9900 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
9901 (x_set_glyph_string_gc): Handle them.
9902 (x_after_update_window_line): Don't do anything in pseudo-windows.
9903 (x_produce_image_glyph): Take image margin and face relief into
9904 account.
9905 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
9906 (x_draw_glyph_string_background): Optimize case when face has
9907 relief.
9908 (x_setup_relief_color): Take frame instead of glyph string
9909 parameter.
9910 (x_draw_relief_rect): New.
9911 (x_draw_glyph_string_relief): Call it.
9912 (x_draw_image_glyph_string_foreground): Handle margin and image
9913 relief.
9914 (x_draw_image_glyph_string_background): Ditto.
9915 (expose_frame): Redraw toolbar window.
9916 (expose_window): Don't draw cursor for pseudo-windows.
9917 (x_y_to_hpos_vpos): Handle pseudo-windows.
9918 (frame_to_window_pixel_xy): New.
9919 (note_mouse_highlight): Call note_toolbar_highlight.
9920 (x_handle_toolbar_click): New.
9921 (note_toolbar_highlight): New.
9922 (show_mouse_face): Change int parameter `hl' to parameter of
9923 type enum draw_glyphs_face. Handle image highlighting.
9924 (XTread_socket): Return a HELP_EVENT input event if help_echo is
9925 non-nil. Use x_handle_toolbar_click.
9926
9927 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
9928
9929 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
9930 IMAGE_BOOL_VALUE.
9931 (parse_image_spec): Handle them.
9932 (image_spec_value): Additional parameter found.
427ec082 9933 (free_image): Remove image from the vector `images' of the
26901792
DL
9934 image cache.
9935 (clear_image_cache): Additional parameter force_p.
9936 (Fclear_image_cache): New.
9937 (x_find_image_file): New.
9938 (xbm_load): Handle `:margin' and `:relief'. Use
9939 x_find_image_file.
9940 (xpm_load): Likewise.
9941 (pbm_load): Likewise.
9942 (jpeg_load): Likewise.
9943 (tiff_load): Likewise.
9944 (gif_load): Likewise.
9945
9946 * keyboard.c (Qhelp_echo): New symbol.
9947 (read_char): Handle `toolbar' and `help_echo' events.
9948 (kbd_buffer_get_event): Handle HELP_ECHO input event.
9949 (make_lispy_event): Handle TOOLBAR_EVENT.
9950 (toolbar_items): New.
9951 (process_toolbar_item): New.
9952 (PROP): New.
9953 (init_toolbar_items): New.
9954 (append_toolbar_item): New.
9955 (read_char_x_menu_prompt): Handle `toolbar' event.
9956 (read_key_sequence): Ditto.
9957
9958 * xfaces.c (Qtoolbar): New.
9959 (realize_basic_faces): Realize `toolbar' face.
9960 (face_at_string_position): Remove parameter modeline_p, add
9961 base_face_id.
9962
9963 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
9964 to read data.
9965
99661998-10-17 Gerd Moellmann <gerd@gnu.org>
9967
9968 * xdisp.c (init_iterator): Replace parameter modeline_p with
9969 base_face_id.
9970 (next_element_from_string): Call get_next_display_element
9971 recursively after handling text properties.
9972 (prepare_menu_bars): Call update_toolbar.
9973 (update_toolbar): New.
9974 (build_desired_toolbar_string): New.
9975 (display_toolbar_line): New.
9976 (redisplay_toolbar): New.
9977 (toolbar_item_info): New.
9978 (redisplay_window): Call redisplay_toolbar.
9979 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
9980
9981 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
9982 window.
9983 (clear_desired_matrices): Ditto.
9984 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
9985 (free_glyphs): Free matrices of toolbar window.
9986 (update_frame): Update toolbar window.
9987 (change_frame_size_1): Take toolbar into account.
9988 (Fset_toolbar_height): New.
9989
9990 * dispextern.h (struct it): Remove member modeline_p, add
9991 base_face_id.
9992 (struct image): Add members relief and margin.
9993 (IMAGE_ASCENT): Include margin in height.
9994
99951998-10-14 Gerd Moellmann <gerd@gnu.org>
9996
9997 * xfns.c (Fclear_image_cache): New.
9998
9999 * xfaces.c (realize_basic_faces): Realize toolbar face.
10000 (face_at_string_position): Remove parameter modeline_p, add
10001 base_face_id.
10002
10003 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
10004
100051998-10-13 Gerd Moellmann <gerd@gnu.org>
10006
10007 * keyboard.c (syms_of_keyboard): Intern `:help'.
10008
100091998-10-12 Gerd Moellmann <gerd@gnu.org>
10010
10011 * xterm.c (note_toolbar_highlight): New.
10012 (note_mouse_highlight): Call it.
10013
10014 * window.c (window_from_coordinates): Additional parameter toolbar_p.
10015 (coordinates_in_window): Handle toolbar window.
10016
10017 * keyboard.c (toolbar_items): New.
10018 (process_toolbar_item): New.
10019 (parse_toolbar_item): New.
10020 (init_toolbar_items): New.
10021 (append_toolbar_item): New.
10022
10023 * dispextern.h (enum toolbar_item_idx): New.
10024 (enum toolbar_item_image): New.
10025
10026 * frame.h (struct frame): Add toolbar-related members.
10027
10028 * xfaces.c (face_at_string_position): Remove assertion that
10029 current_buffer == window's buffer. This is not the case when
10030 called for the toolbar window.
10031
10032 * frame.c (make_frame): Initialize toolbar members.
10033
10034 * alloc.c (mark_object): Mark toolbar data of frames.
10035
10036 * frame.h (struct frame): Add toolbar-related members
10037 toolbar_window, desired_toolbar_items, current_toolbar_items,
10038 desired_toolbar_string, current_toolbar_string,
10039 n_desired_toolbar_items, n_current_toolbar_items. Add
10040 window_height.
10041
10042 * xterm.c (x_after_update_window_line): Don't draw bitmap
10043 areas for pseudo-windows.
10044 (expose_frame): Handle toolbar window.
10045 (expose_window): Don't do cursor stuff for pseudo-windows.
10046
10047 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
10048
100491998-10-11 Gerd Moellmann <gerd@gnu.org>
10050
10051 * frame.c (make_frame): Initialize toolbar_window.
10052
10053 * alloc.c (mark_object): Make the toolbar window.
10054
10055 * dispnew.c (update_frame): Update frame's toolbar_window.
10056 (clear_current_matrices): Likewise.
10057 (clear_desired_matrices): Likewise.
10058 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
10059 (free_glyphs): Free the toolbar window and its matrices.
10060
10061 * frame.h (struct frame): Add toolbar_window.
10062
10063 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
10064 with relief.
10065
100661998-10-10 Gerd Moellmann <gerd@gnu.org>
10067
427ec082 10068 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
10069 window start is not in the range BEGV..ZV.
10070
100711998-10-09 Gerd Moellmann <gerd@gnu.org>
10072
10073 * xdisp.c (try_scrolling): Experimentally handle the case
10074 that scroll-preserve-screen-position is set to `always'.
10075
10076 * window.c (Vscroll_preserve_screen_position): Replacement for
10077 scroll_preserve_screen_position.
10078
100791998-10-08 Gerd Moellmann <gerd@gnu.org>
10080
10081 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
10082 doesn't like it.
10083 * xdisp.c: Ditto.
10084
10085 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
10086
100871998-10-06 Gerd Moellmann <gerd@gnu.org>
10088
427ec082 10089 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
10090 i_byte when prompts are inserted into minibuffers.
10091
10092 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
10093 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
10094 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
10095
100961998-10-04 Gerd Moellmann <gerd@gnu.org>
10097
10098 * xdisp.c (make_cursor_line_fully_visible): New.
10099 (try_scrolling): New.
10100 (redisplay_window): Move scrolling code to try_scrolling.
10101 (make_cursor_line_fully_visible): Handle case of window too small
10102 to show a single line.
10103 (redisplay_window): Case forced window start---use
10104 make_cursor_line_fully_visible.
10105 (redisplay_window): Case cursor movement via current matrix.
10106 If ending up on a partially visible line, make it fully visible
10107 instead of recentering.
10108 (try_scrolling): Additional parameter scroll_smoothly.
10109
10110 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10111
101121998-09-28 Gerd Moellmann <gerd@gnu.org>
10113
10114 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10115 instead of y-position for scroll-preserved-screen-position.
10116
101171998-09-07 Gerd Moellmann <gerd@gnu.org>
10118
10119 * dispnew.c (update_frame_line): If current row is not enabled,
10120 write the whole line.
10121
101221998-09-06 Gerd Moellmann <gerd@gnu.org>
10123
10124 * lisp.h (HAVE_FACES): Removed.
10125
10126 * dispextern.h (HAVE_FACES): Removed.
10127
10128 * config.in (HAVE_FACES): Removed.
10129
10130 * dispnew.c (HAVE_FACES): Removed.
10131
10132 * xdisp.c (HAVE_FACES): Removed.
10133
10134 * xfaces.c (HAVE_FACES): Removed.
10135
101361998-09-05 Gerd Moellmann <gerd@gnu.org>
10137
10138 * xdisp.c (init_iterator): If face_change_count is non-zero,
10139 free realized faces.
10140
10141 * xfaces.c (free_all_realized_faces): Make it externally visible.
10142 (Finternal_set_lisp_face_attribute): Increment
10143 windows_or_buffers_changed.
10144
10145 * dispnew.c (direct_output_for_insert): Give up if
10146 face_change_count is non-zero.
10147 (direct_output_forward_char): Ditto.
10148
10149 * xfaces.c (face_change_count): New.
10150
101511998-09-04 Gerd Moellmann <gerd@gnu.org>
10152
10153 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10154 of range.
10155
101561998-09-03 Gerd Moellmann <gerd@gnu.org>
10157
10158 * term.c (Ftty_display_color_p): New.
10159
101601998-09-02 Gerd Moellmann <gerd@gnu.org>
10161
10162 * xfaces.c (Ftty_defined_colors): New.
10163
10164 * xterm.c (x_produce_glyphs): Fix computation of
10165 contains_overlapping_glyphs_p for ASCII.
10166
10167 * dispnew.c (Fshow_cursor): Don't change cursor state while
10168 redisplaying.
10169 (direct_output_for_insert): If a glyph with lbearing or rbearing
10170 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10171
101721998-09-01 Gerd Moellmann <gerd@gnu.org>
10173
10174 * term.c (OUTPUT_IF): Make replacement text have statement form.
10175 (OUTPUT1_IF): Ditto.
10176 (TS_italic_mode, TS_end_italic_mode): Removed.
10177 (TS_bold_mode): Removed.
10178 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10179 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10180 (TS_enter_reverse_mode): New.
10181 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10182 (TN_magic_cookie_glitch_ul): New.
10183 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10184 (TS_exit_attribute_mode): New.
10185 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10186 (TS_set_foreground, TS_set_background): New.
10187 (reset_terminal_modes): Switch colors back to default.
10188 (write_glyphs): Turn face on before writing text, turn it off
10189 afterwards.
10190 (insert_glyphs): Ditto.
10191 (term_init): Initialize new terminal capability variables.
10192 (turn_on_face): Turn a face on.
10193 (turn_off_face): Turn a face off.
10194
10195 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10196 (GLYPH_CHAR): Ditto.
10197 (GLYPH_FACE): Ditto.
10198
10199 * xfaces.c (Vface_tty_color_alist): New.
10200 (face-register-tty-color): New.
10201 (face-clear-tty-colors): New.
10202
10203 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10204 (struct it): Remove member faces_p since we now always have faces.
10205
102061998-08-31 Gerd Moellmann <gerd@gnu.org>
10207
10208 * dispextern.h (struct face): Add tty appearance flags.
10209
10210 * xdisp.c (init_iterator): Always handle faces.
10211 (extend_face_to_end_of_line): Handle tty frames.
10212
10213 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10214 passed in.
10215
102161998-08-30 Gerd Moellmann <gerd@gnu.org>
10217
10218 * xfaces.c (realize_default_face): Use empty strings to indicate
10219 that the face should use the default foreground/background
427ec082 10220 color of the terminal. Fill font-related attributes with
26901792
DL
10221 appropriate values for tty frames.
10222
10223 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10224
10225 * xfaces.c (realize_default_face): If face `default' is not
10226 yet known, create it.
10227
10228 * frame.c (make_terminal_frame): Call init_frame_faces
10229 unconditionally.
10230
10231 * xfaces.c (init_frame_faces): Make it work for tty frames.
10232 (free_frame_faces): Ditto.
10233 (clear_face_cache): Ditto.
10234 (recompute_basic_faces): Ditto.
10235 (Fframe_face_alist): Ditto.
10236 (free_realized_face): Ditto.
10237 (prepare_face_for_display): Ditto.
10238 (clear_face_gcs): Ditto.
10239 (lookup_face): Ditto.
10240 (smaller_face): Ditto.
10241 (realize_default_face): Ditto.
10242 (realize_face): Ditto.
10243 (realize_face): Dispatch to functions depending on the frame type.
10244 (realize_x_face): X way of realizing faces.
10245 (realize_tty_face): TTY way of realizing faces.
10246
102471998-08-29 Gerd Moellmann <gerd@gnu.org>
10248
10249 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10250 compute it instead.
10251 (lookup_face): Remove local variable unibyte_registry.
10252
102531998-08-22 Gerd Moellmann <gerd@gnu.org>
10254
10255 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10256 1 pixel longer.
10257
427ec082 10258 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10259 of face in buffer.
10260
10261 * editfns.c (make_buffer_string_both): If prompt in buffer,
10262 prevent start > end.
10263
10264 * indent.c (Fvertical_motion): Set current_buffer to window's
10265 buffer if it isn't already.
10266
102671998-08-21 Gerd Moellmann <gerd@gnu.org>
10268
10269 * dispextern.h (GLYPH_DEBUG): Use default 0.
10270
10271 * xdisp.c (it_props): New member `smaller'.
10272 (init_iterator): Initialize it.
10273 (Qsmaller): New.
10274 (push_it): Save value of `smaller' value on the stack.
10275 (pop_it): Restore `smaller' from the stack.
10276 (handle_smaller_prop): New.
10277 (handle_face_prop): Use `smaller' text property to select a
10278 suitable face.
10279
10280 * dispextern.h (SMALLER_PROP_IDX): New.
10281 (struct it): Add member `smaller'.
10282
10283 * xfaces.c (smaller_face): New.
10284
10285 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10286
10287 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10288 total pixel width of window differently.
10289
10290 * xdisp.c (init_iterator): Compute width of mode line differently.
10291
10292 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10293 of bitmap areas.
10294
10295 * window.c (Fsplit_window): Include width of bitmap areas in
10296 window width.
10297 (window_internal_width): Subtract width of bitmap areas from
10298 total width.
10299
103001998-08-18 Gerd Moellmann <gerd@gnu.org>
10301
10302 * xdisp.c: Functions reordered for better readability.
10303
10304 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10305 lbearing.
10306 (update_window_tree): Parameter no_scrolling_p removed.
10307 (update_single_window): Ditto.
10308
10309 * xterm.c (x_get_char_font_and_encoding): Renamed to
10310 x_get_char_face_and_encoding.
10311
10312 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10313 if end of current row reached.
10314
10315 * xterm.c (x_get_glyph_face_and_encoding): New.
10316 (x_get_glyph_overhangs): Call it.
10317
10318 * xdisp.c (Qshow_trailing_whitespace): New.
10319 (Qtrailing_whitespace): New.
10320 (enum prop_handled): New.
10321 (struct props, it_props): New.
10322 (next_overlay_change): New. Works like Fnext_overlay_change
10323 but doesn't use xmalloc.
10324 (handle_stop): Restructured.
10325 (face_before_or_after_it_pos): Case iteration over a string: fix
10326 handling of face before current position.
10327
103281998-08-16 Gerd Moellmann <gerd@gnu.org>
10329
10330 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10331 reallocation matrix if fonts_changed_p.
10332 (update_text_area): Handle glyphs with lbearing.
10333
103341998-08-14 Gerd Moellmann <gerd@gnu.org>
10335
10336 * xdisp.c (struct props): New.
10337 (it_props): New.
10338 (compute_prop_info): New.
10339 (handle_stop): New.
10340
10341 * textprop.c (validate_interval_range): Make it externally
10342 visible.
10343
10344 * dispnew.c (direct_output_for_insert): Remove calls
10345 to compute_stop_pos.
10346
10347 * dispextern.h (struct it): Remove check_charpos,
10348 next_overlay_pos. Add what_changes.
10349
103501998-08-10 Gerd Moellmann <gerd@gnu.org>
10351
10352 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10353
10354 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10355 face_default_registry instead.
10356
10357 * syntax.c (scan_sexps_forward): Set up syntax table before
10358 jumping to initial state label.
10359
103601998-08-09 Gerd Moellmann <gerd@gnu.org>
10361
10362 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10363 >= ZV specially.
10364
103651998-08-08 Gerd Moellmann <gerd@gnu.org>
10366
10367 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10368 ends up in partially visible row, try to scroll. Case forced
10369 window start---handle windows not tall enough to show a single
10370 line.
10371
10372 * window.h (struct window): Member dy renamed vscroll.
10373
10374 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10375 fonts.
10376 (x_draw_stretch_glyph_string): Set clipping if using GC that
10377 hasn't set it yet.
10378
10379 * xdisp.c (redisplay_window): Case forced window start -
10380 don't let cursor end on partially visible row. Use desired
10381 matrix to find a suitable PT if it doesn't appear.
10382 (decode_mode_spec): Merged with 20.2.97.
10383 (try_window_reusing_current_matrix): Give up if old or
10384 new display is vscrolled.
10385 (redisplay_window): Reset vscrolling if forced window start,
10386 or if recentering.
10387
103881998-08-06 Gerd Moellmann <gerd@gnu.org>
10389
10390 * xfaces.c (realize_default_face): Use the fontset name instead of
10391 the alias for the family attribute of the default face because we
10392 can't easily determine a good alias from fontset-alias-alist.
10393 (face_fontset): Use Fquery_fontset to find the fontset.
10394 (font_list): Additional pattern parameter.
10395 (try_font_list): Ditto.
10396 (set_lface_from_font_name): Set face family from font foundry
10397 and family.
10398 (font_list): If family contains a hyphen, build pattern differently.
10399
104001998-08-05 Gerd Moellmann <gerd@gnu.org>
10401
10402 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10403 changed instead of setting the frame garbaged.
10404
10405 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10406 all attribute values. This is wrong if values are unspecified,
10407 i.e. nil.
10408
10409 * xdisp.c (try_window_id): Give up if window start changed.
10410
10411 * xfaces.c (make_realized_face): Store registry as Lisp object.
10412 (load_face_font_or_fontset): Compute registry of a face
10413 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10414 possible.
10415
10416 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10417 differently.
10418
10419 * alloc.c (mark_face_cache): Mark the registry member of faces.
10420
10421 * dispextern.h (struct face): Make registry a Lisp string.
10422
104231998-08-04 Gerd Moellmann <gerd@gnu.org>
10424
10425 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10426 multibyte_p. Handle unibyte text.
10427 (x_append_glyph): Set the multibyte_p flag of glyphs.
10428 (x_produce_image_glyph): Ditto.
10429 (x_append_stretch_glyph): Ditto.
10430 (x_produce_glyphs): Handle unibyte text like ASCII.
10431
10432 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10433 stack.
10434 (pop_it): Restore it.
10435 (face_before_or_after_it_pos): Handle the case that the string or
10436 buffer is unibyte.
10437 (get_overlay_strings): Set the multibyte flag of the iterator if
10438 the new overlay string is multibyte.
10439 (get_glyph_property): Likewise.
10440 (get_next_display_element): Don't check for charset changes in
10441 unibyte text.
10442 (append_space): Compute face differently for unibyte text.
10443 (extend_face_to_end_of_line): Don't return quickly if face has
10444 stipple.
10445
10446 * xfaces.c (load_face_font_or_fontset): Store registry and
10447 encoding of the font in the registry member of the face.
10448 (make_realized_face): Additional parameter `registry'.
10449 (free_realized_face): Free the registry of a realized face.
10450 (face_suitable_for_charset_p): Function form of the macro
10451 with the same name in uppercase.
10452 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10453 (choose_face_font): New parameter unibyte_registry.
10454 (choose_face_fontset_font): Ditto.
10455 (realize_default_face): Remember the registry and encoding of
10456 the specified frame font in Vx_unibyte_registry_and_encoding.
10457 (face_at_buffer_position): Handle unibyte.
10458 (face_at_string_position): Likewise.
427ec082 10459 (realize_face): New parameter unibyte_registry.
26901792
DL
10460 (compute_char_face): Handle the unibyte case.
10461
10462 * dispextern.h (struct glyph): Add bit multibyte_p.
10463 (struct face): New member registry holding the registry and
10464 encoding of the X font of the face.
10465 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10466 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10467 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10468 text.
10469 (struct iterator_stack_entry): Add multibyte_p.
10470
10471 * xdisp.c (string_pos): Use string_char_to_byte.
10472 (char_charset): Removed.
10473
104741998-08-03 Gerd Moellmann <gerd@gnu.org>
10475
10476 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10477 rectangle for a block cursor over an image without a mask.
10478 (x_stretch_block_cursor): Added. Non-zero means don't draw
10479 a block cursor over a stretch as wide as that stretch.
10480 (x_draw_stretch_glyph_string): Use it.
10481 (x_draw_hollow_cursor): Ditto.
10482
10483 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10484 (read_minibuf): Add front-sticky text property for prompt.
10485
10486 * xdisp.c (char_charset): Return charset of a character,
10487 depending on whether or not multi-byte characters are enabled.
10488
10489 * xfaces.c (Fset_face_charset_registry): Removed.
10490 (x_charset_registry): Determine registry from charset plist.
10491
104921998-08-02 Gerd Moellmann <gerd@gnu.org>
10493
10494 * xdisp.c (get_next_display_element): Don't check for charset
10495 changes if multi-byte characters are not enabled.
427ec082 10496
26901792 10497 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10498 redisplay interface.
26901792
DL
10499 * keyboard.c (detect_input_pending_run_timers): Likewise.
10500
10501 * dispextern.h (produce_*glyphs_hook): Removed.
10502 * term.c (produce_*glyphs): Ditto.
10503 (cursor_to): Remove pixel position parameters.
10504
10505 * dispnew.c: Remove hooks for window-based redisplay, introduce
10506 a redisplay interface structure.
10507
10508 * xterm.c (x_per_char_metric): Return default char metrics if per
10509 char metric exists but contains a zero width. Adobe Courier seems
10510 to contain such characters.
10511
10512 * xdisp.c (compute_line_metrics): Compute the width of rows
10513 without stopping at glyphs with zero width.
10514
105151998-08-01 Gerd Moellmann <gerd@gnu.org>
10516
10517 * xdisp.c (display_mode_line): If nothing was displayed at all,
10518 display a space.
10519 (hscroll_window_tree): Don't subtract 1 from target point if equal
10520 to ZV and window is not the selected window.
10521
10522 * dispnew.c (check_matrix_invariants): Remove check for window
10523 start at BEGV or after newline. This happens in rare cases
10524 intentionally.
10525
105261998-07-31 Gerd Moellmann <gerd@gnu.org>
10527
10528 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10529 (syms_of_xfaces): Add Vface_default_registry.
10530 (x_charset_registry): Use it.
10531
10532 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10533 (redisplay_window): Use it.
10534
10535 * dispnew.c (update_text_area): Handle lbearing of deleted text
10536 by backing up one character.
10537
105381998-07-30 Gerd Moellmann <gerd@gnu.org>
10539
427ec082 10540 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10541 decide to do nothing.
10542
10543 * xfaces.c (face_at_string_position): Additional parameter
10544 mode_line_p. If non-zero, merge with the mode line face
10545 instead of the default face.
10546 * dispextern.h (struct it): Add mode_line_p.
10547 * xdisp.c (init_iterator): Set it.
10548 (compute_face_in_string): Use it.
10549 (face_before_or_after_it_pos): Handle strings.
10550 (get_next_display_element): Don't look for relief end in C strings.
10551 (next_element_from_string): Deliver string position instead of
10552 buffer position.
10553
10554 * xterm.c (x_flush): Flush X output buffer.
10555 (XTflash): Use it.
10556
10557 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10558 Allow strings as face names.
10559
10560 * xfns.c (forall_images_in_image_cache): Check that frame is
10561 alive.
10562
10563 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10564 it's also called from x_destroy_window. Since this function is
10565 called from X, freeing stuff allocated with xmalloc is dangerous
10566 here, anyway.
10567
10568 * xfaces.c (free_realized_faces): Don't clear current matrices
10569 of a frame being destroyed.
10570
427ec082 10571 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10572 Fset_window_buffer.
10573
10574 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10575 with an additional argument specifying whether or not hooks may
10576 be called.
10577 (Fset_window_buffer): Call it.
10578
10579 * dispnew.c (clear_desired_matrices): Check that frame has
10580 a valid root window before clearing matrices in the window tree.
10581 (clear_current_matrices): Ditto.
10582 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10583 vchild are valid windows if not nil.
10584
10585 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10586 for :inverse-video.
10587 (Finternal_set_lisp_face_attribute): Ditto.
10588 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10589 (Finternal_get_lisp_face_attribute): Ditto.
10590 (Finternal_lisp_face_attribute_values): Ditto.
10591 (syms_of_xfaces): Define the symbol `:reverse-video'.
10592
10593 * xdisp.c (get_glyph_property): Renamed from
10594 fill_iterator_from_glyph_property.
10595 (next_element_from_buffer): Handle case that no `glyph' property
10596 was found correctly.
10597 (display_line): Extend face to end of line only if we have faces.
10598
105991998-07-29 Gerd Moellmann <gerd@gnu.org>
10600
10601 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10602 additional window argument.
10603
10604 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10605 set_iterator_to_previous_visible_line_start.
10606 (reseat_at_next_visible_line_start): Likewise.
10607 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10608 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10609 (compute_face_in_buffer): Renamed from
10610 compute_face_at_iterator_position.
10611 (compute_face_in_string): Renamed from
10612 compute_face_at_iterator_string_position.
10613 (get_space_width): Renamed from get_iterator_space_width.
10614 (next_overlay_string): Renamed from
10615 set_iterator_to_next_overlay_string.
10616 (get_overlay_strings): Renamed from
10617 get_overlay_strings_at_iterator_position.
10618 (restore_overlay_strings): Renamed from
10619 setup_overlay_strings_from_glyph_pos.
10620 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10621 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10622 (init_to_row_start): Renamed from init_iterator_to_row_start.
10623 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10624
10625 * xterm.c: Merge with 20.2.97.
10626 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10627
10628 * dispextern.h (struct glyph): Replace text_pos position with
10629 simple charpos.
10630
10631 * xdisp.c (this_line_start_pos): Use struct text_pos.
10632 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10633 (enum move_it_result): Renamed from move_iterator_result.
10634 (string_pos_nchars_ahead): Compute text_pos in a string from a
10635 known text_pos plus a character delta.
10636 (string_pos): Compute text_pos in string from charpos.
10637 (c_string_pos): Likewise for a C string.
10638 (number_of_chars): Return number of characters in a possibly
10639 multi-byte C string.
10640 (check_it): Renamed from check_iterator. Check that charpos and
10641 bytepos are in sync.
10642 (push_it): Renamed from save_iterator_settings.
10643 (pop_it): Renamed from restore_iterator_settings.
10644 (move_it_.*): Renamed from move_iterator_.*.
10645 (charset_at_position): Take charpos/bytepos into account.
10646 (back_to_previous_line_start): Set iterator to previous line start.
10647 (forward_to_next_line_start): Set iterator to next line start.
427ec082 10648 (back_to_previous_visible_line_start): Renamed from
26901792
DL
10649 move_iterator_previous_visible_line_start.
10650 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10651 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10652 Handle charpos/bytepos.
10653 (compute_face_at_iterator_position): Handle charpos/bytepos.
10654 (compute_face_at_iterator_string_position): Likewise.
10655 (get_iterator_space_width): Likewise.
10656 (load_overlay_strings): Likewise.
10657 (get_overlay_strings_at_iterator_position): Likewise.
10658 (reseat_iterator): Take a text_pos position argument.
10659 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10660 bytepos.
10661 (init_iterator): Take additional bytepos parameter.
10662 (reseat_iterator_to_string): Handle charpos/bytepos.
10663 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10664 (next_element_from_string): Handle charpos/bytepos.
10665 (next_element_from_c_string): Likewise.
10666 (fill_iterator_from_glyph_property): Likewise.
10667 (next_element_from_buffer): Likewise.
10668 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10669 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10670 (move_it_to): Likewise.
10671 (move_it_vertically_backward): Likewise.
10672 (move_it_vertically): Likewise.
10673 (move_it_by_lines): Likewise.
10674 (hscroll_window_tree): Likewise.
10675 (redisplay_internal): Likewise.
10676 (set_cursor_from_row): Likewise.
10677 (redisplay_window): Likewise.
10678 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10679 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10680 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10681 (try_window_id): Handle charpos/bytepos.
10682 (Ftrace_redisplay_toggle): Return Qnil.
10683 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10684 (insert_left_trunc_glyphs): Likewise.
10685
10686 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10687 do a real merge).
10688 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10689 (increment_glyph_row_buffer_positions): Ditto.
10690 (copy_glyph_row_contents): Ditto.
10691 (check_matrix_invariants): Add additional checks for charpos/
10692 bytepos consistency.
10693 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 10694 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
10695 `direction-reversed' in #if 0.
10696
10697 * xterm.h: Merge with 20.2.97.
427ec082 10698
26901792
DL
10699 * frame.h: Merge with 20.2.97.
10700
10701 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10702
10703 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10704 start.
10705 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10706 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10707 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10708 (struct it): Various members renamed from .*pos to .*charpos.
10709 (IT_CHARPOS): Access current buffer character position of an
10710 iterator.
10711 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10712 (IT_STRING_CHARPOS): Access current string character position of
10713 an iterator.
10714 (IT_STRING_BYTEPOS): Access current string byte position of
10715 an iterator.
10716 (globally): Add function prototypes from 20.2.97.
10717
10718 * everywhere: Use P_ instead of PROTO for function prototypes
10719 because everyone else seems to use P_.
10720
10721 * dispextern.h (struct text_pos): Structure describing a charpos/
10722 bytepos position in text.
10723 (BYTEPOS): Access the byte position part of a text_pos.
10724 (CHARPOS): Likewise for the character position.
10725 (SET_TEXT_POS): Set a text_pos from a character and byte position.
10726 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
10727 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
10728 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
10729 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
10730 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
10731 for buffer and string positions.
10732 (struct glyph): Use text_pos.
10733 (struct it): Renamed from display_iterator. Use text_pos.
10734
107351998-07-23 Gerd Moellmann <gerd@gnu.org>
10736
10737 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
10738 pixmap.
10739
107401998-07-21 Gerd Moellmann <gerd@gnu.org>
10741
10742 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
10743 * xterm.c (x_draw_row_bitmaps): Use it.
10744 * dispnew.c (row_equal_p): Ditto.
10745 (update_window_line): Ditto.
10746
10747 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
10748 flag of images.
10749
10750 * dispextern.h (struct image): Removed member loading_failed_p.
10751 It's probably better to have the chance to try to load an image
10752 again.
10753
107541998-07-20 Gerd Moellmann <gerd@gnu.org>
10755
10756 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
10757 at ZV if `indicate-zv-lines' is non-nil.
10758 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
10759
10760 * dispnew.c (row_equal_p): Compare displays_text_p and
10761 ends_at_zv_p flags of rows.
10762 (update_window_line): Ditto.
10763
10764 * buffer.h (struct buffer): New member indicate_zv_lines.
10765
10766 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
10767 (init_buffer_once): New variable `default-indicate-zv-lines'.
10768 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
10769
10770 * xdisp.c (redisplay_window): Don't try moving the cursor
10771 if current glyph row w->last_cursor.vpos isn't enabled.
10772
10773 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
10774
10775 * window.c (Fset_window_vscroll): Allow only negative scroll
10776 values. Others don't seem to make sense, and this way it's easy
10777 to restore a vscroll of zero.
10778
10779 * xterm.c (x_inverted_image_mask): Check that pixmap could be
10780 allocated.
10781 (x_draw_image_glyph_string_background): Don't clip if pixmap
10782 could not be created.
10783
10784 * xfns.c (xbm_load_image_from_file): Check that pixmap could
10785 be created.
10786 (xbm_load): Ditto.
10787 (gs_load): Ditto.
10788
10789 * xterm.c (x_get_glyph_overhangs): Take image and stretch
10790 glyphs into account.
10791
10792 * xfaces.c (realize_default_face): Don't set font family of
10793 the default face from the fontset alias name for `fontset-startup'.
10794
10795 * xfns.c (gs_load): Pass frame's pixel foreground and background
10796 color to the Lisp loader.
10797
107981998-07-19 Gerd Moellmann <gerd@gnu.org>
10799
10800 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
10801 libtiff34.
10802
10803 * configure.in (--with-tiff, HAVE_TIFF): Added.
10804
10805 * config.in (HAVE_TIFF): Added.
10806
10807 * Makefile.in (LIBTIFF): Added.
10808
10809 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
10810
10811 * Makefile.in (LIBJPEG): Added.
10812
10813 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
10814 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
10815 jpeglib.h.
10816
427ec082 10817 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
10818 where the library is installed in /usr/local/lib, e.g. FreeBSD,
10819 configure must be run with `--x-includes=/usr/X11R6/include:
10820 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
10821
108221998-07-18 Gerd Moellmann <gerd@gnu.org>
10823
10824 * config.in (HAVE_JPEG): Added.
10825
10826 * xfns.c (ct_init): Initialize color table used to map RGB colors
10827 from images to X pixel colors.
10828 (ct_free): Free color table.
10829 (ct_lookup): Look an RGB color up.
10830 (ct_allocated_colors): Get vector of allocated colors.
427ec082 10831 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
10832 image specification.
10833 (pbm_scan_number): Scan a decimal ASCII number from a file.
10834 (pbm_load): Load a PPM image.
10835
10836 * window.c (Fset_window_vscroll): Adjust glyph matrix if
10837 necessary. Take canonical character units as parameter.
10838 (Fwindow_vscroll): Return canonical character units.
10839
10840 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
10841 w->dy to display height for which glyph rows must be allocated.
10842
108431998-07-17 Gerd Moellmann <gerd@gnu.org>
10844
10845 * xfaces.c (face_at_string_position): Merge in region face
10846 so that it won't overwrite the font in the region.
10847 (face_at_buffer_position): Ditto.
10848 (realize_basic_faces): Don't realize region face.
10849
10850 * dispextern.h (enum face_id): REGION_FACE_ID removed.
10851
10852 * xterm.c (x_set_glyph_string_background_width): Don't let
10853 cursor face extend to end of line.
10854
10855 * xdisp.c (append_space): If adding space of default face,
10856 make sure glyph ist produced with right face.
10857
10858 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
10859 background color of a glyph string.
10860 (x_draw_glyph_string_background): Call it.
10861 (x_draw_glyph_string_bg_rect): Ditto.
10862 (x_draw_stretch_glyph_string): Ditto.
10863
108641998-07-15 Gerd Moellmann <gerd@gnu.org>
10865
10866 * xdisp.c (init_iterator): Initialize it->current_y to the
10867 window's vscroll w->dy.
10868
10869 * window.c (Fwindow_vscroll): Return number of pixels window
10870 is vscrolled smoothly.
10871 (Fset_window_vscroll): Set the number.
10872
10873 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
10874 to_pos in truncated part of a line.
10875
108761998-07-14 Gerd Moellmann <gerd@gnu.org>
10877
10878 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
10879 doesn't fit on the line, truncate it, despite truncate_lines nil.
10880 (display_line): Ditto.
10881
10882 * xfns.c: Experimental support for Ghostscript images.
10883
10884 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
10885 (XTread_socket): React on events from Ghostscript.
10886 (expose_frame): If width or height are zero, redraw entire frame.
10887 (XTread_socket): Call expose_frame after receiving event from
10888 Ghostscript.
10889
10890 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
10891 for Ghostscript support.
10892
10893 * xdisp.c (redisplay_internal): Return quickly if called
10894 recursively.
10895
10896 * alloc.c (NSTATICS): Increased to 1024.
10897
108981998-07-08 Gerd Moellmann <gerd@gnu.org>
10899
10900 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
10901 iterator's glyph row.
10902 (x_produce_stretch_glyph): Call it.
10903 (x_produce_glyphs): Handle `space-width' property; call
10904 x_append_stretch_glyph.
10905
10906 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
10907 property.
10908 (get_iterator_space_width): Determine value of `space-width'
10909 property at iterator's position.
10910 (reseat_iterator): Call it.
10911 (next_element_from_string): Ditto.
10912 (next_element_from_buffer): Ditto.
10913 (init_iterator): Initialize space_width of iterator.
10914 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
10915 moved, but cursor blinks.
10916 (redisplay_internal): Set w->last_cursor_off_p after update.
10917
10918 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
10919 (struct display_iterator): Add new member space_width.
10920
10921 * window.h (struct window): Add last_cursor_off_p.
10922
109231998-07-07 Gerd Moellmann <gerd@gnu.org>
10924
10925 * Saved.
10926
10927 * window.c (Fpos_visible_in_window_p): Case window not up to
10928 date---return nil if iterator hasn't reached position.
10929
109301998-07-06 Gerd Moellmann <gerd@gnu.org>
10931
10932 * xdisp.c (text_outside_line_unchanged_p): Fix case that
10933 overlays have changed.
10934 (redisplay_window): Case cursor movement. Don't try it if
10935 last_cursor.vpos is out of range.
10936
10937 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
10938 way, the display optimization for the line containing the cursor
10939 is used more frequently, esp. when we have a blinking cursor.
10940 (display_line): Don't set this_line_.* variables.
10941
10942 * xterm.c (x_redraw_cursor): Removed.
10943 (x_display_and_set_cursor): Set cursor type depending on
10944 cursor_off_p flag of window.
10945
10946 * dispnew.c (redraw_cursor_hook): Removed.
10947 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
10948 member of the selected window.
10949
10950 * xfaces.c (Fface_font): Added for compatibility with 20.2.
10951
10952 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
10953 Return glyph area under x/y.
10954 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
10955
10956 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
10957 after redisplaying.
10958
109591998-07-05 Gerd Moellmann <gerd@gnu.org>
10960
10961 * xdisp.c (text_outside_line_unchanged_p): Test if changes
10962 are all outside of a line of text.
10963 (redisplay_internal): Use it.
10964
109651998-06-30 Gerd Moellmann <gerd@gnu.org>
10966
10967 * xdisp.c (next_element_from_buffer): After skipping over
10968 invisible text, look for the `glyph' property.
10969 (set_iterator_stop_pos): Ignore check positions in front
10970 of an iterator's current position.
10971
10972 * xterm.c (show_mouse_face): Don't act on rows that don't exist
10973 anymore or which are marked as not having valid contents.
10974
10975 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
10976 realized faces if new attribute value is equal to old value.
10977
109781998-06-29 Gerd Moellmann <gerd@gnu.org>
10979
10980 * xfaces.c (Finternal_make_lisp_face): Increment
10981 lface_id_to_name_size when lface_id_to_name is reallocated.
10982
109831998-06-27 Gerd Moellmann <gerd@gnu.org>
10984
10985 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
10986 as minimum of endpos and overlay_pos.
10987 (load_overlay_strings): Set next_overlay_pos of iterator to
10988 -1 if we don't have to check for more overlay strings.
10989
109901998-05-09 Gerd Moellmann <gerd@gnu.org>
10991
10992 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
10993 do anything if iterator is at ZV because scan_buffer doesn't
10994 work otherwise.
10995
10996 * xterm.c (x_encode_char): Inline it.
10997 (x_get_char_font_and_encoding): Simplified.
10998 (x_per_char_metric): Inline it.
10999
11000 * xterm.c (x_draw_glyph_string_relief): Use clipping.
11001
11002 * xdisp.c (get_next_display_element): Check for end of relief
11003 face moved here from next_element_from_buffer.
11004
11005 * xterm.c (x_produce_image_glyph): Add relief thickness.
11006 (x_produce_stretch_glyph): Ditto.
11007
110081998-05-08 Gerd Moellmann <gerd@gnu.org>
11009
11010 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
11011 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
11012
11013 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
11014 from a glyph property.
11015 (x_produce_glyphs): Use it.
11016
11017 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
11018
427ec082 11019 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
11020 in text area.
11021 (x_produce_glyphs): Ditto.
11022
427ec082 11023 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
11024 marginal areas.
11025
427ec082 11026 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 11027 background of an image glyph string.
427ec082 11028 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
11029 the background of a glyph string.
11030 (x_draw_image_glyph_string_foreground): Draw the foreground of
11031 an image glyph string.
11032 (x_inverted_image_mask): Return the inverted mask of an image.
11033
11034 * xfns.c (x_draw_image): Removed.
11035
11036 * dispextern.h (struct image_type): Remove drawing function.
11037
11038 * xfaces.c (load_face_colors): Swap colors if face is inverse.
11039
11040 * xdisp.c (get_next_display_element): In marginal areas, translate
11041 newlines, tabs, etc. like normal control characters.
11042
11043 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
11044 and color.
11045 (free_realized_faces): Set frame garbaged.
11046
11047 * xfaces.c (syms_of_xfaces): Add defsubr for
11048 internal-lisp-face-attribute-values.
11049
110501998-05-07 Gerd Moellmann <gerd@gnu.org>
11051
11052 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
11053 full.
11054 (x_produce_image_glyph): Set IT->nglyphs to 1.
11055 (x_draw_image_glyph_string): Use inverted mask to draw background.
11056
11057 * dispextern.h (struct image_type): Additional clipping rect
11058 parameters for drawing functions.
11059
427ec082 11060 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
11061 a glyph string.
11062 (x_draw_image_glyph_string): Use it and pass the rect to the
11063 image drawing function.
11064
11065 * xdisp.c (fill_iterator_from_glyph_property): Use position of
11066 first character with `glyph' property as image position. Set
11067 iterator back to that position as long as the image hasn't been
11068 consumed with set_iterator_to_next.
11069 (set_cursor_from_row): Accept when glyph with given position is
11070 not found in the row. Set cursor x to end of line in that case,
11071 so that we can hscroll.
11072 (redisplay_internal): Correct computation of delta by which
11073 positions have changed in redisplay optimization for cursor
11074 row of selected window.
11075
11076 * xdisp.c (display_line): Remove start_pos.
427ec082 11077 (display_line): Fix bug preventing display optimization for
26901792
DL
11078 cursor line of selected window.
11079 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
11080 instead.
11081
11082 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
11083 (update_text_area): Take glyph pixel width into account
11084 when trying to find a resync point.
11085 (row_equal_p): Compare glyphs in all areas.
11086
110871998-05-06 Gerd Moellmann <gerd@gnu.org>
11088
11089 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
11090
11091 * dispextern.h (struct glyph_row): Use unsigned hash value.
11092
11093 * xdisp.c (display_line): Simplified and made faster by setting
11094 the cursor with set_cursor_from_row.
11095 (set_cursor_from_row): Handle rows of desired matrix.
11096
110971998-05-05 Gerd Moellmann <gerd@gnu.org>
11098
11099 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
11100 with type != CHAR_GLYPH.
11101 (fill_iterator_from_glyph_property): Return void. Set
11102 method to next_element_from_image.
11103 (next_element_from_image): Dummy function for delivering a
11104 single image id.
11105 (set_iterator_to_next): Add method next_element_from_image.
11106 (redisplay_window): When recentering, and cursor vpos is -1
11107 after display, assume middle of window is in first line displayed
11108 in window, and display again.
427ec082 11109 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11110 the position of the first character having the glyph property.
11111
11112 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11113 * xfns.c (x_draw_image): Use it.
11114 * xterm.c (x_produce_image_glyph): Use it.
11115
11116 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11117
11118 * Makefile.in: Extraneous #define of LIBXPM removed.
11119
11120 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11121 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11122 stretch glyph.
11123 (x_compute_glyph_string_overhangs): Compute overhangs only
11124 for text glyph strings.
11125 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11126 (x_draw_glyph_string): Call it.
11127
11128 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11129 (struct glyph): Add sub-structure for stretchable glyphs.
11130 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11131
11132 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11133 #ifdef HAVE_FACES.
11134
11135 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11136
11137 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11138 setup_iterator_from_glyph_property. Don't do it for terminal
11139 frames.
11140
11141 * xterm.c (x_produce_image_glyph): Produce glyph for image
11142 that can't be loaded.
11143
11144 * xfns.c (lookup_image): If image can't be loaded, set its
11145 width and height so that we can draw a rectangle.
11146 (x_draw_image): Draw a rectangle for images that don't have
11147 a pixmap.
11148 (make_image): Set hash value.
11149 (image_spec_equal_p): Use image_spec_value.
11150
11151 * xterm.c (expose_frame): Don't try to redraw if basic faces
11152 haven't benn realized yet.
427ec082 11153 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11154 is not as tall as row.
11155
111561998-05-04 Gerd Moellmann <gerd@gnu.org>
11157
11158 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11159 (LIBX)[HAVE_X11]: Add LIBXPM.
11160
11161 * xfns.c (xpm_image_p): Implementation of image type functions
11162 for XPM.
11163 (xpm_load): Ditto.
11164
11165 * dispextern.h (struct image): Add mask pixmap for XPM.
11166
11167 * xfns.c (x_draw_image): Handle images with masks.
11168
11169 * configure.in: --with-xpm added. Code detecting -lXpm added.
11170
11171 * config.in: Add HAVE_XPM.
11172
11173 * xfns.c (xbm_draw): Removed.
11174 (x_draw_image): Default implementation for drawing images.
11175 (xbm_keyword_index): Remove XBM_DEPTH.
11176 (xbm_format): Remove `:depth'.
11177 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11178 (xbm_load_image_from_file): Added for the same reason.
26901792 11179
427ec082 11180 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11181 glyph string.
11182 (x_draw_image_glyph_string): Pass ybase to image draw function.
11183
11184 * xfns.c (make_image): Set default baseline.
11185
11186 * xterm.c (x_produce_image_glyph): Compute ascent of image
11187 from its height and baseline percentage.
11188
11189 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11190 (xbm_format): Add description for `:baseline'.
11191 (xbm_image_spec_from_file): Add keywords from original spec to
11192 result.
11193 (xbm_load): Set baseline of image.
11194 (xbm_image_p): Check range for baseline.
11195
11196 * dispextern.h (struct image): Add member baseline.
11197
11198 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11199
11200 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11201
11202 * xdisp.c (get_next_display_element): Do character translations
11203 only if delivering characters.
11204
112051998-05-03 Gerd Moellmann <gerd@gnu.org>
11206
427ec082 11207 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11208 DISP_CHARACTER.
11209
11210 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11211 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11212
112131998-05-02 Gerd Moellmann <gerd@gnu.org>
11214
11215 * xfns.c (prepare_image_for_display): Set image timestamp.
11216 (clear_image_cache): Clear images if image's timestamp +
11217 Vimage_eviction_seconds is > now.
11218 (syms_of_xfns): New variables image-eviction-seconds, and
11219 image-types.
11220 (add_image_format): Add to image-types.
11221 (xbm_load): Support new image spec format.
11222 (x_alloc_image_color): Allocate a color for an image.
11223
11224 * dispextern.h (struct image): Add timestamp.
11225
11226 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11227 vectors of bool-vectors.
11228 (xbm_lisp_object_from_file): Build new format image spec.
11229
112301998-05-01 Gerd Moellmann <gerd@gnu.org>
11231
11232 * xfaces.c (init_frame_faces): Initialize image cache.
11233 (free_frame_faces): Free it.
11234
11235 * xterm.c (x_delete_display): Don't free image cache.
11236
11237 * emacs.c (main): Call init_xfns.
11238
112391998-04-30 Gerd Moellmann <gerd@gnu.org>
11240
11241 * alloc.c (mark_object): Mark objects in image cache.
11242
427ec082 11243 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11244 widget_store_internal_border_width.
11245
11246 * widget.c (widget_store_internal_border): Return void.
11247
11248 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11249 void.
11250 (init_x_parm_symbols): Return void.
11251 (x_report_frame_params): Ditto.
11252 (x_set_border_pixel): Ditto.
11253 (syms_of_xfns): Ditto.
11254 (x_destroy_all_bitmaps): Use xfree instead of free.
11255
11256 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11257
11258 * xterm.c (x_term_init): Initialize image_cache of display info.
11259 (x_delete_display): Free image cache.
11260
11261 * xterm.h (struct x_display_info): Add image_cache.
11262
11263 * xfns.c (make_image_cache): Allocate a new image cache.
11264 (free_image_cache): Free an image cache.
11265 (make_image): Allocate an image.
11266 (free_image): Free an image.
11267
11268 * dispextern.h (struct image): Structure describing an image.
11269 (struct image_cache): Structure describing an image cache.
11270
112711998-04-29 Gerd Moellmann <gerd@gnu.org>
11272
11273 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11274 non-zero if iterator is filled with something to return.
11275 (next_element_from_buffer): Immediately return if
11276 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11277 (next_element_from_string): Likewise.
11278
11279 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11280
11281 * dispextern.h (struct glyph): Add pixmap_id.
11282 (display_element_type): Add DISP_PIXMAP.
11283
11284 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11285 malloc/free.
11286
11287 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11288 (clear_face_cache): Call it.
11289
11290 * xterm.c (x_query_font): Don't look at empty font table slots.
11291 (x_compute_min_glyph_bounds): Likewise.
11292 (x_term_init): Initialize font_table to null.
11293 (x_load_font): Change allocation of font_info structures so
11294 that it is possible to free fonts.
11295
427ec082 11296 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11297 Only free fonts from filled font table entries.
11298
11299 * xfaces.c (best_matching_font): Support use of scalable fonts.
11300 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11301
11302 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11303 and resy.
11304 * xterm.c (x_term_init): Compute resx and resy.
11305
11306 * xfaces.c (split_font_name): Don't reject scalable fonts.
11307
427ec082 11308 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11309 in #if 0.
11310
11311 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11312 point size cannot be determined.
11313
11314 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11315 width over all fonts on a frame.
11316 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11317 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11318 macros.
11319
11320 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11321 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11322 (x_load_font): Use x_compute_min_char_bounds.
11323
11324 * xterm.h (struct x_display_info): New members smallest_char_width
11325 and smallest_font_height.
11326
113271998-04-28 Gerd Moellmann <gerd@gnu.org>
11328
11329 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11330 the same name if GC of face is zero.
11331
11332 * dispextern.h (struct face): Member non_ascii_gc removed.
11333
11334 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11335 for characters < 0177 in default face. Prepare face for
26901792
DL
11336 display before returning it.
11337 (x_produce_glyphs): Use it->charset.
11338 (x_get_char_font_and_encoding): Simplified.
11339 (x_encode_char): Remove parameter `font'.
11340
11341 * xfaces.c (choose_face_font): If registry from charset symbol
11342 doesn't contain a `-', make it a pattern by appending "*-*".
11343
11344 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11345 glyph_check_pos computation to character boundary.
11346
113471998-04-27 Gerd Moellmann <gerd@gnu.org>
11348
11349 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11350
11351 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11352 ASCII face for a given Lisp face id.
11353
11354 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11355 account.
427ec082 11356 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11357 new position is < original position.
11358 (check_iterator_glyph_property): Handle glyph property in strings.
11359 (next_element_from_string): Call above function.
11360 (next_element_from_display_vector): Handle faces in glyphs.
11361 (get_next_display_element): Set face_id of glyphs for
11362 control chars to zero.
11363
11364 * Makefile.in (term.o): Add dependency on dispextern.h.
11365
11366 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11367 (display_line): Handle marginal areas.
11368 (move_iterator_in_display_line_to): Likewise.
11369
11370 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11371
11372 * xfaces.c (face_at_buffer_position): Don't merge with nil
11373 text property.
11374 (face_at_string_position): Ditto.
11375
11376 * dispextern.h (struct display_iterator): Use a stack of saved
11377 values instead of saving check positions etc. individually.
11378
11379 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11380 maybe pop the iterator's stack.
11381 (save_iterator_settings): Push a value on iterator's stack.
11382 (get_overlay_strings_at_iterator_position): Use it.
11383 (restore_iterator_settings): Pop the stack.
11384 (set_iterator_to_next_overlay_string): Use it.
11385
11386 * xfaces.c (try_font_list): Use alternative font families.
11387
113881998-04-26 Gerd Moellmann <gerd@gnu.org>
11389
11390 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11391 font selection matches fonts.
11392 (Fface_font_sort_order): Return the font sort order.
11393 (best_matching_font): Find best matching font based on sort order.
11394 (cmp_font_names): Sort by given sort order.
11395
11396 * dispextern.h (struct display_iterator): New member faces_p.
11397 * xdisp.c (init_iterator): Initialize it->faces_p.
11398 (compute_face_at_iterator_string_position): Use it.
11399 (compute_face_at_iterator_position): Use it.
11400 (init_iterator): Use it.
11401 (display_mode_line): Ditto.
11402
11403 * xdisp.c (get_next_display_element): Put code choosing a face
11404 when the charset changes in #ifdef HAVE_FACES.
11405
427ec082 11406 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11407 lookup_face_for_charset.
11408
11409 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11410 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11411
114121998-04-25 Gerd Moellmann <gerd@gnu.org>
11413
11414 * xfaces.c (best_matching_font): Return the name of the best
11415 matching font in an array of font_name structures.
11416 (choose_face_font): Use it.
11417 (choose_face_fontset_font): Use it.
11418 (find_best_weight_font): If final font found has same weight as
11419 the font we started with, return the original font because it is a
11420 better match for the resolution of the display.
11421 (find_best_slant_font): Likewise.
11422 (merge_face_vector_with_property): Check more invalid attribute
11423 values.
11424 (lface_suitable_for_charset_p): Replaced by a macro with the same
11425 name in upper-case.
11426
114271998-04-24 Gerd Moellmann <gerd@gnu.org>
11428
11429 * dispextern.h (struct face): Member
11430 fontset_chosen_for_realization_p removed.
11431
11432 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11433 end of the collision list, so that we find more specific faces
11434 first.
11435 (lookup_face_for_charset): Look up a new face if face->fontset >=
11436 0, and charset != CHARSET_COMPOSITION.
11437
11438 * xfaces.c (split_font_name): Return zero if point size of font
11439 couldn't be computed.
11440 (realize_default_face): Use ASCII font of a fontset to determine
11441 font-related attributes of the default face.
11442 (face_fontset): Return fontset id for face family.
11443 (font_list): Additional parameter font_pattern. If non-nil,
11444 return fonts matching that pattern.
11445
114461998-04-23 Gerd Moellmann <gerd@gnu.org>
11447
11448 * xfaces.c (choose_face_fontset): If new fontset cannot be
11449 constructed, or fontset name cannot be split, return the id of the
11450 standard fontset.
11451
11452 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11453 When Emacs starts, it may be called for the initial frame which
11454 isn't an X frame.
11455
11456 * dispextern.h (struct face): New members foreground_defaulted_p,
11457 background_defaulted_p.
11458 (struct face): Members `mask' and `cache' removed.
11459
11460 * xfaces.c (load_color): Set them.
11461 (free_face_colors): Check them.
427ec082 11462 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11463 font unknown.
11464
11465 * xfaces.c (free_font): Removed.
11466 (load_face_font_or_fontset): Renamed from load_font.
11467 (load_face_font_or_fontset): Use message2 instead of signalling.
11468 (load_color): Likewise.
11469 (load_pixmap): Likewise.
11470
11471 * xterm.h (struct x_display_info): Add screen_dpi.
11472 * xterm.c (x_term_init): Initialize it.
11473 * xfaces.c (xlfd_point_size): Use it.
11474 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11475 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11476 similar to that of the frame appear first in the result.
11477
11478 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11479 is set for the face to cache, add it to the end of the collision
11480 list.
11481 (try_font_list): If fonts for given family and registry cannot
11482 be found, first try to keep the registry, and choose a different
11483 family.
11484 (choose_face_font): Allow nfonts == 0.
11485 (try_font_list): Give up if no font matches given registry.
11486
114871998-04-22 Gerd Moellmann <gerd@gnu.org>
11488
11489 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11490 font info id of the face.
11491
11492 * xfaces.c (load_font): Set font_info_id.
11493 (realize_face): Ditto.
11494
11495 * dispextern.h (struct face): Change member font_info to
11496 font_info_id.
11497
11498 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11499 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11500
11501 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11502 isn't ASCII, get the ASCII face before adding a space.
11503 (append_space): Likewise.
11504 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11505 to -1 so that it will compute the right face for the truncation
11506 glyphs.
11507
11508 * xfaces.c (realize_face): Set
11509 face->fontset_chosen_for_realization_p.
11510 (lookup_face_for_charset): If fontset wasn't specified originally
11511 and new charset != CHARSET_COMPOSITION, get a new face for that
11512 charset.
11513
11514 * dispextern.h (struct face): New member
11515 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11516 realize_face has chosen a fontset to display composite characters
11517 for a Lisp face not specifying a fontset.
11518
11519 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11520 face and line already filled here. Don't do anything if current
11521 face hasn't a relief or has a background equal to the frame
11522 background.
11523
11524 * xfaces.c (split_font_name): Additional parameter numeric_p.
11525 Don't compute numeric values if it is non-zero.
11526 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11527 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11528 font whose name cannot be split into fields.
11529
115301998-04-21 Gerd Moellmann <gerd@gnu.org>
11531
427ec082 11532 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11533 possibly using less restrictive patterns.
11534 (choose_face_font): Use it.
11535
11536 * xterm.c (x_get_char_font_and_encoding): For charset !=
11537 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11538
11539 * dispextern.h (struct face): New member font_info.
11540
11541 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11542 specifying a fontset as well as those not having a fontset.
11543 (free_font): Make it empty.
11544 (realize_face): Use changed load_font.
11545
11546 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11547 fit for charset, get the right one.
11548
11549 * xfaces.c (load_font): Take frame and name parameter, return
11550 font.
11551 (free_font): Likewise.
11552 (split_font_name): Compute numeric values for height, swidth etc.
11553 (cmp_font_names): Use them.
11554 (find_best_width_font): Ditto.
11555 (find_best_height_font): Ditto.
11556 (find_best_weight_font): Ditto.
11557 (find_best_slant_font): Ditto.
11558 (lface_hash): Add weight, slant, swidth and relief to hash value.
11559 (lface_equal_p): Make it faster.
11560 (lface_from_symbol): Use assq_no_quit.
11561 (Fnote_default_face_changed): Removed.
11562 (cmp_font_names): Use strcmp instead of xstricmp.
11563 (face_charset_registries): Removed.
11564
115651998-04-20 Gerd Moellmann <gerd@gnu.org>
11566
11567 * frame.h (CHECK_FRAME): Give this macro a statement form.
11568 (CHECK_LIVE_FRAME): Ditto.
11569
11570 * xfaces.c (find_best_width_font): Find the best matching font
11571 for a given width.
11572 (find_best_height_font): Likewise for height.
11573 (find_best_weight_font): Likewise for weight.
11574 (find_best_slant_font): Likewise for slant.
11575 (choose_face_font): Use them.
11576 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11577 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11578 global face attributes.
11579
11580 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11581 Lisp face attributes.
11582
115831998-04-19 Gerd Moellmann <gerd@gnu.org>
11584
11585 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11586 and :italic for compatibility.
11587 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11588 :bold and :italic. Handle boolean resource values for
26901792
DL
11589 :underline and :italic.
11590
11591 * xfns.c (display_x_get_resource): Make it externally visible.
11592
11593 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11594 If that frame is non-null, return the frame-local face.
11595 (Finternal_make_lisp_face): Additional frame argument.
11596 (lface_attributes): Get face attributes from global and frame-local
11597 definitions.
11598 (Finternal_lisp_face_equal_p): Additional frame argument.
11599 (merge_lisp_face_vector_with_property): Ditto.
11600 (Frealize_basic_faces): Removed.
11601 (Finternal_get_lisp_face_attribute): Additional frame argument.
11602 (Finternal_lisp_face_p): Ditto.
11603 (load_color) [MSDOS]: Removed because it isn't clear how
11604 to do this for MS-DOS.
11605
11606 * xfaces.c (lface_from_symbol): Get global face definition
11607 from face-global-alist.
11608
11609 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11610 as values for :underline and :inverse-video.
11611 (Finternal_set_lisp_face_attribute): Allow nil values.
11612
116131998-04-17 Gerd Moellmann <gerd@gnu.org>
11614
11615 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11616
11617 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11618 (Finternal_make_lisp_face): Add new face to Vall_faces.
11619
11620 * xdisp.c (echo_area_display): Remove code recomputing faces.
11621 (redisplay_internal): Ditto.
11622 (init_iterator): Do it here.
11623
11624 * xfaces.c (choose_face_font): Check that swidth doesn't change
11625 for subusequent attributes.
11626 (xlfd_point_size): Return int.
11627
11628 * xdisp.c (redisplay_internal, echo_area-display): If realized
11629 faces have been cleared, call recompute_basic_faces.
11630
11631 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11632 face_attributes_changed_p.
427ec082 11633 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
11634 all frames.
11635 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11636
11637 * xdisp.c (redisplay_internal): If face attributes have been
11638 changed since the last redisplay, recompute basic faces.
11639 (echo_area_display): Ditto.
11640
11641 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11642
11643 * xfaces.c (min_char_bounds): If face cache not yet present,
11644 don't try to get font dimensions from faces.
11645
11646 * xterm.c (x_frame_mode_line_height): If face cache not present
11647 set, return default height.
11648
11649 * alloc.c (mark_face_cache): Check for null faces. Correct
11650 index bug.
11651
11652 * dispextern.h (struct face): Renamed from struct rface. Member
11653 underline renamed underline_p. Make it a bit-field.
11654
11655 * xfaces.c (init_frame_faces): Allocate face cache.
11656 (free_frame_faces): Free face cache.
11657 (recompute_basic_faces): Realize basic faces only if face cache is
11658 allocated, i.e. after init_frame_faces has been called.
11659
11660 * frame.c (make_frame): Initialze face cache with null.
11661
11662 * xfaces.c (same_size_fonts): Removed.
11663
427ec082 11664 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
11665 s->gc != 0.
11666 (x_set_mouse_face_gc): Ditto.
11667 (x_set_mode_line_face_gc): Ditto.
11668
427ec082
SS
11669 * xfaces.c (realize_default_face): Return int. Value is
11670 zero if frame params don't contain enough information to
26901792
DL
11671 realize the default face.
11672 (realize_basic_faces): Ditto.
11673 (init_frame_faces): Realize basic faces.
11674
11675 * xfns.c (x_set_font): First store real font name in frame
11676 parameters, then call recompute_basic_faces.
11677
11678 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11679
116801998-04-16 Gerd Moellmann <gerd@gnu.org>
11681
11682 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11683
11684 * xfns.c (Fx_face_fixed_p): Removed.
11685 (Fx_list_fonts): Moved to xfaces.c.
11686
11687 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11688 face_at_buffer_position. Parameter charset removed; always
11689 compute face for CHARSET_ASCII.
11690 (face_at_string_position): Renamed from
11691 compute_face_at_string_pos. Parameter charset removed; always
11692 compute for CHARSET_ASCII.
427ec082 11693 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
11694 face_cache.
11695 (lookup_face): Ditto.
11696 (compute_char_face): Renamed from compute_glyph_face.
11697
11698 * xdisp.c (init_iterator): Initialize charset member.
11699 (reseat_iterator_to_string): Ditto.
11700 (get_charset_at_buffer_position): Determine charset at
11701 buffer position in current_buffer.
11702 (reseat_iterator): Call above function.
11703 (compute_face_at_iterator_position): Call
11704 compute_face_at_buffer_pos.
11705 (compute_face_at_iterator_string_position): Call
11706 compute_face_at_string_pos.
11707 (get_face_from_id): Removed.
11708 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11709 Call get_charset_at_buffer_position.
11710 (reseat_iterator): Determine face if charset at pos differs
11711 from iterator's charset.
11712 (reseat_iterator_to_glyph_pos): Removed.
11713
11714 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11715 Determine charset from buffer position.
11716 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11717 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11718
11719 * dispextern.h (struct display_iterator): Add member charset.
11720
117211998-04-15 Gerd Moellmann <gerd@gnu.org>
11722
11723 * xfaces.c (compute_char_face): Removed.
11724
11725 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
11726 with new parameter list.
11727
11728 * xfaces.c (region_face): Removed.
11729 (allocate_face): Removed.
11730 (copy_face): Ditto.
11731 (face_eql): Removed.
11732 (intern_face): Removed.
11733 (clear_face_cache): Removed.
11734 (load_font): Ditto.
11735 (unload_font): Ditto.
11736 (load_color): Ditto.
11737 (unload_color): Ditto.
11738 (new_computed_face): Ditto.
11739 (intern_computed_face): Ditto.
11740 (ensure_face_ready): Ditto.
11741 (merge_faces): Ditto.
11742 (compute_base_face): Ditto.
11743 (merge_face_list): Ditto.
11744 (Fmake_face_internal): Removed.
11745 (Fset_face_attribute_internal): Ditto.
11746 (face_name_id_number): Removed.
11747 (Fframe_face_alist): Ditto.
11748 (Fset_frame_face_alist): Ditto.
11749 (Finternal_next_face_id): Ditto.
11750
11751 * xterm.h (struct x_output): Remove computed_faces, and
11752 param_faces. Remove macros accessing them.
11753
11754 * xfaces.c: Entirely new face implementation added.
11755
117561998-04-11 Gerd Moellmann <gerd@gnu.org>
11757
11758 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
11759 `charpos'.
11760
117611998-04-10 Gerd Moellmann <gerd@gnu.org>
11762
11763 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
11764 scroll bar window to reduce flickering. Clear entire height.
11765
11766 * xdisp.c (move_iterator_vertically_backward): Set iterator's
11767 current_x and hpos to zero after moving to previous line
11768 start.
11769
117701998-04-03 Gerd Moellmann <gerd@gnu.org>
11771
11772 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
11773
11774 * xfaces.c (xlfd_point_size): Compute relative point size of
11775 fonts from font and frame resolution.
11776 (sort_fonts): New function to sort fonts, temporarily setting
11777 font_frame to the frame in effect.
11778 (xlfd_point_size): Take additional frame parameter to be able
11779 to get at the display's resolution.
11780
11781 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
11782 BLACK_PIX_DEFAULT.
11783 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
11784 screen of display.
11785
117861998-03-31 Gerd Moellmann <gerd@gnu.org>
11787
11788 * xfaces.c (choose_face_fontset): Instantiate fontsets.
11789
11790 * fontset.h: Add external declarations for Vfontset_alias_alist
11791 and Vglobal_fontset_alist.
11792
11793 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
11794 (realize_default_face): If frame parameters contain an artificial
11795 font name naming a fontset, set the family of the default face to
11796 the fontset name given by the registry.
11797
11798 * Makefile.in (alloc.o): Add dependency to dispextern.h.
11799
118001998-03-22 Gerd Moellmann <gerd@gnu.org>
11801
11802 * alloc.c (mark_object): Add function prototype. Add cast to
11803 Lisp_Object pointer in call to mark_object for symbol names
11804 because this otherwise gives a warning from gcc 2.8.1.
11805 (mark_face_cache): Mark Lisp objects in realized faces.
11806
118071998-03-19 Gerd Moellmann <gerd@gnu.org>
11808
11809 * frame.h (struct frame): Add member face_cache.
11810
11811 * alloc.c (mark_object): Mark face cache.
11812 (mark_face_cache): Mark Lisp faces in face cache of frame.
11813
11814 * frame.c (make_frame): Initialize face_cache.
11815 (Fdelete_frame): Free it.
11816
118171998-03-18 Gerd Moellmann <gerd@gnu.org>
11818
11819 * xfaces.c: Very first skeleton of functions for face realization,
11820 face merging, face cache etc.
11821
11822 * dispextern.h (struct rface): Realized faces. Will replace
11823 struct face when tested.
11824 (struct face_cache): Realized face caches.
11825
11826 * xdisp.c (init_iterator): Initialize area member of display
11827 iterator.
11828
118291998-03-17 Gerd Moellmann <gerd@gnu.org>
11830
11831 * xterm.c (x_append_glyph): Use it->area to store glyphs.
11832
11833 * dispextern.h (struct display_iterator): New member area.
11834
11835 * xterm.c (note_overwritten_text_cursor): Note when the text
11836 cursor of a window is overwritten.
11837
11838 * xdisp.c (set_cursor_from_row): If PT is not found in the
11839 row, display the cursor at the start of the row.
11840
11841 * dispnew.c (direct_output_forward_char): Call
11842 set_cursor_from_row.
11843
11844 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
11845 position is not in an overlay string, set iterator's position and
11846 method explicitly so.
427ec082 11847 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
11848 Make it externally visible.
11849 (redisplay_window): Call set_cursor_from_row so that there is only
11850 one place where the cursor position is calculated from a current
11851 row.
11852
11853 * dispextern.h (struct display_iterator): New member
11854 overlay_strings_at_end_processed_p.
11855
11856 * xdisp.c (check_iterator): Perform sanity checks on
11857 display_iterators.
11858 (next_element_from_buffer): Check for overlay strings at ZV.
11859
118601998-03-16 Gerd Moellmann <gerd@gnu.org>
11861
11862 * buffer.c (init_buffer_once): Add left_margin_width and
11863 right_margin_width to buffer_local_flags.
11864
11865 * dispnew.c (margin_glyphs_to_reserve): Function computing
11866 number of glyphs to reserve for a marginal area.
11867 (adjust_glyph_matrix): Call it.
11868 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
11869 is not alive.
11870
11871 * window.c (Fset_window_margins): Allow floats.
11872
11873 * buffer.c (syms_of_buffer): Add buffer-local variables
11874 left-margin-width and right-margin-width. Add defaults
11875 default-left-margin-width and default-right-margin-width.
11876
11877 * buffer.h (struct buffer): New members left_margin_width
11878 and right_margin_width.
11879
11880 * window.c (Fset_window_margins): Make window the last and
11881 optional argument.
11882
11883 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
11884 flag no_marginal_areas_p differently.
11885 (x_clear_end_of_line): Ditto.
11886 (x_draw_glyph_string_relief): Compute width of relief differently
11887 for rows with flag no_marginal_areas_p.
11888
11889 * dispnew.c (update_window_line): Update marginal areas only
11890 for rows that don't have no_marginal_areas_p set.
11891
11892 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
11893 (display_menu_bar): Ditto.
11894
11895 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
11896
11897 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
11898 marginal areas in window-based redisplay.
11899
11900 * dispextern.h (struct glyph_matrix): New members
11901 left_margin_glyphs and right_margin_glyphs.
11902
119031998-03-15 Gerd Moellmann <gerd@gnu.org>
11904
11905 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
11906
11907 * charset.c (non_ascii_char_to_string): Use char type parameters
11908 because the function is used that way from outside. Use unsigned
11909 char internally.
11910
11911 * window.c (change_window_height): Return void.
11912 (make_dummy_parent): Return void.
11913 (init_window_once): Return void.
11914 (syms_of_window): Ditto.
11915 (keys_of_window): Ditto.
11916 (delete_window): Correct return with and without value.
11917
11918 * buffer.c (record_buffer): Return void.
11919
11920 * marker.c (unchain_marker): Return void.
11921
11922 * window.c (unshow_buffer): Return void.
11923 (replace_window): Ditto.
11924 (delete_window): Ditto.
11925
11926 * term.c (delete_glyphs_hook): Void return type.
11927 (ring_bell_hook): Ditto.
11928 (set_terminal_window_hook): Ditto.
11929
11930 * sysdep.c (init_sigio): Return void.
11931
11932 * xterm.c (x_set_window_size): Return void.
11933 (x_calc_absolute_position): Ditto.
11934 (x_set_offset): Ditto.
11935 (x_focus_on_frame): Ditto.
11936 (x_unfocus_frame): Ditto.
11937 (x_make_frame_visible): Ditto.
11938 (x_make_frame_invisible): Ditto.
11939 (x_iconify_frame): Ditto.
11940 (x_destroy_window): Ditto.
11941 (x_wm_set_window_state): Ditto.
11942 (x_wm_set_icon_pixmap): Ditto.
11943 (x_wm_set_icon_position): Ditto.
11944 (x_initialize): Ditto.
11945 (x_error_quitter): Ditto.
11946 (x_destroy_window): Use xfree instead of free.
11947
11948 * keyboard.c (clear_waiting_for_input): Return void.
11949
11950 * xterm.c (x_wm_set_size_hint): Return void.
11951 (x_raise_frame): Ditto.
11952 (refreshicon): Ditto.
11953 (x_error_catcher): Ditto.
11954 (x_clear_errors): Ditto.
11955
11956 * keyboard.c (record_asynch_buffer_change): Return void.
11957
11958