*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
CommitLineData
4c343001
DL
12000-06-21 Dave Love <fx@gnu.org>
2
3 * Makefile.in: Use GETLOADAVG_LIBS.
4
5 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
6 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
7
e6365855
SM
82000-06-20 Stefan Monnier <monnier@cs.yale.edu>
9
10 * syntax.c (describe_syntax): Recognize the `n'estable bit.
11 (Fforward_comment, scan_lists):
12 Check the comstyle of single-char comment-starters.
13 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
14 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
15 Check the comstyle of single-char comment-starters.
16 Clarify control-flow around the Scomment case.
e6365855 17
5700d2cc
DL
182000-06-20 Dave Love <fx@gnu.org>
19
d355bd8a
SM
20 * fns.c (make_hash_table, maybe_resize_hash_table):
21 Cast arg of next_almost_prime.
5700d2cc
DL
22
23 * tparam.c [emacs]: Include lisp.h.
24
25 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
26 and unistd.h.
27
4a27bdfb
GM
282000-06-20 Gerd Moellmann <gerd@gnu.org>
29
a61d762c
GM
30 * keyboard.c (adjust_point_for_property): Check if display
31 property should be treated as intangible by looking at its
32 value.
33
34 * xdisp.c (single_display_prop_intangible_p)
35 (display_prop_intangible_p): New functions.
36
37 * dispextern.h (display_prop_intangible_p): Add prototype.
38
39 * xdisp.c (dump_glyph_row): Show type of glyph->object.
40
4a27bdfb
GM
41 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
42 argument to sigprocmask.
43
44 * s/sco5.h (sigblock): Redefined to pass a pointer as second
45 argument to sigprocmask.
46
47 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
48 sigprocmask_set, and pass a pointer to it to sigprocmask.
49
50 * sysdep.c (sigprocmask_set): New variable.
51
52 * fileio.c (make_temp_name): Don't use `%s' in string passed to
53 report_file_error.
54
427ec082
SS
552000-06-20 Sam Steingold <sds@gnu.org>
56
57 * xrdb.c: Don't declare xmalloc, xrealloc.
58
8972fe79 592000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
60
61 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
62 (re_comp): Cast gettext return value to avoid complaints when
63 !HAVE_LIBINTL.
64
074b6efe
DL
652000-06-20 Dave Love <fx@gnu.org>
66
f85c008a
DL
67 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
68 HAVE_GETTIMEOFDAY.
69
5700d2cc 70 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 71
d355bd8a 72 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
73
74 * m/alpha.h: Don't declare xmalloc, xrealloc.
75
0af4f205
DL
76 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
77
78 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
79
80 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
81
82 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
83 HAVE_GETWD.
84
074b6efe
DL
85 * keyboard.h (poll_for_input_1): Declare.
86
87 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
88
89 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
90
91 * doprnt.c: Don't declare xmalloc, xrealloc.
92
93 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
94 (getenv, ctime, getwd): Removed.
95 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
96
97 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
98 x_set_tool_bar_lines.
99
100 * config.in: Add HAVE_GETWD. Move some definitions above
101 machine/system includes.
102
68a5e97b
KH
1032000-06-20 Kenichi Handa <handa@etl.go.jp>
104
95417e1e
KH
105 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
106
68a5e97b
KH
107 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
108 contain information about ENCODING.
109
110 * fontset.c (FONTSET_ASCII): Use the first element of char table
111 for an ASCII font, not defalt slot.
112 (fontset_ref_via_base): If FONTSET doesn't contain information for
113 C, try the default fontset.
114 (make_fontset): Don't copy the default fontset.
115 (fontset_font_pattern): Likewise.
116 (accumulate_font_info): If ELT is nil, use the corresponding
117 element in the default fontset.
118
3b4fa1b2
DL
1192000-06-19 Dave Love <fx@gnu.org>
120
943e731c
DL
121 * syntax.c (Fparse_partial_sexp): Doc fix.
122
123 * regex.h: Test PROTOTYPES as well as __STDC__.
124
3b4fa1b2
DL
125 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
126 errno, strerror. Put text after #endif in comment.
127
128 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
129 pcc).
130
131 * xterm.c (x_frame_of_widget): Likewise.
132
cdf0357b
GM
1332000-06-19 Gerd Moellmann <gerd@gnu.org>
134
135 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
136 to Vfundamental_mode_abbrev_table.
137
138 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
139 bogus objects are marked. This slows down GC by ~80 percent, but
140 it might be worth trying when debugging GC-related problems.
141 This feature requires conservative stack marking to be enabled.
142
143 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
144 returns XLookupChars, reset `modifiers' to zero.
145
998e9f8c
DL
1462000-06-19 Dave Love <fx@gnu.org>
147
148 * mktime.c: Unprotoized.
149
d1504184
GM
1502000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
151
152 * data.c (set_internal): If variable is frame-local,
153 store the new value immediately into the frame parameter alist.
154
140c4ac6
KR
1552000-06-19 Ken Raeburn <raeburn@gnu.org>
156
14358466
KR
157 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
158 in the custom handler pointer.
159
140c4ac6
KR
160 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
161 value, or checks for CHAR_META can fail when Lisp_Object is a
162 union type.
163 * keymap.c (get_keyelt): Likewise.
164
10d7bf84
KH
1652000-06-19 Kenichi Handa <handa@etl.go.jp>
166
167 * ccl.h (struct ccl_program): New member eol_type.
168 (struct ccl_spec): New member cr_carryover.
169
170 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
171 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
172
173 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
174 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
175 (decode_eol_post_ccl): New function.
176 (decode_coding): Don't detect EOL format here for CCL based coding
177 systems.
178 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
179 decode_eol_post_ccl after running the CCL program.
180 (code_convert_region): Don't detect EOL format here for CCL based
181 coding systems.
182 (decode_coding_string): Likewise.
183
52e386c2
KR
1842000-06-18 Ken Raeburn <raeburn@gnu.org>
185
186 * charset.c (update_charset_table): Use XINT on "iso_final_char"
187 when treating it as an integer.
188
189 * coding.h (encode_coding_string): Declare.
190
191 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
192 it as an integer.
193
194 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
195 "xkeymap" to avoid shadowing the "enum map_type" value that needs
196 to be passed to get_local_map.
197
198 * sound.c (Fplay_sound): Don't call make_number on
199 Frun_hook_with_args count argument.
200
201 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
202 for lisp objects in X event structure data field, when lisp
203 objects are represented with unions.
204 (x_scroll_bar_to_input_event): Ditto.
205
b357b9d4
KR
2062000-06-16 Ken Raeburn <raeburn@gnu.org>
207
208 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
209 termination of string. Fix sense of test whether
210 Vline_number_display_limit is an integer.
b357b9d4 211
a871441d
GM
2122000-06-16 Gerd Moellmann <gerd@gnu.org>
213
a9021acd
GM
214 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
215 only if HAVE_X_WINDOWS.
216
6344985d
GM
217 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
218 of titles.
219
427ec082 220 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
221 out of bounds.
222
228b083e
EZ
2232000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
224
225 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
226 of its headers.
227
c25b53a2
KH
2282000-06-15 Kenichi Handa <handa@etl.go.jp>
229
230 * coding.c (decode_coding_emacs_mule): Always set src_base at the
231 start of the while loop.
232
a6981b11
GM
2332000-06-15 Gerd Moellmann <gerd@gnu.org>
234
e9924e52
GM
235 * atimer.c (alarm_signal_handler): Add forward declaration.
236
a6981b11
GM
237 * data.c (set_internal): Remove debug code.
238
25fa6deb
GM
2392000-06-14 Gerd Moellmann <gerd@gnu.org>
240
dce6b995
GM
241 * Makefile.in (bootstrap-temacs): Add `-I../src'.
242
9f817ea4
GM
243 * unexec.c (toplevel) [COFF]: Include coff.h.
244
245 * s/lynxos.h: New file.
246
247 * keymap.c (Fsingle_key_description): Enclose function key and
248 event symbol names in angle brackets.
249
8a4e3c0c
GM
250 * xdisp.c (setup_echo_area_for_printing): Call
251 message_log_maybe_newline if message_buf_print is not set.
252
253 * print.c (printchar, strout): Don't check message_buf_print
427ec082 254 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
255 function does something useful even when message_buf_print is
256 already set.
257
25fa6deb
GM
258 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
259 variables.
260 (ensure_echo_area_buffers): Initialize echo buffer's
261 truncate lines setting to nil.
262 (with_echo_area_buffer): Don't set the echo buffer's truncate
263 lines setting here.
8a4e3c0c 264 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
265 of message_truncate_lines.
266 (resize_mini_window): Handle case that lines are truncated.
267 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
268 message-truncate-lines.
269
270 * keyboard.c (read_char): Bind message-truncate-lines to t
271 while displaying a help-echo.
272
273 * lisp.h (Qmessage_truncate_lines): External declaration.
274
163dcff3
GM
2752000-06-13 Gerd Moellmann <gerd@gnu.org>
276
1681ead6
GM
277 * xdisp.c (Vline_number_display_limit): Renamed from
278 line_number_display_limit.
279 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
280 Extend documentation string. Initialize
281 Vline_number_display_limit to nil meaning no limit.
282 (decode_mode_spec): Use Vline_number_display_limit with its new
283 meaning.
284
163dcff3
GM
285 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
286
2872000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
288
289 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 290
163dcff3
GM
291 * xfns.c (x_set_frame_parameters): Comment fix.
292
293 * frame.c (store_frame_param): Call swap_in_global_binding if the
294 variable's current binding was chosen based on this frame.
295
296 * data.c (swap_in_global_binding): New function.
297
a704139d
EZ
2982000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
299
300 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
301 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
302
9b6610db
EZ
3032000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
304
305 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
306
c68833d2
JR
3072000-06-12 Jason Rumney <jasonr@gnu.org>
308
309 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
310
311 * w32.h (EMACS_W32_H): Renamed from _NT_H_
312
313 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
314
315 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
316
ed1056b3
GM
3172000-06-12 Gerd Moellmann <gerd@gnu.org>
318
319 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
320 (syms_of_xfaces): Defsubr Sdump_colors.
321 (x_free_colors): Don't treat b&w specially on default visual.
322 (x_free_dpy_colors): New function.
323 (free_face_colors): Don't check visual class; it's done
324 in x_free_colors.
325
326 * xterm.c (x_frame_of_widget): New function.
327 (x_alloc_nearest_color_for_widget): Use it.
328 (x_copy_dpy_color): New function.
329 (x_destroy_window): Free various colors.
330
5050a2ef
KH
3312000-06-12 Kenichi Handa <handa@etl.go.jp>
332
333 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
334
335 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
336
337 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
338
339 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
340
341 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
342
fb1b041d
DL
3432000-06-11 Dave Love <fx@gnu.org>
344
345 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
346
ff96b5f4
EZ
3472000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
348
349 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
350
db8eeecd
GM
3512000-06-11 Gerd Moellmann <gerd@gnu.org>
352
ed1056b3 353 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
354 to `XEvent *'.
355
49b71c5f
KH
3562000-06-10 Kenichi Handa <handa@etl.go.jp>
357
c479bd55
KH
358 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
359 (regex_compile): Fix the code for handling the case of single byte
360 char and multibyte char being mixed in a range within [...].
361
ff6a65c2
KH
362 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
363 and dst_multibyte members of coding.
364
49b71c5f
KH
365 * charset.c (update_charset_table): Update the table
366 bytes_by_char_head.
367 (init_charset_once): Initialize elements of bytes_by_char_head to
368 1 except for leading codes for private charases.
369
370 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
371 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
372 sequence.
373
9e80b57d
KR
3742000-06-09 Ken Raeburn <raeburn@gnu.org>
375
376 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
377 access the data it doesn't point to.
378
f83fe4b4
GM
3792000-06-08 Gerd Moellmann <gerd@gnu.org>
380
381 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 382 will be translated to a switch-frame event when reading the
f83fe4b4
GM
383 event queue. This is necessary because Emacs otherwise won't
384 perform a switch-frame to a new frame until some other event, for
385 example a keystroke event, forces it to do so. This has various
386 effects, one visible being that the cursor of a frame created with
387 C-x 5 2 or switched to with a window manager key binding like
388 A-TAB stays hollow because selected_window isn't on the newly
389 focused frame until the switch-frame is performed.
390
391 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
392 generating a switch-frame event if necessary.
393
394 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
395
396 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
397 it's an integer.
398
0890801b
KH
3992000-06-08 Kenichi Handa <handa@etl.go.jp>
400
401 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
402 charset.
403
173cbca8
GM
4042000-06-07 Gerd Moellmann <gerd@gnu.org>
405
3091c2a6
GM
406 * window.c (displayed_window_lines): Take empty lines at
407 the bottom of a window into account.
427ec082 408
f38952fe
GM
409 * window.c (displayed_window_lines): New function.
410 (Fmove_to_window_line): Use displayed_window_lines to determine
411 the number of lines to move, instead of using the window's height.
412
413 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
414 to stop reading, even if the form read sets point to a different
415 value when evaluated.
416
427ec082 417 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
418 put the cursor.
419
6ba6c818
KH
4202000-06-07 Kenichi Handa <handa@etl.go.jp>
421
422 * fileio.c (e_write): Free composition data if stored in
423 coding->cmp_data.
424
5f1aea9a
GM
4252000-06-06 Gerd Moellmann <gerd@gnu.org>
426
666852af
GM
427 * xdisp.c (display_line): Set row's and iterator's
428 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
429 Set cursor even if row ends in the middle of a character.
430 (dump_glyph_row): Print values of new flags.
431 (redisplay_window) <cursor movement in unchanged window>: When
432 point has been moved forward, and PT is at the end of the cursor
433 row, don't place the cursor in the next row if the cursor row ends
434 in the middle of a character or at ZV.
435
436 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
437 (struct glyph_row): Add starts_in_middle_of_char_p and
438 ends_in_middle_of_char_p.
439 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
440 ends_in_middle_of_char_p flag.
441 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
442
d13f3e2e
GM
443 * term.c (append_glyph): Revert change of 2000-06-06.
444
445 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
446 padding glyph not fitting on line as whole character not
447 fitting on line.
448
5f1aea9a
GM
449 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
450 this isn't true for images with `:ascent 100'.
451
10cda9b0
KH
4522000-06-06 Kenichi Handa <handa@etl.go.jp>
453
ed00559d
KH
454 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
455 as modified if it is originally unmodified.
456
10cda9b0
KH
457 * term.c (encode_terminal_code): Change the way to check if
458 terminal coding does any conversion.
459 (append_glyph): Set glyph->pixel_width correctly.
460
461 * xdisp.c (display_line): While checking line continuation, pay
462 attention to a padding glyph.
463
1969fae2
GM
4642000-06-05 Gerd Moellmann <gerd@gnu.org>
465
466 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
467
162ccef4
DL
4682000-06-05 Dave Love <fx@gnu.org>
469
f19f32dd
DL
470 * xdisp.c: Include fontset.h.
471
472 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
473
474 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
475
476 * dispnew.c: Conditionally include term.h.
477
478 * coding.h: Declare code_convert_string_norecord.
479
480 * frame.h (struct frame): Use volatile unconditionally.
481
482 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
483
484 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
485
486 * systime.h: Protect against multiple inclusion.
487 (timezone) [USG5_4]: Define as time_t.
488
489 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
490 (Foptimize_char_table, make_temp_name): Declare.
491
492 * Makefile.in (xdisp.o): Depend on fontset.h.
493
494 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
495
496 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
497 (Foptimize_char_table, make_temp_name): Declare.
498
427ec082 499 * s/irix4-0.h:
162ccef4
DL
500 * s/irix5-0.h:
501 * s/netbsd.h: Don't define autoconfiscated MATHERR.
502
2082fe81
DL
5032000-06-02 Dave Love <fx@gnu.org>
504
505 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
506
dcf671d2
GM
5072000-06-02 Gerd Moellmann <gerd@gnu.org>
508
509 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 510 result face, set flags in that face indicating that colors may not
dcf671d2
GM
511 be freed.
512
513 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
514 glyph, use the ASCII NUL character to determine the face.
515
d42122a3
DL
5162000-06-02 Dave Love <fx@gnu.org>
517
518 * sysdep.c: Conditionally include stdlib.h, unistd.h.
519 (VFORK_RETURN_TYPE): Remove.
427ec082 520
d42122a3
DL
521 * config.in: Add NO_MATHERR.
522
dd432f16
DL
5232000-06-01 Dave Love <fx@gnu.org>
524
90aa4ea8
DL
525 * cmds.c (internal_self_insert): Don't check
526 Vbefore_change_function, Vafter_change_function.
527
528 * insdel.c (signal_before_change, signal_after_change): Likewise.
529
530 * buffer.c (Vbefore_change_function, Vafter_change_function):
531 Variables and their initializations deleted.
532
2330c9d4
DL
533 * callint.c (Fcall_interactively): Doc fix.
534
dd432f16
DL
535 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
536
bf9e8804
DL
5372000-05-31 Dave Love <fx@gnu.org>
538
539 * textprop.c: Revert last change -- duplicated.
540
3694b4ab
GM
5412000-05-31 Gerd Moellmann <gerd@gnu.org>
542
543 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
544 in #if 0.
545
546 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
547
f14156cd
JR
5482000-05-31 Jason Rumney <jasonr@gnu.org>
549
8119aab8
JR
550 * search.c (Fre_search_forward, Fre_search_backward)
551 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
552
f14156cd
JR
553 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
554
4aab9be3
JR
5552000-05-30 Jason Rumney <jasonr@gnu.org>
556
557 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
558 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
559
560 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
561 member.
562
563 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
564 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
565 expand a nil default_filename.
566
567 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
568 pointer to glyph_to_pixel_coords, not a frame.
569
570 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
571 coding.h to dependencies.
572
573 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
574
575 * w32console.c (glyph_to_pixel_coords): Change first parameter to
576 window pointer to be consistent with w32term.c and xterm.c.
577
578 * w32fns.c: Format and doc changes to bring closer to xfns.c.
579 (VIETNAMESE_CHARSET): Define if not defined in system headers.
580 (Qline_spacing, Qcenter): New variables.
581 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
582 (x_set_line_spacing): New function.
583 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
584 macros.
585 (x_specified_cursor_type): New function.
586 (x_set_cursor_type): Use it.
587 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
588 and icon strings.
589 (validate_x_resource_name, x_get_resource_string): Measure lengths
590 of external strings in bytes.
591 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
592 GetTextExtentPoint32 with NULL title.
593 (Fx_create_frame): Initialize Qline_spacing.
594 (w32_load_system_font): Initialize font->double_byte_p.
595 (x_to_w32_charset): Use Vw32_charset_info_alist.
596 (Image, busy cursor, tooltip functions): Merged changes from
597 xfns.c. Not yet functional on Windows.
598
599 * w32gui.h (W32FontStruct): Add double_byte_p member.
600
601 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
602 (emacs_button_translation): Use it.
603 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
604 in `mask' to be set.
605
606 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
607 menu strings.
608
609 * w32term.c: Format and doc changes to bring closer to xterm.c.
610 (w32_char_font_type): New enum.
611 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
612 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
613 (w32_encode_char): New function.
614 (x_encode_char): Removed.
615 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
616 x_encode_char and w32_font_is_double_byte.
617 (x_produce_image_glyph): Use image_ascent.
618 (x_produce_glyphs): Use new version of w32_per_char_metric and
619 handle NULL return value. Allow extra line spacing.
620 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
621 (w32_get_glyph_overhangs): Remove unicode_p param. Use
622 w32_font_type member of glyph instead.
623 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
624 (fast_find_position): Make sure not to consider rows not visible
625 in the window.
626 (w32_read_socket) [WM_MENUSELECT]: Cannot call
627 w32_menu_display_help with input blocked, as it can abort.
628 (x_display_and_set_cursor): Choose cursor depending
629 on buffer-local value of cursor_type.
630 (x_draw_bar_cursor): Add parameter WIDTH.
631
632 * w32term.h (CP_DEFAULT): Define.
633 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
634
10fc3187
GM
6352000-05-30 Gerd Moellmann <gerd@gnu.org>
636
637 * search.c (Fre_search_forward, Fre_search_backward)
638 (Fposix_search_backward, Fposix_search_forward): Doc fix.
639
d0555360
KH
6402000-05-30 Kenichi Handa <handa@etl.go.jp>
641
642 * coding.c (detect_coding_iso2022): Fix code for checking
643 CODING_CATEGORY_MASK_ISO_8_2.
644
f1ad044f
SM
6452000-05-29 Stefan Monnier <monnier@cs.yale.edu>
646
647 * regex.c (PREFETCH_NOLIMIT): New function.
648 (re_match_2_internal): Use it and adjust the end_match_2 logic.
649
84ec3b4b
GM
6502000-05-29 Gerd Moellmann <gerd@gnu.org>
651
66254a13
GM
652 * syntax.c (find_defun_start): Move test for
653 open_paren_in_column_0_is_defun_start outside of the loop.
654
49e70dec
GM
655 * xdisp.c (redisplay_window): Really switch buffers when
656 displaying mode lines, and temporarily set selected_frame to the
657 frame of the window that's redisplayed.
658
84ec3b4b
GM
659 * xfaces.c (free_realized_faces): Block/unblock input.
660 (free_realized_multibyte_face): Ditto.
661
869a3a14
DL
6622000-05-29 Dave Love <fx@gnu.org>
663
664 * textprop.c (Qkeymap): New variable.
665 (syms_of_textprop): Intern it.
666
667 * keymap.c: Include intervals.h.
668 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
669
670 * Makefile.in (keymap.o): Depend on intervals.h.
671
672 * keyboard.c (menu_bar_items, tool_bar_items)
673 (Fexecute_extended_command): Deal with `keymap' property.
674 (read_key_sequence): Track map from `keymap' property as well as
675 `local_map'.
676
677 * intervals.c (get_local_map): Extra arg to allow looking for
678 `keymap' too.
679
680 * intervals.h (map_property): New enum.
681 (get_local_map): Extra arg using it.
682 (Qkeymap): Declare.
683
84ec3b4b 684 * lisp.h (get_local_map): Don't declare here.
869a3a14 685
89d0c844
KH
6862000-05-29 Kenichi Handa <handa@etl.go.jp>
687
688 * Makefile.in (callproc.o): Depend on composite.h.
689
690 * callproc.c: Include composite.h.
691 (Fcall_process): Handle composition correctly.
692
693 * coding.h (coding_allocate_composition_data): Extern it.
694 (coding_restore_composition): Likewise.
695
696 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
697 yet allocated, finish decoding with result
698 CODING_FINISH_INSUFFICIENT_CMP.
699 (coding_allocate_composition_data): Make it non-static.
700 (coding_restore_composition): Likewise.
701
797a084a
EZ
7022000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
703
704 * charset.c (syms_of_charset): Revert last change.
705
cf872af5
EZ
7062000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
707
708 * term.c (produce_glyphs): Treat characters from the eight-bit-*
709 charsets as unibyte, with 1-column screen width. Sent by Kenichi
710 Handa.
711
5b1ae051
EZ
7122000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
713
714 * charset.c (syms_of_charset): Set width of character sets
715 eight-bit-control and eight-bit-graphic to 1 column.
716
34ec9ebe
GM
7172000-05-26 Gerd Moellmann <gerd@gnu.org>
718
719 * config.in (HAVE_SPEED_T): New define.
720
721 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
722 `extern speed_t'.
723
dd854dc2
DL
7242000-05-26 Dave Love <fx@gnu.org>
725
726 * coding.c (shrink_decoding_region): Initialize eol_conversion.
727
728 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
729 (Fsubr_arity): New function.
730 (syms_of_data): Install them.
731
ba9f8f95
KH
7322000-05-26 Kenichi Handa <handa@etl.go.jp>
733
0f3e0672
KH
734 * charset.c (init_charset_once): Set the table bytes_by_char_head
735 correctly.
736
cebefb44
KH
737 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
738 the default fontset to what Emacs uses by default.
0f3e0672
KH
739 (check_registry_encoding): This function deleted.
740 (Fset_fontset_font): Remove the adhoc condition for the default
741 fontset. Allow cons in FONTNAME.
cebefb44 742
0f3e0672
KH
743 * fns.c (map_char_table): Ignore char-table entries for
744 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 745
7a18af49
KR
7462000-05-25 Ken Raeburn <raeburn@gnu.org>
747
748 * emacs.c (main): Initialize keyboard syms before initializing
749 window code, so face names are available.
750
d2af47df
SM
7512000-05-25 Stefan Monnier <monnier@cs.yale.edu>
752
753 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
754 of an anchor at the beginning of a shy-group.
755
fc6a6a4e
GM
7562000-05-25 Gerd Moellmann <gerd@gnu.org>
757
758 * xdisp.c (handle_invisible_prop): Don't try to skip over
759 invisible text if end of text is already reached.
760
005f0d35
DL
7612000-05-25 Dave Love <fx@gnu.org>
762
02513cdd
DL
763 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
764
005f0d35
DL
765 * coding.c (encode_eol): Add null statement after label.
766
89f6ca4e
EZ
7672000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
768
769 * w16select.c (Fw16_set_clipboard_data): Fix the change from
770 2000-05-20.
771
a4e1759e
KH
7722000-05-25 Kenichi Handa <handa@etl.go.jp>
773
774 * ccl.c (ccl_driver): Fix previous change.
775
eacfd7fe
KH
7762000-05-25 Kenichi Handa <handa@etl.go.jp>
777
46ab33a9
KH
778 * coding.c (run_pre_post_conversion_on_str): Set point to the
779 beginning of buffer before calling coding->post_read_conversion.
780 (decode_coding_string): Give correct args to
781 run_pre_post_conversion_on_str.
782 (encode_coding_string): Likewise.
783
eacfd7fe
KH
784 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
785 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
786 eight-bit-graphic correctly.
787
f8569325
DL
7882000-05-24 Kenichi HANDA <handa@etl.go.jp>
789
790 * fileio.c (Finsert_file_contents): Even if a file is not found,
791 execute codes for setting up coding system. Call
792 after-insert-file-functions unconditionally.
793
04545643
GM
7942000-05-24 Gerd Moellmann <gerd@gnu.org>
795
796 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
797 BSD_PGRPS are not defined.
798
747d90ea
KH
7992000-05-24 Kenichi Handa <handa@etl.go.jp>
800
801 * charset.c (update_charset_table): Accept nil in LONG_NAME and
802 DESCRIPTION.
803 (syms_of_charset): Avoid building same strings.
804
716e3b88
GM
8052000-05-23 Gerd Moellmann <gerd@gnu.org>
806
807 * lread.c (Fload): Add a comment about the meaning of
808 Vuser_init_file being t.
809
810 * puresize.h (BASE_PURESIZE): Increase to 675000.
811
812 * s/gnu-linux.h (setpgrp): Don't define it here because this
813 prevents compilation on GNU/Linux systems with glib 2.2.
814
815 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
816 as setpgid.
427ec082 817
9aeb39fa
EZ
8182000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
819
820 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
821 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
822 version.
823 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
824
29ced61b
KH
8252000-05-23 Kenichi Handa <handa@etl.go.jp>
826
0574a2ed
KH
827 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
828 unconditionally.
829
3d80f24d
KH
830 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
831
832 * term.c (encode_terminal_code): Set coding->src_multibyte
833 properly.
834
29ced61b
KH
835 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
836
d7e00792
KH
8372000-05-22 Kenichi Handa <handa@etl.go.jp>
838
c9d80d38
KH
839 * keyboard.c (read_char): Allow character codes 128..255 to be
840 handled by input-method-function.
841
d7e00792
KH
842 * insdel.c (adjust_markers_for_replace): Fix previous change.
843 (adjust_after_replace): If PREV_TEXT is nil, call
844 adjust_markers_for_insert, not adjust_markers_for_replace.
845
087121cc 8462000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 847
087121cc
GM
848 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
849 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
850 [HAVE_GRANDPT]: Define.
851 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
852
853 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
854 like SYSV_PTYS.
855
856 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
857
858 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
859
c9671f81
KH
8602000-05-20 Kenichi Handa <handa@etl.go.jp>
861
862 The following changes are to handle 8-bit characters in a
863 multibyte buffer/string without facing with byte combining
864 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
865 eight-bit-graphic (for 0xA0..0xFF) are introduced.
866
867 * Makefile.in (fns.o): Depend on charset.h.
868
869 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
870 convert it to unibyte.
871 (make_string): Use parse_str_as_multibyte, not chars_in_text.
872
873 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
874 apparent char boundary.
875 (Fset_buffer_multibyte): Convert 8-bit characters in the range
876 0x80..0x9F to/from multibyte form.
877
878 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
879 to unibyte.
880
881 * callproc.c (Fcall_process): Always encode an argument string if
882 it is multibyte. Setup src_multibyte and dst_multibyte members of
883 process_coding properly.
ce75fd23 884
c9671f81
KH
885 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
886 SPLIT_NON_ASCII_CHAR.
887
888 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
889 as is.
890 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
891
892 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
893 variables.
894 (SPLIT_CHARACTER_SEQ): This macro deleted.
895 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
896 valid.
897 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
898 and eight-bit-graphic.
899 (char_to_string): Likewise. Signal an error for too large
900 character code.
901 (char_printable_p): Return 0 for 8-bit characters.
902 (update_charset_table): Update iso_charset_table only when a final
903 character is non-negative.
904 (find_charset_in_text): Renamed from find_charset_in_str.
905 Arguments and return value changed. Callers changed.
906 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
907 be -1 if CHARSET is used only internally.
908 (Fmake_char_internal): Handle new charsets; eight-bit-control and
909 eight-bit-graphic.
910 (Fcharset_after): Simplified.
911 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
912 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
913 (multibyte_chars_in_text): Simplified by assuming there's no
914 invalid multibyte sequence.
915 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
916 str_as_unibyte): New functions.
917 (Fstring): Simpified by assuming that byte combining never
918 happens.
919 (init_charset_once): Initialization for
920 LEADING_CODE_8_BIT_CONTROL.
921 (syms_of_charset): Intern and staticpro Qeight_bit_control and
922 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
923 eight-bit-control and eight-bit-graphic.
924
925 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
926 CHARSET_8_BIT_GRAPHIC): New macros.
927 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
928 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
929 (CHARSET_REVERSE_CHARSET): Likewise.
930 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
931 eight-bit-graphic.
932 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
933 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
934 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
935 encounter an invalid multibyte sequence.
936 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
937 sequence is always valid.
938 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
939 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
940 macros.
941 (CHAR_STRING): For 8-bit characters, call char_to_string.
942 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
943 multibyte sequence is always valid.
944 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
945 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
946 str_as_unibyte): Extern them.
947 (BCOPY_SHORT): Fix a bug.
948 (CHAR_LEN): This macro deleted. Callers changed to use
949 CHAR_BYTES.
950 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
951 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
952 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
953
bd4bde7f 954 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
955 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
956 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
957 EMIT_BYTES): New macros.
958 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
959 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
960 macros deleted.
961 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
962 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
963 check the validity of multibyte sequence.
964 (decode_coding_emacs_mule): New function.
965 (encode_coding_emacs_mule): New macro.
966 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
967 the source.
968 (DECODE_ISO_CHARACTER): Just return a character code.
969 (DECODE_COMPOSITION_START): Set coding->result instead of result.
970 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
971 EMIT_CHAR to produced decoded characters. Exit the loop only by
972 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
973 block here.
974 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
975 only position codes for an invalid character.
976 (encode_designation_at_bol): Return new destination pointer. 5th
977 arg DSTP is changed to DST.
978 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
979 from the source by ONE_MORE_CHAR. Don't handle the case of last
980 block here.
981 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
982 macros deleted.
983 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
984 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
985 TWO_MORE_BYTES to fetch a byte from the source.
986 (encode_eol): Pay attention to coding->src_multibyte.
987 (detect_coding, detect_eol): Preserve members src_multibyte and
988 dst_multibyte.
989 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
990 (encoding_buffer_size): Set magnification to 3 for all coding
991 systems that require encoding.
992 (ccl_coding_driver): For decoding, be sure that the result is
993 valid multibyte sequence.
994 (decode_coding): Initialize coding->errors and coding->result.
995 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
996 and raw-text, always call decode_eol. Handle the case of last
997 block here. If not coding->dst_multibyte, convert the resulting
998 sequence to unibyte.
999 (encode_coding): Initialize coding->errors and coding->result.
1000 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
1001 and raw-text, always call encode_eol. Handle the case of last
1002 block here.
1003 (shrink_decoding_region, shrink_encoding_region): Detect cases
1004 that we can't skip data more rigidly.
1005 (code_convert_region): Setup src_multibyte and dst_multibyte
1006 members of coding. For decoding, if the buffer is multibyte,
1007 convert the source sequence to unibyte in advance. For encoding,
1008 if the buffer is multibyte, convert the resulting sequence to
1009 multibyte afterward.
1010 (run_pre_post_conversion_on_str): New function.
1011 (code_convert_string): Deleted and divided into the following two.
1012 (decode_coding_string, encode_coding_string): New functions.
1013 (code_convert_string1, code_convert_string_norecord): Call one of
1014 above.
1015 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
1016 MAKE_NON_ASCII_CHAR.
1017 (Fset_terminal_coding_system_internal,
1018 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
1019 and dst_multibyte members.
1020 (init_coding_once): Initialize iso_code_class with new enum
1021 ISO_control_0 and ISO_control_1.
1022
1023 * coding.h (enum iso_code_class_type): Member ISO_control_code is
1024 devided into ISO_control_0 and ISO_control_1.
1025 (struct coding_system): New members src_multibyte, dst_multibyte,
1026 errors, and result. Delete member fake_multibyte.
1027 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
1028 nonzero.
1029 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
1030 nonzero.
1031
1032 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
1033 (Faset): Likewise.
1034
1035 * editfns.c (Fformat): Be sure to convert 8-bit characters to
1036 multibyte form.
1037 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
1038 combining occurs.
1039 (Ftranspose_region): Delete codes for handling byte combining.
1040
1041 * fileio.c (Finsert_file_contents): Setup src_multibyte and
1042 dst_multibyte members of coding. On handling REPLACE on unibyte
1043 buffer, convert the result of decode_coding to unibyte. On
1044 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 1045 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
1046 multibyteness of the source (buffer or string).
1047
1048 * fns.c (concat): Handle 8-bit characters correctly.
1049 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
1050 unibyte in the result.
1051 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
1052 valid multibyte form in the result.
1053 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1054 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
1055 return -1, signal an error.
1056 (base64_encode_1): New arg MULTIBYTE. Get each character by
1057 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
1058 character is found, return -1.
1059 (Fbase64_decode_region): Delete codes for handling byte-combining.
1060 Treat each decoded byte as a unibyte character.
1061 (Fbase64_decode_string): Return unibyte string.
1062 (Fcompare_strings, concat, string_byte_to_char): Use
1063 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1064 FETCH_STRING_CHAR_ADVANCE.
1065 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1066 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1067
1068 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1069 SPLIT_NON_ASCII_CHAR.
1070 (fontset_ref_via_base, fontset_set): Likewise
1071
1072 * insdel.c (adjust_markers_for_record_delete): Deleted.
1073 (adjust_markers_for_insert): Argument changed. Caller changed.
1074 (adjust_markers_for_replace): Likewise.
1075 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1076 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1077 (copy_text): Delete unused local varialbe c_save. For converting
1078 to multibyte, be sure to make all 8-bit characters in valid
1079 multibyte form.
1080 (count_size_as_multibyte): Handle 8-bit characters correctly.
1081 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1082 adjust_after_replace, replace_range, del_range_2)
1083 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1084 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1085 adjust_after_replace, replace_range, del_range_2) Delete codes for
1086 handling byte combining.
1087 (adjust_before_replace): Deleted.
427ec082 1088
c9671f81
KH
1089 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1090 SPLIT_NON_ASCII_CHAR.
1091 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1092 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1093 unconditionally.
1094 (Fkey_description): Likewise.
1095
1096 * lread.c (read1): On reading multibyte string, be sure to make
1097 all 8-bit chararacters in valid multibyte form.
1098 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1099
1100 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1101 unconditionally.
1102
1103 * process.c (Fstart_process): GCPRO current_dir before calling
1104 Ffind_operation_coding_system. Encode arguments here.
1105 (create_process): Don't encode arguments here. Setup
1106 src_multibyte and dst_multibyte members of struct coding.
1107 (read_process_output): Setup src_multibyte and dst_multibyte
1108 members of struct coding. If the output is to multibyte buffer,
1109 always decode the output of the process. Adjust the
1110 representation of 8-bit characters to the multibyteness of the
1111 output.
1112 (send_process): Setup coding->src_multibyte according to the
1113 multibyteness of the source.
1114
1115 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1116 unconditionally.
1117 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1118 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1119
1120 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1121 CHAR_LEN.
1122
1123 * w16select.c (Fw16_set_clipboard_data): Setup members
1124 src_multibyte and dst_multibyte of coding. Adjusted for the
1125 change for find_charset_in_str.
1126 (Fw16_get_clipboard_data): Likewise.
1127
1128 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1129 dst_multibyte of coding.
1130 (x_to_w32_font): Likewise.
1131
1132 * w32select.c (Fw32_set_clipboard_data): Setup members
1133 src_multibyte and dst_multibyte of coding. Adjusted for the
1134 change for find_charset_in_str.
1135 (Fw32_get_clipboard_data): Likewise.
1136
1137 * xdisp.c (get_next_display_element): Handle 8-bit characters
1138 correctly.
1139 (next_element_from_display_vector): Use CHAR_BYTES instead of
1140 CHAR_LEN.
1141 (disp_char_vector): Use SPLIT_CHAR instead of
1142 SPLIT_NON_ASCII_CHAR.
1143
1144 * xselect.c (selection_data_to_lisp_data): Setup members
1145 src_multibyte and dst_multibyte of coding. Adjusted for the
1146 change for find_charset_in_str.
1147 (lisp_data_to_selection_data): Likewise.
1148
5f64c9e0
GM
11492000-05-19 Gerd Moellmann <gerd@gnu.org>
1150
2b63d473
GM
1151 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1152 buffer.
1153
5f64c9e0
GM
1154 * dispextern.h (Vimage_types): Add extern declaration.
1155
1156 * xdisp.c (Vimage_types): Moved here from xfns.c.
1157 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1158
1159 * xfns.c (Vimages_types): Moved to xdisp.c.
1160 (syms_of_xfns): Move `image-types' to xdisp.c.
1161
1162 * w32fns.c (Vimage_types): Removed.
1163 (syms_of_w32fns): Remove `image-types'.
1164
813086ea
KH
11652000-05-18 Kenichi Handa <handa@etl.go.jp>
1166
1167 * fns.c (map_char_table): Pay attention to character number of
1168 charset. Check the validity of charset at the first level. For
1169 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1170 the default value.
1171
1172 * fontset.c: Include "buffer.h".
1173 (fs_load_font): If the face has fontset, record the face ID in
1174 that fontset.
1175 (Finternal_char_font): New function.
1176 (accumulate_font_info): New function.
1177 (Ffontset_info): Rewritten for the new fontset implementation.
1178 (syms_of_fontset): Register Vdefault_fontset in the first element
1179 of Vfontset_table. Include Vdefault_fontset in
1180 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1181 function.
1182
bdaebbf0
DL
11832000-05-16 Dave Love <fx@gnu.org>
1184
1185 * m/iris5d.h: Deleted -- unused.
1186
cb613bb8
GM
11872000-05-16 Gerd Moellmann <gerd@gnu.org>
1188
b15f3b77
GM
1189 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1190 `invalid' instead of `illegal'.
1191
1192 * indent.c (Fmove_to_column): When ending within a tab, insert
1193 spaces first so that markers at the end of the tab get adjusted.
1194
835c1b36
GM
1195 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1196 buffer list that wasn't selected in that frame.
1197
cb613bb8
GM
1198 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1199 is needed on mescaline, use a 2 char prefix, and call
1200 make_temp_name with second arg non-zero.
1201
1202 * fileio.c (make_temp_name): New function, extracted from
1203 Fmake_temp_name.
1204 (Fmake_temp_name): Use it.
1205
f685bea9
EZ
12062000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1207
1208 * window.c (coordinates_in_window): Subtract 1 when computing
1209 right_x.
1210
a1b8d58b
GM
12112000-05-15 Gerd Moellmann <gerd@gnu.org>
1212
1213 * Makefile.in (lisp): Add env.elc.
1214
1215 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1216
a265079f
GM
12172000-05-12 Gerd Moellmann <gerd@gnu.org>
1218
1219 * search.c (Freplace_match): Handle case of `\N' in the
1220 replacement when there's no group N.
1221
da4496b6
GM
12222000-05-11 Gerd Moellmann <gerd@gnu.org>
1223
0ace421a
GM
1224 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1225 of the message to message_dolog.
1226
1172eb8d
GM
1227 * keyboard.c (read_char): Don't clear current message for help
1228 events; let the code handling help events handle this. Change
1229 code detecting help events that should be ignored.
1230
da4496b6
GM
1231 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1232 we're interating over a string.
1233
0623e40f
DL
12342000-05-09 Dave Love <fx@gnu.org>
1235
1236 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1237 that offset before writing. Move gcpro region past call of
1238 Ffile_regular_p.
1239
bae2503b
DL
12402000-05-04 Dave Love <fx@gnu.org>
1241
1242 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1243
ec82fb2f
GM
12442000-05-04 Gerd Moellmann <gerd@gnu.org>
1245
1246 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1247 of inserted characters when BUF equals the current buffer, and PT
1248 is in front of or equal to FROM.
1249
cbf18892
GM
12502000-05-03 Gerd Moellmann <gerd@gnu.org>
1251
4ff40dd0
GM
1252 * xdisp.c (handle_single_display_prop): If display property value
1253 is invalid, or something not supported on the frame, restore
1254 iterator's position to what it was initially. Make sure to return
1255 0 for invalid and unsupported property values.
1256
cbf18892
GM
1257 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1258 that x_per_char_metric returns null.
1259
1b0672c3
GM
12602000-05-02 Gerd Moellmann <gerd@gnu.org>
1261
576da55d
GM
1262 * xterm.h (struct face): Add forward declaration.
1263 (struct image): Ditto.
1264 (image_ascent): Add prototype.
1265
1266 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1267 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1268 image_ascent instead of using IMAGE_ASCENT.
1269
1270 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1271 (IMAGE_ASCENT): Removed.
1272
1273 * xfns.c (Qcenter): New variable.
1274 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1275 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1276 (image_ascent): New function.
1277 (lookup_image): Recognize `:ascent center'.
1278 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1279 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1280 (xbm_load): Don't set image's ascent here.
1281 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1282 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1283 check ascent values here.
1284 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1285 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1286 (syms_of_xfns): Initialize Qcenter.
1287
1b0672c3
GM
1288 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1289 to the limits, increase the limits.
1290
0d7811ed
KH
12912000-05-01 Kenichi Handa <handa@etl.go.jp>
1292
1293 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1294 Check Vfont_encoding_alist against the full name of the opened
1295 font.
1296
a943a5ca
GM
12972000-04-28 Gerd Moellmann <gerd@gnu.org>
1298
1299 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1300 taller than the window.
1301
5dba1e29
KH
13022000-04-28 Kenichi Handa <handa@etl.go.jp>
1303
1304 * xfaces.c (realize_x_face): Fix the argument of the second
1305 xassert. BASE_FACE may not be a face for ASCII.
1306
353964e3
GM
13072000-04-27 Gerd Moellmann <gerd@gnu.org>
1308
c76e04a8
GM
1309 * print.c (print_object): Treat print-length < 0 as nil.
1310
1311 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1312
1313 * s/freebsd.h (TERMCAP_OBJ): Removed.
1314 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1315
1316 * lread.c (read1): Don't treat period followed by certain
1317 characters as symbol start.
1318
1319 * xfns.c (slurp_file): New function.
1320 (xbm_image_p): Handle case of in-memory XBM files.
1321 (xbm_scan): Rewritten to work on memory buffers instead of files.
1322 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1323 Work on memory buffers instead of files. If DATA is null test
1324 if buffer looks like an in-memory XBM file.
1325 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1326 memory buffers instead of files.
1327 (xbm_file_p): New function.
1328 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1329
353964e3
GM
1330 * lread.c (end_of_file_error): New function.
1331 (read1): Call it instead of signaling `end-of-file' directly.
1332
427ec082 1333 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
1334 with Fprinc instead of Fprin1.
1335
24d744ac
KR
13362000-04-26 Ken Raeburn <raeburn@gnu.org>
1337
1338 * window.c (freeze_window_start): Check that minibuffer scroll
1339 window isn't nil before extracting the window structure pointer
1340 from it.
1341
1342 * undo.c (record_delete): If we hit the end of the undo list, stop
1343 picking elements apart.
1344
7464346d
GM
13452000-04-26 Gerd Moellmann <gerd@gnu.org>
1346
1347 * xdisp.c (display_line): If lines are continued, restore
1348 iterator's ascent/descent information to the values before the
1349 first glyph not fitting on the line.
1350
612839b6
GM
13512000-04-25 Gerd Moellmann <gerd@gnu.org>
1352
1353 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1354 positions in glyph matrix. Don't compute new window end
1355 positions.
1356
1357 * dispnew.c (increment_matrix_positions): Renamed from
1358 increment_glyph_matrix_buffer_positions.
1359 (increment_row_positions): Renamed from
1360 increment_glyph_row_buffer_positions.
1361
1362 * dispextern.h: Change names of renamed functions from dispnew.c
1363 in prototypes.
1364
cc181e95
GM
13652000-04-24 Gerd Moellmann <gerd@gnu.org>
1366
abfcc168
GM
1367 * fileio.c (Fdo_auto_save): Create directories for auto-save
1368 list file if necessary.
1369
cc181e95
GM
1370 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1371 from buffer or frame.
1372 (automatic_hscrolling_p): New variable.
1373 (hscroll_windows): Scroll windows horizontally only if automatic
1374 hscrolling is allowed.
1375 (syms_of_xdisp): New variable `automatic-hscrolling'.
1376
1377 * frame.h (struct frame): Add member extra_line_spacing.
1378
1379 * xfns.c (x_set_line_spacing): New function.
1380 (Fx_create_frame): Set line spacing from resources.
1381 (Qline_spacing): New variable.
1382 (syms_of_xfns): Initialize Qline_spacing.
427ec082 1383
cc181e95
GM
1384 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1385
1386 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1387 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1388 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1389 extra_line_spacing from default value.
1390 (init_buffer_once): Initialize default value of extra_line_spacing.
1391
1392 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1393 and extra3.
1394
1395 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1396 prompt_width. Add extra line spacing.
1397
1398 * term.c (produce_glyphs): Remove reference to struct it's
1399 prompt_width.
1400
1401 * dispextern.h (struct it): Remove member prompt_width, add
1402 extra_line_spacing.
1403
58827478
GM
14042000-04-22 Gerd Moellmann <gerd@gnu.org>
1405
1406 * dispnew.c (update_frame_line): When writing a whole line, make
1407 sure cursor is in the right row afterwards, otherwise a use of
1408 capability `ch' in cmgoto might leave the cursor in the row below.
1409
25a87f42
GM
14102000-04-21 Gerd Moellmann <gerd@gnu.org>
1411
1412 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1413
1414 * keyboard.c (timer_check): Fix typo in comment.
1415
54edf5c2
KH
14162000-04-21 Kenichi Handa <handa@etl.go.jp>
1417
1418 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1419 name change: ch -> character.
1420
3a64eef5
GM
14212000-04-20 Gerd Moellmann <gerd@gnu.org>
1422
1423 * keyboard.c (echo_message_buffer): New variable.
1424 (echo_now): Set echo_message_buffer to the echo area buffer used
1425 to display the echo.
1426 (cancel_echoing): Reset echo_message_buffer to nil.
1427 (read_char): Code rewritten that handles canceling an echo or
1428 echoing a dash, respectively.
1429
1430 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1431 directory doesn't exist.
1432
6142fdcb
DL
14332000-04-19 Dave Love <fx@gnu.org>
1434
1435 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1436 (concat): Don't allow numeric args.
1437 (Fconcat): Doc change.
6142fdcb 1438
ac6b5352
SM
14392000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1440
1441 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1442 instead define end_match(1|2) more carefully.
1443 Use GET_CHAR_BEFORE_2 for `begline'.
1444
cb9215e4
GM
14452000-04-19 Gerd Moellmann <gerd@gnu.org>
1446
5e3dac3f
GM
1447 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1448 on 64-bit systems where NULL is defined as `0'.
1449
1450 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1451 the `variable argument list' to make it work on Alpha.
1452
cb9215e4
GM
1453 * m/alpha.h (_LP64) [!_LP64]: Define.
1454 (ORDINARY_LINK): Define for NetBSD.
1455
1456 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 1457
f532dca0
DL
14582000-04-19 Dave Love <fx@gnu.org>
1459
c750667e
DL
1460 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1461 change.
1462
1463 * Makefile.in (LIBS): Don't use.
1464 (GETLOADAVG_OBJ): Define again.
1465 (otherobj): Add GETLOADAVG_OBJ.
1466
f532dca0
DL
1467 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1468
1c7e22fd
GM
14692000-04-18 Gerd Moellmann <gerd@gnu.org>
1470
f6d3257b
GM
1471 * lread.c (read_filtered_event): Cancel and start busy cursor.
1472
427ec082 1473 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
1474 that the per-character metrics may be null.
1475
e10f64e7
GM
14762000-04-17 Gerd Moellmann <gerd@gnu.org>
1477
0daee095
GM
1478 * buffer.c (clone_per_buffer_values): New function.
1479 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1480 clone_per_buffer_values if CLONE is not nil.
1481
e10f64e7
GM
1482 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1483
38687d43
DL
14842000-04-16 Dave Love <fx@gnu.org>
1485
1486 * Makefile.in: Remove obsolete localcpp stuff.
1487 (GETLOADAVG_OBJ): Don't define.
1488 (obj): Move LIBOBJS...
1489 (otherobj): ... to here.
1490 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1491 whitespace-only lines after the continuation (Irix).
1492
c21c7262
GM
14932000-04-14 Gerd Moellmann <gerd@gnu.org>
1494
1495 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1496
1497 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1498
314767c0
DL
14992000-04-14 Dave Love <fx@gnu.org>
1500
1501 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1502 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1503 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1504 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1505 NLIST_STRUCT.
1506
1507 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1508 autoconfiscated HAVE_GETLOADAVG.
1509
1510 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1511 BROKEN_MKTIME.
1512
a2522dca
GM
15132000-04-14 Gerd Moellmann <gerd@gnu.org>
1514
1515 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1516 (fill_in_lock_file_name): Avoid existing files that aren't
1517 links.
1518
33744b5d
DL
15192000-04-14 Dave Love <fx@gnu.org>
1520
c21c7262 1521 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1522 (INTERVAL_SRC): Convert to make variable.
1523 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1524 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1525 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1526 add LIBOBJS.
1527 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1528 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1529 (shortlisp): Add facemenu, float-sup, frame.
1530 (SOME_MACHINE_LISP): Remove them from here.
1531 (LIBES): Change unused LDLIBS to autoconf LIBS.
1532
1533 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1534
9d3d5916
KH
15352000-04-14 Kenichi Handa <handa@etl.go.jp>
1536
1537 * composite.c (update_compositions): If FROM and TO are not in a
1538 valid range, do nothing.
1539
198e3c7a
GM
15402000-04-13 Gerd Moellmann <gerd@gnu.org>
1541
1542 * tparam.c (tparam1): Abort when encountering an unknown
1543 `%'-specifier.
1544
1545 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1546 terminfo.o.
1547
1548 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1549 as TERMCAP_OBJ.
1550
055a28c9
EZ
15512000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1552
1553 * fileio.c (a_write): Remove redundant semi-colons.
1554 (e_write): Return -1 if failed to write all the data.
1555 This fixes the changes made at 1999-12-15.
1556
f5c75033
DL
15572000-04-12 Dave Love <fx@gnu.org>
1558
1559 * fns.c (mapcar1): Test for null vals to support mapc.
1560 (Fmapc): New function.
1561
0c3cfc51
EZ
15622000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1563
1564 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1565 (IT_frame_up_to_date): Support the buffer local value of
1566 cursor-type, if defined.
1567
33465a31
DL
15682000-04-10 Dave Love <fx@gnu.org>
1569
1570 * editfns.c (preceding-char, following-char): Doc fix.
1571
6ed56568
KR
15722000-04-10 Ken Raeburn <raeburn@gnu.org>
1573
1574 * Makefile.in (temacs): Revert 2000-03-12 change.
1575
7cf80d4e
JR
15762000-04-10 Jason Rumney <jasonr@gnu.org>
1577
1578 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1579
34f3f342
GM
15802000-04-10 Gerd Moellmann <gerd@gnu.org>
1581
1a1b1895
GM
1582 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1583 area buffer, if it's not set up yet.
1584
34f3f342
GM
1585 * indent.c (compute_motion): Set immediate_quit.
1586
be0dbdab
GM
15872000-04-09 Gerd Moellmann <gerd@gnu.org>
1588
c45be9ac
GM
1589 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1590 variable.
1591 (realize_tty_face): Suppress boldness if colors are the inverse of
1592 the default colors, and tty_suppress_bold_inverse_default_colors_p
1593 is set.
1594 (Ftty_suppress_bold_inverse_default_colors): New function.
1595 (syms_of_xfaces): Defsubr it.
1596
be0dbdab
GM
1597 * buffer.c (Frestore_buffer_modified_p): New function.
1598 (syms_of_buffer): Defsubr it.
1599
e8413c3b
KR
16002000-04-08 Ken Raeburn <raeburn@gnu.org>
1601
87f67317
KR
1602 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1603 charset id (int) argument, not a charset (Lisp_Object).
1604
e8413c3b
KR
1605 * coding.h (code_convert_string): Declare.
1606 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1607 object, as the fourth argument to code_convert_string.
1608
1609 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1610 value.
1611 (Fset_fontset_font): Use EQ to compare lisp objects.
1612
7c752c80
KR
16132000-04-05 Ken Raeburn <raeburn@gnu.org>
1614
c0333abc
KR
1615 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1616 a pointer that looks like a lisp object.
1617 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1618 zero, instead see whether it's an integer object, since they can't
1619 have intervals.
1620 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1621
7c752c80
KR
1622 * dispnew.c (allocate_matrices_for_frame_redisplay,
1623 direct_output_forward_char): Use X(U)INT and make_number as needed
1624 to convert between (unsigned) int values and lisp integers.
1625 * keyboard.c (read_key_sequence): Likewise.
1626 * lread.c (substitute_object_recurse): Likewise.
1627 * fns.c (concat, hash_lookup, hash_remove): Likewise.
1628 * minibuf.c (do_completion, Fminibuffer_complete_word,
1629 Fminibuffer_completion_help): Likewise.
1630 * term.c (produce_special_glyphs): Likewise.
1631
1632 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
1633 * print.c (print_preprocess, print_object): Likewise.
1634
1635 * search.c (compile_pattern): Use NILP when checking for nil.
1636
74e49b38
KR
1637 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
1638 __OPTIMIZE__]: Provide a GNU C macro version that handles
1639 lisp-object unions.
1640 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
1641 field, to better cope with ENABLE_CHECKING and calls that modify a
1642 Lisp_Object using its old value.
1643
685e5ed2
GM
16442000-04-04 Gerd Moellmann <gerd@gnu.org>
1645
c407c570
GM
1646 * window.c (compare_window_configurations): Signal an error
1647 if parameters C1 or C2 aren't window configurations.
1648
685e5ed2
GM
1649 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
1650 AFTER_POTENTIAL_GC calls around calls to functions that can
1651 signal an error and thus invoke the debugger.
1652
587a49ab
GM
16532000-04-03 Gerd Moellmann <gerd@gnu.org>
1654
62f20204
GM
1655 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
1656 an error if decoding fails.
1657
587a49ab
GM
1658 * keyboard.c (lispy_mouse_names): Variable removed.
1659 (Vlispy_mouse_stem): New variable.
1660 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
1661 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
1662 for any mouse button number. Increase size of mouse_syms and
1663 button_down_location as needed. Call modify_event_symbol with
1664 different arguments.
1665 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
1666 Call modify_event_symbol with different arguments.
1667 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
1668 for any button number. Call modify_event_symbol with different
1669 arguments.
1670 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
1671 Accept a string for NAME_ALIST_OR_STEM.
1672
1673 * lisp.h (larger_vector): Add prototype.
1674
1675 * fns.c (larger_vector): Make externally visible.
1676
1677 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
1678
2d1675e4
SM
16792000-04-02 Stefan Monnier <monnier@cs.yale.edu>
1680
1681 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
1682 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
1683 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
1684 we are between str1 and str2.
1685 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
1686 (PATFETCH): Use `TRANSLATE'.
1687 (PATFETCH_RAW): Fetch multibyte char if applicable.
1688 (PATUNFETCH): Remove.
1689 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
1690 When writing a char, write it directly into the pattern buffer rather
1691 than going needlessly through a temp char-array.
1692 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
1693 multibyte magic and remove the useless `#ifdef emacs'.
1694 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
1695 buffer.
1696
1697 * regex.h (struct re_pattern_buffer): Make field `multibyte'
1698 conditional on `emacs'.
1699
1700 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
1701
cc2d8c6b
KR
17022000-04-01 Ken Raeburn <raeburn@gnu.org>
1703
1704 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
1705 non-union-type versions of XMARK and friends here, because XMARK
1706 and friends won't work on an integer field if NO_UNION_TYPE is not
1707 defined.
1708 (make_number): Define as a function if it's not defined as a
1709 macro.
1710
09654086
KR
1711 * composite.c (run_composite_function): Use NILP when checking for
1712 nil.
1713 (syms_of_composite): Delete local var NARGS, pass an int as first
1714 argument to Fmake_hash_table.
1715
2387b382
KR
1716 * editfns.c (text_property_stickiness): Use NILP to test
1717 Lisp_Object boolean value.
1718 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
1719 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
1720 problems reading from and changing the same lisp value in an
1721 XSETSTRING call.
1722
27660e89
GM
17232000-04-01 Gerd Moellmann <gerd@gnu.org>
1724
1725 * term.c (TN_no_color_video): New variable.
1726 (term_init): Intitialize TN_no_color_video.
1727 (enum no_color_bit): New enumeration.
1728 (MAY_USE_WITH_COLORS_P): New macro.
1729 (turn_on_face): Use it to determine if attributes may be used
1730 combined with colors.
1731
3578db3c
KR
17322000-04-01 Ken Raeburn <raeburn@gnu.org>
1733
1734 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
1735 with int lvalues via casts; instead, just yield lisp object
1736 lvalues.
1737 (enlarge_window): Variable sizep now points to Lisp_Object. Use
1738 proper accessor macros.
1739 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
1740 (grow_mini_window): Fix typo getting int value of root->height.
1741
6fc556fd
KR
1742 * xdisp.c (compute_string_pos): Fix order of arguments to
1743 string_pos_nchars_ahead.
1744 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
1745 count arg to variable-arg routines like Frun_hook_with_args and
1746 Fformat.
587a49ab
GM
1747 (back_to_previous_visible_line_start)
1748 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
1749 fixed-arg routines like Fget_char_property and Fmake_string.
1750 (reconsider_clip_changes): Use XINT when comparing integer lisp
1751 objects, or passing them as int arguments.
587a49ab
GM
1752 (mark_window_display_accurate, insert_left_trunc_glyphs)
1753 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
1754 storing or passing integer values as lisp objects.
1755 (set_cursor_from_row, highlight_trailing_whitespace): Use
1756 INTEGERP, not implicit test against zero, for glyph object.
1757 (try_window_id): Don't use make_number when we want an int value.
1758
1759 * xfaces.c (xlfd_symbolic_value): Make last argument a
1760 Lisp_Object, to be consistent with callers.
1761 (Fbitmap_spec_p): Use XINT to get numeric value of height.
1762 (lface_hash): Apply XFASTINT to lisp values before folding in.
1763
1764 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
1765 fill in window width and height. Pass an int, not a lisp object,
1766 as first arg to Finsert.
1767
6e7b2457
GM
17682000-04-01 Gerd Moellmann <gerd@gnu.org>
1769
610d841e
GM
1770 * xfaces.c (realize_basic_faces): Block input while realizing
1771 the faces.
1772
6e7b2457
GM
1773 * keyboard.c (lispy_mouse_names): Add additional mouse names.
1774
1775 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
1776
aa110c0c
GM
17772000-03-31 Gerd Moellmann <gerd@gnu.org>
1778
1779 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 1780 or ASCII, handle case that per-char metric is null.
aa110c0c 1781
8801a864
KR
17822000-03-30 Ken Raeburn <raeburn@gnu.org>
1783
c6129d7e
KR
1784 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
1785
8801a864
KR
1786 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
1787 XSUBR, XBUFFER): Verify correct object type before returning
1788 pointer, using eassert.
1789 * frame.h (XFRAME): Likewise.
1790
1791 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
1792 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
1793 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
1794 type.
1795 * data.c (set_internal): Likewise.
1796 * dispextern.h (WINDOW_WANTS_MODELINE_P,
1797 WINDOW_WANTS_HEADER_LINE_P): Likewise.
1798 * fileio.c (auto_save_1): Likewise.
1799 * insdel.c (check_markers): Likewise.
1800 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
1801 * undo.c (record_insert): Likewise.
1802 * vmsproc.c (child_sig): Likewise.
1803 * window.c (unshow_buffer, window_loop): Likewise.
1804 * xterm.c (x_erase_phys_cursor): Likewise.
1805
8e7af858
GM
18062000-03-30 Gerd Moellmann <gerd@gnu.org>
1807
1808 * xfns.c (free_image_cache): Free the cache structure itself
1809 last, after all its members have been freed.
1810
1811 * lisp.h (xstrdup): Add prototype.
1812
1813 * alloc.c (xstrdup): Moved here from xfaces.c.
1814 (allocating_for_lisp): Variable removed.
1815 (lisp_malloc): Block input around the calls to malloc and
1816 mem_insert.
1817
1818 * xfaces.c (realize_tty_face): Use find_symbol_value instead
1819 of Fsymbol_value.
1820 (xstrdup): Moved to alloc.c.
1821
e0b8c689
KR
18222000-03-29 Ken Raeburn <raeburn@gnu.org>
1823
b96f9fb7
KR
1824 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
1825
1826 * emacs.c (main): Fix sense of no-loadup test.
1827
e0b8c689
KR
1828 * config.in (ENABLE_CHECKING): Undef.
1829
1830 * lisp.h (struct interval): Replace "parent" field with a union of
1831 interval pointer and Lisp_Object; add new bitfield to use as
1832 discriminant. Change other flag fields to bitfields.
1833 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
1834 is defined and the supplied test fails, print a message and
1835 abort.
1836 (eassert): New macro. Use CHECK to provide an assert-like
1837 facility.
1838
1839 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
1840 pointers; abort if the value looks like a lisp object.
1841 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
1842 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
1843 Modify for new interval parent definition.
1844
1845 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
1846 UNMARK_BALANCE_INTERVALS): Update references that need an
1847 addressable lisp object in the interval structure.
1848 (die): New function.
1849 (suppress_checking): New variable.
1850
1851 * intervals.c (interval_start_pos): Just return 0 if there's no
1852 parent object.
1853
f83c5440
GM
18542000-03-29 Gerd Moellmann <gerd@gnu.org>
1855
1856 * lread.c (read1): Accept `.' (period) as symbol start like in CL
1857 and earlier Emacs versions.
1858
1859 * keyboard.c (Ftop_level): Cancel busy-cursor.
1860
1861 * eval.c (call_debugger): Cancel busy-cursor.
1862
fdce64ff
KH
18632000-03-29 Kenichi Handa <handa@etl.go.jp>
1864
1865 * search.c (Freplace_match): Adjust multibyteness of the current
1866 buffer and NEWTEXT. Free allocated memory before signaling an
1867 error.
1868
f6a3f532
SM
18692000-03-28 Stefan Monnier <monnier@cs.yale.edu>
1870
1871 * regex.c (analyse_first): New function obtained by ripping out most
1872 of re_compile_fastmap and generalizing it a little bit so that it
1873 can also just return whether a given (sub)pattern can match the empty
1874 string or not.
1875 (regex_compile): Use `analyse_first' to decide whether the loop-check
1876 needs to be done or not for *, +, *? and +? (the loop check is costly
1877 for non-greedy repetition).
1878 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
1879
e9b309ac
DL
18802000-03-28 Dave Love <fx@gnu.org>
1881
bb15bd9a
DL
1882 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
1883 alpha.
1884
e9b309ac
DL
1885 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
1886
ed0767d8
SM
18872000-03-27 Stefan Monnier <monnier@cs.yale.edu>
1888
1889 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
1890 an expression.
1891 (enum re_opcode_t): Update description of succeed_n.
1892 (PATFETCH): Always define.
1893 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
1894 operators, char classes, shy-groups and intervals).
1895 Optimize special cases of intervals so as to only use succeed_n and
1896 jump_n when really needed.
1897 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
1898 that we don't have to handle the special cases any more.
1899 Simplify on_failure_jump handling as well.
1900
e11e7e46
JR
19012000-03-28 Jason Rumney <jasonr@gnu.org>
1902
1903 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
1904
88faab89
GM
19052000-03-27 Gerd Moellmann <gerd@gnu.org>
1906
182ff242
GM
1907 * s/freebsd.h (GC_SETJMP_WORKS): Define.
1908
1909 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 1910
182ff242
GM
1911 * alloc.c (mark_maybe_object): New function.
1912 (mark_memory): Use it.
1913 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
1914 (setjmp_tested_p, longjmp_done): New variables.
1915 (test_setjmp): New function.
1916 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
1917 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
1918
c1005d06
GM
1919 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
1920 to DEC_TEXT_POS and INC_TEXT_POS.
1921
1922 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
1923 with parameter MULTIBYTE_P.
1924
427ec082 1925 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
1926 MULTIBYTE_P.
1927
7439e5b9 1928 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
1929 buffers because it looks for multibyte character byte sequences
1930 which don't exist in unibyte text.
7439e5b9 1931
d9c545da
GM
1932 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
1933
11fd416e 1934 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
1935 [DEBUG_X_COLORS]: New functions.
1936 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
1937
1938 * xfns.c (x_set_cursor_color): Get color reference counts right.
1939
1940 * xterm.c (x_copy_color): New function.
1941 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
1942
1943 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
1944 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
1945 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
1946 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
1947 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
1948 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
1949 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
1950 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
1951 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
1952 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
1953
11fd416e
GM
1954 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
1955 names for handling per-buffer variables.
d9c545da
GM
1956
1957 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
1958 instead of MAX_BUFFER_LOCAL_VARS.
1959 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
1960
1961 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
1962
88faab89
GM
1963 * xfns.c (x_specified_cursor_type): New function.
1964 (x_set_cursor_type): Use it.
1965
1966 * buffer.h (struct buffer): Add cursor_type.
1967
d80f42b7
SM
19682000-03-26 Stefan Monnier <monnier@cs.yale.edu>
1969
1970 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 1971 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 1972 opcode.
d80f42b7
SM
1973 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
1974 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
1975 executing it as well as when popping it off the stack to find infinite
1976 loops in non-greedy repetition operators.
1977
89e80928
GM
19782000-03-26 Gerd Moellmann <gerd@gnu.org>
1979
3d4ff2dd
GM
1980 * doc.c (Qfunction_documentation): New variable.
1981 (syms_of_doc): Initialize Qfunction_documentation.
1982 (Fdocumentation): If FUNCTION is a symbol with non-nil
1983 `function-documentation' property, return a documentation derived
1984 from that.
1985
bd96bd79
GM
1986 * buffer.c (syms_of_buffer): Add default-cursor-type.
1987 (init_buffer_once): Don't let cursor_type have a local value
1988 in every buffer.
1989
19d1bc27
GM
1990 * xterm.c (x_display_and_set_cursor): Choose cursor depending
1991 on buffer-local value of cursor_type.
1992 (x_draw_bar_cursor): Add parameter WIDTH.
1993
1994 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
1995 (init_buffer_once): Set default cursor_type value to t.
1996 Mark cursor_type as local everywhere.
1997 (syms_of_buffer): New per-buffer variable cursor-type.
1998
89e80928
GM
1999 * buffer.h (struct buffer): Remove member local_var_flags,
2000 add local_flags.
2001 (MAX_BUFFER_LOCAL_VARS): New macro.
2002 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
2003 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
2004 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
2005 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
2006
2007 * print.c (print_object): Use new macros for per-buffer
2008 variables.
2009
2010 * category.c (Fset_category_table): Use new macros for per-buffer
2011 variables.
2012
2013 * buffer.c (buffer_permanent_local_flags): Make a char array.
2014 (max_buffer_local_idx): New variable.
2015 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
2016 for new handling of per-buffer variables.
2017 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
2018 (init_buffer_once): Initialize per-buffer vars differently.
2019 Set max_buffer_local_idx.
2020
2021 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
2022 variables.
2023
2024 * lread.c (defvar_per_buffer): Use new macros for per-buffer
2025 variables.
2026
2027 * data.c (do_symval_forwarding, store_symval_forwarding)
2028 (find_symbol_value, set_internal, default_value, Fset_default)
2029 (Fkill_local_variable, Flocal_variable_p): Use new macros for
2030 per-buffer variables.
2031
2032 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
2033
9a0dd3dc
GM
20342000-03-24 Gerd Moellmann <gerd@gnu.org>
2035
b68c375f
GM
2036 * xterm.c (x_term_init): Unblock input around call1 of
2037 Qvendor_specific_keysyms.
2038
9a0dd3dc
GM
2039 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
2040 (find_defun_start): Consider an open parenthesis in column 0
2041 a defun start only if open_paren_in_column_0_is_defun_start is set.
2042 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
2043
7973e637
SM
20442000-03-24 Stefan Monnier <monnier@cs.yale.edu>
2045
2046 * eval.c (Fautoload): Add entry in load-history (if after dump).
2047 * lread.c (load-history): Update docstring.
2048
39210e90
GM
20492000-03-24 Gerd Moellmann <gerd@gnu.org>
2050
2051 * indent.c (Fvertical_motion): Always use the current buffer.
2052 Temporarily change the window's buffer, if necessary.
2053
72db3ab5
GM
20542000-03-23 Gerd Moellmann <gerd@gnu.org>
2055
2056 * xterm.c (fast_find_position): Make sure not to consider rows
2057 not visible in the window.
2058
990b2375
SM
20592000-03-22 Stefan Monnier <monnier@cs.yale.edu>
2060
2061 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2062 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2063
ff4df011
JR
20642000-03-22 Jason Rumney <jasonr@gnu.org>
2065
2066 * w32menu.c (single_submenu): Set help string to NULL if none.
2067 (w32_menu_show): Set help string correctly.
2068 (add-menu-item): Set help string in MIIM_DATA for menu item.
2069 Load SetMenuItemInfoA explicitly.
2070 (w32_menu_display_help): New function.
427ec082 2071
ff4df011
JR
2072 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2073 (QCdata): Moved to xdisp.c.
2074
2075 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2076 (Vw32_charset_to_codepage_alist): Removed.
2077 (Vw32_charset_info_alist): New variable.
2078 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2079 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2080 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2081 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2082 with TODO comment.
2083 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2084 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2085 Define Vw32_charset_info_alist and w32_charset symbols.
2086
20872000-03-22 Jason Rumney <jasonr@gnu.org>
2088
2089 * makefile.nt (w32bdf.obj): Update dependencies.
2090
2091 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2092
2093 * w32fns.c: Include fontset.h after dispextern.h.
2094 (Fx_create_frame): Do not create fontset.
2095 (w32_load_system_font): Doc fix.
2096 (Fx_close_connection): Free full_name if it is not shared.
2097
2098 * w32term.c: Include fontset.h after dispextern.h.
2099 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2100 updated.
2101 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2102 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2103 (w32_font_is_double_byte): New function, needs body.
2104 (x_append_glyph): Set glyph->glyph_not_available_p.
2105 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2106 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2107 character, convert it to a unibyte character.
2108 (struct glyph_string): Delete member `charset'.
2109 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2110 calculating it is found.
2111 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2112 the case that per char metric is not available correctly.
2113 (x_fill_glyph_string): Handle the case that the specific glyph is
2114 not available correctly.
2115 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2116 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2117 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2118 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2119 fontset. Don't call FS_LOAD_FONT.
2120
439d5cb4
KR
21212000-03-22 Ken Raeburn <raeburn@gnu.org>
2122
2123 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2124 (INT_LISPLIKE): New macro.
2125 (NULL_INTERVAL_P): Use it.
2126 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2127 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2128 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2129
2130 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2131 explicit references to "parent" field of struct interval and
2132 associated unclean type conversions.
2133 * intervals.c (create_root_interval, root_interval, rotate_right,
2134 rotate_left, balance_possible_root_interval, split_interval_right,
2135 split_interval_left, interval_start_pos, find_interval,
2136 next_interval, previous_interval, update_interval,
2137 adjust_intervals_for_insertion, delete_node, delete_interval,
2138 adjust_intervals_for_deletion, merge_interval_right,
2139 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2140 copy_intervals_to_string): Likewise.
2141 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2142 Likewise.
2143 * syntax.c (update_syntax_table): Likewise.
2144
2145 * intervals.c (reproduce_tree_obj): New function, like
2146 reproduce_tree but takes a Lisp_Object for the parent. Declare
2147 with prototype.
2148 (graft_intervals_into_buffer): Use it when appropriate.
2149 (reproduce_tree): Declare with prototype.
2150 (balance_possible_root_interval): Check that the parent is a lisp
2151 object before trying to examine its type.
2152
ee1c5b21
GM
21532000-03-22 Gerd Moellmann <gerd@gnu.org>
2154
2155 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2156 as strings only if both are known to be strings.
2157
2158 * s/openbsd.h (LIBS_TERMCAP): Undef.
2159
1fb352e0
SM
21602000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2161
2162 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2163 definitions for non-Emacs compilation.
2164 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2165 outside of `#ifdef emacs'.
2166 (print_partial_compiled_pattern): Update.
2167 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2168 (re_compile_fastmap): Merge handling of charset and charset_not (for
2169 emacs and non-emacs compilation as well).
2170 Similarly for (not)categoryspec and (not)syntaxspec.
2171 Don't use the fastmap when reaching `anychar' since the added
2172 complexity is not justified.
2173 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2174 and (not)syntaxspec. Merge (not)categoryspec.
2175
fdaa1f77
KH
21762000-03-22 Kenichi Handa <handa@etl.go.jp>
2177
ff1a0d8e
KH
2178 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2179 FACE_FOR_CHAR): Define them differently for the configuration of
2180 --without-x.
fdaa1f77 2181
d152fb46
DL
21822000-03-21 Dave Love <fx@gnu.org>
2183
2184 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2185 doc string.
2186
d2cafc8c
GM
21872000-03-21 Gerd Moellmann <gerd@gnu.org>
2188
2189 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2190 (lface_fully_specified_p): Don't check contents of
2191 LFACE_FONT_INDEX because that attribute is optional.
2192 (realize_x_face): Remove now unwarranted xassert.
2193
9111d4b5
KH
21942000-03-21 Kenichi HANDA <handa@etl.go.jp>
2195
2196 The following changes are to make font selection based on
2197 characters, not charset. In addition, they recover fontset
2198 facilities while utilizing the new font selection mechanism.
2199
6c4bfdc0
KH
2200 * Makefile.in (fontset.o): Depend on dispextern.h.
2201
2202 * alloc.c (mark_face_cache): Don't mark face->registry.
2203
9111d4b5
KH
2204 * dispextern.h (struct glyph): New member glyph_not_available_p.
2205 Use 22 bits for face_id.
2206 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2207 (struct face): Delete member registry, new member ascii_face.
2208 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2209 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2210 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2211 (struct it): Delete member charset, new member
2212 glyph_not_available_p.
2213
2214 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2215 (struct fontset_info, struct fontset_data): Structs removed.
2216 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2217 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2218 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2219 (fs_free_face_fontset, fontset_font_pattern,
2220 face_suitable_for_char_p, face_for_char,
2221 make_fontset_for_ascii_face): Extern them.
2222 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2223 (FS_LOAD_FACE_FONT): New macro.
2224
2225 * fontset.c: All codes rewritten or adjusted for the change of
2226 fontset implementation. Now fontset is represented by char table.
2227 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2228 removed.
2229 (my_strcasecmp): Function removed.
2230 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2231 variables.
2232 (AREF, ASIZE): New macros.
2233 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2234 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2235 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2236 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2237 fontset_id_valid_p, font_family_registry, fontset_name,
2238 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2239 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2240 New functions.
2241 (fs_load_font): New arg FACE. Caller changed.
2242 (fs_query_fontset): Argument changed. Caller changed.
2243 (Fquery_fontset): call fs_query_fontset.
2244 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2245 Functions removed.
2246 (clear_fontset_elements, check_registry_encoding,
2247 check_fontset_name): New functions.
2248 (syms_of_fontset): Set char-table-extra-slots property of fontset
2249 to 3. Staticpro and initialize Vfontset_table and
2250 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2251
2252 * frame.h (struct frame): Member `fontset_data' removed.
2253 (FRAME_FONTSET_DATA): Macro removed.
2254
2255 * frame.c (make_frame): Don't allocate f->fontset_data.
2256 (Fdelete_frame): Don't free f->fontset_data.
2257
6c4bfdc0
KH
2258 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2259
9111d4b5
KH
2260 * xdisp.c (charset_at_position): Function removed.
2261 (init_iterator): Don't set member charset of struct `it'.
2262 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2263 next_element_from_display_vector, insert_left_trunc_glyphs):
2264 Likewise.
2265 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2266 FACE_FOR_CHARSET.
2267 (get_next_display_element, append_space,
2268 extend_face_to_end_of_line): Likewise.
2269
2270 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2271 Variables removed.
2272 (clear_font_table, frame_update_line_height, load_face_font):
2273 Adjusted for the change of fontset implementation.
2274 (load_face_fontset_font): Function removed.
2275 (pixel_point_size): New function.
2276 (font_list): Argument type changed. Caller changed.
2277 (LFACE_FONT): New macro.
2278 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2279 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2280 Lisp_Object. Determine the font name by actually loading a font
2281 by the specified pattern. Set LFACE_FONT (lface) to the specified
2282 pattern. Even if a font is not found, don't try alternatives.
2283 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2284 (set_font_frame_param): If `font' is specified in lface, use it.
2285 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2286 (lface_same_font_attributes_p): Likewise.
2287 (make_realized_face): Arguent changed. Caller changed. Set
2288 face->ascii_face to face itself.
2289 (free_realized_face): Free face->fontset if face is for ASCII.
2290 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2291 deduce_unibyte_registry, x_charset_registry): Functions removed.
2292 (free_realized_multibyte_face): New function.
2293 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2294 changed. Caller changed.
2295 (try_font_list): Argument type changed.
2296 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2297 (choose_face_font): Argument changed. Handle fontset properly.
2298 (choose_face_fontset_font): Function removed.
2299 (realize_default_face, realize_named_face): Don't remove the
2300 former face here.
2301 (realize_face): Argument changed. Caller changed. Remove face
2302 with the arg former_face_id in advance. Load font for the new
2303 face.
2304 (realize_x_face): Argument changed. Caller changed. For a
2305 multibyte character, share fontset with base_face. For a single
2306 byte character, make a new realized fontset. Don't load a font
2307 here.
2308 (realize_tty_face): Argument changed. Caller changed.
2309 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2310 (face_at_buffer_position): Don't check multibyte_p for returning
2311 DEFAULT_FACE_ID.
2312 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2313 FACE_SUITABLE_FOR_CHARSET_P.
2314 (syms_of_xfaces): Remove code for Qx_charset_registry and
2315 Vface_default_registry.
2316
6c4bfdc0
KH
2317 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2318 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2319 (x_per_char_metric): Don't try FONT->default_char. Even if
2320 pcm->width is zero, glyph bits may exist.
2321 (x_encode_char): Always initialize char2b->byte1.
2322 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2323 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2324 changed.
2325 (x_append_glyph): Set glyph->glyph_not_available_p.
2326 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2327 it->charset. Handle the case that per char metric is not
2328 available. If it->multibyte_p is zero and it->c is a multibyte
2329 character, convert it to a unibyte character.
2330 (struct glyph_string): Delete member `charset'.
2331 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2332 the case that per char metric is not available correctly.
2333 (x_fill_glyph_string): Handle the case that the specific glyph is
2334 not available correctly.
2335 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2336 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2337 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2338 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2339 fontset. Don't call FS_LOAD_FONT.
2340
2341 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2342 (x_create_tip_frame): Likewise.
2343 (Fx_close_connection): Free full_name of font_info.
2344
2345 * fns.c (optimize_sub_char_table): New function.
2346 (Foptimize_char_table): New function.
2347 (syms_of_fns): Defsubr Soptimize_char_table.
2348
b33dd3b0
GM
23492000-03-20 Gerd Moellmann <gerd@gnu.org>
2350
2351 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2352 only if buffer is displayed in some window.
2353
2354 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2355 (try_window_reusing_current_matrix): Don't call scroll run
2356 function if run's current and desired position are the same;
2357 this prevents cursor flickering.
2358
4e8a9132
SM
23592000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2360
2361 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2362
2363 * regex.c (RE_STRING_CHAR): New macro.
2364 (GET_CHAR_AFER_2): Remove.
2365 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2366 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2367 (print_partial_compiled_pattern, re_compile_fastmap)
2368 (re_match_2_internal): Remove on_failure_jump_exclusive.
2369 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2370 optimization only need to work for * (ie. can use of_keep_string_jump).
2371 Remove the special case for .*\n since it is now covered by the general
2372 optimization.
2373 (re_search_2): Don't bother with `room'.
2374 (skip_one_char): New function.
2375 (skip_noops): Simplify since `memory' is not needed any more.
2376 (mutually_exclusive_p): Restructure slightly to use `switch' and
2377 add handling for "all" remaining cases.
2378 (re_match_2_internal): Change on_failure_jump_smart to use
2379 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2380 rather than on_failure_jump_exclusive.
2381
2136fdd4
GM
23822000-03-19 Gerd Moellmann <gerd@gnu.org>
2383
2384 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2385 number of bits per RGB because it's everywhere used as the depth
2386 of the visual.
2387
2388 * term.c (calculate_costs): Remove code dealing with X frames.
2389
e53ae11c
RS
23902000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2391
2392 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2393
d7b511c4
GM
23942000-03-18 Gerd Moellmann <gerd@gnu.org>
2395
2396 * lread.c (read_integer): Unread the last char not consumed.
2397
16b5d424
GM
23982000-03-17 Gerd Moellmann <gerd@gnu.org>
2399
2400 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2401 which are in the process of being deleted.
16b5d424 2402
1fa28578
GM
24032000-03-16 Gerd Moellmann <gerd@gnu.org>
2404
83488cce
GM
2405 * Makefile.in (mostlyclean): Add `*.core'.
2406 (clean): Add `bootstrap-emacs'.
2407
1fa28578
GM
2408 * lread.c (read_integer): New function.
2409 (read1): Support read syntax #o, #x, #b, #r.
2410
99633e97
SM
24112000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2412
1fa28578
GM
2413 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2414 make sure POINTER_TO_OFFSET gives the same value before and after
2415 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2416 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2417 (debug): Now only active if > 0 rather than if != 0.
2418 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2419 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2420 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2421 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2422 (store_op1, store_op2, insert_op1, insert_op2)
2423 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2424 (group_in_compile_stack): Move to after its arg's types are
2425 declared and add a prototype.
99633e97 2426 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2427 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2428 wrapper.
99633e97 2429 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2430 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2431 indentation of the greedy-op and shy-group code.
99633e97
SM
2432 (at_(beg|end)line_loc_p): Fix argument's types.
2433 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2434 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2435 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2436 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2437 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2438 QUIT unconditionally.
99633e97 2439
699238d9
GM
24402000-03-15 Gerd Moellmann <gerd@gnu.org>
2441
2442 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2443 a sole completion.
2444
2445 * process.c (send_process): Add a hint that the function
2446 can call Lisp code to its comment.
2447
2448 * lread.c (load_dangerous_libraries): New variable.
2449 (Vbytecomp_version_regexp): New variable.
2450 (safe_to_load_p): New function.
2451 (Fload): Handle files not compiled with Emacs specially.
2452 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2453
34e23e5a
GM
24542000-03-14 Gerd Moellmann <gerd@gnu.org>
2455
9c763cca
GM
2456 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2457
2458 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2459 support functions only if HAVE_X11R6_XIM is defined.
2460 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2461
2462 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2463
2464 * xfns.c (X_I18N_INHIBITED): Don't define.
2465 (create_frame_xic): Remove conditional compilation on
2466 X_I18N_INHIBITED.
2467 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2468
2469 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2470 (HAVE_X11R6_XIM): Define.
2471
2472 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2473
34e23e5a
GM
2474 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2475 If set, call XSynchronize.
2476
66f0296e
SM
24772000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2478
34e23e5a
GM
2479 * regex.c: Declare a new type `re_char' used throughout the code
2480 for the string char type. It's `const unsigned char' to match the
2481 rest of Emacs. Consistently make sure all pointers to strings use
2482 it and make sure all pointers into the pattern use `unsigned
2483 char'.
66f0296e 2484 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2485 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2486 code duplication.
66f0296e
SM
2487
2488 * charset.h (GET_CHAR_AFTER_2): Remove.
2489 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2490
854a025c
KR
24912000-03-12 Ken Raeburn <raeburn@gnu.org>
2492
2493 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2494 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2495 of them try to use backquotes.
2496
b9d2c7e2
DL
24972000-03-12 Dave Love <fx@gnu.org>
2498
2499 * unexelf.c: Restore changes of 1999-10-19.
2500 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2501 fix its type and alignment; copy it from current process.
2502
5e5dff44
GM
25032000-03-12 Gerd Moellmann <gerd@gnu.org>
2504
9b2f3c38
GM
2505 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2506 has been found. Fix bug not computing timer's predecessor.
2507
427ec082 2508 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
2509 file name.
2510
e1cff360
GM
2511 * window.c (Fsave_window_excursion): Doc fix.
2512
5e5dff44
GM
2513 * xfns.c (x_defined_color): Rewritten to use
2514 x_allocate_nearest_color.
2515
e411ce4b
EZ
25162000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2517
2518 * msdos.c (vga_installed): New function, code moved from
2519 dos_set_window_size.
2520 (Qbar, Qcursor_type, outside_cursor): New variables.
2521 (syms_of_msdos): Intern and staticpro them.
2522 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2523 shape used outside Emacs when called for the first time.
2524 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2525 cursor shape used outside Emacs.
2526 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2527 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2528 type has changed.
2529 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2530 parameters specify the cursor. Make qreverse a global
2531 variable (renamed to Qreverse).
2532
80460654
GM
25332000-03-09 Gerd Moellmann <gerd@gnu.org>
2534
2535 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2536
95cd4c40
SM
25372000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2538
2539 This is a big redesign of failure-stack and register handling, prompted
2540 by bugs revealed when trying to add shy-groups. Overall, what happened
2541 is that loops are now structured a little differently, groups can be
2542 shy and the code is a little simpler.
2543
2544 * regex.h: Update the copyright.
2545 (RE_SHY_GROUPS): New value.
2546 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2547 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2548
80460654
GM
2549 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2550 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2551 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2552 for (start|stop)_memory since they now only take one argument (the
2553 second has becomes unnecessary).
2554 (print_partial_compiled_pattern): Adjust for changes in
2555 re_opcode_t.
2556 (print_compiled_pattern): Use %ld to printf long ints and flush to
2557 make debugging a little easier.
95cd4c40
SM
2558 (union fail_stack_elt): Make the integer unsigned.
2559 (struct fail_stack_type): Add a `frame' element.
2560 (INIT_FAIL_STACK): Init `frame' as well.
2561 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2562 (DEBUG_PUSH, DEBUG_POP): Remove.
2563 (NUM_REG_ITEMS): Remove.
2564 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2565 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2566 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2567 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2568 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2569 macros.
2570 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2571 address pushed is not the destination of the jump but the source
2572 of it instead.
95cd4c40
SM
2573 (NUM_FAILURE_ITEMS): Remove.
2574 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2575 registers before the actual failure point). Don't hardcode any
2576 meaning for str==NULL anymore.
95cd4c40 2577 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2578 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2579 Remove.
95cd4c40
SM
2580 (REG_UNSET_VALUE): Use NULL (why not?).
2581 (compile_range): Remove declaration since it doesn't exist.
2582 (struct compile_stack_elt_t): Remove inner_group_offset.
2583 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2584 (regex_grow_registers): Remove dead code.
2585 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2586 (regex_compile): Add shy-groups Change loops to use
2587 on_failure_jump_smart&jump instead of
2588 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2589 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2590 variable to me). Use `jump' instead of `jump_past_alt' and don't
2591 bother with push_dummy_failure in alternatives since it is now
2592 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2593 emacs' for (re)allocating the stack.
2594 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2595 from loop when bufp->can_be_null rather than jumping to `done'.
2596 Avoid jumping backwards so as to ensure termination. Use
2597 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2598 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2599 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2600 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2601 improve mutually_exclusive_p to handle ".+\n".
2602 (lowest_active_reg, highest_active_reg,
2603 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2604 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2605 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2606 variables. Push register (in `start_memory') on the stack rather
2607 than storing it in old_reg(start|end). Remove the cycle detection
2608 from `stop_memory', replaced by the use of on_failure_jump_loop
2609 for greedy loops. Add code for the new on_failure_jump_<foo>.
2610 Remove ad-hoc code in `on_failure_jump' to push more registers in
2611 the case of a loop. Take out code from `maybe_pop_jump' into
2612 separate functions and adapt it to the semantics of
2613 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2614 and push_dummy_failure. Remove dummy_failure handling and
2615 handling of `failures to jump to on_failure_jump' (this last one
2616 was already dead code, it seems).
2617 (group_match_null_string_p, alt_match_null_string_p)
2618 (common_op_match_null_string_p): Remove.
95cd4c40 2619
7397acc4
DL
26202000-03-08 Dave Love <fx@gnu.org>
2621
2622 * config.in: Don't depend on __STDC__ for volatile.
2623 Add POINTER_TYPE, PTR, PROTOTYPES.
2624
2625 * hftctl.c, strftime.c: Use PROTOTYPES.
2626 * eval.c (find_handler_clause): Likewise.
2627
2628 * mem-limits.h: Use POINTER_TYPE.
2629
2630 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
2631 (memory_warnings): Declare using POINTER_TYPE.
2632
5e91ff9e
GM
26332000-03-08 Gerd Moellmann <gerd@gnu.org>
2634
feab4fba
GM
2635 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
2636
25edb08f
GM
2637 * xdisp.c (display_echo_area): Temporarily inhibit garbage
2638 collection.
2639
5e91ff9e
GM
2640 * xfns.c: Remove obsolete code in #if 0.
2641 (Fx_focus_frame): New function.
2642
a735b7e1
KH
26432000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2644
2645 * coding.c (coding_category_name): Add coding-category-utf-8,
2646 coding-category-utf-16-be, coding-category-utf-16-le.
2647 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
2648 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
2649 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
2650 (detect_coding_utf_8): New function.
2651 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
2652 UTF_16_LOW_SURROGATE_P): New macros.
2653 (detect_coding_utf_16): New function
2654 (detect_coding_mask): When priorities are specified, skip any
2655 categories that have `nil' coding-system. Fix bug of returning
2656 wrong mask when PRIORITIES is specified and detect_coding_XXX()
2657 returns a mask not set in PRIORITIES.
2658 (detect_eol_type_in_2_octet_form): New function.
2659 (detect_eol): selects detect_eol_type_XXX to call according to
2660 cooding->category_idx.
2661 (detect_coding_system): Remove `nil' coding-system in the result.
2662 (Fupdate_coding_systems_internal): Update all coding-categories.
2663
2664 * coding.h (CODING_CATEGORY_IDX_UTF_8,
2665 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
2666 macros.
2667 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
2668 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
2669 CODING_CATEGORY_IDX_UTF_16_LE.
2670 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
2671 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
2672 (CODING_CATEGORY_MASK_ANY): Include the above macros.
2673 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
2674
9994cc69
GM
26752000-03-07 Gerd Moellmann <gerd@gnu.org>
2676
e9b4e5ff
GM
2677 * doc.c (Fdocumentation_property): If value is not a string,
2678 and doesn't refer to etc/DOC, evaluate it to obtain a string.
2679
f7daf1e1
GM
2680 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
2681 close the display with XtCloseDisplay. This caused a bus error
2682 on OpenWindows.
2683
9994cc69
GM
2684 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
2685 complete but not unique.
2686
4336c705
GM
26872000-03-06 Gerd Moellmann <gerd@gnu.org>
2688
18bb0684
GM
2689 * process.c (send_process): Remove local variable `procname' that
2690 might become invalid when a GC happens. Instead, access the
2691 process name slot directly.
2692
4336c705
GM
2693 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
2694 orig_height if set.
2695
2696 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
2697 orig_height if set.
2698
515d0d0e
EZ
26992000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2700
2701 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
2702 glyph matrices have been freed.
2703
100b3cbb
GM
27042000-03-05 Gerd Moellmann <gerd@gnu.org>
2705
50df5e5a 2706 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 2707 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
2708
2709 * xfns.c (QCdata): Moved to xdisp.c.
2710
2711 * xdisp.c (QCdata): Moved here from xfns.c.
2712 (syms_of_xdisp): Initialize QCdata.
2713
2714 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
2715
2716 * window.c (coordinates_in_window): Use
2717 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
2718 FRAME_INTERNAL_BORDER_WIDTH.
2719
100b3cbb 2720 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 2721 it is obviously invalid.
100b3cbb
GM
2722
2723 * xterm.c (x_term_init): Create a colormap if not using the
2724 default visual.
2725
2726 * xterm.h (select_visual): Change prototype.
2727
2728 * xfns.c (select_visual): Rewritten. Recognize user-specified
2729 visual classes.
2730 (visual_classes): New variable.
2731
64d739c4
GM
27322000-03-04 Gerd Moellmann <gerd@gnu.org>
2733
2734 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
2735 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
2736 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
2737 (x_decode_color): Don't handle allocation of white and black
2738 specially.
2739 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
2740 XtNcolormap resources.
2741 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
2742 (Fx_create_frame): Initialize color members of x_output structure.
2743 (xpm_load): Pass colormap to XPM lib.
2744
2745 * xfaces.c (x_free_colors): Access colormap of frame using
2746 FRAME_X_COLORMAP. Be paranoid about freeing black and white
2747 when default colormap is used.
2748
2749 * xterm.c (x_term_init): Set Colormap member of x_display_info
2750 structure. Copy colormap if resource `privateColormap' is
2751 specified (PseudoColor only).
2752 (x_setup_relief_color): Access colormap of frame using
2753 FRAME_X_COLORMAP.
2754
2755 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
2756 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
2757
c3cee013
JR
27582000-03-04 Jason Rumney <jasonr@gnu.org>
2759
2760 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
2761 other non-platform-specific equivalents.
64d739c4 2762 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
2763 specific functions and macros as their w32 equivalents where
2764 non-platform-specifics are not available.
2765 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
2766 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
2767 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
2768 (frame_update_line_height): Use macros to access f->output_data.
2769 (defined_color): Remove FIXME comments; fixed.
2770 (x_face_list_fonts, prepare_face_for_display): Put X specifics
2771 into #ifdef blocks. Add WINDOWSNT blocks.
2772 (Fx_list_fonts): Use macros for accessing font data.
2773 (set_lface_from_font_name): Different default fonts for X and
2774 WINDOWSNT.
2775 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
2776 scalable for backward compatibility.
64d739c4 2777 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
2778 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
2779
64d739c4 2780 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
2781 syms_of_w32faces.
2782
2783 * makefile.nt (w32faces.obj): Remove.
2784 (xfaces.obj): Add.
2785
807cc41c
JR
27862000-03-03 Jason Rumney <jasonr@gnu.org>
2787
2788 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
2789 correct parameters.
2790
0007072a
KR
27912000-03-03 Ken Raeburn <raeburn@gnu.org>
2792
2793 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
2794 standard ELF definitions here if the system header does not.
2795
71a6ba55
GM
27962000-03-03 Gerd Moellmann <gerd@gnu.org>
2797
2798 * xterm.c (PER_CHAR_METRIC): Removed.
2799 (x_per_char_metric_1, x_default_char): New functions.
2800 (x_per_char_metric): If font's default char is invalid, return
2801 metrics of a suitably chosen usable default char.
2802 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
2803 char, replace occurrences of unprintable chars with a suitably
2804 chosen usable default char.
71a6ba55 2805
900fa1f1
GM
28062000-03-02 Gerd Moellmann <gerd@gnu.org>
2807
42f55fe0
GM
2808 * xterm.c (note_mouse_highlight): Return quickly if frame's
2809 glyph matrices have been freed.
2810
2811 * dispnew.c (free_glyphs): Block input while freeing matrices.
2812
900fa1f1
GM
2813 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
2814
2815 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
2816 x_free_colors.
2817
2818 * dispextern.h (x_free_colors): Add prototype.
2819
2820 * xfaces.c (x_free_colors): New function.
2821 (unload_color, free_face_colors): Use it.
2822
2f950292
EZ
28232000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2824
2825 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
2826
2827 * window.c [MSDOS]: Include msdos.h.
2828
54d04320
DL
28292000-03-02 Dave Love <fx@gnu.org>
2830
2831 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
2832
2833 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
2834 set C_OPTIMIZE_SWITCH for gcc.
2835
0ba93ac4
KH
28362000-03-02 Kenichi Handa <handa@etl.go.jp>
2837
2838 * coding.c (coding_save_composition): Be sure to allocate
2839 composition data area in coding even if there's no composition in
2840 the current run.
2841
a2bc11d4
JR
28422000-03-01 Jason Rumney <jasonr@gnu.org>
2843
2844 * w32term.c: Equivalent changes to those made to xterm.c on
2845 2000-02-25 and 2000-02-24.
2846
2847 * w32fns.c: Equivalent changes to those made to xfns.c on
2848 2000-02-25 and 2000-02-21.
2849
2850 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
2851 correct line-end convention is followed.
2852
2853 * w32menu.c [HAVE_BOXES]: Remove #undef.
2854 (single_keymap_panes): Remove code for simulating checkmarks.
2855 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
2856 Remove code for drawing simulated checkmarks.
2857 (w32_menu_show): make unibyte help string correctly.
2858 (add_menu_item): draw standard Windows checkmarks. Draw radio
2859 buttons as radio buttons if possible.
2860
72d19d75
GM
28612000-03-01 Gerd Moellmann <gerd@gnu.org>
2862
2df636f4
GM
2863 * sysdep.c (start_of_text): Don't define this function for NetBSD
2864 with ELF.
2865
427ec082 2866 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
2867 Don't define.
2868 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
2869 (LINKER): Don't undef if __NetBSD__ is defined.
2870
2871 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
2872
2873 * fileio.c [__NetBSD__]: Define `unix'.
2874
72d19d75
GM
2875 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
2876
ed4d0512
GM
28772000-02-29 Gerd Moellmann <gerd@gnu.org>
2878
50b1039f
GM
2879 * atimer.c (start_atimer): Don't abort when timers are stopped.
2880 (append_atimer_lists): New function.
2881 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
2882 arbitrary lists of stopped and running atimers.
2883
ed4d0512
GM
2884 * atimer.c (cancel_atimer): Handle canceling an atimer when
2885 some timers are stopped.
2886
2887 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
2888 after canceling it.
2889
2890 * fns.c (maybe_resize_hash_table): Handle case of new size
2891 coming out as being the same as old size.
2892
387023ee
JR
28932000-02-27 Jason Rumney <jasonr@gnu.org>
2894
2895 * makefile.nt: Add atimer.h to dependencies.
2896 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
2897 * w32console.c: Only disable window system features for dispextern.h
2898 (initialize_w32_display): Build a display info for the console.
2899 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
2900 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
2901 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
2902 as 2 button mice.
2903 * w32gui.h (struct W32FontStruct): Revert last change after change
2904 to xdisp.c.
2905 * w32menu.c (single_submenu): Set up help string.
2906 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
2907 (w32_dialog_show): Set up help string.
2908 * w32term.c (w32_display_info_for_display): Remove unused function.
2909 (w32_draw_bitmap): Use pre-built bitmaps.
2910 (w32_initialize_display_info): New function to initialize parts of
2911 display info that are common to both GUI and console frames.
2912 (w32_term_init): Use w32_initialize_display_info. Do not set
2913 Vw32_num_mouse_buttons here, as it is not called for console
2914 frames. Build bitmaps for indicating truncated lines etc.
2915 (x_delete_display): Destroy pre-built bitmaps.
2916 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
2917 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
2918
4516715a
DL
29192000-02-27 Dave Love <fx@gnu.org>
2920
2921 * lisp.h: Add a bunch of prototypes.
2922
171ca836
KH
29232000-02-26 Kenichi Handa <handa@etl.go.jp>
2924
2925 * keyboard.c (read_char): Set `usec' correctly.
2926
4013921d
KH
29272000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2928
2929 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
2930 `lambda', set reg[RRR] to the map index.
2931 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
2932 reg[RRR] to 0. Otherwise, set it to -1.
2933
9244a058
GM
29342000-02-25 Gerd Moellmann <gerd@gnu.org>
2935
2df636f4 2936 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 2937
f43d79c1 29382000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
427ec082 2939
f43d79c1
GM
2940 * fileio.c (Ffile_symlink_p): If result starts with a `/'
2941 and contains a `:', prepend `/:'.
2942
2943 * window.c (select_window_1): If selected_window is nil,
2944 don't "swap out" the buffer's point.
2945 (Fset_window_configuration): Set selected_window to nil
2946 before calling Fselect_window.
2947 (unshow_buffer): Don't set point in buffer from window's point
2948 if another more recently selected window also shows the buffer.
2949
bed0c171
GM
29502000-02-25 Gerd Moellmann <gerd@gnu.org>
2951
449c3c52
GM
2952 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
2953
f5b58615
GM
2954 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
2955 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
2956 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
2957 variables.
2958 (DEFAULT_BUSY_CURSOR_DELAY): New define.
2959 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
2960 (hide_busy_cursor): New functions.
2961 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
2962
2963 * minibuf.c (read_minibuf): Cancel busy-cursor.
2964
2965 * keyboard.c (command_loop_1): Call start_busy_cursor before
2966 Fcommand_execute and cancel_busy_cursor after it.
2967 (timer_check): Remove busy-cursor code.
2968 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
2969 cursor timer.
2970
2971 * process.c (wait_reading_process_input): Remove busy-cursor code.
2972
2973 * eval.c (Fsignal): Call cancel_busy_cursor instead of
2974 Fx_hide_busy_cursor.
2975
2976 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
2977 Remove prototyoes.
2978 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
2979
2980 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
2981
2982 * xterm.c (XTread_socket): Remove busy-cursor code.
2983
4eb8436f
GM
2984 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
2985 (build_frame_matrix_from_leaf_window): Put code handling
2986 glyph row's not being a slice of a frame row in #if 0.
2987 (sync_window_with_frame_matrix_rows): New function.
2988 (frame_row_to_window): New function.
2989 (mirror_line_dance): Handle copies between windows.
2990
3cb65b0e
GM
2991 * lread.c (Fload): Use `xfree' instead of `free'.
2992 (init_obarray): Use `xmalloc' instead of `malloc'.
2993
bed0c171
GM
2994 * window.c (Fset_window_buffer): Set WINDOW to the window
2995 after decoding.
2add4349
GM
2996 (coordinates_in_window): Take frame's internal border width
2997 into account.
bed0c171 2998
42088c12
GM
29992000-02-24 Gerd Moellmann <gerd@gnu.org>
3000
3001 * xterm.c (x_display_and_set_cursor): Display cursor of
3002 non-selected windows depending on the setting of
3003 cursor_in_non_selected_windows.
3004
3005 * xdisp.c (cursor_in_non_selected_windows): New variable.
3006 (syms_of_xdisp): DEFVAR_BOOL it.
3007
d1e103b2
GM
30082000-02-23 Gerd Moellmann <gerd@gnu.org>
3009
723e779c
GM
3010 * data.c (Fstring_to_number): If number is greater than what
3011 fits into an integer, return a float.
3012
d1e103b2
GM
3013 * eval.c (specbind): Remove references to
3014 keyword_symbols_constant_flag.
3015
3016 * data.c (keyword_symbols_constant_flag): Removed.
3017 (Fmakunbound, set_internal, syms_of_data): Remove references to
3018 keyword_symbols_constant_flag.
3019
3020 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
3021
214f877f
KH
30222000-02-23 Kenichi Handa <handa@etl.go.jp>
3023
3024 * syntax.c (multibyte_syntax_as_symbol): New variable.
3025 (syms_of_syntax): Declare it as a Lisp variable.
3026 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
3027 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
3028 nonzero, treat all multibyte characters as symbol.
42088c12 3029 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
3030 characters.
3031
130adcb7
EZ
30322000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
3033
3cb65b0e 3034 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
3035 a deleted frame.
3036
17cbbf95
GM
30372000-02-21 Gerd Moellmann <gerd@gnu.org>
3038
3039 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
3040
3041 * xfns.c (x_window_to_frame, x_any_window_to_frame)
3042 (x_non_menubar_window_to_frame): Check the busy-cursor window.
3043
beb0bc36
DL
30442000-02-21 Dave Love <fx@gnu.org>
3045
3046 * frame.c (Vmouse_position_function): New variable.
3047 (Fmouse_position): Use it.
3048 (syms_of_frame): Install it.
3049
3050 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
3051
1d92afcd
GM
30522000-02-20 Gerd Moellmann <gerd@gnu.org>
3053
3054 * fileio.c (Finsert_file_contents): Unbind the binding of
3055 standard-output done by temp_output_buffer_setup.
329eed9f
GM
3056
3057 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
3058 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
3059 (specbind, unbind_to): Handle most common case of non-constant
3060 symbol with trivial value specially.
3061
3062 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3063
2d06696f
RS
30642000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3065
3066 * data.c (Fmake_variable_buffer_local): Doc fix.
3067 Init found_for_buffer to 0.
3068 (Fmake_variable_frame_local): If the variable has already
3069 been buffer-local, set the check_frame field.
3070
1d4311c3
EZ
30712000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3072
3073 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3074 produced for CODING_MODE_LAST_BLOCK requires.
3075
2dc95ddd
DL
30762000-02-18 Dave Love <fx@gnu.org>
3077
3078 * keyboard.c (echo_keystrokes): Remove declaration.
3079 (Vecho_keystrokes) New variable.
3080 (read_char, record_menu_key, read_key_sequence): Use it to allow
3081 use of float value.
3082 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3083
3084 * lread.c: Undef feature selection macros before defining.
3085
f0930f35
GM
30862000-02-18 Gerd Moellmann <gerd@gnu.org>
3087
3088 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3089 for symbols other than the symbol in question.
3090
e3d4de90
DL
30912000-02-17 Dave Love <fx@gnu.org>
3092
3093 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3094
0b378936
GM
30952000-02-17 Gerd Moellmann <gerd@gnu.org>
3096
d621caf7
GM
3097 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3098
0b378936
GM
3099 * alloc.c (enum mem_type): Compile unconditionally.
3100
3b451f74
EZ
31012000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3102
3103 * xfaces.c (tty_defined_color): Don't return faulire indication
3104 for unspecified-fg and unspecified-bg pseudo-colors.
3105
10689a01
GM
31062000-02-17 Gerd Moellmann <gerd@gnu.org>
3107
1216f5e4
GM
3108 * alloc.c (mark_object): Don't mark symbol names in pure space.
3109 (gc_sweep): Don't unmark symbol names in pure space.
3110
3111 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3112 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3113 [GC_MARK_STACK]: New defines.
427ec082 3114 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
3115 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3116
3117 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3118
3119 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3120 allocate_buffer instead of xmalloc.
3121
3122 * alloc.c (toplevel): Include setjmp.h.
3123 (PURE_POINTER_P): New define.
3124 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3125 (Vdead) [GC_MARK_STACK]: New variable.
3126 (lisp_malloc): Add parameter TYPE, call mem_insert if
3127 GC_MARK_STACK is defined.
3128 (allocate_buffer): New function.
427ec082 3129 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
3130 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3131 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3132 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3133 (MEM_NIL) [GC_MARK_STACK]: New define.
3134 (struct mem_node) [GC_MARK_STACK]: New structure.
3135 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3136 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3137 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3138 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3139 (mark_stack) [GC_MARK_STACK]: New functions.
3140 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3141 (clear_marks): Removed.
3142 (gc_sweep): Set free conses' car, free floats' type, free
3143 symbols' function to Vdead. Use lisp_free to free buffers.
3144 (init_alloc_once): Initialize Vdead.
3145 (survives_gc_p): Return non-zero for pure objects.
3146
3147 * alloc.c: Add comments throughout the file.
3148
2503c8b1
GM
3149 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3150 that unblocks alarms.
3151
8389e1e2
GM
3152 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3153 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3154 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3155
10689a01 3156 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 3157
bfc17d18
KH
31582000-02-17 Kenichi Handa <handa@etl.go.jp>
3159
4a09dee0
KH
3160 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3161 avoid infinite error signaling. Allocate sufficient memory for
3162 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3163
2b927d02
SM
31642000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3165
3166 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3167 depends on the previous behavior.
3168
b49cb764
GM
31692000-02-16 Gerd Moellmann <gerd@gnu.org>
3170
3171 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3172
99e95407
GM
31732000-02-15 Gerd Moellmann <gerd@gnu.org>
3174
3175 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3176
3177 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3178 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3179 write(2).
3180
6ffd3cf7
RS
31812000-02-15 Richard M. Stallman <rms@gnu.org>
3182
3183 * data.c (set_internal): Don't make variable buffer-local
3184 if within a let-binding for the same buffer.
3185 (let_shadows_buffer_binding_p): New function.
3186
3187 * eval.c (specbind): For buffer-local value,
3188 record the current buffer also.
3189 (unbind_to): Cope with that change.
3190
cad53475
GM
31912000-02-15 Gerd Moellmann <gerd@gnu.org>
3192
3193 * window.c (Fsave_window_excursion): Doc fix.
3194
1aa963c8
SM
31952000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3196
3197 * syntax.c (back_comment): Make sure we only consider comment-starters
3198 of the relevant style and return -1 in case of a failure to find the
3199 beginning of the comment.
3200 (Fforward_comment): If back_comment fails, go back to the position just
3201 after the comment-end.
3202 (scan_lists): Add comment describing a very minor bug.
3203
b9b84fd3
SM
32042000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3205
3206 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3207 `completion-regexp-list' in the docstring.
3208
3a28db80
DL
32092000-02-14 Dave Love <fx@gnu.org>
3210
3211 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3212
fb4a568d
SM
32132000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3214
3215 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3216 to Emacs' syntax. Also fix the comment about set/not-set meanings
3217 since Emacs syntax is not the value 0 any more.
3218 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3219 since it's now part of RE_SYNTAX_EMACS.
3220
1063ebb5
DL
32212000-02-12 Dave Love <fx@gnu.org>
3222
3223 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3224 Alpha.
3225
fb07a302
GM
32262000-02-12 Gerd Moellmann <gerd@gnu.org>
3227
3228 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3229
aaf2320c
DL
32302000-02-12 Dave Love <fx@gnu.org>
3231
3232 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3233
3234 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3235 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3236 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3237
3238 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3239
3240 * s/nextstep.h: Don't define HAVE_ALLOCA.
3241
3242 * config.in: Add vfork bits.
3243
eedf8bde
GM
32442000-02-12 Gerd Moellmann <gerd@gnu.org>
3245
3246 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3247 unwind function to undo the effect of stopping atimers.
3248
3249 * keyboard.c (bind_polling_period): Stop all timers except
3250 poll_timer.
3251
3252 * atimer.c (stopped_atimers): New variable.
3253 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3254 New functions.
3255
3256 * atimer.h (stop_other_atimers, run_all_atimers)
3257 (unwind_stop_other_atimers): Add function prototypes.
427ec082 3258
eedf8bde
GM
3259 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3260
8476c2f8
KR
32612000-02-11 Ken Raeburn <raeburn@gnu.org>
3262
3263 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3264 library may depend on jpeg.
3265 (atimer.o): Depends on atimer.c.
3266
0e85e4a3
KH
32672000-02-11 Kenichi Handa <handa@etl.go.jp>
3268
3269 * insdel.c (del_range_1): Call update_compositions.
3270 (del_range_both): Call update_compositions just once..
3271
97fa0cc8
DL
32722000-02-10 Dave Love <fx@gnu.org>
3273
3274 * xfns.c (create_frame_xic): Fix initialization of automatic
3275 aggregates for pcc.
3276
25566a3c
KH
32772000-02-09 Kenichi Handa <handa@etl.go.jp>
3278
3279 * ccl.c (CCL_MAKE_CHAR): New macro.
3280 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3281 registers by CCL_MAKE_CHAR before calling translate_char.
3282 <CCL_TranslateCharacterConstTbl> Likewise.
3283
69da54ba
DL
32842000-02-08 Dave Love <fx@gnu.org>
3285
3286 * lread.c (__EXTENSIONS__): Define.
3287
f7136ee8
GM
32882000-02-08 Gerd Moellmann <gerd@gnu.org>
3289
3290 * puresize.h (BASE_PURESIZE): Increase to 650000.
3291
7768790b
EZ
32922000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3293
3294 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3295 the help message.
3296
38fd211b
EZ
32972000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3298
3299 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3300 md, mh, mb, mr, and me to the fake termcap entry.
3301
66e4690f
KR
33022000-02-06 Ken Raeburn <raeburn@gnu.org>
3303
3304 * sound.c (sound_cleanup): Don't call device close routine if the
3305 function pointer is null.
3306
a75dfea0
AI
33072000-02-06 Andrew Innes <andrewi@gnu.org>
3308
3309 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3310 around image definitions and prototypes.
3311 (gamma_correct) [WINDOWSNT]: New prototype.
3312
3313 * w32term.c (x_make_frame_visible): Replace call to
3314 input_poll_signal with poll_for_input.
3315
3316 * window.c [WINDOWSNT]: Include w32term.h.
3317
3318 * xdisp.c [WINDOWSNT]: Include w32term.h.
3319
3320 * makefile.nt: Add dependencies on w32gui.h.
3321 (OBJ1): Include atimer.obj.
3322 ($(BLD)\atimer.obj): New dependency rule.
3323
3324 * w32.c (sigmask): New function (does nothing).
3325 (sigunblock): Ditto.
3326
3327 * frame.c [WINDOWSNT]: Include w32term.h.
3328
3329 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3330
3331 * lread.c (syms_of_lread): Fix literal newlines.
3332
3333 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3334 the string constant limit (2048 bytes) in MSVC.
3335 (main): Ditto.
3336
59ddecde
GM
33372000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3338
3339 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3340 area.
3341 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3342 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3343 dispatch the event.
3344
07590973
DL
33452000-02-04 Dave Love <fx@gnu.org>
3346
3347 * fileio.c: Remove some unused vars.
3348 (_GNU_SOURCE): Define (for euidaccess).
3349
3350 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3351
3352 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3353 gcpro1, gcpro2.
3354 (read_minibuf): Deal with allow_props correctly.
3355
649351f9
EZ
33562000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3357
3358 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3359
66e4690f 33602000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3361
3362 * search.c (compile_pattern): If a cache entry has a nil regexp,
3363 fill in that entry instead of clobbering a previously cached
3364 string regexp.
3365
66e4690f 33662000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3367
3368 * puresize.h (BASE_PURESIZE): Increase to 610000.
3369
d240a249
GM
33702000-02-02 Gerd Moellmann <gerd@gnu.org>
3371
3372 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3373 can GC.
3374
ca91fb26
KH
33752000-02-02 Kenichi Handa <handa@etl.go.jp>
3376
25660570
KH
3377 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3378 instead of incrementing ic directly.
3379 <CCL_WriteExprConst> Likewise.
3380 <ccl_set_expr>: Set ic to jump_address.
3381
ca91fb26
KH
3382 * fileio.c (e_write): Fix the handling of
3383 CODING_FINISH_INSUFFICIENT_SRC.
3384
2ede9689
DL
33852000-02-01 Dave Love <fx@gnu.org>
3386
3387 * editfns.c (Fpropertize): Doc fix.
3388
3389 * process.c (Fstart_process): Doc fix.
3390
3391 * eval.c: Fix various doc strings not to duplicate information
3392 from help-manyarg-func-alist.
3393
3394 * window.c (Fset_window_margins): Don't make interactive. Doc
3395 fix.
3396
3397 * doc.c (Vhelp_manyarg_func_alist): New variable.
3398 (Fdocumentation): Use it.
3399 (syms_of_doc): Define it.
3400
b6680a0e
GM
34012000-01-31 Gerd Moellmann <gerd@gnu.org>
3402
2cb750ba
GM
3403 * xterm.c (xim_open_dpy): Remove unused local variable.
3404
74e9213b
GM
3405 * emacs.c (USAGE): Use term `display options' instead of `X
3406 options'.
3407
3408 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3409 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3410
b6680a0e
GM
3411 * fns.c (sweep_weak_table): New function.
3412 (sweep_weak_hash_tables): Use it. Keep on marking until there
3413 is no more change.
3414
994c5afe
GM
34152000-01-30 Gerd Moellmann <gerd@gnu.org>
3416
3417 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3418 that XTread_socket does not crash by trying to call XNoOp on a
3419 closed display.
427ec082 3420
f00276e3
JR
34212000-01-30 Jason Rumney <jasonr@gnu.org>
3422
3423 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3424 Change selected_frame to SELECTED_FRAME ().
3425 (w32_console_mouse_position): Remove #ifndef MULE from around
3426 `insist' parameter.
3427
3428 * makefile.nt: Remove dosfns.obj.
3429
3430 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3431
3432 * w32fns.c (w32_defined_color): Check for valid frame before
3433 applying gamma correction. Eliminate dependency on frame elsewhere.
3434 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3435 (w32_to_x_font): Use resx and resy not height_in and width_in.
3436 (x_to_w32_font): Doc fix.
3437 (xlfd_strip_height): New function to strip and return font height.
3438 (w32_font_match): Compare height separately from rest of xlfd
3439 spec, using xlfd_strip_height.
3440
3441 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3442 width_in. Use w32_defined_color in place of defined_color.
3443
3444 * w32faces.c: Merge more of DOS and X specifics in preparation for
3445 merge with xfaces.c.
3446 (defined_color): Remove FIXME comment.
3447 (tty_color_name): Provide w32-specific function.
3448 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3449
3450 * w32console.c (turn_on_face, turn_off_face): Removed.
3451 (w32_face_attributes): New function.
3452 (Global_variables): Reduce scope where possible.
3453 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3454 fill attribute.
3455 (hl_mode): Don't modify text attributes.
3456 (write_glyphs): Don't do anything if len <= 0. Use
3457 w32_face_attributes to get attributes for drawing. Write
3458 terminating codes using char_attr_normal.
3459 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3460 (update_begin, update_end): Likewise.
3461 (vga_stdcolor_name): New function.
3462 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3463 (Fset_screen_color): Remove char_attr_reverse.
3464
b08e8bb2
GM
34652000-01-29 Gerd Moellmann <gerd@gnu.org>
3466
3467 * xfns.c (xic_set_preeditarea): Take window parameter and
3468 window-relative pixel-positions.
3469
3470 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3471 is its frame's selected window.
3472 (xim_instantiate_callback): Likewise.
3473
3474 * xfns.c (x_create_im): Removed.
3475 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3476 (supported_xim_styles): Renamed from supported_styles.
3477 (best_xim_style): Renamed from best_style.
3478 (create_frame_xic): Renamed from xic_create_frame.
3479 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 3480
b08e8bb2
GM
34812000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3482
3483 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3484 our frames, call XFilterEvent with 2nd parameter `None'.
3485 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3486 returning XBufferOverflow.
3487 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3488 area.
3489 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3490 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3491 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3492 (xim_initialize, xim_close)
3493 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3494 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3495 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3496 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3497
3498 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3499 and `xim_styles'.
3500 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3501 `xic_style' and `xic_xfs'.
3502 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3503 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3504 (FRAME_XIM): Removed.
3505
3506 * xfns.c (supported_styles): New variable.
3507 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3508 (xic_create_xfontset, best_style, xic_create_frame)
3509 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3510 (xic_set_xfontset): New functions.
3511
142e109c
DL
35122000-01-28 Dave Love <fx@gnu.org>
3513
3514 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3515
3516 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3517
b02786f9
GM
35182000-01-28 Gerd Moellmann <gerd@gnu.org>
3519
d060bc9f
GM
3520 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3521 for *scratch* if it already existed.
3522
b02786f9
GM
3523 * emacs.c (USAGE): New macro.
3524 (main): Use it to display usage information.
3525
2c52d7e4
EZ
35262000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3527
3528 Support for the menu-help feature:
3529
3530 * msdos.h: Change prototypes of XMenuAddSelection and
3531 XMenuActivate.
3532
3533 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3534 part of the line to the termscript file.
3535 (IT_clear_to_end): Clear the entire line, not just its beginning.
3536 (menu_help_message, prev_menu_help_message): New variables.
3537 (IT_menu_make_room): Make room for the help_text member.
3538 (IT_menu_display): New argument disp_help; all callers changed.
3539 If disp_help is non-zero, store the help text of the active menu
3540 item in menu_help_message.
3541 (XMenuAddPane): Initialize the help_text member to NULL.
3542 (XMenuAddSelection): New argument help_text. Store it in the
3543 XMenu structure.
3544 (XMenuActivate): New argument help_callback. If the value of
3545 menu_help_message has changed since the last time, display the
3546 menu help message text while waiting for the mouse to move. Clear
3547 the echo area before exiting.
3548 (XMenuDestroy): Free the help_text member.
3549
ffe0bcd1
GM
35502000-01-27 Gerd Moellmann <gerd@gnu.org>
3551
3552 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3553 XMenuAddSelection. Pass help callback to XMenuActivate.
3554 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3555
50dbd23f
EZ
35562000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3557
3558 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3559 and EMACS_SET_USECS.
3560
f5941bf8
GM
35612000-01-26 Dave Love <fx@gnu.org>
3562
6c67ddee
DL
3563 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3564
f5941bf8
GM
3565 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3566 an error may be signalled.
3567
9e49c990
GM
35682000-01-26 Gerd Moellmann <gerd@gnu.org>
3569
fc3cb460
GM
3570 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3571 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3572
9e49c990
GM
3573 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3574
d0c037d8
GM
35752000-01-25 Gerd Moellmann <gerd@gnu.org>
3576
3577 * charset.c (Fstring): If there is a multibyte char among
3578 the args, always return a multibyte string.
3579
e12489f9
GM
35802000-01-25 Gerd Moellmann <gerd@gnu.org>
3581
3582 * sysdep.c (sys_select): Turn atimers off and on instead of
3583 recording and restoring old alarm handler
3584
3585 * process.c (toplevel): Include atimer.h.
3586 (create_process_1): Rewritten.
3587 (create_process): Use atimers instead of alarm.
3588 (wait_reading_process_input) [hpux]: Turn atimers off instead
3589 of turning off SIGALRM.
3590 (wait_reading_process_input): Turn off atimers instead off
3591 calling stop_polling.
3592
3593 * emacs.c (main): Call init_atimer.
3594
3595 * keyboard.c (toplevel): Include systime.h and atimer.h.
3596 (polling_for_input): Removed because unused.
3597 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3598 (poll_timer): New variable.
3599 (poll_for_input, poll_for_input_1): New functions.
3600 (start_polling, stop_polling): Rewritten.
3601
3602 * keyboard.h (polling_for_input): Removed.
427ec082 3603
e12489f9
GM
3604 * atimer.h, atimer.c: New files.
3605
3606 * Makefile.in (obj): Add atimer.o.
3607 (atimer.o): New target.
3608
3609 * blockinput.h (pending_atimers): Add extern declaration.
3610 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3611
3612 * lisp.h (popup_activated_flag): Add extern declaration.
3613
3614 * xmenu.c (popup_activated_flag): Make externally visible.
3615 (popup_activate_callback) [USE_MOTIF]: Increment
3616 popup_activated_flag.
3617 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3618
3619 * xterm.c (toplevel): Include atimer.h.
3620 (toolkit_scroll_bar_interaction): New variable.
3621 (Fxt_process_timeouts): Removed.
3622 (x_process_timeouts): New function.
3623 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
3624 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
3625 (x_make_frame_visible): Call poll_for_input_1 instead of
3626 input_poll_signal. Don't call alarm.
3627 (x_initialize): Install timer calling x_process_timeouts.
427ec082 3628
1e5279b9
DL
36292000-01-24 Dave Love <fx@gnu.org>
3630
6c67ddee 3631 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
3632 Don't use -cckr -- apparently not now necessary.
3633
edf6aeb8
EZ
36342000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3635
3636 * msdos.c (IT_menu_display): Truncate long menu lines at the right
3637 screen boundary.
3638
9badad41
JR
36392000-01-23 Jason Rumney <jasonr@gnu.org>
3640
3641 * w32fns.c (w32_defined_color): Apply gamma correction before
3642 trying to map to the palette.
3643 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
3644 to w32_clear_rect.
3645
3646 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
3647 here. Callers changed to always pass real device context.
3648 (w32_draw_bitmap): Likewise.
3649 (w32_get_glyph_overhangs): Likewise.
3650 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
3651 one.
3652 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
3653 pfnSetScrollInfo and SetScrollRange.
3654 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
3655 back into MULE characters after decoding them.
3656 (x_get_glyph_face_and_encoding): Likewise.
3657 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
3658 GetCharABCWidthsW fails, since this is defined on Windows 9x.
3659 (x_produce_glyphs): Calculate per char metrics for a character
3660 that we know exists in default font when font_not_found_p is true.
3661
63bd786b
JR
36622000-01-22 Jason Rumney <jasonr@gnu.org>
3663
3664 * makefile.nt (intervals.obj, composite.obj): New modules.
3665 (composite.h): Added as dependency where appropriate.
3666
3667 * w32gui.h (XGCValue): New struct for emulating X GCs.
3668
3669 * w32term.h (XCharStruct): New struct for emulating X.
3670
3671 * w32console.c (turn_on_face, turn_off_face): New functions.
3672 (change_line_highlight): New prototype for new redisplay.
3673 (write_glyphs): Support multibyte text. Support faces.
3674
3675 * w32faces.c: Complete rewrite for new redisplay based on new
3676 xfaces.c.
3677
3678 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
3679 throughout. struct frame * in place of FRAME_PTR.
3680 Skeleton support for images, toolbars, tooltips from xfns.c.
3681 (Fx_create_frame): Use system default for default scroll bar
3682 width.
3683 (w32_get_arg): Renamed from x_get_arg.
3684 (Fx_file_dialog): New function.
3685 (w32_list_fonts): Check cache before asking system.
3686 (Vw32_enable_synthesized_fonts): New variable.
3687 (Vw32_enable_italics): Obsolete, removed.
3688
3689 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3690 Use SELECTED_FRAME macro.
3691
3692 * w32menu.c: Add skeleton support for help strings on menus.
3693 (add_menu_item): Native checkbox and radio support added, but not
3694 yet enabled due to bugs.
3695 (push_menu_item): Add parameters type, selection and help.
3696 Callers updated.
3697 Formatting changes to reduce unnecessary diffs with xmenu.c.
3698
3699 * w32select.c (Fw32_set_clipboard_data): Update call to
3700 find_charset_in_str.
3701
3702 * w32term.c: Complete rewrite for new redisplay based on new
3703 xterm.c with necessary sections merged back in from old w32term.c.
3704
6ffd3cf7 37052000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
3706
3707 * data.c (set_internal): Further fix in same criterion.
3708
6ffd3cf7 37092000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
3710
3711 * data.c (set_internal): Fix the criteria for whether
3712 to swap out the old cached binding.
3713
60af03f1
DL
37142000-01-19 Dave Love <fx@gnu.org>
3715
3716 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
3717
f9be074f
KH
37182000-01-18 Kenichi Handa <handa@etl.go.jp>
3719
3720 * regex.c (re_compile_fastmap): While checking a range table for
3721 `charset', skip flag bits for a character class correctly.
3722
52b8dbf9
GM
37232000-01-17 Gerd Moellmann <gerd@gnu.org>
3724
d36100c9
GM
3725 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
3726
52b8dbf9
GM
3727 * xfns.c (x_window): Call lw_create_widget with new parameter
3728 list.
3729
3730 * widget.c (EmacsFrameSetCharSize): Change size of children first
3731 because of problems with main window geometry management under
3732 Lesstif.
3733
3734 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
3735 MENU_ITEMS_ITEM_.*.
3736 (MENU_ITEMS_ITEM_HELP): New enumerator.
3737 (push_menu_item): Add parameter HELP. Record help in menu_items.
3738 (single_menu_item, single_submenu, list_of_items): Call
3739 push_menu_item with new parameter.
3740 (single_submenu): Set help string in widget value.
3741 (menu_highlight_callback): New function.
3742 (set_frame_menubar): Call lw_create_widget with new
3743 parameter list.
3744 (xmenu_show, xdialog_show): Ditto.
3745
3139018f
GM
37462000-01-13 Gerd Moellmann <gerd@gnu.org>
3747
3748 * sound.c (Fplay_sound): Improve doc string.
3749
83c8f461
RS
37502000-01-11 Richard M. Stallman <rms@gnu.org>
3751
3752 * lisp.h (set_internal): Enter the new arg.
3753
3754 * eval.c (specbind): Record buffer-local variables specially,
3755 indicating which buffer's binding was saved.
3756 (unbind_to): Restore buffer-local variables specially
3757 in the proper buffer.
3758
3759 * data.c (set_internal): New arg BUF.
427ec082 3760
83c8f461
RS
3761 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
3762 * data.c (Fset): Pass new arg to set_internal.
3763 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 3764
1fab1775
GM
37652000-01-11 Gerd Moellmann <gerd@gnu.org>
3766
3767 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
3768 xprintsym.
3769
83c8f461 37702000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
3771
3772 * minibuf.c (Ftry_completion): Doc fix.
3773
7a85e4df
GM
37742000-01-11 Gerd Moellmann <gerd@gnu.org>
3775
3776 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
3777 vector, too.
3778
a970dae4
AS
37792000-01-11 Andreas Schwab <schwab@suse.de>
3780
3781 * coding.c (code_convert_region): Initialize total_skip.
3782
c65d14ee
DL
37832000-01-08 Dave Love <fx@gnu.org>
3784
3785 * eval.c (Fuser_variable_p): Check customizability too.
3786
834938d2
GM
37872000-01-07 Gerd Moellmann <gerd@gnu.org>
3788
3789 * minibuf.c (Fcompleting_read): Doc fix.
3790
e0303cd6
GM
37912000-01-05 Gerd Moellmann <gerd@gnu.org>
3792
8a26744b
GM
3793 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
3794 -L /usr/local/lib.
3795
e0303cd6
GM
3796 * xfns.c (x_create_im): New function to set IM and IC of a frame.
3797 Check that input style is supported before trying to create an
3798 IC for it.
3799 (x_window): Call x_create_im.
427ec082 3800
2e471eb5
GM
38012000-01-04 Gerd Moellmann <gerd@gnu.org>
3802
560a7bd2
GM
3803 * xfns.c (current_gif_memory_src): New variable.
3804 (gif_load): Record the address of the current memory source
3805 in current_gif_memory_src.
3806 (gif_read_from_memory): Use current_gif_memory_src.
3807
f9ee84a3
GM
3808 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
3809 macros statement form.
3810
d1299cde
GM
3811 * sound.c (struct sound): Renamed from struct sound_file.
3812 (struct sound): Add members `data' and `header_size'.
3813 (enum sound_attr): Add SOUND_DATA.
3814 (current_sound, current_sound_device): Variables renamed from
3815 sound_file and sound_device.
3816 (parse_sound): Parse :data.
3817 (parse_sound): Handle sound data in strings.
3818 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 3819 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
3820 needed header size.
3821 (wav_play, au_play): Play sounds from string data.
3822
2e471eb5
GM
3823 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
3824
3825 * lisp.h: Add prototype for allocate_string_data.
3826
3827 * alloc.c (Fgarbage_collect): Return number of live and free
3828 strings.
3829
3830 * alloc.c (mark_buffer): Remove code in #if 0.
3831 (gc_sweep): Ditto.
3832 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
3833 (strings_consed): New variable.
3834 (allocate_string): Set it.
3835 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
3836 (Fmemory_use_counts): Return strings_consed. Use Flist.
3837
3838 * alloc.c: General cleanup in comments etc. Remove conditional
3839 compilation for `standalone'.
3840
3841 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
3842
3843 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
3844 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
3845 (DONT_COPY_FLAG): Removed.
3846 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
3847 (struct sdata, struct sblock): New
3848 (struct string_block): Rewritten.
3849 (STRINGS_IN_STRING_BLOCK): New macro.
3850 (oldest_sblock, current_sblock, total_strings, total_free_strings)
3851 (large_sblocks, string_blocks, string_free_list): New variables.
3852 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
3853 (init_strings): Rewritten.
3854 (allocate_string, allocate_string_data, compact_small_strings)
3855 (free_large_strings, sweep_strings): New functions.
3856 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
3857 (struct string_block_head, current_string_block)
3858 (first_string_block, large_string_blocks, STRING_FULLSIZE)
3859 (STRING_PAD): Removed.
3860 (make_uninit_multibyte_string, make_pure_string): Rewritten.
3861 (Fgarbage_collect): Don't set mark bit in large strings.
3862 (mark_object): Mark strings differently. Mark symbol names
3863 differently.
3864 (survives_gc_p): Test marked strings differently.
427ec082 3865 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
3866 symbol names.
3867 (compact_strings): Removed.
3868
42608ba8
EZ
38692000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
3870
3871 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
3872 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
3873
e0a09e1a
KH
38742000-01-04 Kenichi Handa <handa@etl.go.jp>
3875
dd9f0750 3876 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 3877 in a non-empty buffer.
dd9f0750 3878
3c0f3b15 3879 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 3880
44cd3ae5
GM
38812000-01-03 Gerd Moellmann <gerd@gnu.org>
3882
3883 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
3884 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
3885
3886 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
3887
c182a70f
EZ
38882000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3889
3890 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
3891 need to test for MSDOS frames.
3892
24480d5b
EZ
38932000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3894
3895 * dosfns.c (unspecified_colors): Remove.
3896 (msdos_stdcolor_idx): Use global variables unspecified_fg and
3897 unspecified_bg.
3898 (msdos_stdcolor_name): Return strings for unspecified fore- and
3899 back-ground colors.
3900
3901 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 3902 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
3903 (tty_color_name): Return Lisp strings for unspecified fore- and
3904 back-ground colors.
3905 (Finternal_set_lisp_face_attribute): Remove the special treatment
3906 for Qunspecified_{f,b}g.
3907 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
3908 string.
3909
047f434a
GM
39102000-01-03 Gerd Moellmann <gerd@gnu.org>
3911
3912 * xdisp.c (reseat_at_next_visible_line_start): Position before
3913 newline only if ending up on a newline.
3914 (next_element_from_ellipsis): Return success. Handle case of
3915 displaying no ellipsis. Fix case of ellipsis defined in display
3916 table.
3917 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
3918 returns 0.
3919
d684c676
EZ
39202000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3921
3922 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
3923 (Fcolor_supported_p): Renamed from face-color-supported-p.
3924
5fe1d139
EZ
39252000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3926
3927 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
3928 list of colors renamed to tty-defined-color-alist.
3929 (tty_color_name): Pass the frame to tty-color-by-index.
3930 (realize_tty_face): tty-color-alist is now a function which
3931 accepts the frame as argument.
3932
3933 * term.c (Ftty_display_color_p): Accept an optional argument
3934 FRAME.
3935
816be8b8
EZ
39362000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3937
3938 * term.c (insert_glyphs): Pass glyph, not &glyph, to
3939 encode_terminal_code.
3940
b635321e
EZ
39412000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3942
3943 * dispnew.c (mode_line_string): Support termcap frames as well.
3944
9b784e96
GM
39452000-01-01 Gerd Moellmann <gerd@gnu.org>
3946
27189709
GM
3947 * syntax.c (Fforward_word): Undo previous change.
3948
3949 * editfns.c (Fconstrain_to_field): Don't constrain if
3950 inhibit-field-text-motion is non-nil.
3951 (Fline_beginning_position): Undo previous change.
3952 (Fline_end_position): Ditto.
3953
3954 * syntax.c (Fforward_word): Notice field boundaries only if
3955 inhibit-field-text-motion is nil.
3956
3957 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
3958
3959 * editfns.c (Vinhibit_field_text_motion): New variable.
3960 (inhibit-field-text-motion): New DEFVAR_LISP.
3961 (Fline_beginning_position, Fline_end_position): Notice field
3962 boundaries only if inhibit-field-text-motion is nil.
3963
45158a91
GM
3964 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
3965 All calls adjusted.
3966 (x_build_heuristic_mask): Likewise.
3967 (xbm_load_image_from_file): Change error output.
3968 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
3969 (gif_load, gs_load, x_kill_gs_process): Ditto.
3970
9b784e96
GM
3971 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
3972 color indices when accessing raster pixels.
63cec32f
GM
3973 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
3974 one of :file or :data.
3975 (enum pbm_keyword_index): Add PBM_DATA.
3976 (pbm_format): Add :data.
3977 (pbm_image_p): Allow either :file or :data.
3978 (pbm_read_file): New function.
3979 (pbm_scan_number): Rewritten to read from string.
3980 (pbm_load): Support :data.
9b784e96 3981
5ad6a5fb
GM
39821999-12-31 Gerd Moellmann <gerd@gnu.org>
3983
3984 * xfns.c: New image functions adapted to Emacs conventions.
3985 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
3986 variable `file'.
3987
63448a4d
WP
39881999-12-31 William M. Perry <wmperry@aventail.com>
3989
3990 * xfns.c (jpeg_format): Added the :data keyword
3991 (jpeg_image_p): JPEG is valid with :file _or_ :data
3992 (jpeg_memory_src): Defined new JPEG image source to read from a
3993 memory buffer.
3994 (jpeg_load): Pay attention to the :data keyword if specified.
3995 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
3996 found.
3997 (png_format): Added the :data keyword
3998 (png_image_p): PNG is valid with :file _or_ :data
3999 (png_read_from_memory): New PNG read function to read from a
4000 memory buffer.
4001 (png_load): Pay attention to the :data keyword if specified. Uses
4002 png_set_read_fn() instead of png_init_io() if specified.
4003 (tiff_format): Added the :data keyword for TIFF images.
4004 (tiff_image_p): TIFF is valid with :file _or_ :data
4005 (tiff_read_from_memory): Defined new TIFF I/O functions to read
4006 from a memory buffer.
4007 (tiff_load): Pay attention to the :data keyword if specified.
4008 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
4009 (gif_format): Added the :data keyword
4010 (gif_image_p): GIF is valid with :file _or_ :data
4011 (gif_read_from_memory): New GIF input function to read from a
4012 memory buffer.
c65d14ee 4013 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
4014 instead of DGifOpenFileName() if specified.
4015
c880678e
GM
40161999-12-31 Gerd Moellmann <gerd@gnu.org>
4017
4018 * xdisp.c (next_element_from_buffer): Change assertion at the end
4019 because it doesn't hold when there's an overlay string at the end
4020 from which we deliver an image.
4021
8ccb9a54
EZ
40221999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4023
4024 * msdos.c (IT_update_begin): Don't dereference members of struct
4025 window for deleted windows.
4026
12ce2351
GM
40271999-12-30 Gerd Moellmann <gerd@gnu.org>
4028
a915c648
GM
4029 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
4030 a hook, and the hook has a non-nil `no-self-insert' property, let
4031 the return value of the hook specify whether an expansion took
4032 place. If it returns nil, no expansion has been performed.
4033
12ce2351
GM
4034 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
4035 differently.
4036
04ee4f45
EZ
40371999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
4038
4039 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
4040
7f4bc0c3
EZ
40411999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
4042
4043 * dispnew.c (mode_line_string): Support MS-DOS frames.
4044
dac204bc
GM
40451999-12-29 Gerd Moellmann <gerd@gnu.org>
4046
4047 * eval.c (syms_of_eval): Initialize debugger_may_continue.
4048
7b712ad8
KH
40491999-12-29 Kenichi Handa <handa@etl.go.jp>
4050
4051 * process.c (read_process_output): Fix the args CHARPOS and LENINS
4052 to signal_after_change.
4053
adb9900f
EZ
40541999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
4055
41ad069b
EZ
4056 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
4057 dimensions changed, invalidate the mouse highlight info.
4058 (disable_mouse_highlight, help_echo, previous_help_echo): New
4059 variables.
4060 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
4061 (fast_find_position, IT_note_mode_line_highlight)
4062 (IT_note_mouse_highlight): New functions.
4063 (IT_update_begin): If the redisplay affects the window where the
4064 mouse highlight is, clear the highlight. If the frame where the
4065 highlight was displayed was killed, invalidate the highlight
4066 info.
4067 (IT_update_end): Reset the highlight flag. Reset the mouse
4068 highlight-defer flag.
4069 (IT_frame_up_to_date): New function, if mouse highlight was
4070 deferred due to GC, do it now.
4071 (internal_terminal_init): Initialize mouse-highlight related
4072 members of the_only_x_display. Assign IT_frame_up_to_date to
4073 frame_up_to_date_hook.
4074 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4075 help_echo changed value, generate a HELP_EVENT event.
4076 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4077
adb9900f
EZ
4078 * msdos.h (struct display_info): New.
4079 (struct x_output): Add the display_info member.
4080 (FRAME_X_DISPLAY_INFO): New macro.
4081
481b5054
GM
40821999-12-28 Gerd Moellmann <gerd@gnu.org>
4083
4084 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4085 if MODIFF > 1.
6448a6b3 4086 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4087
4088 * buffer.c (modify_overlay): Always compute unchanged info.
4089
a2882b0d
KH
40901999-12-27 Kenichi Handa <handa@etl.go.jp>
4091
4092 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4093
89ba5b5f
KH
40941999-12-27 Kenichi Handa <handa@etl.go.jp>
4095
4096 The following changes are to use more bits for face IDs.
4097
4098 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4099 lowest 8 bits are single byte character code, the bits above are
4100 face ID.
481b5054 4101 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4102 above.
481b5054
GM
4103 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4104 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4105
4106 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4107 of GLYPH_MASK_CHAR.
4108
4109 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4110 of GLYPH_MASK_CHAR.
4111
4112 * dispextern.h (struct glyph): Make face_id and padding_p the top
4113 level members. Change members in union `u'.
4114 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4115 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4116 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4117 (CHAR_GLYPH_PADDING_P): Likewise.
4118 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4119 characters.
4120
481b5054 4121 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4122 for the change of struct glyph.
4123 (line_draw_cost): Adjusted for the change of
4124 GLYPH_FROM_CHAR_GLYPH.
4125 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4126
4127 * term.c (encode_terminal_code): Adjusted for the change of struct
4128 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4129 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4130 change of struct glyph.
4131
4132 * xdisp.c: All codes adjusted for the change of struct glyph.
4133
4134 * xterm.c: All codes adjusted for the change of struct glyph.
4135
5bcd116c
KH
41361999-12-27 Kenichi Handa <handa@etl.go.jp>
4137
4138 * composite.h (struct composition): Change the order of declaring
4139 members to reduce the byte size of the structure.
4140
f21b06b7
GM
41411999-12-25 Gerd Moellmann <gerd@gnu.org>
4142
4143 * search.c (looking_at_1): Reset immediate_quit before modifying
4144 global data.
4145
e36557c9
KH
41461999-12-24 Kenichi Handa <handa@etl.go.jp>
4147
4148 * process.c (read_process_output): Fix the arg FROM to
4149 update_compositions.
4150
83c8f461 41511999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4152
4153 * search.c (Freplace_match): For nonliteral replacement in buffer,
4154 construct all the new text first, then insert all at once.
4155
0b863bd9
DL
41561999-12-22 Dave Love <fx@gnu.org>
4157
4158 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4159
6d8e8ef3
GM
41601999-12-22 Gerd Moellmann <gerd@gnu.org>
4161
28d7281d
GM
4162 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4163 lead to size changes to after the X window has been created.
4164
e22ef6eb 4165 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4166 variable in xassert.
4167
8affcced
KH
41681999-12-22 Kenichi Handa <handa@etl.go.jp>
4169
4170 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4171 only when the frame is not for a window system.
8affcced 4172
f2be1146
GM
41731999-12-22 Gerd Moellmann <gerd@gnu.org>
4174
deca1348
GM
4175 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4176 redisplay after changing the multibyteness of a buffer.
4177
f2be1146
GM
4178 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4179 frame's X window to XFilterEvent instead of None because that's
4180 the X window for which the IC was created. This makes dead
4181 accents work when the pointer is not in Emacs' frame.
4182 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4183
a744a2ec
DL
41841999-12-20 Dave Love <fx@gnu.org>
4185
4186 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4187
9e6985ed
GM
41881999-12-19 Gerd Moellmann <gerd@gnu.org>
4189
4190 * eval.c (debugger_may_continue): New variable.
4191 (syms_of_eval): Add a DEFVAR_BOOL for it.
4192 (call_debugger): Bind it.
4193
3b620731
EZ
41941999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4195
4196 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4197 fp->tty_reverse_p is set, unless the computed colors are identical
4198 to frame colors. Print both original and computed colors to
4199 termscript file.
4200 (IT_write_glyphs): Track the changes in handling of composite
4201 characters.
4202 (IT_set_frame_parameters): Don't set frame colors from
4203 unspecified-fg and unspecified-bg pseudo-colors.
4204
0f9a51c4
DL
42051999-12-17 Dave Love <fx@gnu.org>
4206
4207 * data.c (Fkeywordp): New function.
4208 (syms_of_data): Install it.
4209
363e4e42
EZ
42101999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4211
4212 * xfaces.c (tty_defined_color): Fix last change.
4213
cfad01b4
GM
42141999-12-15 Gerd Moellmann <gerd@gnu.org>
4215
4216 * xdisp.c (redisplay_window) <optional new window start>: Check
4217 that window start is in [BEGV..ZV].
4218
f9d2fdc4
EZ
42191999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4220
4221 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4222 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4223
4224 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4225 (syms_of_xfaces): Initialize and staticpro them.
4226 (tty_defined_color): If the color name is unspecified-fg or
4227 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4228 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4229 (tty_color_name): If the color pixel value is either
4230 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4231 Qunspecified_fg or Qunspecified_bg, respectively.
4232 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4233 and Qunspecified_bg for foreground and background colors.
4234 (realize_default_face): If the foreground and background colors
4235 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4236 (realize_tty_face): By default, set the face colors to
4237 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4238 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4239 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4240 Reverse the colors if the default colors were reversed.
4241
4242 * dispnew.c (init_display): Initialize the frame pixels of the
4243 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4244 FACE_TTY_DEFAULT_BG_COLOR.
4245
4246 * term.c (turn_on_face): If the default fore- and background
4247 colors are reversed, enter inverse video mode. Don't send color
4248 escape sequences for unspecified foreground and background colors.
4249 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4250
4251 * dosfns.c (unspecified_colors): New variable.
4252 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4253 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4254 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4255 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4256 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4257 Qunspecified_bg, respectively.
4258
4259 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4260 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4261
e19539f1
KH
42621999-12-15 Kenichi Handa <handa@etl.go.jp>
4263
4264 * coding.c (code_convert_region): Fix the secoding arg to
4265 update_compositions.
4266
5ec14d3c
KH
42671999-12-15 Kenichi Handa <handa@etl.go.jp>
4268
4269 The following changes are for the new composition mechanism. We
4270 have deleted `composition' charset and composite characters,
4271 instead introduced a special text property `composition'.
4272
4273 * Makefile.in (INTERVAL_SRC): Include composite.h.
4274 (INTERVAL_OBJ): Include composite.o.
4275 (SOME_MACHINE_OBJECTS): Include composite.o.
4276 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4277 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4278 Depend on composite.h.
4279 (doc.o): Depend on charset.h.
4280 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4281 (composite.o): New target.
427ec082 4282
5ec14d3c
KH
4283 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4284
4285 * callproc.c (Fcall_process): Call code_convert_string to encode
4286 arguments. Use CODING_REQUIRE_DECODING to check if the process
4287 output should be decoded.
4288
4289 * casefiddle.c: Include composite.h.
4290 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4291 multibyte character. Adjusted for the change of CHAR_STRING.
4292 (casify_region): Likewise. Call update_compositions.
4293
4294 * category.h (CATEGORY_SET): Delete codes for a composite
4295 character.
4296
4297 * category.c (word_boundary_p): Delete codes for a composite
4298 character.
4299 (Fmake_category_table): New function.
4300 (syms_of_category): Defsubr it.
4301
4302 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4303 (ccl_driver): Delete codes for a composite character.
4304
4305 * charset.h: In this entry, just `Modified' means that codes for a
4306 composite character is deleted.
4307 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4308 (charset_composition) (MIN_CHAR_COMPOSITION)
4309 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4310 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4311 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4312 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4313 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4314 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4315 Modified.
4316 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4317 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4318 non_ascii_char_to_string.
4319 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4320 (STRING_CHAR_AND_LENGTH): Likewise.
4321 (FETCH_CHAR_ADVANCE): New macro.
4322 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4323 (MAX_MULTIBYTE_LENGTH): New macro.
4324 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4325 (find_charset_in_str): Argument adjusted.
4326 (CHAR_LEN): Modified.
427ec082 4327
5ec14d3c
KH
4328 * charset.c: In this entry, just `Modified' means that codes for a
4329 composite character is deleted.
4330 (Qcomposition) (leading_code_composition)
4331 (charset_composition) (min_composite_char) (cmpchar_table)
4332 (cmpchar_table_size) (n_cmpchars): Deleted.
4333 (SPLIT_COMPOSITE_SEQ): Deleted.
4334 (SPLIT_MULTIBYTE_SEQ): Modified.
4335 (char_to_string): Renamed from non_ascii_char_to_string.
4336 Modified.
4337 (string_to_char): Renamed from string_to_non_ascii_char.
4338 (split_string): Renamed from split_non_ascii_string.
4339 (char_printable_p) (Fsplit_char)
4340 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4341 (char_bytes) (Fchar_width) (strwidth): Modified.
4342 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4343 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4344 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4345 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4346 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4347 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4348 (Fcmpchar_cmp_count): Deleted.
4349 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4350 (init_charset_once): Modified.
4351 (syms_of_charset): Modified.
4352
4353 * cmds.c (internal_self_insert): Adjusted for the change of
4354 CHAR_STRING.
4355
4356 * coding.h (emacs_code_class_type): Delete the member
4357 EMACS_leading_code_composition.
4358 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4359 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4360 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4361 (COMPOSING_WITH_RULE_P): Macros deleted.
4362 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4363 macros.
4364 (struct composition_data): New structure.
4365 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4366 (struct coding_system): New members composition_rule_follows,
4367 cmp_data, cmp_data_start, cmp_data_index.
4368 (coding_save_composition) (coding_free_composition_data)
4369 (coding_adjust_composition_offset): Extern them.
4370
4371 * coding.c: Include composite.h.
4372 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4373 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4374 of multibyte code here.
4375 (DECODE_CHARACTER_DIMENSION2): Likewise.
4376 (detect_coding_emacs_mule): Change the case label from
4377 EMACS_leading_code_composition to 0x80.
4378 (detect_coding_iso2022): Handle new composition sequence.
4379 (DECODE_ISO_CHARACTER): Likewise.
4380 (check_composing_code): Deleted.
4381 (coding_allocate_composition_data): New function.
4382 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4383 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4384 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4385 (decode_coding_iso2022): Handle new composition sequence.
4386 (ENCODE_ISO_CHARACTER): Don't check composition here.
4387 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4388 (ENCODE_COMPOSITION_NO_RULE_START)
4389 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4390 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4391 (ENCODE_COMPOSITION_FAKE_START): New macro.
4392 (encode_coding_iso2022): Handle new composition sequence.
4393 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4394 (encode_coding_sjis_big5): Ignore composition.
4395 (setup_coding_system): Initialize new members of struct
4396 coding_system. Enable composition only when the coding system has
4397 `composition' property t.
4398 (coding_free_composition_data) (coding_adjust_composition_offset)
4399 (coding_save_composition) (coding_restore_composition): New
4400 functions.
4401 (code_convert_region): Call coding_save_composition for encoding
4402 and coding_allocate_composition_data for decoding. Don't skip
4403 ASCII characters if we handle composition on encoding. Call
4404 signal_after_change with Check_BORDER.
4405 (code_convert_string): Call coding_save_composition for encoding
4406 and coding_allocate_composition_data for decoding. Don't skip
4407 ASCII characters if we handle composition on encoding.
4408 (code_convert_string1): Set Vlast_coding_system_used after calling
4409 code_convert_string.
4410 (code_convert_string_norecord): Disable composition.
4411 (Fset_terminal_coding_system_internal): Likewise.
4412 (Fset_safe_terminal_coding_system_internal): Likewise.
4413 (Fset_keyboard_coding_system_internal): Likewise.
4414 (init_coding_once): Set emacs_code_class[0x80] to
4415 EMACS_invalid_code.
4416
4417 * composite.h: New file.
4418
4419 * composite.c: New file.
4420
4421 * data.c (Faref): Delete codes for a composite character..
4422 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4423
4424 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4425 (struct glyph): Add new sub-structure cmp to the union `u'.
4426 (enum display_element_type): New member IT_COMPOSITION.
4427 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4428 (struct it): New members cmp_id, cmp_len.
4429
4430 * dispnew.c (direct_output_forward_char): Check point moving into
4431 or out of a composition. If so, give up direct method.
4432
4433 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4434
4435 * editfns.c (Fchar_to_string): Adjusted for the change of
4436 CHAR_STRING.
4437 (general_insert_function): Likewise.
4438 (Finsert_char): Likewise.
4439 (Fsubst_char_in_region): Likewise. Call update_compositions.
4440 (Ftranslate_region): Call update_compositions.
4441 (Ftranspose_regions): Call update_compositions.
4442
4443 * emacs.c (main): Call syms_of_composite.
4444
4445 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4446 CHAR_STRING.
4447 (Finsert_file_contents): Set Vlast_coding_system_used before
4448 calling signal_after_change. Call update_compositions if some
4449 texts are inserted..
4450 (Fwrite_region): Adjusted for the change of a_write and e_write.
4451 (a_write): Argument changed. Work based on character position,
4452 not byte position.
4453 (e_write): Argument changed. Handle new way of composition.
4454
4455 * fns.c (Flength): The length of char-table is MAX_CHAR.
4456 (concat): Adjusted for the change of CHAR_STRING.
4457 (Ffillarray): Adjusted for the change of CHAR_STRING.
4458 (Fset_char_table_default): Delete codes for a composite character.
4459 (hash_put): Return hash index.
4460
4461 * fontset.h (struct font_info): New member vertical_centering.
4462 (Vvertical_centering_font_regexp): Extern it.
4463
4464 * fontset.c (Vvertical_centering_font_regexp): New variable.
4465 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4466 Set Vignore_relative_composition to nil.
4467 (fs_load_font): Initialize `vertical_centering' of struct
4468 font_info.
4469
4470 * indent.c (check_composition): New function.
4471 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4472 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4473 (current_column_1): Handle new way of composition.
4474 (Fmove_to_column): Likewise.
4475 (compute_motion): Likewise.
4476
4477 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4478 (insert_char): Likewise.
4479 (insert): Call update_compositions.
4480 (insert_and_inherit): Likewise.
4481 (insert_before_markers): Likewise.
4482 (insert_before_markers_and_inherit): Likewise.
4483 (insert_from_string): Likewise.
4484 (insert_from_string_before_markers): Likewise.
4485 (insert_from_buffer): Likewise.
4486 (replace_range): Likewise.
4487 (count_combining_composition): Deleted.
4488 (count_combining_before): Delete codes for a composite character.
4489 (count_combining_after): Likewise.
4490 (del_range_1): Call update_compositions.
4491 (del_range_byte): Likewise.
4492 (del_range_both): Likewise.
4493 (Fcombine_after_change_execute): Likewise.
4494
4495 * intervals.h: Include composite.h.
4496 (get_property_and_range): Extern it.
4497 (Vtext_property_default_nonsticky): Extern it.
427ec082 4498
5ec14d3c
KH
4499 * intervals.c (adjust_intervals_for_insertion): To check stickines
4500 of properties, pay attention to text-property-default-nonsticky.
4501 (merge_properties_sticky): Likewise.
4502 (get_property_and_range): New function.
4503
4504 * keyboard.c (Vdisable_point_adjustment): New variable.
4505 (Vglobal_disable_point_adjustment): New variable.
4506 (syms_of_keyboard): Declare them as Lisp variables.
4507 (command_loop_1): Check them and call adjust_point_for_property if
4508 necessary.
4509 (adjust_point_for_property): New function.
4510
4511 * keymap.c (push_key_description): Adjusted for the change of
4512 CHAR_STRING.
4513 (Ftext_char_description): Likewise.
4514
4515 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4516 (hash_put): Adjusted for the change of the definition.
4517 (signal_after_change): Likewise.
4518 (check_point_in_composition): Extern it.
4519
4520 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4521 Delete a code that handles an invalid too-long multibyte sequence
4522 because we are now sure that we never encounter with such a
4523 sequence.
4524 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4525 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4526 (init_obarray): Likewise.
4527 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4528
4529 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4530
4531 * process.c: Include composite.h.
4532 (read_process_output): Call update_compositions.
4533
4534 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4535
4536 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4537
4538 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4539 character.
4540
4541 * term.c (encode_terminal_code): Delete codes for a composite
4542 character. Adjusted for the change of CHAR_STRING.
4543 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4544 Delete codes for a composite character.
4545
4546 * textprop.c (Vtext_property_default_nonsticky): New variable
4547 (syms_of_textprop): Declare it as a Lisp variable.
4548
4549 * window.c (Frecenter): Clear all caches of compositions.
4550
4551 * xdisp.c (it_props): Add an entry for composition.
4552 (face_before_or_after_it_pos): For composition, check face of a
4553 character after the composition.
4554 (handle_composition_prop): New function.
4555 (get_next_display_element): Adjusted for the change of
4556 CHAR_STRING.
4557 (set_iterator_to_next): Handle the case that it->method ==
4558 next_element_from_composition.
4559 (next_element_from_composition): New function.
4560 (message_dolog): Adjusted for the change of CHAR_STRING.
4561 (set_message_1): Likewise.
4562 (check_point_in_composition): New function.
4563 (reconsider_clip_changes): If point moved into or out of
4564 composition, set b->clip_changed to 1 to force updating of the
4565 screen.
4566 (disp_char_vector): Delete codes for a composite character.
4567 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4568
4569 * xfaces.c (choose_face_fontset_font): Delete codes for a
4570 composite character.
4571 (realize_x_face): Likewise. Change a place to set local variable
4572 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4573
4574 * xfns.c: Include intervals.h.
4575 (syms_of_xfns): Make `display' property nonsticky by default.
4576
4577 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4578 for find_charset_in_str.
4579
4580 * xterm.h (struct x_output): Change member font_baseline to
4581 baseline_offset.
4582
4583 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4584 for composition.
4585 (x_append_composite_glyph): New function.
4586 (VCENTER_BASELINE_OFFSET): New macro.
4587 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4588 of struct it for the composition. Cache pixel offsets in the
4589 struct composition. Delete codes for a composite character.
4590 Handle Vignore_relative_composition in composition code.
4591 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4592 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4593 (x_compute_glyph_string_overhangs): Likewise.
4594 (x_get_glyph_overhangs): Delete codes for a composite character.
4595 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4596 (x_draw_glyph_string_background): Likewise. Delete codes for
4597 checking s->gidx for a composition.
4598 (x_draw_glyph_string_foreground): Delete code for a composite
4599 character.
4600 (x_draw_composite_glyph_string_foreground): New function.
4601 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4602 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4603 (struct work): Deleted.
4604 (x_fill_composite_glyph_string): Argument changed. Mostly
4605 rewritten for that.
4606 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4607 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4608 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4609 (BUILD_GLYPH_STRINGS): For composition, call
4610 BUILD_COMPOSITE_GLYPH_STRING.
4611 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4612 f->output_data.x->font_baseline.
4613
c3c60f13
GM
46141999-12-14 Gerd Moellmann <gerd@gnu.org>
4615
4616 * xterm.c (show_mouse_face): Don't use updated_area, use
4617 TEXT_AREA.
4618
83c8f461 46191999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4620
4621 * minibuf.c (Fall_completions): Doc fix.
4622
83c8f461 46231999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4624
4625 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
4626 has been changed by the Lisp code.
4627
d8eccf12
GM
46281999-12-12 Gerd Moellmann <gerd@gnu.org>
4629
4630 * xfns.c: Indentation fixes.
4631
ae56feae
SM
46321999-12-10 Stefan Monnier <monnier@cs.yale.edu>
4633
4634 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
4635
dfa1c6ae
GM
46361999-12-10 Gerd Moellmann <gerd@gnu.org>
4637
4638 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
4639 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
4640
4641 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
4642 to frame.h.
4643
ec18280f
SM
46441999-12-09 Stefan Monnier <monnier@cs.yale.edu>
4645
4646 * keyboard.c (Qratio): New symbol.
4647 (scroll_bar_parts): Add `Qratio' to it.
4648 (syms_of_keyboard): Init `Qratio'.
4649 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
4650 * xterm.c (#includes): Allow compilation with only Xaw.
4651 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
4652 (xt_action_hook): Replace XAW3D by XAW.
4653 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
4654 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
4655 Determine epsilon dynamically and don't try to be too clever.
4656 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
4657 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
4658 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
4659 scrollbar (using `ratio').
4660 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
4661 scrollbar we have so as to set it up more optimally and to fix
4662 xaw3d_arrow_scroll and xaw3d_pick_top.
4663 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
4664 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
4665 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
4666 is not ignored, using a major gross hack.
4667 (x_initialize): Init default values for xaw3d_arrow_scroll and
4668 xaw3d_pick_top.
4669
83b6d970
DL
46701999-12-09 Dave Love <fx@gnu.org>
4671
4672 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
4673
3648c842
GM
46741999-12-08 Gerd Moellmann <gerd@gnu.org>
4675
4676 * eval.c: Remove conditional compilation on `standalone'.
4677 (call_debugger): When entering the debugger while redisplaying,
4678 reset redisplaying_p, and go back to the top-level if the debugger
4679 returns.
4680
05e71564
GM
46811999-12-07 Gerd Moellmann <gerd@gnu.org>
4682
4683 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
4684 basic faces are realized before trying to use face `menu'.
4685
4686 * window.c (delete_window): Block input for the time window
4687 matrices are being changed.
4688
b46cd536
DL
46891999-12-07 Dave Love <fx@gnu.org>
4690
4691 * lread.c (Fintern_soft): Fix newlines in doc string.
4692
96acb1f7
GM
46931999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
4694
4695 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
4696 duplicate definition of ElfW.
4697 (find_section): Copied from unexsgi.c.
4698 (unexec): Use find_section. Adjust whitespace. Initialize
4699 new_data2_offset based on old_data, not sbss (this fixes a bug on
4700 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
4701 Adjust test for presence of .mdebug section to the new return
4702 value of find_section.
427ec082 4703
96acb1f7
GM
47041999-12-07 Gerd Moellmann <gerd@gnu.org>
4705
4706 * unexelf.c: Merge changes from 20.5.
4707 (unexec): Handle .lit4 and .lit8 unconditionally.
4708
4709 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
4710 unexsgi.o again.
427ec082 4711
96acb1f7
GM
4712 * m/iris5d.h (UNEXEC): Likewise.
4713
7dae4502
SM
47141999-12-06 Stefan Monnier <monnier@cs.yale.edu>
4715
4716 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
4717 (syms_of_editfns): Register it.
4718 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
4719 (del_range_1, del_range_2): Add a ret_string argument to
4720 request that the deleted text be returned.
4721 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 4722 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
4723 * casefiddle.c (casify_region): Update del_range_1 call.
4724 * coding.c (code_convert_region): Update del_range_2 call.
4725 * fileio.c (Finsert_file_contents): Update del_range_2 call.
4726
397e4fae
GM
47271999-12-06 Gerd Moellmann <gerd@gnu.org>
4728
4729 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
4730
3d973f71
GM
47311999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
4732
4733 * lread.c (Fintern_soft): Accept a symbol argument.
427ec082 4734
740e985f
EZ
47351999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4736
4737 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
4738
4739 * insdel.c (adjust_markers_for_delete): Fix last change.
4740
2d764c78
EZ
47411999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4742
4743 Changes for automatic remapping of X colors on terminal frames:
4744
4745 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
4746 frames.
4747 (Vface_tty_color_alist): Remove.
4748 (tty_defined_color): New function.
4749 (defined_color): Rewrite to support any type of frame.
4750 (tty_color_name): New function.
4751 (face_color_supported_p, Fface_color_gray_p,
4752 Fface_color_supported_p): Support non-X frames.
4753 (load_color): Enclose the color name in quotes, in the log
4754 messages. Remove DOS-specific version of load_color.
4755 (realize_tty_face): Take the supported colors from
4756 tty-color-alist. Support translation of X colors to the closest
4757 tty color, for both MSDOS and tty frames.
4758 [MSDOS]: Don't invert face colors if they were taken from the
4759 frame colors.
4760 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
4761
4762 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
4763 Define a mostly empty surrogate.
4764 (tty_display): Declare.
4765
4766 * frame.c (make_terminal_frame) [!macintosh]: Don't use
4767 tty_display.
4768 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
4769 frames when the frame's param_alist includes 'reverse.
4770 (tty_display): Define.
4771 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
4772 output_data.x member.
4773 (Fframe_parameters): Return foreground and background color names
4774 on tty frames as well, in addition to MSDOS frames.
4775
4776 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
4777 selected_frame.
4778 (struct x_output): Remove unused members; document who uses each
4779 member.
4780 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
4781 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
4782 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
4783 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
4784 unused macro definintions.
4785
4786 * msdos.c (IT_set_frame_parameters): Don't call
4787 recompute_basic_faces, the next redisplay will, anyway.
4788 (x_current_display): Remove unused variable.
4789 Many functions: changes for Lisp_object selected_frame.
4790 (IT_set_face): If the tty_reverse_p flag is set for the face,
4791 reverse the foreground and background colors.
4792 (Fmsdos_remember_default_colors): New function.
4793 (syms_of_msdos): Defsubr it.
4794 (IT_set_frame_parameters): Use initial_screen_colors[] when
4795 creating a new frame. If the frame parameters include 'reverse,
4796 swap the foreground and background colors.
4797 (internal_terminal_init): Initialize initial_screen_colors to -1.
4798 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
4799 cus-start.el.
4800
4801 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
4802
4803 * xfns.c (x_defined_color): Rename from defined_color. All
4804 callers changed.
4805 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4806 all callers changed.
4807 (Fxw_color_values): Renamed from Fx_color_values; all callers
4808 changed.
4809 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4810 callers changed.
4811 (x_window_to_frame, x_any_window_to_frame,
4812 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4813 x_top_window_to_frame): Use !FRAME_X_P instead of
4814 f->output_data.nothing.
4815 * xterm.h (x_defined_color): Rename from defined_color.
4816
4817 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
4818 f->output_data.nothing.
4819 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4820 all callers changed.
4821 (Fxw_color_values): Renamed from Fx_color_values; all callers
4822 changed.
4823 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4824 callers changed.
4825
4826 * dispextern.h (tty_color_name): Add prototype.
4827
4828 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
4829 f->output_data.nothing.
4830 * w32menu.c (menubar_id_to_frame): Likewise.
4831 * w32term.h (w32_output): Declare.
4832
4833 * dosfns.c (Qmsdos_color_translate): Remove.
4834 (msdos_stdcolor_name): Now returns a Lisp_Object.
4835 * dosfns.h (Qmsdos_color_translate): Remove.
4836
4837 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
4838
b3e5232e
KH
48391999-12-06 Kenichi Handa <handa@etl.go.jp>
4840
4841 * fileio.c (decide_coding_unwind): Renamed from
4842 set_auto_coding_unwind.
4843 (Finsert_file_contents): Make single unwind protect to call both
4844 Vset_auto_coding_function and Ffind_operation_coding_system.
4845
4846 * insdel.c (adjust_markers_for_delete): Make it non-static.
4847
db0e466c
SM
48481999-12-04 Stefan Monnier <monnier@cs.yale.edu>
4849
4850 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
4851 operators and handle them properly.
4852 * regex.h (RE_ALL_GREEDY): New option.
4853 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
4854 sorting would put it.
4855 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
4856 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
4857
22afa6e8
DL
48581999-12-04 Dave Love <d.love@dl.ac.uk>
4859
4860 * m/arm.h: New file.
4861
40afb967
DL
48621999-12-03 Dave Love <fx@gnu.org>
4863
4864 * editfns.c (Fmessage_or_box): Use use_dialog_box.
4865
ddf8eff5
GM
48661999-12-02 Gerd Moellmann <gerd@gnu.org>
4867
4868 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
4869 for building with Motif.
4870
4871 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
4872 unexelf.o.
427ec082 4873
ddf8eff5
GM
4874 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
4875
fa09a82d
DL
48761999-12-01 Dave Love <fx@gnu.org>
4877
4878 * emacs.c (main): Set LANG=C iff AX3_2 defined.
4879
ddf8eff5
GM
48801999-11-28 Gerd Moellmann <gerd@gnu.org>
4881
4882 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
4883 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
4884 macros.
4885
4886 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
4887
fa09a82d
DL
48881999-11-28 eliz <eliz@dlpx1>
4889
4890 * emacs.c (synchronize_locale): Avoid compiler warnings about
4891 pointer type mismatch.
4892
f9632fc8
GM
48931999-11-28 Gerd Moellmann <gerd@gnu.org>
4894
717d0121
GM
4895 * window.c (Fwindow_end): Don't call temp_set_pt_both with
4896 out of range position.
4897
427ec082 4898 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
f9632fc8
GM
4899 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
4900
59c65f1e
EZ
49011999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
4902
613a8346
EZ
4903 * charset.c (Fmake_char_internal): Print the charset ID when
4904 signalling an error.
4905
59c65f1e
EZ
4906 * emacs.c (synchronize_locale): Avoid compiler warnings about
4907 pointer type mismatch.
4908
83c8f461 49091999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
4910
4911 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
4912
18df9369
GM
49131999-11-26 Gerd Moellmann <gerd@gnu.org>
4914
65a3ccf7
GM
4915 * puresize.h (BASE_PURESIZE): Increase to 550000.
4916
b3b98592
GM
4917 * textprop.c (set_text_properties): New function. Like
4918 Fset_text_properties, but with additional parameter
4919 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
4920 changes.
4921 (Fset_text_properties): Use it.
4922
4923 * insdel.c (insert_1_both): Call set_text_properties with last
4924 parameter nil so that no after changes will be signaled.
4925
4926 * lisp.h: Add prototype for set_text_properties.
4927
18df9369
GM
4928 * xfaces.c (set_lface_from_font_name): Fix previous change.
4929 (recompute_basic_faces): Change assert to abort.
4930
71a8e74b
DL
49311999-11-25 Dave Love <fx@gnu.org>
4932
4933 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
4934 (Fmember, Fdelq, Fdelete): Inline car.
4935 (Fy_or_n_p): Doc fix.
4936
bc6a5782
GM
49371999-11-25 Gerd Moellmann <gerd@gnu.org>
4938
3221576b 4939 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 4940 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
4941 is not set, try to use a reasonable default.
4942
bc6a5782
GM
4943 * dispnew.c (direct_output_for_insert): Set glyph row's
4944 displays_text_p flag. Correct window's window_end_vpos if
4945 necessary.
4946
0c8559bb
PE
49471999-11-25 Paul Eggert <eggert@twinsun.com>
4948
4949 * emacs.c (fixup_locale): Don't bother to record initial locale.
4950 (synchronize_locale): If the desired locale is nil,
4951 treat it as if it were the empty string,
4952 so that we set the locale from the environment.
4953
35737351
KH
49541999-11-25 Kenichi Handa <handa@etl.go.jp>
4955
4956 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
4957 of the current buffer via Fset.
4958
5562b47f
DL
49591999-11-24 Dave Love <fx@gnu.org>
4960
5562b47f
DL
4961 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
4962
4963 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
4964
00da0e4a
GM
49651999-11-24 Gerd Moellmann <gerd@gnu.org>
4966
4967 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
4968
4969 * emacs.c (PVEC_FLAG): New variable.
4970
b1775dc1
GM
49711999-11-23 Gerd Moellmann <gerd@gnu.org>
4972
4973 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
4974 that fails on IBM PowerPC, AIX 4.2.
427ec082 4975
08de6200
EZ
49761999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
4977
4978 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
4979 string of mode-line-format. Remove the obsolete %t.
4980
02fda8ff
GM
49811999-11-22 Gerd Moellmann <gerd@gnu.org>
4982
f2fa858f
GM
4983 * dispnew.c (direct_output_for_insert): Increment glyph positions
4984 for glyphs from buffer text only.
4985
02fda8ff
GM
4986 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
4987 (gdb_data_seg_bits): New variables.
427ec082 4988
02fda8ff
GM
4989 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
4990 work on systems not allowing enumerators > INT_MAX, and it
4991 won't work if EMACS_INT is long long.
4992
1b0d24e7
PE
49931999-11-22 Paul Eggert <eggert@twinsun.com>
4994
4995 Port to SunOS 4.1.x again. Help out with Alpha port.
4996 Rename messages-locale to system-messages-locale,
4997 and likewise for time-locale.
427ec082 4998
1b0d24e7
PE
4999 * callproc.c (strerror): Remove decl.
5000 * fileio.c (strerror): Likewise.
5001 * process.c (strerror): Likewise.
5002 * emacs.c (strerror): Likewise.
5003 (Vsystem_messages_locale): Renamed from Vmessages_locale.
5004 All uses changed.
5005 (Vprevious_system_messages_locale): Likewise, from
5006 Vprevious_messages_locale.
5007 (Vsystem_time_locale): Likewise, from Vtime_locale.
5008 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
5009 (ABORT_RETURN_TYPE): New macro.
5010 (abort): Return type is now ABORT_RETURN_TYPE.
5011 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
5012 defined.
5013 (syms_of_emacs): messages-locale -> system-messages-locale,
5014 previous-messages-locale -> previous-system-messages-locale,
5015 time-locale -> system-time-locale,
5016 previous-time-locale -> previous-system-time-locale.
5017
5018 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
5019 (const): Do not define; that's config.h's job.
5020 (<limits.h>): Include if HAVE_LIMITS_H is defined.
5021 (CHAR_BIT): Move test for definedness outside of limits.h condition.
5022 (<stddef.h>): Include if STDC_HEADERS is defined.
5023 (FREE_RETURN_TYPE): New macro.
5024 (free): Return type is now FREE_RETURN_TYPE.
5025
5026 * lisp.h (synchronize_system_time_locale): Renamed from
5027 synchronize_time_locale. All uses changed.
5028 (synchronize_system_messages_locale): Likewise, from
5029 synchronize_messages_locale.
5030
5031 * m/alpha.h (malloc, realloc, calloc): Remove decls;
5032 stdlib.h now does this.
5033
5034 * process.c (sys_siglist): Remove.
5035
5036 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
5037 New macros.
5038
5039 * syntax.c (scan_sexps_forward): Use abort, not assert.
5040
5041 * sysdep.c (my_sys_siglist): New var.
5042 (sys_siglist): New macro. Remove old initialized vars of same name.
5043 (init_signals): Initialize sys_siglist.
5044
5045 * xfns.c (abort): Remove decl; stdlib.h now does this.
5046
0dcd5b54
DL
50471999-11-18 Dave Love <fx@gnu.org>
5048
946173ad
DL
5049 * filelock.c: Add forward declaration for get_boot_time_1.
5050
0dcd5b54
DL
5051 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
5052
71447e8f
GM
50531999-11-18 Gerd Moellmann <gerd@gnu.org>
5054
5055 * buffer.h (struct buffer_text): Add comment about moving
5056 buffer text if REL_ALLOC is defined.
5057
eeedff63
KH
50581999-11-18 Kenichi Handa <handa@etl.go.jp>
5059
5060 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
5061
5062 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5063 memory for push_key_description.
5064
5065 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5066 allocate memory for push_key_description.
5067 (describe_buffer_bindings): Likewise.
5068
5d7e4a2c
GM
50691999-11-17 Gerd Moellmann <gerd@gnu.org>
5070
5071 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5072 (Fx_hide_busy_cursor): Ditto.
5073
50741999-11-17 Marco Walther <walther@siemens-pyramid.com>
5075
5076 * unexsni.c (unexec): Handle .rel.dyn section.
5077
b5b41e02
DL
50781999-11-16 Dave Love <fx@gnu.org>
5079
5080 * doc.c (Fdocumentation): Remove gcpro here too.
5081
e35b6123
GM
50821999-11-16 Gerd Moellmann <gerd@gnu.org>
5083
5084 * keyboard.c (command_loop_1): Remove no_redisplay.
5085
83c8f461 50861999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5087
5088 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5089 in noninteractive.
5090
b05d3bee
GM
50911999-11-14 Gerd Moellmann <gerd@gnu.org>
5092
5bcfeb49
GM
5093 * xdisp.c (ensure_echo_area_buffers): New.
5094 (with_echo_area_buffer): Use it.
5095 (setup_echo_area_for_printing): Ditto.
5096
b05d3bee
GM
5097 * buffer.c (indicate-empty-lines): Doc-fix.
5098
9b2e6e4c
GM
50991999-11-12 Gerd Moellmann <gerd@gnu.org>
5100
e7f90eab
GM
5101 * term.c (term_init): If "op" isn't available, don't support color
5102 because we can't switch back to the default foreground and
5103 background.
5104
9b2e6e4c
GM
5105 * doc.c (Fdocumentation_property): Remove GCPRO because
5106 Fsubstitute_command_keys gcpro's the string.
5107
1bf21027
KH
51081999-11-12 Kenichi Handa <handa@etl.go.jp>
5109
5110 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5111
3bc6df53
GM
51121999-11-11 Gerd Moellmann <gerd@gnu.org>
5113
5114 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5115 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5116 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5117
35a5514b
GM
51181999-11-10 Gerd Moellmann <gerd@gnu.org>
5119
5120 * xfns.c (QCuser_data): Removed.
5121 (syms_of_xfns): Initialization of QCuser_data removed.
5122 (parse_image_spec): Don't handle :user-data specially. Allow
5123 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5124 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5125 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5126 parse_image_spec accordingly.
5127
83c8f461 51281999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5129
5130 * cmds.c (Fbeginning_of_line): Doc fix.
5131 (Fend_of_line): Doc fix.
5132
5133 * editfns.c (Fline_beginning_position): If N is not 1,
5134 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5135
5136 * syntax.c (Fforward_word): Handle fields even if would have hit
5137 an edge of the buffer. Return nil if affected by fields.
5138
83c8f461 51391999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5140
5141 * editfns.c (preceding_pos): Function deleted.
5142 (text_property_stickiness): Decrement POS directly.
5143 Fix a confusion that used PT instead of POS.
5144
5145 * editfns.c (find_field): Properly handle the case
5146 of a field boundary where `field' inherits from neither side.
5147
5148 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5149 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5150
fa9aabf6
GM
51511999-11-08 Gerd Moellmann <gerd@gnu.org>
5152
5153 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5154 BEFORE_POTENTIAL_GC before DISCARD.
5155
4015b3c0
GM
51561999-11-07 Gerd Moellmann <gerd@gnu.org>
5157
033a5fa3
GM
5158 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5159
5160 * lisp.h: Add prototype for unmark_byte_stack.
5161
5162 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5163 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5164 XUNMARK.
5165
55b064bd
GM
5166 * xdisp.c (resize_mini_window): Fix computation of needed
5167 mini-window height.
5168
5169 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5170 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5171
4015b3c0 5172 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5173 locally there. Rearrange case statements so that those most
4015b3c0
GM
5174 frequently executed come first. Avoid goto's in frequently
5175 executed cases.
5176
fe512f27
GM
51771999-11-05 Gerd Moellmann <gerd@gnu.org>
5178
dd59e217
GM
5179 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5180 AFTER_POTENTIAL_GC around internal_catch.
5181
bcf28080
GM
5182 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5183 relocate_byte_pcs.
5184 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5185
5186 * eval.c (struct catchtag): Add member byte_stack.
5187 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5188 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5189 catchtag.
5190 (unwind_to_catch): Restore byte_stack_list from catchtag.
5191
5192 * lisp.h: Add prototypes for new functions in bytecode.c.
5193 Add extern declaration for byte_stack_list.
5194
5195 * bytecode.c (struct byte_stack): New.
5196 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5197 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5198 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5199 (HANDLE_RELOCATION): Removed.
5200 (Fbyte_code): Use byte_stack structures.
5201
4d59c34c
GM
5202 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5203
fe512f27
GM
5204 * buffer.c (syms_of_buffer): Extend documentation of
5205 mode-line-format.
5206
60b64cd6
GM
52071999-11-04 Gerd Moellmann <gerd@gnu.org>
5208
5209 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5210
5211 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5212 Ferase_field instead of Fdelete_field.
5213
b51b619b
GM
52141999-11-03 Gerd Moellmann <gerd@gnu.org>
5215
5216 * dispnew.c (Finternal_show_cursor): Change it to set the
5217 cursor on/off, not toggle its state.
5218 (Finternal_show_cursor_p): New.
5219 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5220
5865af0d
DL
52211999-11-03 Dave Love <fx@gnu.org>
5222
5223 * charset.c (split_non_ascii_string): Define return value.
5224
82a700f3
GM
52251999-11-03 Gerd Moellmann <gerd@gnu.org>
5226
edfef199
GM
5227 * minibuf.c (string_to_object): New.
5228 (read_minibuf_noninteractive): New.
5229 (read_minibuf): Call read_minibuf_noninteractive if
5230 noninteractive. Use string_to_object.
5231
82a700f3
GM
5232 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5233
b5540f0d
DL
52341999-11-02 Dave Love <fx@gnu.org>
5235
e69dcd60
DL
5236 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5237
827a1788
DL
5238 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5239 declared with glibc2.
b5540f0d 5240
a69a6e61
GM
52411999-11-02 Gerd Moellmann <gerd@gnu.org>
5242
5243 * lisp.h (QUIT): Give it statement form.
5244
87e21fbd
DL
52451999-11-02 Dave Love <fx@gnu.org>
5246
5247 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5248
1b335865
GM
52491999-11-02 Gerd Moellmann <gerd@gnu.org>
5250
9fb5e03d
GM
5251 * xfns.c (QCuser_data): New.
5252 (syms_of_xfns): Initialize QCuser_data.
5253 (parse_image_spec): Ignore :user-data DATA properties.
5254
1b335865
GM
5255 * xdisp.c (display_line): Set charpos of first glyph in blank
5256 lines not corresponding to any text to -1, even if no glyphs are
5257 filled in in that line.
5258
e76f1c44
GM
52591999-11-01 Gerd Moellmann <gerd@gnu.org>
5260
427ec082 5261 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
36fcd3d9
GM
5262 png_get_sRGB in #ifdef.
5263
111259b4
GM
5264 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5265 (syms_of_display): Use the new name.
5266
dd5c96e8
GM
5267 * textprop.c (verify_interval_modification): Signal text-read-only
5268 instead of calling error.
5269
db8878fb
GM
5270 * data.c (Qtext_read_only): New built-in error.
5271 (syms_of_data): Initialize it.
5272
5273 * lisp.h: Add extern declaration for Qtext_read_only.
5274
e76f1c44
GM
5275 * syntax.c: Remove whitespace after open or in front of closing
5276 parentheses.
5277
83c8f461 52781999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5279
5280 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5281
7843e09c
GM
52821999-10-31 Gerd Moellmann <gerd@gnu.org>
5283
575ed805
GM
5284 * xdisp.c (resize_mini_window): Compute needed height differently.
5285
7843e09c
GM
5286 * fns.c (Flength): Unroll loop over lists.
5287
5288 * xdisp.c (append_space): Return non-zero if space was appended.
5289 (display_line): Set charpos of first glyph to -1 only if that
5290 glyph is the space added by append_glyph.
5291
83c8f461 52921999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5293
5294 * print.c (strout): Consider `noninteractive' and use stdout
5295 only when PRINTCHARFUN is t.
5296
5297 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5298 (gcpro_level): Declare it extern.
5299 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5300 Alternate definitions that set `level' and increment `gcpro_level'.
5301 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5302
5303 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5304 (init_eval) [DEBUG_GCPRO]: Initialize it.
5305 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5306 from remaining gcprolist.
5307
3636f7a3
KH
53081999-10-29 Kenichi Handa <handa@etl.go.jp>
5309
5310 * coding.c (code_convert_region): Update `dst' correctly.
5311
a2ad7096
GM
53121999-10-28 Gerd Moellmann <gerd@gnu.org>
5313
5314 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5315 (Frassoc): Rewritten.
5316
1e3196e8
GM
53171999-10-27 Noah Friedman <friedman@splode.com>
5318
5319 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5320 Define PTY_NAME_SPRINTF.
5321 Redefine PTY_TTY_NAME_SPRINTF.
5322 * config.in: Add undef for HAVE_DEV_PTMX.
5323
83c8f461 53241999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5325
5326 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5327 as arg to DEBUG_POP and DEBUG_PRINT.
5328
83c8f461 53291999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5330
5331 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5332 (Ffset): Call Qad_activate_internal.
5333 (syms_of_data): Initialize Qad_activate_internal.
5334
26922151
GM
53351999-10-27 Gerd Moellmann <gerd@gnu.org>
5336
5337 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5338 Vterminal_frame is selected and Vwindow_system is non-nil.
5339
67a5596f
GM
53401999-10-26 Gerd Moellmann <gerd@gnu.org>
5341
2bea706b
GM
5342 * xdisp.c (echo_area_display): Put previous change in #if 0.
5343
67a5596f
GM
5344 * emacs.c (standard_args): Add `file' as synonym for `visit',
5345 `execute' as synonym for `eval'.
5346 (main): Add new options to usage message.
5347
81dc5de5
GM
53481999-10-25 Gerd Moellmann <gerd@gnu.org>
5349
5350 * data.c (Qhash_table): New.
5351 (Ftype_of): Return it for hash tables.
5352 (syms_of_data): Initialize Qhash_table.
5353
83c8f461 53541999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5355
5356 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5357
66e4690f 53581999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5359
7539e11f
KR
5360 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5361 lisp.h.
5362
5363 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5364 Fbuffer_local_variables, Fother_buffer, record_buffer,
5365 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5366 swap_out_buffer_local_variables, overlays_at, overlays_in,
5367 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5368 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5369 Foverlay_put, report_overlay_modification, evaporate_overlays):
5370 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5371 references.
5372 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5373 swap_in_symval_forwarding, set_internal, default_value,
5374 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5375 Fmake_variable_frame_local, Flocal_variable_p,
5376 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5377 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5378 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5379 * emacs.c (main): Likewise.
5380 * fontset.c (fs_load_font, fs_register_fontset,
5381 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5382 Fnew_fontset, Fset_fontset_font): Likewise.
5383 * frame.c (do_switch_frame, next_frame, prev_frame,
5384 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5385 Likewise.
5386 * keyboard.c (read_char, help_char_p, event_to_kboard,
5387 kbd_buffer_get_event, timer_start_idle, timer_check,
5388 make_lispy_event, apply_modifiers, reorder_modifiers,
5389 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5390 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5391 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5392 Fcommand_execute, Fexecute_extended_command): Likewise.
5393 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5394 Fall_completions): Likewise.
5395 * window.c (Fset_window_margins): Likewise.
5396
5397 * callint.c (quotify_args): Don't explicitly use struct
5398 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5399
3a7093d8
KR
5400 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5401 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5402 if __ELF__ is defined.
5403
2a3d7146
GM
54041999-10-24 Gerd Moellmann <gerd@gnu.org>
5405
5406 * window.c (Fnext_window): Add a QUIT in the loop.
5407
8ac52782
GM
54081999-10-23 Gerd Moellmann <gerd@gnu.org>
5409
427ec082 5410 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
8ac52782
GM
5411 New targets.
5412
05f0d15a
DL
54131999-10-22 Dave Love <fx@gnu.org>
5414
5415 * emacs.c (main): Enable profiling conditional on __linux also.
5416
882fb0e6
GM
54171999-10-20 Gerd Moellmann <gerd@gnu.org>
5418
5419 * xrdb.c (x_load_resources): Set default resources for resource
5420 classes instead of for the specific Emacs.
5421
b5f5bc31
GM
54221999-10-19 Gerd Moellmann <gerd@gnu.org>
5423
66f4dd69
GM
5424 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5425 defines it that way.
427ec082 5426
b5f5bc31
GM
5427 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5428 if selected_frame is equal to Vterminal_frame.
5429
68c45bf0 54301999-10-19 Paul Eggert <eggert@twinsun.com>
427ec082 5431
68c45bf0 5432 Add support for large files, 64-bit Solaris, system locale codings.
427ec082 5433
68c45bf0
PE
5434 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5435 when dumping, so that the dumped Emacs doesn't have stray locale info.
5436 (dired.o): Depend on systime.h.
5437 (editfns.o): Depend on coding.h.
5438
5439 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5440 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5441 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5442 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5443 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5444 Include <config.h> before any system include files.
5445
5446 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5447 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5448 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5449 xmenu.c, xterm.c:
5450 Do not include <stdlib.h>, as <config.h> does this now.
5451
5452 * callproc.c (Fcall_process):
5453 Synchronize messages locale before invoking strerror.
5454 Decode resulting string with locale-coding-system.
5455
5456 * coding.c (Vlocale_coding_system): New var.
5457 (syms_of_coding): Adjust to above change.
5458 (emacs_strerror): New function.
5459
5460 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
427ec082 5461
68c45bf0
PE
5462 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5463 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5464 HAVE_STRSIGNAL): New macros.
5465 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5466 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5467
5468 * dired.c: Include "systime.h".
5469 (Ffile_attributes): Do not cast s.st_size to int; this loses
5470 information if int is 32 bits but st_size and EMACS_INT are larger.
5471 Treat large device numbers like large inode numbers.
5472
5473 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5474
5475 * editfns.c: Include coding.h.
5476 (emacs_strftime): Remove decl.
5477 (emacs_strftimeu): New decl.
5478 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5479 Use emacs_strftimeu instead of emacs_strftime.
5480 (Fformat_time_string): Convert format string using
5481 Vlocale_coding_system, and convert result back. Synchronize time
5482 locale before invoking lower level function. Invoke
5483 emacs_memftimeu, passing ut, instead of emacs_memftime.
427ec082 5484
68c45bf0
PE
5485 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5486 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5487 Vprevious_time_locale): New variables.
5488 (main): Invoke setlocale early, so that initial error messages are
5489 localized properly. But skip locale-setting if LC_ALL is "C".
5490 Fix up locale when it's safe to do so.
5491 (fixup_locale): Moved here from xterm.c.
5492 (synchronize_locale, synchronize_time_locale,
5493 synchronize_messages_locale): New functions.
5494 (syms_of_emacs): Accommodate above changes.
5495
5496 * fileio.c (report_file_error): Convert strerror output according
5497 to Vlocale_coding_system.
5498 (Finsert_file_contents): Check for arithmetic overflow in
5499 computations that depend on file size. Report IO errors
5500 with emacs_strerror, not strerror.
5501
5502 * fns.c (Fgethash): Declare dflt parameter.
5503
5504 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5505 is defined; that's config.h's job.
5506
5507 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5508 default these values to long, BITS_PER_LONG, and unsigned long.
5509 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5510 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5511 (code_convert_string_norecord, fixup_locale,
5512 synchronize_messages_locale, synchronize_time_locale,
5513 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5514 All Emacs callers of open, close, read, write changed to use
5515 emacs_open, emacs_close, emacs_read, emacs_write.
5516
5517 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5518 changed to file_tell.
5519 (saved_doc_string_position, prev_saved_doc_string_position): Now
5520 of type file_offset.
5521 (init_lread): Do not fix locale here; fixup_locale now does this.
5522
5523 * m/amdahl.h, s/usg5-4.h:
5524 (NSIG): Remove.
5525 (NSIG_MINIMUM): New macro.
5526
5527 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5528 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5529 s/umips.h, s/usg5-4.h:
5530 (SIGIO): Do not undef.
5531 (BROKEN_SIGIO): New macro.
5532
5533 * m/ustation.h:
5534 (SIGTSTP): Do not undef.
5535 (BROKEN_SIGTSTP): New macro.
5536
5537 * s/gnu-linux.h:
5538 (SIGPOLL, SIGURG): Do not undef.
5539 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5540
5541 * s/ptx4.h:
5542 (SIGINFO): Do not undef.
5543 (BROKEN_SIGINFO): New macros.
427ec082 5544
68c45bf0
PE
5545 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5546
5547 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5548 some Emacs-related changes merged.
5549
5550 * print.c (float_to_string): Prepend "-" to representation of a
5551 NaN if the NaN is negative.
5552
5553 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5554 (wait_reading_process_input): Use emacs_strerror, not strerror.
427ec082 5555
68c45bf0
PE
5556 * process.c (status_message, sigchld_handler): Synchronize locale,
5557 then use strsignal istead of sys_siglist.
5558 * w32proc.c (sys_wait): Likewise.
427ec082 5559
68c45bf0
PE
5560 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5561 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5562 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5563 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5564 (open, close, read, write, INTERRUPTIBLE_OPEN,
5565 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5566
5567 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5568
5569 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5570 sys_open, open): Remove.
5571 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5572 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5573 macros are no longer used.
5574 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5575 (emacs_close): Renamed from sys_close.
5576 (emacs_read): Renamed from sys_read.
5577 (emacs_write): Renamed from sys_write.
5578 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5579 (dup2): Do not print error on failure; the real dup2 doesn't.
5580 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5581
5582 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5583 is defined.
5584 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5585 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5586 (strsignal): Declare if !HAVE_STRSIGNAL.
5587
5588 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5589 (ElfW): Define in terms of ElfExpandBitsW.
5590
5591 * w32proc.c (sys_siglist): Remove decl.
5592
5593 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5594 with ANSI C.
5595 (display_string): Declare face_string_pos arg.
5596
5597 * xfns.c (Fx_show_tip): Declare timeout param.
5598
5599 * xterm.c: No need to include locale.h.
5600 (x_alloc_lighter_color, x_setup_relief_color):
5601 Pass arg as double, not float, for compatibility with ANSI C.
5602 (fixup_locale): Move to emacs.c.
5603 (x_term_init): Do not setlocale or fixup locale; the main program
5604 does this now.
5605
2f0b74ea
DL
56061999-10-18 Dave Love <fx@gnu.org>
5607
5608 * doc.c (Fdocumentation_property): Gcpro `tem'.
5609
471aa4a0
KH
56101999-10-18 Kenichi Handa <handa@etl.go.jp>
5611
5612 * lread.c (Fload): Calculate bytes of filename correctly.
5613 (openp): Likewise.
5614
aca2020b
KH
56151999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5616
5617 * print.c (print_preprocess): In case print-circle is nil,
5618 add OBJ to Vprint_number_table only when OBJ is a symbol.
5619
1f5fe392 56201999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
5621
5622 * coding.c (code_convert_string): Add record_unwind_protect to
5623 assure setting inhibit_pre_post_conversion back to zero. Take
5624 care of the multibyteness of the working buffer.
5625
5626 * coding.c (inhibit_pre_post_conversion): New variable.
5627 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
5628 ignore post-read-conversion and pre-write-conversion property of
5629 the coding system.
5630 (code_convert_region_unwind): New function.
5631 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
5632 running pre-write-conversion and post-read-conversion.
5633 (code_convert_string): Likewise.
5634
cd876a91
GM
56351999-10-17 Miles Bader <miles@gnu.org>
5636
5637 * editfns.c: Doc fix.
5638
56391999-10-17 Miles Bader <miles@gnu.org>
5640
5641 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
5642 argument preconditions of find_before_next_newline in the case
5643 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
5644 was indeed at the edge.
5645
56461999-10-17 Miles Bader <miles@gnu.org>
5647
5648 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
5649 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
5650
5651 * editfns.c (text_property_eq, text_property_stickiness): Don't
5652 use initializers for auto variables of type Lisp_Object.
5653 (find_field): Likewise. Use braces around nested ifs.
5654 (Fline_end_position): Store the raw eol in a variable, so that the
5655 final expression doesn't look so ugly.
5656 (Fconstrain_to_field): Doc fix.
5657 (preceding_pos): Renamed from `preceeding_pos'.
5658 (text_property_stickiness, find_field): Call preceding_pos,
5659 not preceeding_pos.
5660
56611999-10-17 Miles Bader <miles@gnu.org>
5662
5663 * editfns.c (Ffield_string_no_properties): New function.
5664 (text_property_stickiness, preceeding_pos): New functions.
5665 (Ffield_string): Remove PROPS parameter.
5666 (find_field): Add MERGE_AT_BOUNDARY parameter.
5667 Rewrite to use stickiness of `field' property to resolve
5668 ambiguous cases.
5669 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
5670 (Fconstrain_to_field): Likewise.
5671 (syms_of_editfns): Init Sfield_string_no_properties.
427ec082 5672 (Ffield_string, Ferase_field, Ffield_end):
cd876a91
GM
5673 Supply new MERGE_AT_BOUNDARY argument to find_field.
5674 (Fline_beginning_position, Fline_end_position): Supply new
5675 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
5676 Pass a value of Qt for the ONLY_IN_LINE argument to
5677 Fconstrain_to_field (only matters if N != 1).
5678 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
5679 to Fconstrain_to_field.
5680
5681 * minibuf.c (Fminibuffer_complete_word): Use
5682 Ffield_beginning to find the prompt end.
5683
56841999-10-17 Miles Bader <miles@gnu.org>
5685
5686 * editfns.c (Fconstrain_to_field): Add get/set-current-point
5687 behavior when NEW_POS is nil.
5688 (find_field): Use XSETFASTINT instead of make_number.
5689 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
5690 input string by seeing where the field begins, instead of
5691 looking at text-properties.
5692
56931999-10-17 Miles Bader <miles@gnu.org>
5694
5695 * editfns.c (Qfield): New variable.
5696 (find_field, Ferase_field, Ffield_string,
5697 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
5698 (Fline_beginning_position, Fline_end_position): Constrain to any field.
5699 (make_buffer_string_both): Remove minibuffer-prompt hack.
5700 (syms_of_editfns): Initialize Qfield, and subr entries for
5701 field functions above.
5702 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
5703 minibuf_save_list.
5704 Don't initialize minibuffer prompt length.
5705 Wrap prompt text-properties around the entire prompt.
5706 Add 'prompt text-property to prompt.
5707 Get final value with Ffield_string instead of make_buffer_string.
5708 (read_minibuf_unwind): Don't restore minibuffer prompt length from
5709 minibuf_save_list.
5710 (do_completion): Get minibuffer input with Ffield_string
5711 instead of Fbuffer_string.
5712 Erase minibuffer input with Ferase_field instead of erase_buffer.
5713 (Fminibuffer_complete_and_exit): Likewise.
5714 Test whether buffer is empty by looking for the 'prompt text
5715 property at the end.
5716 Set prompt length by looking for the end of the prompt text property,
5717 and save prompt length for later use (since there is no longer a
5718 buffer variable to get it from).
5719 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
5720 (syms_of_minibuf): Remove initializations of
5721 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
5722 * buffer.h (struct buffer): Remove prompt_end_charpos field.
427ec082 5723 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
cd876a91
GM
5724 Don't initialize prompt_end_charpos field.
5725 * syntax.c (Fforward_word): Likewise.
5726 Constrain to any field.
5727
3f6f7508
GM
57281999-10-16 Gerd Moellmann <gerd@gnu.org>
5729
5730 * window.c (enum save_restore_action): New.
5731 (save_restore_orig_size): Change parameter list. Add
5732 functionality to check for valid orig_top and orig_height members
5733 in a window tree.
5734 (grow_mini_window): Call save_restore_orig_size with new parameter
5735 list.
5736 (shrink_mini_window): Restore old window sizes only if old
5737 size information is valid in all windows in a window tree.
427ec082 5738
06482119
GM
57391999-10-15 Gerd Moellmann <gerd@gnu.org>
5740
2710454d
GM
5741 * xmenu.c (set_frame_menubar): Don't call
5742 x_set_menu_resources_from_menu_face here.
5743 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
5744
06482119
GM
5745 * xfns.c (gif_load): Fix handling of interlaced GIFs.
5746
17fa2837
DL
57471999-10-14 Dave Love <fx@gnu.org>
5748
5749 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
5750
45f93416
GM
57511999-10-14 Gerd Moellmann <gerd@gnu.org>
5752
5753 * process.c (Fopen_network_stream): Don't loop if gethostbyname
5754 fails and h_errno is TRY_AGAIN.
5755
c765b723
DL
57561999-10-13 Dave Love <fx@gnu.org>
5757
5758 * filelock.c (lock_file): Move gcpro of `fn'.
5759
dace7f4e
GM
57601999-10-10 Gerd Moellmann <gerd@gnu.org>
5761
5762 * keyboard.c (auto-save-interval): Fix documentation.
427ec082 5763
83c8f461 57641999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
5765
5766 * print.c (print): When removing objects from Vprint_number_table,
5767 only scan the newly added objects.
5768 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
5769 unconditionally force it to stay in the table.
5770
85177c86
GM
57711999-10-09 Gerd Moellmann <gerd@gnu.org>
5772
5773 * xfns.c (prepare_image_for_display): Don't try to load image if
5774 loading it failed before.
5775 (lookup_image, prepare_image_for_display): Remember if loading the
5776 image failed.
5777 (xpm_load): Add missing UNBLOCK_INPUT.
5778
5779 * dispextern.h (struct image): New member load_failed_p.
5780
11e4de5d
SM
57811999-10-08 Stefan Monnier <monnier@cs.yale.edu>
5782
f28eba7b 5783 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
5784 in the docstring.
5785
f1da8f06
GM
57861999-10-08 Gerd Moellmann <gerd@gnu.org>
5787
5788 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
5789 Don't call XSetInputFocus because that can generate additional
5790 FocusIn events.
427ec082 5791
c37bbd4f
GM
57921999-10-07 Jeffrey C Honig <jch@bsdi.com>
5793
5794 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
5795
83c8f461 57961999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
5797
5798 * process.c (wait_reading_process_input): When trying to suck
5799 input from one process, for accept-process-output,
5800 exit that loop if we get EAGAIN or EWOULDBLOCK.
5801
577d9e2f
GM
58021999-10-07 Gerd Moellmann <gerd@gnu.org>
5803
5804 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
5805 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
5806 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
5807 Fpixmap_spec_p and Qpixmap_spec_p.
5808 (load_face_colors, check_lface_attrs,
5809 merge_face_vector_with_property,
5810 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
5811 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
5812 Fbitmap_spec_p.
5813
f5737ad2
GM
58141999-10-07 Gerd Moellmann <gerd@gnu.org>
5815
5816 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
5817 MODE_LINE_FACE_ID.
5818
5819 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
5820 (struct x_resources) [USE_X_TOOLKIT]: New.
5821 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
5822 [USE_MOTIF]: New.
5823 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
5824 [USE_LUCID]: New.
5825 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
5826 (Qmenu): New.
5827 (syms_of_xfaces): Initialize Qmenu.
5828 (realize_basic_faces): Realize face `menu'.
5829 (resolve_face_name): New.
5830 (lface_from_face_name): Use it.
5831 (Finternal_set_lisp_face_attribute): Ditto.
5832 (Fpixmap_spec_p): Rewritten. Extend doc string.
5833
5834 * xmenu.c (set_frame_menubar, xmenu_show): Call
5835 x_set_menu_resources_from_menu_face.
5836
5837 * dispextern.h (enum face_id): Add MENU_FACE_ID.
5838 (toplevel): Include X11/Intrinsic.h.
5839
6a1aa823
DL
58401999-10-03 Ken'ichi Handa <handa@gnu.org>
5841
5842 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
5843 correctly.
5844
26901792
DL
58451999-09-30 Kenichi Handa <handa@etl.go.jp>
5846
5847 * category.c (modify_lower_category_set): Set default value of
5848 TABLE correctly.
5849
5850 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
5851 size correctly.
5852
58531999-09-29 Gerd Moellmann <gerd@gnu.org>
5854
5855 * editfns.c (Fpropertize): Renamed from Fproperties.
5856
58571999-09-29 Gerd Moellmann <gerd@gnu.org>
5858
5859 * xdisp.c (resize_mini_window): Do nothing if frame is an X
5860 frame that hasn't been initialized yet.
5861
83c8f461 58621999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
5863
5864 * keymap.c (Fsingle_key_description): Make tem big enough.
5865 (describe_buffer_bindings): Make buf big enough.
5866
83c8f461 58671999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
5868
5869 * intervals.c (get_local_map): Use indirect_function,
5870 not Findirect_function.
5871
26901792
DL
58721999-09-27 Dave Love <fx@gnu.org>
5873
5874 * cm.h: Remove unneeded declaration of ospeed.
5875
58761999-09-26 Gerd Moellmann <gerd@gnu.org>
5877
5878 * lisp.h (toplevel): Add prototype for
5879 next_single_char_property_change.
5880
5881 * textprop.c (next_single_char_property_change): New.
5882
5883 * xdisp.c (display_prop_end, invisible_text_between_p): Use
5884 next_single_char_property_change.
5885
58861999-09-25 Gerd Moellmann <gerd@gnu.org>
5887
5888 * editfns.c (Fproperties): New.
5889 (syms_of_editfns): Defsubr it.
5890
5891 * xfns.c (lookup_image): Set image's timestamp because it's
5892 used when we look it up.
5893
58941999-09-23 Gerd Moellmann <gerd@gnu.org>
5895
5896 * window.c (enlarge_window): Add window parameter instead of using
5897 selected_window.
5898 (Fdisplay_buffer): Call it with window parameter instead of
5899 setting selected_window.
5900 (Fenlarge_window, Fshrink_window): Ditto.
5901 (shrink_mini_window): If there is no recorded height and position
5902 info, resize mini-window to height 1.
5903
5904 * xfns.c (image_error): Use add_to_log.
5905
5906 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
5907 (load_face_font_or_fontset, load_color,
5908 merge_face_vector_with_property): Ditto.
5909
5910 * dispextern.h: Add prototype for add_to_log.
5911
5912 * xfaces.c (add_to_log): Move to xdisp.c.
5913
5914 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
5915 parameter.
5916
59171999-09-23 Gerd Moellmann <gerd@gnu.org>
5918
5919 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
5920 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
5921
5922 * xdisp.c (resize_mini_window): Use grow_mini_window and
5923 shrink_mini_window.
5924
5925 * window.c (window_min_size): Add parameter ignore_fixed_p.
5926 (change_window_height): Call window_min_size with new parameter.
5927 (shrink_window_lowest_first, save_restore_orig_size,
5928 grow_mini_window, shrink_mini_window): New.
5929 (make_window, replace_window): Initialize orig_top and
5930 orig_height.
5931 (enlarge_window): Renamed from change_window_height. Make it
5932 static.
5933 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
5934 enlarge_window instead of change_window_height.
5935
5936 * window.h (struct window): New members orig_top, orig_height.
5937 (toplevel): Add prototypes for grow_mini_window and
5938 shrink_mini_window. Remove prototype for change_window_height.
5939
59401999-09-21 Eli Zaretskii <eliz@gnu.org>
5941
5942 * frame.c (frame_name_fnn_p): Fix previous change.
5943
59441999-09-20 Gerd Moellmann <gerd@gnu.org>
5945
5946 * minibuf.c (toplevel): Move include of stdio.h to other includes.
5947
5948 * dispnew.c (direct_output_for_insert): Cast arguments to
5949 safe_bcopy to char *.
5950
5951 * lread.c (readchar): Remove unused variables.
5952 (read_filtered_event, read1, Fmapatoms): Ditto.
5953 (toplevel): Include intervals.h.
5954
5955 * eval.c (Fsignal): Remove unused variables.
5956 (Fcommandp, do_autoload): Ditto.
5957
5958 * lisp.h: Add prototype for safe_bcopy, fatal.
5959
5960 * editfns.c (init_editfns): Remove unused variables.
5961 (Fgoto_char, Fchar_after, Fformat): Ditto.
5962 (message_text, message_length): Put in #ifndef HAVE_MENUS.
5963
5964 * data.c (find_symbol_value): Remove unused variables.
5965 (Faref, Fstring_to_number): Ditto.
5966 (toplevel): Include stdio.h.
5967 (Fnumber_to_string): Cast XINT to long for %ld.
5968
5969 * casefiddle.c (casify_object): Remove unused variables.
5970 (casify_region): Ditto.
5971
427ec082 5972 * filelock.c (get_boot_time): Put local variable used in
26901792
DL
5973 conditinally compiled section in #ifdef.
5974 (toplevel): Include stdio.h.
5975
5976 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
5977 keys_of_keymap, syms_of_keymap): Remove unused variables.
5978
59791999-09-20 Gerd Moellmann <gerd@gnu.org>
5980
5981 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
5982 whose corresponding window rows have been disabled in
5983 try_window_id.
5984
59851999-09-20 Gerd Moellmann <gerd@gnu.org>
5986
5987 * xdisp.c (compute_window_start_on_continuation_line): Handle case
5988 that window start is out of range.
5989 (handle_display_prop, handle_single_display_prop): Replace
5990 marginal area specifications like `left-margin' with `(margin
5991 left-margin)'.
5992 (Qmargin): New.
5993 (syms_of_xdisp): Initialize Qmargin.
5994
59951999-09-19 Gerd Moellmann <gerd@gnu.org>
5996
5997 * syntax.c (update_syntax_table, find_defun_start, back_comment,
5998 describe_syntax, skip_chars): Remove unused variables.
5999 (back_comment, forw_comment): Add braces to if-statement with
6000 if-else as dependent statement.
6001
6002 * process.c (list_processes_1): Remove unused variables.
6003 (Fopen_network_stream, create_process): Add parentheses to
6004 conditional expressions.
6005 (create_process): Put declaration of sigchld in #if 0.
6006 (Fopen_network_stream): Removed unused variables.
6007 (Fopen_network_stream, wait_reading_process_input,
6008 wait_reading_process_input, send_process, send_process): Ditto.
6009 (toplevel): Add prototypes for set_waiting_for_input and
6010 keyboard_bit_set.
6011
6012 * abbrev.c (Fexpand_abbrev): Remove unused variables.
6013
6014 * textprop.c (Fset_text_properties): Remove unused variables.
6015 (text_property_list, verify_interval_modification,
6016 interval_has_all_properties): Ditto.
6017
6018 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6019 (Fcall_process): Remove unused variable.
6020
6021 * keyboard.c (Frecursive_edit): Remove unused variable.
6022 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
6023 timer_check, make_lispy_event, menu_bar_items,
6024 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
6025 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
6026 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
6027 read_key_sequence): Ditto. Fread_key_sequence,
6028 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
6029 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
6030 used when GOBBLE_FIRST_EVENT is defined in #ifdef
6031 (Fexecute_extended_command): Cast XINT to long for %ld.
6032 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6033 (toplevel): Include sys/types.h.
6034
6035 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
6036 (toplevel): Add prototypes for stuff_char, and
6037 code_convert_string_norecord.
6038
60391999-09-19 Gerd Moellmann <gerd@gnu.org>
6040
6041 * buffer.h: Add prototype for r_re_alloc.
6042
6043 * insdel.c (copy_text): Removed unused variables.
6044 (count_combining_after, count_combining_after, insert_1_both,
6045 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
6046 (adjust_after_replace, replace_range): Add parentheses to logical
6047 expressions. Remove unused variables.
6048 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
6049 expression.
6050
6051 * alloc.c (Fgarbage_collect): Remove unused variable.
6052 (compact_strings): Add parentheses around assignments in
6053 conditional context.
6054 (toplevel): Put declaration of unused function clear_marks
6055 in #if 0 like its definition.
6056
6057 * lisp.h: Add prototype for shrink_regexp_cache,
6058 sweep_weak_hash_tables.
6059
60601999-09-19 Dave Love <fx@gnu.org>
6061
6062 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6063
6064 * doc.c (read_bytecode_char): Declare arg.
6065
6066 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6067 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6068
60691999-09-18 Richard Stallman <rms@gnu.org>
6070
6071 * xdisp.c (echo_area_display): Turn off code that returned
6072 without doing anything when using a terminal frame.
6073
83c8f461 60741999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6075
6076 * unexelf.c (unexec): Don't get confused by a short section
6077 just before the bss section.
6078
26901792
DL
60791999-09-16 Gerd Moellmann <gerd@gnu.org>
6080
6081 * emacs.c (main): Remove unused variables.
6082 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6083
6084 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6085 init_fileio_once, syms_of_sound, init_xfns, init_fns
6086 init_sound, check_message_stack.
6087
6088 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6089
6090 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6091 ambiguous else warning.
6092 (split_interval_left): Remove unused variables.
6093 (previous_interval, adjust_intervals_for_deletion,
6094 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6095 (icount, idepth, zero_length): Move into #if 0 section below
6096 original position where these are used.
6097
6098 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6099
6100 * buffer.c (Fkill_buffer): Remove unused variables.
6101 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6102 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6103 init_buffer_once, (syms_of_buffer): Ditto.
6104
6105 * xrdb.c (get_fallback): Remove unused variable.
6106 (x_load_resources): Ditto. Put local variable used for Motif only
6107 in #ifdef USE_MOTIF.
6108
61091999-09-16 Gerd Moellmann <gerd@gnu.org>
6110
6111 * minibuf.c (read_minibuf): Remove unused variables.
6112 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6113 (do_completion): Move assignment out of conditional context.
6114 (Fdisplay_completion_list): Add parentheses to conditional expression.
6115
6116 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6117
6118 * lisp.h: Add prototype for no_switch_window.
6119
6120 * window.c (Fset_window_buffer): Remove unused variables.
6121 (Fset_window_margins): Ditto.
6122
6123 * xdisp.c (resize_mini_window): Temporarily set the selected
6124 window's or Vminibuf_scroll_window's height to "fixed" around
6125 the call the change_window_height.
6126
6127 * window.c (window_fixed_size_p): Check window's height_fixed_p
6128 flag.
6129
6130 * window.h (struct window): New member height_fixed_p.
6131
6132 * dispnew.c (direct_output_forward_char): Don't use this method
6133 if showing a message or a message was just cleared because we
6134 might need to resize the mini-window.
6135
61361999-09-16 Gerd Moellmann <gerd@gnu.org>
6137
6138 * frame.c (Fdelete_frame): Correct local variable pointing to
6139 selected frame after selecting new frame.
6140
61411999-09-15 Richard Stallman <rms@gnu.org>
6142
6143 * puresize.h (BASE_PURESIZE): Increase to 525000.
6144
6145 * filelock.c (Vtemporary_file_directory): New variable.
6146 (syms_of_filelock): Set up Lisp variable.
6147
61481999-09-15 Gerd Moellmann <gerd@gnu.org>
6149
6150 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6151 (encode_terminal_code): Remove unused variables.
6152 (turn_off_face): Ditto.
6153 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6154
6155 * dispnew.c (update_frame_line): If writing whole desired line,
6156 don't clear to end of line if already at the end.
6157
61581999-09-15 Gerd Moellmann <gerd@gnu.org>
6159
6160 * xdisp.c (resize_mini_window): Don't report changed window
6161 height if it actually hasn't changed.
6162
427ec082 6163 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
26901792
DL
6164 unused variables.
6165 (mark_shell_size_user_specified): Put in #if 0 because not used.
6166 (create_frame_gcs): Put in #if 0 because currently unused.
6167 (first_frame_p): Ditto.
6168
6169 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6170 single_submenu, update_frame_menubar, set_frame_menubar,
6171 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6172 variables.
6173
6174 * print.c (PRINTFULLP): Removed because it is no longer used and
6175 is misleading.
6176 (Ferror_message_string): Remove unused variables.
6177 (print_object): Cast argument of sprintf to long for `%ld'
6178 specifier. Remove unused variable.
6179
61801999-09-14 Gerd Moellmann <gerd@gnu.org>
6181
6182 * sound.c (Fplay_sound): Remove usused variables.
6183 (be2hs): Put in #if 0 because it's currently not used.
6184
61851999-09-14 Ken Raeburn <raeburn@gnu.org>
6186
6187 * print.c (Ferror_message_string, print_error_message,
6188 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6189 member access.
6190
61911999-09-14 Gerd Moellmann <gerd@gnu.org>
6192
6193 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6194
6195 * frame.c (Fnext_frame): Remove unused variable(s).
6196 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6197 (store_frame_param): Add parentheses to conditional expression.
6198 (Fmodify_frame_parameters): Remove unused variables.
6199 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6200 Ditto.
6201
6202 * xfns.c (x_set_background_color): Remove unused variable(s).
6203 (x_set_border_pixel): Ditto.
6204 (x_set_menu_bar_lines): Put local variable used only for
6205 non-toolkit case in #ifdef/#endif.
6206 (x_figure_window_size): Remove unused variable(s).
427ec082 6207 (x_figure_window_size, x_window, lookup_image,
26901792
DL
6208 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6209 png_load, jpeg_load, gif_load, x_create_tip_frame,
6210 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6211
6212 * xterm.c (x_scroll_bar_handle_click): Compile only if
6213 not USE_TOOLKIT_SCROLL_BARS.
6214 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6215
6216 * dispextern.h: Add prototypes for gamma_correct and
6217 x_kill_gs_process.
6218
6219 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6220 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6221 x_set_toolkit_scroll_bar_thumb): Ditto.
6222 (x_scroll_bar_create): Move local variable to the
6223 conditionally compiled section of code where it is used.
6224 (x_scroll_bar_create): Remove unused variable(s).
6225 (x_scroll_bar_remove, XTread_socket): Ditto.
6226 (XTread_socket) <ConfigureNotify>: Move variables used for
6227 non-toolkit case into conditionally compiled section of code.
6228
6229 * window.h (freeze_window_starts): Fix typo in prototype.
6230
6231 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6232 variable(s).
6233
6234 * lisp.h: Add prototype for debug_print.
6235
6236 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6237 to use do-while.
6238
6239 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6240 (Fchar_table_range, Fset_char_table_default, mapcar1,
6241 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6242
6243 * lisp.h: Add prototype for getloadavg.
6244
62451999-09-14 Andreas Schwab <schwab@gnu.org>
6246
6247 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6248
6249 * lisp.h: Declare close_file_unwind.
6250
62511999-09-14 Richard Stallman <rms@gnu.org>
6252
6253 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6254
62551999-09-13 Gerd Moellmann <gerd@gnu.org>
6256
6257 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6258 is always set correctly.
6259
62601999-09-13 Dave Love <fx@gnu.org>
6261
6262 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6263 declaration.
6264
62651999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6266
6267 * xdisp.c (QCfile): Move here from xfns.c.
6268 (syms_of_xdisp): Initialize it.
6269 (message2_nolog): Change for Lisp_Object selected_frame.
6270 (message3_nolog, message_with_string, message,
6271 setup_echo_area_for_printing, truncate_echo_area,
6272 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6273
62741999-09-13 Dave Love <fx@gnu.org>
6275
6276 * xterm.c: Don't continue #define args for benefit of old cc.
6277 (xt_action_hook): Indent #error for benefit of K&R cc.
6278
62791999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6280
6281 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6282 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6283 (XRINGBELL): Removed.
6284
62851999-09-13 Dave Love <fx@gnu.org>
6286
6287 * xfns.c (x_put_x_image): Make type consistent with declaration.
6288
6289 * fns.c (Fmake_hash_table): Fix string continuation.
6290
62911999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6292
6293 * xfns.c (QCfile): Moved to xdisp.c.
6294 (syms_of_xfns): Don't initialize QCfile.
6295 (check_x_frame): Change for Lisp_Object selected_frame.
6296 (check_x_display_info, x_get_resource_string): Ditto.
6297
62981999-09-13 Gerd Moellmann <gerd@gnu.org>
6299
6300 * minibuf.c (choose_minibuf_frame): Don't try to set the
6301 mini-buffer window's buffer, if the buffer is invalid.
6302
6303 * xfns.c (QCfile): Moved to xdisp.c.
6304 (syms_of_xfns): Don't initialize QCfile.
6305
6306 * xdisp.c (QCfile): Move here from xfns.c.
6307 (syms_of_xdisp): Initialize it.
6308
6309 * lisp.h (selected_frame): Add external declaration.
6310
6311 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6312 (Fx_store_cut_buffer_internal): Ditto.
6313 (Fx_rotate_cut_buffers_internal): Ditto.
6314
6315 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6316 selected_frame.
6317 (Finternal_set_lisp_face_attribute): Ditto.
6318 (Finternal_get_lisp_face_attribute): Ditto.
6319 (Finternal_lisp_face_empty_p): Ditto.
6320 (Fdump_face): Ditto.
6321
6322 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6323 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6324 set_terminal_window, set_scroll_region, reassert_line_highlight,
6325 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6326 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6327 encode_terminal_code, write_glyphs, term_init): Ditto.
6328
6329 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6330 (kbd_input_ast, read_input_waiting): Ditto.
6331
6332 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6333 selected_frame.
6334 (read_minibuf): Ditto.
6335
6336 * keyboard.c (command_loop_1): Change for Lisp_Object
6337 selected_frame.
6338 (cmd_error_internal, command_loop_1, read_char,
6339 kbd_buffer_get_event, read_avail_input,
6340 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6341 interrupt_signal, quit_throw_to_read_char): Ditto.
6342
6343 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6344 (Ffontset_info): DItto.
6345
6346 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6347
6348 * dispnew.c (selected_frame): Make it a Lisp_Object.
6349 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6350 (direct_output_for_insert, direct_output_forward_char,
6351 init_display): Ditto.
6352
6353 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6354 selected_frame.
6355 (set_internal): Ditto.
6356
6357 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6358 (record_buffer): Ditto.
6359
6360 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6361 (do_switch_frame): Change for Lisp_Object selected_frame.
6362 (Fselected_frame): Ditto.
6363 (Fframe_first_window): Use SELECTED_FRAME.
6364 (Fframe_root_window): Change for Lisp_Object selected_frame.
6365 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6366 Fprevious_frame, other_visible_frames, Fdelete_frame,
6367 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6368 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6369 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6370 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6371 Fset_frame_height, Fset_frame_width): Ditto.
6372
63731999-09-13 Gerd Moellmann <gerd@gnu.org>
6374
6375 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6376 (message3_nolog, message_with_string, message,
6377 setup_echo_area_for_printing, truncate_echo_area,
6378 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6379
6380 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6381 (Fx_popup_dialog): Ditto.
6382
6383 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6384 (check_x_display_info, x_get_resource_string): Ditto.
6385
6386 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6387 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6388 (XRINGBELL): Removed.
6389
6390 * window.c (Fminibuffer_window): Change for Lisp_Object
6391 selected_frame.
6392 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6393 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6394 Fcurrent_window_configuration, init_window_once): Ditto.
6395
6396 * frame.h (SELECTED_FRAME): New.
6397
63981999-09-12 Ken Raeburn <raeburn@gnu.org>
6399
6400 * category.c (word_boundary_p): Use XCAR and XCDR.
6401 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6402 Fregister_code_conversion_map): Likewise.
6403 * coding.c (setup_coding_system, detect_coding_system,
6404 Ffind_operation_coding_system, Fset_coding_priority_internal):
6405 Likewise.
6406 * doc.c (get_doc_string, Fdocumentation,
6407 store_function_docstring): Likewise.
6408 * editfns.c (save_restriction_restore): Likewise.
6409 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6410 skip_debugger, find_handler_clause, Fautoload, Fapply,
6411 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6412 Likewise.
6413 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6414 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6415 Fread_file_name): Likewise.
6416 * filelock.c (unlock_all_files): Likewise.
6417 * insdel.c (Fcombine_after_change_execute): Likewise.
6418 * intervals.c (adjust_intervals_for_insertion): Likewise.
6419 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6420 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6421 store_in_keymap, Fcopy_keymap, define_as_prefix,
6422 current_minor_maps, Faccessible_keymaps,
6423 accessible_keymaps_char_table, Fkey_description,
6424 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6425 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6426 describe_map): Likewise.
6427 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6428 read_list, init_lread): Likewise.
6429 * search.c (Fmatch_data): Likewise.
6430 * sunfns.c (Fsun_menu_internal): Likewise.
6431 * syntax.c (describe_syntax): Likewise.
6432 * undo.c (record_insert, record_delete, Fundo_boundary,
6433 truncate_undo_list): Likewise.
6434 * vmsproc.c (child_sig): Likewise.
6435
6436 * editfns.c (Fformat): Use XFLOAT_DATA.
6437
64381999-09-12 Gerd Moellmann <gerd@gnu.org>
6439
6440 * keyboard.c (command_loop_1): Resize mini-window to the
6441 exact size of a message displayed, if any.
6442
6443 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6444 to exact size if exact_p is non-zero.
6445 (display_echo_area_1): Call resize_mini_window with
6446 new parameter.
6447 (redisplay_internal): Ditto.
6448 (resize_echo_area_axactly): New.
6449
6450 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6451 new parameter.
6452
6453 * dispextern.h: Change prototype of resize_mini_window.
6454 Add prototype for resize_echo_area_axactly.
6455
6456 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6457 (syms_of_xfaces): Defsubr accordingly.
6458
6459 * xdisp.c (hscroll_window_tree): Choose cursor row from
6460 desired or current matrix.
6461 (redisplay_internal): Hscroll before updating.
6462
64631999-09-12 Gerd Moellmann <gerd@gnu.org>
6464
6465 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6466 of minibuffer_prompt_length.
6467
6468 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6469 of minibuffer_prompt_length.
6470 (read_minibuf_unwind): Ditto.
6471 (Fminibuffer_complete_and_exit): Ditto.
6472 (Fminibuffer_complete_word): Ditto.
6473 (Fminibuffer_prompt_end): Ditto.
6474
6475 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6476 of minibuffer_prompt_length.
6477 (Fline_beginning_position): Ditto.
6478
6479 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6480 of minibuffer_prompt_length.
6481 (Fmake_indirect_buffer): Ditto.
6482 (Fkill_buffer): Ditto.
6483 (Ferase_buffer): Ditto.
6484
6485 * buffer.h (prompt_end_charpos): Replaces
6486 minibuffer_prompt_length.
6487
427ec082 6488 * minibuf.c (read_minibuf): Return mini-buffer contents
26901792
DL
6489 without the prompt.
6490
6491 * editfns.c (make_buffer_string_both): Take out the code
6492 to handle mini-buffer prompts.
6493 (Fbuffer_string): Handle the prompt here, instead.
6494
6495 * xfaces.c (lface_from_face_name): Resolve face aliases.
6496 (Qmode_line): Replaces Qmodeline.
6497 (realize_basic_faces): Use Qmode_line.
6498 (syms_of_xfaces): Initialize Qmode_line.
6499
65001999-09-12 Gerd Moellmann <gerd@gnu.org>
6501
6502 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6503 current column after inserting prompt.
6504 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6505
6506 * xfaces.c (Qframe_update_face_colors): New.
6507 (syms_of_xfaces): Initialize call.
6508 (update_face_from_frame_parameter): Call that function when
6509 the frame's background changes.
6510
65111999-09-12 Richard Stallman <rms@gnu.org>
6512
6513 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6514
65151999-09-12 Ken Raeburn <raeburn@gnu.org>
6516
6517 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6518 mark_object, mark_buffer): Use XCAR and XCDR.
6519 * bytecode.c (Fbyte_code): Likewise.
6520 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6521 Likewise.
6522 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6523 getenv_internal): Likewise.
6524 * dired.c (file_name_completion): Likewise.
6525 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6526 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6527 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6528 * indent.c (Fcompute_motion): Likewise.
6529 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6530 list_processes_1, Fstart_process, Fopen_network_stream,
6531 wait_reading_process_input, read_process_output_call,
6532 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6533 status_notify, wait_reading_process_input): Likewise.
6534 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6535 extend_property_ranges): Likewise.
6536 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6537 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6538 x_report_frame_params, x_set_cursor_type, x_icon_type,
6539 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6540 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6541 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6542 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6543 x_display_info_for_name, Fx_display_list): Likewise.
6544 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6545 Fx_popup_menu, Fx_popup_dialog): Likewise.
6546 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6547 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6548 w32_term_init, x_delete_display): Likewise.
6549 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6550 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6551 x_top_window_to_frame, x_set_frame_parameters,
6552 x_report_frame_params, x_set_cursor_type, x_icon_type,
6553 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6554 Fx_display_list, x_create_tip_frame): Likewise.
6555 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6556 Fx_popup_menu, Fx_popup_dialog): Likewise.
6557 * xselect.c (x_own_selection, x_get_local_selection,
6558 x_handle_selection_request, x_handle_selection_clear,
6559 x_clear_frame_selections, wait_for_property_change_unwind,
6560 wait_for_property_change, x_handle_property_notify,
6561 copy_multiple_data, x_get_foreign_selection,
6562 lisp_data_to_selection_data, clean_local_selection_data,
6563 x_handle_selection_notify, Fx_get_selection_internal,
6564 x_disown_buffer_selections): Likewise.
6565 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6566 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6567 Likewise.
6568
6569 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6570 XFLOAT_DATA.
6571 * bytecode.c (Fbyte_code): Likewise.
6572 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6573 fmod_float): Likewise.
6574
65751999-09-11 Richard Stallman <rms@gnu.org>
6576
6577 * xdisp.c (run_window_scroll_functions): If hook functions switch
6578 buffers, switch back after.
6579
65801999-09-11 Ken Raeburn <raeburn@gnu.org>
6581
6582 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6583 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6584 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6585 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6586 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6587 XCDR.
6588 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6589 XCDR.
6590
65911999-09-10 Richard Stallman <rms@gnu.org>
6592
6593 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6594 not RevertToPointerRoot.
6595 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6596 Fix the code to clear around the scroll bar.
6597
65981999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6599
6600 * print.c: Support print-circle and related features.
6601 (Vprint_gensym_alist): Removed.
6602 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6603 Vprint_number_table): New variables.
6604 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6605 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6606 (print, print_preprocess, print_preprocess_string, print_object):
6607 New/modified functions with print-circle feature. Use
6608 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6609 (syms_of_print): Defined new Lisp variables `print-circle',
6610 `print-continuous-numbering', `print-number-table'.
6611
66121999-09-10 Gerd Moellmann <gerd@gnu.org>
6613
6614 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6615 as background color specification instead of an integer.
6616 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6617 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6618 (clear_image_cache, syms_of_xfns): Use it.
6619 (Qpostscript): Replaces Qghostscript.
6620 (gs_type): Use it.
6621 (gs_image_p): Ditto.
6622 (syms_of_xfns): Initialize Qpostscript.
6623
66241999-09-10 Richard Stallman <rms@gnu.org>
6625
6626 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
6627
66281999-09-09 Richard Stallman <rms@gnu.org>
6629
6630 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
6631
6632 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
6633
66341999-09-09 Gerd Moellmann <gerd@gnu.org>
6635
6636 * fns.c (Fmakehash): Accept just one optional argument TEST.
6637
6638 * xfns.c (QCindex): New.
6639 (syms_of_xfns): Initialize QCindex.
6640 (gif_load): Use it instead of `:image'.
6641
66421999-09-09 Richard Stallman <rms@gnu.org>
6643
6644 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
6645 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
6646
66471999-09-08 Gerd Moellmann <gerd@gnu.org>
6648
6649 * xdisp.c (Qwhen): Replaces QCwhen.
6650 (syms_of_xdisp): Initialized it instead of QCwhen.
6651 (handle_single_display_prop): Use it instead of QCwhen.
6652
66531999-09-08 Ken'ichi Handa <handa@gnu.org>
6654
6655 * charset.c (translate_char): Reset MSBs of arguments of
6656 MAKE_CHAR.
6657 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
6658
66591999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
6660
6661 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
6662
6663 * fns.c (Fbase64_decode_region): Don't place point outside of the
6664 current accessible portion.
6665
66661999-09-07 Richard Stallman <rms@gnu.org>
6667
6668 * keymap.c (fix_submap_inheritance): Do nothing if the proper
6669 parent is an ancestor of SUBMAP; otherwise, add it as the
6670 ultimate ancestor.
6671
66721999-09-07 Gerd Moellmann <gerd@gnu.org>
6673
6674 * xdisp.c (handle_single_display_prop): Change conditional
6675 display property to `:when FORM . VALUE'.
6676
66771999-09-07 Richard Stallman <rms@gnu.org>
6678
6679 * fileio.c (Fwrite_region): Doc fix.
6680
66811999-09-07 Stefan Monnier <monnier@cs.yale.edu>
6682
6683 * fileio.c (Qexcl): New variable.
6684 (report_file_error): Handle EEXIST specially.
6685 (Fwrite_region): Special handling for CONFIRM = `excl'.
6686 (syms_of_fileio): Initialize Qexcl.
6687
66881999-09-07 Gerd Moellmann <gerd@gnu.org>
6689
6690 * xfns.c (x_set_foreground_color): Call
6691 update_face_from_frame_parameter.
6692 (x_set_background_color): Ditto.
6693 (x_set_mouse_color): Ditto.
6694 (x_set_cursor_color): Ditto.
6695 (x_set_border_color): Ditto.
6696 (x_set_scroll_bar_foreground): Ditto.
6697 (x_set_scroll_bar_background): Ditto.
6698
6699 * xfaces.c (recompute_basic_faces): Clear face cache.
6700 (Finternal_set_lisp_face_attribute): Modify frame parameters
6701 if attributes of certain faces are changed.
6702 (update_face_from_frame_parameter): New.
6703
6704 * xfaces.c (realize_basic_faces): Realize new basic faces.
6705
6706 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
6707 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
6708
6709 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
6710 (syms_of_xfaces): Intialize new symbols.
6711
6712 * fns.c (Fmakehash): Take one argument, test, make all the
6713 rest keyword arguments.
6714
6715 * window.c (Fset_window_margins): Make window the first argument.
6716 (set_window_buffer): Call Fset_window_margins with window as first
6717 argument.
6718
67191999-09-07 Gerd Moellmann <gerd@gnu.org>
6720
6721 * xfaces.c (Qfringe): Replaces Qmargin.
6722
67231999-09-07 Kenichi Handa <handa@etl.go.jp>
6724
6725 * charset.h: Lots of comments fixed.
6726 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
6727 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
6728
6729 * charset.c : Lots of comments fixed.
6730 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
6731 (CHAR_COMPONENTS_VALID_P): Name changed from
6732 CHAR_COMPONENT_VALID_P. Caller changed.
6733
67341999-09-06 Richard Stallman <rms@gnu.org>
6735
6736 * insdel.c (syms_of_insdel): Define Lisp variable
6737 inhibit-modification-hooks.
6738
67391999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
6740
6741 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
6742 unexaix.c.
6743
6744 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
6745
67461999-09-06 Dave Love <fx@gnu.org>
6747
6748 * unexaix.c: New version incorporating Michael Sperber's changes
6749 from XEmacs. Should solve problems on AIX 4.3.
6750
6751 * lread.c (Vbyte_boolean_vars): New variable.
6752 (defvar_bool, syms_of_lread): Use it.
6753
67541999-09-05 Richard Stallman <rms@gnu.org>
6755
6756 * minibuf.c (read_minibuf): Put all three properties on the
6757 same range, the whole prompt.
6758
67591999-09-05 Gerd Moellmann <gerd@gnu.org>
6760
6761 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
6762 (Fplay_sound, syms_of_sound): Use it.
6763 (parse_sound): Allow float volume values in the range [0, 1].
6764 (Fplay_sound): Ditto.
6765
6766 * window.c (Fset_window_vscroll): Make window the first argument,
6767 amount to scroll the second. Take non-negative vscroll as
6768 argument.
6769 (Fwindow_vscroll): Return non-negative vscroll.
6770
6771 * xfns.c (Fx_show_tip): Improve documentation.
6772
67731999-09-05 Gerd Moellmann <gerd@gnu.org>
6774
6775 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
6776 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
6777 `top-line' and `top_line' to `header-line' and `header_line'.
6778 Likewise for similar spellings.
6779
67801999-09-05 Gerd Moellmann <gerd@gnu.org>
6781
6782 * xdisp.c (row_containing_pos): New.
6783 (try_window_id): Use it.
6784
6785 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
6786 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
6787 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
6788 Likewise for upper-case etc.
6789
67901999-09-05 Gerd Moellmann <gerd@gnu.org>
6791
6792 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6793 Fix reference to renamed variable.
6794
67951999-09-04 Gerd Moellmann <gerd@gnu.org>
6796
6797 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
427ec082 6798 (window_fixed_size_p): Use Qwindow_size_fixed instead of
26901792
DL
6799 Qfixed_window_size.
6800 (syms_of_window): Ditto.
6801
6802 * fns.c (Fmakehash): Exchange optional test and size arguments.
6803
68041999-09-03 Gerd Moellmann <gerd@gnu.org>
6805
6806 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
6807 under newly created scroll bar.
6808 (expose_window): If window is not yet fully initialized, do
6809 nothing. This can happen when toolkit scroll bars are used and a
6810 window is split. Reconfiguring the scroll bars will generate an
6811 expose for a newly created window.
6812
6813 * frame.h (struct frame): New member `gamma'.
6814
6815 * xfns.c: Include math.h. Add extern declaration for atof in case
6816 we don't see one.
6817 (Qscreen_gamma): New.
6818 (struct x_frame_parm_table): Add prototypes, add
6819 x_set_screen_gamma.
6820 (gamma_correct): New function.
6821 (defined_color): Call it.
6822 (x_set_screen_gamma): New.
6823 (x_set_title): Add parameter old_value.
6824 (RES_TYPE_FLOAT): New.
6825 (x_get_arg): Handle RES_TYPE_FLOAT.
6826 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
6827 (lookup_pixel_color): Change call to x_alloc_nearest_color to
6828 new prototype.
6829 (lookup_rgb_color): Ditto.
6830 (syms_of_xfns): Initialize Qscreen_gamma.
6831
6832 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
6833 New. Allocate color for lwlib widgets.
6834 (x_alloc_nearest_color): Change parameter list include the
6835 frame on which to allocate colors. Gamma-correct colors.
6836 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
6837 parameter list.
6838
6839 * xterm.h: Change protorype of x_alloc_nearest_color.
6840
68411999-09-03 Richard Stallman <rms@gnu.org>
6842
6843 * callproc.c: Delete the system-independent include of stdlib.h
6844 (leaving only the one in the WINDOWSNT conditional).
6845
68461999-09-03 Andrew Choi <choi@cs.hku.hk>
6847
6848 * callproc.c (call-process) [macintosh]: Call mac_run_command in
6849 sysdep.c. The Mac code is modeled after the DOS code.
427ec082 6850
26901792
DL
6851 * dispextern.h [macintosh]: Include macterm.h to define substitute X
6852 Window types and macros.
6853
6854 * frame.h: Do nothing if included a second time.
6855 (enum output_method): Add mac_output frame type.
6856 (union output_data): Add new alternative `mac'.
6857 (FRAME_MAC_P): New macro.
427ec082 6858
26901792
DL
6859 * frame.c (Fframep) [macintosh]: Handle mac frame type.
6860 (syms_of_frame_1): Initialize Qmac.
6861 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
6862 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
6863 (Fmodify_frame_parameters) [macintosh]: Call
6864 mac_set_frame_parameter in macterm.c.
427ec082 6865
26901792
DL
6866 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
6867 (512) because Mac compilers limit local data of a function to 32K.
427ec082 6868
26901792
DL
6869 * make-docfiles.c: Correctly handle input files with Mac-style
6870 eol's.
427ec082 6871
26901792 6872 * sysdep.c: Define numerous routines to emulate Unix system calls.
427ec082 6873
26901792
DL
6874 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
6875 file of an X Window environment.
427ec082 6876
26901792
DL
6877 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
6878 x-display-grayscale, x-color-defined-p, and x-color-values.
427ec082 6879
26901792
DL
6880 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
6881 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
6882 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
6883 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
6884 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
6885 New functions, replacing POSIX features.
427ec082 6886
26901792
DL
6887 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
6888 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
6889 (InitEmacsPasswdDir, run_mac_command): New subroutines.
6890
6891 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
6892 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
6893 (myPasswdDir, TempDirName, sys_siglist): New variables.
6894
6895 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
6896 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
6897 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
6898 Define empty stubs so Emacs will link.
6899
69001999-09-03 Gerd Moellmann <gerd@gnu.org>
6901
6902 * xdisp.c: Use XCAR and XCDR instead of XCONS.
6903
6904 * window.h: New member frozen_window_start_p.
6905
6906 * window.c (foreach_window, foreach_window_1): New.
6907 (freeze_window_start, freeze_window_starts): New.
6908 (make_window): Initialize frozen_window_start_p.
6909 (replace_window): Ditto.
6910 (Fset_window_point): Remove references to deleted variables.
6911 (Fset_window_start): Ditto.
6912
6913 * xdisp.c (Vresize_mini_config, resize_mini_frame,
6914 resize_mini_initial_height): Removed.
6915 (syms_of_xdisp): Remove references to these variables.
6916 (resize_mini_window): Don't save window configuration, freeze
6917 window starts instead. Enlarge window until displaying an empty
6918 buffer, then shrink it. Make the function externally visible.
6919 (redisplay_window): Treat frozen window start like forced start,
6920 but accept point outside of the window.
6921
6922 * dispextern.h: Add function prototype for resize_mini_window.
6923
6924 * minibuf.c (read_minibuf_unwind): Resize mini-window when
6925 reaching minibuf_level 0.
6926
6927 * lisp.h: Remove extern declarations for variables deleted from
6928 xdisp.c.
6929
6930 * dispnew.c (adjust_frame_glyphs): Remove reference to
6931 Vresize_mini_config.
6932
69331999-09-03 Gerd Moellmann <gerd@gnu.org>
6934
6935 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
6936 to USE_TOOLKIT_SCROLL_BARS.
6937
6938 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
6939 here.
6940 (XTset_vertical_scroll_bar): Clarify position computations. Clear
6941 under newly created scroll bar. Put toolkit scroll bars in the
6942 middle of the area reserved for the scroll bar.
6943
69441999-09-03 Kenichi Handa <handa@etl.go.jp>
6945
6946 The following changes are for the new handling of mulitbyte
6947 sequence. Now, except for a composite character, no multibyte
6948 character in string/buffer has trailing garbage bytes. For
6949 instance, the length of string "\201\300\300" is now 2, the first
6950 character is Latin-1 A-grave, the second is raw \300.
6951
6952 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
6953 are negative.
6954 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
6955 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
6956 (PARSE_COMPOSITE_SEQ): New macro.
6957 (PARSE_CHARACTER_SEQ): New macro.
427ec082 6958 (PARSE_MULTIBYTE_SEQ): New macro.
26901792
DL
6959 (CHAR_PRINTABLE_P): New macro.
6960 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
6961 (STRING_CHAR_AND_LENGTH): Likewise.
6962 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
6963 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
6964 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
6965
6966 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
6967 (SPLIT_CHARACTER_SEQ): New macro.
6968 (SPLIT_MULTIBYTE_SEQ): New macro.
6969 (CHAR_COMPONENT_VALID_P): New macro.
6970 (non_ascii_char_to_string): Generate a multibyte sequence as far
6971 as possible.
6972 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
6973 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
6974 (split_non_ascii_string): Likewise.
6975 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
6976 (char_printable_p): New function.
6977 (translate_char): Check character by NATNUMP instead of INTEGERP.
6978 (unibyte_char_to_multibyte): Call char_valid_p instead of
6979 VALID_MULTIBYTE_CHAR_P.
6980 (Fmake_char_internal): Check the arguments more rigidly.
6981 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
6982 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
6983 (Fmultibyte_char_to_unibyte): Check the validity of character by
6984 CHAR_VALID_P.
6985 (chars_in_text): Call multibyte_chars_in_text.
6986 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
6987 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
6988 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
6989
6990 * data.c (Faset): Adjust the way to check byte-combining
6991 possibility for the new handling of multibyte sequence.
6992
6993 * editfns.c (Fsubst_char_in_region): Likewise.
6994
6995 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
6996 (string_char_to_byte): Likewise.
6997 (string_byte_to_char): Likewise.
6998
6999 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
7000 macro STRING_CHAR_AND_LENGTH. Caller changed.
7001
7002 * insdel.c (count_combining_composition): New function.
7003 (count_combining_before): Adjust the way to check byte-combining
7004 possibility for the new handling of multibyte sequence. Call
7005 count_combining_composition for a composite character.
7006 (count_combining_after): Likewise.
7007
7008 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
7009 (print): Likewise.
7010
7011 * dispextern.h (struct it): Change the size of the member
7012 `ctl_chars'.
7013
7014 * xdisp.c (get_next_display_element): Display incomplete multibyte
7015 sequence (e.g. \222\300) by octal form.
7016
70171999-09-02 Gerd Moellmann <gerd@gnu.org>
7018
7019 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
7020
7021 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
7022 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
7023
70241999-09-02 Gerd Moellmann <gerd@gnu.org>
7025
7026 * buffer.c (set_buffer_internal): Never set
7027 windows_or_buffers_changed.
7028
7029 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
7030 if we have displayed to the bottom of the window.
7031
7032 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
7033 in both directions. Extend documentation.
7034
70351999-09-01 Gerd Moellmann <gerd@gnu.org>
7036
7037 * minibuf.c (read_minibuf): Flush display after setting cursor to
7038 column 0.
7039
70401999-08-31 Gerd Moellmann <gerd@gnu.org>
7041
7042 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
7043 already defined. This avoids a warning from buffer.c.
7044
70451999-08-30 Gerd Moellmann <gerd@gnu.org>
7046
7047 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
7048 of both margins.
7049 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
7050 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
7051 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
7052
7053 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
7054 once instead of twice.
7055 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
7056
7057 * xterm.c: Remove unused bitmaps.
7058 (continued_bits, continuation_bits, overlay_bits): Change images.
7059 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
7060 instead of FRAME_X_FLAGS_AREA_WIDTH.
7061 (x_after_update_window_line): Ditto.
7062 (x_draw_bitmap): Likewise.
7063 (x_draw_row_bitmaps): Likewise.
7064 (x_draw_glyph_string_box): Likewise.
7065 (x_draw_glyphs): Likewise.
7066 (x_scroll_run): Likewise.
7067 (expose_window_tree): Likewise.
7068 (note_mode_line_highlight): Likewise.
7069 (XTset_vertical_scroll_bar): Likewise.
7070 (x_clip_to_row): Likewise.
7071 (x_set_window_size): Likewise.
7072
7073 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7074 of 2 * that value.
7075
7076 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7077 2 * that value.
7078 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7079 FRAME_FLAGS_AREA_WIDTH.
7080
7081 * window.c (coordinates_in_window): Use
7082 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7083 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7084 instead of twice.
7085
427ec082 7086 * widget.c (set_frame_size): Set flags_area_extra to
26901792
DL
7087 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7088 (EmacsFrameSetCharSize): Ditto.
7089
7090 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7091 instead of FRAME_FLAGS_AREA_WIDTH.
7092
7093 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7094 FRAME_FLAGS_AREA_COLS once.
7095 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7096 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7097
70981999-08-30 Gerd Moellmann <gerd@gnu.org>
7099
7100 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7101 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7102
71031999-08-30 Gerd Moellmann <gerd@gnu.org>
7104
7105 * fns.c (QCweakness): Replaces QCweak.
7106 (Fmake_hash_table): Ditto.
7107 (Fmakehash): Ditto.
7108 (syms_of_fns): Ditto.
7109
71101999-08-29 Richard Stallman <rms@gnu.org>
7111
7112 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7113
7114 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7115
7116 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7117 Add support for nested comments.
7118
863476d1
SM
7119 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7120 Consolidate the forward comment code into the new `forw_comment'.
7121 (forw_comment): New subroutine. Added support for nested comments.
7122 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7123 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7124
71251999-08-28 Ken Raeburn <raeburn@gnu.org>
7126
7127 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7128 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7129 defined, to help detect code that uses knowledge of the Lisp
7130 internals that it shouldn't have.
7131 (XFLOAT_DATA): New macro.
7132
71331999-08-25 Gerd Moellmann <gerd@gnu.org>
7134
7135 * syntax.c (Fforward_word): If in a mini-buffer and moving
7136 backwards, stop in front of the prompt to prevent accidentially
7137 moving into the read-only prompt.
7138
7139 * window.c (Frecenter): Clear frame if called with nil or no arg.
7140
7141 * xdisp.c (resize_mini_window): Don't resize if
7142 Vmax_mini_window_height is nil. Otherwise, use a default if
7143 Vmax_mini_window_height is not ot a number.
7144 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7145
71461999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7147
7148 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7149 * m/iris4d.h: Use unexelf for IRIX 5.*.
7150 * m/iris5d.h: Use unexelf for IRIX 6.*.
7151 * unexsgi.c: Deleted.
7152
7153 * unexelf.c: Auto-detect .sbss section.
7154 (round_up): Make it static.
7155 (unexec): Declare alignment as Elf Word. Skip ``Program
7156 segment above .bss'' test on MIPS without .sbss.
7157 Copy sections .got and .sdata1 sections. Adjust offsets in
7158 sections .sdata, .lit4, .lit8, .got and .sdata1.
7159
71601999-08-25 Gerd Moellmann <gerd@gnu.org>
7161
7162 * xdisp.c (try_window_id): Remove typo.
7163
71641999-08-24 Gerd Moellmann <gerd@gnu.org>
7165
7166 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7167 unchanged text at the bottom when computing the cursor position.
7168 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7169 set.
7170
7171 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7172
71731999-08-24 Gerd Moellmann <gerd@gnu.org>
7174
7175 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7176 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7177 (syms_of_xfaces): Ditto.
7178
7179 * window.c (Fset_window_point): Reset Vresize_mini_config.
7180 (Fset_window_start): Ditto.
7181 (set_window_buffer): Ditto.
7182
7183 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7184
7185 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7186 before calling try_window.
7187 (echo_area_display): If height has changed, update other windows.
7188 (resize_mini_frame, resize_mini_initial_height): New.
7189 (resize_mini_window): Save/restore window configuration
7190 differently.
7191
427ec082 7192 * lisp.h (Vresize_mini_config, resize_mini_frame,
26901792
DL
7193 resize_mini_initial_height): Add extern declarations.
7194
7195 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7196 CANON_X_UNIT.
7197
7198 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7199 being redefined in jconfig.h.
7200
72011999-08-23 Ken'ichi Handa <handa@gnu.org>
7202
7203 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7204
72051999-08-22 Gerd Moellmann <gerd@gnu.org>
7206
7207 * alloc.c (mark_glyph_matrix): Mark strings only.
7208
7209 * xdisp.c (redisplay_internal): Clear garbaged frames after
7210 resizing mini-window.
7211
72121999-08-22 Gerd Moellmann <gerd@gnu.org>
7213
7214 * xdisp.c (unwind_with_echo_area_buffer): Use
7215 set_buffer_internal_1 instead of set_buffer_internal.
7216 (with_echo_area_buffer): Ditto.
7217
7218 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7219 only if buffer is displayed somewhere.
7220
7221 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7222
7223 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7224 (gap_right): Ditto.
7225 (modify_region): Ditto.
7226
7227 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7228
7229 * xdisp.c (Vresize_mini_config): New.
7230 (resize_mini_window): Use it to save restore original window
7231 configuration
7232 (syms_of_xdisp): Initialize it.
7233
7234 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7235
7236 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7237
7238 * xdisp.c (reconsider_clip_changes): New.
7239 (redisplay_internal, redisplay_window): Call it.
7240 (mark_window_display_accurate, redisplay_internal): Set current
7241 matrix' buffer, begv, zv.
7242
7243 * window.c (Fset_window_hscroll): Set
7244 prevent_redisplay_optimizations_p instead of clip_changed.
7245 (Fset_window_hscroll): Ditto.
7246 (temp_output_buffer_show): Ditto.
7247 (Fset_window_vscroll): Ditto.
7248
7249 * buffer.c (reset_buffer): Set clip_changed to 0 and
7250 prevent_redisplay_optimizations_p to 1.
7251 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7252
7253 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7254 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7255 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7256 END_UNCHANGED): New.
7257 (struct buffer_text): Add beg_unchanged, end_unchanged,
7258 unchanged_modified, overlay_unchanged_modified.
7259
7260 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7261 overlay_unchanged_modified): Removed.
7262 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7263 (unwind_with_echo_area_buffer): Don't restore them.
7264 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7265 (text_outside_line_unchanged_p, redisplay_internal,
7266 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7267 (redisplay_window): Let try_window_id be called if more than one
7268 window is displayed. Use/set buffer-specific beg/end_unchanged.
7269 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7270 try_window_id):
7271 Use buffer-specific beg/end_unchanged.
7272
7273 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7274 overlay_unchanged_modified): Remove extern declarations.
7275
7276 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7277 buffer.
7278
7279 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7280 (gap_right): Ditto.
7281 (adjust_after_replace): Likewise.
7282 (replace_range, del_range_2, modify_region): Likewise.
7283
7284 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7285 and unchanged_modified per buffer.
7286
7287 * coding.c (code_convert_region): Compute beg/end_unchanged per
7288 buffer.
7289
7290 * buffer.c (modify_overlay): Compute beg/end_unchanged
7291 per buffer.
427ec082 7292 (Fget_buffer_create): Initialize new members of the buffer
26901792
DL
7293 structure.
7294
72951999-08-22 Gerd Moellmann <gerd@gnu.org>
7296
7297 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7298
7299 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7300 (Qkey_value_weak): Removed.
7301 (make_hash_table): Use nil, `key', `value', t for weakness.
7302 (Fmake_hash_table): Ditto.
7303 (copy_hash_table): New.
7304 (Fcopy_hash_table): New.
7305
73061999-08-22 Gerd Moellmann <gerd@gnu.org>
7307
7308 * xfns.c: Call change_frame_size and do_pending_window_change with
427ec082 7309 new parameter.
26901792
DL
7310
73111999-08-21 Gerd Moellmann <gerd@gnu.org>
7312
7313 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7314 well.
427ec082 7315 (redisplay_internal): Resize mini-window only if text might
26901792
DL
7316 have changed.
7317 (display_echo_area): Reset displayed echo_area_buffer to nil
7318 at the end if we're displaying a nil message.
7319
73201999-08-21 Gerd Moellmann <gerd@gnu.org>
427ec082 7321
26901792
DL
7322 * fns.c (hash_lookup): Test with EQ before calling key comparion
7323 function.
7324 (hash_remove): Ditto.
7325 (cmpfn_eq): Removed.
7326 (cmpfn_eql): Don't test with EQ.
7327 (cmpfn_equal): Ditto.
7328 (make_hash_table): Set comparison function for `eq' to null.
7329
7330 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7331 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7332
7333 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7334
7335 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7336 xterm.c: Call change_frame_size and do_pending_window_change with
7337 new parameter.
7338
7339 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7340 (change_frame_size): Ditto.
7341 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7342 and not called from a safe place.
7343 (window_change_signal): Call change_frame_size with new parameter.
7344
7345 * dispextern.h: Change prototypes for do_pending_window_change
7346 and change_frame_size.
7347
7348 * xfaces.c (face_at_buffer_position): Don't xassert that
427ec082 7349 window's buffers equals current_buffer; this is not the
26901792
DL
7350 case during echo area display.
7351
73521999-08-21 Gerd Moellmann <gerd@gnu.org>
7353
7354 * xdisp.c, minibuf.c: Remove conditional compilation on
7355 NO_PROMPT_IN_BUFFER.
7356
7357 * minibuf.c (Fminibuffer_prompt_end): New.
7358 (syms_of_minibuf): Defsubr it. Remove
7359 minibuffer-prompt-in-buffer.
7360 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7361 Extend documentation.
7362
7363 * xdisp.c (get_next_display_element): Display \r as ^M.
7364
7365 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7366 under scroll bar widget.
7367
73681999-08-21 Gerd Moellmann <gerd@gnu.org>
7369
7370 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7371 anywhere.
7372 (unwind_redisplay): Return nil.
7373 (clear_garbaged_frames): New.
7374 (redisplay_internal): Use it.
7375 (echo_area_display): Ditto.
7376 (resize_mini_window): Mew.
7377 (display_echo_area_1): Use it to resize echo area window.
7378 (redisplay_internal): Use it to resize active mini-window.
7379
7380 * dispextern.h, lisp.h: Add function prototypes.
7381
427ec082 7382 * dispnew.c (set_window_cursor_after_update): Do the
26901792
DL
7383 cursor_in_echo_area case only for a mini-window showing
7384 a message. Don't let cursor end up after the end of a row.
7385
7386 * xdisp.c (echo_area_glyphs, echo_area_message,
7387 echo_area_glyphs_length, previous_echo_glyphs,
7388 previous_echo_area_message, previous_echo_area_glyphs_length):
7389 Removed.
7390 (Vmessage_stack, echo_area_buffer, echo_buffer,
7391 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7392 (message2_nolog): Use set_message and clear_message.
7393 (message3): Rename parameter len to nbytes to make clear what
7394 it is.
7395 (message3_nolog): Ditto. Use set_message and clear_message.
7396 (update_echo_area): Rewritten.
7397 (with_echo_area_buffer): New.
7398 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7399 (setup_echo_area_for_printing): New.
7400 (display_echo_area, display_echo_area_1): New.
7401
7402 (current_message, current_message_1): New.
427ec082 7403 (push_message, restore_message, pop_message,
26901792
DL
7404 check_message_stack): New.
7405 (truncate_echo_area): Rewritten.
7406 (truncate_message_1): New.
7407 (set_message, set_message_1, clear_message): New.
7408 (echo_area_display): Rewritten.
7409 (redisplay_internal): Check for needed echo area update
7410 differently.
7411 (redisplay_preserve_echo_area): Rewritten.
427ec082 7412 (redisplay_window): Check for mini-window displaying echo area
26901792
DL
7413 message differently.
7414 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7415 Remove initialzation of removed variables.
7416 (init_xdisp): Remove references to removed variables.
7417
7418 * dispnew.c (adjust_frame_message_buffer): Removed references
7419 to echo_area_glyphs and previous_echo_glyphs.
7420 (direct_output_for_insert): Check for mini-window displaying
7421 echo area message differently.
7422 (update_frame): Likewise.
7423 (set_window_cursor_after_update): Likewise. In echo area,
7424 don't try to set cursor on rows that aren't enabled.
7425
7426 * print.c: Remove conditional compilation on `standalone'.
7427 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
427ec082 7428 glyph_to_str_cpy): Remove that section because GLYPHs are no
26901792
DL
7429 longer used in that way.
7430 (PRINTDECLARE): Add multibyte.
7431 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7432 (printbufidx): Removed.
7433 (printchar, strout): Rewritten.
7434
7435 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7436 a struct kboard.
7437 (echo_kboard): New.
7438 (echo_now): Set echo_kboard to the current kboard.
7439 (cancel_echoing): Set echo_kboard to null.
7440 (cmd_error_internal): Use clear_message, remove references
7441 to echo_area_glyphs and echo_area_message.
7442 (command_loop_1): Check for echo area messages differently.
7443 (read_char): Likewise.
7444 (record_menu_key): Use clear_message.
7445 (Fexecute_extended_command): Check for echo area messages
7446 differently. Use push_message, restore_message, pop_message.
7447
7448 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7449 pop_message.
7450
7451 * emacs.c (shut_down_emacs): Call check_message_stack.
7452
7453 * lisp.h: Add function prototypes and extern declarations for
7454 new functions and variables.
7455
7456 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7457 pop_message.
7458
427ec082 7459 * minibuf.c (read_minibuf): Use clear_message instead of
26901792
DL
7460 setting echo_area_glyphs.
7461 (Fminibuffer_completion_help): Ditto.
7462
7463 * editfns.c (Fcurrent_message): Rewritten.
7464
7465 * frame.c, window.h: Remove references to echo_area_glyphs
7466 and previous_echo_glyphs.
7467
74681999-08-21 Dave Love <fx@gnu.org>
7469
7470 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7471 * aix4-1.h: Likewise.
7472
7473 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7474
74751999-08-20 Gerd Moellmann <gerd@gnu.org>
7476
7477 * xfns.c: Remove tiff34 prefix from include.
7478
74791999-08-20 Dave Love <fx@gnu.org>
7480
7481 * cm.c: Revert previous change.
7482
74831999-08-19 Gerd Moellmann <gerd@gnu.org>
7484
7485 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7486 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7487
74881999-08-18 Dave Love <fx@gnu.org>
7489
7490 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7491 stdlib.h.
7492
7493 * doprnt.c: Use stdlib.h, unistd.h.
7494
7495 * config.in: Add HAVE_TERMCAP_H.
7496
7497 * cm.c: Use termcap.h.
7498
74991999-08-18 Gerd Moellmann <gerd@gnu.org>
7500
7501 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7502 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7503 cannot be created we will already have crashed earlier. Call
7504 lw_set_main_areas with a null menu-bar widget, so that we have
7505 a reasonable default.
7506 (Fx_create_frame): Rearranged so that Lisp errors during frame
7507 initialization cause less damage. Initialize menu bar widget
7508 here.
7509
75101999-08-18 Gerd Moellmann <gerd@gnu.org>
427ec082 7511
26901792
DL
7512 * dispnew.c (update_frame_line): Fix previous change. If writing
7513 whole line clear to end of frame.
7514
75151999-08-17 Gerd Moellmann <gerd@gnu.org>
7516
7517 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7518 and `right-bitmap-area' if position is in the bitmap areas. This
7519 avoids an error when clicking on the bitmap areas. Instead, they
7520 are currently treated like clicks inside the window.
7521 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7522 (Qleft_bitmap_area, Qright_bitmap_area): New.
7523 (syms_of_window): Initialize new symbols.
7524
7525 * dispnew.c (update_frame_line): If writing whole line,
7526 don't write trailing spaces unless we must.
7527
7528 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7529 (redisplay_internal): Register unwind_redisplay with
7530 register_unwind_protect.
7531 (try_window_reusing_current_matrix): If new start > old start,
7532 give up if start pos of first reusable row is not equal to new
7533 start.
7534
7535 * eval.c (Fsignal): Don't reset redisplaying_p here.
7536
7537 * xterm.c (expose_area): If row extends face to end of line,
7538 write the whole line.
7539
75401999-08-16 Gerd Moellmann <gerd@gnu.org>
7541
7542 * dispextern.h (struct it): Remove member
7543 show_trailing_whitespace_p.
7544
7545 * dispnew.c (direct_output_for_insert): Use
7546 Vshow_trailing_whitespace instead of former iterator member
7547 show_trailing_whitespace_p.
7548 (direct_output_forward_char): Don't do it if hightlighting
7549 trailing whitespace.
7550
7551 * xdisp.c (Qshow_trailing_whitespace): Removed.
7552 (Vshow_trailing_whitespace): Added.
7553 (init_iterator): Remove initialization code for
7554 show_trailing_whitespace_p.
7555 (redisplay_internal): Don't try cursor movement in this_line
7556 if showing trailing whitespace.
7557 (redisplay_window): Likewise for cursor movement in current
7558 matrix and try_window_id.
7559 (try_window_reusing_current_matrix): Likewise.
7560 (trailing_whitespace_p): Return 0 if trailing whitespace is
7561 in front of point.
7562 (display_line): Use Vshow_trailing_whitespace instead of
7563 former iterator member show_trailing_whitespace_p.
7564 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7565
75661999-08-16 Gerd Moellmann <gerd@gnu.org>
7567
7568 * window.c (Fpos_visible_in_window_p): Rewritten.
7569
7570 * xfaces.c (add_to_log): Renamed from display_message.
7571 Don't display messages in echo area.
7572
7573 * xterm.c (x_draw_glyph_string_box): Use the background width
7574 of the glyph string for the width of the box.
7575
75761999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7577
7578 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7579
75801999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7581
7582 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7583 background first, and then set other parameters that might
7584 depend upon their new values.
7585
75861999-08-15 Gerd Moellmann <gerd@gnu.org>
7587
7588 * xfaces.c (Vfont_list_limit): New.
7589 (syms_of_xfaces): Make it a user-variable.
7590 (DEFAULT_FONT_LIST_LIMIT): New.
7591 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7592 maximally that number of fonts, otherwise use
7593 DEFAULT_FONT_LIST_LIMIT.
427ec082 7594 (Fx_font_family_list): Bind `font-list-limit' to higher values
26901792
DL
7595 until we have all fonts.
7596 (Fxfont_list): Additionally return the full names of fonts and
7597 their registry and encoding.
7598
427ec082 7599 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
26901792
DL
7600 Simplify clearing "under" scroll bar.
7601
7602 * window.c (Qfixed_window_size): New.
7603 (syms_of_window): Initialiaze it.
7604 (check_all_windows): Add return type void.
7605 (window_fixed_size_p): New. Return non-zero if window
7606 is fixed-size.
7607 (window_min_size_1): New.
7608 (window_min_size): Handle fixed-size windows.
7609 (size_window): New. Rewritten combination of set_window_height and
7610 set_window_width that handles fixed-size windows.
7611 (set_window_height): Call it.
7612 (set_window_width): Call it.
7613 (Fsplit_window): Give an error on attempt to split a fixed-size
7614 window.
7615 (change_window_height): Partly rewritten to handle fixed-size
7616 windows.
7617
76181999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7619
7620 * process.c (Fopen_network_stream): Fix previous change.
7621
76221999-08-13 Karl Heuer <kwzh@gnu.org>
7623
7624 * xdisp.c (line_number_display_limit_width): New var.
7625 (decode_mode_spec): Use it instead of hardcoded value.
7626 (syms_of_xdisp): Defvar it.
7627
76281999-08-13 Richard M. Stallman <rms@gnu.org>
7629
7630 * eval.c (run_hook_list_with_args): Gcpro `globals'.
7631 (run_hook_with_args): Likewise.
7632
7633 * window.h (struct window): New field too_small_ok.
7634
427ec082 7635 * window.c (set_window_height, set_window_width):
26901792
DL
7636 If window starts out "too small", set its too_small_ok flag.
7637 If window's too_small_ok flag is set, don't delete it
7638 unless it is so small it would cause a crash.
7639
76401999-08-13 Gerd Moellmann <gerd@gnu.org>
7641
7642 * window.c (MINSIZE): Removed.
7643 (window_min_size): New.
7644 (set_window_height): Use window_min_size.
7645 (change_window_height): Ditto.
7646
76471999-08-12 Gerd Moellmann <gerd@gnu.org>
7648
7649 * indent.c (vmotion): Don't add in mini-buffer prompt width
7650 if prompts are inserted into mini-buffer.
7651
76521999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7653
7654 * config.in: Add HAVE_GETADDRINFO.
7655 * process.c (Fopen_network_stream): Use getaddrinfo.
7656
76571999-08-11 Gerd Moellmann <gerd@gnu.org>
7658
7659 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
7660 glyphs to -1.
7661
7662 * xdisp.c (face_before_or_after_it_pos): If position after
7663 or before iterator's current position in the buffer is out
7664 of bounds, return the iterator's original face id.
7665
7666 * dispnew.c (mirror_make_current): If desired row isn't enabled,
7667 just swap glyphs pointers between current and desired row.
7668 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
7669 desired matrix method string to current matrix.
7670
76711999-08-11 Kenichi Handa <handa@etl.go.jp>
7672
7673 * lisp.h (CHAR_MODIFIER_MASK): New macro.
7674
7675 * lread.c (read_escape): For Control modifier, pay attention to
7676 multibyte character.
7677 (read1): Likewise. Singal error or a multibyte character which
7678 has a modifer bit. Check validity of Shift modifer.
7679
7680 * charset.c (non_ascii_char_to_string): Handle modifier bits as
7681 the same as Lisp reader.
7682
76831999-08-10 Richard M. Stallman <rms@gnu.org>
7684
7685 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
7686
76871999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
7688
7689 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
7690
76911999-08-10 Eli Zaretskii <eliz@gnu.org>
7692
7693 * msdos.c (IT_set_face): Abort if the default face is not realized
7694 and cached.
7695 (IT_write_glyphs): Reset the screen face to the default face
7696 before writing glyphs.
7697
7698 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
7699 colors from the frame here.
7700 (realize_tty_face) [MSDOS]: Do it here. Update the face
7701 attributes with the actual name of the color taken from the
7702 frame.
7703
7704 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
7705 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
7706
7707 * frame.c (Fframe_parameters): Swap foreground and background
7708 colors returned in frame parameters if the frame has reverse in
7709 its parameter alist.
7710 (Fmake_terminal_frame): Make a unique copy of face_alist for
7711 each frame.
7712
77131999-08-07 Richard Stallman <rms@gnu.org>
7714
7715 * buffer.c (Fprevious_overlay_change): Just return
7716 the answer obtained from overlays_at.
7717
7718 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
7719 Use XpmCloseness and attrs.closeness instead.
7720
77211999-08-06 Richard Stallman <rms@gnu.org>
7722
7723 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
7724
77251999-08-06 Geoff Voelker <voelker@cs.washington.edu>
7726
427ec082 7727 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
26901792
DL
7728 Ffile_attributes_lessp): New functions.
7729 (Fdirectory_files): Use directory_files_internal.
7730 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
7731 Ffile_attributes_lessp.
7732
7733 * w32.c (stat): Check for directory ending in separator when
7734 doing readdir fast path.
7735
7736 * w32fns.c (x_set_icon_type): Support setting frame icons.
7737 * w32term.c (x_bitmap_icon): New function.
7738 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
427ec082 7739
26901792
DL
77401999-08-06 Gerd Moellmann <gerd@gnu.org>
7741
7742 * xdisp.c (set_iterator_to_next): After delivering a character
7743 from a display vector, restore face and charset to what they were
7744 before the display vector was processed.
7745
77461999-08-06 Gerd Moellmann <gerd@gnu.org>
7747
7748 * xdisp.c (reseat_at_next_visible_line_start): New parameter
7749 on_newline_p.
7750 (set_iterator_to_next): After delivering last char
427ec082 7751 from display vector, reseat on next visible line start if
26901792
DL
7752 dpvec_char_len < 0.
7753 (next_element_from_buffer): Set dpvec_char_len to -1 for
7754 selective display.
7755
77561999-08-06 Gerd Moellmann <gerd@gnu.org>
7757
7758 * xdisp.c (compute_line_metrics): If first line's physical ascent
7759 is larger than its logical ascent, use the physical ascent, and
7760 make the row taller. Set row's overlapping_p flag.
7761
7762 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
7763 (direct_output_for_insert): Ditto.
7764
7765 * dispextern.h (struct glyph_row): Add overlapping_p.
7766
7767 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
7768
7769 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
7770 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
7771
7772 * dispnew.c (direct_output_for_insert): Don't use this method if
7773 row is overlapped by others.
7774 (update_text_area): Write full line if current line is overlapped.
7775 (redraw_overlapped_rows): New.
7776 (update_window): Call it.
7777 (redraw_overlapping_rows): New.
7778 (update_window): Call it.
7779 (scrolling_window): Make sure overlapped_p flag in current rows is
7780 unchanged.
7781 (row_equal_p): Take rows overlapped_p flag into account.
7782
7783 * dispextern.h (struct glyph_row): Add flag overlapped_p.
7784
7785 * xterm.c (x_fix_overlapping_area): New.
7786 (x_redisplay_interface): Add x_fix_overlapping_area.
7787
7788 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
7789
77901999-08-06 Gerd Moellmann <gerd@gnu.org>
7791
7792 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
7793 (struct glyph_string): Add member for_overlaps_p.
7794 (x_get_glyph_string_clip_rect): If glyph string draws foreground
7795 of overlapping rows, clip to window bottom.
7796 (x_fill_glyph_string): Add parameter overlaps_p.
7797 (x_fill_composite_glyph_string): Ditto.
7798 (BUILD_GLYPH_STRINGS): Ditto.
7799 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
7800 (x_draw_glyph_string): Don't draw anything but the foreground
7801 if glyph string draws row overlaps.
7802
7803 * dispnew.c (direct_output_for_insert): Don't use this
7804 optimization for rows that overlap others.
7805 (update_window_line): Return non-zero if display has changed.
7806 (update_text_area): Ditto.
7807 (update_window): Record if display has been changed.
7808
7809 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
7810
7811 * dispextern.h (struct redisplay_interface): Add
7812 fix_overlapping_area.
7813
7814 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
7815
7816 * dispextern.h (struct glyph): Add overlaps_vertically_p.
7817
7818 * xterm.c (x_produce_image_glyph): Compute iterator's physical
7819 ascent and descent.
7820 (x_produce_stretch_glyph): Ditto.
7821 (x_produce_glyphs): Ditto.
7822
7823 * xdisp.c (init_iterator): Reset physical line height info
7824 after producing special glyphs.
7825 (display_toolbar_line): Set physical line height info.
7826 (compute_line_metrics): Ditto.
7827 (display_line): Ditto.
7828 (display_string): Ditto.
7829
7830 * term.c (produce_glyphs): Set iterator's physical height
7831 information.
7832
7833 * dispnew.c (blank_row): Compute glyph row's physical height.
7834 (row_equal_p): Take physical row heights into account.
7835 (direct_output_for_insert): Ditto.
7836 (update_text_area): Ditto.
7837
7838 * dispextern.h (struct glyph_row): Add phys_ascent and
7839 phys_height.
7840 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
7841 max_phys_descent.
7842
78431999-08-04 Stefan Monnier <monnier@cs.yale.edu>
7844
7845 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
7846 Fswitch_to_buffer.
7847 (no_switch_buffer): New function.
7848 (Fswitch_to_buffer): Call them. Don't get confused
7849 by "same-window" buffers in a dedicated frame.
7850
7851 * window.c (display-buffer): Don't get confused
7852 by "same-window" buffers in a dedicated frame.
7853
78541999-08-04 Andreas Schwab <schwab@gnu.org>
7855
7856 * insdel.c (insert_from_string_1): Check gap size against number
7857 of outgoing bytes, not incoming bytes.
7858
78591999-08-03 Tom Breton <tob@world.std.com>
7860
7861 * lread.c (read1): Added circular reading code to #N=.
7862 (SUBSTITUTE): New macro.
7863 (seen_list): New variable.
7864 (substitute_object_in_subtree): New function.
7865 (substitute_object_recurse): New function.
7866 (substitute_in_interval): New function.
7867
78681999-08-02 Eli Zaretskii <eliz@gnu.org>
7869
7870 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
7871
7872 * frame.c (make_terminal_frame): Don't call init_frame_faces if
7873 noninteractive, for termcap frames as well.
7874
7875 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
7876 frames.
7877
78781999-08-01 Richard Stallman <rms@gnu.org>
7879
7880 * fns.c (internal_equal): Correct overlay comparison.
7881
83c8f461 78821999-07-31 Richard M. Stallman <rms@gnu.org>
26901792 7883
427ec082 7884 * xfns.c (x_set_internal_border_width):
26901792
DL
7885 Call do_pending_window_change. Don't block input, don't call XFlush.
7886 (x_set_vertical_scroll_bars): Call do_pending_window_change.
7887 (x_set_scroll_bar_width, x_set_font): Likewise.
7888
7889 * frame.c (Fset_frame_height): Call do_pending_window_change.
7890 (Fset_frame_width, Fset_frame_size): Likewise.
7891
7892 * xterm.c (x_set_window_size): When calling change_frame_size,
7893 specify 1 for DELAY.
7894
7895 * widget.c (EmacsFrameSetCharSize): Don't call
7896 do_pending_window_change here.
7897
78981999-07-30 Dave Love <fx@gnu.org>
7899
7900 * config.in: Add HAVE_STDLIB_H.
7901
79021999-07-30 Richard M. Stallman <rms@gnu.org>
7903
7904 * process.c (create_process): Detect failure of `pipe'.
7905
79061999-07-30 Keisuke Nishida <kei@psn.net>
7907
7908 * alloc.c (allocate_vectorlike): Add missing increment.
7909
7910 * data.c (Fdefalias): Call Ffset instead of duplicating code.
7911
7912 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
7913 before calling indirect_function.
7914
79151999-07-30 Eli Zaretskii <eliz@gnu.org>
7916
7917 * dispextern.h (load_color, lookup_derived_face): Declare
7918 prototypes.
7919
7920 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
7921 it will be done later.
7922
7923 * frame.c (make_terminal_frame) [MSDOS]: Don't call
7924 init_frame_faces if non-interactive.
7925 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
7926 array with a call to msdos_stdcolor_name. The font name is now
7927 "ms-dos", consistent with realize_tty_face.
7928
7929 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
7930 MSDOS frame.
7931
7932 * window.c (Fset_window_configuration) [MSDOS]: Don't call
7933 x_set_toolbar_lines.
7934
7935 * xfaces.c (load_color): Remove static from definition and remove
7936 prototype.
7937 [MSDOS]: Add a DOS-specific version of load_color.
7938 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
7939 (lookup_derived_face): New function.
7940 (realize_default_face): Support MSDOS frames.
7941 [MSDOS]: If fore/background colors are unspecified, inherit them
7942 from the frame.
7943 (realize_face): Support MSDOS frames.
7944 (realize_tty_face): Support MSDOS frames.
7945 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
7946 load_color to try to find a suitable approximation. If the face
7947 is inverse-video, swap the foreground and background colors.
7948
7949 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
7950 functions.
7951
7952 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
7953
7954 * msdos.h: Remove redundant declarations (most of them are now in
7955 dispextern.h).
7956
7957 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
7958 Use default frame colors if the face doesn't specify them; invert
7959 the colors if highlight is ON.
7960 (IT_write_glyphs): Rewritten for the new redisplay engine.
7961 (IT_change_line_highlight): Add (unused) parameter Y, since that's
7962 how the hook is called by term.c.
7963 (IT_copy_glyphs): New function, copies an area of the display in
7964 video RAM.
7965 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
7966 redisplay now calls it even if char_ins_del_ok is zero.
7967 (IT_set_frame_parameters): Prototype changed. Calls the new
7968 load_color. Puts the new fore/background colors into the default
7969 face on current frame.
7970 (IT_menu_display): Rewritten to handle the new struct glyph
7971 instead of a char array.
7972 (XMenuActivate): Call lookup_derived_face to create and use
7973 special faces for the pop-up and drop-down menus.
7974
79751999-07-29 Gerd Moellmann <gerd@gnu.org>
7976
7977 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
7978 XawScrollbarSetThumb if thumb parameters haven't changed because
7979 that function apparently isn't optimized for this case.
7980
79811999-07-29 Eli Zaretskii <eliz@gnu.org>
7982
7983 * msdos.c (getdefdir): Don't return failure indication when
7984 _fixpath sets errno to ENOSYS.
7985
79861999-07-28 Gerd Moellmann <gerd@gnu.org>
7987
7988 * xdisp.c (string_char_and_length): New. Use it everywhere
7989 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
7990
79911999-07-28 Kenichi Handa <handa@etl.go.jp>
7992
7993 * fns.c (count_combining): New function.
7994 (struct textprop_rec): New structure.
7995 (concat): Copy text properties correctly when byte combining
7996 occurs.
7997
79981999-07-28 Gerd Moellmann <gerd@gnu.org>
7999
8000 * xterm.c (x_setup_relief_color): Don't try smart color allocation
8001 if display is mono.
8002 (x_draw_row_bitmaps): If face has stipple, don't switch
8003 to foreground color for clearing areas, and set the fill style.
8004
8005 * xfaces.c (load_face_colors): Load background color if setting
8006 stipple, too.
427ec082 8007 (prepare_face_for_display): Use FillOpaqueStippled instead of
26901792
DL
8008 FillStippled.
8009
80101999-07-26 Ken'ichi Handa <handa@gnu.org>
8011
8012 * xterm.c (x_find_ccl_program): Add casting.
8013
8014 * w32fns.c (w32_find_ccl_program): Add casting.
8015
80161999-07-27 Gerd Moellmann <gerd@gnu.org>
8017
8018 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
8019
8020 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
8021 because this will try to access a nonexisting widget.
8022
80231999-07-26 Markus Rost <rost@gnu.org>
8024
427ec082 8025 * fns.c (Fgethash): Fix order of variables (patch by gerd).
26901792
DL
8026 (Fputhash): Ditto.
8027 (Fremhash): Ditto.
8028
80291999-07-26 Gerd Moellmann <gerd@gnu.org>
427ec082 8030
26901792
DL
8031 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
8032 value to frame width and height.
8033
8034 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
8035 into account for full-width windows. Don't add scroll bar width
8036 to width of clip rect.
8037 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
8038 (x_set_glyph_string_background_width): Add 1 to background width.
8039 (x_draw_glyphs): Take internal border into account for full-width
8040 lines.
8041
80421999-07-26 Richard M. Stallman <rms@gnu.org>
8043
8044 * xfns.c (x_set_mouse_color): Always unload the old color.
8045 Don't allow nil as color value.
427ec082 8046 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
26901792
DL
8047 Always unload the old color.
8048
8049 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
8050
80511999-07-26 Karl Heuer <kwzh@gnu.org>
8052
8053 * fns.c (Fy_or_n_p): Doc fix.
8054
80551999-07-26 Kenichi Handa <handa@etl.go.jp>
8056
8057 * ccl.h (setup_ccl_program): The type is changed to `int'.
8058
8059 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
8060 stored in the following CCL code. Adjusted for the change of
8061 Vccl_program_table.
8062 (resolve_symbol_ccl_program): Adjusted for the new style of
8063 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8064 is resolving failed.
8065 (ccl_get_compiled_code): New function.
8066 (setup_ccl_program): Function type changed from `void' to `int'.
8067 Resolve symbols in CCL_PROG.
8068 (Fccl_program_p): New function.
8069 (Fccl_execute): Get compiled CCL code by just calling
8070 setup_ccl_program.
8071 (Fccl_execute_on_string): Likewise.
8072 (Fregister_ccl_program): Adjusted for the change of
8073 Vccl_program_table.
8074
8075 * coding.c (setup_coding_system): Get compiled CCL code by just
8076 calling setup_ccl_program.
8077
8078 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8079 calling setup_ccl_program.
8080
8081 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8082 calling setup_ccl_program.
8083
80841999-07-23 Gerd Moellmann <gerd@gnu.org>
8085
8086 * xfaces.c (frame_update_line_height): Just use the height of the
8087 frame's fontset or font, instead of taking face fonts into
8088 account.
8089
8090 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8091
80921999-07-23 Richard M. Stallman <rms@gnu.org>
8093
8094 * window.c (Fsplit_window): For default size, round up for left window.
8095
80961999-07-21 Joe Ramey <ramey@ti.com>
8097
8098 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8099 has returned -1 (lockfile exists but is not a symlink?).
8100
81011999-07-20 Gerd Moellmann <gerd@gnu.org>
8102
8103 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8104 because of a change in cursor_gc made in 20.4.
8105
81061999-07-19 Gerd Moellmann <gerd@gnu.org>
8107
8108 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8109 for YNegative, if using X toolkit.
8110
427ec082 8111 * xfns.c (x_real_positions): Don't subtract window borders
26901792
DL
8112 from positions returned.
8113
81141999-07-17 Gerd Moellmann <gerd@gnu.org>
8115
8116 * xrdb.c (x_load_resources): Set double-click time defaults
8117 for Motif list boxes from double-click-time.
8118
8119 * fns.c (Vhash_table_tests): Remvoed.
8120 (Qhash_table_test): New.
8121 (syms_of_fns): Initialize Qhash_table_test.
8122 (Fmake_hash_table): Look up user-defined tests in symbol prop
8123 `hash-table-test'.
8124 (Fdefine_hash_table_test): Store test and hash function as
8125 symbol prop `hash-table-test'.
8126 (make_hash_table): Add parameters user_test and user_hash.
8127
8128 * window.c (set_window_buffer): Set window margins for tty
8129 frames, too.
8130 (Fset_window_margins): Ditto.
8131
8132 * term.c (append_glyph): Use glyph area of iterator instead of
8133 always TEXT_AREA.
8134
8135 * dispnew.c (update_frame_1): Add left margin width to cursor
8136 hpos.
8137 (direct_output_for_insert): Ditto.
8138 (direct_output_forward_char): Ditto.
8139
8140 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8141
8142 * dispextern.h (struct glyph_matrix): Add top_line_p.
8143
81441999-07-16 Gerd Moellmann <gerd@gnu.org>
8145
8146 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8147 instead.
8148
8149 * fns.c (cmpfn_eq): Add hash code parameters.
8150 (cmpfn_eql): Ditto.
8151 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8152 (cmpfn_user_defined): Likewise.
8153
81541999-07-15 Gerd Moellmann <gerd@gnu.org>
8155
8156 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8157
8158 * fns.c (maybe_resize_hash_table): Correct computation of
8159 index vector size.
8160 (make_hash_table): Ditto.
8161 (Fmakehash): New.
8162
8163 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8164
8165 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8166 (survives_gc_p): Make it externally visible.
8167 (mark_object): Ditto.
8168
8169 * fns.c (remove_hash_entry): Removed.
8170 (sweep_weak_hash_tables): New.
8171
8172 * print.c (print): Print more information about hash tables.
8173
8174 * xfns.c (image_spec_hash): Removed.
8175 (lookup_image): Use sxhash instead of image_spec_hash.
8176 (image_spec_equal_p): Removed.
8177 (lookup_image): Use Fequal instead of image_spec_equal_p.
8178
81791999-07-14 Gerd Moellmann <gerd@gnu.org>
8180
8181 * lisp.h (P_): Moved to top of file.
8182
8183 * fns.c (make_hash_table): Set new members.
8184
8185 * alloc.c (mark_object): Mark hash table's user_hash_function.
8186 Mark index vector for weak hash tables.
8187
8188 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8189 user_hash_function, cmpfn, and hashfn.
8190
8191 * fns.c (build_hash): Removed.
8192 (hash_test): Removed.
8193 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8194 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8195
81961999-07-13 Gerd Moellmann <gerd@gnu.org>
8197
8198 * alloc.c (survives_gc_p): New.
8199
8200 * print.c (print): Add hash table handling.
8201
8202 * alloc.c (mark_object): Add code to mark hash tables.
8203
8204 * lisp.h (GC_HASH_TABLE_P): New.
8205
8206 * emacs.c (main): Call init_fns.
8207
8208 * fns.c (init_fns): New.
8209
8210 * fns.c: Add hash table implementation.
8211
8212 * lisp.h (PVEC_HASH_TABLE): New.
8213 (struct Lisp_Hash_Table): New.
8214 (XHASH_TABLE): New.
8215 (XSET_HASH_TABLE): New.
8216 (HASH_TABLE_P): New.
8217 (CHECK_HASH_TABLE): New.
8218 (DEFAULT_HASH_SIZE): New.
8219 (DEFAULT_REHASH_THRESHOLD): New.
8220 (DEFAULT_REHASH_SIZE): New.
8221
8222 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8223 (x_write_glyphs): Compute overwritten cursor using real start
8224 and end positions of display.
8225 (x_insert_glyphs): Ditto.
8226
82271999-07-10 Gerd Moellmann <gerd@gnu.org>
8228
8229 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8230
8231 * dispnew.c (blank_row): Add y-position as parameter. Compute
8232 visible height.
8233
8234 * xdisp.c (next_element_from_string): Give padding spaces
8235 a position of -1.
8236
427ec082 8237 * dispnew.c (adjust_glyph_matrix): Some work to support
26901792
DL
8238 marginals areas on tty frames in a future version.
8239 (allocate_matrices_for_frame_redisplay): Ditto.
8240
8241 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8242 to zero if number of glyphs in the row is <= 1.
8243
82441999-07-09 Gerd Moellmann <gerd@gnu.org>
8245
8246 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8247 into account.
8248
8249 * xdisp.c (handle_display_prop): Don't reset area if handing
8250 a property from a string that came from a `display' property.
8251 (handle_single_display_prop): Don't handle recursive `display'
8252 properties.
8253 (handle_single_display_prop): Handle some display property
8254 forms for terminal frames.
8255 (Qimage): Moved here from xfns.c.
8256
8257 * dispextern.h (struct it): New field string_from_display_prop_p.
8258
8259 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8260 line.
8261
82621999-07-08 Gerd Moellmann <gerd@gnu.org>
8263
8264 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8265
8266 * window.c (set_window_buffer): Set window's vscroll to zero.
8267
8268 * xdisp.c (QCwhen): New.
8269 (display_prop_end): New.
8270 (handle_single_display_prop): Use it.
8271 (debug_method_add): Print buffer name if tracing.
8272 (try_window_reusing_current_matrix): Compute visible height
8273 of reused rows. Fix cursor position calculation in case of
8274 top-line.
8275
8276 * dispextern.h (struct redisplay_interface): Add parameter
8277 cursor_on_p to update_window_end_hook.
8278
8279 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8280
82811999-07-07 Gerd Moellmann <gerd@gnu.org>
8282
427ec082 8283 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
26901792
DL
8284 doesn't become negative when decrementing it.
8285
8286 * eval.c (Fsignal): Reset redisplaying_p to zero.
8287
8288 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8289 for window update.
8290 (try_window_id): Ditto.
8291
8292 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8293 (x_scroll_run): Ditto.
8294 (any_help_event_p): New.
8295 (x_initialize): Set it to zero.
8296 (XTread_socket): Clear help echo only if any_help_event_p.
8297
8298 * xdisp.c (init_iterator): Set top_line_p.
8299 (start_display): Use correct initial y if top-line is present.
8300 (make_cursor_line_fully_visible): Bug fixes for top-line.
8301 (try_scrolling): Ditto.
8302 (try_window_reusing_current_matrix): Ditto.
8303
8304 * dispextern.h (struct it): Add top_line_p.
8305
8306 * dispnew.c (shift_glyph_matrix): Move some computations out
8307 of the loop.
8308
427ec082 8309 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
26901792
DL
8310 XFLOATINT.
8311
83121999-07-06 Gerd Moellmann <gerd@gnu.org>
8313
8314 * dispnew.c (update_frame_1): When setting cursor in echo area,
8315 skip only over padding spaces at the end.
8316
8317 * xfaces.c (realize_tty_face): Set face's font_name field to
8318 "tty".
8319
8320 * term.c (update_end): Turn cursor on only if selected window's
8321 cursor_off_p flag is not set.
8322
83231999-07-05 Gerd Moellmann <gerd@gnu.org>
8324
8325 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8326 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8327 (TS_cursor_invisible): New.
8328 (term_init): Initialize TS_cursor_invisible.
8329 (tty_hide_cursor): New.
8330 (tty_show_cursor): New.
8331 (update_end): Show tty cursor.
8332 (update_begin): Hide tty cursor to prevent cursor flickering
8333 during redisplays triggered by timers (stealth fontification).
8334
8335 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8336
8337 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8338 in scroll bars.
8339 (x_handle_toolbar_click): Set modifier bits.
8340
83411999-07-04 Gerd Moellmann <gerd@gnu.org>
8342
8343 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8344 instead of a pointer to a volatile input_event.
427ec082 8345 (kbd_buffer_store_event): Remove volatile modifier from
26901792
DL
8346 declaration of local variable `sp'.
8347 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8348 to kbd_fetch_ptr.
8349
83501999-07-03 Gerd Moellmann <gerd@gnu.org>
8351
8352 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8353 only if buffer is modified. Return quickly if changes are
8354 above window start.
8355
83561999-07-02 Gerd Moellmann <gerd@gnu.org>
8357
8358 * dispextern.h (HSCROLL_WINDOWS): Removed.
8359
8360 * xdisp.c (mark_window_display_accurate): Don't set
8361 w->region_showing.
8362 (redisplay_internal): Don't call redraw_garbaged_frames.
8363
83641999-07-01 Gerd Moellmann <gerd@gnu.org>
8365
8366 * xdisp.c (echo_area_display): Don't display truncation marks
8367 for messages because 20.4 doesn't do it either.
8368 (redisplay_window): Case same window start. Instead of giving
8369 up when cursor is partially visible, make it fully visible.
8370 (mark_window_display_accurate): Some cleanup. Record window's
8371 last cursor information.
8372 (debug_method_add): Improved.
8373 (redisplay_internal): Record last cursor info only if not
8374 consider_all_windows_p.
8375
8376 * dispnew.c (update_window): Update top line after scrolling.
8377 (blank_row): Renamed from make_empty_enabled_row.
8378 (increment_glyph_row_buffer_positions): Increment positions
8379 in buffers, only.
8380
8381 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8382 string.
8383
83841999-06-30 Gerd Moellmann <gerd@gnu.org>
8385
8386 * dispnew.c (update_window): Check that updated row is visible.
8387
8388 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8389 top of window differently.
8390
8391 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8392 if region is showing.
8393
8394 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8395 avoiding matrix reallocation. Set window_vscroll in matrix.
8396
8397 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8398
26901792
DL
8399 * xdisp.c (debug_method_add): New.
8400 (debug_redisplay_method): Removed.
8401 (try_window_reusing_current_matrix): Handle case where old
8402 window start is the same as new window start.
8403
8404 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8405 an array instead of a pointer.
8406
26901792
DL
8407 * xfns.c (Fx_show_tip): Undo previous change.
8408
8409 * xterm.c (x_append_glyph): Clear glyph->u.val.
8410
8411 * dispextern.h (struct glyph): Increase size of face_id bit-field
8412 for CHAR_GLYPH to 12.
8413
84141999-06-29 Gerd Moellmann <gerd@gnu.org>
8415
8416 * xfaces.c (x_charset_registry): Make it externally visible.
8417
84181999-06-28 Gerd Moellmann <gerd@gnu.org>
8419
427ec082 8420 * dispnew.c (update_window): Use mode_line_p flag of rows
26901792
DL
8421 instead of WINDOW_WANTS_MODELINE_P.
8422
8423 * xterm.c (clear_mouse_face): Make externally visible.
8424
8425 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8426
8427 * xterm.c (expose_line): Handle exposure of top-lines.
8428
8429 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8430 if mouse_face_mouse_frame is null.
8431
8432 * xdisp.c (redisplay_window): If window is echo_area_window,
8433 and update_mode_line is set, update menubar and toolbar.
8434
8435 * dispnew.c (space_glyph): Set its charpos to -1.
8436 (update_frame_1): Ignore trailing padding spaces.
8437
8438 * xdisp.c (next_element_from_c_string): Set position of padding
8439 glyphs to -1.
8440
84411999-06-27 Gerd Moellmann <gerd@gnu.org>
8442
8443 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8444 XQueryColor.
8445
8446 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8447 (set_cursor_from_row): Skip over glyphs having a null object at
8448 the start of rows.
8449 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8450 glyphs.
8451 (handle_invisible_prop): Compute next change only when needed.
8452 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8453 line.
8454
84551999-06-26 Gerd Moellmann <gerd@gnu.org>
8456
8457 * xrdb.c (x_load_resources): Don't set resource for double-click
8458 time.
8459
8460 * xdisp.c (try_window_id): Return quickly if all changes are
8461 below the window's current matrix end.
8462
8463 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8464 parameter.
8465
8466 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8467 in desired not in current matrix.
8468 (try_window_reusing_current_matrix): Rotate matrices starting
8469 at start_vpos instead of 0.
8470
8471 * xterm.c (expose_window): Use window_text_bottom_y.
8472 (fast_find_position): Ditto.
8473
8474 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8475 (try_window_reusing_current_matrix): Ditto.
8476 (get_last_unchanged_at_beg_row): Ditto.
8477 (init_iterator): Ditto.
8478
8479 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8480 more row.
8481 (check_matrix_invariants): Use window_text_bottom_y.
8482 (update_window): Ditto.
8483 (scrolling_window): Ditto.
8484
8485 * xdisp.c (window_text_bottom_y): New.
8486
84871999-06-25 Gerd Moellmann <gerd@gnu.org>
8488
8489 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8490 clearing mouse face.
8491 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8492 event.xcrossing.focus is not set, and focus is in the menu bar,
8493 set focus frame as if event.xcrossing.focus were set.
8494
84951999-06-24 Gerd Moellmann <gerd@gnu.org>
8496
8497 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8498 * keyboard.c (make_lispy_movement): Ditto.
8499
8500 * window.c (coordinates_in_window): Return 4 if on top line.
8501 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8502
8503 * xdisp.c (window_box_height): Subtract top line height.
8504 (window_box): Add top line height to top y position if top line
8505 exists.
8506 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8507 the top line row of the window. Set initial y-position to
8508 window's top line height plus delta.
8509 (start_display): Choose start glyph row depending on whether
8510 window has a top line.
8511 (try_scrolling): Take top line height into account for aggressive
8512 scrolling.
8513 (compute_window_start_on_continuation_line): Take top line into
8514 account.
427ec082 8515 (redisplay_window): Ditto. If top line height has changed,
26901792
DL
8516 trigger a new redisplay.
8517 (try_window_reusing_current_matrix): Take top line into account.
8518 (find_last_row_displaying_text): Ditto.
8519 (get_last_unchanged_at_beg_row): DItto.
8520 (try_window_id): Ditto.
8521 (compute_line_metrics): Ditto.
8522
8523 * dispnew.c (shift_glyph_matrix): Compute visible row height
8524 taking top line of window into account.
8525 (update_window): Update top line. If scrolling_window detects
8526 that all rows are equal, only set cursor.
8527 (update_window_line): Call after_update_window_line_hook if
8528 mode_line_p flag of rows has changed.
8529 (scrolling_window): Add parameter top_line_p. Return -1 if
8530 all rows are equal.
8531 (mode_line_string): Add parameter mode_line_p. Handle strings
8532 in top lines.
8533
8534 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8535 (MATRIX_FIRST_TEXT_ROW): New.
8536 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8537 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8538 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8539 (MATRIX_TOP_LINE_HEIGHT): New.
8540 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8541 (CURRENT_TOP_LINE_HEIGHT): New.
8542 (DESIRED_TOP_LINE_HEIGHT): New.
8543 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8544 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8545 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8546 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8547
8548 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8549 lines.
8550 (x_draw_row_bitmaps): Take top line into account when clearing
8551 bitmap area.
8552 (x_estimate_mode_line_height): Replacement for
8553 x_frame_mode_line_height.
8554 (x_get_glyph_string_clip_rect): Take top line into account.
8555 (x_clear_end_of_line): Ditto.
8556 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8557 top lines.
8558 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8559 (x_erase_phys_cursor): Take top line into account.
8560
8561 * xdisp.c (window_box_height): Subtract top line height if
8562 window wants a top line.
8563 (display_mode_lines): New.
8564 (redisplay_window): Call it.
8565 (display_mode_line): Add parameters face_id and format.
8566
8567 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8568 (MATRIX_TOP_LINE_HEIGHT): New.
8569
8570 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8571
8572 * term.c (estimate_mode_line_height): Renamed from
8573 frame_mode_line_height. Add parameter face_id.
8574 (estimate_mode_line_height_hook): Renamed from
8575 frame_mode_line_height_hook.
8576 (produce_special_glyphs_hook): Removed.
8577 (produce_glyphs_hook): Removed.
8578
85791999-06-23 Gerd Moellmann <gerd@gnu.org>
8580
8581 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8582 (struct glyph_row): Add mode_line_p.
8583
8584 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8585 (Qtop_line): New.
8586 (syms_of_xfaces): Initialize Qtop_line.
8587
8588 * dispextern.h (TOP_LINE_FACE_ID): New.
8589
8590 * buffer.c (init_buffer_once): Set default for
8591 top_line_format to nil.
8592 (init_buffer_once): Init top_line_format.
8593 (default-top-line-format): New.
8594 (top-line-format): New buffer-local variable.
8595
8596 * buffer.h: Add top_line_format.
8597
8598 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8599
86001999-06-17 Dave Love <fx@gnu.org>
8601
8602 * xfns.c: Move the PNG section before the JPEG one to avoid
8603 problems surrounding setjmp.h/png.h on GNU/Linux.
427ec082 8604
26901792
DL
86051999-06-17 Gerd Moellmann <gerd@gnu.org>
8606
8607 * xfns.c (x_kill_gs_process): Don't free colors.
8608
86091999-06-17 Dave Love <fx@gnu.org>
8610
8611 * s/gnu-linux.h: Zap spurious ~.
8612
86131999-06-16 Gerd Moellmann <gerd@gnu.org>
8614
8615 * xfns.c (gif_load): Improve multi-image support.
8616
86171999-06-15 Gerd Moellmann <gerd@gnu.org>
8618
8619 * xfns.c (gif_load): Support multi-image files.
8620
8621 * Makefile.in (LIBGIF): Use libungif.
8622
8623 * configure.in (HAVE_GIF): Use libungif instead of libgif
8624 because the former doesn't contain patented compression code.
8625
8626 * xdisp.c (compute_window_start_on_continuation_line): Don't
8627 do it if line start is too far away from window start.
8628
86291999-06-14 Gerd Moellmann <gerd@gnu.org>
8630
8631 * buffer.c (init_buffer_once): Set buffer_local_flags for
8632 scroll_*_aggressively.
8633 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
8634 (init_buffer_once): Set defaults for these variables.
8635 (syms_of_buffer): Add default-scroll-*-aggressively.
8636
8637 * buffer.h (scroll_up_aggressively): New.
8638 (scroll_down_aggressively): New.
8639
8640 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
8641 a static PNG library.
8642
8643 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
8644 in case it's a static library.
8645
8646 * Makefile.in (ctagsfiles): Split so that files starting
8647 with an `x' are found before files starting with `w32'.
8648 (ctagsfiles1): New.
8649 (ctagsfiles2): New.
8650 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
8651
8652 * xdisp.c (compute_window_start_on_continuation_line): New.
8653 (redisplay_window): Use it.
8654 (INFINITY): New.
8655 (reseat_to_string): Use it.
8656 (hscroll_window_tree): Ditto.
8657 (compute_window_start_on_continuation_line): Ditto.
8658 (redisplay_window): Don't force display with a new window start.
8659
86601999-06-06 Gerd Moellmann <gerd@gnu.org>
8661
8662 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
8663 if widget not present.
8664
8665 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
8666
86671999-06-04 Gerd Moellmann <gerd@gnu.org>
8668
8669 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
8670 value of realize_basic_faces.
8671 (load_face_font_or_fontset): Store full font name in face.
8672 (realize_default_face): Use full font name.
8673
26901792
DL
8674 * xterm.c (x_produce_glyphs): Set member char_to_display.
8675 (x_append_glyph): Store char_to_display in glyphs.
8676
8677 * dispextern.h (struct it): Add char_to_display.
8678
8679 * xfns.c (x_set_font): Don't call face-set-after-frame-default
8680 if faces haven't been initialized.
8681 (Fx_create_frame): Call face-set-after-frame-default after
8682 faces have been initialized, and widget has been created.
8683
8684 * puresize.h (BASE_PURESIZE): Increased.
8685
86861999-06-01 Gerd Moellmann <gerd@gnu.org>
8687
8688 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
8689 (Finternal_set_lisp_face_attribute): If frame is t when
8690 :font attribute is set, use the selected frame.
8691 (clear_face_cache): Add parameter clear_fonts_p.
8692 (Fclear_face_cache): Add optional parameter thorougly.
8693
8694 * xfaces.c (face_numeric_value): Return -1 if symbol is not
8695 in table.
8696 (Fclear_face_cache): New.
8697 (choose_face_fontset_font): If fontset doesn't contain font
8698 pattern for the given charset, use CHARSET_ASCII.
8699 (Finternal_set_lisp_face_attribute): Fix handling of nil
8700 stipple attribute.
8701 (Finternal_set_lisp_face_attribute): Fix handling of changing
8702 font-related face attributes of the default face.
8703 (set_lface_from_font_name): Set only attributes that aren't
8704 specified.
8705
87061999-05-31 Gerd Moellmann <gerd@gnu.org>
8707
8708 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
8709 font support.
8710 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
8711 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
8712 scalable fonts depending on the setting of SCALABLE_FONTS.
8713 (first_font_matching): List more than one font to find the
8714 first non-scalable matching font.
8715 (sorted_font_list): Let x_face_list_fonts return scalable fonts
8716 depending on SCALABLE_FONTS.
8717 (better_font_p): New parameter compare_pt_p. If zero, don't
8718 compare point sizes of fonts.
8719 (exact_face_match_p) [SCALABLE_FONTS]: New.
8720 (build_scalable_font_name) [SCALABLE_FONTS]: New.
8721 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
8722 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
8723 (syms_of_xfaces): Add scalable-fonts-allowed.
8724
87251999-05-26 Gerd Moellmann <gerd@gnu.org>
8726
8727 * xfns.c (png_load): Let PNG lib handle gamma. Construct
8728 mask only if image contains simple transparency information.
8729 Otherwise, combine image with frame background color.
8730
8731 * configure.in (--with-png, HAVE_PNG): New.
8732
8733 * config.in (HAVE_PNG): New.
8734
8735 * Makefile.in: Add PNG library.
8736
8737 * xfns.c: Add PNG support.
8738
87391999-05-25 Gerd Moellmann <gerd@gnu.org>
8740
8741 * xdisp.c (init_xdisp): Initialize echo_area_message and
8742 previous_echo_area_message to nil.
8743
8744 * keyboard.c (read_char): Rename local variable echo_area_message
8745 because it shadows the global one.
8746
87471999-05-05 Gerd Moellmann <gerd@gnu.org>
8748
8749 * xterm.c (note_mode_line_highlight): Restructured.
8750
8751 * window.c (coordinates_in_window): Handle windows that don't have
8752 a mode line because their buffer's mode-line-format is nil.
8753 Recognize the mode line under x positions that correspond to
8754 flags areas and left scroll bar.
8755
87561999-05-02 Dave Love <fx@gnu.org>
8757
8758 * xterm.c (note_mouse_highlight): Separate help-echo processing
8759 from check on mouse-face so that it works generally.
8760
87611999-04-21 Gerd Moellmann <gerd@gnu.org>
8762
8763 * sound.c (Fplay_sound): Run hook play-sound-hook.
8764 (Qplay_sound_hook): New.
8765
87661999-04-20 Gerd Moellmann <gerd@gnu.org>
8767
8768 * xdisp.c (update_echo_area): Handle echo_area_message.
8769
87701999-04-19 Gerd Moellmann <gerd@gnu.org>
8771
8772 * editfns.c (Fmessage): Use message3.
8773
8774 * print.c (printchar): Set echo_area_message to nil.
8775 (strout): Ditto.
8776
8777 * minibuf.c (read_minibuf): Reset echo message strings to nil.
8778 (Fminibuffer_completion_help): Ditto.
8779
8780 * keyboard.c (cmd_error_internal): Set echo_areA_message.
8781 (command_loop_1): Test echo_areA_message.
8782 (read_char): Ditto.
8783 (record_menu_key): Set echo_area_message to nil.
8784 (Fexecute_extended_command): Test echo_area_message.
8785 (Fexecute_extended_command): Handle echo_area_message.
8786
8787 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
8788 is set.
8789
8790 * editfns.c (Fcurrent_message): If echo_area_message is set,
8791 return a substring of that string.
8792
8793 * dispnew.c (direct_output_for_insert): Test echo_area_message
8794 in addition to echo_area_glyphs.
8795 (set_window_cursor_after_update): Ditto.
8796 (update_frame_1): Ditto.
8797
8798 * alloc.c (Fgarbage_collect): Use message3_nolog to display
8799 old Lisp message string.
8800
8801 * xdisp.c (echo_area_message): New.
8802 (previous_echo_area_message): New.
8803 (syms_of_xdisp): Initialize and staticpro new variables.
8804 (echo_area_display): Display echo_area_message if set.
8805 (message2_nolog): Set echo_area_message and
8806 previous_echo_area_message.
8807 (echo_area_display): Set previous_echo_area_message.
8808 (redisplay_internal): Display echo area if echo_area_message
8809 or previous_echo_area_message are set.
8810 (redisplay_preserve_echo_area): Test/set echo_area_message and
8811 previous_echo_area_message.
8812 (redisplay_window): Test echo_area_message.
8813 (message3_nolog): New.
8814 (message3): New.
8815
8816 * editfns.c (Fformat): Add text properties to the result string
8817 from properties of the format string and properties of string
8818 arguments.
8819
8820 * textprop.c (text_property_list): New.
8821 (add_text_properties_from_list): New.
8822 (extend_property_ranges): New.
8823
88241999-03-29 Gerd Moellmann <gerd@gnu.org>
8825
8826 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
8827 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
8828 Use these symbols for the box face attribute instead of the
8829 removed ones.
8830
88311999-03-12 Gerd Moellmann <gerd@gnu.org>
8832
8833 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
8834 Correct wrong test for slant.
8835
88361999-03-10 Gerd Moellmann <gerd@gnu.org>
8837
8838 * xfaces.c: Use `unspecified' for unspecified face attributes,
8839 use t and nil for on/off.
8840
88411999-03-06 Gerd Moellmann <gerd@gnu.org>
8842
8843 * buffer.c (syms_of_buffer): Extend doc string of
8844 mode-line-format.
8845
8846 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
8847 (first_font_matching): New.
8848 (set_lface_from_font_name): Use it if font name is a pattern.
8849 (font_field_wildcard_p): Removed.
8850
8851 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
8852 Recompute visible height of rows.
8853
8854 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
8855 Don't accept non-strings for help-echo from overlays.
8856
88571999-03-04 Dave Love <fx@gnu.org>
8858
8859 * xterm.c (note_mouse_highlight): Check overlays for help-text
8860 property.
8861 (XTread_socket): Fix compiler warning.
427ec082 8862
26901792
DL
88631999-03-05 Gerd Moellmann <gerd@gnu.org>
8864
427ec082 8865 * xterm.c (note_mouse_highlight): Don't restrict number of
26901792
DL
8866 overlay to 10. Call overlays_at so that it doesn't try to
8867 extend the vector.
8868
8869 * xdisp.c (compute_line_metrics): Compute glyph row's visible
8870 height.
8871
8872 * dispnew.c (row_equal_p): Compare visible row height, only.
8873 (update_text_area): Draw whole line if visible heights of
8874 rows differ.
8875 (update_window_line): Call after_update_window_line_hook
8876 if visible row height has changed.
8877
8878 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
8879 (struct glyph_row): New member visible_height.
8880
8881 * xfaces.c (font_field_wildcard_p): New.
8882 (set_lface_from_font_name): Remove parameter force_p. Accept
8883 font names containing wildcards.
8884
88851999-03-04 Gerd Moellmann <gerd@gnu.org>
8886
8887 * xterm.c (x_after_update_window_line): Clear internal border
8888 when windows_or_buffers_changed.
8889
8890 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
8891 buffer has a nil mode_line_format.
8892
88931999-03-03 Gerd Moellmann <gerd@gnu.org>
8894
8895 * xterm.c (x_setup_relief_colors): Use either background color
8896 or specified color.
8897
8898 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
8899
8900 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
8901
8902 * xterm.c (x_draw_box_rect): New.
8903 (x_draw_glyph_string_box): Renamed from
8904 x_draw_glyph_string_relief. Call x_draw_box_rect.
8905
8906 * xfns.c (QCrelief): New.
8907 (syms_of_xfns): Initialize it.
8908
8909 * dispextern.h (struct glyph): Rename left_shadow_p to
8910 left_box_line_p, right_shadow_p to right_box_line_p.
8911 (MAX_RELIEF_THICKNESS): Removed.
8912 (struct it): Rename members having `relief' in their names
8913 to contain `box' instead.
8914
8915 * xfaces.c (realize_x_face): Handle new box attribute values.
8916 (QCrelief, Qbox): Removed.
8917 (QCshadow, QCcolor, Qraised, Qsunken): New.
8918 (syms_of_xfaces): Initialize new symbols.
8919
89201999-03-02 Gerd Moellmann <gerd@gnu.org>
8921
8922 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
8923
8924 * xfaces.c (LFACE_RELIEF): Removed.
8925 (merge_face_vector_with_property): Remove handling of `:relief'.
8926 (Finternal_set_lisp_face_attribute): Ditto.
8927 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8928 (Finternal_get_lisp_face_attribute): Ditto.
8929 (realize_default_face): Ditto.
8930 (lface_hash): Don't compute hash from relief.
8931
8932 * dispextern.h (struct face): Replace member `relief' by
8933 `box_line_width'. Add member `box'.
8934 (face_box_type): New.
8935
8936 * xterm.c (x_produce_glyphs): If face has overline, add overline
8937 thickness + 1 to ascent.
8938
89391999-03-01 Gerd Moellmann <gerd@gnu.org>
8940
8941 * xterm.c (x_draw_glyph_string): Draw underline, overline,
8942 strike-through, and boxes.
8943 (x_draw_glyph_string_underline): Removed.
8944
8945 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
8946 (Qoverline, Qstrike_through, Qbox): New.
8947 (syms_of_xfaces): Define these symbols.
8948 (check_lface_attrs): Add checks for overline, strike-through,
8949 and box.
8950 (Finternal_set_lisp_face_attribute): Set new attributes.
8951 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
8952 (load_color): Handle new attributes.
8953 (realize_x_face): Ditto.
8954 (merge_face_vector_with_property): Ditto.
8955 (free_face_colors): Ditto.
8956 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8957 (Finternal_get_lisp_face_attribute): Ditto.
8958 (Finternal_lisp_face_attribute_values): Ditto.
8959
8960 * dispextern.h (lface_attribute_index): Add enumerators for
8961 overstrike, strike-through, and box.
8962 (struct face): Add members for overline, strike-through, and
8963 box.
8964
89651999-02-17 Dave Love <fx@gnu.org>
8966
8967 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
8968 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
8969 files.
8970
89711999-02-16 Gerd Moellmann <gerd@gnu.org>
8972
8973 * keyboard.c (toolbar_items): Call access_keymap with third
8974 parameter 1, so that we don't get inherited toolbar item
8975 definitions.
8976
8977 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
8978 the window end vpos when in empty first line of window.
8979
89801999-02-15 Gerd Moellmann <gerd@gnu.org>
8981
8982 * xfaces.c (set_font_frame_param): New.
8983 (Finternal_set_lisp_face_attribute): Call it.
8984
8985Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8986
8987 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
8988 Accept specifications of color for underline.
8989
89901999-02-13 Gerd Moellmann <gerd@gnu.org>
8991
8992 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
8993 `frame' is t, operate on face defaults for new frames. If it
8994 is nil, operate on the selected frame.
8995
89961999-02-12 Gerd Moellmann <gerd@gnu.org>
8997
8998 * dispnew.c (check_matrix_invariants): Put it in #if 0.
8999 (update_window): Put the call to check_matrix_invariants in #if 0.
9000
9001Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9002
9003 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
9004 Remove definition of UNDERLINE_COLOR.
9005
9006Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9007
9008 * xfaces.c (free_face_colors): Free the color for underline.
9009
9010 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
9011 to the GC.
9012
9013Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
9014
9015 * dispextern.h (UNDERLINE_COLOR): Defined.
9016 (struct face): Added two new members.
9017 underline_color, underline_defaulted_p.
9018
427ec082 9019 * xfaces.c (merge_face_vector_with_property):
26901792 9020 (check_lface_attrs): Accept the string value for underline.
427ec082 9021 (Finternal_set_lisp_face_attribute): Likewise.
26901792
DL
9022
9023 * xfaces.c (load_color): Change the last argument type to enum
9024 lface_attribute_index from int. And addec code for underling coloring.
9025 (load_face_colors): Pass LFACE_*_INDEX to load_color.
427ec082 9026
26901792
DL
90271999-02-12 Gerd Moellmann <gerd@gnu.org>
9028
9029 * xfns.c (Fx_image_header): Removed.
9030
90311999-02-07 Gerd Moellmann <gerd@gnu.org>
9032
9033 * xterm.c: Don't include <bitmaps/gray>.
9034 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
9035
9036 * xfns.c (Fx_image_header): Add missing `\n\'.
9037 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
9038
90391999-02-01 Gerd Moellmann <gerd@gnu.org>
9040
9041 * xterm.c (x_scroll_bar_create): Set background pixel from
9042 specified scroll bar color.
9043 (x_scroll_bar_set_handle): Use scroll bar foreground color.
9044
9045 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
9046 (x_set_scroll_bar_background): Ditto.
9047
9048 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
9049
9050 * xfns.c (x_default_scroll_bar_color_parameter): New.
9051 (Fx_create_frame): Call it.
9052
90531999-01-31 Gerd Moellmann <gerd@gnu.org>
9054
9055 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
427ec082 9056 values in x_output structure.
26901792
DL
9057 (Qscroll_bar_foreground, Qscroll_bar_background): New.
9058 (syms_of_xfns): Initialize these symbols.
9059
9060 * xterm.h (struct x_output): Add scroll bar pixel colors.
9061
9062 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9063 (x_set_scroll_bar_foreground): New.
9064 (x_set_scroll_bar_background): New.
9065
26901792
DL
90661999-01-12 Gerd Moellmann <gerd@gnu.org>
9067
9068 * xdisp.c (handle_single_display_prop): New.
9069 (handle_display_prop): Call it.
9070 (handle_raise_prop): Removed.
9071 (handle_height_prop): Removed.
9072 (handle_space_width_prop): Removed.
9073 (handle_face_prop): Remove handling of raised text.
9074 (handle_display_prop): Do it here.
9075
9076 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9077 (RAISE_PROP_IDX): Removed.
9078 (HEIGHT_PROP_IDX): Removed.
9079 (SPACE_WIDTH_PROP_IDX): Removed.
9080
9081 * xdisp.c (Qdisplay): Replaces Qglyph.
9082 (handle_display_prop): Formerly handle_glyph_prop.
9083
90841999-01-11 Gerd Moellmann <gerd@gnu.org>
9085
9086 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9087 (handle_stop): Set position in display vector to -1. Don't
9088 check overlay strings when set up to deliver characters from a
9089 display vector.
9090 (set_iterator_to_next): At the end of a run of characters from a
9091 display vector, check whether the display vector display replaces
9092 the display of a character.
9093
90941999-01-05 Gerd Moellmann <gerd@gnu.org>
9095
9096 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9097 X window hasn't been created yet.
9098
90991998-12-06 Gerd Moellmann <gerd@gnu.org>
9100
9101 * sound.c: New.
9102
91031998-12-04 Gerd Moellmann <gerd@gnu.org>
9104
9105 * config.in (HAVE_SOUND): New.
9106
9107 * emacs.c (main): Call syms_of_sound and init_sound.
9108
9109 * Makefile.in (obj): Add sound.o.
9110
9111 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9112
9113 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9114 (HAVE_SYS_SOUNDCARD_H): New.
9115
91161998-12-03 Gerd Moellmann <gerd@gnu.org>
9117
9118 * buffer.h (struct buffer): indicate_empty_lines renamed from
9119 indicate_zv_lines.
9120
9121 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9122 (default-indicate-zv-lines): Likewise.
9123
9124 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9125 to indicate_empty_line_p.
9126
9127 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9128 to next_element_from_buffer.
9129
9130 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9131
9132 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9133 and `N-'.
9134
9135 * xfns.c (xbm_scan): New.
9136 (xbm_read_hexint): Removed.
9137 (xbm_read_bitmap_file_data): Use xbm_scan.
9138
9139 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9140
91411998-12-02 Gerd Moellmann <gerd@gnu.org>
9142
9143 * xfns.c (xbm_read_hexint): New.
9144 (xbm_read_bitmap_file_data): New.
9145 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9146 instead of XReadBitmapFileData.
9147
9148 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9149
9150 * xfaces.c (face_with_height): New.
9151
9152 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9153 (eval_form): Renamed from eval_mode_element.
9154 (handle_face_prop): Use it.
9155 (Qheight): Replaces Qsmaller.
9156 (handle_height_prop): Replaces handle_smaller_prop.
427ec082 9157 (handle_face_prop): If iterator's font_height is not an
26901792
DL
9158 integer, evaluate it to get the font height to use.
9159
9160 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9161 (struct it): Use `font_height' instead of `smaller'.
9162
91631998-12-01 Gerd Moellmann <gerd@gnu.org>
9164
9165 * xdisp.c (reseat_1): New.
9166 (reseat): Call it.
9167 (move_it_vertically_backward): Ditto.
9168 (redisplay_window): Don't abort when cursor not found in recenter.
9169
91701998-11-30 Gerd Moellmann <gerd@gnu.org>
9171
9172 * xdisp.c (reseat_at_next_visible_line_start): When not
9173 currently delivering display elements from the current buffer,
9174 restore buffer position first.
9175 (init_from_display_pos): Don't set IT's position from the
9176 position passed to this function.
9177
91781998-11-28 Gerd Moellmann <gerd@gnu.org>
9179
9180 * config.in (PROTO): Removed.
9181
9182 * xterm.h: Change PROTO to P_.
9183
91841998-11-26 Gerd Moellmann <gerd@gnu.org>
9185
9186 * xterm.c (take_vertical_position_into_account): New.
9187 (x_produce_image_glyph): Call it.
9188 (x_produce_stretch_glyph): Ditto.
9189 (x_produce_glyphs): Ditto.
9190 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9191 (x_fill_composite_glyph_string): Ditto.
9192 (x_fill_image_glyph_string): Ditto.
9193 (x_fill_stretch_glyph_string): Ditto.
9194
9195 * xdisp.c (display_line): Always compute row height from
9196 max_ascent and max_descent.
9197
9198 * dispextern.h (struct glyph): Add voffset.
9199 (struct it): Replace height by descent, max_height by max_descent.
9200
9201 * xterm.c (x_append_glyph): Set voffset
9202 (x_append_stretch_glyph): Ditto.
9203 (x_produce_image_glyph): Ditto.
9204 (x_produce_glyphs): Take voffset into account.
9205 (x_produce_image_glyph): Ditto.
9206 (x_produce_stretch_glyph): Ditto.
9207
9208 * dispextern.h (struct it): Add voffset.
9209 * xdisp.c (push_it): Save voffset.
9210 (pop_it): Restore it.
9211
9212 * xdisp.c (it_props): Add entry for `raise'.
9213 (handle_raise_prop): New.
9214
9215 * dispextern.h (RAISE_PROP_IDX): New.
9216
9217 * xdisp.c (Qraise): New.
9218 (syms_of_xdisp): Define Qraised.
9219
9220 * xterm.c (x_scroll_bar_move): Clear to the left and right
9221 of toolkit scroll bars differently.
9222 (x_scroll_bar_move): Removed.
9223 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9224
9225 * dispextern.h: Make it compilable --with-x=no.
9226 * alloc.c: Ditto.
9227 * emacs.c: Ditto.
9228 * dispnew.c: Ditto.
9229 * keyboard.c: Ditto.
9230 * term.c: Ditto.
9231 * xdisp.c: Ditto.
9232 * xfaces.c: Ditto.
9233 * xfns.c: Ditto.
9234 * xmenu.c: Ditto.
9235
92361998-11-25 Gerd Moellmann <gerd@gnu.org>
9237
9238 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9239
92401998-11-24 Gerd Moellmann <gerd@gnu.org>
9241
9242 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9243 update slider size, only.
9244 (xm_scroll_callback): Set dragging member of the scroll bar.
9245 (xt_action_hook): Reset last_scroll_bar_part.
9246 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9247
26901792
DL
9248 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9249 window on newly created frames that don't have one.
9250
92511998-11-23 Gerd Moellmann <gerd@gnu.org>
9252
9253 * xdisp.c (restore_overlay_strings): Removed.
9254 (restore_dpvec): Removed.
9255 (init_from_display_pos): Inline both functions above.
9256
9257 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9258 (parse_image_spec): Handle it.
9259 (xbm_format): Use it.
9260 (xpm_format): Ditto.
9261 (pbm_format): Ditto.
9262 (jpeg_format): Ditto.
9263 (tiff_format): Ditto.
9264 (gif_format): Ditto.
9265 (gs_format): Ditto.
9266
9267 * xdisp.c (set_window_cursor): Removed.
9268 (redisplay_internal): Case cursor motion in cursor line of
9269 selected window; use set_cursor_from_row.
9270
92711998-11-22 Gerd Moellmann <gerd@gnu.org>
9272
9273 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9274 into account.
9275
92761998-11-21 Gerd Moellmann <gerd@gnu.org>
9277
9278 * xterm.c (expose_frame): Redraw menu bar window.
9279
9280 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9281 in menu item.
9282
9283 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9284 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9285
9286 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9287 to determine vertical_scroll_bar_extra.
9288 (EmacsFrameSetCharSize): Ditto.
9289 * xfns.c (x_figure_window_size): Ditto.
9290
9291 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9292 (x_draw_bitmap): Ditto.
9293
9294 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9295 * xfaces.c (realize_basic_faces): Realize it.
9296
92971998-11-20 Gerd Moellmann <gerd@gnu.org>
9298
9299 * xmenu.c (xmenu_show): Add workaround for remaining button grab
427ec082 9300 under LessTif Use the widget of the frame as parent for the
26901792
DL
9301 menu, again.
9302
93031998-11-19 Gerd Moellmann <gerd@gnu.org>
9304
9305 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9306 When EnterNotify, don't generate a mouse movement event if
9307 notification is from a busy-cursor child window.
9308
9309 * xterm.h (struct x_output): Add busy_window, remove cursor.
9310
9311 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9312 Use a transparent window to display the busy-cursor.
9313 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9314
93151998-11-17 Gerd Moellmann <gerd@gnu.org>
9316
9317 * xdisp.c (check_window_end): New, for debugging.
9318 (CHECK_WINDOW_END): New.
9319 (try_window_id): Use it.
9320
9321 * xterm.c (process_expose_from_menu): Return int.
9322
9323 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9324 TOOLBAR_EVENT events in last_nonmenu_event.
9325
93261998-11-16 Gerd Moellmann <gerd@gnu.org>
9327
9328 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9329 window end isn't reliable, so set window_end_valid to nil.
9330 (redisplay_internal): If overlay arrow has changed, set
9331 windows_or_buffers_changed to redisplay thoroughly.
9332
9333 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9334 necessary.
9335
9336 * xfns.c (file_dialog_cb): New.
9337 (Fx_file_dialog): New.
9338 * fileio.c (Fread_file_name): Call it.
9339
427ec082 9340 * xrdb.c (x_load_resources): Add default resoures for file
26901792
DL
9341 selection dialog.
9342
93431998-11-14 Gerd Moellmann <gerd@gnu.org>
9344
9345 * xterm.c (note_mouse_highlight): Don't highlight when popup
9346 is active.
9347
26901792
DL
9348 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9349 timer-event-handler. This busy cursor tends to be anoying if
9350 fontifying stealthily.
9351
9352 * dispnew.c (direct_output_for_insert): Give up if current row
9353 contains trailing whitespace.
9354
93551998-11-13 Gerd Moellmann <gerd@gnu.org>
9356
9357 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9358
9359 * xdisp.c (handle_fontified_prop): New.
9360 (Vfontification_functions): New.
9361 (Qfontification_functions): New.
9362 (it_props): Add handle_fontified_prop.
9363
93641998-11-12 Gerd Moellmann <gerd@gnu.org>
9365
9366 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9367 Otherwise, under LessTif, after the popup has gone, all button
9368 press events come in for the frame's widget, and release events
9369 come in for the edit_widget.
9370 * xterm.c (XTread_socket): Remove workaround for that problem.
9371 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9372 XmScrollBarSetValues.
9373 (SET_SAVED_MENU_EVENT): Give it statement form.
9374
26901792
DL
9375 * xfaces.c (display_message): If waiting_for_input, don't display
9376 the message.
9377
9378 * window.c (scroll_command): If not acting on current_buffer,
9379 make redisplay consider all windows.
9380
9381 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9382
9383 * xdisp.c (handle_glyph_prop): Set it->object for images to
9384 the object having the glyph property.
9385
9386 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9387 invisible.
9388
93891998-11-11 Gerd Moellmann <gerd@gnu.org>
9390
9391 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9392 (x_term_init): Create the gray pixmap.
9393 (x_setup_relief_color): Use it.
9394 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9395 internal border at the top of a frame.
9396 (x_init_glyph_string): Likewise.
427ec082 9397 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
26901792
DL
9398 full-width lines.
9399 (XTflash): Don't flash the toolbar window.
9400
9401 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9402 in case of ButtonPress events.
9403
94041998-11-10 Gerd Moellmann <gerd@gnu.org>
9405
9406 * xrdb.c (x_load_resources): Add grey background colors as
9407 defaults for menus, scroll bars, and dialogs.
9408
9409 * insdel.c (prepare_to_modify_buffer): Move setting
9410 windows_or_buffers_changed from modify_region here.
9411
9412 * xfns.c (Fx_show_tip): Inhibit redisplay.
9413 (Fx_hide_tip): Ditto.
9414 (Fx_image_header): New.
9415
94161998-11-09 Gerd Moellmann <gerd@gnu.org>
9417
9418 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9419 when clearing current window matrices.
9420
94211998-11-08 Gerd Moellmann <gerd@gnu.org>
9422
9423 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9424 position from a string position. Use the right end position
9425 if the property spans a whole overlay string.
9426
94271998-11-07 Gerd Moellmann <gerd@gnu.org>
9428
9429 * xmenu.c (menubar_selection_callback): Remove workaround for
9430 Lesstif not calling XmNpopdownCallback because it doesn't
9431 handle the case where users don't select any menu item.
9432
26901792
DL
9433 * insdel.c (modify_region): Set windows_or_buffers_changed.
9434
9435 * buffer.c (set_buffer_internal): Don't set
9436 windows_or_buffers_changed.
9437
26901792
DL
9438 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9439
26901792
DL
9440 * xmenu.c (menubar_selection_callback): Add workaround for
9441 Lesstif not calling XmNpopdownCallback.
9442
9443 * xdisp.c (eval_mode_element): New.
9444 (eval_mode_handler): New.
9445 (display_mode_element): Use eval_mode_element.
9446
9447 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9448 Remove code looking at text props of default value.
9449
9450 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9451
26901792
DL
94521998-11-06 Gerd Moellmann <gerd@gnu.org>
9453
427ec082 9454 * xmenu.c (single_submenu): Set button_type of menu to
26901792
DL
9455 BUTTON_TYPE_NONE.
9456 (single_submenu): Likewise for panes and menu items.
9457 (set_frame_menubar): Set button_type of menu bar to none.
9458 (xmenu_show): Likewise.
9459 (single_submenu): Set widget values selected slot.
9460 (xmenu_show): Likewise.
9461
26901792
DL
9462 * xmenu.c (push_menu_item): Add parameters `type' and
9463 `selected'. Store it in menu_items.
9464 (MENU_ITEMS_ITEM_TYPE): New.
9465 (MENU_ITEMS_ITEM_SELECTED): New.
9466 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9467
9468 * xfns.c (clear_image_cache): Get the current time, before
9469 doing anything.
9470 (cache_image): Set prev pointer of next image.
9471 (clear_image_cache): Clear current matrices if any image was
9472 freed.
9473
9474 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9475
9476 * xfns.c (x_set_cursor): New.
9477 (Fx_display_busy_cursor): New.
9478 (Fx_undisplay_busy_cursor): New.
9479
9480 * xterm.h (struct x_output): Add busy_cursor.
9481
9482 * xfns.c (Vx_busy_pointer_shape): New.
9483 (x_set_mouse_color): Create busy cursor.
9484
9485 * process.c (wait_reading_process_input): Show and hide busy
9486 cursor.
9487
9488 * keyboard.c (command_loop_1): Display busy cursor.
9489
9490 * eval.c (Fsignal): Hide busy cursor.
9491
9492 * buffer.c (set_buffer_internal): Don't set
9493 windows_or_buffers_changed.
9494
9495 * xterm.c (redo_mouse_highlight): New.
9496
94971998-11-04 Gerd Moellmann <gerd@gnu.org>
9498
26901792
DL
9499 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9500 (x_build_heuritic_mask): New.
9501 (lookup_image): Call it.
9502
9503 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9504 (previous_help_echo): New.
9505 (XTread_socket): Generate help event with nil message when
9506 leaving a region with help-echo.
9507 (note_mouse_highlight): Handle `help-echo' over text.
9508 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9509 CirculateRequest.
9510 (clear_mouse_face): Don't clear if tooltip is shown.
9511 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9512 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9513
9514 * keyboard.c (Vshow_help_function): New.
9515 (read_char): Use it.
9516
95171998-11-03 Gerd Moellmann <gerd@gnu.org>
9518
9519 * xfns.c (x_create_tip_frame): New.
9520 (Fx_show_tip): New.
9521 (Fx_hide_tip): New.
9522
427ec082 9523 * xterm.c (x_destroy_window): Handle case that we don't have
26901792
DL
9524 a widget.
9525
9526 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9527 to full_width_p. Add internal_border_p.
9528
95291998-11-02 Gerd Moellmann <gerd@gnu.org>
9530
9531 * xterm.c (note_mode_line_highlight): Check the charpos of
9532 the glyph under the mouse pointer before accessing text
9533 properties at that position.
9534
95351998-11-01 Gerd Moellmann <gerd@gnu.org>
9536
9537 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9538
9539 * xdisp.c (auto-raise-toolbar-buttons): New.
9540 (build_desired_toolbar_string): Handle the flag.
9541 (toolbar-button-margin): New.
9542 (toolbar-button-relief): New.
9543 (build_desired_toolbar_string): Use margin and relief.
9544
9545 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9546 for FreeBSD.
9547 (note_mode_line_highlight): New.
9548 (note_mouse_highlight): Call it.
9549
95501998-10-31 Gerd Moellmann <gerd@gnu.org>
9551
9552 * s/freebsd.h (NARROWPROTO): New.
9553
9554 * xdisp.c (display_string): New parameter face_string.
9555 (display_mode_element): When displaying a symbol with a string
9556 value, use text properties from the symbol's default value, maybe.
9557
9558 * xrdb.c (x_load_resources): Add font defaults for menus and
9559 dialogs.
9560
95611998-10-30 Gerd Moellmann <gerd@gnu.org>
9562
9563 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9564
95651998-10-29 Gerd Moellmann <gerd@gnu.org>
9566
9567 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9568 produced for characters with codes < 32 under certain
9569 circumstances.
9570
9571 * xdisp.c (redisplay_window): Handle values of PT in front
9572 of invisible, intangible text.
427ec082 9573 (try_window_id): Set overlay_arrow_seen to zero before
26901792
DL
9574 displaying lines.
9575 (display_mode_element): Assign to glyphs written for a mode
9576 line spec `%x' as object the Lisp format string, as position
9577 the position of the `%' in that string.
9578 (display_string): If displaying a C string, optionally get
9579 the face to use from a Lisp string.
9580
9581 * xterm.c (expose_window_tree): Include mode line height.
9582
9583 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9584
95851998-10-27 Gerd Moellmann <gerd@gnu.org>
9586
9587 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9588 over mode line.
9589
95901998-10-26 Gerd Moellmann <gerd@gnu.org>
9591
9592 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9593
9594 * xdisp.c (redisplay_window): If mode line height has changed,
9595 arrange for a thorough immediate redisplay using the correct mode
9596 line height.
9597 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9598
9599 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9600 (CURRENT_MODE_LINE_HEIGHT): New.
9601 (DESIRED_MODE_LINE_HEIGHT): New.
9602
9603 * keyboard.c (make_lispy_event): Add string and string position
9604 info to mouse-click events.
9605 (read_key_sequence): Handle `local-map' property of mode line
9606 strings.
9607
9608 * keyboard.h (POSN_STRING): New.
9609
96101998-10-25 Gerd Moellmann <gerd@gnu.org>
9611
9612 * dispnew.c (mode_line_string): Mew.
9613
9614 * xterm.c (xt_action_hook): New.
9615 (x_create_toolkit_scroll_bar): Add action hook.
9616 (xm_scroll_callback): Implement dragging.
9617
9618 * keyboard.c (Qend_scroll): New.
9619 (scroll_bar_parts): Add it.
9620
9621 * termhooks.h (scroll_bar_end_scroll): New.
9622
9623 * xterm.c (XTread_socket): Bug fix.
9624
96251998-10-24 Gerd Moellmann <gerd@gnu.org>
9626
9627 * xdisp.c (redisplay_window): Finish scroll bars after
9628 redisplaying toolbar.
9629
9630 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
9631 (syms_of_keyboard): Add Qbottom.
9632
9633 * termhooks.h (scroll_bar_to_top): New.
9634 (scroll_bar_to_bottom): New.
9635
9636 * xdisp.c (redisplay_window): Always resize toolbar window if
9637 auto_resize_toolbar_p is non-zero.
9638 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
9639 (window_box): New.
9640 (window_box_height): New.
9641 (window_box_width): New.
9642 (window_box_left): New.
9643 (window_box_right): New.
9644 (window_box_edges): New.
9645
96461998-10-23 Gerd Moellmann <gerd@gnu.org>
9647
9648 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
9649 XawScrollbarSetThumb in FreeBSD.
9650 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
9651 to true.
9652
9653 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
9654 is out of range.
9655
9656 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
9657 (x_term_init): Initialize it.
9658
9659 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
9660
9661 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
9662 cursor.
9663
96641998-10-22 Gerd Moellmann <gerd@gnu.org>
9665
9666 * keyboard.c (make_lispy_event): Handle scroll_bar_click
9667 differently when using toolkit scroll bars.
9668
9669 * xterm.c (x_send_scroll_bar_event): New.
9670 (x_scroll_bar_to_input_event): New.
9671 (xaw3d_scroll_callback): New.
9672 (xaw3d_jump_callback): New.
9673 (xm_scroll_callback): New.
9674 (x_toolkit_scroll_p): New.
9675 (XTread_socket): Handle scroll bar client message.
9676 (x_term_init): Initialize Xatom_Scrollbar.
9677 (x_scroll_bar_create): Set cursor.
9678 (xm_scroll_callback):
9679 (x_create_toolkit_scroll_bar): New.
9680 (x_set_toolkit_scroll_bar_thumb): New.
9681 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
9682 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
9683
9684 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
9685
96861998-10-21 Gerd Moellmann <gerd@gnu.org>
9687
9688 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
9689 (XTread_socket): Don't handle mouse button events for scroll bars
9690 if using toolkit scroll bars.
9691 (XTset_vertical_scroll_bar): Set thumb size and position for
9692 Athena scroll bar.
9693
9694 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
9695
9696 * xterm.c (XTread_socket): Dispatch expose event to widget
9697 if using toolkit scroll bars.
9698 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
427ec082 9699 (x_scroll_bar_create): Create and show a scroll bar widget
26901792
DL
9700 if using toolkit scroll bars.
9701 (x_scroll_bar_move): Handle tookit scroll bars.
9702
9703 * Makefile.in (LIBW): Use Xaw3d if present.
9704
9705 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
9706 (HAVE_XAW3D): New.
427ec082 9707
26901792
DL
9708 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
9709 (HAVE_XAW3D): New.
9710
427ec082 9711 * xterm.c (XTset_vertical_scroll_bar): Correct position of
26901792
DL
9712 right vertical scroll bar.
9713
97141998-10-20 Gerd Moellmann <gerd@gnu.org>
9715
9716 * xfns.c (xpm_load): Support reading XPM images from string
9717 buffers containing data in the same format as an XPM file.
9718 Support `:color-symbols'.
9719 (xpm_format): Add `:data'.
9720 (xpm_keyword_index): Add XPM_DATA.
9721 (syms_of_xfns): Add `:color-symbols'.
9722 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
9723 (xpm_valid_color_symbols_p): New.
9724 (xpm_image_p): Call it.
9725
9726 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
9727 attribute to the image if item is not enabled.
9728
9729 * xfns.c (x_laplace): New.
9730 (x_laplace_read_row): New.
9731 (x_laplace_write_row): New.
9732 (lookup_image): Handle common image attributes here. New
9733 attribute `:algorithm'.
9734
9735 * xfaces.c (clear_face_cache): Call clear_image_cache.
9736
9737 * xterm.c (x_inverted_image_mask): Removed.
9738 (x_draw_image_foreground_1): New.
9739 (x_draw_image_glyph_string): Draw images with mask to a temporary
9740 pixmap to reduce flickering.
9741
9742 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
9743 (display_toolbar_line): Remove parameter `margin'.
9744
97451998-10-19 Gerd Moellmann <gerd@gnu.org>
9746
9747 * xdisp.c (toolbar_lines_needed): New.
9748 (auto-resize-toolbars): New.
9749
9750 * xfns.c (cache_image): Correct call to xrealloc.
9751
9752 * dispnew.c (Fset_toolbar_height): Removed.
9753
9754 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
9755 FRAME_MENU_BAR_LINES.
9756
9757 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
9758 instead of FRAME_MENU_BAR_LINES.
9759 (check_frame_size): Ditto.
9760
9761 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
9762 instead of FRAME_MENU_BAR_LINES.
9763 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
9764 (build_frame_matrix): Ditto.
9765 (change_frame_size_1): Ditto.
9766
9767 * frame.h (FRAME_TOOLBAR_LINES): New.
9768 (FRAME_TOP_MARGIN): New.
9769
9770 * window.c (struct save_window_data): Add frame_toolbar_lines.
9771 (Fset_window_configuration): Handle toolbar lines.
9772 (Fcurrent_window_configuration): Save toolbar lines.
9773
9774 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
9775
9776 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
9777
9778 * frame.h (struct frame): Rename top_margin to toolbar_lines.
9779
9780 * xfns.c (x_frame_parms): Add `toolbar-lines'.
9781 (x_set_toolbar_lines): New.
9782
9783 * keyboard.c (cmd_error_internal): Bug fix.
9784
9785 * xterm.c: Remove double include of syssignal.h.
9786
97871998-10-18 Gerd Moellmann <gerd@gnu.org>
9788
9789 * xterm.c (x_toolbar_item): New.
9790 (x_handle_toolbar_click): Use it.
9791 (note_toolbar_highlight): Use it.
9792
9793 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
9794 and toolbar_items_vectors.
9795
9796 * xterm.c (help_echo): New.
9797 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
9798 (x_set_glyph_string_gc): Handle them.
9799 (x_after_update_window_line): Don't do anything in pseudo-windows.
9800 (x_produce_image_glyph): Take image margin and face relief into
9801 account.
9802 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
9803 (x_draw_glyph_string_background): Optimize case when face has
9804 relief.
9805 (x_setup_relief_color): Take frame instead of glyph string
9806 parameter.
9807 (x_draw_relief_rect): New.
9808 (x_draw_glyph_string_relief): Call it.
9809 (x_draw_image_glyph_string_foreground): Handle margin and image
9810 relief.
9811 (x_draw_image_glyph_string_background): Ditto.
9812 (expose_frame): Redraw toolbar window.
9813 (expose_window): Don't draw cursor for pseudo-windows.
9814 (x_y_to_hpos_vpos): Handle pseudo-windows.
9815 (frame_to_window_pixel_xy): New.
9816 (note_mouse_highlight): Call note_toolbar_highlight.
9817 (x_handle_toolbar_click): New.
9818 (note_toolbar_highlight): New.
9819 (show_mouse_face): Change int parameter `hl' to parameter of
9820 type enum draw_glyphs_face. Handle image highlighting.
9821 (XTread_socket): Return a HELP_EVENT input event if help_echo is
9822 non-nil. Use x_handle_toolbar_click.
9823
9824 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
9825
9826 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
9827 IMAGE_BOOL_VALUE.
9828 (parse_image_spec): Handle them.
9829 (image_spec_value): Additional parameter found.
427ec082 9830 (free_image): Remove image from the vector `images' of the
26901792
DL
9831 image cache.
9832 (clear_image_cache): Additional parameter force_p.
9833 (Fclear_image_cache): New.
9834 (x_find_image_file): New.
9835 (xbm_load): Handle `:margin' and `:relief'. Use
9836 x_find_image_file.
9837 (xpm_load): Likewise.
9838 (pbm_load): Likewise.
9839 (jpeg_load): Likewise.
9840 (tiff_load): Likewise.
9841 (gif_load): Likewise.
9842
9843 * keyboard.c (Qhelp_echo): New symbol.
9844 (read_char): Handle `toolbar' and `help_echo' events.
9845 (kbd_buffer_get_event): Handle HELP_ECHO input event.
9846 (make_lispy_event): Handle TOOLBAR_EVENT.
9847 (toolbar_items): New.
9848 (process_toolbar_item): New.
9849 (PROP): New.
9850 (init_toolbar_items): New.
9851 (append_toolbar_item): New.
9852 (read_char_x_menu_prompt): Handle `toolbar' event.
9853 (read_key_sequence): Ditto.
9854
9855 * xfaces.c (Qtoolbar): New.
9856 (realize_basic_faces): Realize `toolbar' face.
9857 (face_at_string_position): Remove parameter modeline_p, add
9858 base_face_id.
9859
9860 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
9861 to read data.
9862
98631998-10-17 Gerd Moellmann <gerd@gnu.org>
9864
9865 * xdisp.c (init_iterator): Replace parameter modeline_p with
9866 base_face_id.
9867 (next_element_from_string): Call get_next_display_element
9868 recursively after handling text properties.
9869 (prepare_menu_bars): Call update_toolbar.
9870 (update_toolbar): New.
9871 (build_desired_toolbar_string): New.
9872 (display_toolbar_line): New.
9873 (redisplay_toolbar): New.
9874 (toolbar_item_info): New.
9875 (redisplay_window): Call redisplay_toolbar.
9876 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
9877
9878 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
9879 window.
9880 (clear_desired_matrices): Ditto.
9881 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
9882 (free_glyphs): Free matrices of toolbar window.
9883 (update_frame): Update toolbar window.
9884 (change_frame_size_1): Take toolbar into account.
9885 (Fset_toolbar_height): New.
9886
9887 * dispextern.h (struct it): Remove member modeline_p, add
9888 base_face_id.
9889 (struct image): Add members relief and margin.
9890 (IMAGE_ASCENT): Include margin in height.
9891
98921998-10-14 Gerd Moellmann <gerd@gnu.org>
9893
9894 * xfns.c (Fclear_image_cache): New.
9895
9896 * xfaces.c (realize_basic_faces): Realize toolbar face.
9897 (face_at_string_position): Remove parameter modeline_p, add
9898 base_face_id.
9899
9900 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
9901
99021998-10-13 Gerd Moellmann <gerd@gnu.org>
9903
9904 * keyboard.c (syms_of_keyboard): Intern `:help'.
9905
99061998-10-12 Gerd Moellmann <gerd@gnu.org>
9907
9908 * xterm.c (note_toolbar_highlight): New.
9909 (note_mouse_highlight): Call it.
9910
9911 * window.c (window_from_coordinates): Additional parameter toolbar_p.
9912 (coordinates_in_window): Handle toolbar window.
9913
9914 * keyboard.c (toolbar_items): New.
9915 (process_toolbar_item): New.
9916 (parse_toolbar_item): New.
9917 (init_toolbar_items): New.
9918 (append_toolbar_item): New.
9919
9920 * dispextern.h (enum toolbar_item_idx): New.
9921 (enum toolbar_item_image): New.
9922
9923 * frame.h (struct frame): Add toolbar-related members.
9924
9925 * xfaces.c (face_at_string_position): Remove assertion that
9926 current_buffer == window's buffer. This is not the case when
9927 called for the toolbar window.
9928
9929 * frame.c (make_frame): Initialize toolbar members.
9930
9931 * alloc.c (mark_object): Mark toolbar data of frames.
9932
9933 * frame.h (struct frame): Add toolbar-related members
9934 toolbar_window, desired_toolbar_items, current_toolbar_items,
9935 desired_toolbar_string, current_toolbar_string,
9936 n_desired_toolbar_items, n_current_toolbar_items. Add
9937 window_height.
9938
9939 * xterm.c (x_after_update_window_line): Don't draw bitmap
9940 areas for pseudo-windows.
9941 (expose_frame): Handle toolbar window.
9942 (expose_window): Don't do cursor stuff for pseudo-windows.
9943
9944 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
9945
99461998-10-11 Gerd Moellmann <gerd@gnu.org>
9947
9948 * frame.c (make_frame): Initialize toolbar_window.
9949
9950 * alloc.c (mark_object): Make the toolbar window.
9951
9952 * dispnew.c (update_frame): Update frame's toolbar_window.
9953 (clear_current_matrices): Likewise.
9954 (clear_desired_matrices): Likewise.
9955 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
9956 (free_glyphs): Free the toolbar window and its matrices.
9957
9958 * frame.h (struct frame): Add toolbar_window.
9959
9960 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
9961 with relief.
9962
99631998-10-10 Gerd Moellmann <gerd@gnu.org>
9964
427ec082 9965 * dispnew.c (buffer_posn_from_coords): Don't screw up if
26901792
DL
9966 window start is not in the range BEGV..ZV.
9967
99681998-10-09 Gerd Moellmann <gerd@gnu.org>
9969
9970 * xdisp.c (try_scrolling): Experimentally handle the case
9971 that scroll-preserve-screen-position is set to `always'.
9972
9973 * window.c (Vscroll_preserve_screen_position): Replacement for
9974 scroll_preserve_screen_position.
9975
99761998-10-08 Gerd Moellmann <gerd@gnu.org>
9977
9978 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
9979 doesn't like it.
9980 * xdisp.c: Ditto.
9981
9982 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
9983
99841998-10-06 Gerd Moellmann <gerd@gnu.org>
9985
427ec082 9986 * minibuf.c (Fminibuffer_complete_word): Fix computation of
26901792
DL
9987 i_byte when prompts are inserted into minibuffers.
9988
9989 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
9990 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
9991 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
9992
99931998-10-04 Gerd Moellmann <gerd@gnu.org>
9994
9995 * xdisp.c (make_cursor_line_fully_visible): New.
9996 (try_scrolling): New.
9997 (redisplay_window): Move scrolling code to try_scrolling.
9998 (make_cursor_line_fully_visible): Handle case of window too small
9999 to show a single line.
10000 (redisplay_window): Case forced window start---use
10001 make_cursor_line_fully_visible.
10002 (redisplay_window): Case cursor movement via current matrix.
10003 If ending up on a partially visible line, make it fully visible
10004 instead of recentering.
10005 (try_scrolling): Additional parameter scroll_smoothly.
10006
10007 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
10008
100091998-09-28 Gerd Moellmann <gerd@gnu.org>
10010
10011 * window.c (window_scroll_pixel_based): Bug fix: vpos used
10012 instead of y-position for scroll-preserved-screen-position.
10013
100141998-09-07 Gerd Moellmann <gerd@gnu.org>
10015
10016 * dispnew.c (update_frame_line): If current row is not enabled,
10017 write the whole line.
10018
100191998-09-06 Gerd Moellmann <gerd@gnu.org>
10020
10021 * lisp.h (HAVE_FACES): Removed.
10022
10023 * dispextern.h (HAVE_FACES): Removed.
10024
10025 * config.in (HAVE_FACES): Removed.
10026
10027 * dispnew.c (HAVE_FACES): Removed.
10028
10029 * xdisp.c (HAVE_FACES): Removed.
10030
10031 * xfaces.c (HAVE_FACES): Removed.
10032
100331998-09-05 Gerd Moellmann <gerd@gnu.org>
10034
10035 * xdisp.c (init_iterator): If face_change_count is non-zero,
10036 free realized faces.
10037
10038 * xfaces.c (free_all_realized_faces): Make it externally visible.
10039 (Finternal_set_lisp_face_attribute): Increment
10040 windows_or_buffers_changed.
10041
10042 * dispnew.c (direct_output_for_insert): Give up if
10043 face_change_count is non-zero.
10044 (direct_output_forward_char): Ditto.
10045
10046 * xfaces.c (face_change_count): New.
10047
100481998-09-04 Gerd Moellmann <gerd@gnu.org>
10049
10050 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
10051 of range.
10052
100531998-09-03 Gerd Moellmann <gerd@gnu.org>
10054
10055 * term.c (Ftty_display_color_p): New.
10056
100571998-09-02 Gerd Moellmann <gerd@gnu.org>
10058
10059 * xfaces.c (Ftty_defined_colors): New.
10060
10061 * xterm.c (x_produce_glyphs): Fix computation of
10062 contains_overlapping_glyphs_p for ASCII.
10063
10064 * dispnew.c (Fshow_cursor): Don't change cursor state while
10065 redisplaying.
10066 (direct_output_for_insert): If a glyph with lbearing or rbearing
10067 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10068
100691998-09-01 Gerd Moellmann <gerd@gnu.org>
10070
10071 * term.c (OUTPUT_IF): Make replacement text have statement form.
10072 (OUTPUT1_IF): Ditto.
10073 (TS_italic_mode, TS_end_italic_mode): Removed.
10074 (TS_bold_mode): Removed.
10075 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10076 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10077 (TS_enter_reverse_mode): New.
10078 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10079 (TN_magic_cookie_glitch_ul): New.
10080 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10081 (TS_exit_attribute_mode): New.
10082 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10083 (TS_set_foreground, TS_set_background): New.
10084 (reset_terminal_modes): Switch colors back to default.
10085 (write_glyphs): Turn face on before writing text, turn it off
10086 afterwards.
10087 (insert_glyphs): Ditto.
10088 (term_init): Initialize new terminal capability variables.
10089 (turn_on_face): Turn a face on.
10090 (turn_off_face): Turn a face off.
10091
10092 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10093 (GLYPH_CHAR): Ditto.
10094 (GLYPH_FACE): Ditto.
10095
10096 * xfaces.c (Vface_tty_color_alist): New.
10097 (face-register-tty-color): New.
10098 (face-clear-tty-colors): New.
10099
10100 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10101 (struct it): Remove member faces_p since we now always have faces.
10102
101031998-08-31 Gerd Moellmann <gerd@gnu.org>
10104
10105 * dispextern.h (struct face): Add tty appearance flags.
10106
10107 * xdisp.c (init_iterator): Always handle faces.
10108 (extend_face_to_end_of_line): Handle tty frames.
10109
10110 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10111 passed in.
10112
101131998-08-30 Gerd Moellmann <gerd@gnu.org>
10114
10115 * xfaces.c (realize_default_face): Use empty strings to indicate
10116 that the face should use the default foreground/background
427ec082 10117 color of the terminal. Fill font-related attributes with
26901792
DL
10118 appropriate values for tty frames.
10119
10120 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10121
10122 * xfaces.c (realize_default_face): If face `default' is not
10123 yet known, create it.
10124
10125 * frame.c (make_terminal_frame): Call init_frame_faces
10126 unconditionally.
10127
10128 * xfaces.c (init_frame_faces): Make it work for tty frames.
10129 (free_frame_faces): Ditto.
10130 (clear_face_cache): Ditto.
10131 (recompute_basic_faces): Ditto.
10132 (Fframe_face_alist): Ditto.
10133 (free_realized_face): Ditto.
10134 (prepare_face_for_display): Ditto.
10135 (clear_face_gcs): Ditto.
10136 (lookup_face): Ditto.
10137 (smaller_face): Ditto.
10138 (realize_default_face): Ditto.
10139 (realize_face): Ditto.
10140 (realize_face): Dispatch to functions depending on the frame type.
10141 (realize_x_face): X way of realizing faces.
10142 (realize_tty_face): TTY way of realizing faces.
10143
101441998-08-29 Gerd Moellmann <gerd@gnu.org>
10145
10146 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10147 compute it instead.
10148 (lookup_face): Remove local variable unibyte_registry.
10149
101501998-08-22 Gerd Moellmann <gerd@gnu.org>
10151
10152 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10153 1 pixel longer.
10154
427ec082 10155 * xdisp.c (face_before_or_after_it_pos): Fix computation
26901792
DL
10156 of face in buffer.
10157
10158 * editfns.c (make_buffer_string_both): If prompt in buffer,
10159 prevent start > end.
10160
10161 * indent.c (Fvertical_motion): Set current_buffer to window's
10162 buffer if it isn't already.
10163
101641998-08-21 Gerd Moellmann <gerd@gnu.org>
10165
10166 * dispextern.h (GLYPH_DEBUG): Use default 0.
10167
10168 * xdisp.c (it_props): New member `smaller'.
10169 (init_iterator): Initialize it.
10170 (Qsmaller): New.
10171 (push_it): Save value of `smaller' value on the stack.
10172 (pop_it): Restore `smaller' from the stack.
10173 (handle_smaller_prop): New.
10174 (handle_face_prop): Use `smaller' text property to select a
10175 suitable face.
10176
10177 * dispextern.h (SMALLER_PROP_IDX): New.
10178 (struct it): Add member `smaller'.
10179
10180 * xfaces.c (smaller_face): New.
10181
10182 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10183
10184 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10185 total pixel width of window differently.
10186
10187 * xdisp.c (init_iterator): Compute width of mode line differently.
10188
10189 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10190 of bitmap areas.
10191
10192 * window.c (Fsplit_window): Include width of bitmap areas in
10193 window width.
10194 (window_internal_width): Subtract width of bitmap areas from
10195 total width.
10196
101971998-08-18 Gerd Moellmann <gerd@gnu.org>
10198
10199 * xdisp.c: Functions reordered for better readability.
10200
10201 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10202 lbearing.
10203 (update_window_tree): Parameter no_scrolling_p removed.
10204 (update_single_window): Ditto.
10205
10206 * xterm.c (x_get_char_font_and_encoding): Renamed to
10207 x_get_char_face_and_encoding.
10208
10209 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10210 if end of current row reached.
10211
10212 * xterm.c (x_get_glyph_face_and_encoding): New.
10213 (x_get_glyph_overhangs): Call it.
10214
10215 * xdisp.c (Qshow_trailing_whitespace): New.
10216 (Qtrailing_whitespace): New.
10217 (enum prop_handled): New.
10218 (struct props, it_props): New.
10219 (next_overlay_change): New. Works like Fnext_overlay_change
10220 but doesn't use xmalloc.
10221 (handle_stop): Restructured.
10222 (face_before_or_after_it_pos): Case iteration over a string: fix
10223 handling of face before current position.
10224
102251998-08-16 Gerd Moellmann <gerd@gnu.org>
10226
10227 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10228 reallocation matrix if fonts_changed_p.
10229 (update_text_area): Handle glyphs with lbearing.
10230
102311998-08-14 Gerd Moellmann <gerd@gnu.org>
10232
10233 * xdisp.c (struct props): New.
10234 (it_props): New.
10235 (compute_prop_info): New.
10236 (handle_stop): New.
10237
10238 * textprop.c (validate_interval_range): Make it externally
10239 visible.
10240
10241 * dispnew.c (direct_output_for_insert): Remove calls
10242 to compute_stop_pos.
10243
10244 * dispextern.h (struct it): Remove check_charpos,
10245 next_overlay_pos. Add what_changes.
10246
102471998-08-10 Gerd Moellmann <gerd@gnu.org>
10248
10249 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10250
10251 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10252 face_default_registry instead.
10253
10254 * syntax.c (scan_sexps_forward): Set up syntax table before
10255 jumping to initial state label.
10256
102571998-08-09 Gerd Moellmann <gerd@gnu.org>
10258
10259 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10260 >= ZV specially.
10261
102621998-08-08 Gerd Moellmann <gerd@gnu.org>
10263
10264 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10265 ends up in partially visible row, try to scroll. Case forced
10266 window start---handle windows not tall enough to show a single
10267 line.
10268
10269 * window.h (struct window): Member dy renamed vscroll.
10270
10271 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10272 fonts.
10273 (x_draw_stretch_glyph_string): Set clipping if using GC that
10274 hasn't set it yet.
10275
10276 * xdisp.c (redisplay_window): Case forced window start -
10277 don't let cursor end on partially visible row. Use desired
10278 matrix to find a suitable PT if it doesn't appear.
10279 (decode_mode_spec): Merged with 20.2.97.
10280 (try_window_reusing_current_matrix): Give up if old or
10281 new display is vscrolled.
10282 (redisplay_window): Reset vscrolling if forced window start,
10283 or if recentering.
10284
102851998-08-06 Gerd Moellmann <gerd@gnu.org>
10286
10287 * xfaces.c (realize_default_face): Use the fontset name instead of
10288 the alias for the family attribute of the default face because we
10289 can't easily determine a good alias from fontset-alias-alist.
10290 (face_fontset): Use Fquery_fontset to find the fontset.
10291 (font_list): Additional pattern parameter.
10292 (try_font_list): Ditto.
10293 (set_lface_from_font_name): Set face family from font foundry
10294 and family.
10295 (font_list): If family contains a hyphen, build pattern differently.
10296
102971998-08-05 Gerd Moellmann <gerd@gnu.org>
10298
10299 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10300 changed instead of setting the frame garbaged.
10301
10302 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10303 all attribute values. This is wrong if values are unspecified,
10304 i.e. nil.
10305
10306 * xdisp.c (try_window_id): Give up if window start changed.
10307
10308 * xfaces.c (make_realized_face): Store registry as Lisp object.
10309 (load_face_font_or_fontset): Compute registry of a face
10310 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10311 possible.
10312
10313 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10314 differently.
10315
10316 * alloc.c (mark_face_cache): Mark the registry member of faces.
10317
10318 * dispextern.h (struct face): Make registry a Lisp string.
10319
103201998-08-04 Gerd Moellmann <gerd@gnu.org>
10321
10322 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10323 multibyte_p. Handle unibyte text.
10324 (x_append_glyph): Set the multibyte_p flag of glyphs.
10325 (x_produce_image_glyph): Ditto.
10326 (x_append_stretch_glyph): Ditto.
10327 (x_produce_glyphs): Handle unibyte text like ASCII.
10328
10329 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10330 stack.
10331 (pop_it): Restore it.
10332 (face_before_or_after_it_pos): Handle the case that the string or
10333 buffer is unibyte.
10334 (get_overlay_strings): Set the multibyte flag of the iterator if
10335 the new overlay string is multibyte.
10336 (get_glyph_property): Likewise.
10337 (get_next_display_element): Don't check for charset changes in
10338 unibyte text.
10339 (append_space): Compute face differently for unibyte text.
10340 (extend_face_to_end_of_line): Don't return quickly if face has
10341 stipple.
10342
10343 * xfaces.c (load_face_font_or_fontset): Store registry and
10344 encoding of the font in the registry member of the face.
10345 (make_realized_face): Additional parameter `registry'.
10346 (free_realized_face): Free the registry of a realized face.
10347 (face_suitable_for_charset_p): Function form of the macro
10348 with the same name in uppercase.
10349 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10350 (choose_face_font): New parameter unibyte_registry.
10351 (choose_face_fontset_font): Ditto.
10352 (realize_default_face): Remember the registry and encoding of
10353 the specified frame font in Vx_unibyte_registry_and_encoding.
10354 (face_at_buffer_position): Handle unibyte.
10355 (face_at_string_position): Likewise.
427ec082 10356 (realize_face): New parameter unibyte_registry.
26901792
DL
10357 (compute_char_face): Handle the unibyte case.
10358
10359 * dispextern.h (struct glyph): Add bit multibyte_p.
10360 (struct face): New member registry holding the registry and
10361 encoding of the X font of the face.
10362 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10363 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10364 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10365 text.
10366 (struct iterator_stack_entry): Add multibyte_p.
10367
10368 * xdisp.c (string_pos): Use string_char_to_byte.
10369 (char_charset): Removed.
10370
103711998-08-03 Gerd Moellmann <gerd@gnu.org>
10372
10373 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10374 rectangle for a block cursor over an image without a mask.
10375 (x_stretch_block_cursor): Added. Non-zero means don't draw
10376 a block cursor over a stretch as wide as that stretch.
10377 (x_draw_stretch_glyph_string): Use it.
10378 (x_draw_hollow_cursor): Ditto.
10379
10380 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10381 (read_minibuf): Add front-sticky text property for prompt.
10382
10383 * xdisp.c (char_charset): Return charset of a character,
10384 depending on whether or not multi-byte characters are enabled.
10385
10386 * xfaces.c (Fset_face_charset_registry): Removed.
10387 (x_charset_registry): Determine registry from charset plist.
10388
103891998-08-02 Gerd Moellmann <gerd@gnu.org>
10390
10391 * xdisp.c (get_next_display_element): Don't check for charset
10392 changes if multi-byte characters are not enabled.
427ec082 10393
26901792 10394 * xdisp.c (echo_area_display): Use the flush function from the
427ec082 10395 redisplay interface.
26901792
DL
10396 * keyboard.c (detect_input_pending_run_timers): Likewise.
10397
10398 * dispextern.h (produce_*glyphs_hook): Removed.
10399 * term.c (produce_*glyphs): Ditto.
10400 (cursor_to): Remove pixel position parameters.
10401
10402 * dispnew.c: Remove hooks for window-based redisplay, introduce
10403 a redisplay interface structure.
10404
10405 * xterm.c (x_per_char_metric): Return default char metrics if per
10406 char metric exists but contains a zero width. Adobe Courier seems
10407 to contain such characters.
10408
10409 * xdisp.c (compute_line_metrics): Compute the width of rows
10410 without stopping at glyphs with zero width.
10411
104121998-08-01 Gerd Moellmann <gerd@gnu.org>
10413
10414 * xdisp.c (display_mode_line): If nothing was displayed at all,
10415 display a space.
10416 (hscroll_window_tree): Don't subtract 1 from target point if equal
10417 to ZV and window is not the selected window.
10418
10419 * dispnew.c (check_matrix_invariants): Remove check for window
10420 start at BEGV or after newline. This happens in rare cases
10421 intentionally.
10422
104231998-07-31 Gerd Moellmann <gerd@gnu.org>
10424
10425 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10426 (syms_of_xfaces): Add Vface_default_registry.
10427 (x_charset_registry): Use it.
10428
10429 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10430 (redisplay_window): Use it.
10431
10432 * dispnew.c (update_text_area): Handle lbearing of deleted text
10433 by backing up one character.
10434
104351998-07-30 Gerd Moellmann <gerd@gnu.org>
10436
427ec082 10437 * dispnew.c (adjust_glyph_matrix): Use a different check to
26901792
DL
10438 decide to do nothing.
10439
10440 * xfaces.c (face_at_string_position): Additional parameter
10441 mode_line_p. If non-zero, merge with the mode line face
10442 instead of the default face.
10443 * dispextern.h (struct it): Add mode_line_p.
10444 * xdisp.c (init_iterator): Set it.
10445 (compute_face_in_string): Use it.
10446 (face_before_or_after_it_pos): Handle strings.
10447 (get_next_display_element): Don't look for relief end in C strings.
10448 (next_element_from_string): Deliver string position instead of
10449 buffer position.
10450
10451 * xterm.c (x_flush): Flush X output buffer.
10452 (XTflash): Use it.
10453
10454 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10455 Allow strings as face names.
10456
10457 * xfns.c (forall_images_in_image_cache): Check that frame is
10458 alive.
10459
10460 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10461 it's also called from x_destroy_window. Since this function is
10462 called from X, freeing stuff allocated with xmalloc is dangerous
10463 here, anyway.
10464
10465 * xfaces.c (free_realized_faces): Don't clear current matrices
10466 of a frame being destroyed.
10467
427ec082 10468 * frame.c (make_frame): Call set_window_buffer instead of
26901792
DL
10469 Fset_window_buffer.
10470
10471 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10472 with an additional argument specifying whether or not hooks may
10473 be called.
10474 (Fset_window_buffer): Call it.
10475
10476 * dispnew.c (clear_desired_matrices): Check that frame has
10477 a valid root window before clearing matrices in the window tree.
10478 (clear_current_matrices): Ditto.
10479 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10480 vchild are valid windows if not nil.
10481
10482 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10483 for :inverse-video.
10484 (Finternal_set_lisp_face_attribute): Ditto.
10485 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10486 (Finternal_get_lisp_face_attribute): Ditto.
10487 (Finternal_lisp_face_attribute_values): Ditto.
10488 (syms_of_xfaces): Define the symbol `:reverse-video'.
10489
10490 * xdisp.c (get_glyph_property): Renamed from
10491 fill_iterator_from_glyph_property.
10492 (next_element_from_buffer): Handle case that no `glyph' property
10493 was found correctly.
10494 (display_line): Extend face to end of line only if we have faces.
10495
104961998-07-29 Gerd Moellmann <gerd@gnu.org>
10497
10498 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10499 additional window argument.
10500
10501 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10502 set_iterator_to_previous_visible_line_start.
10503 (reseat_at_next_visible_line_start): Likewise.
10504 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10505 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10506 (compute_face_in_buffer): Renamed from
10507 compute_face_at_iterator_position.
10508 (compute_face_in_string): Renamed from
10509 compute_face_at_iterator_string_position.
10510 (get_space_width): Renamed from get_iterator_space_width.
10511 (next_overlay_string): Renamed from
10512 set_iterator_to_next_overlay_string.
10513 (get_overlay_strings): Renamed from
10514 get_overlay_strings_at_iterator_position.
10515 (restore_overlay_strings): Renamed from
10516 setup_overlay_strings_from_glyph_pos.
10517 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10518 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10519 (init_to_row_start): Renamed from init_iterator_to_row_start.
10520 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10521
10522 * xterm.c: Merge with 20.2.97.
10523 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10524
10525 * dispextern.h (struct glyph): Replace text_pos position with
10526 simple charpos.
10527
10528 * xdisp.c (this_line_start_pos): Use struct text_pos.
10529 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10530 (enum move_it_result): Renamed from move_iterator_result.
10531 (string_pos_nchars_ahead): Compute text_pos in a string from a
10532 known text_pos plus a character delta.
10533 (string_pos): Compute text_pos in string from charpos.
10534 (c_string_pos): Likewise for a C string.
10535 (number_of_chars): Return number of characters in a possibly
10536 multi-byte C string.
10537 (check_it): Renamed from check_iterator. Check that charpos and
10538 bytepos are in sync.
10539 (push_it): Renamed from save_iterator_settings.
10540 (pop_it): Renamed from restore_iterator_settings.
10541 (move_it_.*): Renamed from move_iterator_.*.
10542 (charset_at_position): Take charpos/bytepos into account.
10543 (back_to_previous_line_start): Set iterator to previous line start.
10544 (forward_to_next_line_start): Set iterator to next line start.
427ec082 10545 (back_to_previous_visible_line_start): Renamed from
26901792
DL
10546 move_iterator_previous_visible_line_start.
10547 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10548 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10549 Handle charpos/bytepos.
10550 (compute_face_at_iterator_position): Handle charpos/bytepos.
10551 (compute_face_at_iterator_string_position): Likewise.
10552 (get_iterator_space_width): Likewise.
10553 (load_overlay_strings): Likewise.
10554 (get_overlay_strings_at_iterator_position): Likewise.
10555 (reseat_iterator): Take a text_pos position argument.
10556 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10557 bytepos.
10558 (init_iterator): Take additional bytepos parameter.
10559 (reseat_iterator_to_string): Handle charpos/bytepos.
10560 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10561 (next_element_from_string): Handle charpos/bytepos.
10562 (next_element_from_c_string): Likewise.
10563 (fill_iterator_from_glyph_property): Likewise.
10564 (next_element_from_buffer): Likewise.
10565 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10566 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10567 (move_it_to): Likewise.
10568 (move_it_vertically_backward): Likewise.
10569 (move_it_vertically): Likewise.
10570 (move_it_by_lines): Likewise.
10571 (hscroll_window_tree): Likewise.
10572 (redisplay_internal): Likewise.
10573 (set_cursor_from_row): Likewise.
10574 (redisplay_window): Likewise.
10575 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10576 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10577 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10578 (try_window_id): Handle charpos/bytepos.
10579 (Ftrace_redisplay_toggle): Return Qnil.
10580 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10581 (insert_left_trunc_glyphs): Likewise.
10582
10583 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10584 do a real merge).
10585 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10586 (increment_glyph_row_buffer_positions): Ditto.
10587 (copy_glyph_row_contents): Ditto.
10588 (check_matrix_invariants): Add additional checks for charpos/
10589 bytepos consistency.
10590 (direct_output_for_insert): Changed for charpos/bytepos.
427ec082 10591 (buffer_posn_from_coords): Likewise. Put code dealing with
26901792
DL
10592 `direction-reversed' in #if 0.
10593
10594 * xterm.h: Merge with 20.2.97.
427ec082 10595
26901792
DL
10596 * frame.h: Merge with 20.2.97.
10597
10598 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10599
10600 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10601 start.
10602 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10603 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10604 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10605 (struct it): Various members renamed from .*pos to .*charpos.
10606 (IT_CHARPOS): Access current buffer character position of an
10607 iterator.
10608 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10609 (IT_STRING_CHARPOS): Access current string character position of
10610 an iterator.
10611 (IT_STRING_BYTEPOS): Access current string byte position of
10612 an iterator.
10613 (globally): Add function prototypes from 20.2.97.
10614
10615 * everywhere: Use P_ instead of PROTO for function prototypes
10616 because everyone else seems to use P_.
10617
10618 * dispextern.h (struct text_pos): Structure describing a charpos/
10619 bytepos position in text.
10620 (BYTEPOS): Access the byte position part of a text_pos.
10621 (CHARPOS): Likewise for the character position.
10622 (SET_TEXT_POS): Set a text_pos from a character and byte position.
10623 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
10624 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
10625 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
10626 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
10627 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
10628 for buffer and string positions.
10629 (struct glyph): Use text_pos.
10630 (struct it): Renamed from display_iterator. Use text_pos.
10631
106321998-07-23 Gerd Moellmann <gerd@gnu.org>
10633
10634 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
10635 pixmap.
10636
106371998-07-21 Gerd Moellmann <gerd@gnu.org>
10638
10639 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
10640 * xterm.c (x_draw_row_bitmaps): Use it.
10641 * dispnew.c (row_equal_p): Ditto.
10642 (update_window_line): Ditto.
10643
10644 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
10645 flag of images.
10646
10647 * dispextern.h (struct image): Removed member loading_failed_p.
10648 It's probably better to have the chance to try to load an image
10649 again.
10650
106511998-07-20 Gerd Moellmann <gerd@gnu.org>
10652
10653 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
10654 at ZV if `indicate-zv-lines' is non-nil.
10655 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
10656
10657 * dispnew.c (row_equal_p): Compare displays_text_p and
10658 ends_at_zv_p flags of rows.
10659 (update_window_line): Ditto.
10660
10661 * buffer.h (struct buffer): New member indicate_zv_lines.
10662
10663 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
10664 (init_buffer_once): New variable `default-indicate-zv-lines'.
10665 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
10666
10667 * xdisp.c (redisplay_window): Don't try moving the cursor
10668 if current glyph row w->last_cursor.vpos isn't enabled.
10669
10670 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
10671
10672 * window.c (Fset_window_vscroll): Allow only negative scroll
10673 values. Others don't seem to make sense, and this way it's easy
10674 to restore a vscroll of zero.
10675
10676 * xterm.c (x_inverted_image_mask): Check that pixmap could be
10677 allocated.
10678 (x_draw_image_glyph_string_background): Don't clip if pixmap
10679 could not be created.
10680
10681 * xfns.c (xbm_load_image_from_file): Check that pixmap could
10682 be created.
10683 (xbm_load): Ditto.
10684 (gs_load): Ditto.
10685
10686 * xterm.c (x_get_glyph_overhangs): Take image and stretch
10687 glyphs into account.
10688
10689 * xfaces.c (realize_default_face): Don't set font family of
10690 the default face from the fontset alias name for `fontset-startup'.
10691
10692 * xfns.c (gs_load): Pass frame's pixel foreground and background
10693 color to the Lisp loader.
10694
106951998-07-19 Gerd Moellmann <gerd@gnu.org>
10696
10697 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
10698 libtiff34.
10699
10700 * configure.in (--with-tiff, HAVE_TIFF): Added.
10701
10702 * config.in (HAVE_TIFF): Added.
10703
10704 * Makefile.in (LIBTIFF): Added.
10705
10706 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
10707
10708 * Makefile.in (LIBJPEG): Added.
10709
10710 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
10711 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
10712 jpeglib.h.
10713
427ec082 10714 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
26901792
DL
10715 where the library is installed in /usr/local/lib, e.g. FreeBSD,
10716 configure must be run with `--x-includes=/usr/X11R6/include:
10717 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
10718
107191998-07-18 Gerd Moellmann <gerd@gnu.org>
10720
10721 * config.in (HAVE_JPEG): Added.
10722
10723 * xfns.c (ct_init): Initialize color table used to map RGB colors
10724 from images to X pixel colors.
10725 (ct_free): Free color table.
10726 (ct_lookup): Look an RGB color up.
10727 (ct_allocated_colors): Get vector of allocated colors.
427ec082 10728 (pbm_image_p): Test if image specification is a valid PPM
26901792
DL
10729 image specification.
10730 (pbm_scan_number): Scan a decimal ASCII number from a file.
10731 (pbm_load): Load a PPM image.
10732
10733 * window.c (Fset_window_vscroll): Adjust glyph matrix if
10734 necessary. Take canonical character units as parameter.
10735 (Fwindow_vscroll): Return canonical character units.
10736
10737 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
10738 w->dy to display height for which glyph rows must be allocated.
10739
107401998-07-17 Gerd Moellmann <gerd@gnu.org>
10741
10742 * xfaces.c (face_at_string_position): Merge in region face
10743 so that it won't overwrite the font in the region.
10744 (face_at_buffer_position): Ditto.
10745 (realize_basic_faces): Don't realize region face.
10746
10747 * dispextern.h (enum face_id): REGION_FACE_ID removed.
10748
10749 * xterm.c (x_set_glyph_string_background_width): Don't let
10750 cursor face extend to end of line.
10751
10752 * xdisp.c (append_space): If adding space of default face,
10753 make sure glyph ist produced with right face.
10754
10755 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
10756 background color of a glyph string.
10757 (x_draw_glyph_string_background): Call it.
10758 (x_draw_glyph_string_bg_rect): Ditto.
10759 (x_draw_stretch_glyph_string): Ditto.
10760
107611998-07-15 Gerd Moellmann <gerd@gnu.org>
10762
10763 * xdisp.c (init_iterator): Initialize it->current_y to the
10764 window's vscroll w->dy.
10765
10766 * window.c (Fwindow_vscroll): Return number of pixels window
10767 is vscrolled smoothly.
10768 (Fset_window_vscroll): Set the number.
10769
10770 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
10771 to_pos in truncated part of a line.
10772
107731998-07-14 Gerd Moellmann <gerd@gnu.org>
10774
10775 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
10776 doesn't fit on the line, truncate it, despite truncate_lines nil.
10777 (display_line): Ditto.
10778
10779 * xfns.c: Experimental support for Ghostscript images.
10780
10781 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
10782 (XTread_socket): React on events from Ghostscript.
10783 (expose_frame): If width or height are zero, redraw entire frame.
10784 (XTread_socket): Call expose_frame after receiving event from
10785 Ghostscript.
10786
10787 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
10788 for Ghostscript support.
10789
10790 * xdisp.c (redisplay_internal): Return quickly if called
10791 recursively.
10792
10793 * alloc.c (NSTATICS): Increased to 1024.
10794
107951998-07-08 Gerd Moellmann <gerd@gnu.org>
10796
10797 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
10798 iterator's glyph row.
10799 (x_produce_stretch_glyph): Call it.
10800 (x_produce_glyphs): Handle `space-width' property; call
10801 x_append_stretch_glyph.
10802
10803 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
10804 property.
10805 (get_iterator_space_width): Determine value of `space-width'
10806 property at iterator's position.
10807 (reseat_iterator): Call it.
10808 (next_element_from_string): Ditto.
10809 (next_element_from_buffer): Ditto.
10810 (init_iterator): Initialize space_width of iterator.
10811 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
10812 moved, but cursor blinks.
10813 (redisplay_internal): Set w->last_cursor_off_p after update.
10814
10815 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
10816 (struct display_iterator): Add new member space_width.
10817
10818 * window.h (struct window): Add last_cursor_off_p.
10819
108201998-07-07 Gerd Moellmann <gerd@gnu.org>
10821
10822 * Saved.
10823
10824 * window.c (Fpos_visible_in_window_p): Case window not up to
10825 date---return nil if iterator hasn't reached position.
10826
108271998-07-06 Gerd Moellmann <gerd@gnu.org>
10828
10829 * xdisp.c (text_outside_line_unchanged_p): Fix case that
10830 overlays have changed.
10831 (redisplay_window): Case cursor movement. Don't try it if
10832 last_cursor.vpos is out of range.
10833
10834 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
10835 way, the display optimization for the line containing the cursor
10836 is used more frequently, esp. when we have a blinking cursor.
10837 (display_line): Don't set this_line_.* variables.
10838
10839 * xterm.c (x_redraw_cursor): Removed.
10840 (x_display_and_set_cursor): Set cursor type depending on
10841 cursor_off_p flag of window.
10842
10843 * dispnew.c (redraw_cursor_hook): Removed.
10844 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
10845 member of the selected window.
10846
10847 * xfaces.c (Fface_font): Added for compatibility with 20.2.
10848
10849 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
10850 Return glyph area under x/y.
10851 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
10852
10853 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
10854 after redisplaying.
10855
108561998-07-05 Gerd Moellmann <gerd@gnu.org>
10857
10858 * xdisp.c (text_outside_line_unchanged_p): Test if changes
10859 are all outside of a line of text.
10860 (redisplay_internal): Use it.
10861
108621998-06-30 Gerd Moellmann <gerd@gnu.org>
10863
10864 * xdisp.c (next_element_from_buffer): After skipping over
10865 invisible text, look for the `glyph' property.
10866 (set_iterator_stop_pos): Ignore check positions in front
10867 of an iterator's current position.
10868
10869 * xterm.c (show_mouse_face): Don't act on rows that don't exist
10870 anymore or which are marked as not having valid contents.
10871
10872 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
10873 realized faces if new attribute value is equal to old value.
10874
108751998-06-29 Gerd Moellmann <gerd@gnu.org>
10876
10877 * xfaces.c (Finternal_make_lisp_face): Increment
10878 lface_id_to_name_size when lface_id_to_name is reallocated.
10879
108801998-06-27 Gerd Moellmann <gerd@gnu.org>
10881
10882 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
10883 as minimum of endpos and overlay_pos.
10884 (load_overlay_strings): Set next_overlay_pos of iterator to
10885 -1 if we don't have to check for more overlay strings.
10886
108871998-05-09 Gerd Moellmann <gerd@gnu.org>
10888
10889 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
10890 do anything if iterator is at ZV because scan_buffer doesn't
10891 work otherwise.
10892
10893 * xterm.c (x_encode_char): Inline it.
10894 (x_get_char_font_and_encoding): Simplified.
10895 (x_per_char_metric): Inline it.
10896
10897 * xterm.c (x_draw_glyph_string_relief): Use clipping.
10898
10899 * xdisp.c (get_next_display_element): Check for end of relief
10900 face moved here from next_element_from_buffer.
10901
10902 * xterm.c (x_produce_image_glyph): Add relief thickness.
10903 (x_produce_stretch_glyph): Ditto.
10904
109051998-05-08 Gerd Moellmann <gerd@gnu.org>
10906
10907 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
10908 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
10909
10910 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
10911 from a glyph property.
10912 (x_produce_glyphs): Use it.
10913
10914 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
10915
427ec082 10916 * xterm.c (x_produce_image_glyph): Add to current_x only if
26901792
DL
10917 in text area.
10918 (x_produce_glyphs): Ditto.
10919
427ec082 10920 * xdisp.c (display_line): Compute row height from glyphs in
26901792
DL
10921 marginal areas.
10922
427ec082 10923 * xterm.c (x_draw_image_glyph_string_background): Draw
26901792 10924 background of an image glyph string.
427ec082 10925 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
26901792
DL
10926 the background of a glyph string.
10927 (x_draw_image_glyph_string_foreground): Draw the foreground of
10928 an image glyph string.
10929 (x_inverted_image_mask): Return the inverted mask of an image.
10930
10931 * xfns.c (x_draw_image): Removed.
10932
10933 * dispextern.h (struct image_type): Remove drawing function.
10934
10935 * xfaces.c (load_face_colors): Swap colors if face is inverse.
10936
10937 * xdisp.c (get_next_display_element): In marginal areas, translate
10938 newlines, tabs, etc. like normal control characters.
10939
10940 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
10941 and color.
10942 (free_realized_faces): Set frame garbaged.
10943
10944 * xfaces.c (syms_of_xfaces): Add defsubr for
10945 internal-lisp-face-attribute-values.
10946
109471998-05-07 Gerd Moellmann <gerd@gnu.org>
10948
10949 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
10950 full.
10951 (x_produce_image_glyph): Set IT->nglyphs to 1.
10952 (x_draw_image_glyph_string): Use inverted mask to draw background.
10953
10954 * dispextern.h (struct image_type): Additional clipping rect
10955 parameters for drawing functions.
10956
427ec082 10957 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
26901792
DL
10958 a glyph string.
10959 (x_draw_image_glyph_string): Use it and pass the rect to the
10960 image drawing function.
10961
10962 * xdisp.c (fill_iterator_from_glyph_property): Use position of
10963 first character with `glyph' property as image position. Set
10964 iterator back to that position as long as the image hasn't been
10965 consumed with set_iterator_to_next.
10966 (set_cursor_from_row): Accept when glyph with given position is
10967 not found in the row. Set cursor x to end of line in that case,
10968 so that we can hscroll.
10969 (redisplay_internal): Correct computation of delta by which
10970 positions have changed in redisplay optimization for cursor
10971 row of selected window.
10972
10973 * xdisp.c (display_line): Remove start_pos.
427ec082 10974 (display_line): Fix bug preventing display optimization for
26901792
DL
10975 cursor line of selected window.
10976 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
10977 instead.
10978
10979 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
10980 (update_text_area): Take glyph pixel width into account
10981 when trying to find a resync point.
10982 (row_equal_p): Compare glyphs in all areas.
10983
109841998-05-06 Gerd Moellmann <gerd@gnu.org>
10985
10986 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
10987
10988 * dispextern.h (struct glyph_row): Use unsigned hash value.
10989
10990 * xdisp.c (display_line): Simplified and made faster by setting
10991 the cursor with set_cursor_from_row.
10992 (set_cursor_from_row): Handle rows of desired matrix.
10993
109941998-05-05 Gerd Moellmann <gerd@gnu.org>
10995
10996 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
10997 with type != CHAR_GLYPH.
10998 (fill_iterator_from_glyph_property): Return void. Set
10999 method to next_element_from_image.
11000 (next_element_from_image): Dummy function for delivering a
11001 single image id.
11002 (set_iterator_to_next): Add method next_element_from_image.
11003 (redisplay_window): When recentering, and cursor vpos is -1
11004 after display, assume middle of window is in first line displayed
11005 in window, and display again.
427ec082 11006 (fill_iterator_from_glyph_property): Assign image glyph
26901792
DL
11007 the position of the first character having the glyph property.
11008
11009 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
11010 * xfns.c (x_draw_image): Use it.
11011 * xterm.c (x_produce_image_glyph): Use it.
11012
11013 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
11014
11015 * Makefile.in: Extraneous #define of LIBXPM removed.
11016
11017 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
427ec082 11018 (x_fill_stretch_glyph_string): Fill a glyph string from a
26901792
DL
11019 stretch glyph.
11020 (x_compute_glyph_string_overhangs): Compute overhangs only
11021 for text glyph strings.
11022 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
11023 (x_draw_glyph_string): Call it.
11024
11025 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
11026 (struct glyph): Add sub-structure for stretchable glyphs.
11027 (GLYPH_EQUAL_P): Compare glyph type and u.val.
11028
11029 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
11030 #ifdef HAVE_FACES.
11031
11032 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
11033
11034 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
11035 setup_iterator_from_glyph_property. Don't do it for terminal
11036 frames.
11037
11038 * xterm.c (x_produce_image_glyph): Produce glyph for image
11039 that can't be loaded.
11040
11041 * xfns.c (lookup_image): If image can't be loaded, set its
11042 width and height so that we can draw a rectangle.
11043 (x_draw_image): Draw a rectangle for images that don't have
11044 a pixmap.
11045 (make_image): Set hash value.
11046 (image_spec_equal_p): Use image_spec_value.
11047
11048 * xterm.c (expose_frame): Don't try to redraw if basic faces
11049 haven't benn realized yet.
427ec082 11050 (x_draw_image_glyph_string): Fill background only if image
26901792
DL
11051 is not as tall as row.
11052
110531998-05-04 Gerd Moellmann <gerd@gnu.org>
11054
11055 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
11056 (LIBX)[HAVE_X11]: Add LIBXPM.
11057
11058 * xfns.c (xpm_image_p): Implementation of image type functions
11059 for XPM.
11060 (xpm_load): Ditto.
11061
11062 * dispextern.h (struct image): Add mask pixmap for XPM.
11063
11064 * xfns.c (x_draw_image): Handle images with masks.
11065
11066 * configure.in: --with-xpm added. Code detecting -lXpm added.
11067
11068 * config.in: Add HAVE_XPM.
11069
11070 * xfns.c (xbm_draw): Removed.
11071 (x_draw_image): Default implementation for drawing images.
11072 (xbm_keyword_index): Remove XBM_DEPTH.
11073 (xbm_format): Remove `:depth'.
11074 (xbm_image_spec_from_file): Removed to reduce consing.
427ec082 11075 (xbm_load_image_from_file): Added for the same reason.
26901792 11076
427ec082 11077 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
26901792
DL
11078 glyph string.
11079 (x_draw_image_glyph_string): Pass ybase to image draw function.
11080
11081 * xfns.c (make_image): Set default baseline.
11082
11083 * xterm.c (x_produce_image_glyph): Compute ascent of image
11084 from its height and baseline percentage.
11085
11086 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11087 (xbm_format): Add description for `:baseline'.
11088 (xbm_image_spec_from_file): Add keywords from original spec to
11089 result.
11090 (xbm_load): Set baseline of image.
11091 (xbm_image_p): Check range for baseline.
11092
11093 * dispextern.h (struct image): Add member baseline.
11094
11095 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11096
11097 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11098
11099 * xdisp.c (get_next_display_element): Do character translations
11100 only if delivering characters.
11101
111021998-05-03 Gerd Moellmann <gerd@gnu.org>
11103
427ec082 11104 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
26901792
DL
11105 DISP_CHARACTER.
11106
11107 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11108 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11109
111101998-05-02 Gerd Moellmann <gerd@gnu.org>
11111
11112 * xfns.c (prepare_image_for_display): Set image timestamp.
11113 (clear_image_cache): Clear images if image's timestamp +
11114 Vimage_eviction_seconds is > now.
11115 (syms_of_xfns): New variables image-eviction-seconds, and
11116 image-types.
11117 (add_image_format): Add to image-types.
11118 (xbm_load): Support new image spec format.
11119 (x_alloc_image_color): Allocate a color for an image.
11120
11121 * dispextern.h (struct image): Add timestamp.
11122
11123 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11124 vectors of bool-vectors.
11125 (xbm_lisp_object_from_file): Build new format image spec.
11126
111271998-05-01 Gerd Moellmann <gerd@gnu.org>
11128
11129 * xfaces.c (init_frame_faces): Initialize image cache.
11130 (free_frame_faces): Free it.
11131
11132 * xterm.c (x_delete_display): Don't free image cache.
11133
11134 * emacs.c (main): Call init_xfns.
11135
111361998-04-30 Gerd Moellmann <gerd@gnu.org>
11137
11138 * alloc.c (mark_object): Mark objects in image cache.
11139
427ec082 11140 * xfns.c (x_set_internal_border_width): Correct call to
26901792
DL
11141 widget_store_internal_border_width.
11142
11143 * widget.c (widget_store_internal_border): Return void.
11144
11145 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11146 void.
11147 (init_x_parm_symbols): Return void.
11148 (x_report_frame_params): Ditto.
11149 (x_set_border_pixel): Ditto.
11150 (syms_of_xfns): Ditto.
11151 (x_destroy_all_bitmaps): Use xfree instead of free.
11152
11153 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11154
11155 * xterm.c (x_term_init): Initialize image_cache of display info.
11156 (x_delete_display): Free image cache.
11157
11158 * xterm.h (struct x_display_info): Add image_cache.
11159
11160 * xfns.c (make_image_cache): Allocate a new image cache.
11161 (free_image_cache): Free an image cache.
11162 (make_image): Allocate an image.
11163 (free_image): Free an image.
11164
11165 * dispextern.h (struct image): Structure describing an image.
11166 (struct image_cache): Structure describing an image cache.
11167
111681998-04-29 Gerd Moellmann <gerd@gnu.org>
11169
11170 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11171 non-zero if iterator is filled with something to return.
11172 (next_element_from_buffer): Immediately return if
11173 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11174 (next_element_from_string): Likewise.
11175
11176 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11177
11178 * dispextern.h (struct glyph): Add pixmap_id.
11179 (display_element_type): Add DISP_PIXMAP.
11180
11181 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11182 malloc/free.
11183
11184 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11185 (clear_face_cache): Call it.
11186
11187 * xterm.c (x_query_font): Don't look at empty font table slots.
11188 (x_compute_min_glyph_bounds): Likewise.
11189 (x_term_init): Initialize font_table to null.
11190 (x_load_font): Change allocation of font_info structures so
11191 that it is possible to free fonts.
11192
427ec082 11193 * xfns.c (Fx_close_connection): Use xfree instead of free.
26901792
DL
11194 Only free fonts from filled font table entries.
11195
11196 * xfaces.c (best_matching_font): Support use of scalable fonts.
11197 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11198
11199 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11200 and resy.
11201 * xterm.c (x_term_init): Compute resx and resy.
11202
11203 * xfaces.c (split_font_name): Don't reject scalable fonts.
11204
427ec082 11205 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
26901792
DL
11206 in #if 0.
11207
11208 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11209 point size cannot be determined.
11210
11211 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11212 width over all fonts on a frame.
11213 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11214 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11215 macros.
11216
11217 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11218 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11219 (x_load_font): Use x_compute_min_char_bounds.
11220
11221 * xterm.h (struct x_display_info): New members smallest_char_width
11222 and smallest_font_height.
11223
112241998-04-28 Gerd Moellmann <gerd@gnu.org>
11225
11226 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11227 the same name if GC of face is zero.
11228
11229 * dispextern.h (struct face): Member non_ascii_gc removed.
11230
11231 * xterm.c (x_get_char_font_and_encoding): Return face's font
427ec082 11232 for characters < 0177 in default face. Prepare face for
26901792
DL
11233 display before returning it.
11234 (x_produce_glyphs): Use it->charset.
11235 (x_get_char_font_and_encoding): Simplified.
11236 (x_encode_char): Remove parameter `font'.
11237
11238 * xfaces.c (choose_face_font): If registry from charset symbol
11239 doesn't contain a `-', make it a pattern by appending "*-*".
11240
11241 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11242 glyph_check_pos computation to character boundary.
11243
112441998-04-27 Gerd Moellmann <gerd@gnu.org>
11245
11246 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11247
11248 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11249 ASCII face for a given Lisp face id.
11250
11251 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11252 account.
427ec082 11253 (reseat_iterator): Set glyph_check_pos. Handle case where
26901792
DL
11254 new position is < original position.
11255 (check_iterator_glyph_property): Handle glyph property in strings.
11256 (next_element_from_string): Call above function.
11257 (next_element_from_display_vector): Handle faces in glyphs.
11258 (get_next_display_element): Set face_id of glyphs for
11259 control chars to zero.
11260
11261 * Makefile.in (term.o): Add dependency on dispextern.h.
11262
11263 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11264 (display_line): Handle marginal areas.
11265 (move_iterator_in_display_line_to): Likewise.
11266
11267 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11268
11269 * xfaces.c (face_at_buffer_position): Don't merge with nil
11270 text property.
11271 (face_at_string_position): Ditto.
11272
11273 * dispextern.h (struct display_iterator): Use a stack of saved
11274 values instead of saving check positions etc. individually.
11275
11276 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11277 maybe pop the iterator's stack.
11278 (save_iterator_settings): Push a value on iterator's stack.
11279 (get_overlay_strings_at_iterator_position): Use it.
11280 (restore_iterator_settings): Pop the stack.
11281 (set_iterator_to_next_overlay_string): Use it.
11282
11283 * xfaces.c (try_font_list): Use alternative font families.
11284
112851998-04-26 Gerd Moellmann <gerd@gnu.org>
11286
11287 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11288 font selection matches fonts.
11289 (Fface_font_sort_order): Return the font sort order.
11290 (best_matching_font): Find best matching font based on sort order.
11291 (cmp_font_names): Sort by given sort order.
11292
11293 * dispextern.h (struct display_iterator): New member faces_p.
11294 * xdisp.c (init_iterator): Initialize it->faces_p.
11295 (compute_face_at_iterator_string_position): Use it.
11296 (compute_face_at_iterator_position): Use it.
11297 (init_iterator): Use it.
11298 (display_mode_line): Ditto.
11299
11300 * xdisp.c (get_next_display_element): Put code choosing a face
11301 when the charset changes in #ifdef HAVE_FACES.
11302
427ec082 11303 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
26901792
DL
11304 lookup_face_for_charset.
11305
11306 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11307 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11308
113091998-04-25 Gerd Moellmann <gerd@gnu.org>
11310
11311 * xfaces.c (best_matching_font): Return the name of the best
11312 matching font in an array of font_name structures.
11313 (choose_face_font): Use it.
11314 (choose_face_fontset_font): Use it.
11315 (find_best_weight_font): If final font found has same weight as
11316 the font we started with, return the original font because it is a
11317 better match for the resolution of the display.
11318 (find_best_slant_font): Likewise.
11319 (merge_face_vector_with_property): Check more invalid attribute
11320 values.
11321 (lface_suitable_for_charset_p): Replaced by a macro with the same
11322 name in upper-case.
11323
113241998-04-24 Gerd Moellmann <gerd@gnu.org>
11325
11326 * dispextern.h (struct face): Member
11327 fontset_chosen_for_realization_p removed.
11328
11329 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11330 end of the collision list, so that we find more specific faces
11331 first.
11332 (lookup_face_for_charset): Look up a new face if face->fontset >=
11333 0, and charset != CHARSET_COMPOSITION.
11334
11335 * xfaces.c (split_font_name): Return zero if point size of font
11336 couldn't be computed.
11337 (realize_default_face): Use ASCII font of a fontset to determine
11338 font-related attributes of the default face.
11339 (face_fontset): Return fontset id for face family.
11340 (font_list): Additional parameter font_pattern. If non-nil,
11341 return fonts matching that pattern.
11342
113431998-04-23 Gerd Moellmann <gerd@gnu.org>
11344
11345 * xfaces.c (choose_face_fontset): If new fontset cannot be
11346 constructed, or fontset name cannot be split, return the id of the
11347 standard fontset.
11348
11349 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11350 When Emacs starts, it may be called for the initial frame which
11351 isn't an X frame.
11352
11353 * dispextern.h (struct face): New members foreground_defaulted_p,
11354 background_defaulted_p.
11355 (struct face): Members `mask' and `cache' removed.
11356
11357 * xfaces.c (load_color): Set them.
11358 (free_face_colors): Check them.
427ec082 11359 (xlfd_point_size): Return -1 if resolution or point size of
26901792
DL
11360 font unknown.
11361
11362 * xfaces.c (free_font): Removed.
11363 (load_face_font_or_fontset): Renamed from load_font.
11364 (load_face_font_or_fontset): Use message2 instead of signalling.
11365 (load_color): Likewise.
11366 (load_pixmap): Likewise.
11367
11368 * xterm.h (struct x_display_info): Add screen_dpi.
11369 * xterm.c (x_term_init): Initialize it.
11370 * xfaces.c (xlfd_point_size): Use it.
11371 (split_font_name): Compute numeric XLFD_RESY.
427ec082 11372 (cmp_font_names): Make fonts with an y-resolution more
26901792
DL
11373 similar to that of the frame appear first in the result.
11374
11375 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11376 is set for the face to cache, add it to the end of the collision
11377 list.
11378 (try_font_list): If fonts for given family and registry cannot
11379 be found, first try to keep the registry, and choose a different
11380 family.
11381 (choose_face_font): Allow nfonts == 0.
11382 (try_font_list): Give up if no font matches given registry.
11383
113841998-04-22 Gerd Moellmann <gerd@gnu.org>
11385
11386 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11387 font info id of the face.
11388
11389 * xfaces.c (load_font): Set font_info_id.
11390 (realize_face): Ditto.
11391
11392 * dispextern.h (struct face): Change member font_info to
11393 font_info_id.
11394
11395 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11396 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11397
11398 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11399 isn't ASCII, get the ASCII face before adding a space.
11400 (append_space): Likewise.
11401 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11402 to -1 so that it will compute the right face for the truncation
11403 glyphs.
11404
11405 * xfaces.c (realize_face): Set
11406 face->fontset_chosen_for_realization_p.
11407 (lookup_face_for_charset): If fontset wasn't specified originally
11408 and new charset != CHARSET_COMPOSITION, get a new face for that
11409 charset.
11410
11411 * dispextern.h (struct face): New member
11412 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11413 realize_face has chosen a fontset to display composite characters
11414 for a Lisp face not specifying a fontset.
11415
11416 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11417 face and line already filled here. Don't do anything if current
11418 face hasn't a relief or has a background equal to the frame
11419 background.
11420
11421 * xfaces.c (split_font_name): Additional parameter numeric_p.
11422 Don't compute numeric values if it is non-zero.
11423 (choose_face_fontset): Call split_font_name with numeric_p == 0.
427ec082 11424 (choose_face_fontset): Print a message if fontset contains a
26901792
DL
11425 font whose name cannot be split into fields.
11426
114271998-04-21 Gerd Moellmann <gerd@gnu.org>
11428
427ec082 11429 * xfaces.c (try_font_list): Try to load a list of fonts,
26901792
DL
11430 possibly using less restrictive patterns.
11431 (choose_face_font): Use it.
11432
11433 * xterm.c (x_get_char_font_and_encoding): For charset !=
11434 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11435
11436 * dispextern.h (struct face): New member font_info.
11437
11438 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11439 specifying a fontset as well as those not having a fontset.
11440 (free_font): Make it empty.
11441 (realize_face): Use changed load_font.
11442
11443 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11444 fit for charset, get the right one.
11445
11446 * xfaces.c (load_font): Take frame and name parameter, return
11447 font.
11448 (free_font): Likewise.
11449 (split_font_name): Compute numeric values for height, swidth etc.
11450 (cmp_font_names): Use them.
11451 (find_best_width_font): Ditto.
11452 (find_best_height_font): Ditto.
11453 (find_best_weight_font): Ditto.
11454 (find_best_slant_font): Ditto.
11455 (lface_hash): Add weight, slant, swidth and relief to hash value.
11456 (lface_equal_p): Make it faster.
11457 (lface_from_symbol): Use assq_no_quit.
11458 (Fnote_default_face_changed): Removed.
11459 (cmp_font_names): Use strcmp instead of xstricmp.
11460 (face_charset_registries): Removed.
11461
114621998-04-20 Gerd Moellmann <gerd@gnu.org>
11463
11464 * frame.h (CHECK_FRAME): Give this macro a statement form.
11465 (CHECK_LIVE_FRAME): Ditto.
11466
11467 * xfaces.c (find_best_width_font): Find the best matching font
11468 for a given width.
11469 (find_best_height_font): Likewise for height.
11470 (find_best_weight_font): Likewise for weight.
11471 (find_best_slant_font): Likewise for slant.
11472 (choose_face_font): Use them.
11473 (get_lface_attributes): Always return frame-local face attrs.
427ec082 11474 (Finternal_merge_in_global_face): Merge local face with
26901792
DL
11475 global face attributes.
11476
11477 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11478 Lisp face attributes.
11479
114801998-04-19 Gerd Moellmann <gerd@gnu.org>
11481
11482 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11483 and :italic for compatibility.
11484 (Finternal_set_lisp_face_attribute_from_resource): Handle
427ec082 11485 :bold and :italic. Handle boolean resource values for
26901792
DL
11486 :underline and :italic.
11487
11488 * xfns.c (display_x_get_resource): Make it externally visible.
11489
11490 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11491 If that frame is non-null, return the frame-local face.
11492 (Finternal_make_lisp_face): Additional frame argument.
11493 (lface_attributes): Get face attributes from global and frame-local
11494 definitions.
11495 (Finternal_lisp_face_equal_p): Additional frame argument.
11496 (merge_lisp_face_vector_with_property): Ditto.
11497 (Frealize_basic_faces): Removed.
11498 (Finternal_get_lisp_face_attribute): Additional frame argument.
11499 (Finternal_lisp_face_p): Ditto.
11500 (load_color) [MSDOS]: Removed because it isn't clear how
11501 to do this for MS-DOS.
11502
11503 * xfaces.c (lface_from_symbol): Get global face definition
11504 from face-global-alist.
11505
11506 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11507 as values for :underline and :inverse-video.
11508 (Finternal_set_lisp_face_attribute): Allow nil values.
11509
115101998-04-17 Gerd Moellmann <gerd@gnu.org>
11511
11512 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11513
11514 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11515 (Finternal_make_lisp_face): Add new face to Vall_faces.
11516
11517 * xdisp.c (echo_area_display): Remove code recomputing faces.
11518 (redisplay_internal): Ditto.
11519 (init_iterator): Do it here.
11520
11521 * xfaces.c (choose_face_font): Check that swidth doesn't change
11522 for subusequent attributes.
11523 (xlfd_point_size): Return int.
11524
11525 * xdisp.c (redisplay_internal, echo_area-display): If realized
11526 faces have been cleared, call recompute_basic_faces.
11527
11528 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11529 face_attributes_changed_p.
427ec082 11530 (remove_all_realized_faces): Remove all realized faces on
26901792
DL
11531 all frames.
11532 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11533
11534 * xdisp.c (redisplay_internal): If face attributes have been
11535 changed since the last redisplay, recompute basic faces.
11536 (echo_area_display): Ditto.
11537
11538 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11539
11540 * xfaces.c (min_char_bounds): If face cache not yet present,
11541 don't try to get font dimensions from faces.
11542
11543 * xterm.c (x_frame_mode_line_height): If face cache not present
11544 set, return default height.
11545
11546 * alloc.c (mark_face_cache): Check for null faces. Correct
11547 index bug.
11548
11549 * dispextern.h (struct face): Renamed from struct rface. Member
11550 underline renamed underline_p. Make it a bit-field.
11551
11552 * xfaces.c (init_frame_faces): Allocate face cache.
11553 (free_frame_faces): Free face cache.
11554 (recompute_basic_faces): Realize basic faces only if face cache is
11555 allocated, i.e. after init_frame_faces has been called.
11556
11557 * frame.c (make_frame): Initialze face cache with null.
11558
11559 * xfaces.c (same_size_fonts): Removed.
11560
427ec082 11561 * xterm.c (x_set_glyph_string_gc): Add post-condition
26901792
DL
11562 s->gc != 0.
11563 (x_set_mouse_face_gc): Ditto.
11564 (x_set_mode_line_face_gc): Ditto.
11565
427ec082
SS
11566 * xfaces.c (realize_default_face): Return int. Value is
11567 zero if frame params don't contain enough information to
26901792
DL
11568 realize the default face.
11569 (realize_basic_faces): Ditto.
11570 (init_frame_faces): Realize basic faces.
11571
11572 * xfns.c (x_set_font): First store real font name in frame
11573 parameters, then call recompute_basic_faces.
11574
11575 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11576
115771998-04-16 Gerd Moellmann <gerd@gnu.org>
11578
11579 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11580
11581 * xfns.c (Fx_face_fixed_p): Removed.
11582 (Fx_list_fonts): Moved to xfaces.c.
11583
11584 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11585 face_at_buffer_position. Parameter charset removed; always
11586 compute face for CHARSET_ASCII.
11587 (face_at_string_position): Renamed from
11588 compute_face_at_string_pos. Parameter charset removed; always
11589 compute for CHARSET_ASCII.
427ec082 11590 (lookup_face_for_charset): Take frame parameter instead of
26901792
DL
11591 face_cache.
11592 (lookup_face): Ditto.
11593 (compute_char_face): Renamed from compute_glyph_face.
11594
11595 * xdisp.c (init_iterator): Initialize charset member.
11596 (reseat_iterator_to_string): Ditto.
11597 (get_charset_at_buffer_position): Determine charset at
11598 buffer position in current_buffer.
11599 (reseat_iterator): Call above function.
11600 (compute_face_at_iterator_position): Call
11601 compute_face_at_buffer_pos.
11602 (compute_face_at_iterator_string_position): Call
11603 compute_face_at_string_pos.
11604 (get_face_from_id): Removed.
11605 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11606 Call get_charset_at_buffer_position.
11607 (reseat_iterator): Determine face if charset at pos differs
11608 from iterator's charset.
11609 (reseat_iterator_to_glyph_pos): Removed.
11610
11611 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11612 Determine charset from buffer position.
11613 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11614 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11615
11616 * dispextern.h (struct display_iterator): Add member charset.
11617
116181998-04-15 Gerd Moellmann <gerd@gnu.org>
11619
11620 * xfaces.c (compute_char_face): Removed.
11621
11622 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
11623 with new parameter list.
11624
11625 * xfaces.c (region_face): Removed.
11626 (allocate_face): Removed.
11627 (copy_face): Ditto.
11628 (face_eql): Removed.
11629 (intern_face): Removed.
11630 (clear_face_cache): Removed.
11631 (load_font): Ditto.
11632 (unload_font): Ditto.
11633 (load_color): Ditto.
11634 (unload_color): Ditto.
11635 (new_computed_face): Ditto.
11636 (intern_computed_face): Ditto.
11637 (ensure_face_ready): Ditto.
11638 (merge_faces): Ditto.
11639 (compute_base_face): Ditto.
11640 (merge_face_list): Ditto.
11641 (Fmake_face_internal): Removed.
11642 (Fset_face_attribute_internal): Ditto.
11643 (face_name_id_number): Removed.
11644 (Fframe_face_alist): Ditto.
11645 (Fset_frame_face_alist): Ditto.
11646 (Finternal_next_face_id): Ditto.
11647
11648 * xterm.h (struct x_output): Remove computed_faces, and
11649 param_faces. Remove macros accessing them.
11650
11651 * xfaces.c: Entirely new face implementation added.
11652
116531998-04-11 Gerd Moellmann <gerd@gnu.org>
11654
11655 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
11656 `charpos'.
11657
116581998-04-10 Gerd Moellmann <gerd@gnu.org>
11659
11660 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
11661 scroll bar window to reduce flickering. Clear entire height.
11662
11663 * xdisp.c (move_iterator_vertically_backward): Set iterator's
11664 current_x and hpos to zero after moving to previous line
11665 start.
11666
116671998-04-03 Gerd Moellmann <gerd@gnu.org>
11668
11669 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
11670
11671 * xfaces.c (xlfd_point_size): Compute relative point size of
11672 fonts from font and frame resolution.
11673 (sort_fonts): New function to sort fonts, temporarily setting
11674 font_frame to the frame in effect.
11675 (xlfd_point_size): Take additional frame parameter to be able
11676 to get at the display's resolution.
11677
11678 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
11679 BLACK_PIX_DEFAULT.
11680 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
11681 screen of display.
11682
116831998-03-31 Gerd Moellmann <gerd@gnu.org>
11684
11685 * xfaces.c (choose_face_fontset): Instantiate fontsets.
11686
11687 * fontset.h: Add external declarations for Vfontset_alias_alist
11688 and Vglobal_fontset_alist.
11689
11690 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
11691 (realize_default_face): If frame parameters contain an artificial
11692 font name naming a fontset, set the family of the default face to
11693 the fontset name given by the registry.
11694
11695 * Makefile.in (alloc.o): Add dependency to dispextern.h.
11696
116971998-03-22 Gerd Moellmann <gerd@gnu.org>
11698
11699 * alloc.c (mark_object): Add function prototype. Add cast to
11700 Lisp_Object pointer in call to mark_object for symbol names
11701 because this otherwise gives a warning from gcc 2.8.1.
11702 (mark_face_cache): Mark Lisp objects in realized faces.
11703
117041998-03-19 Gerd Moellmann <gerd@gnu.org>
11705
11706 * frame.h (struct frame): Add member face_cache.
11707
11708 * alloc.c (mark_object): Mark face cache.
11709 (mark_face_cache): Mark Lisp faces in face cache of frame.
11710
11711 * frame.c (make_frame): Initialize face_cache.
11712 (Fdelete_frame): Free it.
11713
117141998-03-18 Gerd Moellmann <gerd@gnu.org>
11715
11716 * xfaces.c: Very first skeleton of functions for face realization,
11717 face merging, face cache etc.
11718
11719 * dispextern.h (struct rface): Realized faces. Will replace
11720 struct face when tested.
11721 (struct face_cache): Realized face caches.
11722
11723 * xdisp.c (init_iterator): Initialize area member of display
11724 iterator.
11725
117261998-03-17 Gerd Moellmann <gerd@gnu.org>
11727
11728 * xterm.c (x_append_glyph): Use it->area to store glyphs.
11729
11730 * dispextern.h (struct display_iterator): New member area.
11731
11732 * xterm.c (note_overwritten_text_cursor): Note when the text
11733 cursor of a window is overwritten.
11734
11735 * xdisp.c (set_cursor_from_row): If PT is not found in the
11736 row, display the cursor at the start of the row.
11737
11738 * dispnew.c (direct_output_forward_char): Call
11739 set_cursor_from_row.
11740
11741 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
11742 position is not in an overlay string, set iterator's position and
11743 method explicitly so.
427ec082 11744 (set_cursor_from_row): Correct cursor position calculation.
26901792
DL
11745 Make it externally visible.
11746 (redisplay_window): Call set_cursor_from_row so that there is only
11747 one place where the cursor position is calculated from a current
11748 row.
11749
11750 * dispextern.h (struct display_iterator): New member
11751 overlay_strings_at_end_processed_p.
11752
11753 * xdisp.c (check_iterator): Perform sanity checks on
11754 display_iterators.
11755 (next_element_from_buffer): Check for overlay strings at ZV.
11756
117571998-03-16 Gerd Moellmann <gerd@gnu.org>
11758
11759 * buffer.c (init_buffer_once): Add left_margin_width and
11760 right_margin_width to buffer_local_flags.
11761
11762 * dispnew.c (margin_glyphs_to_reserve): Function computing
11763 number of glyphs to reserve for a marginal area.
11764 (adjust_glyph_matrix): Call it.
11765 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
11766 is not alive.
11767
11768 * window.c (Fset_window_margins): Allow floats.
11769
11770 * buffer.c (syms_of_buffer): Add buffer-local variables
11771 left-margin-width and right-margin-width. Add defaults
11772 default-left-margin-width and default-right-margin-width.
11773
11774 * buffer.h (struct buffer): New members left_margin_width
11775 and right_margin_width.
11776
11777 * window.c (Fset_window_margins): Make window the last and
11778 optional argument.
11779
11780 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
11781 flag no_marginal_areas_p differently.
11782 (x_clear_end_of_line): Ditto.
11783 (x_draw_glyph_string_relief): Compute width of relief differently
11784 for rows with flag no_marginal_areas_p.
11785
11786 * dispnew.c (update_window_line): Update marginal areas only
11787 for rows that don't have no_marginal_areas_p set.
11788
11789 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
11790 (display_menu_bar): Ditto.
11791
11792 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
11793
11794 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
11795 marginal areas in window-based redisplay.
11796
11797 * dispextern.h (struct glyph_matrix): New members
11798 left_margin_glyphs and right_margin_glyphs.
11799
118001998-03-15 Gerd Moellmann <gerd@gnu.org>
11801
11802 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
11803
11804 * charset.c (non_ascii_char_to_string): Use char type parameters
11805 because the function is used that way from outside. Use unsigned
11806 char internally.
11807
11808 * window.c (change_window_height): Return void.
11809 (make_dummy_parent): Return void.
11810 (init_window_once): Return void.
11811 (syms_of_window): Ditto.
11812 (keys_of_window): Ditto.
11813 (delete_window): Correct return with and without value.
11814
11815 * buffer.c (record_buffer): Return void.
11816
11817 * marker.c (unchain_marker): Return void.
11818
11819 * window.c (unshow_buffer): Return void.
11820 (replace_window): Ditto.
11821 (delete_window): Ditto.
11822
11823 * term.c (delete_glyphs_hook): Void return type.
11824 (ring_bell_hook): Ditto.
11825 (set_terminal_window_hook): Ditto.
11826
11827 * sysdep.c (init_sigio): Return void.
11828
11829 * xterm.c (x_set_window_size): Return void.
11830 (x_calc_absolute_position): Ditto.
11831 (x_set_offset): Ditto.
11832 (x_focus_on_frame): Ditto.
11833 (x_unfocus_frame): Ditto.
11834 (x_make_frame_visible): Ditto.
11835 (x_make_frame_invisible): Ditto.
11836 (x_iconify_frame): Ditto.
11837 (x_destroy_window): Ditto.
11838 (x_wm_set_window_state): Ditto.
11839 (x_wm_set_icon_pixmap): Ditto.
11840 (x_wm_set_icon_position): Ditto.
11841 (x_initialize): Ditto.
11842 (x_error_quitter): Ditto.
11843 (x_destroy_window): Use xfree instead of free.
11844
11845 * keyboard.c (clear_waiting_for_input): Return void.
11846
11847 * xterm.c (x_wm_set_size_hint): Return void.
11848 (x_raise_frame): Ditto.
11849 (refreshicon): Ditto.
11850 (x_error_catcher): Ditto.
11851 (x_clear_errors): Ditto.
11852
11853 * keyboard.c (record_asynch_buffer_change): Return void.
11854
11855