(re_match, re_match_2): Protect calls to alloca (0).
[bpt/emacs.git] / src / ChangeLog
CommitLineData
074b6efe
DL
12000-06-20 Dave Love <fx@gnu.org>
2
f85c008a
DL
3 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
4 HAVE_GETTIMEOFDAY.
5
6 * m/ibmrt-aix.h:
7 Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
8
9 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare
10 HAVE_GETWD.
11
12 * m/alpha.h: Don't declare xmalloc, xrealloc.
13
0af4f205
DL
14 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
15
16 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
17
18 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
19
20 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
21 HAVE_GETWD.
22
074b6efe
DL
23 * keyboard.h (poll_for_input_1): Declare.
24
25 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
26
27 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
28
29 * doprnt.c: Don't declare xmalloc, xrealloc.
30
31 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
32 (getenv, ctime, getwd): Removed.
33 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
34
35 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
36 x_set_tool_bar_lines.
37
38 * config.in: Add HAVE_GETWD. Move some definitions above
39 machine/system includes.
40
68a5e97b
KH
412000-06-20 Kenichi Handa <handa@etl.go.jp>
42
95417e1e
KH
43 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
44
68a5e97b
KH
45 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
46 contain information about ENCODING.
47
48 * fontset.c (FONTSET_ASCII): Use the first element of char table
49 for an ASCII font, not defalt slot.
50 (fontset_ref_via_base): If FONTSET doesn't contain information for
51 C, try the default fontset.
52 (make_fontset): Don't copy the default fontset.
53 (fontset_font_pattern): Likewise.
54 (accumulate_font_info): If ELT is nil, use the corresponding
55 element in the default fontset.
56
3b4fa1b2
DL
572000-06-19 Dave Love <fx@gnu.org>
58
943e731c
DL
59 * syntax.c (Fparse_partial_sexp): Doc fix.
60
61 * regex.h: Test PROTOTYPES as well as __STDC__.
62
3b4fa1b2
DL
63 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
64 errno, strerror. Put text after #endif in comment.
65
66 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
67 pcc).
68
69 * xterm.c (x_frame_of_widget): Likewise.
70
cdf0357b
GM
712000-06-19 Gerd Moellmann <gerd@gnu.org>
72
73 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
74 to Vfundamental_mode_abbrev_table.
75
76 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
77 bogus objects are marked. This slows down GC by ~80 percent, but
78 it might be worth trying when debugging GC-related problems.
79 This feature requires conservative stack marking to be enabled.
80
81 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
82 returns XLookupChars, reset `modifiers' to zero.
83
998e9f8c
DL
842000-06-19 Dave Love <fx@gnu.org>
85
86 * mktime.c: Unprotoized.
87
d1504184
GM
882000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
89
90 * data.c (set_internal): If variable is frame-local,
91 store the new value immediately into the frame parameter alist.
92
140c4ac6
KR
932000-06-19 Ken Raeburn <raeburn@gnu.org>
94
14358466
KR
95 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
96 in the custom handler pointer.
97
140c4ac6
KR
98 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
99 value, or checks for CHAR_META can fail when Lisp_Object is a
100 union type.
101 * keymap.c (get_keyelt): Likewise.
102
10d7bf84
KH
1032000-06-19 Kenichi Handa <handa@etl.go.jp>
104
105 * ccl.h (struct ccl_program): New member eol_type.
106 (struct ccl_spec): New member cr_carryover.
107
108 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
109 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
110
111 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
112 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
113 (decode_eol_post_ccl): New function.
114 (decode_coding): Don't detect EOL format here for CCL based coding
115 systems.
116 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
117 decode_eol_post_ccl after running the CCL program.
118 (code_convert_region): Don't detect EOL format here for CCL based
119 coding systems.
120 (decode_coding_string): Likewise.
121
52e386c2
KR
1222000-06-18 Ken Raeburn <raeburn@gnu.org>
123
124 * charset.c (update_charset_table): Use XINT on "iso_final_char"
125 when treating it as an integer.
126
127 * coding.h (encode_coding_string): Declare.
128
129 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
130 it as an integer.
131
132 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
133 "xkeymap" to avoid shadowing the "enum map_type" value that needs
134 to be passed to get_local_map.
135
136 * sound.c (Fplay_sound): Don't call make_number on
137 Frun_hook_with_args count argument.
138
139 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
140 for lisp objects in X event structure data field, when lisp
141 objects are represented with unions.
142 (x_scroll_bar_to_input_event): Ditto.
143
b357b9d4
KR
1442000-06-16 Ken Raeburn <raeburn@gnu.org>
145
146 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
147 termination of string. Fix sense of test whether
148 Vline_number_display_limit is an integer.
b357b9d4 149
a871441d
GM
1502000-06-16 Gerd Moellmann <gerd@gnu.org>
151
a9021acd
GM
152 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
153 only if HAVE_X_WINDOWS.
154
6344985d
GM
155 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
156 of titles.
157
a871441d
GM
158 * dispnew.c (update_frame_1): Handle case that cursor vpos is
159 out of bounds.
160
228b083e
EZ
1612000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
162
163 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
164 of its headers.
165
c25b53a2
KH
1662000-06-15 Kenichi Handa <handa@etl.go.jp>
167
168 * coding.c (decode_coding_emacs_mule): Always set src_base at the
169 start of the while loop.
170
a6981b11
GM
1712000-06-15 Gerd Moellmann <gerd@gnu.org>
172
e9924e52
GM
173 * atimer.c (alarm_signal_handler): Add forward declaration.
174
a6981b11
GM
175 * data.c (set_internal): Remove debug code.
176
25fa6deb
GM
1772000-06-14 Gerd Moellmann <gerd@gnu.org>
178
dce6b995
GM
179 * Makefile.in (bootstrap-temacs): Add `-I../src'.
180
9f817ea4
GM
181 * unexec.c (toplevel) [COFF]: Include coff.h.
182
183 * s/lynxos.h: New file.
184
185 * keymap.c (Fsingle_key_description): Enclose function key and
186 event symbol names in angle brackets.
187
8a4e3c0c
GM
188 * xdisp.c (setup_echo_area_for_printing): Call
189 message_log_maybe_newline if message_buf_print is not set.
190
191 * print.c (printchar, strout): Don't check message_buf_print
192 before calling setup_echo_area_for_printing because that
193 function does something useful even when message_buf_print is
194 already set.
195
25fa6deb
GM
196 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
197 variables.
198 (ensure_echo_area_buffers): Initialize echo buffer's
199 truncate lines setting to nil.
200 (with_echo_area_buffer): Don't set the echo buffer's truncate
201 lines setting here.
8a4e3c0c 202 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
203 of message_truncate_lines.
204 (resize_mini_window): Handle case that lines are truncated.
205 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
206 message-truncate-lines.
207
208 * keyboard.c (read_char): Bind message-truncate-lines to t
209 while displaying a help-echo.
210
211 * lisp.h (Qmessage_truncate_lines): External declaration.
212
163dcff3
GM
2132000-06-13 Gerd Moellmann <gerd@gnu.org>
214
1681ead6
GM
215 * xdisp.c (Vline_number_display_limit): Renamed from
216 line_number_display_limit.
217 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
218 Extend documentation string. Initialize
219 Vline_number_display_limit to nil meaning no limit.
220 (decode_mode_spec): Use Vline_number_display_limit with its new
221 meaning.
222
163dcff3
GM
223 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
224
2252000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
226
227 * frame.c (Fmodify_frame_parameters): Doc fix.
228
229 * xfns.c (x_set_frame_parameters): Comment fix.
230
231 * frame.c (store_frame_param): Call swap_in_global_binding if the
232 variable's current binding was chosen based on this frame.
233
234 * data.c (swap_in_global_binding): New function.
235
a704139d
EZ
2362000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
237
238 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
239 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
240
9b6610db
EZ
2412000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
242
243 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
244
c68833d2
JR
2452000-06-12 Jason Rumney <jasonr@gnu.org>
246
247 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
248
249 * w32.h (EMACS_W32_H): Renamed from _NT_H_
250
251 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
252
253 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
254
ed1056b3
GM
2552000-06-12 Gerd Moellmann <gerd@gnu.org>
256
257 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
258 (syms_of_xfaces): Defsubr Sdump_colors.
259 (x_free_colors): Don't treat b&w specially on default visual.
260 (x_free_dpy_colors): New function.
261 (free_face_colors): Don't check visual class; it's done
262 in x_free_colors.
263
264 * xterm.c (x_frame_of_widget): New function.
265 (x_alloc_nearest_color_for_widget): Use it.
266 (x_copy_dpy_color): New function.
267 (x_destroy_window): Free various colors.
268
5050a2ef
KH
2692000-06-12 Kenichi Handa <handa@etl.go.jp>
270
271 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
272
273 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
274
275 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
276
277 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
278
279 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
280
fb1b041d
DL
2812000-06-11 Dave Love <fx@gnu.org>
282
283 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
284
ff96b5f4
EZ
2852000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
286
287 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
288
db8eeecd
GM
2892000-06-11 Gerd Moellmann <gerd@gnu.org>
290
ed1056b3 291 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
292 to `XEvent *'.
293
49b71c5f
KH
2942000-06-10 Kenichi Handa <handa@etl.go.jp>
295
c479bd55
KH
296 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
297 (regex_compile): Fix the code for handling the case of single byte
298 char and multibyte char being mixed in a range within [...].
299
ff6a65c2
KH
300 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
301 and dst_multibyte members of coding.
302
49b71c5f
KH
303 * charset.c (update_charset_table): Update the table
304 bytes_by_char_head.
305 (init_charset_once): Initialize elements of bytes_by_char_head to
306 1 except for leading codes for private charases.
307
308 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
309 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
310 sequence.
311
9e80b57d
KR
3122000-06-09 Ken Raeburn <raeburn@gnu.org>
313
314 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
315 access the data it doesn't point to.
316
f83fe4b4
GM
3172000-06-08 Gerd Moellmann <gerd@gnu.org>
318
319 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 320 will be translated to a switch-frame event when reading the
f83fe4b4
GM
321 event queue. This is necessary because Emacs otherwise won't
322 perform a switch-frame to a new frame until some other event, for
323 example a keystroke event, forces it to do so. This has various
324 effects, one visible being that the cursor of a frame created with
325 C-x 5 2 or switched to with a window manager key binding like
326 A-TAB stays hollow because selected_window isn't on the newly
327 focused frame until the switch-frame is performed.
328
329 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
330 generating a switch-frame event if necessary.
331
332 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
333
334 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
335 it's an integer.
336
0890801b
KH
3372000-06-08 Kenichi Handa <handa@etl.go.jp>
338
339 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
340 charset.
341
173cbca8
GM
3422000-06-07 Gerd Moellmann <gerd@gnu.org>
343
3091c2a6
GM
344 * window.c (displayed_window_lines): Take empty lines at
345 the bottom of a window into account.
346
f38952fe
GM
347 * window.c (displayed_window_lines): New function.
348 (Fmove_to_window_line): Use displayed_window_lines to determine
349 the number of lines to move, instead of using the window's height.
350
351 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
352 to stop reading, even if the form read sets point to a different
353 value when evaluated.
354
173cbca8
GM
355 * xdisp.c (display_line): Fix code deciding in which line to
356 put the cursor.
357
6ba6c818
KH
3582000-06-07 Kenichi Handa <handa@etl.go.jp>
359
360 * fileio.c (e_write): Free composition data if stored in
361 coding->cmp_data.
362
5f1aea9a
GM
3632000-06-06 Gerd Moellmann <gerd@gnu.org>
364
666852af
GM
365 * xdisp.c (display_line): Set row's and iterator's
366 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
367 Set cursor even if row ends in the middle of a character.
368 (dump_glyph_row): Print values of new flags.
369 (redisplay_window) <cursor movement in unchanged window>: When
370 point has been moved forward, and PT is at the end of the cursor
371 row, don't place the cursor in the next row if the cursor row ends
372 in the middle of a character or at ZV.
373
374 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
375 (struct glyph_row): Add starts_in_middle_of_char_p and
376 ends_in_middle_of_char_p.
377 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
378 ends_in_middle_of_char_p flag.
379 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
380
d13f3e2e
GM
381 * term.c (append_glyph): Revert change of 2000-06-06.
382
383 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
384 padding glyph not fitting on line as whole character not
385 fitting on line.
386
5f1aea9a
GM
387 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
388 this isn't true for images with `:ascent 100'.
389
10cda9b0
KH
3902000-06-06 Kenichi Handa <handa@etl.go.jp>
391
ed00559d
KH
392 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
393 as modified if it is originally unmodified.
394
10cda9b0
KH
395 * term.c (encode_terminal_code): Change the way to check if
396 terminal coding does any conversion.
397 (append_glyph): Set glyph->pixel_width correctly.
398
399 * xdisp.c (display_line): While checking line continuation, pay
400 attention to a padding glyph.
401
1969fae2
GM
4022000-06-05 Gerd Moellmann <gerd@gnu.org>
403
404 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
405
162ccef4
DL
4062000-06-05 Dave Love <fx@gnu.org>
407
f19f32dd
DL
408 * xdisp.c: Include fontset.h.
409
410 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
411
412 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
413
414 * dispnew.c: Conditionally include term.h.
415
416 * coding.h: Declare code_convert_string_norecord.
417
418 * frame.h (struct frame): Use volatile unconditionally.
419
420 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
421
422 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
423
424 * systime.h: Protect against multiple inclusion.
425 (timezone) [USG5_4]: Define as time_t.
426
427 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
428 (Foptimize_char_table, make_temp_name): Declare.
429
430 * Makefile.in (xdisp.o): Depend on fontset.h.
431
432 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
433
434 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
435 (Foptimize_char_table, make_temp_name): Declare.
436
162ccef4
DL
437 * s/irix4-0.h:
438 * s/irix5-0.h:
439 * s/netbsd.h: Don't define autoconfiscated MATHERR.
440
2082fe81
DL
4412000-06-02 Dave Love <fx@gnu.org>
442
443 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
444
dcf671d2
GM
4452000-06-02 Gerd Moellmann <gerd@gnu.org>
446
447 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 448 result face, set flags in that face indicating that colors may not
dcf671d2
GM
449 be freed.
450
451 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
452 glyph, use the ASCII NUL character to determine the face.
453
d42122a3
DL
4542000-06-02 Dave Love <fx@gnu.org>
455
456 * sysdep.c: Conditionally include stdlib.h, unistd.h.
457 (VFORK_RETURN_TYPE): Remove.
458
459 * config.in: Add NO_MATHERR.
460
dd432f16
DL
4612000-06-01 Dave Love <fx@gnu.org>
462
90aa4ea8
DL
463 * cmds.c (internal_self_insert): Don't check
464 Vbefore_change_function, Vafter_change_function.
465
466 * insdel.c (signal_before_change, signal_after_change): Likewise.
467
468 * buffer.c (Vbefore_change_function, Vafter_change_function):
469 Variables and their initializations deleted.
470
2330c9d4
DL
471 * callint.c (Fcall_interactively): Doc fix.
472
dd432f16
DL
473 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
474
bf9e8804
DL
4752000-05-31 Dave Love <fx@gnu.org>
476
477 * textprop.c: Revert last change -- duplicated.
478
3694b4ab
GM
4792000-05-31 Gerd Moellmann <gerd@gnu.org>
480
481 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
482 in #if 0.
483
484 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
485
f14156cd
JR
4862000-05-31 Jason Rumney <jasonr@gnu.org>
487
8119aab8
JR
488 * search.c (Fre_search_forward, Fre_search_backward)
489 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
490
f14156cd
JR
491 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
492
4aab9be3
JR
4932000-05-30 Jason Rumney <jasonr@gnu.org>
494
495 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
496 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
497
498 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
499 member.
500
501 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
502 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
503 expand a nil default_filename.
504
505 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
506 pointer to glyph_to_pixel_coords, not a frame.
507
508 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
509 coding.h to dependencies.
510
511 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
512
513 * w32console.c (glyph_to_pixel_coords): Change first parameter to
514 window pointer to be consistent with w32term.c and xterm.c.
515
516 * w32fns.c: Format and doc changes to bring closer to xfns.c.
517 (VIETNAMESE_CHARSET): Define if not defined in system headers.
518 (Qline_spacing, Qcenter): New variables.
519 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
520 (x_set_line_spacing): New function.
521 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
522 macros.
523 (x_specified_cursor_type): New function.
524 (x_set_cursor_type): Use it.
525 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
526 and icon strings.
527 (validate_x_resource_name, x_get_resource_string): Measure lengths
528 of external strings in bytes.
529 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
530 GetTextExtentPoint32 with NULL title.
531 (Fx_create_frame): Initialize Qline_spacing.
532 (w32_load_system_font): Initialize font->double_byte_p.
533 (x_to_w32_charset): Use Vw32_charset_info_alist.
534 (Image, busy cursor, tooltip functions): Merged changes from
535 xfns.c. Not yet functional on Windows.
536
537 * w32gui.h (W32FontStruct): Add double_byte_p member.
538
539 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
540 (emacs_button_translation): Use it.
541 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
542 in `mask' to be set.
543
544 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
545 menu strings.
546
547 * w32term.c: Format and doc changes to bring closer to xterm.c.
548 (w32_char_font_type): New enum.
549 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
550 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
551 (w32_encode_char): New function.
552 (x_encode_char): Removed.
553 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
554 x_encode_char and w32_font_is_double_byte.
555 (x_produce_image_glyph): Use image_ascent.
556 (x_produce_glyphs): Use new version of w32_per_char_metric and
557 handle NULL return value. Allow extra line spacing.
558 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
559 (w32_get_glyph_overhangs): Remove unicode_p param. Use
560 w32_font_type member of glyph instead.
561 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
562 (fast_find_position): Make sure not to consider rows not visible
563 in the window.
564 (w32_read_socket) [WM_MENUSELECT]: Cannot call
565 w32_menu_display_help with input blocked, as it can abort.
566 (x_display_and_set_cursor): Choose cursor depending
567 on buffer-local value of cursor_type.
568 (x_draw_bar_cursor): Add parameter WIDTH.
569
570 * w32term.h (CP_DEFAULT): Define.
571 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
572
10fc3187
GM
5732000-05-30 Gerd Moellmann <gerd@gnu.org>
574
575 * search.c (Fre_search_forward, Fre_search_backward)
576 (Fposix_search_backward, Fposix_search_forward): Doc fix.
577
d0555360
KH
5782000-05-30 Kenichi Handa <handa@etl.go.jp>
579
580 * coding.c (detect_coding_iso2022): Fix code for checking
581 CODING_CATEGORY_MASK_ISO_8_2.
582
f1ad044f
SM
5832000-05-29 Stefan Monnier <monnier@cs.yale.edu>
584
585 * regex.c (PREFETCH_NOLIMIT): New function.
586 (re_match_2_internal): Use it and adjust the end_match_2 logic.
587
84ec3b4b
GM
5882000-05-29 Gerd Moellmann <gerd@gnu.org>
589
66254a13
GM
590 * syntax.c (find_defun_start): Move test for
591 open_paren_in_column_0_is_defun_start outside of the loop.
592
49e70dec
GM
593 * xdisp.c (redisplay_window): Really switch buffers when
594 displaying mode lines, and temporarily set selected_frame to the
595 frame of the window that's redisplayed.
596
84ec3b4b
GM
597 * xfaces.c (free_realized_faces): Block/unblock input.
598 (free_realized_multibyte_face): Ditto.
599
869a3a14
DL
6002000-05-29 Dave Love <fx@gnu.org>
601
602 * textprop.c (Qkeymap): New variable.
603 (syms_of_textprop): Intern it.
604
605 * keymap.c: Include intervals.h.
606 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
607
608 * Makefile.in (keymap.o): Depend on intervals.h.
609
610 * keyboard.c (menu_bar_items, tool_bar_items)
611 (Fexecute_extended_command): Deal with `keymap' property.
612 (read_key_sequence): Track map from `keymap' property as well as
613 `local_map'.
614
615 * intervals.c (get_local_map): Extra arg to allow looking for
616 `keymap' too.
617
618 * intervals.h (map_property): New enum.
619 (get_local_map): Extra arg using it.
620 (Qkeymap): Declare.
621
84ec3b4b 622 * lisp.h (get_local_map): Don't declare here.
869a3a14 623
89d0c844
KH
6242000-05-29 Kenichi Handa <handa@etl.go.jp>
625
626 * Makefile.in (callproc.o): Depend on composite.h.
627
628 * callproc.c: Include composite.h.
629 (Fcall_process): Handle composition correctly.
630
631 * coding.h (coding_allocate_composition_data): Extern it.
632 (coding_restore_composition): Likewise.
633
634 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
635 yet allocated, finish decoding with result
636 CODING_FINISH_INSUFFICIENT_CMP.
637 (coding_allocate_composition_data): Make it non-static.
638 (coding_restore_composition): Likewise.
639
797a084a
EZ
6402000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
641
642 * charset.c (syms_of_charset): Revert last change.
643
cf872af5
EZ
6442000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
645
646 * term.c (produce_glyphs): Treat characters from the eight-bit-*
647 charsets as unibyte, with 1-column screen width. Sent by Kenichi
648 Handa.
649
5b1ae051
EZ
6502000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
651
652 * charset.c (syms_of_charset): Set width of character sets
653 eight-bit-control and eight-bit-graphic to 1 column.
654
34ec9ebe
GM
6552000-05-26 Gerd Moellmann <gerd@gnu.org>
656
657 * config.in (HAVE_SPEED_T): New define.
658
659 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
660 `extern speed_t'.
661
dd854dc2
DL
6622000-05-26 Dave Love <fx@gnu.org>
663
664 * coding.c (shrink_decoding_region): Initialize eol_conversion.
665
666 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
667 (Fsubr_arity): New function.
668 (syms_of_data): Install them.
669
ba9f8f95
KH
6702000-05-26 Kenichi Handa <handa@etl.go.jp>
671
0f3e0672
KH
672 * charset.c (init_charset_once): Set the table bytes_by_char_head
673 correctly.
674
cebefb44
KH
675 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
676 the default fontset to what Emacs uses by default.
0f3e0672
KH
677 (check_registry_encoding): This function deleted.
678 (Fset_fontset_font): Remove the adhoc condition for the default
679 fontset. Allow cons in FONTNAME.
cebefb44 680
0f3e0672
KH
681 * fns.c (map_char_table): Ignore char-table entries for
682 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 683
7a18af49
KR
6842000-05-25 Ken Raeburn <raeburn@gnu.org>
685
686 * emacs.c (main): Initialize keyboard syms before initializing
687 window code, so face names are available.
688
d2af47df
SM
6892000-05-25 Stefan Monnier <monnier@cs.yale.edu>
690
691 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
692 of an anchor at the beginning of a shy-group.
693
fc6a6a4e
GM
6942000-05-25 Gerd Moellmann <gerd@gnu.org>
695
696 * xdisp.c (handle_invisible_prop): Don't try to skip over
697 invisible text if end of text is already reached.
698
005f0d35
DL
6992000-05-25 Dave Love <fx@gnu.org>
700
02513cdd
DL
701 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
702
005f0d35
DL
703 * coding.c (encode_eol): Add null statement after label.
704
89f6ca4e
EZ
7052000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
706
707 * w16select.c (Fw16_set_clipboard_data): Fix the change from
708 2000-05-20.
709
a4e1759e
KH
7102000-05-25 Kenichi Handa <handa@etl.go.jp>
711
712 * ccl.c (ccl_driver): Fix previous change.
713
eacfd7fe
KH
7142000-05-25 Kenichi Handa <handa@etl.go.jp>
715
46ab33a9
KH
716 * coding.c (run_pre_post_conversion_on_str): Set point to the
717 beginning of buffer before calling coding->post_read_conversion.
718 (decode_coding_string): Give correct args to
719 run_pre_post_conversion_on_str.
720 (encode_coding_string): Likewise.
721
eacfd7fe
KH
722 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
723 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
724 eight-bit-graphic correctly.
725
f8569325
DL
7262000-05-24 Kenichi HANDA <handa@etl.go.jp>
727
728 * fileio.c (Finsert_file_contents): Even if a file is not found,
729 execute codes for setting up coding system. Call
730 after-insert-file-functions unconditionally.
731
04545643
GM
7322000-05-24 Gerd Moellmann <gerd@gnu.org>
733
734 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
735 BSD_PGRPS are not defined.
736
747d90ea
KH
7372000-05-24 Kenichi Handa <handa@etl.go.jp>
738
739 * charset.c (update_charset_table): Accept nil in LONG_NAME and
740 DESCRIPTION.
741 (syms_of_charset): Avoid building same strings.
742
716e3b88
GM
7432000-05-23 Gerd Moellmann <gerd@gnu.org>
744
745 * lread.c (Fload): Add a comment about the meaning of
746 Vuser_init_file being t.
747
748 * puresize.h (BASE_PURESIZE): Increase to 675000.
749
750 * s/gnu-linux.h (setpgrp): Don't define it here because this
751 prevents compilation on GNU/Linux systems with glib 2.2.
752
753 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
754 as setpgid.
755
9aeb39fa
EZ
7562000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
757
758 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
759 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
760 version.
761 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
762
29ced61b
KH
7632000-05-23 Kenichi Handa <handa@etl.go.jp>
764
0574a2ed
KH
765 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
766 unconditionally.
767
3d80f24d
KH
768 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
769
770 * term.c (encode_terminal_code): Set coding->src_multibyte
771 properly.
772
29ced61b
KH
773 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
774
d7e00792
KH
7752000-05-22 Kenichi Handa <handa@etl.go.jp>
776
c9d80d38
KH
777 * keyboard.c (read_char): Allow character codes 128..255 to be
778 handled by input-method-function.
779
d7e00792
KH
780 * insdel.c (adjust_markers_for_replace): Fix previous change.
781 (adjust_after_replace): If PREV_TEXT is nil, call
782 adjust_markers_for_insert, not adjust_markers_for_replace.
783
087121cc
GM
7842000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
785
786 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
787 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
788 [HAVE_GRANDPT]: Define.
789 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
790
791 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
792 like SYSV_PTYS.
793
794 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
795
796 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
797
c9671f81
KH
7982000-05-20 Kenichi Handa <handa@etl.go.jp>
799
800 The following changes are to handle 8-bit characters in a
801 multibyte buffer/string without facing with byte combining
802 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
803 eight-bit-graphic (for 0xA0..0xFF) are introduced.
804
805 * Makefile.in (fns.o): Depend on charset.h.
806
807 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
808 convert it to unibyte.
809 (make_string): Use parse_str_as_multibyte, not chars_in_text.
810
811 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
812 apparent char boundary.
813 (Fset_buffer_multibyte): Convert 8-bit characters in the range
814 0x80..0x9F to/from multibyte form.
815
816 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
817 to unibyte.
818
819 * callproc.c (Fcall_process): Always encode an argument string if
820 it is multibyte. Setup src_multibyte and dst_multibyte members of
821 process_coding properly.
ce75fd23 822
c9671f81
KH
823 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
824 SPLIT_NON_ASCII_CHAR.
825
826 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
827 as is.
828 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
829
830 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
831 variables.
832 (SPLIT_CHARACTER_SEQ): This macro deleted.
833 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
834 valid.
835 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
836 and eight-bit-graphic.
837 (char_to_string): Likewise. Signal an error for too large
838 character code.
839 (char_printable_p): Return 0 for 8-bit characters.
840 (update_charset_table): Update iso_charset_table only when a final
841 character is non-negative.
842 (find_charset_in_text): Renamed from find_charset_in_str.
843 Arguments and return value changed. Callers changed.
844 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
845 be -1 if CHARSET is used only internally.
846 (Fmake_char_internal): Handle new charsets; eight-bit-control and
847 eight-bit-graphic.
848 (Fcharset_after): Simplified.
849 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
850 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
851 (multibyte_chars_in_text): Simplified by assuming there's no
852 invalid multibyte sequence.
853 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
854 str_as_unibyte): New functions.
855 (Fstring): Simpified by assuming that byte combining never
856 happens.
857 (init_charset_once): Initialization for
858 LEADING_CODE_8_BIT_CONTROL.
859 (syms_of_charset): Intern and staticpro Qeight_bit_control and
860 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
861 eight-bit-control and eight-bit-graphic.
862
863 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
864 CHARSET_8_BIT_GRAPHIC): New macros.
865 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
866 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
867 (CHARSET_REVERSE_CHARSET): Likewise.
868 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
869 eight-bit-graphic.
870 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
871 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
872 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
873 encounter an invalid multibyte sequence.
874 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
875 sequence is always valid.
876 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
877 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
878 macros.
879 (CHAR_STRING): For 8-bit characters, call char_to_string.
880 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
881 multibyte sequence is always valid.
882 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
883 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
884 str_as_unibyte): Extern them.
885 (BCOPY_SHORT): Fix a bug.
886 (CHAR_LEN): This macro deleted. Callers changed to use
887 CHAR_BYTES.
888 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
889 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
890 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
891
bd4bde7f 892 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
893 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
894 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
895 EMIT_BYTES): New macros.
896 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
897 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
898 macros deleted.
899 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
900 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
901 check the validity of multibyte sequence.
902 (decode_coding_emacs_mule): New function.
903 (encode_coding_emacs_mule): New macro.
904 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
905 the source.
906 (DECODE_ISO_CHARACTER): Just return a character code.
907 (DECODE_COMPOSITION_START): Set coding->result instead of result.
908 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
909 EMIT_CHAR to produced decoded characters. Exit the loop only by
910 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
911 block here.
912 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
913 only position codes for an invalid character.
914 (encode_designation_at_bol): Return new destination pointer. 5th
915 arg DSTP is changed to DST.
916 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
917 from the source by ONE_MORE_CHAR. Don't handle the case of last
918 block here.
919 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
920 macros deleted.
921 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
922 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
923 TWO_MORE_BYTES to fetch a byte from the source.
924 (encode_eol): Pay attention to coding->src_multibyte.
925 (detect_coding, detect_eol): Preserve members src_multibyte and
926 dst_multibyte.
927 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
928 (encoding_buffer_size): Set magnification to 3 for all coding
929 systems that require encoding.
930 (ccl_coding_driver): For decoding, be sure that the result is
931 valid multibyte sequence.
932 (decode_coding): Initialize coding->errors and coding->result.
933 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
934 and raw-text, always call decode_eol. Handle the case of last
935 block here. If not coding->dst_multibyte, convert the resulting
936 sequence to unibyte.
937 (encode_coding): Initialize coding->errors and coding->result.
938 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
939 and raw-text, always call encode_eol. Handle the case of last
940 block here.
941 (shrink_decoding_region, shrink_encoding_region): Detect cases
942 that we can't skip data more rigidly.
943 (code_convert_region): Setup src_multibyte and dst_multibyte
944 members of coding. For decoding, if the buffer is multibyte,
945 convert the source sequence to unibyte in advance. For encoding,
946 if the buffer is multibyte, convert the resulting sequence to
947 multibyte afterward.
948 (run_pre_post_conversion_on_str): New function.
949 (code_convert_string): Deleted and divided into the following two.
950 (decode_coding_string, encode_coding_string): New functions.
951 (code_convert_string1, code_convert_string_norecord): Call one of
952 above.
953 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
954 MAKE_NON_ASCII_CHAR.
955 (Fset_terminal_coding_system_internal,
956 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
957 and dst_multibyte members.
958 (init_coding_once): Initialize iso_code_class with new enum
959 ISO_control_0 and ISO_control_1.
960
961 * coding.h (enum iso_code_class_type): Member ISO_control_code is
962 devided into ISO_control_0 and ISO_control_1.
963 (struct coding_system): New members src_multibyte, dst_multibyte,
964 errors, and result. Delete member fake_multibyte.
965 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
966 nonzero.
967 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
968 nonzero.
969
970 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
971 (Faset): Likewise.
972
973 * editfns.c (Fformat): Be sure to convert 8-bit characters to
974 multibyte form.
975 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
976 combining occurs.
977 (Ftranspose_region): Delete codes for handling byte combining.
978
979 * fileio.c (Finsert_file_contents): Setup src_multibyte and
980 dst_multibyte members of coding. On handling REPLACE on unibyte
981 buffer, convert the result of decode_coding to unibyte. On
982 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 983 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
984 multibyteness of the source (buffer or string).
985
986 * fns.c (concat): Handle 8-bit characters correctly.
987 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
988 unibyte in the result.
989 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
990 valid multibyte form in the result.
991 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
992 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
993 return -1, signal an error.
994 (base64_encode_1): New arg MULTIBYTE. Get each character by
995 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
996 character is found, return -1.
997 (Fbase64_decode_region): Delete codes for handling byte-combining.
998 Treat each decoded byte as a unibyte character.
999 (Fbase64_decode_string): Return unibyte string.
1000 (Fcompare_strings, concat, string_byte_to_char): Use
1001 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
1002 FETCH_STRING_CHAR_ADVANCE.
1003 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1004 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
1005
1006 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
1007 SPLIT_NON_ASCII_CHAR.
1008 (fontset_ref_via_base, fontset_set): Likewise
1009
1010 * insdel.c (adjust_markers_for_record_delete): Deleted.
1011 (adjust_markers_for_insert): Argument changed. Caller changed.
1012 (adjust_markers_for_replace): Likewise.
1013 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
1014 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
1015 (copy_text): Delete unused local varialbe c_save. For converting
1016 to multibyte, be sure to make all 8-bit characters in valid
1017 multibyte form.
1018 (count_size_as_multibyte): Handle 8-bit characters correctly.
1019 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1020 adjust_after_replace, replace_range, del_range_2)
1021 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
1022 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
1023 adjust_after_replace, replace_range, del_range_2) Delete codes for
1024 handling byte combining.
1025 (adjust_before_replace): Deleted.
1026
1027 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
1028 SPLIT_NON_ASCII_CHAR.
1029 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
1030 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
1031 unconditionally.
1032 (Fkey_description): Likewise.
1033
1034 * lread.c (read1): On reading multibyte string, be sure to make
1035 all 8-bit chararacters in valid multibyte form.
1036 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
1037
1038 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
1039 unconditionally.
1040
1041 * process.c (Fstart_process): GCPRO current_dir before calling
1042 Ffind_operation_coding_system. Encode arguments here.
1043 (create_process): Don't encode arguments here. Setup
1044 src_multibyte and dst_multibyte members of struct coding.
1045 (read_process_output): Setup src_multibyte and dst_multibyte
1046 members of struct coding. If the output is to multibyte buffer,
1047 always decode the output of the process. Adjust the
1048 representation of 8-bit characters to the multibyteness of the
1049 output.
1050 (send_process): Setup coding->src_multibyte according to the
1051 multibyteness of the source.
1052
1053 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1054 unconditionally.
1055 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1056 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1057
1058 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1059 CHAR_LEN.
1060
1061 * w16select.c (Fw16_set_clipboard_data): Setup members
1062 src_multibyte and dst_multibyte of coding. Adjusted for the
1063 change for find_charset_in_str.
1064 (Fw16_get_clipboard_data): Likewise.
1065
1066 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1067 dst_multibyte of coding.
1068 (x_to_w32_font): Likewise.
1069
1070 * w32select.c (Fw32_set_clipboard_data): Setup members
1071 src_multibyte and dst_multibyte of coding. Adjusted for the
1072 change for find_charset_in_str.
1073 (Fw32_get_clipboard_data): Likewise.
1074
1075 * xdisp.c (get_next_display_element): Handle 8-bit characters
1076 correctly.
1077 (next_element_from_display_vector): Use CHAR_BYTES instead of
1078 CHAR_LEN.
1079 (disp_char_vector): Use SPLIT_CHAR instead of
1080 SPLIT_NON_ASCII_CHAR.
1081
1082 * xselect.c (selection_data_to_lisp_data): Setup members
1083 src_multibyte and dst_multibyte of coding. Adjusted for the
1084 change for find_charset_in_str.
1085 (lisp_data_to_selection_data): Likewise.
1086
5f64c9e0
GM
10872000-05-19 Gerd Moellmann <gerd@gnu.org>
1088
2b63d473
GM
1089 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1090 buffer.
1091
5f64c9e0
GM
1092 * dispextern.h (Vimage_types): Add extern declaration.
1093
1094 * xdisp.c (Vimage_types): Moved here from xfns.c.
1095 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1096
1097 * xfns.c (Vimages_types): Moved to xdisp.c.
1098 (syms_of_xfns): Move `image-types' to xdisp.c.
1099
1100 * w32fns.c (Vimage_types): Removed.
1101 (syms_of_w32fns): Remove `image-types'.
1102
813086ea
KH
11032000-05-18 Kenichi Handa <handa@etl.go.jp>
1104
1105 * fns.c (map_char_table): Pay attention to character number of
1106 charset. Check the validity of charset at the first level. For
1107 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1108 the default value.
1109
1110 * fontset.c: Include "buffer.h".
1111 (fs_load_font): If the face has fontset, record the face ID in
1112 that fontset.
1113 (Finternal_char_font): New function.
1114 (accumulate_font_info): New function.
1115 (Ffontset_info): Rewritten for the new fontset implementation.
1116 (syms_of_fontset): Register Vdefault_fontset in the first element
1117 of Vfontset_table. Include Vdefault_fontset in
1118 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1119 function.
1120
bdaebbf0
DL
11212000-05-16 Dave Love <fx@gnu.org>
1122
1123 * m/iris5d.h: Deleted -- unused.
1124
cb613bb8
GM
11252000-05-16 Gerd Moellmann <gerd@gnu.org>
1126
b15f3b77
GM
1127 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1128 `invalid' instead of `illegal'.
1129
1130 * indent.c (Fmove_to_column): When ending within a tab, insert
1131 spaces first so that markers at the end of the tab get adjusted.
1132
835c1b36
GM
1133 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1134 buffer list that wasn't selected in that frame.
1135
cb613bb8
GM
1136 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1137 is needed on mescaline, use a 2 char prefix, and call
1138 make_temp_name with second arg non-zero.
1139
1140 * fileio.c (make_temp_name): New function, extracted from
1141 Fmake_temp_name.
1142 (Fmake_temp_name): Use it.
1143
f685bea9
EZ
11442000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1145
1146 * window.c (coordinates_in_window): Subtract 1 when computing
1147 right_x.
1148
a1b8d58b
GM
11492000-05-15 Gerd Moellmann <gerd@gnu.org>
1150
1151 * Makefile.in (lisp): Add env.elc.
1152
1153 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1154
a265079f
GM
11552000-05-12 Gerd Moellmann <gerd@gnu.org>
1156
1157 * search.c (Freplace_match): Handle case of `\N' in the
1158 replacement when there's no group N.
1159
da4496b6
GM
11602000-05-11 Gerd Moellmann <gerd@gnu.org>
1161
0ace421a
GM
1162 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1163 of the message to message_dolog.
1164
1172eb8d
GM
1165 * keyboard.c (read_char): Don't clear current message for help
1166 events; let the code handling help events handle this. Change
1167 code detecting help events that should be ignored.
1168
da4496b6
GM
1169 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1170 we're interating over a string.
1171
0623e40f
DL
11722000-05-09 Dave Love <fx@gnu.org>
1173
1174 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1175 that offset before writing. Move gcpro region past call of
1176 Ffile_regular_p.
1177
bae2503b
DL
11782000-05-04 Dave Love <fx@gnu.org>
1179
1180 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1181
ec82fb2f
GM
11822000-05-04 Gerd Moellmann <gerd@gnu.org>
1183
1184 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1185 of inserted characters when BUF equals the current buffer, and PT
1186 is in front of or equal to FROM.
1187
cbf18892
GM
11882000-05-03 Gerd Moellmann <gerd@gnu.org>
1189
4ff40dd0
GM
1190 * xdisp.c (handle_single_display_prop): If display property value
1191 is invalid, or something not supported on the frame, restore
1192 iterator's position to what it was initially. Make sure to return
1193 0 for invalid and unsupported property values.
1194
cbf18892
GM
1195 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1196 that x_per_char_metric returns null.
1197
1b0672c3
GM
11982000-05-02 Gerd Moellmann <gerd@gnu.org>
1199
576da55d
GM
1200 * xterm.h (struct face): Add forward declaration.
1201 (struct image): Ditto.
1202 (image_ascent): Add prototype.
1203
1204 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1205 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1206 image_ascent instead of using IMAGE_ASCENT.
1207
1208 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1209 (IMAGE_ASCENT): Removed.
1210
1211 * xfns.c (Qcenter): New variable.
1212 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1213 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1214 (image_ascent): New function.
1215 (lookup_image): Recognize `:ascent center'.
1216 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1217 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1218 (xbm_load): Don't set image's ascent here.
1219 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1220 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1221 check ascent values here.
1222 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1223 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1224 (syms_of_xfns): Initialize Qcenter.
1225
1b0672c3
GM
1226 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1227 to the limits, increase the limits.
1228
0d7811ed
KH
12292000-05-01 Kenichi Handa <handa@etl.go.jp>
1230
1231 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1232 Check Vfont_encoding_alist against the full name of the opened
1233 font.
1234
a943a5ca
GM
12352000-04-28 Gerd Moellmann <gerd@gnu.org>
1236
1237 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1238 taller than the window.
1239
5dba1e29
KH
12402000-04-28 Kenichi Handa <handa@etl.go.jp>
1241
1242 * xfaces.c (realize_x_face): Fix the argument of the second
1243 xassert. BASE_FACE may not be a face for ASCII.
1244
353964e3
GM
12452000-04-27 Gerd Moellmann <gerd@gnu.org>
1246
c76e04a8
GM
1247 * print.c (print_object): Treat print-length < 0 as nil.
1248
1249 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1250
1251 * s/freebsd.h (TERMCAP_OBJ): Removed.
1252 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1253
1254 * lread.c (read1): Don't treat period followed by certain
1255 characters as symbol start.
1256
1257 * xfns.c (slurp_file): New function.
1258 (xbm_image_p): Handle case of in-memory XBM files.
1259 (xbm_scan): Rewritten to work on memory buffers instead of files.
1260 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1261 Work on memory buffers instead of files. If DATA is null test
1262 if buffer looks like an in-memory XBM file.
1263 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1264 memory buffers instead of files.
1265 (xbm_file_p): New function.
1266 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1267
353964e3
GM
1268 * lread.c (end_of_file_error): New function.
1269 (read1): Call it instead of signaling `end-of-file' directly.
1270
1271 * print.c (print_error_message): Print data of `end-of-file'
1272 with Fprinc instead of Fprin1.
1273
24d744ac
KR
12742000-04-26 Ken Raeburn <raeburn@gnu.org>
1275
1276 * window.c (freeze_window_start): Check that minibuffer scroll
1277 window isn't nil before extracting the window structure pointer
1278 from it.
1279
1280 * undo.c (record_delete): If we hit the end of the undo list, stop
1281 picking elements apart.
1282
7464346d
GM
12832000-04-26 Gerd Moellmann <gerd@gnu.org>
1284
1285 * xdisp.c (display_line): If lines are continued, restore
1286 iterator's ascent/descent information to the values before the
1287 first glyph not fitting on the line.
1288
612839b6
GM
12892000-04-25 Gerd Moellmann <gerd@gnu.org>
1290
1291 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1292 positions in glyph matrix. Don't compute new window end
1293 positions.
1294
1295 * dispnew.c (increment_matrix_positions): Renamed from
1296 increment_glyph_matrix_buffer_positions.
1297 (increment_row_positions): Renamed from
1298 increment_glyph_row_buffer_positions.
1299
1300 * dispextern.h: Change names of renamed functions from dispnew.c
1301 in prototypes.
1302
cc181e95
GM
13032000-04-24 Gerd Moellmann <gerd@gnu.org>
1304
abfcc168
GM
1305 * fileio.c (Fdo_auto_save): Create directories for auto-save
1306 list file if necessary.
1307
cc181e95
GM
1308 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1309 from buffer or frame.
1310 (automatic_hscrolling_p): New variable.
1311 (hscroll_windows): Scroll windows horizontally only if automatic
1312 hscrolling is allowed.
1313 (syms_of_xdisp): New variable `automatic-hscrolling'.
1314
1315 * frame.h (struct frame): Add member extra_line_spacing.
1316
1317 * xfns.c (x_set_line_spacing): New function.
1318 (Fx_create_frame): Set line spacing from resources.
1319 (Qline_spacing): New variable.
1320 (syms_of_xfns): Initialize Qline_spacing.
1321
1322 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1323
1324 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1325 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1326 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1327 extra_line_spacing from default value.
1328 (init_buffer_once): Initialize default value of extra_line_spacing.
1329
1330 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1331 and extra3.
1332
1333 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1334 prompt_width. Add extra line spacing.
1335
1336 * term.c (produce_glyphs): Remove reference to struct it's
1337 prompt_width.
1338
1339 * dispextern.h (struct it): Remove member prompt_width, add
1340 extra_line_spacing.
1341
58827478
GM
13422000-04-22 Gerd Moellmann <gerd@gnu.org>
1343
1344 * dispnew.c (update_frame_line): When writing a whole line, make
1345 sure cursor is in the right row afterwards, otherwise a use of
1346 capability `ch' in cmgoto might leave the cursor in the row below.
1347
25a87f42
GM
13482000-04-21 Gerd Moellmann <gerd@gnu.org>
1349
1350 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1351
1352 * keyboard.c (timer_check): Fix typo in comment.
1353
54edf5c2
KH
13542000-04-21 Kenichi Handa <handa@etl.go.jp>
1355
1356 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1357 name change: ch -> character.
1358
3a64eef5
GM
13592000-04-20 Gerd Moellmann <gerd@gnu.org>
1360
1361 * keyboard.c (echo_message_buffer): New variable.
1362 (echo_now): Set echo_message_buffer to the echo area buffer used
1363 to display the echo.
1364 (cancel_echoing): Reset echo_message_buffer to nil.
1365 (read_char): Code rewritten that handles canceling an echo or
1366 echoing a dash, respectively.
1367
1368 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1369 directory doesn't exist.
1370
6142fdcb
DL
13712000-04-19 Dave Love <fx@gnu.org>
1372
1373 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1374 (concat): Don't allow numeric args.
1375 (Fconcat): Doc change.
6142fdcb 1376
ac6b5352
SM
13772000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1378
1379 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1380 instead define end_match(1|2) more carefully.
1381 Use GET_CHAR_BEFORE_2 for `begline'.
1382
cb9215e4
GM
13832000-04-19 Gerd Moellmann <gerd@gnu.org>
1384
5e3dac3f
GM
1385 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1386 on 64-bit systems where NULL is defined as `0'.
1387
1388 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1389 the `variable argument list' to make it work on Alpha.
1390
cb9215e4
GM
1391 * m/alpha.h (_LP64) [!_LP64]: Define.
1392 (ORDINARY_LINK): Define for NetBSD.
1393
1394 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
1395
f532dca0
DL
13962000-04-19 Dave Love <fx@gnu.org>
1397
c750667e
DL
1398 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1399 change.
1400
1401 * Makefile.in (LIBS): Don't use.
1402 (GETLOADAVG_OBJ): Define again.
1403 (otherobj): Add GETLOADAVG_OBJ.
1404
f532dca0
DL
1405 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1406
1c7e22fd
GM
14072000-04-18 Gerd Moellmann <gerd@gnu.org>
1408
f6d3257b
GM
1409 * lread.c (read_filtered_event): Cancel and start busy cursor.
1410
1c7e22fd
GM
1411 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1412 that the per-character metrics may be null.
1413
e10f64e7
GM
14142000-04-17 Gerd Moellmann <gerd@gnu.org>
1415
0daee095
GM
1416 * buffer.c (clone_per_buffer_values): New function.
1417 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1418 clone_per_buffer_values if CLONE is not nil.
1419
e10f64e7
GM
1420 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1421
38687d43
DL
14222000-04-16 Dave Love <fx@gnu.org>
1423
1424 * Makefile.in: Remove obsolete localcpp stuff.
1425 (GETLOADAVG_OBJ): Don't define.
1426 (obj): Move LIBOBJS...
1427 (otherobj): ... to here.
1428 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1429 whitespace-only lines after the continuation (Irix).
1430
c21c7262
GM
14312000-04-14 Gerd Moellmann <gerd@gnu.org>
1432
1433 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1434
1435 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1436
314767c0
DL
14372000-04-14 Dave Love <fx@gnu.org>
1438
1439 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1440 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1441 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1442 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1443 NLIST_STRUCT.
1444
1445 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1446 autoconfiscated HAVE_GETLOADAVG.
1447
1448 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1449 BROKEN_MKTIME.
1450
a2522dca
GM
14512000-04-14 Gerd Moellmann <gerd@gnu.org>
1452
1453 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1454 (fill_in_lock_file_name): Avoid existing files that aren't
1455 links.
1456
33744b5d
DL
14572000-04-14 Dave Love <fx@gnu.org>
1458
c21c7262 1459 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1460 (INTERVAL_SRC): Convert to make variable.
1461 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1462 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1463 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1464 add LIBOBJS.
1465 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1466 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1467 (shortlisp): Add facemenu, float-sup, frame.
1468 (SOME_MACHINE_LISP): Remove them from here.
1469 (LIBES): Change unused LDLIBS to autoconf LIBS.
1470
1471 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1472
9d3d5916
KH
14732000-04-14 Kenichi Handa <handa@etl.go.jp>
1474
1475 * composite.c (update_compositions): If FROM and TO are not in a
1476 valid range, do nothing.
1477
198e3c7a
GM
14782000-04-13 Gerd Moellmann <gerd@gnu.org>
1479
1480 * tparam.c (tparam1): Abort when encountering an unknown
1481 `%'-specifier.
1482
1483 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1484 terminfo.o.
1485
1486 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1487 as TERMCAP_OBJ.
1488
055a28c9
EZ
14892000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1490
1491 * fileio.c (a_write): Remove redundant semi-colons.
1492 (e_write): Return -1 if failed to write all the data.
1493 This fixes the changes made at 1999-12-15.
1494
f5c75033
DL
14952000-04-12 Dave Love <fx@gnu.org>
1496
1497 * fns.c (mapcar1): Test for null vals to support mapc.
1498 (Fmapc): New function.
1499
0c3cfc51
EZ
15002000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1501
1502 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1503 (IT_frame_up_to_date): Support the buffer local value of
1504 cursor-type, if defined.
1505
33465a31
DL
15062000-04-10 Dave Love <fx@gnu.org>
1507
1508 * editfns.c (preceding-char, following-char): Doc fix.
1509
6ed56568
KR
15102000-04-10 Ken Raeburn <raeburn@gnu.org>
1511
1512 * Makefile.in (temacs): Revert 2000-03-12 change.
1513
7cf80d4e
JR
15142000-04-10 Jason Rumney <jasonr@gnu.org>
1515
1516 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1517
34f3f342
GM
15182000-04-10 Gerd Moellmann <gerd@gnu.org>
1519
1a1b1895
GM
1520 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1521 area buffer, if it's not set up yet.
1522
34f3f342
GM
1523 * indent.c (compute_motion): Set immediate_quit.
1524
be0dbdab
GM
15252000-04-09 Gerd Moellmann <gerd@gnu.org>
1526
c45be9ac
GM
1527 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1528 variable.
1529 (realize_tty_face): Suppress boldness if colors are the inverse of
1530 the default colors, and tty_suppress_bold_inverse_default_colors_p
1531 is set.
1532 (Ftty_suppress_bold_inverse_default_colors): New function.
1533 (syms_of_xfaces): Defsubr it.
1534
be0dbdab
GM
1535 * buffer.c (Frestore_buffer_modified_p): New function.
1536 (syms_of_buffer): Defsubr it.
1537
e8413c3b
KR
15382000-04-08 Ken Raeburn <raeburn@gnu.org>
1539
87f67317
KR
1540 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1541 charset id (int) argument, not a charset (Lisp_Object).
1542
e8413c3b
KR
1543 * coding.h (code_convert_string): Declare.
1544 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1545 object, as the fourth argument to code_convert_string.
1546
1547 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1548 value.
1549 (Fset_fontset_font): Use EQ to compare lisp objects.
1550
7c752c80
KR
15512000-04-05 Ken Raeburn <raeburn@gnu.org>
1552
c0333abc
KR
1553 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1554 a pointer that looks like a lisp object.
1555 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1556 zero, instead see whether it's an integer object, since they can't
1557 have intervals.
1558 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1559
7c752c80
KR
1560 * dispnew.c (allocate_matrices_for_frame_redisplay,
1561 direct_output_forward_char): Use X(U)INT and make_number as needed
1562 to convert between (unsigned) int values and lisp integers.
1563 * keyboard.c (read_key_sequence): Likewise.
1564 * lread.c (substitute_object_recurse): Likewise.
1565 * fns.c (concat, hash_lookup, hash_remove): Likewise.
1566 * minibuf.c (do_completion, Fminibuffer_complete_word,
1567 Fminibuffer_completion_help): Likewise.
1568 * term.c (produce_special_glyphs): Likewise.
1569
1570 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
1571 * print.c (print_preprocess, print_object): Likewise.
1572
1573 * search.c (compile_pattern): Use NILP when checking for nil.
1574
74e49b38
KR
1575 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
1576 __OPTIMIZE__]: Provide a GNU C macro version that handles
1577 lisp-object unions.
1578 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
1579 field, to better cope with ENABLE_CHECKING and calls that modify a
1580 Lisp_Object using its old value.
1581
685e5ed2
GM
15822000-04-04 Gerd Moellmann <gerd@gnu.org>
1583
c407c570
GM
1584 * window.c (compare_window_configurations): Signal an error
1585 if parameters C1 or C2 aren't window configurations.
1586
685e5ed2
GM
1587 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
1588 AFTER_POTENTIAL_GC calls around calls to functions that can
1589 signal an error and thus invoke the debugger.
1590
587a49ab
GM
15912000-04-03 Gerd Moellmann <gerd@gnu.org>
1592
62f20204
GM
1593 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
1594 an error if decoding fails.
1595
587a49ab
GM
1596 * keyboard.c (lispy_mouse_names): Variable removed.
1597 (Vlispy_mouse_stem): New variable.
1598 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
1599 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
1600 for any mouse button number. Increase size of mouse_syms and
1601 button_down_location as needed. Call modify_event_symbol with
1602 different arguments.
1603 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
1604 Call modify_event_symbol with different arguments.
1605 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
1606 for any button number. Call modify_event_symbol with different
1607 arguments.
1608 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
1609 Accept a string for NAME_ALIST_OR_STEM.
1610
1611 * lisp.h (larger_vector): Add prototype.
1612
1613 * fns.c (larger_vector): Make externally visible.
1614
1615 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
1616
2d1675e4
SM
16172000-04-02 Stefan Monnier <monnier@cs.yale.edu>
1618
1619 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
1620 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
1621 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
1622 we are between str1 and str2.
1623 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
1624 (PATFETCH): Use `TRANSLATE'.
1625 (PATFETCH_RAW): Fetch multibyte char if applicable.
1626 (PATUNFETCH): Remove.
1627 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
1628 When writing a char, write it directly into the pattern buffer rather
1629 than going needlessly through a temp char-array.
1630 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
1631 multibyte magic and remove the useless `#ifdef emacs'.
1632 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
1633 buffer.
1634
1635 * regex.h (struct re_pattern_buffer): Make field `multibyte'
1636 conditional on `emacs'.
1637
1638 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
1639
cc2d8c6b
KR
16402000-04-01 Ken Raeburn <raeburn@gnu.org>
1641
1642 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
1643 non-union-type versions of XMARK and friends here, because XMARK
1644 and friends won't work on an integer field if NO_UNION_TYPE is not
1645 defined.
1646 (make_number): Define as a function if it's not defined as a
1647 macro.
1648
09654086
KR
1649 * composite.c (run_composite_function): Use NILP when checking for
1650 nil.
1651 (syms_of_composite): Delete local var NARGS, pass an int as first
1652 argument to Fmake_hash_table.
1653
2387b382
KR
1654 * editfns.c (text_property_stickiness): Use NILP to test
1655 Lisp_Object boolean value.
1656 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
1657 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
1658 problems reading from and changing the same lisp value in an
1659 XSETSTRING call.
1660
27660e89
GM
16612000-04-01 Gerd Moellmann <gerd@gnu.org>
1662
1663 * term.c (TN_no_color_video): New variable.
1664 (term_init): Intitialize TN_no_color_video.
1665 (enum no_color_bit): New enumeration.
1666 (MAY_USE_WITH_COLORS_P): New macro.
1667 (turn_on_face): Use it to determine if attributes may be used
1668 combined with colors.
1669
3578db3c
KR
16702000-04-01 Ken Raeburn <raeburn@gnu.org>
1671
1672 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
1673 with int lvalues via casts; instead, just yield lisp object
1674 lvalues.
1675 (enlarge_window): Variable sizep now points to Lisp_Object. Use
1676 proper accessor macros.
1677 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
1678 (grow_mini_window): Fix typo getting int value of root->height.
1679
6fc556fd
KR
1680 * xdisp.c (compute_string_pos): Fix order of arguments to
1681 string_pos_nchars_ahead.
1682 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
1683 count arg to variable-arg routines like Frun_hook_with_args and
1684 Fformat.
587a49ab
GM
1685 (back_to_previous_visible_line_start)
1686 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
1687 fixed-arg routines like Fget_char_property and Fmake_string.
1688 (reconsider_clip_changes): Use XINT when comparing integer lisp
1689 objects, or passing them as int arguments.
587a49ab
GM
1690 (mark_window_display_accurate, insert_left_trunc_glyphs)
1691 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
1692 storing or passing integer values as lisp objects.
1693 (set_cursor_from_row, highlight_trailing_whitespace): Use
1694 INTEGERP, not implicit test against zero, for glyph object.
1695 (try_window_id): Don't use make_number when we want an int value.
1696
1697 * xfaces.c (xlfd_symbolic_value): Make last argument a
1698 Lisp_Object, to be consistent with callers.
1699 (Fbitmap_spec_p): Use XINT to get numeric value of height.
1700 (lface_hash): Apply XFASTINT to lisp values before folding in.
1701
1702 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
1703 fill in window width and height. Pass an int, not a lisp object,
1704 as first arg to Finsert.
1705
6e7b2457
GM
17062000-04-01 Gerd Moellmann <gerd@gnu.org>
1707
610d841e
GM
1708 * xfaces.c (realize_basic_faces): Block input while realizing
1709 the faces.
1710
6e7b2457
GM
1711 * keyboard.c (lispy_mouse_names): Add additional mouse names.
1712
1713 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
1714
aa110c0c
GM
17152000-03-31 Gerd Moellmann <gerd@gnu.org>
1716
1717 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 1718 or ASCII, handle case that per-char metric is null.
aa110c0c 1719
8801a864
KR
17202000-03-30 Ken Raeburn <raeburn@gnu.org>
1721
c6129d7e
KR
1722 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
1723
8801a864
KR
1724 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
1725 XSUBR, XBUFFER): Verify correct object type before returning
1726 pointer, using eassert.
1727 * frame.h (XFRAME): Likewise.
1728
1729 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
1730 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
1731 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
1732 type.
1733 * data.c (set_internal): Likewise.
1734 * dispextern.h (WINDOW_WANTS_MODELINE_P,
1735 WINDOW_WANTS_HEADER_LINE_P): Likewise.
1736 * fileio.c (auto_save_1): Likewise.
1737 * insdel.c (check_markers): Likewise.
1738 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
1739 * undo.c (record_insert): Likewise.
1740 * vmsproc.c (child_sig): Likewise.
1741 * window.c (unshow_buffer, window_loop): Likewise.
1742 * xterm.c (x_erase_phys_cursor): Likewise.
1743
8e7af858
GM
17442000-03-30 Gerd Moellmann <gerd@gnu.org>
1745
1746 * xfns.c (free_image_cache): Free the cache structure itself
1747 last, after all its members have been freed.
1748
1749 * lisp.h (xstrdup): Add prototype.
1750
1751 * alloc.c (xstrdup): Moved here from xfaces.c.
1752 (allocating_for_lisp): Variable removed.
1753 (lisp_malloc): Block input around the calls to malloc and
1754 mem_insert.
1755
1756 * xfaces.c (realize_tty_face): Use find_symbol_value instead
1757 of Fsymbol_value.
1758 (xstrdup): Moved to alloc.c.
1759
e0b8c689
KR
17602000-03-29 Ken Raeburn <raeburn@gnu.org>
1761
b96f9fb7
KR
1762 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
1763
1764 * emacs.c (main): Fix sense of no-loadup test.
1765
e0b8c689
KR
1766 * config.in (ENABLE_CHECKING): Undef.
1767
1768 * lisp.h (struct interval): Replace "parent" field with a union of
1769 interval pointer and Lisp_Object; add new bitfield to use as
1770 discriminant. Change other flag fields to bitfields.
1771 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
1772 is defined and the supplied test fails, print a message and
1773 abort.
1774 (eassert): New macro. Use CHECK to provide an assert-like
1775 facility.
1776
1777 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
1778 pointers; abort if the value looks like a lisp object.
1779 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
1780 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
1781 Modify for new interval parent definition.
1782
1783 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
1784 UNMARK_BALANCE_INTERVALS): Update references that need an
1785 addressable lisp object in the interval structure.
1786 (die): New function.
1787 (suppress_checking): New variable.
1788
1789 * intervals.c (interval_start_pos): Just return 0 if there's no
1790 parent object.
1791
f83c5440
GM
17922000-03-29 Gerd Moellmann <gerd@gnu.org>
1793
1794 * lread.c (read1): Accept `.' (period) as symbol start like in CL
1795 and earlier Emacs versions.
1796
1797 * keyboard.c (Ftop_level): Cancel busy-cursor.
1798
1799 * eval.c (call_debugger): Cancel busy-cursor.
1800
fdce64ff
KH
18012000-03-29 Kenichi Handa <handa@etl.go.jp>
1802
1803 * search.c (Freplace_match): Adjust multibyteness of the current
1804 buffer and NEWTEXT. Free allocated memory before signaling an
1805 error.
1806
f6a3f532
SM
18072000-03-28 Stefan Monnier <monnier@cs.yale.edu>
1808
1809 * regex.c (analyse_first): New function obtained by ripping out most
1810 of re_compile_fastmap and generalizing it a little bit so that it
1811 can also just return whether a given (sub)pattern can match the empty
1812 string or not.
1813 (regex_compile): Use `analyse_first' to decide whether the loop-check
1814 needs to be done or not for *, +, *? and +? (the loop check is costly
1815 for non-greedy repetition).
1816 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
1817
e9b309ac
DL
18182000-03-28 Dave Love <fx@gnu.org>
1819
bb15bd9a
DL
1820 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
1821 alpha.
1822
e9b309ac
DL
1823 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
1824
ed0767d8
SM
18252000-03-27 Stefan Monnier <monnier@cs.yale.edu>
1826
1827 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
1828 an expression.
1829 (enum re_opcode_t): Update description of succeed_n.
1830 (PATFETCH): Always define.
1831 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
1832 operators, char classes, shy-groups and intervals).
1833 Optimize special cases of intervals so as to only use succeed_n and
1834 jump_n when really needed.
1835 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
1836 that we don't have to handle the special cases any more.
1837 Simplify on_failure_jump handling as well.
1838
e11e7e46
JR
18392000-03-28 Jason Rumney <jasonr@gnu.org>
1840
1841 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
1842
88faab89
GM
18432000-03-27 Gerd Moellmann <gerd@gnu.org>
1844
182ff242
GM
1845 * s/freebsd.h (GC_SETJMP_WORKS): Define.
1846
1847 * s/msdos.h (GC_SETJMP_WORKS): Define.
1848
1849 * alloc.c (mark_maybe_object): New function.
1850 (mark_memory): Use it.
1851 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
1852 (setjmp_tested_p, longjmp_done): New variables.
1853 (test_setjmp): New function.
1854 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
1855 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
1856
c1005d06
GM
1857 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
1858 to DEC_TEXT_POS and INC_TEXT_POS.
1859
1860 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
1861 with parameter MULTIBYTE_P.
1862
1863 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
1864 MULTIBYTE_P.
1865
7439e5b9 1866 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
1867 buffers because it looks for multibyte character byte sequences
1868 which don't exist in unibyte text.
7439e5b9 1869
d9c545da
GM
1870 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
1871
11fd416e 1872 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
1873 [DEBUG_X_COLORS]: New functions.
1874 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
1875
1876 * xfns.c (x_set_cursor_color): Get color reference counts right.
1877
1878 * xterm.c (x_copy_color): New function.
1879 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
1880
1881 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
1882 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
1883 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
1884 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
1885 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
1886 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
1887 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
1888 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
1889 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
1890 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
1891
11fd416e
GM
1892 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
1893 names for handling per-buffer variables.
d9c545da
GM
1894
1895 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
1896 instead of MAX_BUFFER_LOCAL_VARS.
1897 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
1898
1899 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
1900
88faab89
GM
1901 * xfns.c (x_specified_cursor_type): New function.
1902 (x_set_cursor_type): Use it.
1903
1904 * buffer.h (struct buffer): Add cursor_type.
1905
d80f42b7
SM
19062000-03-26 Stefan Monnier <monnier@cs.yale.edu>
1907
1908 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
88faab89
GM
1909 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
1910 opcode.
d80f42b7
SM
1911 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
1912 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
1913 executing it as well as when popping it off the stack to find infinite
1914 loops in non-greedy repetition operators.
1915
89e80928
GM
19162000-03-26 Gerd Moellmann <gerd@gnu.org>
1917
3d4ff2dd
GM
1918 * doc.c (Qfunction_documentation): New variable.
1919 (syms_of_doc): Initialize Qfunction_documentation.
1920 (Fdocumentation): If FUNCTION is a symbol with non-nil
1921 `function-documentation' property, return a documentation derived
1922 from that.
1923
bd96bd79
GM
1924 * buffer.c (syms_of_buffer): Add default-cursor-type.
1925 (init_buffer_once): Don't let cursor_type have a local value
1926 in every buffer.
1927
19d1bc27
GM
1928 * xterm.c (x_display_and_set_cursor): Choose cursor depending
1929 on buffer-local value of cursor_type.
1930 (x_draw_bar_cursor): Add parameter WIDTH.
1931
1932 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
1933 (init_buffer_once): Set default cursor_type value to t.
1934 Mark cursor_type as local everywhere.
1935 (syms_of_buffer): New per-buffer variable cursor-type.
1936
89e80928
GM
1937 * buffer.h (struct buffer): Remove member local_var_flags,
1938 add local_flags.
1939 (MAX_BUFFER_LOCAL_VARS): New macro.
1940 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
1941 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
1942 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
1943 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
1944
1945 * print.c (print_object): Use new macros for per-buffer
1946 variables.
1947
1948 * category.c (Fset_category_table): Use new macros for per-buffer
1949 variables.
1950
1951 * buffer.c (buffer_permanent_local_flags): Make a char array.
1952 (max_buffer_local_idx): New variable.
1953 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
1954 for new handling of per-buffer variables.
1955 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
1956 (init_buffer_once): Initialize per-buffer vars differently.
1957 Set max_buffer_local_idx.
1958
1959 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
1960 variables.
1961
1962 * lread.c (defvar_per_buffer): Use new macros for per-buffer
1963 variables.
1964
1965 * data.c (do_symval_forwarding, store_symval_forwarding)
1966 (find_symbol_value, set_internal, default_value, Fset_default)
1967 (Fkill_local_variable, Flocal_variable_p): Use new macros for
1968 per-buffer variables.
1969
1970 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
1971
9a0dd3dc
GM
19722000-03-24 Gerd Moellmann <gerd@gnu.org>
1973
b68c375f
GM
1974 * xterm.c (x_term_init): Unblock input around call1 of
1975 Qvendor_specific_keysyms.
1976
9a0dd3dc
GM
1977 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
1978 (find_defun_start): Consider an open parenthesis in column 0
1979 a defun start only if open_paren_in_column_0_is_defun_start is set.
1980 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
1981
7973e637
SM
19822000-03-24 Stefan Monnier <monnier@cs.yale.edu>
1983
1984 * eval.c (Fautoload): Add entry in load-history (if after dump).
1985 * lread.c (load-history): Update docstring.
1986
39210e90
GM
19872000-03-24 Gerd Moellmann <gerd@gnu.org>
1988
1989 * indent.c (Fvertical_motion): Always use the current buffer.
1990 Temporarily change the window's buffer, if necessary.
1991
72db3ab5
GM
19922000-03-23 Gerd Moellmann <gerd@gnu.org>
1993
1994 * xterm.c (fast_find_position): Make sure not to consider rows
1995 not visible in the window.
1996
990b2375
SM
19972000-03-22 Stefan Monnier <monnier@cs.yale.edu>
1998
1999 * regex.c (enum syntaxcode): Provide default for non-Emacs.
2000 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
2001
ff4df011
JR
20022000-03-22 Jason Rumney <jasonr@gnu.org>
2003
2004 * w32menu.c (single_submenu): Set help string to NULL if none.
2005 (w32_menu_show): Set help string correctly.
2006 (add-menu-item): Set help string in MIIM_DATA for menu item.
2007 Load SetMenuItemInfoA explicitly.
2008 (w32_menu_display_help): New function.
2009
2010 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
2011 (QCdata): Moved to xdisp.c.
2012
2013 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
2014 (Vw32_charset_to_codepage_alist): Removed.
2015 (Vw32_charset_info_alist): New variable.
2016 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
2017 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
2018 greek, hebrew, thai, johab, mac, unicode]): New symbols.
2019 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
2020 with TODO comment.
2021 (w32_codepage_for_font): Use Vw32_charset_info_alist.
2022 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
2023 Define Vw32_charset_info_alist and w32_charset symbols.
2024
20252000-03-22 Jason Rumney <jasonr@gnu.org>
2026
2027 * makefile.nt (w32bdf.obj): Update dependencies.
2028
2029 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
2030
2031 * w32fns.c: Include fontset.h after dispextern.h.
2032 (Fx_create_frame): Do not create fontset.
2033 (w32_load_system_font): Doc fix.
2034 (Fx_close_connection): Free full_name if it is not shared.
2035
2036 * w32term.c: Include fontset.h after dispextern.h.
2037 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
2038 updated.
2039 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2040 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2041 (w32_font_is_double_byte): New function, needs body.
2042 (x_append_glyph): Set glyph->glyph_not_available_p.
2043 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2044 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2045 character, convert it to a unibyte character.
2046 (struct glyph_string): Delete member `charset'.
2047 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2048 calculating it is found.
2049 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2050 the case that per char metric is not available correctly.
2051 (x_fill_glyph_string): Handle the case that the specific glyph is
2052 not available correctly.
2053 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2054 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2055 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2056 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2057 fontset. Don't call FS_LOAD_FONT.
2058
439d5cb4
KR
20592000-03-22 Ken Raeburn <raeburn@gnu.org>
2060
2061 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2062 (INT_LISPLIKE): New macro.
2063 (NULL_INTERVAL_P): Use it.
2064 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2065 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2066 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2067
2068 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2069 explicit references to "parent" field of struct interval and
2070 associated unclean type conversions.
2071 * intervals.c (create_root_interval, root_interval, rotate_right,
2072 rotate_left, balance_possible_root_interval, split_interval_right,
2073 split_interval_left, interval_start_pos, find_interval,
2074 next_interval, previous_interval, update_interval,
2075 adjust_intervals_for_insertion, delete_node, delete_interval,
2076 adjust_intervals_for_deletion, merge_interval_right,
2077 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2078 copy_intervals_to_string): Likewise.
2079 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2080 Likewise.
2081 * syntax.c (update_syntax_table): Likewise.
2082
2083 * intervals.c (reproduce_tree_obj): New function, like
2084 reproduce_tree but takes a Lisp_Object for the parent. Declare
2085 with prototype.
2086 (graft_intervals_into_buffer): Use it when appropriate.
2087 (reproduce_tree): Declare with prototype.
2088 (balance_possible_root_interval): Check that the parent is a lisp
2089 object before trying to examine its type.
2090
ee1c5b21
GM
20912000-03-22 Gerd Moellmann <gerd@gnu.org>
2092
2093 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2094 as strings only if both are known to be strings.
2095
2096 * s/openbsd.h (LIBS_TERMCAP): Undef.
2097
1fb352e0
SM
20982000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2099
2100 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2101 definitions for non-Emacs compilation.
2102 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2103 outside of `#ifdef emacs'.
2104 (print_partial_compiled_pattern): Update.
2105 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2106 (re_compile_fastmap): Merge handling of charset and charset_not (for
2107 emacs and non-emacs compilation as well).
2108 Similarly for (not)categoryspec and (not)syntaxspec.
2109 Don't use the fastmap when reaching `anychar' since the added
2110 complexity is not justified.
2111 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2112 and (not)syntaxspec. Merge (not)categoryspec.
2113
fdaa1f77
KH
21142000-03-22 Kenichi Handa <handa@etl.go.jp>
2115
ff1a0d8e
KH
2116 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2117 FACE_FOR_CHAR): Define them differently for the configuration of
2118 --without-x.
fdaa1f77 2119
d152fb46
DL
21202000-03-21 Dave Love <fx@gnu.org>
2121
2122 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2123 doc string.
2124
d2cafc8c
GM
21252000-03-21 Gerd Moellmann <gerd@gnu.org>
2126
2127 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2128 (lface_fully_specified_p): Don't check contents of
2129 LFACE_FONT_INDEX because that attribute is optional.
2130 (realize_x_face): Remove now unwarranted xassert.
2131
9111d4b5
KH
21322000-03-21 Kenichi HANDA <handa@etl.go.jp>
2133
2134 The following changes are to make font selection based on
2135 characters, not charset. In addition, they recover fontset
2136 facilities while utilizing the new font selection mechanism.
2137
6c4bfdc0
KH
2138 * Makefile.in (fontset.o): Depend on dispextern.h.
2139
2140 * alloc.c (mark_face_cache): Don't mark face->registry.
2141
9111d4b5
KH
2142 * dispextern.h (struct glyph): New member glyph_not_available_p.
2143 Use 22 bits for face_id.
2144 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2145 (struct face): Delete member registry, new member ascii_face.
2146 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2147 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2148 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2149 (struct it): Delete member charset, new member
2150 glyph_not_available_p.
2151
2152 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2153 (struct fontset_info, struct fontset_data): Structs removed.
2154 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2155 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2156 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2157 (fs_free_face_fontset, fontset_font_pattern,
2158 face_suitable_for_char_p, face_for_char,
2159 make_fontset_for_ascii_face): Extern them.
2160 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2161 (FS_LOAD_FACE_FONT): New macro.
2162
2163 * fontset.c: All codes rewritten or adjusted for the change of
2164 fontset implementation. Now fontset is represented by char table.
2165 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2166 removed.
2167 (my_strcasecmp): Function removed.
2168 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2169 variables.
2170 (AREF, ASIZE): New macros.
2171 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2172 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2173 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2174 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2175 fontset_id_valid_p, font_family_registry, fontset_name,
2176 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2177 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2178 New functions.
2179 (fs_load_font): New arg FACE. Caller changed.
2180 (fs_query_fontset): Argument changed. Caller changed.
2181 (Fquery_fontset): call fs_query_fontset.
2182 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2183 Functions removed.
2184 (clear_fontset_elements, check_registry_encoding,
2185 check_fontset_name): New functions.
2186 (syms_of_fontset): Set char-table-extra-slots property of fontset
2187 to 3. Staticpro and initialize Vfontset_table and
2188 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2189
2190 * frame.h (struct frame): Member `fontset_data' removed.
2191 (FRAME_FONTSET_DATA): Macro removed.
2192
2193 * frame.c (make_frame): Don't allocate f->fontset_data.
2194 (Fdelete_frame): Don't free f->fontset_data.
2195
6c4bfdc0
KH
2196 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2197
9111d4b5
KH
2198 * xdisp.c (charset_at_position): Function removed.
2199 (init_iterator): Don't set member charset of struct `it'.
2200 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2201 next_element_from_display_vector, insert_left_trunc_glyphs):
2202 Likewise.
2203 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2204 FACE_FOR_CHARSET.
2205 (get_next_display_element, append_space,
2206 extend_face_to_end_of_line): Likewise.
2207
2208 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2209 Variables removed.
2210 (clear_font_table, frame_update_line_height, load_face_font):
2211 Adjusted for the change of fontset implementation.
2212 (load_face_fontset_font): Function removed.
2213 (pixel_point_size): New function.
2214 (font_list): Argument type changed. Caller changed.
2215 (LFACE_FONT): New macro.
2216 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2217 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2218 Lisp_Object. Determine the font name by actually loading a font
2219 by the specified pattern. Set LFACE_FONT (lface) to the specified
2220 pattern. Even if a font is not found, don't try alternatives.
2221 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2222 (set_font_frame_param): If `font' is specified in lface, use it.
2223 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2224 (lface_same_font_attributes_p): Likewise.
2225 (make_realized_face): Arguent changed. Caller changed. Set
2226 face->ascii_face to face itself.
2227 (free_realized_face): Free face->fontset if face is for ASCII.
2228 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2229 deduce_unibyte_registry, x_charset_registry): Functions removed.
2230 (free_realized_multibyte_face): New function.
2231 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2232 changed. Caller changed.
2233 (try_font_list): Argument type changed.
2234 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2235 (choose_face_font): Argument changed. Handle fontset properly.
2236 (choose_face_fontset_font): Function removed.
2237 (realize_default_face, realize_named_face): Don't remove the
2238 former face here.
2239 (realize_face): Argument changed. Caller changed. Remove face
2240 with the arg former_face_id in advance. Load font for the new
2241 face.
2242 (realize_x_face): Argument changed. Caller changed. For a
2243 multibyte character, share fontset with base_face. For a single
2244 byte character, make a new realized fontset. Don't load a font
2245 here.
2246 (realize_tty_face): Argument changed. Caller changed.
2247 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2248 (face_at_buffer_position): Don't check multibyte_p for returning
2249 DEFAULT_FACE_ID.
2250 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2251 FACE_SUITABLE_FOR_CHARSET_P.
2252 (syms_of_xfaces): Remove code for Qx_charset_registry and
2253 Vface_default_registry.
2254
6c4bfdc0
KH
2255 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2256 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2257 (x_per_char_metric): Don't try FONT->default_char. Even if
2258 pcm->width is zero, glyph bits may exist.
2259 (x_encode_char): Always initialize char2b->byte1.
2260 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2261 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2262 changed.
2263 (x_append_glyph): Set glyph->glyph_not_available_p.
2264 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2265 it->charset. Handle the case that per char metric is not
2266 available. If it->multibyte_p is zero and it->c is a multibyte
2267 character, convert it to a unibyte character.
2268 (struct glyph_string): Delete member `charset'.
2269 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2270 the case that per char metric is not available correctly.
2271 (x_fill_glyph_string): Handle the case that the specific glyph is
2272 not available correctly.
2273 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2274 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2275 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2276 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2277 fontset. Don't call FS_LOAD_FONT.
2278
2279 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2280 (x_create_tip_frame): Likewise.
2281 (Fx_close_connection): Free full_name of font_info.
2282
2283 * fns.c (optimize_sub_char_table): New function.
2284 (Foptimize_char_table): New function.
2285 (syms_of_fns): Defsubr Soptimize_char_table.
2286
b33dd3b0
GM
22872000-03-20 Gerd Moellmann <gerd@gnu.org>
2288
2289 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2290 only if buffer is displayed in some window.
2291
2292 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2293 (try_window_reusing_current_matrix): Don't call scroll run
2294 function if run's current and desired position are the same;
2295 this prevents cursor flickering.
2296
4e8a9132
SM
22972000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2298
2299 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2300
2301 * regex.c (RE_STRING_CHAR): New macro.
2302 (GET_CHAR_AFER_2): Remove.
2303 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2304 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2305 (print_partial_compiled_pattern, re_compile_fastmap)
2306 (re_match_2_internal): Remove on_failure_jump_exclusive.
2307 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2308 optimization only need to work for * (ie. can use of_keep_string_jump).
2309 Remove the special case for .*\n since it is now covered by the general
2310 optimization.
2311 (re_search_2): Don't bother with `room'.
2312 (skip_one_char): New function.
2313 (skip_noops): Simplify since `memory' is not needed any more.
2314 (mutually_exclusive_p): Restructure slightly to use `switch' and
2315 add handling for "all" remaining cases.
2316 (re_match_2_internal): Change on_failure_jump_smart to use
2317 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2318 rather than on_failure_jump_exclusive.
2319
2136fdd4
GM
23202000-03-19 Gerd Moellmann <gerd@gnu.org>
2321
2322 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2323 number of bits per RGB because it's everywhere used as the depth
2324 of the visual.
2325
2326 * term.c (calculate_costs): Remove code dealing with X frames.
2327
e53ae11c
RS
23282000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2329
2330 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2331
d7b511c4
GM
23322000-03-18 Gerd Moellmann <gerd@gnu.org>
2333
2334 * lread.c (read_integer): Unread the last char not consumed.
2335
16b5d424
GM
23362000-03-17 Gerd Moellmann <gerd@gnu.org>
2337
2338 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2339 which are in the process of being deleted.
16b5d424 2340
1fa28578
GM
23412000-03-16 Gerd Moellmann <gerd@gnu.org>
2342
83488cce
GM
2343 * Makefile.in (mostlyclean): Add `*.core'.
2344 (clean): Add `bootstrap-emacs'.
2345
1fa28578
GM
2346 * lread.c (read_integer): New function.
2347 (read1): Support read syntax #o, #x, #b, #r.
2348
99633e97
SM
23492000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2350
1fa28578
GM
2351 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2352 make sure POINTER_TO_OFFSET gives the same value before and after
2353 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2354 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2355 (debug): Now only active if > 0 rather than if != 0.
2356 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2357 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2358 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2359 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2360 (store_op1, store_op2, insert_op1, insert_op2)
2361 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2362 (group_in_compile_stack): Move to after its arg's types are
2363 declared and add a prototype.
99633e97 2364 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2365 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2366 wrapper.
99633e97 2367 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2368 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2369 indentation of the greedy-op and shy-group code.
99633e97
SM
2370 (at_(beg|end)line_loc_p): Fix argument's types.
2371 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2372 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2373 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2374 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2375 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2376 QUIT unconditionally.
99633e97 2377
699238d9
GM
23782000-03-15 Gerd Moellmann <gerd@gnu.org>
2379
2380 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2381 a sole completion.
2382
2383 * process.c (send_process): Add a hint that the function
2384 can call Lisp code to its comment.
2385
2386 * lread.c (load_dangerous_libraries): New variable.
2387 (Vbytecomp_version_regexp): New variable.
2388 (safe_to_load_p): New function.
2389 (Fload): Handle files not compiled with Emacs specially.
2390 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2391
34e23e5a
GM
23922000-03-14 Gerd Moellmann <gerd@gnu.org>
2393
9c763cca
GM
2394 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2395
2396 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2397 support functions only if HAVE_X11R6_XIM is defined.
2398 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2399
2400 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2401
2402 * xfns.c (X_I18N_INHIBITED): Don't define.
2403 (create_frame_xic): Remove conditional compilation on
2404 X_I18N_INHIBITED.
2405 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2406
2407 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2408 (HAVE_X11R6_XIM): Define.
2409
2410 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2411
34e23e5a
GM
2412 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2413 If set, call XSynchronize.
2414
66f0296e
SM
24152000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2416
34e23e5a
GM
2417 * regex.c: Declare a new type `re_char' used throughout the code
2418 for the string char type. It's `const unsigned char' to match the
2419 rest of Emacs. Consistently make sure all pointers to strings use
2420 it and make sure all pointers into the pattern use `unsigned
2421 char'.
66f0296e 2422 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2423 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2424 code duplication.
66f0296e
SM
2425
2426 * charset.h (GET_CHAR_AFTER_2): Remove.
2427 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2428
854a025c
KR
24292000-03-12 Ken Raeburn <raeburn@gnu.org>
2430
2431 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2432 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2433 of them try to use backquotes.
2434
b9d2c7e2
DL
24352000-03-12 Dave Love <fx@gnu.org>
2436
2437 * unexelf.c: Restore changes of 1999-10-19.
2438 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2439 fix its type and alignment; copy it from current process.
2440
5e5dff44
GM
24412000-03-12 Gerd Moellmann <gerd@gnu.org>
2442
9b2f3c38
GM
2443 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2444 has been found. Fix bug not computing timer's predecessor.
2445
9172b88d
GM
2446 * fileio.c (Fread_file_name): Handle case that DIR contains a
2447 file name.
2448
e1cff360
GM
2449 * window.c (Fsave_window_excursion): Doc fix.
2450
5e5dff44
GM
2451 * xfns.c (x_defined_color): Rewritten to use
2452 x_allocate_nearest_color.
2453
e411ce4b
EZ
24542000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2455
2456 * msdos.c (vga_installed): New function, code moved from
2457 dos_set_window_size.
2458 (Qbar, Qcursor_type, outside_cursor): New variables.
2459 (syms_of_msdos): Intern and staticpro them.
2460 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2461 shape used outside Emacs when called for the first time.
2462 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2463 cursor shape used outside Emacs.
2464 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2465 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2466 type has changed.
2467 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2468 parameters specify the cursor. Make qreverse a global
2469 variable (renamed to Qreverse).
2470
80460654
GM
24712000-03-09 Gerd Moellmann <gerd@gnu.org>
2472
2473 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2474
95cd4c40
SM
24752000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2476
2477 This is a big redesign of failure-stack and register handling, prompted
2478 by bugs revealed when trying to add shy-groups. Overall, what happened
2479 is that loops are now structured a little differently, groups can be
2480 shy and the code is a little simpler.
2481
2482 * regex.h: Update the copyright.
2483 (RE_SHY_GROUPS): New value.
2484 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2485 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2486
80460654
GM
2487 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2488 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2489 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2490 for (start|stop)_memory since they now only take one argument (the
2491 second has becomes unnecessary).
2492 (print_partial_compiled_pattern): Adjust for changes in
2493 re_opcode_t.
2494 (print_compiled_pattern): Use %ld to printf long ints and flush to
2495 make debugging a little easier.
95cd4c40
SM
2496 (union fail_stack_elt): Make the integer unsigned.
2497 (struct fail_stack_type): Add a `frame' element.
2498 (INIT_FAIL_STACK): Init `frame' as well.
2499 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2500 (DEBUG_PUSH, DEBUG_POP): Remove.
2501 (NUM_REG_ITEMS): Remove.
2502 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2503 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2504 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2505 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2506 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2507 macros.
2508 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2509 address pushed is not the destination of the jump but the source
2510 of it instead.
95cd4c40
SM
2511 (NUM_FAILURE_ITEMS): Remove.
2512 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2513 registers before the actual failure point). Don't hardcode any
2514 meaning for str==NULL anymore.
95cd4c40 2515 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2516 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2517 Remove.
95cd4c40
SM
2518 (REG_UNSET_VALUE): Use NULL (why not?).
2519 (compile_range): Remove declaration since it doesn't exist.
2520 (struct compile_stack_elt_t): Remove inner_group_offset.
2521 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2522 (regex_grow_registers): Remove dead code.
2523 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2524 (regex_compile): Add shy-groups Change loops to use
2525 on_failure_jump_smart&jump instead of
2526 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2527 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2528 variable to me). Use `jump' instead of `jump_past_alt' and don't
2529 bother with push_dummy_failure in alternatives since it is now
2530 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2531 emacs' for (re)allocating the stack.
2532 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2533 from loop when bufp->can_be_null rather than jumping to `done'.
2534 Avoid jumping backwards so as to ensure termination. Use
2535 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2536 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2537 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2538 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2539 improve mutually_exclusive_p to handle ".+\n".
2540 (lowest_active_reg, highest_active_reg,
2541 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2542 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2543 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2544 variables. Push register (in `start_memory') on the stack rather
2545 than storing it in old_reg(start|end). Remove the cycle detection
2546 from `stop_memory', replaced by the use of on_failure_jump_loop
2547 for greedy loops. Add code for the new on_failure_jump_<foo>.
2548 Remove ad-hoc code in `on_failure_jump' to push more registers in
2549 the case of a loop. Take out code from `maybe_pop_jump' into
2550 separate functions and adapt it to the semantics of
2551 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2552 and push_dummy_failure. Remove dummy_failure handling and
2553 handling of `failures to jump to on_failure_jump' (this last one
2554 was already dead code, it seems).
2555 (group_match_null_string_p, alt_match_null_string_p)
2556 (common_op_match_null_string_p): Remove.
95cd4c40 2557
7397acc4
DL
25582000-03-08 Dave Love <fx@gnu.org>
2559
2560 * config.in: Don't depend on __STDC__ for volatile.
2561 Add POINTER_TYPE, PTR, PROTOTYPES.
2562
2563 * hftctl.c, strftime.c: Use PROTOTYPES.
2564 * eval.c (find_handler_clause): Likewise.
2565
2566 * mem-limits.h: Use POINTER_TYPE.
2567
2568 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
2569 (memory_warnings): Declare using POINTER_TYPE.
2570
5e91ff9e
GM
25712000-03-08 Gerd Moellmann <gerd@gnu.org>
2572
feab4fba
GM
2573 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
2574
25edb08f
GM
2575 * xdisp.c (display_echo_area): Temporarily inhibit garbage
2576 collection.
2577
5e91ff9e
GM
2578 * xfns.c: Remove obsolete code in #if 0.
2579 (Fx_focus_frame): New function.
2580
a735b7e1
KH
25812000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2582
2583 * coding.c (coding_category_name): Add coding-category-utf-8,
2584 coding-category-utf-16-be, coding-category-utf-16-le.
2585 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
2586 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
2587 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
2588 (detect_coding_utf_8): New function.
2589 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
2590 UTF_16_LOW_SURROGATE_P): New macros.
2591 (detect_coding_utf_16): New function
2592 (detect_coding_mask): When priorities are specified, skip any
2593 categories that have `nil' coding-system. Fix bug of returning
2594 wrong mask when PRIORITIES is specified and detect_coding_XXX()
2595 returns a mask not set in PRIORITIES.
2596 (detect_eol_type_in_2_octet_form): New function.
2597 (detect_eol): selects detect_eol_type_XXX to call according to
2598 cooding->category_idx.
2599 (detect_coding_system): Remove `nil' coding-system in the result.
2600 (Fupdate_coding_systems_internal): Update all coding-categories.
2601
2602 * coding.h (CODING_CATEGORY_IDX_UTF_8,
2603 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
2604 macros.
2605 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
2606 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
2607 CODING_CATEGORY_IDX_UTF_16_LE.
2608 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
2609 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
2610 (CODING_CATEGORY_MASK_ANY): Include the above macros.
2611 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
2612
9994cc69
GM
26132000-03-07 Gerd Moellmann <gerd@gnu.org>
2614
e9b4e5ff
GM
2615 * doc.c (Fdocumentation_property): If value is not a string,
2616 and doesn't refer to etc/DOC, evaluate it to obtain a string.
2617
f7daf1e1
GM
2618 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
2619 close the display with XtCloseDisplay. This caused a bus error
2620 on OpenWindows.
2621
9994cc69
GM
2622 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
2623 complete but not unique.
2624
4336c705
GM
26252000-03-06 Gerd Moellmann <gerd@gnu.org>
2626
18bb0684
GM
2627 * process.c (send_process): Remove local variable `procname' that
2628 might become invalid when a GC happens. Instead, access the
2629 process name slot directly.
2630
4336c705
GM
2631 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
2632 orig_height if set.
2633
2634 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
2635 orig_height if set.
2636
515d0d0e
EZ
26372000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2638
2639 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
2640 glyph matrices have been freed.
2641
100b3cbb
GM
26422000-03-05 Gerd Moellmann <gerd@gnu.org>
2643
50df5e5a 2644 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 2645 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
2646
2647 * xfns.c (QCdata): Moved to xdisp.c.
2648
2649 * xdisp.c (QCdata): Moved here from xfns.c.
2650 (syms_of_xdisp): Initialize QCdata.
2651
2652 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
2653
2654 * window.c (coordinates_in_window): Use
2655 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
2656 FRAME_INTERNAL_BORDER_WIDTH.
2657
100b3cbb 2658 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 2659 it is obviously invalid.
100b3cbb
GM
2660
2661 * xterm.c (x_term_init): Create a colormap if not using the
2662 default visual.
2663
2664 * xterm.h (select_visual): Change prototype.
2665
2666 * xfns.c (select_visual): Rewritten. Recognize user-specified
2667 visual classes.
2668 (visual_classes): New variable.
2669
64d739c4
GM
26702000-03-04 Gerd Moellmann <gerd@gnu.org>
2671
2672 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
2673 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
2674 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
2675 (x_decode_color): Don't handle allocation of white and black
2676 specially.
2677 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
2678 XtNcolormap resources.
2679 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
2680 (Fx_create_frame): Initialize color members of x_output structure.
2681 (xpm_load): Pass colormap to XPM lib.
2682
2683 * xfaces.c (x_free_colors): Access colormap of frame using
2684 FRAME_X_COLORMAP. Be paranoid about freeing black and white
2685 when default colormap is used.
2686
2687 * xterm.c (x_term_init): Set Colormap member of x_display_info
2688 structure. Copy colormap if resource `privateColormap' is
2689 specified (PseudoColor only).
2690 (x_setup_relief_color): Access colormap of frame using
2691 FRAME_X_COLORMAP.
2692
2693 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
2694 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
2695
c3cee013
JR
26962000-03-04 Jason Rumney <jasonr@gnu.org>
2697
2698 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
2699 other non-platform-specific equivalents.
64d739c4 2700 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
2701 specific functions and macros as their w32 equivalents where
2702 non-platform-specifics are not available.
2703 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
2704 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
2705 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
2706 (frame_update_line_height): Use macros to access f->output_data.
2707 (defined_color): Remove FIXME comments; fixed.
2708 (x_face_list_fonts, prepare_face_for_display): Put X specifics
2709 into #ifdef blocks. Add WINDOWSNT blocks.
2710 (Fx_list_fonts): Use macros for accessing font data.
2711 (set_lface_from_font_name): Different default fonts for X and
2712 WINDOWSNT.
2713 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
2714 scalable for backward compatibility.
64d739c4 2715 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
2716 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
2717
64d739c4 2718 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
2719 syms_of_w32faces.
2720
2721 * makefile.nt (w32faces.obj): Remove.
2722 (xfaces.obj): Add.
2723
807cc41c
JR
27242000-03-03 Jason Rumney <jasonr@gnu.org>
2725
2726 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
2727 correct parameters.
2728
0007072a
KR
27292000-03-03 Ken Raeburn <raeburn@gnu.org>
2730
2731 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
2732 standard ELF definitions here if the system header does not.
2733
71a6ba55
GM
27342000-03-03 Gerd Moellmann <gerd@gnu.org>
2735
2736 * xterm.c (PER_CHAR_METRIC): Removed.
2737 (x_per_char_metric_1, x_default_char): New functions.
2738 (x_per_char_metric): If font's default char is invalid, return
2739 metrics of a suitably chosen usable default char.
2740 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
2741 char, replace occurrences of unprintable chars with a suitably
2742 chosen usable default char.
71a6ba55 2743
900fa1f1
GM
27442000-03-02 Gerd Moellmann <gerd@gnu.org>
2745
42f55fe0
GM
2746 * xterm.c (note_mouse_highlight): Return quickly if frame's
2747 glyph matrices have been freed.
2748
2749 * dispnew.c (free_glyphs): Block input while freeing matrices.
2750
900fa1f1
GM
2751 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
2752
2753 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
2754 x_free_colors.
2755
2756 * dispextern.h (x_free_colors): Add prototype.
2757
2758 * xfaces.c (x_free_colors): New function.
2759 (unload_color, free_face_colors): Use it.
2760
2f950292
EZ
27612000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2762
2763 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
2764
2765 * window.c [MSDOS]: Include msdos.h.
2766
54d04320
DL
27672000-03-02 Dave Love <fx@gnu.org>
2768
2769 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
2770
2771 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
2772 set C_OPTIMIZE_SWITCH for gcc.
2773
0ba93ac4
KH
27742000-03-02 Kenichi Handa <handa@etl.go.jp>
2775
2776 * coding.c (coding_save_composition): Be sure to allocate
2777 composition data area in coding even if there's no composition in
2778 the current run.
2779
a2bc11d4
JR
27802000-03-01 Jason Rumney <jasonr@gnu.org>
2781
2782 * w32term.c: Equivalent changes to those made to xterm.c on
2783 2000-02-25 and 2000-02-24.
2784
2785 * w32fns.c: Equivalent changes to those made to xfns.c on
2786 2000-02-25 and 2000-02-21.
2787
2788 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
2789 correct line-end convention is followed.
2790
2791 * w32menu.c [HAVE_BOXES]: Remove #undef.
2792 (single_keymap_panes): Remove code for simulating checkmarks.
2793 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
2794 Remove code for drawing simulated checkmarks.
2795 (w32_menu_show): make unibyte help string correctly.
2796 (add_menu_item): draw standard Windows checkmarks. Draw radio
2797 buttons as radio buttons if possible.
2798
72d19d75
GM
27992000-03-01 Gerd Moellmann <gerd@gnu.org>
2800
2df636f4
GM
2801 * sysdep.c (start_of_text): Don't define this function for NetBSD
2802 with ELF.
2803
2804 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2805 Don't define.
2806 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
2807 (LINKER): Don't undef if __NetBSD__ is defined.
2808
2809 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
2810
2811 * fileio.c [__NetBSD__]: Define `unix'.
2812
72d19d75
GM
2813 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
2814
ed4d0512
GM
28152000-02-29 Gerd Moellmann <gerd@gnu.org>
2816
50b1039f
GM
2817 * atimer.c (start_atimer): Don't abort when timers are stopped.
2818 (append_atimer_lists): New function.
2819 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
2820 arbitrary lists of stopped and running atimers.
2821
ed4d0512
GM
2822 * atimer.c (cancel_atimer): Handle canceling an atimer when
2823 some timers are stopped.
2824
2825 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
2826 after canceling it.
2827
2828 * fns.c (maybe_resize_hash_table): Handle case of new size
2829 coming out as being the same as old size.
2830
387023ee
JR
28312000-02-27 Jason Rumney <jasonr@gnu.org>
2832
2833 * makefile.nt: Add atimer.h to dependencies.
2834 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
2835 * w32console.c: Only disable window system features for dispextern.h
2836 (initialize_w32_display): Build a display info for the console.
2837 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
2838 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
2839 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
2840 as 2 button mice.
2841 * w32gui.h (struct W32FontStruct): Revert last change after change
2842 to xdisp.c.
2843 * w32menu.c (single_submenu): Set up help string.
2844 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
2845 (w32_dialog_show): Set up help string.
2846 * w32term.c (w32_display_info_for_display): Remove unused function.
2847 (w32_draw_bitmap): Use pre-built bitmaps.
2848 (w32_initialize_display_info): New function to initialize parts of
2849 display info that are common to both GUI and console frames.
2850 (w32_term_init): Use w32_initialize_display_info. Do not set
2851 Vw32_num_mouse_buttons here, as it is not called for console
2852 frames. Build bitmaps for indicating truncated lines etc.
2853 (x_delete_display): Destroy pre-built bitmaps.
2854 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
2855 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
2856
4516715a
DL
28572000-02-27 Dave Love <fx@gnu.org>
2858
2859 * lisp.h: Add a bunch of prototypes.
2860
171ca836
KH
28612000-02-26 Kenichi Handa <handa@etl.go.jp>
2862
2863 * keyboard.c (read_char): Set `usec' correctly.
2864
4013921d
KH
28652000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2866
2867 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
2868 `lambda', set reg[RRR] to the map index.
2869 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
2870 reg[RRR] to 0. Otherwise, set it to -1.
2871
9244a058
GM
28722000-02-25 Gerd Moellmann <gerd@gnu.org>
2873
2df636f4 2874 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 2875
f43d79c1
GM
28762000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2877
2878 * fileio.c (Ffile_symlink_p): If result starts with a `/'
2879 and contains a `:', prepend `/:'.
2880
2881 * window.c (select_window_1): If selected_window is nil,
2882 don't "swap out" the buffer's point.
2883 (Fset_window_configuration): Set selected_window to nil
2884 before calling Fselect_window.
2885 (unshow_buffer): Don't set point in buffer from window's point
2886 if another more recently selected window also shows the buffer.
2887
bed0c171
GM
28882000-02-25 Gerd Moellmann <gerd@gnu.org>
2889
449c3c52
GM
2890 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
2891
f5b58615
GM
2892 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
2893 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
2894 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
2895 variables.
2896 (DEFAULT_BUSY_CURSOR_DELAY): New define.
2897 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
2898 (hide_busy_cursor): New functions.
2899 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
2900
2901 * minibuf.c (read_minibuf): Cancel busy-cursor.
2902
2903 * keyboard.c (command_loop_1): Call start_busy_cursor before
2904 Fcommand_execute and cancel_busy_cursor after it.
2905 (timer_check): Remove busy-cursor code.
2906 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
2907 cursor timer.
2908
2909 * process.c (wait_reading_process_input): Remove busy-cursor code.
2910
2911 * eval.c (Fsignal): Call cancel_busy_cursor instead of
2912 Fx_hide_busy_cursor.
2913
2914 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
2915 Remove prototyoes.
2916 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
2917
2918 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
2919
2920 * xterm.c (XTread_socket): Remove busy-cursor code.
2921
4eb8436f
GM
2922 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
2923 (build_frame_matrix_from_leaf_window): Put code handling
2924 glyph row's not being a slice of a frame row in #if 0.
2925 (sync_window_with_frame_matrix_rows): New function.
2926 (frame_row_to_window): New function.
2927 (mirror_line_dance): Handle copies between windows.
2928
3cb65b0e
GM
2929 * lread.c (Fload): Use `xfree' instead of `free'.
2930 (init_obarray): Use `xmalloc' instead of `malloc'.
2931
bed0c171
GM
2932 * window.c (Fset_window_buffer): Set WINDOW to the window
2933 after decoding.
2add4349
GM
2934 (coordinates_in_window): Take frame's internal border width
2935 into account.
bed0c171 2936
42088c12
GM
29372000-02-24 Gerd Moellmann <gerd@gnu.org>
2938
2939 * xterm.c (x_display_and_set_cursor): Display cursor of
2940 non-selected windows depending on the setting of
2941 cursor_in_non_selected_windows.
2942
2943 * xdisp.c (cursor_in_non_selected_windows): New variable.
2944 (syms_of_xdisp): DEFVAR_BOOL it.
2945
d1e103b2
GM
29462000-02-23 Gerd Moellmann <gerd@gnu.org>
2947
723e779c
GM
2948 * data.c (Fstring_to_number): If number is greater than what
2949 fits into an integer, return a float.
2950
d1e103b2
GM
2951 * eval.c (specbind): Remove references to
2952 keyword_symbols_constant_flag.
2953
2954 * data.c (keyword_symbols_constant_flag): Removed.
2955 (Fmakunbound, set_internal, syms_of_data): Remove references to
2956 keyword_symbols_constant_flag.
2957
2958 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
2959
214f877f
KH
29602000-02-23 Kenichi Handa <handa@etl.go.jp>
2961
2962 * syntax.c (multibyte_syntax_as_symbol): New variable.
2963 (syms_of_syntax): Declare it as a Lisp variable.
2964 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
2965 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
2966 nonzero, treat all multibyte characters as symbol.
42088c12 2967 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
2968 characters.
2969
130adcb7
EZ
29702000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
2971
3cb65b0e 2972 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
2973 a deleted frame.
2974
17cbbf95
GM
29752000-02-21 Gerd Moellmann <gerd@gnu.org>
2976
2977 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
2978
2979 * xfns.c (x_window_to_frame, x_any_window_to_frame)
2980 (x_non_menubar_window_to_frame): Check the busy-cursor window.
2981
beb0bc36
DL
29822000-02-21 Dave Love <fx@gnu.org>
2983
2984 * frame.c (Vmouse_position_function): New variable.
2985 (Fmouse_position): Use it.
2986 (syms_of_frame): Install it.
2987
2988 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
2989
1d92afcd
GM
29902000-02-20 Gerd Moellmann <gerd@gnu.org>
2991
2992 * fileio.c (Finsert_file_contents): Unbind the binding of
2993 standard-output done by temp_output_buffer_setup.
329eed9f
GM
2994
2995 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
2996 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
2997 (specbind, unbind_to): Handle most common case of non-constant
2998 symbol with trivial value specially.
2999
3000 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
3001
2d06696f
RS
30022000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3003
3004 * data.c (Fmake_variable_buffer_local): Doc fix.
3005 Init found_for_buffer to 0.
3006 (Fmake_variable_frame_local): If the variable has already
3007 been buffer-local, set the check_frame field.
3008
1d4311c3
EZ
30092000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
3010
3011 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
3012 produced for CODING_MODE_LAST_BLOCK requires.
3013
2dc95ddd
DL
30142000-02-18 Dave Love <fx@gnu.org>
3015
3016 * keyboard.c (echo_keystrokes): Remove declaration.
3017 (Vecho_keystrokes) New variable.
3018 (read_char, record_menu_key, read_key_sequence): Use it to allow
3019 use of float value.
3020 (syms_of_keyboard): Change Vecho_keystrokes declaration.
3021
3022 * lread.c: Undef feature selection macros before defining.
3023
f0930f35
GM
30242000-02-18 Gerd Moellmann <gerd@gnu.org>
3025
3026 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
3027 for symbols other than the symbol in question.
3028
e3d4de90
DL
30292000-02-17 Dave Love <fx@gnu.org>
3030
3031 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
3032
0b378936
GM
30332000-02-17 Gerd Moellmann <gerd@gnu.org>
3034
d621caf7
GM
3035 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
3036
0b378936
GM
3037 * alloc.c (enum mem_type): Compile unconditionally.
3038
3b451f74
EZ
30392000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3040
3041 * xfaces.c (tty_defined_color): Don't return faulire indication
3042 for unspecified-fg and unspecified-bg pseudo-colors.
3043
10689a01
GM
30442000-02-17 Gerd Moellmann <gerd@gnu.org>
3045
1216f5e4
GM
3046 * alloc.c (mark_object): Don't mark symbol names in pure space.
3047 (gc_sweep): Don't unmark symbol names in pure space.
3048
3049 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3050 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3051 [GC_MARK_STACK]: New defines.
3052 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
3053 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3054
3055 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3056
3057 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3058 allocate_buffer instead of xmalloc.
3059
3060 * alloc.c (toplevel): Include setjmp.h.
3061 (PURE_POINTER_P): New define.
3062 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3063 (Vdead) [GC_MARK_STACK]: New variable.
3064 (lisp_malloc): Add parameter TYPE, call mem_insert if
3065 GC_MARK_STACK is defined.
3066 (allocate_buffer): New function.
3067 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
3068 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3069 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3070 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3071 (MEM_NIL) [GC_MARK_STACK]: New define.
3072 (struct mem_node) [GC_MARK_STACK]: New structure.
3073 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3074 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3075 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3076 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3077 (mark_stack) [GC_MARK_STACK]: New functions.
3078 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3079 (clear_marks): Removed.
3080 (gc_sweep): Set free conses' car, free floats' type, free
3081 symbols' function to Vdead. Use lisp_free to free buffers.
3082 (init_alloc_once): Initialize Vdead.
3083 (survives_gc_p): Return non-zero for pure objects.
3084
3085 * alloc.c: Add comments throughout the file.
3086
2503c8b1
GM
3087 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3088 that unblocks alarms.
3089
8389e1e2
GM
3090 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3091 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3092 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3093
10689a01
GM
3094 * frame.c (make_frame): Set frame initiallly to `garbaged'.
3095
bfc17d18
KH
30962000-02-17 Kenichi Handa <handa@etl.go.jp>
3097
4a09dee0
KH
3098 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3099 avoid infinite error signaling. Allocate sufficient memory for
3100 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3101
2b927d02
SM
31022000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3103
3104 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3105 depends on the previous behavior.
3106
b49cb764
GM
31072000-02-16 Gerd Moellmann <gerd@gnu.org>
3108
3109 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3110
99e95407
GM
31112000-02-15 Gerd Moellmann <gerd@gnu.org>
3112
3113 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3114
3115 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3116 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3117 write(2).
3118
6ffd3cf7
RS
31192000-02-15 Richard M. Stallman <rms@gnu.org>
3120
3121 * data.c (set_internal): Don't make variable buffer-local
3122 if within a let-binding for the same buffer.
3123 (let_shadows_buffer_binding_p): New function.
3124
3125 * eval.c (specbind): For buffer-local value,
3126 record the current buffer also.
3127 (unbind_to): Cope with that change.
3128
cad53475
GM
31292000-02-15 Gerd Moellmann <gerd@gnu.org>
3130
3131 * window.c (Fsave_window_excursion): Doc fix.
3132
1aa963c8
SM
31332000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3134
3135 * syntax.c (back_comment): Make sure we only consider comment-starters
3136 of the relevant style and return -1 in case of a failure to find the
3137 beginning of the comment.
3138 (Fforward_comment): If back_comment fails, go back to the position just
3139 after the comment-end.
3140 (scan_lists): Add comment describing a very minor bug.
3141
b9b84fd3
SM
31422000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3143
3144 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3145 `completion-regexp-list' in the docstring.
3146
3a28db80
DL
31472000-02-14 Dave Love <fx@gnu.org>
3148
3149 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3150
fb4a568d
SM
31512000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3152
3153 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3154 to Emacs' syntax. Also fix the comment about set/not-set meanings
3155 since Emacs syntax is not the value 0 any more.
3156 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3157 since it's now part of RE_SYNTAX_EMACS.
3158
1063ebb5
DL
31592000-02-12 Dave Love <fx@gnu.org>
3160
3161 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3162 Alpha.
3163
fb07a302
GM
31642000-02-12 Gerd Moellmann <gerd@gnu.org>
3165
3166 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3167
aaf2320c
DL
31682000-02-12 Dave Love <fx@gnu.org>
3169
3170 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3171
3172 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3173 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3174 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3175
3176 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3177
3178 * s/nextstep.h: Don't define HAVE_ALLOCA.
3179
3180 * config.in: Add vfork bits.
3181
eedf8bde
GM
31822000-02-12 Gerd Moellmann <gerd@gnu.org>
3183
3184 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3185 unwind function to undo the effect of stopping atimers.
3186
3187 * keyboard.c (bind_polling_period): Stop all timers except
3188 poll_timer.
3189
3190 * atimer.c (stopped_atimers): New variable.
3191 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3192 New functions.
3193
3194 * atimer.h (stop_other_atimers, run_all_atimers)
3195 (unwind_stop_other_atimers): Add function prototypes.
3196
3197 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3198
8476c2f8
KR
31992000-02-11 Ken Raeburn <raeburn@gnu.org>
3200
3201 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3202 library may depend on jpeg.
3203 (atimer.o): Depends on atimer.c.
3204
0e85e4a3
KH
32052000-02-11 Kenichi Handa <handa@etl.go.jp>
3206
3207 * insdel.c (del_range_1): Call update_compositions.
3208 (del_range_both): Call update_compositions just once..
3209
97fa0cc8
DL
32102000-02-10 Dave Love <fx@gnu.org>
3211
3212 * xfns.c (create_frame_xic): Fix initialization of automatic
3213 aggregates for pcc.
3214
25566a3c
KH
32152000-02-09 Kenichi Handa <handa@etl.go.jp>
3216
3217 * ccl.c (CCL_MAKE_CHAR): New macro.
3218 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3219 registers by CCL_MAKE_CHAR before calling translate_char.
3220 <CCL_TranslateCharacterConstTbl> Likewise.
3221
69da54ba
DL
32222000-02-08 Dave Love <fx@gnu.org>
3223
3224 * lread.c (__EXTENSIONS__): Define.
3225
f7136ee8
GM
32262000-02-08 Gerd Moellmann <gerd@gnu.org>
3227
3228 * puresize.h (BASE_PURESIZE): Increase to 650000.
3229
7768790b
EZ
32302000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3231
3232 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3233 the help message.
3234
38fd211b
EZ
32352000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3236
3237 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3238 md, mh, mb, mr, and me to the fake termcap entry.
3239
66e4690f
KR
32402000-02-06 Ken Raeburn <raeburn@gnu.org>
3241
3242 * sound.c (sound_cleanup): Don't call device close routine if the
3243 function pointer is null.
3244
a75dfea0
AI
32452000-02-06 Andrew Innes <andrewi@gnu.org>
3246
3247 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3248 around image definitions and prototypes.
3249 (gamma_correct) [WINDOWSNT]: New prototype.
3250
3251 * w32term.c (x_make_frame_visible): Replace call to
3252 input_poll_signal with poll_for_input.
3253
3254 * window.c [WINDOWSNT]: Include w32term.h.
3255
3256 * xdisp.c [WINDOWSNT]: Include w32term.h.
3257
3258 * makefile.nt: Add dependencies on w32gui.h.
3259 (OBJ1): Include atimer.obj.
3260 ($(BLD)\atimer.obj): New dependency rule.
3261
3262 * w32.c (sigmask): New function (does nothing).
3263 (sigunblock): Ditto.
3264
3265 * frame.c [WINDOWSNT]: Include w32term.h.
3266
3267 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3268
3269 * lread.c (syms_of_lread): Fix literal newlines.
3270
3271 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3272 the string constant limit (2048 bytes) in MSVC.
3273 (main): Ditto.
3274
59ddecde
GM
32752000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3276
3277 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3278 area.
3279 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3280 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3281 dispatch the event.
3282
07590973
DL
32832000-02-04 Dave Love <fx@gnu.org>
3284
3285 * fileio.c: Remove some unused vars.
3286 (_GNU_SOURCE): Define (for euidaccess).
3287
3288 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3289
3290 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3291 gcpro1, gcpro2.
3292 (read_minibuf): Deal with allow_props correctly.
3293
649351f9
EZ
32942000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3295
3296 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3297
66e4690f 32982000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3299
3300 * search.c (compile_pattern): If a cache entry has a nil regexp,
3301 fill in that entry instead of clobbering a previously cached
3302 string regexp.
3303
66e4690f 33042000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3305
3306 * puresize.h (BASE_PURESIZE): Increase to 610000.
3307
d240a249
GM
33082000-02-02 Gerd Moellmann <gerd@gnu.org>
3309
3310 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3311 can GC.
3312
ca91fb26
KH
33132000-02-02 Kenichi Handa <handa@etl.go.jp>
3314
25660570
KH
3315 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3316 instead of incrementing ic directly.
3317 <CCL_WriteExprConst> Likewise.
3318 <ccl_set_expr>: Set ic to jump_address.
3319
ca91fb26
KH
3320 * fileio.c (e_write): Fix the handling of
3321 CODING_FINISH_INSUFFICIENT_SRC.
3322
2ede9689
DL
33232000-02-01 Dave Love <fx@gnu.org>
3324
3325 * editfns.c (Fpropertize): Doc fix.
3326
3327 * process.c (Fstart_process): Doc fix.
3328
3329 * eval.c: Fix various doc strings not to duplicate information
3330 from help-manyarg-func-alist.
3331
3332 * window.c (Fset_window_margins): Don't make interactive. Doc
3333 fix.
3334
3335 * doc.c (Vhelp_manyarg_func_alist): New variable.
3336 (Fdocumentation): Use it.
3337 (syms_of_doc): Define it.
3338
b6680a0e
GM
33392000-01-31 Gerd Moellmann <gerd@gnu.org>
3340
2cb750ba
GM
3341 * xterm.c (xim_open_dpy): Remove unused local variable.
3342
74e9213b
GM
3343 * emacs.c (USAGE): Use term `display options' instead of `X
3344 options'.
3345
3346 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3347 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3348
b6680a0e
GM
3349 * fns.c (sweep_weak_table): New function.
3350 (sweep_weak_hash_tables): Use it. Keep on marking until there
3351 is no more change.
3352
994c5afe
GM
33532000-01-30 Gerd Moellmann <gerd@gnu.org>
3354
3355 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3356 that XTread_socket does not crash by trying to call XNoOp on a
3357 closed display.
3358
f00276e3
JR
33592000-01-30 Jason Rumney <jasonr@gnu.org>
3360
3361 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3362 Change selected_frame to SELECTED_FRAME ().
3363 (w32_console_mouse_position): Remove #ifndef MULE from around
3364 `insist' parameter.
3365
3366 * makefile.nt: Remove dosfns.obj.
3367
3368 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3369
3370 * w32fns.c (w32_defined_color): Check for valid frame before
3371 applying gamma correction. Eliminate dependency on frame elsewhere.
3372 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3373 (w32_to_x_font): Use resx and resy not height_in and width_in.
3374 (x_to_w32_font): Doc fix.
3375 (xlfd_strip_height): New function to strip and return font height.
3376 (w32_font_match): Compare height separately from rest of xlfd
3377 spec, using xlfd_strip_height.
3378
3379 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3380 width_in. Use w32_defined_color in place of defined_color.
3381
3382 * w32faces.c: Merge more of DOS and X specifics in preparation for
3383 merge with xfaces.c.
3384 (defined_color): Remove FIXME comment.
3385 (tty_color_name): Provide w32-specific function.
3386 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3387
3388 * w32console.c (turn_on_face, turn_off_face): Removed.
3389 (w32_face_attributes): New function.
3390 (Global_variables): Reduce scope where possible.
3391 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3392 fill attribute.
3393 (hl_mode): Don't modify text attributes.
3394 (write_glyphs): Don't do anything if len <= 0. Use
3395 w32_face_attributes to get attributes for drawing. Write
3396 terminating codes using char_attr_normal.
3397 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3398 (update_begin, update_end): Likewise.
3399 (vga_stdcolor_name): New function.
3400 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3401 (Fset_screen_color): Remove char_attr_reverse.
3402
b08e8bb2
GM
34032000-01-29 Gerd Moellmann <gerd@gnu.org>
3404
3405 * xfns.c (xic_set_preeditarea): Take window parameter and
3406 window-relative pixel-positions.
3407
3408 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3409 is its frame's selected window.
3410 (xim_instantiate_callback): Likewise.
3411
3412 * xfns.c (x_create_im): Removed.
3413 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3414 (supported_xim_styles): Renamed from supported_styles.
3415 (best_xim_style): Renamed from best_style.
3416 (create_frame_xic): Renamed from xic_create_frame.
3417 (free_frame_xic): Renamed from xic_destroy_frame.
3418
34192000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3420
3421 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3422 our frames, call XFilterEvent with 2nd parameter `None'.
3423 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3424 returning XBufferOverflow.
3425 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3426 area.
3427 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3428 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3429 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3430 (xim_initialize, xim_close)
3431 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3432 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3433 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3434 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3435
3436 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3437 and `xim_styles'.
3438 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3439 `xic_style' and `xic_xfs'.
3440 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3441 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3442 (FRAME_XIM): Removed.
3443
3444 * xfns.c (supported_styles): New variable.
3445 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3446 (xic_create_xfontset, best_style, xic_create_frame)
3447 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3448 (xic_set_xfontset): New functions.
3449
142e109c
DL
34502000-01-28 Dave Love <fx@gnu.org>
3451
3452 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3453
3454 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3455
b02786f9
GM
34562000-01-28 Gerd Moellmann <gerd@gnu.org>
3457
d060bc9f
GM
3458 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3459 for *scratch* if it already existed.
3460
b02786f9
GM
3461 * emacs.c (USAGE): New macro.
3462 (main): Use it to display usage information.
3463
2c52d7e4
EZ
34642000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3465
3466 Support for the menu-help feature:
3467
3468 * msdos.h: Change prototypes of XMenuAddSelection and
3469 XMenuActivate.
3470
3471 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3472 part of the line to the termscript file.
3473 (IT_clear_to_end): Clear the entire line, not just its beginning.
3474 (menu_help_message, prev_menu_help_message): New variables.
3475 (IT_menu_make_room): Make room for the help_text member.
3476 (IT_menu_display): New argument disp_help; all callers changed.
3477 If disp_help is non-zero, store the help text of the active menu
3478 item in menu_help_message.
3479 (XMenuAddPane): Initialize the help_text member to NULL.
3480 (XMenuAddSelection): New argument help_text. Store it in the
3481 XMenu structure.
3482 (XMenuActivate): New argument help_callback. If the value of
3483 menu_help_message has changed since the last time, display the
3484 menu help message text while waiting for the mouse to move. Clear
3485 the echo area before exiting.
3486 (XMenuDestroy): Free the help_text member.
3487
ffe0bcd1
GM
34882000-01-27 Gerd Moellmann <gerd@gnu.org>
3489
3490 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3491 XMenuAddSelection. Pass help callback to XMenuActivate.
3492 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3493
50dbd23f
EZ
34942000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3495
3496 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3497 and EMACS_SET_USECS.
3498
f5941bf8
GM
34992000-01-26 Dave Love <fx@gnu.org>
3500
6c67ddee
DL
3501 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3502
f5941bf8
GM
3503 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3504 an error may be signalled.
3505
9e49c990
GM
35062000-01-26 Gerd Moellmann <gerd@gnu.org>
3507
fc3cb460
GM
3508 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3509 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3510
9e49c990
GM
3511 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3512
d0c037d8
GM
35132000-01-25 Gerd Moellmann <gerd@gnu.org>
3514
3515 * charset.c (Fstring): If there is a multibyte char among
3516 the args, always return a multibyte string.
3517
e12489f9
GM
35182000-01-25 Gerd Moellmann <gerd@gnu.org>
3519
3520 * sysdep.c (sys_select): Turn atimers off and on instead of
3521 recording and restoring old alarm handler
3522
3523 * process.c (toplevel): Include atimer.h.
3524 (create_process_1): Rewritten.
3525 (create_process): Use atimers instead of alarm.
3526 (wait_reading_process_input) [hpux]: Turn atimers off instead
3527 of turning off SIGALRM.
3528 (wait_reading_process_input): Turn off atimers instead off
3529 calling stop_polling.
3530
3531 * emacs.c (main): Call init_atimer.
3532
3533 * keyboard.c (toplevel): Include systime.h and atimer.h.
3534 (polling_for_input): Removed because unused.
3535 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3536 (poll_timer): New variable.
3537 (poll_for_input, poll_for_input_1): New functions.
3538 (start_polling, stop_polling): Rewritten.
3539
3540 * keyboard.h (polling_for_input): Removed.
3541
3542 * atimer.h, atimer.c: New files.
3543
3544 * Makefile.in (obj): Add atimer.o.
3545 (atimer.o): New target.
3546
3547 * blockinput.h (pending_atimers): Add extern declaration.
3548 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3549
3550 * lisp.h (popup_activated_flag): Add extern declaration.
3551
3552 * xmenu.c (popup_activated_flag): Make externally visible.
3553 (popup_activate_callback) [USE_MOTIF]: Increment
3554 popup_activated_flag.
3555 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3556
3557 * xterm.c (toplevel): Include atimer.h.
3558 (toolkit_scroll_bar_interaction): New variable.
3559 (Fxt_process_timeouts): Removed.
3560 (x_process_timeouts): New function.
3561 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
3562 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
3563 (x_make_frame_visible): Call poll_for_input_1 instead of
3564 input_poll_signal. Don't call alarm.
3565 (x_initialize): Install timer calling x_process_timeouts.
3566
1e5279b9
DL
35672000-01-24 Dave Love <fx@gnu.org>
3568
6c67ddee 3569 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
3570 Don't use -cckr -- apparently not now necessary.
3571
edf6aeb8
EZ
35722000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3573
3574 * msdos.c (IT_menu_display): Truncate long menu lines at the right
3575 screen boundary.
3576
9badad41
JR
35772000-01-23 Jason Rumney <jasonr@gnu.org>
3578
3579 * w32fns.c (w32_defined_color): Apply gamma correction before
3580 trying to map to the palette.
3581 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
3582 to w32_clear_rect.
3583
3584 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
3585 here. Callers changed to always pass real device context.
3586 (w32_draw_bitmap): Likewise.
3587 (w32_get_glyph_overhangs): Likewise.
3588 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
3589 one.
3590 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
3591 pfnSetScrollInfo and SetScrollRange.
3592 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
3593 back into MULE characters after decoding them.
3594 (x_get_glyph_face_and_encoding): Likewise.
3595 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
3596 GetCharABCWidthsW fails, since this is defined on Windows 9x.
3597 (x_produce_glyphs): Calculate per char metrics for a character
3598 that we know exists in default font when font_not_found_p is true.
3599
63bd786b
JR
36002000-01-22 Jason Rumney <jasonr@gnu.org>
3601
3602 * makefile.nt (intervals.obj, composite.obj): New modules.
3603 (composite.h): Added as dependency where appropriate.
3604
3605 * w32gui.h (XGCValue): New struct for emulating X GCs.
3606
3607 * w32term.h (XCharStruct): New struct for emulating X.
3608
3609 * w32console.c (turn_on_face, turn_off_face): New functions.
3610 (change_line_highlight): New prototype for new redisplay.
3611 (write_glyphs): Support multibyte text. Support faces.
3612
3613 * w32faces.c: Complete rewrite for new redisplay based on new
3614 xfaces.c.
3615
3616 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
3617 throughout. struct frame * in place of FRAME_PTR.
3618 Skeleton support for images, toolbars, tooltips from xfns.c.
3619 (Fx_create_frame): Use system default for default scroll bar
3620 width.
3621 (w32_get_arg): Renamed from x_get_arg.
3622 (Fx_file_dialog): New function.
3623 (w32_list_fonts): Check cache before asking system.
3624 (Vw32_enable_synthesized_fonts): New variable.
3625 (Vw32_enable_italics): Obsolete, removed.
3626
3627 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3628 Use SELECTED_FRAME macro.
3629
3630 * w32menu.c: Add skeleton support for help strings on menus.
3631 (add_menu_item): Native checkbox and radio support added, but not
3632 yet enabled due to bugs.
3633 (push_menu_item): Add parameters type, selection and help.
3634 Callers updated.
3635 Formatting changes to reduce unnecessary diffs with xmenu.c.
3636
3637 * w32select.c (Fw32_set_clipboard_data): Update call to
3638 find_charset_in_str.
3639
3640 * w32term.c: Complete rewrite for new redisplay based on new
3641 xterm.c with necessary sections merged back in from old w32term.c.
3642
6ffd3cf7 36432000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
3644
3645 * data.c (set_internal): Further fix in same criterion.
3646
6ffd3cf7 36472000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
3648
3649 * data.c (set_internal): Fix the criteria for whether
3650 to swap out the old cached binding.
3651
60af03f1
DL
36522000-01-19 Dave Love <fx@gnu.org>
3653
3654 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
3655
f9be074f
KH
36562000-01-18 Kenichi Handa <handa@etl.go.jp>
3657
3658 * regex.c (re_compile_fastmap): While checking a range table for
3659 `charset', skip flag bits for a character class correctly.
3660
52b8dbf9
GM
36612000-01-17 Gerd Moellmann <gerd@gnu.org>
3662
d36100c9
GM
3663 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
3664
52b8dbf9
GM
3665 * xfns.c (x_window): Call lw_create_widget with new parameter
3666 list.
3667
3668 * widget.c (EmacsFrameSetCharSize): Change size of children first
3669 because of problems with main window geometry management under
3670 Lesstif.
3671
3672 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
3673 MENU_ITEMS_ITEM_.*.
3674 (MENU_ITEMS_ITEM_HELP): New enumerator.
3675 (push_menu_item): Add parameter HELP. Record help in menu_items.
3676 (single_menu_item, single_submenu, list_of_items): Call
3677 push_menu_item with new parameter.
3678 (single_submenu): Set help string in widget value.
3679 (menu_highlight_callback): New function.
3680 (set_frame_menubar): Call lw_create_widget with new
3681 parameter list.
3682 (xmenu_show, xdialog_show): Ditto.
3683
3139018f
GM
36842000-01-13 Gerd Moellmann <gerd@gnu.org>
3685
3686 * sound.c (Fplay_sound): Improve doc string.
3687
83c8f461
RS
36882000-01-11 Richard M. Stallman <rms@gnu.org>
3689
3690 * lisp.h (set_internal): Enter the new arg.
3691
3692 * eval.c (specbind): Record buffer-local variables specially,
3693 indicating which buffer's binding was saved.
3694 (unbind_to): Restore buffer-local variables specially
3695 in the proper buffer.
3696
3697 * data.c (set_internal): New arg BUF.
3698
3699 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
3700 * data.c (Fset): Pass new arg to set_internal.
3701 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
3702
1fab1775
GM
37032000-01-11 Gerd Moellmann <gerd@gnu.org>
3704
3705 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
3706 xprintsym.
3707
83c8f461 37082000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
3709
3710 * minibuf.c (Ftry_completion): Doc fix.
3711
7a85e4df
GM
37122000-01-11 Gerd Moellmann <gerd@gnu.org>
3713
3714 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
3715 vector, too.
3716
a970dae4
AS
37172000-01-11 Andreas Schwab <schwab@suse.de>
3718
3719 * coding.c (code_convert_region): Initialize total_skip.
3720
c65d14ee
DL
37212000-01-08 Dave Love <fx@gnu.org>
3722
3723 * eval.c (Fuser_variable_p): Check customizability too.
3724
834938d2
GM
37252000-01-07 Gerd Moellmann <gerd@gnu.org>
3726
3727 * minibuf.c (Fcompleting_read): Doc fix.
3728
e0303cd6
GM
37292000-01-05 Gerd Moellmann <gerd@gnu.org>
3730
8a26744b
GM
3731 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
3732 -L /usr/local/lib.
3733
e0303cd6
GM
3734 * xfns.c (x_create_im): New function to set IM and IC of a frame.
3735 Check that input style is supported before trying to create an
3736 IC for it.
3737 (x_window): Call x_create_im.
3738
2e471eb5
GM
37392000-01-04 Gerd Moellmann <gerd@gnu.org>
3740
560a7bd2
GM
3741 * xfns.c (current_gif_memory_src): New variable.
3742 (gif_load): Record the address of the current memory source
3743 in current_gif_memory_src.
3744 (gif_read_from_memory): Use current_gif_memory_src.
3745
f9ee84a3
GM
3746 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
3747 macros statement form.
3748
d1299cde
GM
3749 * sound.c (struct sound): Renamed from struct sound_file.
3750 (struct sound): Add members `data' and `header_size'.
3751 (enum sound_attr): Add SOUND_DATA.
3752 (current_sound, current_sound_device): Variables renamed from
3753 sound_file and sound_device.
3754 (parse_sound): Parse :data.
3755 (parse_sound): Handle sound data in strings.
3756 (find_sound_type): Function renamed from find_sound_file_type.
3757 (wav_init, au_init): Fail if sound's header_size is smaller than
3758 needed header size.
3759 (wav_play, au_play): Play sounds from string data.
3760
2e471eb5
GM
3761 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
3762
3763 * lisp.h: Add prototype for allocate_string_data.
3764
3765 * alloc.c (Fgarbage_collect): Return number of live and free
3766 strings.
3767
3768 * alloc.c (mark_buffer): Remove code in #if 0.
3769 (gc_sweep): Ditto.
3770 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
3771 (strings_consed): New variable.
3772 (allocate_string): Set it.
3773 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
3774 (Fmemory_use_counts): Return strings_consed. Use Flist.
3775
3776 * alloc.c: General cleanup in comments etc. Remove conditional
3777 compilation for `standalone'.
3778
3779 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
3780
3781 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
3782 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
3783 (DONT_COPY_FLAG): Removed.
3784 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
3785 (struct sdata, struct sblock): New
3786 (struct string_block): Rewritten.
3787 (STRINGS_IN_STRING_BLOCK): New macro.
3788 (oldest_sblock, current_sblock, total_strings, total_free_strings)
3789 (large_sblocks, string_blocks, string_free_list): New variables.
3790 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
3791 (init_strings): Rewritten.
3792 (allocate_string, allocate_string_data, compact_small_strings)
3793 (free_large_strings, sweep_strings): New functions.
3794 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
3795 (struct string_block_head, current_string_block)
3796 (first_string_block, large_string_blocks, STRING_FULLSIZE)
3797 (STRING_PAD): Removed.
3798 (make_uninit_multibyte_string, make_pure_string): Rewritten.
3799 (Fgarbage_collect): Don't set mark bit in large strings.
3800 (mark_object): Mark strings differently. Mark symbol names
3801 differently.
3802 (survives_gc_p): Test marked strings differently.
3803 (gc_sweep): Sweep strings differently, unmark strings in
3804 symbol names.
3805 (compact_strings): Removed.
3806
42608ba8
EZ
38072000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
3808
3809 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
3810 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
3811
e0a09e1a
KH
38122000-01-04 Kenichi Handa <handa@etl.go.jp>
3813
dd9f0750
KH
3814 * fileio.c (Finsert_file_contents): Signal error if visiting file
3815 in a non-empty buffer.
3816
3c0f3b15 3817 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 3818
44cd3ae5
GM
38192000-01-03 Gerd Moellmann <gerd@gnu.org>
3820
3821 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
3822 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
3823
3824 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
3825
c182a70f
EZ
38262000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3827
3828 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
3829 need to test for MSDOS frames.
3830
24480d5b
EZ
38312000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3832
3833 * dosfns.c (unspecified_colors): Remove.
3834 (msdos_stdcolor_idx): Use global variables unspecified_fg and
3835 unspecified_bg.
3836 (msdos_stdcolor_name): Return strings for unspecified fore- and
3837 back-ground colors.
3838
3839 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 3840 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
3841 (tty_color_name): Return Lisp strings for unspecified fore- and
3842 back-ground colors.
3843 (Finternal_set_lisp_face_attribute): Remove the special treatment
3844 for Qunspecified_{f,b}g.
3845 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
3846 string.
3847
047f434a
GM
38482000-01-03 Gerd Moellmann <gerd@gnu.org>
3849
3850 * xdisp.c (reseat_at_next_visible_line_start): Position before
3851 newline only if ending up on a newline.
3852 (next_element_from_ellipsis): Return success. Handle case of
3853 displaying no ellipsis. Fix case of ellipsis defined in display
3854 table.
3855 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
3856 returns 0.
3857
d684c676
EZ
38582000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3859
3860 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
3861 (Fcolor_supported_p): Renamed from face-color-supported-p.
3862
5fe1d139
EZ
38632000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3864
3865 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
3866 list of colors renamed to tty-defined-color-alist.
3867 (tty_color_name): Pass the frame to tty-color-by-index.
3868 (realize_tty_face): tty-color-alist is now a function which
3869 accepts the frame as argument.
3870
3871 * term.c (Ftty_display_color_p): Accept an optional argument
3872 FRAME.
3873
816be8b8
EZ
38742000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3875
3876 * term.c (insert_glyphs): Pass glyph, not &glyph, to
3877 encode_terminal_code.
3878
b635321e
EZ
38792000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3880
3881 * dispnew.c (mode_line_string): Support termcap frames as well.
3882
9b784e96
GM
38832000-01-01 Gerd Moellmann <gerd@gnu.org>
3884
27189709
GM
3885 * syntax.c (Fforward_word): Undo previous change.
3886
3887 * editfns.c (Fconstrain_to_field): Don't constrain if
3888 inhibit-field-text-motion is non-nil.
3889 (Fline_beginning_position): Undo previous change.
3890 (Fline_end_position): Ditto.
3891
3892 * syntax.c (Fforward_word): Notice field boundaries only if
3893 inhibit-field-text-motion is nil.
3894
3895 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
3896
3897 * editfns.c (Vinhibit_field_text_motion): New variable.
3898 (inhibit-field-text-motion): New DEFVAR_LISP.
3899 (Fline_beginning_position, Fline_end_position): Notice field
3900 boundaries only if inhibit-field-text-motion is nil.
3901
45158a91
GM
3902 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
3903 All calls adjusted.
3904 (x_build_heuristic_mask): Likewise.
3905 (xbm_load_image_from_file): Change error output.
3906 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
3907 (gif_load, gs_load, x_kill_gs_process): Ditto.
3908
9b784e96
GM
3909 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
3910 color indices when accessing raster pixels.
63cec32f
GM
3911 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
3912 one of :file or :data.
3913 (enum pbm_keyword_index): Add PBM_DATA.
3914 (pbm_format): Add :data.
3915 (pbm_image_p): Allow either :file or :data.
3916 (pbm_read_file): New function.
3917 (pbm_scan_number): Rewritten to read from string.
3918 (pbm_load): Support :data.
9b784e96 3919
5ad6a5fb
GM
39201999-12-31 Gerd Moellmann <gerd@gnu.org>
3921
3922 * xfns.c: New image functions adapted to Emacs conventions.
3923 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
3924 variable `file'.
3925
63448a4d
WP
39261999-12-31 William M. Perry <wmperry@aventail.com>
3927
3928 * xfns.c (jpeg_format): Added the :data keyword
3929 (jpeg_image_p): JPEG is valid with :file _or_ :data
3930 (jpeg_memory_src): Defined new JPEG image source to read from a
3931 memory buffer.
3932 (jpeg_load): Pay attention to the :data keyword if specified.
3933 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
3934 found.
3935 (png_format): Added the :data keyword
3936 (png_image_p): PNG is valid with :file _or_ :data
3937 (png_read_from_memory): New PNG read function to read from a
3938 memory buffer.
3939 (png_load): Pay attention to the :data keyword if specified. Uses
3940 png_set_read_fn() instead of png_init_io() if specified.
3941 (tiff_format): Added the :data keyword for TIFF images.
3942 (tiff_image_p): TIFF is valid with :file _or_ :data
3943 (tiff_read_from_memory): Defined new TIFF I/O functions to read
3944 from a memory buffer.
3945 (tiff_load): Pay attention to the :data keyword if specified.
3946 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
3947 (gif_format): Added the :data keyword
3948 (gif_image_p): GIF is valid with :file _or_ :data
3949 (gif_read_from_memory): New GIF input function to read from a
3950 memory buffer.
c65d14ee 3951 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
3952 instead of DGifOpenFileName() if specified.
3953
c880678e
GM
39541999-12-31 Gerd Moellmann <gerd@gnu.org>
3955
3956 * xdisp.c (next_element_from_buffer): Change assertion at the end
3957 because it doesn't hold when there's an overlay string at the end
3958 from which we deliver an image.
3959
8ccb9a54
EZ
39601999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
3961
3962 * msdos.c (IT_update_begin): Don't dereference members of struct
3963 window for deleted windows.
3964
12ce2351
GM
39651999-12-30 Gerd Moellmann <gerd@gnu.org>
3966
a915c648
GM
3967 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
3968 a hook, and the hook has a non-nil `no-self-insert' property, let
3969 the return value of the hook specify whether an expansion took
3970 place. If it returns nil, no expansion has been performed.
3971
12ce2351
GM
3972 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
3973 differently.
3974
04ee4f45
EZ
39751999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
3976
3977 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
3978
7f4bc0c3
EZ
39791999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
3980
3981 * dispnew.c (mode_line_string): Support MS-DOS frames.
3982
dac204bc
GM
39831999-12-29 Gerd Moellmann <gerd@gnu.org>
3984
3985 * eval.c (syms_of_eval): Initialize debugger_may_continue.
3986
7b712ad8
KH
39871999-12-29 Kenichi Handa <handa@etl.go.jp>
3988
3989 * process.c (read_process_output): Fix the args CHARPOS and LENINS
3990 to signal_after_change.
3991
adb9900f
EZ
39921999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
3993
41ad069b
EZ
3994 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
3995 dimensions changed, invalidate the mouse highlight info.
3996 (disable_mouse_highlight, help_echo, previous_help_echo): New
3997 variables.
3998 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
3999 (fast_find_position, IT_note_mode_line_highlight)
4000 (IT_note_mouse_highlight): New functions.
4001 (IT_update_begin): If the redisplay affects the window where the
4002 mouse highlight is, clear the highlight. If the frame where the
4003 highlight was displayed was killed, invalidate the highlight
4004 info.
4005 (IT_update_end): Reset the highlight flag. Reset the mouse
4006 highlight-defer flag.
4007 (IT_frame_up_to_date): New function, if mouse highlight was
4008 deferred due to GC, do it now.
4009 (internal_terminal_init): Initialize mouse-highlight related
4010 members of the_only_x_display. Assign IT_frame_up_to_date to
4011 frame_up_to_date_hook.
4012 (dos_rawgetc): If the mouse moved, update mouse highlight. If
4013 help_echo changed value, generate a HELP_EVENT event.
4014 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
4015
adb9900f
EZ
4016 * msdos.h (struct display_info): New.
4017 (struct x_output): Add the display_info member.
4018 (FRAME_X_DISPLAY_INFO): New macro.
4019
481b5054
GM
40201999-12-28 Gerd Moellmann <gerd@gnu.org>
4021
4022 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
4023 if MODIFF > 1.
6448a6b3 4024 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
4025
4026 * buffer.c (modify_overlay): Always compute unchanged info.
4027
a2882b0d
KH
40281999-12-27 Kenichi Handa <handa@etl.go.jp>
4029
4030 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
4031
89ba5b5f
KH
40321999-12-27 Kenichi Handa <handa@etl.go.jp>
4033
4034 The following changes are to use more bits for face IDs.
4035
4036 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
4037 lowest 8 bits are single byte character code, the bits above are
4038 face ID.
481b5054 4039 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4040 above.
481b5054
GM
4041 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4042 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4043
4044 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4045 of GLYPH_MASK_CHAR.
4046
4047 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4048 of GLYPH_MASK_CHAR.
4049
4050 * dispextern.h (struct glyph): Make face_id and padding_p the top
4051 level members. Change members in union `u'.
4052 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4053 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4054 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4055 (CHAR_GLYPH_PADDING_P): Likewise.
4056 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4057 characters.
4058
481b5054 4059 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4060 for the change of struct glyph.
4061 (line_draw_cost): Adjusted for the change of
4062 GLYPH_FROM_CHAR_GLYPH.
4063 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4064
4065 * term.c (encode_terminal_code): Adjusted for the change of struct
4066 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4067 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4068 change of struct glyph.
4069
4070 * xdisp.c: All codes adjusted for the change of struct glyph.
4071
4072 * xterm.c: All codes adjusted for the change of struct glyph.
4073
5bcd116c
KH
40741999-12-27 Kenichi Handa <handa@etl.go.jp>
4075
4076 * composite.h (struct composition): Change the order of declaring
4077 members to reduce the byte size of the structure.
4078
f21b06b7
GM
40791999-12-25 Gerd Moellmann <gerd@gnu.org>
4080
4081 * search.c (looking_at_1): Reset immediate_quit before modifying
4082 global data.
4083
e36557c9
KH
40841999-12-24 Kenichi Handa <handa@etl.go.jp>
4085
4086 * process.c (read_process_output): Fix the arg FROM to
4087 update_compositions.
4088
83c8f461 40891999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4090
4091 * search.c (Freplace_match): For nonliteral replacement in buffer,
4092 construct all the new text first, then insert all at once.
4093
0b863bd9
DL
40941999-12-22 Dave Love <fx@gnu.org>
4095
4096 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4097
6d8e8ef3
GM
40981999-12-22 Gerd Moellmann <gerd@gnu.org>
4099
28d7281d
GM
4100 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4101 lead to size changes to after the X window has been created.
4102
e22ef6eb 4103 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4104 variable in xassert.
4105
8affcced
KH
41061999-12-22 Kenichi Handa <handa@etl.go.jp>
4107
4108 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4109 only when the frame is not for a window system.
8affcced 4110
f2be1146
GM
41111999-12-22 Gerd Moellmann <gerd@gnu.org>
4112
deca1348
GM
4113 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4114 redisplay after changing the multibyteness of a buffer.
4115
f2be1146
GM
4116 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4117 frame's X window to XFilterEvent instead of None because that's
4118 the X window for which the IC was created. This makes dead
4119 accents work when the pointer is not in Emacs' frame.
4120 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4121
a744a2ec
DL
41221999-12-20 Dave Love <fx@gnu.org>
4123
4124 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4125
9e6985ed
GM
41261999-12-19 Gerd Moellmann <gerd@gnu.org>
4127
4128 * eval.c (debugger_may_continue): New variable.
4129 (syms_of_eval): Add a DEFVAR_BOOL for it.
4130 (call_debugger): Bind it.
4131
3b620731
EZ
41321999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4133
4134 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4135 fp->tty_reverse_p is set, unless the computed colors are identical
4136 to frame colors. Print both original and computed colors to
4137 termscript file.
4138 (IT_write_glyphs): Track the changes in handling of composite
4139 characters.
4140 (IT_set_frame_parameters): Don't set frame colors from
4141 unspecified-fg and unspecified-bg pseudo-colors.
4142
0f9a51c4
DL
41431999-12-17 Dave Love <fx@gnu.org>
4144
4145 * data.c (Fkeywordp): New function.
4146 (syms_of_data): Install it.
4147
363e4e42
EZ
41481999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4149
4150 * xfaces.c (tty_defined_color): Fix last change.
4151
cfad01b4
GM
41521999-12-15 Gerd Moellmann <gerd@gnu.org>
4153
4154 * xdisp.c (redisplay_window) <optional new window start>: Check
4155 that window start is in [BEGV..ZV].
4156
f9d2fdc4
EZ
41571999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4158
4159 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4160 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4161
4162 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4163 (syms_of_xfaces): Initialize and staticpro them.
4164 (tty_defined_color): If the color name is unspecified-fg or
4165 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4166 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4167 (tty_color_name): If the color pixel value is either
4168 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4169 Qunspecified_fg or Qunspecified_bg, respectively.
4170 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4171 and Qunspecified_bg for foreground and background colors.
4172 (realize_default_face): If the foreground and background colors
4173 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4174 (realize_tty_face): By default, set the face colors to
4175 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4176 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4177 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4178 Reverse the colors if the default colors were reversed.
4179
4180 * dispnew.c (init_display): Initialize the frame pixels of the
4181 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4182 FACE_TTY_DEFAULT_BG_COLOR.
4183
4184 * term.c (turn_on_face): If the default fore- and background
4185 colors are reversed, enter inverse video mode. Don't send color
4186 escape sequences for unspecified foreground and background colors.
4187 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4188
4189 * dosfns.c (unspecified_colors): New variable.
4190 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4191 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4192 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4193 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4194 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4195 Qunspecified_bg, respectively.
4196
4197 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4198 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4199
e19539f1
KH
42001999-12-15 Kenichi Handa <handa@etl.go.jp>
4201
4202 * coding.c (code_convert_region): Fix the secoding arg to
4203 update_compositions.
4204
5ec14d3c
KH
42051999-12-15 Kenichi Handa <handa@etl.go.jp>
4206
4207 The following changes are for the new composition mechanism. We
4208 have deleted `composition' charset and composite characters,
4209 instead introduced a special text property `composition'.
4210
4211 * Makefile.in (INTERVAL_SRC): Include composite.h.
4212 (INTERVAL_OBJ): Include composite.o.
4213 (SOME_MACHINE_OBJECTS): Include composite.o.
4214 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4215 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4216 Depend on composite.h.
4217 (doc.o): Depend on charset.h.
4218 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4219 (composite.o): New target.
4220
4221 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4222
4223 * callproc.c (Fcall_process): Call code_convert_string to encode
4224 arguments. Use CODING_REQUIRE_DECODING to check if the process
4225 output should be decoded.
4226
4227 * casefiddle.c: Include composite.h.
4228 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4229 multibyte character. Adjusted for the change of CHAR_STRING.
4230 (casify_region): Likewise. Call update_compositions.
4231
4232 * category.h (CATEGORY_SET): Delete codes for a composite
4233 character.
4234
4235 * category.c (word_boundary_p): Delete codes for a composite
4236 character.
4237 (Fmake_category_table): New function.
4238 (syms_of_category): Defsubr it.
4239
4240 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4241 (ccl_driver): Delete codes for a composite character.
4242
4243 * charset.h: In this entry, just `Modified' means that codes for a
4244 composite character is deleted.
4245 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4246 (charset_composition) (MIN_CHAR_COMPOSITION)
4247 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4248 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4249 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4250 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4251 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4252 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4253 Modified.
4254 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4255 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4256 non_ascii_char_to_string.
4257 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4258 (STRING_CHAR_AND_LENGTH): Likewise.
4259 (FETCH_CHAR_ADVANCE): New macro.
4260 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4261 (MAX_MULTIBYTE_LENGTH): New macro.
4262 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4263 (find_charset_in_str): Argument adjusted.
4264 (CHAR_LEN): Modified.
4265
4266 * charset.c: In this entry, just `Modified' means that codes for a
4267 composite character is deleted.
4268 (Qcomposition) (leading_code_composition)
4269 (charset_composition) (min_composite_char) (cmpchar_table)
4270 (cmpchar_table_size) (n_cmpchars): Deleted.
4271 (SPLIT_COMPOSITE_SEQ): Deleted.
4272 (SPLIT_MULTIBYTE_SEQ): Modified.
4273 (char_to_string): Renamed from non_ascii_char_to_string.
4274 Modified.
4275 (string_to_char): Renamed from string_to_non_ascii_char.
4276 (split_string): Renamed from split_non_ascii_string.
4277 (char_printable_p) (Fsplit_char)
4278 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4279 (char_bytes) (Fchar_width) (strwidth): Modified.
4280 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4281 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4282 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4283 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4284 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4285 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4286 (Fcmpchar_cmp_count): Deleted.
4287 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4288 (init_charset_once): Modified.
4289 (syms_of_charset): Modified.
4290
4291 * cmds.c (internal_self_insert): Adjusted for the change of
4292 CHAR_STRING.
4293
4294 * coding.h (emacs_code_class_type): Delete the member
4295 EMACS_leading_code_composition.
4296 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4297 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4298 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4299 (COMPOSING_WITH_RULE_P): Macros deleted.
4300 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4301 macros.
4302 (struct composition_data): New structure.
4303 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4304 (struct coding_system): New members composition_rule_follows,
4305 cmp_data, cmp_data_start, cmp_data_index.
4306 (coding_save_composition) (coding_free_composition_data)
4307 (coding_adjust_composition_offset): Extern them.
4308
4309 * coding.c: Include composite.h.
4310 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4311 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4312 of multibyte code here.
4313 (DECODE_CHARACTER_DIMENSION2): Likewise.
4314 (detect_coding_emacs_mule): Change the case label from
4315 EMACS_leading_code_composition to 0x80.
4316 (detect_coding_iso2022): Handle new composition sequence.
4317 (DECODE_ISO_CHARACTER): Likewise.
4318 (check_composing_code): Deleted.
4319 (coding_allocate_composition_data): New function.
4320 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4321 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4322 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4323 (decode_coding_iso2022): Handle new composition sequence.
4324 (ENCODE_ISO_CHARACTER): Don't check composition here.
4325 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4326 (ENCODE_COMPOSITION_NO_RULE_START)
4327 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4328 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4329 (ENCODE_COMPOSITION_FAKE_START): New macro.
4330 (encode_coding_iso2022): Handle new composition sequence.
4331 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4332 (encode_coding_sjis_big5): Ignore composition.
4333 (setup_coding_system): Initialize new members of struct
4334 coding_system. Enable composition only when the coding system has
4335 `composition' property t.
4336 (coding_free_composition_data) (coding_adjust_composition_offset)
4337 (coding_save_composition) (coding_restore_composition): New
4338 functions.
4339 (code_convert_region): Call coding_save_composition for encoding
4340 and coding_allocate_composition_data for decoding. Don't skip
4341 ASCII characters if we handle composition on encoding. Call
4342 signal_after_change with Check_BORDER.
4343 (code_convert_string): Call coding_save_composition for encoding
4344 and coding_allocate_composition_data for decoding. Don't skip
4345 ASCII characters if we handle composition on encoding.
4346 (code_convert_string1): Set Vlast_coding_system_used after calling
4347 code_convert_string.
4348 (code_convert_string_norecord): Disable composition.
4349 (Fset_terminal_coding_system_internal): Likewise.
4350 (Fset_safe_terminal_coding_system_internal): Likewise.
4351 (Fset_keyboard_coding_system_internal): Likewise.
4352 (init_coding_once): Set emacs_code_class[0x80] to
4353 EMACS_invalid_code.
4354
4355 * composite.h: New file.
4356
4357 * composite.c: New file.
4358
4359 * data.c (Faref): Delete codes for a composite character..
4360 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4361
4362 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4363 (struct glyph): Add new sub-structure cmp to the union `u'.
4364 (enum display_element_type): New member IT_COMPOSITION.
4365 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4366 (struct it): New members cmp_id, cmp_len.
4367
4368 * dispnew.c (direct_output_forward_char): Check point moving into
4369 or out of a composition. If so, give up direct method.
4370
4371 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4372
4373 * editfns.c (Fchar_to_string): Adjusted for the change of
4374 CHAR_STRING.
4375 (general_insert_function): Likewise.
4376 (Finsert_char): Likewise.
4377 (Fsubst_char_in_region): Likewise. Call update_compositions.
4378 (Ftranslate_region): Call update_compositions.
4379 (Ftranspose_regions): Call update_compositions.
4380
4381 * emacs.c (main): Call syms_of_composite.
4382
4383 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4384 CHAR_STRING.
4385 (Finsert_file_contents): Set Vlast_coding_system_used before
4386 calling signal_after_change. Call update_compositions if some
4387 texts are inserted..
4388 (Fwrite_region): Adjusted for the change of a_write and e_write.
4389 (a_write): Argument changed. Work based on character position,
4390 not byte position.
4391 (e_write): Argument changed. Handle new way of composition.
4392
4393 * fns.c (Flength): The length of char-table is MAX_CHAR.
4394 (concat): Adjusted for the change of CHAR_STRING.
4395 (Ffillarray): Adjusted for the change of CHAR_STRING.
4396 (Fset_char_table_default): Delete codes for a composite character.
4397 (hash_put): Return hash index.
4398
4399 * fontset.h (struct font_info): New member vertical_centering.
4400 (Vvertical_centering_font_regexp): Extern it.
4401
4402 * fontset.c (Vvertical_centering_font_regexp): New variable.
4403 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4404 Set Vignore_relative_composition to nil.
4405 (fs_load_font): Initialize `vertical_centering' of struct
4406 font_info.
4407
4408 * indent.c (check_composition): New function.
4409 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4410 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4411 (current_column_1): Handle new way of composition.
4412 (Fmove_to_column): Likewise.
4413 (compute_motion): Likewise.
4414
4415 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4416 (insert_char): Likewise.
4417 (insert): Call update_compositions.
4418 (insert_and_inherit): Likewise.
4419 (insert_before_markers): Likewise.
4420 (insert_before_markers_and_inherit): Likewise.
4421 (insert_from_string): Likewise.
4422 (insert_from_string_before_markers): Likewise.
4423 (insert_from_buffer): Likewise.
4424 (replace_range): Likewise.
4425 (count_combining_composition): Deleted.
4426 (count_combining_before): Delete codes for a composite character.
4427 (count_combining_after): Likewise.
4428 (del_range_1): Call update_compositions.
4429 (del_range_byte): Likewise.
4430 (del_range_both): Likewise.
4431 (Fcombine_after_change_execute): Likewise.
4432
4433 * intervals.h: Include composite.h.
4434 (get_property_and_range): Extern it.
4435 (Vtext_property_default_nonsticky): Extern it.
4436
4437 * intervals.c (adjust_intervals_for_insertion): To check stickines
4438 of properties, pay attention to text-property-default-nonsticky.
4439 (merge_properties_sticky): Likewise.
4440 (get_property_and_range): New function.
4441
4442 * keyboard.c (Vdisable_point_adjustment): New variable.
4443 (Vglobal_disable_point_adjustment): New variable.
4444 (syms_of_keyboard): Declare them as Lisp variables.
4445 (command_loop_1): Check them and call adjust_point_for_property if
4446 necessary.
4447 (adjust_point_for_property): New function.
4448
4449 * keymap.c (push_key_description): Adjusted for the change of
4450 CHAR_STRING.
4451 (Ftext_char_description): Likewise.
4452
4453 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4454 (hash_put): Adjusted for the change of the definition.
4455 (signal_after_change): Likewise.
4456 (check_point_in_composition): Extern it.
4457
4458 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4459 Delete a code that handles an invalid too-long multibyte sequence
4460 because we are now sure that we never encounter with such a
4461 sequence.
4462 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4463 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4464 (init_obarray): Likewise.
4465 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4466
4467 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4468
4469 * process.c: Include composite.h.
4470 (read_process_output): Call update_compositions.
4471
4472 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4473
4474 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4475
4476 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4477 character.
4478
4479 * term.c (encode_terminal_code): Delete codes for a composite
4480 character. Adjusted for the change of CHAR_STRING.
4481 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4482 Delete codes for a composite character.
4483
4484 * textprop.c (Vtext_property_default_nonsticky): New variable
4485 (syms_of_textprop): Declare it as a Lisp variable.
4486
4487 * window.c (Frecenter): Clear all caches of compositions.
4488
4489 * xdisp.c (it_props): Add an entry for composition.
4490 (face_before_or_after_it_pos): For composition, check face of a
4491 character after the composition.
4492 (handle_composition_prop): New function.
4493 (get_next_display_element): Adjusted for the change of
4494 CHAR_STRING.
4495 (set_iterator_to_next): Handle the case that it->method ==
4496 next_element_from_composition.
4497 (next_element_from_composition): New function.
4498 (message_dolog): Adjusted for the change of CHAR_STRING.
4499 (set_message_1): Likewise.
4500 (check_point_in_composition): New function.
4501 (reconsider_clip_changes): If point moved into or out of
4502 composition, set b->clip_changed to 1 to force updating of the
4503 screen.
4504 (disp_char_vector): Delete codes for a composite character.
4505 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4506
4507 * xfaces.c (choose_face_fontset_font): Delete codes for a
4508 composite character.
4509 (realize_x_face): Likewise. Change a place to set local variable
4510 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4511
4512 * xfns.c: Include intervals.h.
4513 (syms_of_xfns): Make `display' property nonsticky by default.
4514
4515 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4516 for find_charset_in_str.
4517
4518 * xterm.h (struct x_output): Change member font_baseline to
4519 baseline_offset.
4520
4521 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4522 for composition.
4523 (x_append_composite_glyph): New function.
4524 (VCENTER_BASELINE_OFFSET): New macro.
4525 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4526 of struct it for the composition. Cache pixel offsets in the
4527 struct composition. Delete codes for a composite character.
4528 Handle Vignore_relative_composition in composition code.
4529 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4530 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4531 (x_compute_glyph_string_overhangs): Likewise.
4532 (x_get_glyph_overhangs): Delete codes for a composite character.
4533 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4534 (x_draw_glyph_string_background): Likewise. Delete codes for
4535 checking s->gidx for a composition.
4536 (x_draw_glyph_string_foreground): Delete code for a composite
4537 character.
4538 (x_draw_composite_glyph_string_foreground): New function.
4539 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4540 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4541 (struct work): Deleted.
4542 (x_fill_composite_glyph_string): Argument changed. Mostly
4543 rewritten for that.
4544 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4545 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4546 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4547 (BUILD_GLYPH_STRINGS): For composition, call
4548 BUILD_COMPOSITE_GLYPH_STRING.
4549 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4550 f->output_data.x->font_baseline.
4551
c3c60f13
GM
45521999-12-14 Gerd Moellmann <gerd@gnu.org>
4553
4554 * xterm.c (show_mouse_face): Don't use updated_area, use
4555 TEXT_AREA.
4556
83c8f461 45571999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4558
4559 * minibuf.c (Fall_completions): Doc fix.
4560
83c8f461 45611999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4562
4563 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
4564 has been changed by the Lisp code.
4565
d8eccf12
GM
45661999-12-12 Gerd Moellmann <gerd@gnu.org>
4567
4568 * xfns.c: Indentation fixes.
4569
ae56feae
SM
45701999-12-10 Stefan Monnier <monnier@cs.yale.edu>
4571
4572 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
4573
dfa1c6ae
GM
45741999-12-10 Gerd Moellmann <gerd@gnu.org>
4575
4576 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
4577 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
4578
4579 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
4580 to frame.h.
4581
ec18280f
SM
45821999-12-09 Stefan Monnier <monnier@cs.yale.edu>
4583
4584 * keyboard.c (Qratio): New symbol.
4585 (scroll_bar_parts): Add `Qratio' to it.
4586 (syms_of_keyboard): Init `Qratio'.
4587 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
4588 * xterm.c (#includes): Allow compilation with only Xaw.
4589 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
4590 (xt_action_hook): Replace XAW3D by XAW.
4591 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
4592 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
4593 Determine epsilon dynamically and don't try to be too clever.
4594 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
4595 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
4596 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
4597 scrollbar (using `ratio').
4598 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
4599 scrollbar we have so as to set it up more optimally and to fix
4600 xaw3d_arrow_scroll and xaw3d_pick_top.
4601 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
4602 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
4603 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
4604 is not ignored, using a major gross hack.
4605 (x_initialize): Init default values for xaw3d_arrow_scroll and
4606 xaw3d_pick_top.
4607
83b6d970
DL
46081999-12-09 Dave Love <fx@gnu.org>
4609
4610 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
4611
3648c842
GM
46121999-12-08 Gerd Moellmann <gerd@gnu.org>
4613
4614 * eval.c: Remove conditional compilation on `standalone'.
4615 (call_debugger): When entering the debugger while redisplaying,
4616 reset redisplaying_p, and go back to the top-level if the debugger
4617 returns.
4618
05e71564
GM
46191999-12-07 Gerd Moellmann <gerd@gnu.org>
4620
4621 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
4622 basic faces are realized before trying to use face `menu'.
4623
4624 * window.c (delete_window): Block input for the time window
4625 matrices are being changed.
4626
b46cd536
DL
46271999-12-07 Dave Love <fx@gnu.org>
4628
4629 * lread.c (Fintern_soft): Fix newlines in doc string.
4630
96acb1f7
GM
46311999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
4632
4633 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
4634 duplicate definition of ElfW.
4635 (find_section): Copied from unexsgi.c.
4636 (unexec): Use find_section. Adjust whitespace. Initialize
4637 new_data2_offset based on old_data, not sbss (this fixes a bug on
4638 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
4639 Adjust test for presence of .mdebug section to the new return
4640 value of find_section.
4641
46421999-12-07 Gerd Moellmann <gerd@gnu.org>
4643
4644 * unexelf.c: Merge changes from 20.5.
4645 (unexec): Handle .lit4 and .lit8 unconditionally.
4646
4647 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
4648 unexsgi.o again.
4649
4650 * m/iris5d.h (UNEXEC): Likewise.
4651
7dae4502
SM
46521999-12-06 Stefan Monnier <monnier@cs.yale.edu>
4653
4654 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
4655 (syms_of_editfns): Register it.
4656 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
4657 (del_range_1, del_range_2): Add a ret_string argument to
4658 request that the deleted text be returned.
4659 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 4660 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
4661 * casefiddle.c (casify_region): Update del_range_1 call.
4662 * coding.c (code_convert_region): Update del_range_2 call.
4663 * fileio.c (Finsert_file_contents): Update del_range_2 call.
4664
397e4fae
GM
46651999-12-06 Gerd Moellmann <gerd@gnu.org>
4666
4667 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
4668
3d973f71
GM
46691999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
4670
4671 * lread.c (Fintern_soft): Accept a symbol argument.
4672
740e985f
EZ
46731999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4674
4675 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
4676
4677 * insdel.c (adjust_markers_for_delete): Fix last change.
4678
2d764c78
EZ
46791999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4680
4681 Changes for automatic remapping of X colors on terminal frames:
4682
4683 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
4684 frames.
4685 (Vface_tty_color_alist): Remove.
4686 (tty_defined_color): New function.
4687 (defined_color): Rewrite to support any type of frame.
4688 (tty_color_name): New function.
4689 (face_color_supported_p, Fface_color_gray_p,
4690 Fface_color_supported_p): Support non-X frames.
4691 (load_color): Enclose the color name in quotes, in the log
4692 messages. Remove DOS-specific version of load_color.
4693 (realize_tty_face): Take the supported colors from
4694 tty-color-alist. Support translation of X colors to the closest
4695 tty color, for both MSDOS and tty frames.
4696 [MSDOS]: Don't invert face colors if they were taken from the
4697 frame colors.
4698 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
4699
4700 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
4701 Define a mostly empty surrogate.
4702 (tty_display): Declare.
4703
4704 * frame.c (make_terminal_frame) [!macintosh]: Don't use
4705 tty_display.
4706 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
4707 frames when the frame's param_alist includes 'reverse.
4708 (tty_display): Define.
4709 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
4710 output_data.x member.
4711 (Fframe_parameters): Return foreground and background color names
4712 on tty frames as well, in addition to MSDOS frames.
4713
4714 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
4715 selected_frame.
4716 (struct x_output): Remove unused members; document who uses each
4717 member.
4718 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
4719 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
4720 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
4721 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
4722 unused macro definintions.
4723
4724 * msdos.c (IT_set_frame_parameters): Don't call
4725 recompute_basic_faces, the next redisplay will, anyway.
4726 (x_current_display): Remove unused variable.
4727 Many functions: changes for Lisp_object selected_frame.
4728 (IT_set_face): If the tty_reverse_p flag is set for the face,
4729 reverse the foreground and background colors.
4730 (Fmsdos_remember_default_colors): New function.
4731 (syms_of_msdos): Defsubr it.
4732 (IT_set_frame_parameters): Use initial_screen_colors[] when
4733 creating a new frame. If the frame parameters include 'reverse,
4734 swap the foreground and background colors.
4735 (internal_terminal_init): Initialize initial_screen_colors to -1.
4736 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
4737 cus-start.el.
4738
4739 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
4740
4741 * xfns.c (x_defined_color): Rename from defined_color. All
4742 callers changed.
4743 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4744 all callers changed.
4745 (Fxw_color_values): Renamed from Fx_color_values; all callers
4746 changed.
4747 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4748 callers changed.
4749 (x_window_to_frame, x_any_window_to_frame,
4750 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4751 x_top_window_to_frame): Use !FRAME_X_P instead of
4752 f->output_data.nothing.
4753 * xterm.h (x_defined_color): Rename from defined_color.
4754
4755 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
4756 f->output_data.nothing.
4757 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4758 all callers changed.
4759 (Fxw_color_values): Renamed from Fx_color_values; all callers
4760 changed.
4761 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4762 callers changed.
4763
4764 * dispextern.h (tty_color_name): Add prototype.
4765
4766 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
4767 f->output_data.nothing.
4768 * w32menu.c (menubar_id_to_frame): Likewise.
4769 * w32term.h (w32_output): Declare.
4770
4771 * dosfns.c (Qmsdos_color_translate): Remove.
4772 (msdos_stdcolor_name): Now returns a Lisp_Object.
4773 * dosfns.h (Qmsdos_color_translate): Remove.
4774
4775 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
4776
b3e5232e
KH
47771999-12-06 Kenichi Handa <handa@etl.go.jp>
4778
4779 * fileio.c (decide_coding_unwind): Renamed from
4780 set_auto_coding_unwind.
4781 (Finsert_file_contents): Make single unwind protect to call both
4782 Vset_auto_coding_function and Ffind_operation_coding_system.
4783
4784 * insdel.c (adjust_markers_for_delete): Make it non-static.
4785
db0e466c
SM
47861999-12-04 Stefan Monnier <monnier@cs.yale.edu>
4787
4788 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
4789 operators and handle them properly.
4790 * regex.h (RE_ALL_GREEDY): New option.
4791 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
4792 sorting would put it.
4793 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
4794 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
4795
22afa6e8
DL
47961999-12-04 Dave Love <d.love@dl.ac.uk>
4797
4798 * m/arm.h: New file.
4799
40afb967
DL
48001999-12-03 Dave Love <fx@gnu.org>
4801
4802 * editfns.c (Fmessage_or_box): Use use_dialog_box.
4803
ddf8eff5
GM
48041999-12-02 Gerd Moellmann <gerd@gnu.org>
4805
4806 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
4807 for building with Motif.
4808
4809 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
4810 unexelf.o.
4811
4812 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
4813
fa09a82d
DL
48141999-12-01 Dave Love <fx@gnu.org>
4815
4816 * emacs.c (main): Set LANG=C iff AX3_2 defined.
4817
ddf8eff5
GM
48181999-11-28 Gerd Moellmann <gerd@gnu.org>
4819
4820 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
4821 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
4822 macros.
4823
4824 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
4825
fa09a82d
DL
48261999-11-28 eliz <eliz@dlpx1>
4827
4828 * emacs.c (synchronize_locale): Avoid compiler warnings about
4829 pointer type mismatch.
4830
f9632fc8
GM
48311999-11-28 Gerd Moellmann <gerd@gnu.org>
4832
717d0121
GM
4833 * window.c (Fwindow_end): Don't call temp_set_pt_both with
4834 out of range position.
4835
f9632fc8
GM
4836 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
4837 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
4838
59c65f1e
EZ
48391999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
4840
613a8346
EZ
4841 * charset.c (Fmake_char_internal): Print the charset ID when
4842 signalling an error.
4843
59c65f1e
EZ
4844 * emacs.c (synchronize_locale): Avoid compiler warnings about
4845 pointer type mismatch.
4846
83c8f461 48471999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
4848
4849 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
4850
18df9369
GM
48511999-11-26 Gerd Moellmann <gerd@gnu.org>
4852
65a3ccf7
GM
4853 * puresize.h (BASE_PURESIZE): Increase to 550000.
4854
b3b98592
GM
4855 * textprop.c (set_text_properties): New function. Like
4856 Fset_text_properties, but with additional parameter
4857 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
4858 changes.
4859 (Fset_text_properties): Use it.
4860
4861 * insdel.c (insert_1_both): Call set_text_properties with last
4862 parameter nil so that no after changes will be signaled.
4863
4864 * lisp.h: Add prototype for set_text_properties.
4865
18df9369
GM
4866 * xfaces.c (set_lface_from_font_name): Fix previous change.
4867 (recompute_basic_faces): Change assert to abort.
4868
71a8e74b
DL
48691999-11-25 Dave Love <fx@gnu.org>
4870
4871 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
4872 (Fmember, Fdelq, Fdelete): Inline car.
4873 (Fy_or_n_p): Doc fix.
4874
bc6a5782
GM
48751999-11-25 Gerd Moellmann <gerd@gnu.org>
4876
3221576b 4877 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 4878 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
4879 is not set, try to use a reasonable default.
4880
bc6a5782
GM
4881 * dispnew.c (direct_output_for_insert): Set glyph row's
4882 displays_text_p flag. Correct window's window_end_vpos if
4883 necessary.
4884
0c8559bb
PE
48851999-11-25 Paul Eggert <eggert@twinsun.com>
4886
4887 * emacs.c (fixup_locale): Don't bother to record initial locale.
4888 (synchronize_locale): If the desired locale is nil,
4889 treat it as if it were the empty string,
4890 so that we set the locale from the environment.
4891
35737351
KH
48921999-11-25 Kenichi Handa <handa@etl.go.jp>
4893
4894 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
4895 of the current buffer via Fset.
4896
5562b47f
DL
48971999-11-24 Dave Love <fx@gnu.org>
4898
5562b47f
DL
4899 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
4900
4901 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
4902
00da0e4a
GM
49031999-11-24 Gerd Moellmann <gerd@gnu.org>
4904
4905 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
4906
4907 * emacs.c (PVEC_FLAG): New variable.
4908
b1775dc1
GM
49091999-11-23 Gerd Moellmann <gerd@gnu.org>
4910
4911 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
4912 that fails on IBM PowerPC, AIX 4.2.
4913
08de6200
EZ
49141999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
4915
4916 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
4917 string of mode-line-format. Remove the obsolete %t.
4918
02fda8ff
GM
49191999-11-22 Gerd Moellmann <gerd@gnu.org>
4920
f2fa858f
GM
4921 * dispnew.c (direct_output_for_insert): Increment glyph positions
4922 for glyphs from buffer text only.
4923
02fda8ff
GM
4924 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
4925 (gdb_data_seg_bits): New variables.
4926
4927 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
4928 work on systems not allowing enumerators > INT_MAX, and it
4929 won't work if EMACS_INT is long long.
4930
1b0d24e7
PE
49311999-11-22 Paul Eggert <eggert@twinsun.com>
4932
4933 Port to SunOS 4.1.x again. Help out with Alpha port.
4934 Rename messages-locale to system-messages-locale,
4935 and likewise for time-locale.
4936
4937 * callproc.c (strerror): Remove decl.
4938 * fileio.c (strerror): Likewise.
4939 * process.c (strerror): Likewise.
4940 * emacs.c (strerror): Likewise.
4941 (Vsystem_messages_locale): Renamed from Vmessages_locale.
4942 All uses changed.
4943 (Vprevious_system_messages_locale): Likewise, from
4944 Vprevious_messages_locale.
4945 (Vsystem_time_locale): Likewise, from Vtime_locale.
4946 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
4947 (ABORT_RETURN_TYPE): New macro.
4948 (abort): Return type is now ABORT_RETURN_TYPE.
4949 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
4950 defined.
4951 (syms_of_emacs): messages-locale -> system-messages-locale,
4952 previous-messages-locale -> previous-system-messages-locale,
4953 time-locale -> system-time-locale,
4954 previous-time-locale -> previous-system-time-locale.
4955
4956 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
4957 (const): Do not define; that's config.h's job.
4958 (<limits.h>): Include if HAVE_LIMITS_H is defined.
4959 (CHAR_BIT): Move test for definedness outside of limits.h condition.
4960 (<stddef.h>): Include if STDC_HEADERS is defined.
4961 (FREE_RETURN_TYPE): New macro.
4962 (free): Return type is now FREE_RETURN_TYPE.
4963
4964 * lisp.h (synchronize_system_time_locale): Renamed from
4965 synchronize_time_locale. All uses changed.
4966 (synchronize_system_messages_locale): Likewise, from
4967 synchronize_messages_locale.
4968
4969 * m/alpha.h (malloc, realloc, calloc): Remove decls;
4970 stdlib.h now does this.
4971
4972 * process.c (sys_siglist): Remove.
4973
4974 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
4975 New macros.
4976
4977 * syntax.c (scan_sexps_forward): Use abort, not assert.
4978
4979 * sysdep.c (my_sys_siglist): New var.
4980 (sys_siglist): New macro. Remove old initialized vars of same name.
4981 (init_signals): Initialize sys_siglist.
4982
4983 * xfns.c (abort): Remove decl; stdlib.h now does this.
4984
0dcd5b54
DL
49851999-11-18 Dave Love <fx@gnu.org>
4986
946173ad
DL
4987 * filelock.c: Add forward declaration for get_boot_time_1.
4988
0dcd5b54
DL
4989 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
4990
71447e8f
GM
49911999-11-18 Gerd Moellmann <gerd@gnu.org>
4992
4993 * buffer.h (struct buffer_text): Add comment about moving
4994 buffer text if REL_ALLOC is defined.
4995
eeedff63
KH
49961999-11-18 Kenichi Handa <handa@etl.go.jp>
4997
4998 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
4999
5000 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
5001 memory for push_key_description.
5002
5003 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
5004 allocate memory for push_key_description.
5005 (describe_buffer_bindings): Likewise.
5006
5d7e4a2c
GM
50071999-11-17 Gerd Moellmann <gerd@gnu.org>
5008
5009 * xfns.c (Fx_show_busy_cursor): Doc-fix.
5010 (Fx_hide_busy_cursor): Ditto.
5011
50121999-11-17 Marco Walther <walther@siemens-pyramid.com>
5013
5014 * unexsni.c (unexec): Handle .rel.dyn section.
5015
b5b41e02
DL
50161999-11-16 Dave Love <fx@gnu.org>
5017
5018 * doc.c (Fdocumentation): Remove gcpro here too.
5019
e35b6123
GM
50201999-11-16 Gerd Moellmann <gerd@gnu.org>
5021
5022 * keyboard.c (command_loop_1): Remove no_redisplay.
5023
83c8f461 50241999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
5025
5026 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
5027 in noninteractive.
5028
b05d3bee
GM
50291999-11-14 Gerd Moellmann <gerd@gnu.org>
5030
5bcfeb49
GM
5031 * xdisp.c (ensure_echo_area_buffers): New.
5032 (with_echo_area_buffer): Use it.
5033 (setup_echo_area_for_printing): Ditto.
5034
b05d3bee
GM
5035 * buffer.c (indicate-empty-lines): Doc-fix.
5036
9b2e6e4c
GM
50371999-11-12 Gerd Moellmann <gerd@gnu.org>
5038
e7f90eab
GM
5039 * term.c (term_init): If "op" isn't available, don't support color
5040 because we can't switch back to the default foreground and
5041 background.
5042
9b2e6e4c
GM
5043 * doc.c (Fdocumentation_property): Remove GCPRO because
5044 Fsubstitute_command_keys gcpro's the string.
5045
1bf21027
KH
50461999-11-12 Kenichi Handa <handa@etl.go.jp>
5047
5048 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5049
3bc6df53
GM
50501999-11-11 Gerd Moellmann <gerd@gnu.org>
5051
5052 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5053 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5054 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5055
35a5514b
GM
50561999-11-10 Gerd Moellmann <gerd@gnu.org>
5057
5058 * xfns.c (QCuser_data): Removed.
5059 (syms_of_xfns): Initialization of QCuser_data removed.
5060 (parse_image_spec): Don't handle :user-data specially. Allow
5061 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5062 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5063 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5064 parse_image_spec accordingly.
5065
83c8f461 50661999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5067
5068 * cmds.c (Fbeginning_of_line): Doc fix.
5069 (Fend_of_line): Doc fix.
5070
5071 * editfns.c (Fline_beginning_position): If N is not 1,
5072 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5073
5074 * syntax.c (Fforward_word): Handle fields even if would have hit
5075 an edge of the buffer. Return nil if affected by fields.
5076
83c8f461 50771999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5078
5079 * editfns.c (preceding_pos): Function deleted.
5080 (text_property_stickiness): Decrement POS directly.
5081 Fix a confusion that used PT instead of POS.
5082
5083 * editfns.c (find_field): Properly handle the case
5084 of a field boundary where `field' inherits from neither side.
5085
5086 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5087 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5088
fa9aabf6
GM
50891999-11-08 Gerd Moellmann <gerd@gnu.org>
5090
5091 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5092 BEFORE_POTENTIAL_GC before DISCARD.
5093
4015b3c0
GM
50941999-11-07 Gerd Moellmann <gerd@gnu.org>
5095
033a5fa3
GM
5096 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5097
5098 * lisp.h: Add prototype for unmark_byte_stack.
5099
5100 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5101 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5102 XUNMARK.
5103
55b064bd
GM
5104 * xdisp.c (resize_mini_window): Fix computation of needed
5105 mini-window height.
5106
5107 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5108 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5109
4015b3c0 5110 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5111 locally there. Rearrange case statements so that those most
4015b3c0
GM
5112 frequently executed come first. Avoid goto's in frequently
5113 executed cases.
5114
fe512f27
GM
51151999-11-05 Gerd Moellmann <gerd@gnu.org>
5116
dd59e217
GM
5117 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5118 AFTER_POTENTIAL_GC around internal_catch.
5119
bcf28080
GM
5120 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5121 relocate_byte_pcs.
5122 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5123
5124 * eval.c (struct catchtag): Add member byte_stack.
5125 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5126 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5127 catchtag.
5128 (unwind_to_catch): Restore byte_stack_list from catchtag.
5129
5130 * lisp.h: Add prototypes for new functions in bytecode.c.
5131 Add extern declaration for byte_stack_list.
5132
5133 * bytecode.c (struct byte_stack): New.
5134 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5135 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5136 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5137 (HANDLE_RELOCATION): Removed.
5138 (Fbyte_code): Use byte_stack structures.
5139
4d59c34c
GM
5140 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5141
fe512f27
GM
5142 * buffer.c (syms_of_buffer): Extend documentation of
5143 mode-line-format.
5144
60b64cd6
GM
51451999-11-04 Gerd Moellmann <gerd@gnu.org>
5146
5147 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5148
5149 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5150 Ferase_field instead of Fdelete_field.
5151
b51b619b
GM
51521999-11-03 Gerd Moellmann <gerd@gnu.org>
5153
5154 * dispnew.c (Finternal_show_cursor): Change it to set the
5155 cursor on/off, not toggle its state.
5156 (Finternal_show_cursor_p): New.
5157 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5158
5865af0d
DL
51591999-11-03 Dave Love <fx@gnu.org>
5160
5161 * charset.c (split_non_ascii_string): Define return value.
5162
82a700f3
GM
51631999-11-03 Gerd Moellmann <gerd@gnu.org>
5164
edfef199
GM
5165 * minibuf.c (string_to_object): New.
5166 (read_minibuf_noninteractive): New.
5167 (read_minibuf): Call read_minibuf_noninteractive if
5168 noninteractive. Use string_to_object.
5169
82a700f3
GM
5170 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5171
b5540f0d
DL
51721999-11-02 Dave Love <fx@gnu.org>
5173
e69dcd60
DL
5174 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5175
827a1788
DL
5176 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5177 declared with glibc2.
b5540f0d 5178
a69a6e61
GM
51791999-11-02 Gerd Moellmann <gerd@gnu.org>
5180
5181 * lisp.h (QUIT): Give it statement form.
5182
87e21fbd
DL
51831999-11-02 Dave Love <fx@gnu.org>
5184
5185 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5186
1b335865
GM
51871999-11-02 Gerd Moellmann <gerd@gnu.org>
5188
9fb5e03d
GM
5189 * xfns.c (QCuser_data): New.
5190 (syms_of_xfns): Initialize QCuser_data.
5191 (parse_image_spec): Ignore :user-data DATA properties.
5192
1b335865
GM
5193 * xdisp.c (display_line): Set charpos of first glyph in blank
5194 lines not corresponding to any text to -1, even if no glyphs are
5195 filled in in that line.
5196
e76f1c44
GM
51971999-11-01 Gerd Moellmann <gerd@gnu.org>
5198
36fcd3d9
GM
5199 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
5200 png_get_sRGB in #ifdef.
5201
111259b4
GM
5202 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5203 (syms_of_display): Use the new name.
5204
dd5c96e8
GM
5205 * textprop.c (verify_interval_modification): Signal text-read-only
5206 instead of calling error.
5207
db8878fb
GM
5208 * data.c (Qtext_read_only): New built-in error.
5209 (syms_of_data): Initialize it.
5210
5211 * lisp.h: Add extern declaration for Qtext_read_only.
5212
e76f1c44
GM
5213 * syntax.c: Remove whitespace after open or in front of closing
5214 parentheses.
5215
83c8f461 52161999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5217
5218 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5219
7843e09c
GM
52201999-10-31 Gerd Moellmann <gerd@gnu.org>
5221
575ed805
GM
5222 * xdisp.c (resize_mini_window): Compute needed height differently.
5223
7843e09c
GM
5224 * fns.c (Flength): Unroll loop over lists.
5225
5226 * xdisp.c (append_space): Return non-zero if space was appended.
5227 (display_line): Set charpos of first glyph to -1 only if that
5228 glyph is the space added by append_glyph.
5229
83c8f461 52301999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5231
5232 * print.c (strout): Consider `noninteractive' and use stdout
5233 only when PRINTCHARFUN is t.
5234
5235 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5236 (gcpro_level): Declare it extern.
5237 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5238 Alternate definitions that set `level' and increment `gcpro_level'.
5239 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5240
5241 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5242 (init_eval) [DEBUG_GCPRO]: Initialize it.
5243 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5244 from remaining gcprolist.
5245
3636f7a3
KH
52461999-10-29 Kenichi Handa <handa@etl.go.jp>
5247
5248 * coding.c (code_convert_region): Update `dst' correctly.
5249
a2ad7096
GM
52501999-10-28 Gerd Moellmann <gerd@gnu.org>
5251
5252 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5253 (Frassoc): Rewritten.
5254
1e3196e8
GM
52551999-10-27 Noah Friedman <friedman@splode.com>
5256
5257 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5258 Define PTY_NAME_SPRINTF.
5259 Redefine PTY_TTY_NAME_SPRINTF.
5260 * config.in: Add undef for HAVE_DEV_PTMX.
5261
83c8f461 52621999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5263
5264 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5265 as arg to DEBUG_POP and DEBUG_PRINT.
5266
83c8f461 52671999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5268
5269 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5270 (Ffset): Call Qad_activate_internal.
5271 (syms_of_data): Initialize Qad_activate_internal.
5272
26922151
GM
52731999-10-27 Gerd Moellmann <gerd@gnu.org>
5274
5275 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5276 Vterminal_frame is selected and Vwindow_system is non-nil.
5277
67a5596f
GM
52781999-10-26 Gerd Moellmann <gerd@gnu.org>
5279
2bea706b
GM
5280 * xdisp.c (echo_area_display): Put previous change in #if 0.
5281
67a5596f
GM
5282 * emacs.c (standard_args): Add `file' as synonym for `visit',
5283 `execute' as synonym for `eval'.
5284 (main): Add new options to usage message.
5285
81dc5de5
GM
52861999-10-25 Gerd Moellmann <gerd@gnu.org>
5287
5288 * data.c (Qhash_table): New.
5289 (Ftype_of): Return it for hash tables.
5290 (syms_of_data): Initialize Qhash_table.
5291
83c8f461 52921999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5293
5294 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5295
66e4690f 52961999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5297
7539e11f
KR
5298 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5299 lisp.h.
5300
5301 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5302 Fbuffer_local_variables, Fother_buffer, record_buffer,
5303 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5304 swap_out_buffer_local_variables, overlays_at, overlays_in,
5305 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5306 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5307 Foverlay_put, report_overlay_modification, evaporate_overlays):
5308 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5309 references.
5310 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5311 swap_in_symval_forwarding, set_internal, default_value,
5312 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5313 Fmake_variable_frame_local, Flocal_variable_p,
5314 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5315 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5316 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5317 * emacs.c (main): Likewise.
5318 * fontset.c (fs_load_font, fs_register_fontset,
5319 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5320 Fnew_fontset, Fset_fontset_font): Likewise.
5321 * frame.c (do_switch_frame, next_frame, prev_frame,
5322 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5323 Likewise.
5324 * keyboard.c (read_char, help_char_p, event_to_kboard,
5325 kbd_buffer_get_event, timer_start_idle, timer_check,
5326 make_lispy_event, apply_modifiers, reorder_modifiers,
5327 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5328 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5329 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5330 Fcommand_execute, Fexecute_extended_command): Likewise.
5331 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5332 Fall_completions): Likewise.
5333 * window.c (Fset_window_margins): Likewise.
5334
5335 * callint.c (quotify_args): Don't explicitly use struct
5336 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5337
3a7093d8
KR
5338 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5339 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5340 if __ELF__ is defined.
5341
2a3d7146
GM
53421999-10-24 Gerd Moellmann <gerd@gnu.org>
5343
5344 * window.c (Fnext_window): Add a QUIT in the loop.
5345
8ac52782
GM
53461999-10-23 Gerd Moellmann <gerd@gnu.org>
5347
5348 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
5349 New targets.
5350
05f0d15a
DL
53511999-10-22 Dave Love <fx@gnu.org>
5352
5353 * emacs.c (main): Enable profiling conditional on __linux also.
5354
882fb0e6
GM
53551999-10-20 Gerd Moellmann <gerd@gnu.org>
5356
5357 * xrdb.c (x_load_resources): Set default resources for resource
5358 classes instead of for the specific Emacs.
5359
b5f5bc31
GM
53601999-10-19 Gerd Moellmann <gerd@gnu.org>
5361
66f4dd69
GM
5362 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5363 defines it that way.
5364
b5f5bc31
GM
5365 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5366 if selected_frame is equal to Vterminal_frame.
5367
68c45bf0
PE
53681999-10-19 Paul Eggert <eggert@twinsun.com>
5369
5370 Add support for large files, 64-bit Solaris, system locale codings.
5371
5372 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5373 when dumping, so that the dumped Emacs doesn't have stray locale info.
5374 (dired.o): Depend on systime.h.
5375 (editfns.o): Depend on coding.h.
5376
5377 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5378 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5379 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5380 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5381 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5382 Include <config.h> before any system include files.
5383
5384 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5385 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5386 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5387 xmenu.c, xterm.c:
5388 Do not include <stdlib.h>, as <config.h> does this now.
5389
5390 * callproc.c (Fcall_process):
5391 Synchronize messages locale before invoking strerror.
5392 Decode resulting string with locale-coding-system.
5393
5394 * coding.c (Vlocale_coding_system): New var.
5395 (syms_of_coding): Adjust to above change.
5396 (emacs_strerror): New function.
5397
5398 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
5399
5400 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5401 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5402 HAVE_STRSIGNAL): New macros.
5403 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5404 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5405
5406 * dired.c: Include "systime.h".
5407 (Ffile_attributes): Do not cast s.st_size to int; this loses
5408 information if int is 32 bits but st_size and EMACS_INT are larger.
5409 Treat large device numbers like large inode numbers.
5410
5411 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5412
5413 * editfns.c: Include coding.h.
5414 (emacs_strftime): Remove decl.
5415 (emacs_strftimeu): New decl.
5416 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5417 Use emacs_strftimeu instead of emacs_strftime.
5418 (Fformat_time_string): Convert format string using
5419 Vlocale_coding_system, and convert result back. Synchronize time
5420 locale before invoking lower level function. Invoke
5421 emacs_memftimeu, passing ut, instead of emacs_memftime.
5422
5423 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5424 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5425 Vprevious_time_locale): New variables.
5426 (main): Invoke setlocale early, so that initial error messages are
5427 localized properly. But skip locale-setting if LC_ALL is "C".
5428 Fix up locale when it's safe to do so.
5429 (fixup_locale): Moved here from xterm.c.
5430 (synchronize_locale, synchronize_time_locale,
5431 synchronize_messages_locale): New functions.
5432 (syms_of_emacs): Accommodate above changes.
5433
5434 * fileio.c (report_file_error): Convert strerror output according
5435 to Vlocale_coding_system.
5436 (Finsert_file_contents): Check for arithmetic overflow in
5437 computations that depend on file size. Report IO errors
5438 with emacs_strerror, not strerror.
5439
5440 * fns.c (Fgethash): Declare dflt parameter.
5441
5442 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5443 is defined; that's config.h's job.
5444
5445 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5446 default these values to long, BITS_PER_LONG, and unsigned long.
5447 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5448 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5449 (code_convert_string_norecord, fixup_locale,
5450 synchronize_messages_locale, synchronize_time_locale,
5451 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5452 All Emacs callers of open, close, read, write changed to use
5453 emacs_open, emacs_close, emacs_read, emacs_write.
5454
5455 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5456 changed to file_tell.
5457 (saved_doc_string_position, prev_saved_doc_string_position): Now
5458 of type file_offset.
5459 (init_lread): Do not fix locale here; fixup_locale now does this.
5460
5461 * m/amdahl.h, s/usg5-4.h:
5462 (NSIG): Remove.
5463 (NSIG_MINIMUM): New macro.
5464
5465 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5466 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5467 s/umips.h, s/usg5-4.h:
5468 (SIGIO): Do not undef.
5469 (BROKEN_SIGIO): New macro.
5470
5471 * m/ustation.h:
5472 (SIGTSTP): Do not undef.
5473 (BROKEN_SIGTSTP): New macro.
5474
5475 * s/gnu-linux.h:
5476 (SIGPOLL, SIGURG): Do not undef.
5477 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5478
5479 * s/ptx4.h:
5480 (SIGINFO): Do not undef.
5481 (BROKEN_SIGINFO): New macros.
5482
5483 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5484
5485 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5486 some Emacs-related changes merged.
5487
5488 * print.c (float_to_string): Prepend "-" to representation of a
5489 NaN if the NaN is negative.
5490
5491 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5492 (wait_reading_process_input): Use emacs_strerror, not strerror.
5493
5494 * process.c (status_message, sigchld_handler): Synchronize locale,
5495 then use strsignal istead of sys_siglist.
5496 * w32proc.c (sys_wait): Likewise.
5497
5498 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5499 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5500 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5501 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5502 (open, close, read, write, INTERRUPTIBLE_OPEN,
5503 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5504
5505 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5506
5507 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5508 sys_open, open): Remove.
5509 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5510 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5511 macros are no longer used.
5512 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5513 (emacs_close): Renamed from sys_close.
5514 (emacs_read): Renamed from sys_read.
5515 (emacs_write): Renamed from sys_write.
5516 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5517 (dup2): Do not print error on failure; the real dup2 doesn't.
5518 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5519
5520 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5521 is defined.
5522 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5523 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5524 (strsignal): Declare if !HAVE_STRSIGNAL.
5525
5526 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5527 (ElfW): Define in terms of ElfExpandBitsW.
5528
5529 * w32proc.c (sys_siglist): Remove decl.
5530
5531 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5532 with ANSI C.
5533 (display_string): Declare face_string_pos arg.
5534
5535 * xfns.c (Fx_show_tip): Declare timeout param.
5536
5537 * xterm.c: No need to include locale.h.
5538 (x_alloc_lighter_color, x_setup_relief_color):
5539 Pass arg as double, not float, for compatibility with ANSI C.
5540 (fixup_locale): Move to emacs.c.
5541 (x_term_init): Do not setlocale or fixup locale; the main program
5542 does this now.
5543
2f0b74ea
DL
55441999-10-18 Dave Love <fx@gnu.org>
5545
5546 * doc.c (Fdocumentation_property): Gcpro `tem'.
5547
471aa4a0
KH
55481999-10-18 Kenichi Handa <handa@etl.go.jp>
5549
5550 * lread.c (Fload): Calculate bytes of filename correctly.
5551 (openp): Likewise.
5552
aca2020b
KH
55531999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5554
5555 * print.c (print_preprocess): In case print-circle is nil,
5556 add OBJ to Vprint_number_table only when OBJ is a symbol.
5557
1f5fe392 55581999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
5559
5560 * coding.c (code_convert_string): Add record_unwind_protect to
5561 assure setting inhibit_pre_post_conversion back to zero. Take
5562 care of the multibyteness of the working buffer.
5563
5564 * coding.c (inhibit_pre_post_conversion): New variable.
5565 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
5566 ignore post-read-conversion and pre-write-conversion property of
5567 the coding system.
5568 (code_convert_region_unwind): New function.
5569 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
5570 running pre-write-conversion and post-read-conversion.
5571 (code_convert_string): Likewise.
5572
cd876a91
GM
55731999-10-17 Miles Bader <miles@gnu.org>
5574
5575 * editfns.c: Doc fix.
5576
55771999-10-17 Miles Bader <miles@gnu.org>
5578
5579 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
5580 argument preconditions of find_before_next_newline in the case
5581 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
5582 was indeed at the edge.
5583
55841999-10-17 Miles Bader <miles@gnu.org>
5585
5586 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
5587 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
5588
5589 * editfns.c (text_property_eq, text_property_stickiness): Don't
5590 use initializers for auto variables of type Lisp_Object.
5591 (find_field): Likewise. Use braces around nested ifs.
5592 (Fline_end_position): Store the raw eol in a variable, so that the
5593 final expression doesn't look so ugly.
5594 (Fconstrain_to_field): Doc fix.
5595 (preceding_pos): Renamed from `preceeding_pos'.
5596 (text_property_stickiness, find_field): Call preceding_pos,
5597 not preceeding_pos.
5598
55991999-10-17 Miles Bader <miles@gnu.org>
5600
5601 * editfns.c (Ffield_string_no_properties): New function.
5602 (text_property_stickiness, preceeding_pos): New functions.
5603 (Ffield_string): Remove PROPS parameter.
5604 (find_field): Add MERGE_AT_BOUNDARY parameter.
5605 Rewrite to use stickiness of `field' property to resolve
5606 ambiguous cases.
5607 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
5608 (Fconstrain_to_field): Likewise.
5609 (syms_of_editfns): Init Sfield_string_no_properties.
5610 (Ffield_string, Ferase_field, Ffield_end):
5611 Supply new MERGE_AT_BOUNDARY argument to find_field.
5612 (Fline_beginning_position, Fline_end_position): Supply new
5613 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
5614 Pass a value of Qt for the ONLY_IN_LINE argument to
5615 Fconstrain_to_field (only matters if N != 1).
5616 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
5617 to Fconstrain_to_field.
5618
5619 * minibuf.c (Fminibuffer_complete_word): Use
5620 Ffield_beginning to find the prompt end.
5621
56221999-10-17 Miles Bader <miles@gnu.org>
5623
5624 * editfns.c (Fconstrain_to_field): Add get/set-current-point
5625 behavior when NEW_POS is nil.
5626 (find_field): Use XSETFASTINT instead of make_number.
5627 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
5628 input string by seeing where the field begins, instead of
5629 looking at text-properties.
5630
56311999-10-17 Miles Bader <miles@gnu.org>
5632
5633 * editfns.c (Qfield): New variable.
5634 (find_field, Ferase_field, Ffield_string,
5635 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
5636 (Fline_beginning_position, Fline_end_position): Constrain to any field.
5637 (make_buffer_string_both): Remove minibuffer-prompt hack.
5638 (syms_of_editfns): Initialize Qfield, and subr entries for
5639 field functions above.
5640 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
5641 minibuf_save_list.
5642 Don't initialize minibuffer prompt length.
5643 Wrap prompt text-properties around the entire prompt.
5644 Add 'prompt text-property to prompt.
5645 Get final value with Ffield_string instead of make_buffer_string.
5646 (read_minibuf_unwind): Don't restore minibuffer prompt length from
5647 minibuf_save_list.
5648 (do_completion): Get minibuffer input with Ffield_string
5649 instead of Fbuffer_string.
5650 Erase minibuffer input with Ferase_field instead of erase_buffer.
5651 (Fminibuffer_complete_and_exit): Likewise.
5652 Test whether buffer is empty by looking for the 'prompt text
5653 property at the end.
5654 Set prompt length by looking for the end of the prompt text property,
5655 and save prompt length for later use (since there is no longer a
5656 buffer variable to get it from).
5657 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
5658 (syms_of_minibuf): Remove initializations of
5659 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
5660 * buffer.h (struct buffer): Remove prompt_end_charpos field.
5661 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
5662 Don't initialize prompt_end_charpos field.
5663 * syntax.c (Fforward_word): Likewise.
5664 Constrain to any field.
5665
3f6f7508
GM
56661999-10-16 Gerd Moellmann <gerd@gnu.org>
5667
5668 * window.c (enum save_restore_action): New.
5669 (save_restore_orig_size): Change parameter list. Add
5670 functionality to check for valid orig_top and orig_height members
5671 in a window tree.
5672 (grow_mini_window): Call save_restore_orig_size with new parameter
5673 list.
5674 (shrink_mini_window): Restore old window sizes only if old
5675 size information is valid in all windows in a window tree.
5676
06482119
GM
56771999-10-15 Gerd Moellmann <gerd@gnu.org>
5678
2710454d
GM
5679 * xmenu.c (set_frame_menubar): Don't call
5680 x_set_menu_resources_from_menu_face here.
5681 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
5682
06482119
GM
5683 * xfns.c (gif_load): Fix handling of interlaced GIFs.
5684
17fa2837
DL
56851999-10-14 Dave Love <fx@gnu.org>
5686
5687 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
5688
45f93416
GM
56891999-10-14 Gerd Moellmann <gerd@gnu.org>
5690
5691 * process.c (Fopen_network_stream): Don't loop if gethostbyname
5692 fails and h_errno is TRY_AGAIN.
5693
c765b723
DL
56941999-10-13 Dave Love <fx@gnu.org>
5695
5696 * filelock.c (lock_file): Move gcpro of `fn'.
5697
dace7f4e
GM
56981999-10-10 Gerd Moellmann <gerd@gnu.org>
5699
5700 * keyboard.c (auto-save-interval): Fix documentation.
5701
83c8f461 57021999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
5703
5704 * print.c (print): When removing objects from Vprint_number_table,
5705 only scan the newly added objects.
5706 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
5707 unconditionally force it to stay in the table.
5708
85177c86
GM
57091999-10-09 Gerd Moellmann <gerd@gnu.org>
5710
5711 * xfns.c (prepare_image_for_display): Don't try to load image if
5712 loading it failed before.
5713 (lookup_image, prepare_image_for_display): Remember if loading the
5714 image failed.
5715 (xpm_load): Add missing UNBLOCK_INPUT.
5716
5717 * dispextern.h (struct image): New member load_failed_p.
5718
11e4de5d
SM
57191999-10-08 Stefan Monnier <monnier@cs.yale.edu>
5720
f28eba7b 5721 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
5722 in the docstring.
5723
f1da8f06
GM
57241999-10-08 Gerd Moellmann <gerd@gnu.org>
5725
5726 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
5727 Don't call XSetInputFocus because that can generate additional
5728 FocusIn events.
5729
c37bbd4f
GM
57301999-10-07 Jeffrey C Honig <jch@bsdi.com>
5731
5732 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
5733
83c8f461 57341999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
5735
5736 * process.c (wait_reading_process_input): When trying to suck
5737 input from one process, for accept-process-output,
5738 exit that loop if we get EAGAIN or EWOULDBLOCK.
5739
577d9e2f
GM
57401999-10-07 Gerd Moellmann <gerd@gnu.org>
5741
5742 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
5743 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
5744 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
5745 Fpixmap_spec_p and Qpixmap_spec_p.
5746 (load_face_colors, check_lface_attrs,
5747 merge_face_vector_with_property,
5748 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
5749 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
5750 Fbitmap_spec_p.
5751
f5737ad2
GM
57521999-10-07 Gerd Moellmann <gerd@gnu.org>
5753
5754 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
5755 MODE_LINE_FACE_ID.
5756
5757 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
5758 (struct x_resources) [USE_X_TOOLKIT]: New.
5759 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
5760 [USE_MOTIF]: New.
5761 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
5762 [USE_LUCID]: New.
5763 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
5764 (Qmenu): New.
5765 (syms_of_xfaces): Initialize Qmenu.
5766 (realize_basic_faces): Realize face `menu'.
5767 (resolve_face_name): New.
5768 (lface_from_face_name): Use it.
5769 (Finternal_set_lisp_face_attribute): Ditto.
5770 (Fpixmap_spec_p): Rewritten. Extend doc string.
5771
5772 * xmenu.c (set_frame_menubar, xmenu_show): Call
5773 x_set_menu_resources_from_menu_face.
5774
5775 * dispextern.h (enum face_id): Add MENU_FACE_ID.
5776 (toplevel): Include X11/Intrinsic.h.
5777
6a1aa823
DL
57781999-10-03 Ken'ichi Handa <handa@gnu.org>
5779
5780 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
5781 correctly.
5782
26901792
DL
57831999-09-30 Kenichi Handa <handa@etl.go.jp>
5784
5785 * category.c (modify_lower_category_set): Set default value of
5786 TABLE correctly.
5787
5788 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
5789 size correctly.
5790
57911999-09-29 Gerd Moellmann <gerd@gnu.org>
5792
5793 * editfns.c (Fpropertize): Renamed from Fproperties.
5794
57951999-09-29 Gerd Moellmann <gerd@gnu.org>
5796
5797 * xdisp.c (resize_mini_window): Do nothing if frame is an X
5798 frame that hasn't been initialized yet.
5799
83c8f461 58001999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
5801
5802 * keymap.c (Fsingle_key_description): Make tem big enough.
5803 (describe_buffer_bindings): Make buf big enough.
5804
83c8f461 58051999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
5806
5807 * intervals.c (get_local_map): Use indirect_function,
5808 not Findirect_function.
5809
26901792
DL
58101999-09-27 Dave Love <fx@gnu.org>
5811
5812 * cm.h: Remove unneeded declaration of ospeed.
5813
58141999-09-26 Gerd Moellmann <gerd@gnu.org>
5815
5816 * lisp.h (toplevel): Add prototype for
5817 next_single_char_property_change.
5818
5819 * textprop.c (next_single_char_property_change): New.
5820
5821 * xdisp.c (display_prop_end, invisible_text_between_p): Use
5822 next_single_char_property_change.
5823
58241999-09-25 Gerd Moellmann <gerd@gnu.org>
5825
5826 * editfns.c (Fproperties): New.
5827 (syms_of_editfns): Defsubr it.
5828
5829 * xfns.c (lookup_image): Set image's timestamp because it's
5830 used when we look it up.
5831
58321999-09-23 Gerd Moellmann <gerd@gnu.org>
5833
5834 * window.c (enlarge_window): Add window parameter instead of using
5835 selected_window.
5836 (Fdisplay_buffer): Call it with window parameter instead of
5837 setting selected_window.
5838 (Fenlarge_window, Fshrink_window): Ditto.
5839 (shrink_mini_window): If there is no recorded height and position
5840 info, resize mini-window to height 1.
5841
5842 * xfns.c (image_error): Use add_to_log.
5843
5844 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
5845 (load_face_font_or_fontset, load_color,
5846 merge_face_vector_with_property): Ditto.
5847
5848 * dispextern.h: Add prototype for add_to_log.
5849
5850 * xfaces.c (add_to_log): Move to xdisp.c.
5851
5852 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
5853 parameter.
5854
58551999-09-23 Gerd Moellmann <gerd@gnu.org>
5856
5857 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
5858 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
5859
5860 * xdisp.c (resize_mini_window): Use grow_mini_window and
5861 shrink_mini_window.
5862
5863 * window.c (window_min_size): Add parameter ignore_fixed_p.
5864 (change_window_height): Call window_min_size with new parameter.
5865 (shrink_window_lowest_first, save_restore_orig_size,
5866 grow_mini_window, shrink_mini_window): New.
5867 (make_window, replace_window): Initialize orig_top and
5868 orig_height.
5869 (enlarge_window): Renamed from change_window_height. Make it
5870 static.
5871 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
5872 enlarge_window instead of change_window_height.
5873
5874 * window.h (struct window): New members orig_top, orig_height.
5875 (toplevel): Add prototypes for grow_mini_window and
5876 shrink_mini_window. Remove prototype for change_window_height.
5877
58781999-09-21 Eli Zaretskii <eliz@gnu.org>
5879
5880 * frame.c (frame_name_fnn_p): Fix previous change.
5881
58821999-09-20 Gerd Moellmann <gerd@gnu.org>
5883
5884 * minibuf.c (toplevel): Move include of stdio.h to other includes.
5885
5886 * dispnew.c (direct_output_for_insert): Cast arguments to
5887 safe_bcopy to char *.
5888
5889 * lread.c (readchar): Remove unused variables.
5890 (read_filtered_event, read1, Fmapatoms): Ditto.
5891 (toplevel): Include intervals.h.
5892
5893 * eval.c (Fsignal): Remove unused variables.
5894 (Fcommandp, do_autoload): Ditto.
5895
5896 * lisp.h: Add prototype for safe_bcopy, fatal.
5897
5898 * editfns.c (init_editfns): Remove unused variables.
5899 (Fgoto_char, Fchar_after, Fformat): Ditto.
5900 (message_text, message_length): Put in #ifndef HAVE_MENUS.
5901
5902 * data.c (find_symbol_value): Remove unused variables.
5903 (Faref, Fstring_to_number): Ditto.
5904 (toplevel): Include stdio.h.
5905 (Fnumber_to_string): Cast XINT to long for %ld.
5906
5907 * casefiddle.c (casify_object): Remove unused variables.
5908 (casify_region): Ditto.
5909
5910 * filelock.c (get_boot_time): Put local variable used in
5911 conditinally compiled section in #ifdef.
5912 (toplevel): Include stdio.h.
5913
5914 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
5915 keys_of_keymap, syms_of_keymap): Remove unused variables.
5916
59171999-09-20 Gerd Moellmann <gerd@gnu.org>
5918
5919 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
5920 whose corresponding window rows have been disabled in
5921 try_window_id.
5922
59231999-09-20 Gerd Moellmann <gerd@gnu.org>
5924
5925 * xdisp.c (compute_window_start_on_continuation_line): Handle case
5926 that window start is out of range.
5927 (handle_display_prop, handle_single_display_prop): Replace
5928 marginal area specifications like `left-margin' with `(margin
5929 left-margin)'.
5930 (Qmargin): New.
5931 (syms_of_xdisp): Initialize Qmargin.
5932
59331999-09-19 Gerd Moellmann <gerd@gnu.org>
5934
5935 * syntax.c (update_syntax_table, find_defun_start, back_comment,
5936 describe_syntax, skip_chars): Remove unused variables.
5937 (back_comment, forw_comment): Add braces to if-statement with
5938 if-else as dependent statement.
5939
5940 * process.c (list_processes_1): Remove unused variables.
5941 (Fopen_network_stream, create_process): Add parentheses to
5942 conditional expressions.
5943 (create_process): Put declaration of sigchld in #if 0.
5944 (Fopen_network_stream): Removed unused variables.
5945 (Fopen_network_stream, wait_reading_process_input,
5946 wait_reading_process_input, send_process, send_process): Ditto.
5947 (toplevel): Add prototypes for set_waiting_for_input and
5948 keyboard_bit_set.
5949
5950 * abbrev.c (Fexpand_abbrev): Remove unused variables.
5951
5952 * textprop.c (Fset_text_properties): Remove unused variables.
5953 (text_property_list, verify_interval_modification,
5954 interval_has_all_properties): Ditto.
5955
5956 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
5957 (Fcall_process): Remove unused variable.
5958
5959 * keyboard.c (Frecursive_edit): Remove unused variable.
5960 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
5961 timer_check, make_lispy_event, menu_bar_items,
5962 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
5963 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
5964 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
5965 read_key_sequence): Ditto. Fread_key_sequence,
5966 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
5967 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
5968 used when GOBBLE_FIRST_EVENT is defined in #ifdef
5969 (Fexecute_extended_command): Cast XINT to long for %ld.
5970 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
5971 (toplevel): Include sys/types.h.
5972
5973 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
5974 (toplevel): Add prototypes for stuff_char, and
5975 code_convert_string_norecord.
5976
59771999-09-19 Gerd Moellmann <gerd@gnu.org>
5978
5979 * buffer.h: Add prototype for r_re_alloc.
5980
5981 * insdel.c (copy_text): Removed unused variables.
5982 (count_combining_after, count_combining_after, insert_1_both,
5983 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
5984 (adjust_after_replace, replace_range): Add parentheses to logical
5985 expressions. Remove unused variables.
5986 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
5987 expression.
5988
5989 * alloc.c (Fgarbage_collect): Remove unused variable.
5990 (compact_strings): Add parentheses around assignments in
5991 conditional context.
5992 (toplevel): Put declaration of unused function clear_marks
5993 in #if 0 like its definition.
5994
5995 * lisp.h: Add prototype for shrink_regexp_cache,
5996 sweep_weak_hash_tables.
5997
59981999-09-19 Dave Love <fx@gnu.org>
5999
6000 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
6001
6002 * doc.c (read_bytecode_char): Declare arg.
6003
6004 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
6005 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
6006
60071999-09-18 Richard Stallman <rms@gnu.org>
6008
6009 * xdisp.c (echo_area_display): Turn off code that returned
6010 without doing anything when using a terminal frame.
6011
83c8f461 60121999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
6013
6014 * unexelf.c (unexec): Don't get confused by a short section
6015 just before the bss section.
6016
26901792
DL
60171999-09-16 Gerd Moellmann <gerd@gnu.org>
6018
6019 * emacs.c (main): Remove unused variables.
6020 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
6021
6022 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
6023 init_fileio_once, syms_of_sound, init_xfns, init_fns
6024 init_sound, check_message_stack.
6025
6026 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
6027
6028 * intervals.c (rotate_right, rotate_left): Add braces to avoid
6029 ambiguous else warning.
6030 (split_interval_left): Remove unused variables.
6031 (previous_interval, adjust_intervals_for_deletion,
6032 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
6033 (icount, idepth, zero_length): Move into #if 0 section below
6034 original position where these are used.
6035
6036 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
6037
6038 * buffer.c (Fkill_buffer): Remove unused variables.
6039 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6040 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6041 init_buffer_once, (syms_of_buffer): Ditto.
6042
6043 * xrdb.c (get_fallback): Remove unused variable.
6044 (x_load_resources): Ditto. Put local variable used for Motif only
6045 in #ifdef USE_MOTIF.
6046
60471999-09-16 Gerd Moellmann <gerd@gnu.org>
6048
6049 * minibuf.c (read_minibuf): Remove unused variables.
6050 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6051 (do_completion): Move assignment out of conditional context.
6052 (Fdisplay_completion_list): Add parentheses to conditional expression.
6053
6054 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6055
6056 * lisp.h: Add prototype for no_switch_window.
6057
6058 * window.c (Fset_window_buffer): Remove unused variables.
6059 (Fset_window_margins): Ditto.
6060
6061 * xdisp.c (resize_mini_window): Temporarily set the selected
6062 window's or Vminibuf_scroll_window's height to "fixed" around
6063 the call the change_window_height.
6064
6065 * window.c (window_fixed_size_p): Check window's height_fixed_p
6066 flag.
6067
6068 * window.h (struct window): New member height_fixed_p.
6069
6070 * dispnew.c (direct_output_forward_char): Don't use this method
6071 if showing a message or a message was just cleared because we
6072 might need to resize the mini-window.
6073
60741999-09-16 Gerd Moellmann <gerd@gnu.org>
6075
6076 * frame.c (Fdelete_frame): Correct local variable pointing to
6077 selected frame after selecting new frame.
6078
60791999-09-15 Richard Stallman <rms@gnu.org>
6080
6081 * puresize.h (BASE_PURESIZE): Increase to 525000.
6082
6083 * filelock.c (Vtemporary_file_directory): New variable.
6084 (syms_of_filelock): Set up Lisp variable.
6085
60861999-09-15 Gerd Moellmann <gerd@gnu.org>
6087
6088 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6089 (encode_terminal_code): Remove unused variables.
6090 (turn_off_face): Ditto.
6091 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6092
6093 * dispnew.c (update_frame_line): If writing whole desired line,
6094 don't clear to end of line if already at the end.
6095
60961999-09-15 Gerd Moellmann <gerd@gnu.org>
6097
6098 * xdisp.c (resize_mini_window): Don't report changed window
6099 height if it actually hasn't changed.
6100
6101 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
6102 unused variables.
6103 (mark_shell_size_user_specified): Put in #if 0 because not used.
6104 (create_frame_gcs): Put in #if 0 because currently unused.
6105 (first_frame_p): Ditto.
6106
6107 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6108 single_submenu, update_frame_menubar, set_frame_menubar,
6109 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6110 variables.
6111
6112 * print.c (PRINTFULLP): Removed because it is no longer used and
6113 is misleading.
6114 (Ferror_message_string): Remove unused variables.
6115 (print_object): Cast argument of sprintf to long for `%ld'
6116 specifier. Remove unused variable.
6117
61181999-09-14 Gerd Moellmann <gerd@gnu.org>
6119
6120 * sound.c (Fplay_sound): Remove usused variables.
6121 (be2hs): Put in #if 0 because it's currently not used.
6122
61231999-09-14 Ken Raeburn <raeburn@gnu.org>
6124
6125 * print.c (Ferror_message_string, print_error_message,
6126 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6127 member access.
6128
61291999-09-14 Gerd Moellmann <gerd@gnu.org>
6130
6131 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6132
6133 * frame.c (Fnext_frame): Remove unused variable(s).
6134 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6135 (store_frame_param): Add parentheses to conditional expression.
6136 (Fmodify_frame_parameters): Remove unused variables.
6137 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6138 Ditto.
6139
6140 * xfns.c (x_set_background_color): Remove unused variable(s).
6141 (x_set_border_pixel): Ditto.
6142 (x_set_menu_bar_lines): Put local variable used only for
6143 non-toolkit case in #ifdef/#endif.
6144 (x_figure_window_size): Remove unused variable(s).
6145 (x_figure_window_size, x_window, lookup_image,
6146 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6147 png_load, jpeg_load, gif_load, x_create_tip_frame,
6148 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6149
6150 * xterm.c (x_scroll_bar_handle_click): Compile only if
6151 not USE_TOOLKIT_SCROLL_BARS.
6152 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6153
6154 * dispextern.h: Add prototypes for gamma_correct and
6155 x_kill_gs_process.
6156
6157 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6158 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6159 x_set_toolkit_scroll_bar_thumb): Ditto.
6160 (x_scroll_bar_create): Move local variable to the
6161 conditionally compiled section of code where it is used.
6162 (x_scroll_bar_create): Remove unused variable(s).
6163 (x_scroll_bar_remove, XTread_socket): Ditto.
6164 (XTread_socket) <ConfigureNotify>: Move variables used for
6165 non-toolkit case into conditionally compiled section of code.
6166
6167 * window.h (freeze_window_starts): Fix typo in prototype.
6168
6169 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6170 variable(s).
6171
6172 * lisp.h: Add prototype for debug_print.
6173
6174 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6175 to use do-while.
6176
6177 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6178 (Fchar_table_range, Fset_char_table_default, mapcar1,
6179 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6180
6181 * lisp.h: Add prototype for getloadavg.
6182
61831999-09-14 Andreas Schwab <schwab@gnu.org>
6184
6185 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6186
6187 * lisp.h: Declare close_file_unwind.
6188
61891999-09-14 Richard Stallman <rms@gnu.org>
6190
6191 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6192
61931999-09-13 Gerd Moellmann <gerd@gnu.org>
6194
6195 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6196 is always set correctly.
6197
61981999-09-13 Dave Love <fx@gnu.org>
6199
6200 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6201 declaration.
6202
62031999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6204
6205 * xdisp.c (QCfile): Move here from xfns.c.
6206 (syms_of_xdisp): Initialize it.
6207 (message2_nolog): Change for Lisp_Object selected_frame.
6208 (message3_nolog, message_with_string, message,
6209 setup_echo_area_for_printing, truncate_echo_area,
6210 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6211
62121999-09-13 Dave Love <fx@gnu.org>
6213
6214 * xterm.c: Don't continue #define args for benefit of old cc.
6215 (xt_action_hook): Indent #error for benefit of K&R cc.
6216
62171999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6218
6219 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6220 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6221 (XRINGBELL): Removed.
6222
62231999-09-13 Dave Love <fx@gnu.org>
6224
6225 * xfns.c (x_put_x_image): Make type consistent with declaration.
6226
6227 * fns.c (Fmake_hash_table): Fix string continuation.
6228
62291999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6230
6231 * xfns.c (QCfile): Moved to xdisp.c.
6232 (syms_of_xfns): Don't initialize QCfile.
6233 (check_x_frame): Change for Lisp_Object selected_frame.
6234 (check_x_display_info, x_get_resource_string): Ditto.
6235
62361999-09-13 Gerd Moellmann <gerd@gnu.org>
6237
6238 * minibuf.c (choose_minibuf_frame): Don't try to set the
6239 mini-buffer window's buffer, if the buffer is invalid.
6240
6241 * xfns.c (QCfile): Moved to xdisp.c.
6242 (syms_of_xfns): Don't initialize QCfile.
6243
6244 * xdisp.c (QCfile): Move here from xfns.c.
6245 (syms_of_xdisp): Initialize it.
6246
6247 * lisp.h (selected_frame): Add external declaration.
6248
6249 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6250 (Fx_store_cut_buffer_internal): Ditto.
6251 (Fx_rotate_cut_buffers_internal): Ditto.
6252
6253 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6254 selected_frame.
6255 (Finternal_set_lisp_face_attribute): Ditto.
6256 (Finternal_get_lisp_face_attribute): Ditto.
6257 (Finternal_lisp_face_empty_p): Ditto.
6258 (Fdump_face): Ditto.
6259
6260 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6261 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6262 set_terminal_window, set_scroll_region, reassert_line_highlight,
6263 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6264 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6265 encode_terminal_code, write_glyphs, term_init): Ditto.
6266
6267 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6268 (kbd_input_ast, read_input_waiting): Ditto.
6269
6270 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6271 selected_frame.
6272 (read_minibuf): Ditto.
6273
6274 * keyboard.c (command_loop_1): Change for Lisp_Object
6275 selected_frame.
6276 (cmd_error_internal, command_loop_1, read_char,
6277 kbd_buffer_get_event, read_avail_input,
6278 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6279 interrupt_signal, quit_throw_to_read_char): Ditto.
6280
6281 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6282 (Ffontset_info): DItto.
6283
6284 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6285
6286 * dispnew.c (selected_frame): Make it a Lisp_Object.
6287 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6288 (direct_output_for_insert, direct_output_forward_char,
6289 init_display): Ditto.
6290
6291 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6292 selected_frame.
6293 (set_internal): Ditto.
6294
6295 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6296 (record_buffer): Ditto.
6297
6298 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6299 (do_switch_frame): Change for Lisp_Object selected_frame.
6300 (Fselected_frame): Ditto.
6301 (Fframe_first_window): Use SELECTED_FRAME.
6302 (Fframe_root_window): Change for Lisp_Object selected_frame.
6303 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6304 Fprevious_frame, other_visible_frames, Fdelete_frame,
6305 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6306 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6307 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6308 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6309 Fset_frame_height, Fset_frame_width): Ditto.
6310
63111999-09-13 Gerd Moellmann <gerd@gnu.org>
6312
6313 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6314 (message3_nolog, message_with_string, message,
6315 setup_echo_area_for_printing, truncate_echo_area,
6316 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6317
6318 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6319 (Fx_popup_dialog): Ditto.
6320
6321 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6322 (check_x_display_info, x_get_resource_string): Ditto.
6323
6324 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6325 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6326 (XRINGBELL): Removed.
6327
6328 * window.c (Fminibuffer_window): Change for Lisp_Object
6329 selected_frame.
6330 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6331 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6332 Fcurrent_window_configuration, init_window_once): Ditto.
6333
6334 * frame.h (SELECTED_FRAME): New.
6335
63361999-09-12 Ken Raeburn <raeburn@gnu.org>
6337
6338 * category.c (word_boundary_p): Use XCAR and XCDR.
6339 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6340 Fregister_code_conversion_map): Likewise.
6341 * coding.c (setup_coding_system, detect_coding_system,
6342 Ffind_operation_coding_system, Fset_coding_priority_internal):
6343 Likewise.
6344 * doc.c (get_doc_string, Fdocumentation,
6345 store_function_docstring): Likewise.
6346 * editfns.c (save_restriction_restore): Likewise.
6347 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6348 skip_debugger, find_handler_clause, Fautoload, Fapply,
6349 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6350 Likewise.
6351 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6352 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6353 Fread_file_name): Likewise.
6354 * filelock.c (unlock_all_files): Likewise.
6355 * insdel.c (Fcombine_after_change_execute): Likewise.
6356 * intervals.c (adjust_intervals_for_insertion): Likewise.
6357 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6358 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6359 store_in_keymap, Fcopy_keymap, define_as_prefix,
6360 current_minor_maps, Faccessible_keymaps,
6361 accessible_keymaps_char_table, Fkey_description,
6362 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6363 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6364 describe_map): Likewise.
6365 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6366 read_list, init_lread): Likewise.
6367 * search.c (Fmatch_data): Likewise.
6368 * sunfns.c (Fsun_menu_internal): Likewise.
6369 * syntax.c (describe_syntax): Likewise.
6370 * undo.c (record_insert, record_delete, Fundo_boundary,
6371 truncate_undo_list): Likewise.
6372 * vmsproc.c (child_sig): Likewise.
6373
6374 * editfns.c (Fformat): Use XFLOAT_DATA.
6375
63761999-09-12 Gerd Moellmann <gerd@gnu.org>
6377
6378 * keyboard.c (command_loop_1): Resize mini-window to the
6379 exact size of a message displayed, if any.
6380
6381 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6382 to exact size if exact_p is non-zero.
6383 (display_echo_area_1): Call resize_mini_window with
6384 new parameter.
6385 (redisplay_internal): Ditto.
6386 (resize_echo_area_axactly): New.
6387
6388 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6389 new parameter.
6390
6391 * dispextern.h: Change prototype of resize_mini_window.
6392 Add prototype for resize_echo_area_axactly.
6393
6394 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6395 (syms_of_xfaces): Defsubr accordingly.
6396
6397 * xdisp.c (hscroll_window_tree): Choose cursor row from
6398 desired or current matrix.
6399 (redisplay_internal): Hscroll before updating.
6400
64011999-09-12 Gerd Moellmann <gerd@gnu.org>
6402
6403 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6404 of minibuffer_prompt_length.
6405
6406 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6407 of minibuffer_prompt_length.
6408 (read_minibuf_unwind): Ditto.
6409 (Fminibuffer_complete_and_exit): Ditto.
6410 (Fminibuffer_complete_word): Ditto.
6411 (Fminibuffer_prompt_end): Ditto.
6412
6413 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6414 of minibuffer_prompt_length.
6415 (Fline_beginning_position): Ditto.
6416
6417 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6418 of minibuffer_prompt_length.
6419 (Fmake_indirect_buffer): Ditto.
6420 (Fkill_buffer): Ditto.
6421 (Ferase_buffer): Ditto.
6422
6423 * buffer.h (prompt_end_charpos): Replaces
6424 minibuffer_prompt_length.
6425
6426 * minibuf.c (read_minibuf): Return mini-buffer contents
6427 without the prompt.
6428
6429 * editfns.c (make_buffer_string_both): Take out the code
6430 to handle mini-buffer prompts.
6431 (Fbuffer_string): Handle the prompt here, instead.
6432
6433 * xfaces.c (lface_from_face_name): Resolve face aliases.
6434 (Qmode_line): Replaces Qmodeline.
6435 (realize_basic_faces): Use Qmode_line.
6436 (syms_of_xfaces): Initialize Qmode_line.
6437
64381999-09-12 Gerd Moellmann <gerd@gnu.org>
6439
6440 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6441 current column after inserting prompt.
6442 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6443
6444 * xfaces.c (Qframe_update_face_colors): New.
6445 (syms_of_xfaces): Initialize call.
6446 (update_face_from_frame_parameter): Call that function when
6447 the frame's background changes.
6448
64491999-09-12 Richard Stallman <rms@gnu.org>
6450
6451 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6452
64531999-09-12 Ken Raeburn <raeburn@gnu.org>
6454
6455 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6456 mark_object, mark_buffer): Use XCAR and XCDR.
6457 * bytecode.c (Fbyte_code): Likewise.
6458 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6459 Likewise.
6460 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6461 getenv_internal): Likewise.
6462 * dired.c (file_name_completion): Likewise.
6463 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6464 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6465 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6466 * indent.c (Fcompute_motion): Likewise.
6467 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6468 list_processes_1, Fstart_process, Fopen_network_stream,
6469 wait_reading_process_input, read_process_output_call,
6470 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6471 status_notify, wait_reading_process_input): Likewise.
6472 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6473 extend_property_ranges): Likewise.
6474 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6475 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6476 x_report_frame_params, x_set_cursor_type, x_icon_type,
6477 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6478 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6479 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6480 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6481 x_display_info_for_name, Fx_display_list): Likewise.
6482 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6483 Fx_popup_menu, Fx_popup_dialog): Likewise.
6484 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6485 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6486 w32_term_init, x_delete_display): Likewise.
6487 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6488 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6489 x_top_window_to_frame, x_set_frame_parameters,
6490 x_report_frame_params, x_set_cursor_type, x_icon_type,
6491 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6492 Fx_display_list, x_create_tip_frame): Likewise.
6493 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6494 Fx_popup_menu, Fx_popup_dialog): Likewise.
6495 * xselect.c (x_own_selection, x_get_local_selection,
6496 x_handle_selection_request, x_handle_selection_clear,
6497 x_clear_frame_selections, wait_for_property_change_unwind,
6498 wait_for_property_change, x_handle_property_notify,
6499 copy_multiple_data, x_get_foreign_selection,
6500 lisp_data_to_selection_data, clean_local_selection_data,
6501 x_handle_selection_notify, Fx_get_selection_internal,
6502 x_disown_buffer_selections): Likewise.
6503 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6504 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6505 Likewise.
6506
6507 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6508 XFLOAT_DATA.
6509 * bytecode.c (Fbyte_code): Likewise.
6510 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6511 fmod_float): Likewise.
6512
65131999-09-11 Richard Stallman <rms@gnu.org>
6514
6515 * xdisp.c (run_window_scroll_functions): If hook functions switch
6516 buffers, switch back after.
6517
65181999-09-11 Ken Raeburn <raeburn@gnu.org>
6519
6520 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6521 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6522 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6523 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6524 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6525 XCDR.
6526 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6527 XCDR.
6528
65291999-09-10 Richard Stallman <rms@gnu.org>
6530
6531 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6532 not RevertToPointerRoot.
6533 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6534 Fix the code to clear around the scroll bar.
6535
65361999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6537
6538 * print.c: Support print-circle and related features.
6539 (Vprint_gensym_alist): Removed.
6540 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6541 Vprint_number_table): New variables.
6542 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6543 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6544 (print, print_preprocess, print_preprocess_string, print_object):
6545 New/modified functions with print-circle feature. Use
6546 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6547 (syms_of_print): Defined new Lisp variables `print-circle',
6548 `print-continuous-numbering', `print-number-table'.
6549
65501999-09-10 Gerd Moellmann <gerd@gnu.org>
6551
6552 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6553 as background color specification instead of an integer.
6554 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6555 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6556 (clear_image_cache, syms_of_xfns): Use it.
6557 (Qpostscript): Replaces Qghostscript.
6558 (gs_type): Use it.
6559 (gs_image_p): Ditto.
6560 (syms_of_xfns): Initialize Qpostscript.
6561
65621999-09-10 Richard Stallman <rms@gnu.org>
6563
6564 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
6565
65661999-09-09 Richard Stallman <rms@gnu.org>
6567
6568 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
6569
6570 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
6571
65721999-09-09 Gerd Moellmann <gerd@gnu.org>
6573
6574 * fns.c (Fmakehash): Accept just one optional argument TEST.
6575
6576 * xfns.c (QCindex): New.
6577 (syms_of_xfns): Initialize QCindex.
6578 (gif_load): Use it instead of `:image'.
6579
65801999-09-09 Richard Stallman <rms@gnu.org>
6581
6582 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
6583 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
6584
65851999-09-08 Gerd Moellmann <gerd@gnu.org>
6586
6587 * xdisp.c (Qwhen): Replaces QCwhen.
6588 (syms_of_xdisp): Initialized it instead of QCwhen.
6589 (handle_single_display_prop): Use it instead of QCwhen.
6590
65911999-09-08 Ken'ichi Handa <handa@gnu.org>
6592
6593 * charset.c (translate_char): Reset MSBs of arguments of
6594 MAKE_CHAR.
6595 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
6596
65971999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
6598
6599 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
6600
6601 * fns.c (Fbase64_decode_region): Don't place point outside of the
6602 current accessible portion.
6603
66041999-09-07 Richard Stallman <rms@gnu.org>
6605
6606 * keymap.c (fix_submap_inheritance): Do nothing if the proper
6607 parent is an ancestor of SUBMAP; otherwise, add it as the
6608 ultimate ancestor.
6609
66101999-09-07 Gerd Moellmann <gerd@gnu.org>
6611
6612 * xdisp.c (handle_single_display_prop): Change conditional
6613 display property to `:when FORM . VALUE'.
6614
66151999-09-07 Richard Stallman <rms@gnu.org>
6616
6617 * fileio.c (Fwrite_region): Doc fix.
6618
66191999-09-07 Stefan Monnier <monnier@cs.yale.edu>
6620
6621 * fileio.c (Qexcl): New variable.
6622 (report_file_error): Handle EEXIST specially.
6623 (Fwrite_region): Special handling for CONFIRM = `excl'.
6624 (syms_of_fileio): Initialize Qexcl.
6625
66261999-09-07 Gerd Moellmann <gerd@gnu.org>
6627
6628 * xfns.c (x_set_foreground_color): Call
6629 update_face_from_frame_parameter.
6630 (x_set_background_color): Ditto.
6631 (x_set_mouse_color): Ditto.
6632 (x_set_cursor_color): Ditto.
6633 (x_set_border_color): Ditto.
6634 (x_set_scroll_bar_foreground): Ditto.
6635 (x_set_scroll_bar_background): Ditto.
6636
6637 * xfaces.c (recompute_basic_faces): Clear face cache.
6638 (Finternal_set_lisp_face_attribute): Modify frame parameters
6639 if attributes of certain faces are changed.
6640 (update_face_from_frame_parameter): New.
6641
6642 * xfaces.c (realize_basic_faces): Realize new basic faces.
6643
6644 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
6645 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
6646
6647 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
6648 (syms_of_xfaces): Intialize new symbols.
6649
6650 * fns.c (Fmakehash): Take one argument, test, make all the
6651 rest keyword arguments.
6652
6653 * window.c (Fset_window_margins): Make window the first argument.
6654 (set_window_buffer): Call Fset_window_margins with window as first
6655 argument.
6656
66571999-09-07 Gerd Moellmann <gerd@gnu.org>
6658
6659 * xfaces.c (Qfringe): Replaces Qmargin.
6660
66611999-09-07 Kenichi Handa <handa@etl.go.jp>
6662
6663 * charset.h: Lots of comments fixed.
6664 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
6665 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
6666
6667 * charset.c : Lots of comments fixed.
6668 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
6669 (CHAR_COMPONENTS_VALID_P): Name changed from
6670 CHAR_COMPONENT_VALID_P. Caller changed.
6671
66721999-09-06 Richard Stallman <rms@gnu.org>
6673
6674 * insdel.c (syms_of_insdel): Define Lisp variable
6675 inhibit-modification-hooks.
6676
66771999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
6678
6679 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
6680 unexaix.c.
6681
6682 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
6683
66841999-09-06 Dave Love <fx@gnu.org>
6685
6686 * unexaix.c: New version incorporating Michael Sperber's changes
6687 from XEmacs. Should solve problems on AIX 4.3.
6688
6689 * lread.c (Vbyte_boolean_vars): New variable.
6690 (defvar_bool, syms_of_lread): Use it.
6691
66921999-09-05 Richard Stallman <rms@gnu.org>
6693
6694 * minibuf.c (read_minibuf): Put all three properties on the
6695 same range, the whole prompt.
6696
66971999-09-05 Gerd Moellmann <gerd@gnu.org>
6698
6699 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
6700 (Fplay_sound, syms_of_sound): Use it.
6701 (parse_sound): Allow float volume values in the range [0, 1].
6702 (Fplay_sound): Ditto.
6703
6704 * window.c (Fset_window_vscroll): Make window the first argument,
6705 amount to scroll the second. Take non-negative vscroll as
6706 argument.
6707 (Fwindow_vscroll): Return non-negative vscroll.
6708
6709 * xfns.c (Fx_show_tip): Improve documentation.
6710
67111999-09-05 Gerd Moellmann <gerd@gnu.org>
6712
6713 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
6714 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
6715 `top-line' and `top_line' to `header-line' and `header_line'.
6716 Likewise for similar spellings.
6717
67181999-09-05 Gerd Moellmann <gerd@gnu.org>
6719
6720 * xdisp.c (row_containing_pos): New.
6721 (try_window_id): Use it.
6722
6723 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
6724 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
6725 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
6726 Likewise for upper-case etc.
6727
67281999-09-05 Gerd Moellmann <gerd@gnu.org>
6729
6730 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6731 Fix reference to renamed variable.
6732
67331999-09-04 Gerd Moellmann <gerd@gnu.org>
6734
6735 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
6736 (window_fixed_size_p): Use Qwindow_size_fixed instead of
6737 Qfixed_window_size.
6738 (syms_of_window): Ditto.
6739
6740 * fns.c (Fmakehash): Exchange optional test and size arguments.
6741
67421999-09-03 Gerd Moellmann <gerd@gnu.org>
6743
6744 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
6745 under newly created scroll bar.
6746 (expose_window): If window is not yet fully initialized, do
6747 nothing. This can happen when toolkit scroll bars are used and a
6748 window is split. Reconfiguring the scroll bars will generate an
6749 expose for a newly created window.
6750
6751 * frame.h (struct frame): New member `gamma'.
6752
6753 * xfns.c: Include math.h. Add extern declaration for atof in case
6754 we don't see one.
6755 (Qscreen_gamma): New.
6756 (struct x_frame_parm_table): Add prototypes, add
6757 x_set_screen_gamma.
6758 (gamma_correct): New function.
6759 (defined_color): Call it.
6760 (x_set_screen_gamma): New.
6761 (x_set_title): Add parameter old_value.
6762 (RES_TYPE_FLOAT): New.
6763 (x_get_arg): Handle RES_TYPE_FLOAT.
6764 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
6765 (lookup_pixel_color): Change call to x_alloc_nearest_color to
6766 new prototype.
6767 (lookup_rgb_color): Ditto.
6768 (syms_of_xfns): Initialize Qscreen_gamma.
6769
6770 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
6771 New. Allocate color for lwlib widgets.
6772 (x_alloc_nearest_color): Change parameter list include the
6773 frame on which to allocate colors. Gamma-correct colors.
6774 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
6775 parameter list.
6776
6777 * xterm.h: Change protorype of x_alloc_nearest_color.
6778
67791999-09-03 Richard Stallman <rms@gnu.org>
6780
6781 * callproc.c: Delete the system-independent include of stdlib.h
6782 (leaving only the one in the WINDOWSNT conditional).
6783
67841999-09-03 Andrew Choi <choi@cs.hku.hk>
6785
6786 * callproc.c (call-process) [macintosh]: Call mac_run_command in
6787 sysdep.c. The Mac code is modeled after the DOS code.
6788
6789 * dispextern.h [macintosh]: Include macterm.h to define substitute X
6790 Window types and macros.
6791
6792 * frame.h: Do nothing if included a second time.
6793 (enum output_method): Add mac_output frame type.
6794 (union output_data): Add new alternative `mac'.
6795 (FRAME_MAC_P): New macro.
6796
6797 * frame.c (Fframep) [macintosh]: Handle mac frame type.
6798 (syms_of_frame_1): Initialize Qmac.
6799 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
6800 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
6801 (Fmodify_frame_parameters) [macintosh]: Call
6802 mac_set_frame_parameter in macterm.c.
6803
6804 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
6805 (512) because Mac compilers limit local data of a function to 32K.
6806
6807 * make-docfiles.c: Correctly handle input files with Mac-style
6808 eol's.
6809
6810 * sysdep.c: Define numerous routines to emulate Unix system calls.
6811
6812 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
6813 file of an X Window environment.
6814
6815 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
6816 x-display-grayscale, x-color-defined-p, and x-color-values.
6817
6818 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
6819 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
6820 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
6821 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
6822 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
6823 New functions, replacing POSIX features.
6824
6825 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
6826 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
6827 (InitEmacsPasswdDir, run_mac_command): New subroutines.
6828
6829 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
6830 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
6831 (myPasswdDir, TempDirName, sys_siglist): New variables.
6832
6833 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
6834 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
6835 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
6836 Define empty stubs so Emacs will link.
6837
68381999-09-03 Gerd Moellmann <gerd@gnu.org>
6839
6840 * xdisp.c: Use XCAR and XCDR instead of XCONS.
6841
6842 * window.h: New member frozen_window_start_p.
6843
6844 * window.c (foreach_window, foreach_window_1): New.
6845 (freeze_window_start, freeze_window_starts): New.
6846 (make_window): Initialize frozen_window_start_p.
6847 (replace_window): Ditto.
6848 (Fset_window_point): Remove references to deleted variables.
6849 (Fset_window_start): Ditto.
6850
6851 * xdisp.c (Vresize_mini_config, resize_mini_frame,
6852 resize_mini_initial_height): Removed.
6853 (syms_of_xdisp): Remove references to these variables.
6854 (resize_mini_window): Don't save window configuration, freeze
6855 window starts instead. Enlarge window until displaying an empty
6856 buffer, then shrink it. Make the function externally visible.
6857 (redisplay_window): Treat frozen window start like forced start,
6858 but accept point outside of the window.
6859
6860 * dispextern.h: Add function prototype for resize_mini_window.
6861
6862 * minibuf.c (read_minibuf_unwind): Resize mini-window when
6863 reaching minibuf_level 0.
6864
6865 * lisp.h: Remove extern declarations for variables deleted from
6866 xdisp.c.
6867
6868 * dispnew.c (adjust_frame_glyphs): Remove reference to
6869 Vresize_mini_config.
6870
68711999-09-03 Gerd Moellmann <gerd@gnu.org>
6872
6873 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
6874 to USE_TOOLKIT_SCROLL_BARS.
6875
6876 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
6877 here.
6878 (XTset_vertical_scroll_bar): Clarify position computations. Clear
6879 under newly created scroll bar. Put toolkit scroll bars in the
6880 middle of the area reserved for the scroll bar.
6881
68821999-09-03 Kenichi Handa <handa@etl.go.jp>
6883
6884 The following changes are for the new handling of mulitbyte
6885 sequence. Now, except for a composite character, no multibyte
6886 character in string/buffer has trailing garbage bytes. For
6887 instance, the length of string "\201\300\300" is now 2, the first
6888 character is Latin-1 A-grave, the second is raw \300.
6889
6890 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
6891 are negative.
6892 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
6893 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
6894 (PARSE_COMPOSITE_SEQ): New macro.
6895 (PARSE_CHARACTER_SEQ): New macro.
6896 (PARSE_MULTIBYTE_SEQ): New macro.
6897 (CHAR_PRINTABLE_P): New macro.
6898 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
6899 (STRING_CHAR_AND_LENGTH): Likewise.
6900 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
6901 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
6902 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
6903
6904 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
6905 (SPLIT_CHARACTER_SEQ): New macro.
6906 (SPLIT_MULTIBYTE_SEQ): New macro.
6907 (CHAR_COMPONENT_VALID_P): New macro.
6908 (non_ascii_char_to_string): Generate a multibyte sequence as far
6909 as possible.
6910 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
6911 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
6912 (split_non_ascii_string): Likewise.
6913 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
6914 (char_printable_p): New function.
6915 (translate_char): Check character by NATNUMP instead of INTEGERP.
6916 (unibyte_char_to_multibyte): Call char_valid_p instead of
6917 VALID_MULTIBYTE_CHAR_P.
6918 (Fmake_char_internal): Check the arguments more rigidly.
6919 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
6920 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
6921 (Fmultibyte_char_to_unibyte): Check the validity of character by
6922 CHAR_VALID_P.
6923 (chars_in_text): Call multibyte_chars_in_text.
6924 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
6925 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
6926 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
6927
6928 * data.c (Faset): Adjust the way to check byte-combining
6929 possibility for the new handling of multibyte sequence.
6930
6931 * editfns.c (Fsubst_char_in_region): Likewise.
6932
6933 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
6934 (string_char_to_byte): Likewise.
6935 (string_byte_to_char): Likewise.
6936
6937 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
6938 macro STRING_CHAR_AND_LENGTH. Caller changed.
6939
6940 * insdel.c (count_combining_composition): New function.
6941 (count_combining_before): Adjust the way to check byte-combining
6942 possibility for the new handling of multibyte sequence. Call
6943 count_combining_composition for a composite character.
6944 (count_combining_after): Likewise.
6945
6946 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
6947 (print): Likewise.
6948
6949 * dispextern.h (struct it): Change the size of the member
6950 `ctl_chars'.
6951
6952 * xdisp.c (get_next_display_element): Display incomplete multibyte
6953 sequence (e.g. \222\300) by octal form.
6954
69551999-09-02 Gerd Moellmann <gerd@gnu.org>
6956
6957 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
6958
6959 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
6960 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
6961
69621999-09-02 Gerd Moellmann <gerd@gnu.org>
6963
6964 * buffer.c (set_buffer_internal): Never set
6965 windows_or_buffers_changed.
6966
6967 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
6968 if we have displayed to the bottom of the window.
6969
6970 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
6971 in both directions. Extend documentation.
6972
69731999-09-01 Gerd Moellmann <gerd@gnu.org>
6974
6975 * minibuf.c (read_minibuf): Flush display after setting cursor to
6976 column 0.
6977
69781999-08-31 Gerd Moellmann <gerd@gnu.org>
6979
6980 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
6981 already defined. This avoids a warning from buffer.c.
6982
69831999-08-30 Gerd Moellmann <gerd@gnu.org>
6984
6985 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
6986 of both margins.
6987 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
6988 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
6989 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
6990
6991 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
6992 once instead of twice.
6993 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
6994
6995 * xterm.c: Remove unused bitmaps.
6996 (continued_bits, continuation_bits, overlay_bits): Change images.
6997 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
6998 instead of FRAME_X_FLAGS_AREA_WIDTH.
6999 (x_after_update_window_line): Ditto.
7000 (x_draw_bitmap): Likewise.
7001 (x_draw_row_bitmaps): Likewise.
7002 (x_draw_glyph_string_box): Likewise.
7003 (x_draw_glyphs): Likewise.
7004 (x_scroll_run): Likewise.
7005 (expose_window_tree): Likewise.
7006 (note_mode_line_highlight): Likewise.
7007 (XTset_vertical_scroll_bar): Likewise.
7008 (x_clip_to_row): Likewise.
7009 (x_set_window_size): Likewise.
7010
7011 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
7012 of 2 * that value.
7013
7014 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
7015 2 * that value.
7016 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
7017 FRAME_FLAGS_AREA_WIDTH.
7018
7019 * window.c (coordinates_in_window): Use
7020 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7021 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
7022 instead of twice.
7023
7024 * widget.c (set_frame_size): Set flags_area_extra to
7025 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
7026 (EmacsFrameSetCharSize): Ditto.
7027
7028 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
7029 instead of FRAME_FLAGS_AREA_WIDTH.
7030
7031 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
7032 FRAME_FLAGS_AREA_COLS once.
7033 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
7034 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
7035
70361999-08-30 Gerd Moellmann <gerd@gnu.org>
7037
7038 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
7039 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7040
70411999-08-30 Gerd Moellmann <gerd@gnu.org>
7042
7043 * fns.c (QCweakness): Replaces QCweak.
7044 (Fmake_hash_table): Ditto.
7045 (Fmakehash): Ditto.
7046 (syms_of_fns): Ditto.
7047
70481999-08-29 Richard Stallman <rms@gnu.org>
7049
7050 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7051
7052 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7053
7054 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7055 Add support for nested comments.
7056
863476d1
SM
7057 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7058 Consolidate the forward comment code into the new `forw_comment'.
7059 (forw_comment): New subroutine. Added support for nested comments.
7060 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7061 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7062
70631999-08-28 Ken Raeburn <raeburn@gnu.org>
7064
7065 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7066 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7067 defined, to help detect code that uses knowledge of the Lisp
7068 internals that it shouldn't have.
7069 (XFLOAT_DATA): New macro.
7070
70711999-08-25 Gerd Moellmann <gerd@gnu.org>
7072
7073 * syntax.c (Fforward_word): If in a mini-buffer and moving
7074 backwards, stop in front of the prompt to prevent accidentially
7075 moving into the read-only prompt.
7076
7077 * window.c (Frecenter): Clear frame if called with nil or no arg.
7078
7079 * xdisp.c (resize_mini_window): Don't resize if
7080 Vmax_mini_window_height is nil. Otherwise, use a default if
7081 Vmax_mini_window_height is not ot a number.
7082 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7083
70841999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7085
7086 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7087 * m/iris4d.h: Use unexelf for IRIX 5.*.
7088 * m/iris5d.h: Use unexelf for IRIX 6.*.
7089 * unexsgi.c: Deleted.
7090
7091 * unexelf.c: Auto-detect .sbss section.
7092 (round_up): Make it static.
7093 (unexec): Declare alignment as Elf Word. Skip ``Program
7094 segment above .bss'' test on MIPS without .sbss.
7095 Copy sections .got and .sdata1 sections. Adjust offsets in
7096 sections .sdata, .lit4, .lit8, .got and .sdata1.
7097
70981999-08-25 Gerd Moellmann <gerd@gnu.org>
7099
7100 * xdisp.c (try_window_id): Remove typo.
7101
71021999-08-24 Gerd Moellmann <gerd@gnu.org>
7103
7104 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7105 unchanged text at the bottom when computing the cursor position.
7106 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7107 set.
7108
7109 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7110
71111999-08-24 Gerd Moellmann <gerd@gnu.org>
7112
7113 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7114 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7115 (syms_of_xfaces): Ditto.
7116
7117 * window.c (Fset_window_point): Reset Vresize_mini_config.
7118 (Fset_window_start): Ditto.
7119 (set_window_buffer): Ditto.
7120
7121 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7122
7123 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7124 before calling try_window.
7125 (echo_area_display): If height has changed, update other windows.
7126 (resize_mini_frame, resize_mini_initial_height): New.
7127 (resize_mini_window): Save/restore window configuration
7128 differently.
7129
7130 * lisp.h (Vresize_mini_config, resize_mini_frame,
7131 resize_mini_initial_height): Add extern declarations.
7132
7133 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7134 CANON_X_UNIT.
7135
7136 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7137 being redefined in jconfig.h.
7138
71391999-08-23 Ken'ichi Handa <handa@gnu.org>
7140
7141 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7142
71431999-08-22 Gerd Moellmann <gerd@gnu.org>
7144
7145 * alloc.c (mark_glyph_matrix): Mark strings only.
7146
7147 * xdisp.c (redisplay_internal): Clear garbaged frames after
7148 resizing mini-window.
7149
71501999-08-22 Gerd Moellmann <gerd@gnu.org>
7151
7152 * xdisp.c (unwind_with_echo_area_buffer): Use
7153 set_buffer_internal_1 instead of set_buffer_internal.
7154 (with_echo_area_buffer): Ditto.
7155
7156 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7157 only if buffer is displayed somewhere.
7158
7159 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7160
7161 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7162 (gap_right): Ditto.
7163 (modify_region): Ditto.
7164
7165 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7166
7167 * xdisp.c (Vresize_mini_config): New.
7168 (resize_mini_window): Use it to save restore original window
7169 configuration
7170 (syms_of_xdisp): Initialize it.
7171
7172 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7173
7174 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7175
7176 * xdisp.c (reconsider_clip_changes): New.
7177 (redisplay_internal, redisplay_window): Call it.
7178 (mark_window_display_accurate, redisplay_internal): Set current
7179 matrix' buffer, begv, zv.
7180
7181 * window.c (Fset_window_hscroll): Set
7182 prevent_redisplay_optimizations_p instead of clip_changed.
7183 (Fset_window_hscroll): Ditto.
7184 (temp_output_buffer_show): Ditto.
7185 (Fset_window_vscroll): Ditto.
7186
7187 * buffer.c (reset_buffer): Set clip_changed to 0 and
7188 prevent_redisplay_optimizations_p to 1.
7189 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7190
7191 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7192 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7193 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7194 END_UNCHANGED): New.
7195 (struct buffer_text): Add beg_unchanged, end_unchanged,
7196 unchanged_modified, overlay_unchanged_modified.
7197
7198 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7199 overlay_unchanged_modified): Removed.
7200 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7201 (unwind_with_echo_area_buffer): Don't restore them.
7202 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7203 (text_outside_line_unchanged_p, redisplay_internal,
7204 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7205 (redisplay_window): Let try_window_id be called if more than one
7206 window is displayed. Use/set buffer-specific beg/end_unchanged.
7207 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7208 try_window_id):
7209 Use buffer-specific beg/end_unchanged.
7210
7211 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7212 overlay_unchanged_modified): Remove extern declarations.
7213
7214 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7215 buffer.
7216
7217 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7218 (gap_right): Ditto.
7219 (adjust_after_replace): Likewise.
7220 (replace_range, del_range_2, modify_region): Likewise.
7221
7222 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7223 and unchanged_modified per buffer.
7224
7225 * coding.c (code_convert_region): Compute beg/end_unchanged per
7226 buffer.
7227
7228 * buffer.c (modify_overlay): Compute beg/end_unchanged
7229 per buffer.
7230 (Fget_buffer_create): Initialize new members of the buffer
7231 structure.
7232
72331999-08-22 Gerd Moellmann <gerd@gnu.org>
7234
7235 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7236
7237 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7238 (Qkey_value_weak): Removed.
7239 (make_hash_table): Use nil, `key', `value', t for weakness.
7240 (Fmake_hash_table): Ditto.
7241 (copy_hash_table): New.
7242 (Fcopy_hash_table): New.
7243
72441999-08-22 Gerd Moellmann <gerd@gnu.org>
7245
7246 * xfns.c: Call change_frame_size and do_pending_window_change with
7247 new parameter.
7248
72491999-08-21 Gerd Moellmann <gerd@gnu.org>
7250
7251 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7252 well.
7253 (redisplay_internal): Resize mini-window only if text might
7254 have changed.
7255 (display_echo_area): Reset displayed echo_area_buffer to nil
7256 at the end if we're displaying a nil message.
7257
72581999-08-21 Gerd Moellmann <gerd@gnu.org>
7259
7260 * fns.c (hash_lookup): Test with EQ before calling key comparion
7261 function.
7262 (hash_remove): Ditto.
7263 (cmpfn_eq): Removed.
7264 (cmpfn_eql): Don't test with EQ.
7265 (cmpfn_equal): Ditto.
7266 (make_hash_table): Set comparison function for `eq' to null.
7267
7268 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7269 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7270
7271 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7272
7273 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7274 xterm.c: Call change_frame_size and do_pending_window_change with
7275 new parameter.
7276
7277 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7278 (change_frame_size): Ditto.
7279 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7280 and not called from a safe place.
7281 (window_change_signal): Call change_frame_size with new parameter.
7282
7283 * dispextern.h: Change prototypes for do_pending_window_change
7284 and change_frame_size.
7285
7286 * xfaces.c (face_at_buffer_position): Don't xassert that
7287 window's buffers equals current_buffer; this is not the
7288 case during echo area display.
7289
72901999-08-21 Gerd Moellmann <gerd@gnu.org>
7291
7292 * xdisp.c, minibuf.c: Remove conditional compilation on
7293 NO_PROMPT_IN_BUFFER.
7294
7295 * minibuf.c (Fminibuffer_prompt_end): New.
7296 (syms_of_minibuf): Defsubr it. Remove
7297 minibuffer-prompt-in-buffer.
7298 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7299 Extend documentation.
7300
7301 * xdisp.c (get_next_display_element): Display \r as ^M.
7302
7303 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7304 under scroll bar widget.
7305
73061999-08-21 Gerd Moellmann <gerd@gnu.org>
7307
7308 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7309 anywhere.
7310 (unwind_redisplay): Return nil.
7311 (clear_garbaged_frames): New.
7312 (redisplay_internal): Use it.
7313 (echo_area_display): Ditto.
7314 (resize_mini_window): Mew.
7315 (display_echo_area_1): Use it to resize echo area window.
7316 (redisplay_internal): Use it to resize active mini-window.
7317
7318 * dispextern.h, lisp.h: Add function prototypes.
7319
7320 * dispnew.c (set_window_cursor_after_update): Do the
7321 cursor_in_echo_area case only for a mini-window showing
7322 a message. Don't let cursor end up after the end of a row.
7323
7324 * xdisp.c (echo_area_glyphs, echo_area_message,
7325 echo_area_glyphs_length, previous_echo_glyphs,
7326 previous_echo_area_message, previous_echo_area_glyphs_length):
7327 Removed.
7328 (Vmessage_stack, echo_area_buffer, echo_buffer,
7329 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7330 (message2_nolog): Use set_message and clear_message.
7331 (message3): Rename parameter len to nbytes to make clear what
7332 it is.
7333 (message3_nolog): Ditto. Use set_message and clear_message.
7334 (update_echo_area): Rewritten.
7335 (with_echo_area_buffer): New.
7336 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7337 (setup_echo_area_for_printing): New.
7338 (display_echo_area, display_echo_area_1): New.
7339
7340 (current_message, current_message_1): New.
7341 (push_message, restore_message, pop_message,
7342 check_message_stack): New.
7343 (truncate_echo_area): Rewritten.
7344 (truncate_message_1): New.
7345 (set_message, set_message_1, clear_message): New.
7346 (echo_area_display): Rewritten.
7347 (redisplay_internal): Check for needed echo area update
7348 differently.
7349 (redisplay_preserve_echo_area): Rewritten.
7350 (redisplay_window): Check for mini-window displaying echo area
7351 message differently.
7352 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7353 Remove initialzation of removed variables.
7354 (init_xdisp): Remove references to removed variables.
7355
7356 * dispnew.c (adjust_frame_message_buffer): Removed references
7357 to echo_area_glyphs and previous_echo_glyphs.
7358 (direct_output_for_insert): Check for mini-window displaying
7359 echo area message differently.
7360 (update_frame): Likewise.
7361 (set_window_cursor_after_update): Likewise. In echo area,
7362 don't try to set cursor on rows that aren't enabled.
7363
7364 * print.c: Remove conditional compilation on `standalone'.
7365 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
7366 glyph_to_str_cpy): Remove that section because GLYPHs are no
7367 longer used in that way.
7368 (PRINTDECLARE): Add multibyte.
7369 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7370 (printbufidx): Removed.
7371 (printchar, strout): Rewritten.
7372
7373 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7374 a struct kboard.
7375 (echo_kboard): New.
7376 (echo_now): Set echo_kboard to the current kboard.
7377 (cancel_echoing): Set echo_kboard to null.
7378 (cmd_error_internal): Use clear_message, remove references
7379 to echo_area_glyphs and echo_area_message.
7380 (command_loop_1): Check for echo area messages differently.
7381 (read_char): Likewise.
7382 (record_menu_key): Use clear_message.
7383 (Fexecute_extended_command): Check for echo area messages
7384 differently. Use push_message, restore_message, pop_message.
7385
7386 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7387 pop_message.
7388
7389 * emacs.c (shut_down_emacs): Call check_message_stack.
7390
7391 * lisp.h: Add function prototypes and extern declarations for
7392 new functions and variables.
7393
7394 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7395 pop_message.
7396
7397 * minibuf.c (read_minibuf): Use clear_message instead of
7398 setting echo_area_glyphs.
7399 (Fminibuffer_completion_help): Ditto.
7400
7401 * editfns.c (Fcurrent_message): Rewritten.
7402
7403 * frame.c, window.h: Remove references to echo_area_glyphs
7404 and previous_echo_glyphs.
7405
74061999-08-21 Dave Love <fx@gnu.org>
7407
7408 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7409 * aix4-1.h: Likewise.
7410
7411 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7412
74131999-08-20 Gerd Moellmann <gerd@gnu.org>
7414
7415 * xfns.c: Remove tiff34 prefix from include.
7416
74171999-08-20 Dave Love <fx@gnu.org>
7418
7419 * cm.c: Revert previous change.
7420
74211999-08-19 Gerd Moellmann <gerd@gnu.org>
7422
7423 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7424 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7425
74261999-08-18 Dave Love <fx@gnu.org>
7427
7428 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7429 stdlib.h.
7430
7431 * doprnt.c: Use stdlib.h, unistd.h.
7432
7433 * config.in: Add HAVE_TERMCAP_H.
7434
7435 * cm.c: Use termcap.h.
7436
74371999-08-18 Gerd Moellmann <gerd@gnu.org>
7438
7439 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7440 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7441 cannot be created we will already have crashed earlier. Call
7442 lw_set_main_areas with a null menu-bar widget, so that we have
7443 a reasonable default.
7444 (Fx_create_frame): Rearranged so that Lisp errors during frame
7445 initialization cause less damage. Initialize menu bar widget
7446 here.
7447
74481999-08-18 Gerd Moellmann <gerd@gnu.org>
7449
7450 * dispnew.c (update_frame_line): Fix previous change. If writing
7451 whole line clear to end of frame.
7452
74531999-08-17 Gerd Moellmann <gerd@gnu.org>
7454
7455 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7456 and `right-bitmap-area' if position is in the bitmap areas. This
7457 avoids an error when clicking on the bitmap areas. Instead, they
7458 are currently treated like clicks inside the window.
7459 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7460 (Qleft_bitmap_area, Qright_bitmap_area): New.
7461 (syms_of_window): Initialize new symbols.
7462
7463 * dispnew.c (update_frame_line): If writing whole line,
7464 don't write trailing spaces unless we must.
7465
7466 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7467 (redisplay_internal): Register unwind_redisplay with
7468 register_unwind_protect.
7469 (try_window_reusing_current_matrix): If new start > old start,
7470 give up if start pos of first reusable row is not equal to new
7471 start.
7472
7473 * eval.c (Fsignal): Don't reset redisplaying_p here.
7474
7475 * xterm.c (expose_area): If row extends face to end of line,
7476 write the whole line.
7477
74781999-08-16 Gerd Moellmann <gerd@gnu.org>
7479
7480 * dispextern.h (struct it): Remove member
7481 show_trailing_whitespace_p.
7482
7483 * dispnew.c (direct_output_for_insert): Use
7484 Vshow_trailing_whitespace instead of former iterator member
7485 show_trailing_whitespace_p.
7486 (direct_output_forward_char): Don't do it if hightlighting
7487 trailing whitespace.
7488
7489 * xdisp.c (Qshow_trailing_whitespace): Removed.
7490 (Vshow_trailing_whitespace): Added.
7491 (init_iterator): Remove initialization code for
7492 show_trailing_whitespace_p.
7493 (redisplay_internal): Don't try cursor movement in this_line
7494 if showing trailing whitespace.
7495 (redisplay_window): Likewise for cursor movement in current
7496 matrix and try_window_id.
7497 (try_window_reusing_current_matrix): Likewise.
7498 (trailing_whitespace_p): Return 0 if trailing whitespace is
7499 in front of point.
7500 (display_line): Use Vshow_trailing_whitespace instead of
7501 former iterator member show_trailing_whitespace_p.
7502 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7503
75041999-08-16 Gerd Moellmann <gerd@gnu.org>
7505
7506 * window.c (Fpos_visible_in_window_p): Rewritten.
7507
7508 * xfaces.c (add_to_log): Renamed from display_message.
7509 Don't display messages in echo area.
7510
7511 * xterm.c (x_draw_glyph_string_box): Use the background width
7512 of the glyph string for the width of the box.
7513
75141999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7515
7516 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7517
75181999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7519
7520 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7521 background first, and then set other parameters that might
7522 depend upon their new values.
7523
75241999-08-15 Gerd Moellmann <gerd@gnu.org>
7525
7526 * xfaces.c (Vfont_list_limit): New.
7527 (syms_of_xfaces): Make it a user-variable.
7528 (DEFAULT_FONT_LIST_LIMIT): New.
7529 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7530 maximally that number of fonts, otherwise use
7531 DEFAULT_FONT_LIST_LIMIT.
7532 (Fx_font_family_list): Bind `font-list-limit' to higher values
7533 until we have all fonts.
7534 (Fxfont_list): Additionally return the full names of fonts and
7535 their registry and encoding.
7536
7537 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
7538 Simplify clearing "under" scroll bar.
7539
7540 * window.c (Qfixed_window_size): New.
7541 (syms_of_window): Initialiaze it.
7542 (check_all_windows): Add return type void.
7543 (window_fixed_size_p): New. Return non-zero if window
7544 is fixed-size.
7545 (window_min_size_1): New.
7546 (window_min_size): Handle fixed-size windows.
7547 (size_window): New. Rewritten combination of set_window_height and
7548 set_window_width that handles fixed-size windows.
7549 (set_window_height): Call it.
7550 (set_window_width): Call it.
7551 (Fsplit_window): Give an error on attempt to split a fixed-size
7552 window.
7553 (change_window_height): Partly rewritten to handle fixed-size
7554 windows.
7555
75561999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7557
7558 * process.c (Fopen_network_stream): Fix previous change.
7559
75601999-08-13 Karl Heuer <kwzh@gnu.org>
7561
7562 * xdisp.c (line_number_display_limit_width): New var.
7563 (decode_mode_spec): Use it instead of hardcoded value.
7564 (syms_of_xdisp): Defvar it.
7565
75661999-08-13 Richard M. Stallman <rms@gnu.org>
7567
7568 * eval.c (run_hook_list_with_args): Gcpro `globals'.
7569 (run_hook_with_args): Likewise.
7570
7571 * window.h (struct window): New field too_small_ok.
7572
7573 * window.c (set_window_height, set_window_width):
7574 If window starts out "too small", set its too_small_ok flag.
7575 If window's too_small_ok flag is set, don't delete it
7576 unless it is so small it would cause a crash.
7577
75781999-08-13 Gerd Moellmann <gerd@gnu.org>
7579
7580 * window.c (MINSIZE): Removed.
7581 (window_min_size): New.
7582 (set_window_height): Use window_min_size.
7583 (change_window_height): Ditto.
7584
75851999-08-12 Gerd Moellmann <gerd@gnu.org>
7586
7587 * indent.c (vmotion): Don't add in mini-buffer prompt width
7588 if prompts are inserted into mini-buffer.
7589
75901999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7591
7592 * config.in: Add HAVE_GETADDRINFO.
7593 * process.c (Fopen_network_stream): Use getaddrinfo.
7594
75951999-08-11 Gerd Moellmann <gerd@gnu.org>
7596
7597 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
7598 glyphs to -1.
7599
7600 * xdisp.c (face_before_or_after_it_pos): If position after
7601 or before iterator's current position in the buffer is out
7602 of bounds, return the iterator's original face id.
7603
7604 * dispnew.c (mirror_make_current): If desired row isn't enabled,
7605 just swap glyphs pointers between current and desired row.
7606 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
7607 desired matrix method string to current matrix.
7608
76091999-08-11 Kenichi Handa <handa@etl.go.jp>
7610
7611 * lisp.h (CHAR_MODIFIER_MASK): New macro.
7612
7613 * lread.c (read_escape): For Control modifier, pay attention to
7614 multibyte character.
7615 (read1): Likewise. Singal error or a multibyte character which
7616 has a modifer bit. Check validity of Shift modifer.
7617
7618 * charset.c (non_ascii_char_to_string): Handle modifier bits as
7619 the same as Lisp reader.
7620
76211999-08-10 Richard M. Stallman <rms@gnu.org>
7622
7623 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
7624
76251999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
7626
7627 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
7628
76291999-08-10 Eli Zaretskii <eliz@gnu.org>
7630
7631 * msdos.c (IT_set_face): Abort if the default face is not realized
7632 and cached.
7633 (IT_write_glyphs): Reset the screen face to the default face
7634 before writing glyphs.
7635
7636 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
7637 colors from the frame here.
7638 (realize_tty_face) [MSDOS]: Do it here. Update the face
7639 attributes with the actual name of the color taken from the
7640 frame.
7641
7642 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
7643 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
7644
7645 * frame.c (Fframe_parameters): Swap foreground and background
7646 colors returned in frame parameters if the frame has reverse in
7647 its parameter alist.
7648 (Fmake_terminal_frame): Make a unique copy of face_alist for
7649 each frame.
7650
76511999-08-07 Richard Stallman <rms@gnu.org>
7652
7653 * buffer.c (Fprevious_overlay_change): Just return
7654 the answer obtained from overlays_at.
7655
7656 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
7657 Use XpmCloseness and attrs.closeness instead.
7658
76591999-08-06 Richard Stallman <rms@gnu.org>
7660
7661 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
7662
76631999-08-06 Geoff Voelker <voelker@cs.washington.edu>
7664
7665 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
7666 Ffile_attributes_lessp): New functions.
7667 (Fdirectory_files): Use directory_files_internal.
7668 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
7669 Ffile_attributes_lessp.
7670
7671 * w32.c (stat): Check for directory ending in separator when
7672 doing readdir fast path.
7673
7674 * w32fns.c (x_set_icon_type): Support setting frame icons.
7675 * w32term.c (x_bitmap_icon): New function.
7676 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
7677
76781999-08-06 Gerd Moellmann <gerd@gnu.org>
7679
7680 * xdisp.c (set_iterator_to_next): After delivering a character
7681 from a display vector, restore face and charset to what they were
7682 before the display vector was processed.
7683
76841999-08-06 Gerd Moellmann <gerd@gnu.org>
7685
7686 * xdisp.c (reseat_at_next_visible_line_start): New parameter
7687 on_newline_p.
7688 (set_iterator_to_next): After delivering last char
7689 from display vector, reseat on next visible line start if
7690 dpvec_char_len < 0.
7691 (next_element_from_buffer): Set dpvec_char_len to -1 for
7692 selective display.
7693
76941999-08-06 Gerd Moellmann <gerd@gnu.org>
7695
7696 * xdisp.c (compute_line_metrics): If first line's physical ascent
7697 is larger than its logical ascent, use the physical ascent, and
7698 make the row taller. Set row's overlapping_p flag.
7699
7700 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
7701 (direct_output_for_insert): Ditto.
7702
7703 * dispextern.h (struct glyph_row): Add overlapping_p.
7704
7705 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
7706
7707 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
7708 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
7709
7710 * dispnew.c (direct_output_for_insert): Don't use this method if
7711 row is overlapped by others.
7712 (update_text_area): Write full line if current line is overlapped.
7713 (redraw_overlapped_rows): New.
7714 (update_window): Call it.
7715 (redraw_overlapping_rows): New.
7716 (update_window): Call it.
7717 (scrolling_window): Make sure overlapped_p flag in current rows is
7718 unchanged.
7719 (row_equal_p): Take rows overlapped_p flag into account.
7720
7721 * dispextern.h (struct glyph_row): Add flag overlapped_p.
7722
7723 * xterm.c (x_fix_overlapping_area): New.
7724 (x_redisplay_interface): Add x_fix_overlapping_area.
7725
7726 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
7727
77281999-08-06 Gerd Moellmann <gerd@gnu.org>
7729
7730 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
7731 (struct glyph_string): Add member for_overlaps_p.
7732 (x_get_glyph_string_clip_rect): If glyph string draws foreground
7733 of overlapping rows, clip to window bottom.
7734 (x_fill_glyph_string): Add parameter overlaps_p.
7735 (x_fill_composite_glyph_string): Ditto.
7736 (BUILD_GLYPH_STRINGS): Ditto.
7737 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
7738 (x_draw_glyph_string): Don't draw anything but the foreground
7739 if glyph string draws row overlaps.
7740
7741 * dispnew.c (direct_output_for_insert): Don't use this
7742 optimization for rows that overlap others.
7743 (update_window_line): Return non-zero if display has changed.
7744 (update_text_area): Ditto.
7745 (update_window): Record if display has been changed.
7746
7747 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
7748
7749 * dispextern.h (struct redisplay_interface): Add
7750 fix_overlapping_area.
7751
7752 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
7753
7754 * dispextern.h (struct glyph): Add overlaps_vertically_p.
7755
7756 * xterm.c (x_produce_image_glyph): Compute iterator's physical
7757 ascent and descent.
7758 (x_produce_stretch_glyph): Ditto.
7759 (x_produce_glyphs): Ditto.
7760
7761 * xdisp.c (init_iterator): Reset physical line height info
7762 after producing special glyphs.
7763 (display_toolbar_line): Set physical line height info.
7764 (compute_line_metrics): Ditto.
7765 (display_line): Ditto.
7766 (display_string): Ditto.
7767
7768 * term.c (produce_glyphs): Set iterator's physical height
7769 information.
7770
7771 * dispnew.c (blank_row): Compute glyph row's physical height.
7772 (row_equal_p): Take physical row heights into account.
7773 (direct_output_for_insert): Ditto.
7774 (update_text_area): Ditto.
7775
7776 * dispextern.h (struct glyph_row): Add phys_ascent and
7777 phys_height.
7778 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
7779 max_phys_descent.
7780
77811999-08-04 Stefan Monnier <monnier@cs.yale.edu>
7782
7783 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
7784 Fswitch_to_buffer.
7785 (no_switch_buffer): New function.
7786 (Fswitch_to_buffer): Call them. Don't get confused
7787 by "same-window" buffers in a dedicated frame.
7788
7789 * window.c (display-buffer): Don't get confused
7790 by "same-window" buffers in a dedicated frame.
7791
77921999-08-04 Andreas Schwab <schwab@gnu.org>
7793
7794 * insdel.c (insert_from_string_1): Check gap size against number
7795 of outgoing bytes, not incoming bytes.
7796
77971999-08-03 Tom Breton <tob@world.std.com>
7798
7799 * lread.c (read1): Added circular reading code to #N=.
7800 (SUBSTITUTE): New macro.
7801 (seen_list): New variable.
7802 (substitute_object_in_subtree): New function.
7803 (substitute_object_recurse): New function.
7804 (substitute_in_interval): New function.
7805
78061999-08-02 Eli Zaretskii <eliz@gnu.org>
7807
7808 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
7809
7810 * frame.c (make_terminal_frame): Don't call init_frame_faces if
7811 noninteractive, for termcap frames as well.
7812
7813 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
7814 frames.
7815
78161999-08-01 Richard Stallman <rms@gnu.org>
7817
7818 * fns.c (internal_equal): Correct overlay comparison.
7819
83c8f461 78201999-07-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
7821
7822 * xfns.c (x_set_internal_border_width):
7823 Call do_pending_window_change. Don't block input, don't call XFlush.
7824 (x_set_vertical_scroll_bars): Call do_pending_window_change.
7825 (x_set_scroll_bar_width, x_set_font): Likewise.
7826
7827 * frame.c (Fset_frame_height): Call do_pending_window_change.
7828 (Fset_frame_width, Fset_frame_size): Likewise.
7829
7830 * xterm.c (x_set_window_size): When calling change_frame_size,
7831 specify 1 for DELAY.
7832
7833 * widget.c (EmacsFrameSetCharSize): Don't call
7834 do_pending_window_change here.
7835
78361999-07-30 Dave Love <fx@gnu.org>
7837
7838 * config.in: Add HAVE_STDLIB_H.
7839
78401999-07-30 Richard M. Stallman <rms@gnu.org>
7841
7842 * process.c (create_process): Detect failure of `pipe'.
7843
78441999-07-30 Keisuke Nishida <kei@psn.net>
7845
7846 * alloc.c (allocate_vectorlike): Add missing increment.
7847
7848 * data.c (Fdefalias): Call Ffset instead of duplicating code.
7849
7850 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
7851 before calling indirect_function.
7852
78531999-07-30 Eli Zaretskii <eliz@gnu.org>
7854
7855 * dispextern.h (load_color, lookup_derived_face): Declare
7856 prototypes.
7857
7858 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
7859 it will be done later.
7860
7861 * frame.c (make_terminal_frame) [MSDOS]: Don't call
7862 init_frame_faces if non-interactive.
7863 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
7864 array with a call to msdos_stdcolor_name. The font name is now
7865 "ms-dos", consistent with realize_tty_face.
7866
7867 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
7868 MSDOS frame.
7869
7870 * window.c (Fset_window_configuration) [MSDOS]: Don't call
7871 x_set_toolbar_lines.
7872
7873 * xfaces.c (load_color): Remove static from definition and remove
7874 prototype.
7875 [MSDOS]: Add a DOS-specific version of load_color.
7876 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
7877 (lookup_derived_face): New function.
7878 (realize_default_face): Support MSDOS frames.
7879 [MSDOS]: If fore/background colors are unspecified, inherit them
7880 from the frame.
7881 (realize_face): Support MSDOS frames.
7882 (realize_tty_face): Support MSDOS frames.
7883 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
7884 load_color to try to find a suitable approximation. If the face
7885 is inverse-video, swap the foreground and background colors.
7886
7887 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
7888 functions.
7889
7890 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
7891
7892 * msdos.h: Remove redundant declarations (most of them are now in
7893 dispextern.h).
7894
7895 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
7896 Use default frame colors if the face doesn't specify them; invert
7897 the colors if highlight is ON.
7898 (IT_write_glyphs): Rewritten for the new redisplay engine.
7899 (IT_change_line_highlight): Add (unused) parameter Y, since that's
7900 how the hook is called by term.c.
7901 (IT_copy_glyphs): New function, copies an area of the display in
7902 video RAM.
7903 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
7904 redisplay now calls it even if char_ins_del_ok is zero.
7905 (IT_set_frame_parameters): Prototype changed. Calls the new
7906 load_color. Puts the new fore/background colors into the default
7907 face on current frame.
7908 (IT_menu_display): Rewritten to handle the new struct glyph
7909 instead of a char array.
7910 (XMenuActivate): Call lookup_derived_face to create and use
7911 special faces for the pop-up and drop-down menus.
7912
79131999-07-29 Gerd Moellmann <gerd@gnu.org>
7914
7915 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
7916 XawScrollbarSetThumb if thumb parameters haven't changed because
7917 that function apparently isn't optimized for this case.
7918
79191999-07-29 Eli Zaretskii <eliz@gnu.org>
7920
7921 * msdos.c (getdefdir): Don't return failure indication when
7922 _fixpath sets errno to ENOSYS.
7923
79241999-07-28 Gerd Moellmann <gerd@gnu.org>
7925
7926 * xdisp.c (string_char_and_length): New. Use it everywhere
7927 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
7928
79291999-07-28 Kenichi Handa <handa@etl.go.jp>
7930
7931 * fns.c (count_combining): New function.
7932 (struct textprop_rec): New structure.
7933 (concat): Copy text properties correctly when byte combining
7934 occurs.
7935
79361999-07-28 Gerd Moellmann <gerd@gnu.org>
7937
7938 * xterm.c (x_setup_relief_color): Don't try smart color allocation
7939 if display is mono.
7940 (x_draw_row_bitmaps): If face has stipple, don't switch
7941 to foreground color for clearing areas, and set the fill style.
7942
7943 * xfaces.c (load_face_colors): Load background color if setting
7944 stipple, too.
7945 (prepare_face_for_display): Use FillOpaqueStippled instead of
7946 FillStippled.
7947
79481999-07-26 Ken'ichi Handa <handa@gnu.org>
7949
7950 * xterm.c (x_find_ccl_program): Add casting.
7951
7952 * w32fns.c (w32_find_ccl_program): Add casting.
7953
79541999-07-27 Gerd Moellmann <gerd@gnu.org>
7955
7956 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
7957
7958 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
7959 because this will try to access a nonexisting widget.
7960
79611999-07-26 Markus Rost <rost@gnu.org>
7962
7963 * fns.c (Fgethash): Fix order of variables (patch by gerd).
7964 (Fputhash): Ditto.
7965 (Fremhash): Ditto.
7966
79671999-07-26 Gerd Moellmann <gerd@gnu.org>
7968
7969 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
7970 value to frame width and height.
7971
7972 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
7973 into account for full-width windows. Don't add scroll bar width
7974 to width of clip rect.
7975 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
7976 (x_set_glyph_string_background_width): Add 1 to background width.
7977 (x_draw_glyphs): Take internal border into account for full-width
7978 lines.
7979
79801999-07-26 Richard M. Stallman <rms@gnu.org>
7981
7982 * xfns.c (x_set_mouse_color): Always unload the old color.
7983 Don't allow nil as color value.
7984 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
7985 Always unload the old color.
7986
7987 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
7988
79891999-07-26 Karl Heuer <kwzh@gnu.org>
7990
7991 * fns.c (Fy_or_n_p): Doc fix.
7992
79931999-07-26 Kenichi Handa <handa@etl.go.jp>
7994
7995 * ccl.h (setup_ccl_program): The type is changed to `int'.
7996
7997 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
7998 stored in the following CCL code. Adjusted for the change of
7999 Vccl_program_table.
8000 (resolve_symbol_ccl_program): Adjusted for the new style of
8001 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
8002 is resolving failed.
8003 (ccl_get_compiled_code): New function.
8004 (setup_ccl_program): Function type changed from `void' to `int'.
8005 Resolve symbols in CCL_PROG.
8006 (Fccl_program_p): New function.
8007 (Fccl_execute): Get compiled CCL code by just calling
8008 setup_ccl_program.
8009 (Fccl_execute_on_string): Likewise.
8010 (Fregister_ccl_program): Adjusted for the change of
8011 Vccl_program_table.
8012
8013 * coding.c (setup_coding_system): Get compiled CCL code by just
8014 calling setup_ccl_program.
8015
8016 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
8017 calling setup_ccl_program.
8018
8019 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
8020 calling setup_ccl_program.
8021
80221999-07-23 Gerd Moellmann <gerd@gnu.org>
8023
8024 * xfaces.c (frame_update_line_height): Just use the height of the
8025 frame's fontset or font, instead of taking face fonts into
8026 account.
8027
8028 * xdisp.c (get_next_display_element): Display DEL as `^?'.
8029
80301999-07-23 Richard M. Stallman <rms@gnu.org>
8031
8032 * window.c (Fsplit_window): For default size, round up for left window.
8033
80341999-07-21 Joe Ramey <ramey@ti.com>
8035
8036 * filelock.c (lock_if_free): Return -1 if check_lock_owner
8037 has returned -1 (lockfile exists but is not a symlink?).
8038
80391999-07-20 Gerd Moellmann <gerd@gnu.org>
8040
8041 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8042 because of a change in cursor_gc made in 20.4.
8043
80441999-07-19 Gerd Moellmann <gerd@gnu.org>
8045
8046 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8047 for YNegative, if using X toolkit.
8048
8049 * xfns.c (x_real_positions): Don't subtract window borders
8050 from positions returned.
8051
80521999-07-17 Gerd Moellmann <gerd@gnu.org>
8053
8054 * xrdb.c (x_load_resources): Set double-click time defaults
8055 for Motif list boxes from double-click-time.
8056
8057 * fns.c (Vhash_table_tests): Remvoed.
8058 (Qhash_table_test): New.
8059 (syms_of_fns): Initialize Qhash_table_test.
8060 (Fmake_hash_table): Look up user-defined tests in symbol prop
8061 `hash-table-test'.
8062 (Fdefine_hash_table_test): Store test and hash function as
8063 symbol prop `hash-table-test'.
8064 (make_hash_table): Add parameters user_test and user_hash.
8065
8066 * window.c (set_window_buffer): Set window margins for tty
8067 frames, too.
8068 (Fset_window_margins): Ditto.
8069
8070 * term.c (append_glyph): Use glyph area of iterator instead of
8071 always TEXT_AREA.
8072
8073 * dispnew.c (update_frame_1): Add left margin width to cursor
8074 hpos.
8075 (direct_output_for_insert): Ditto.
8076 (direct_output_forward_char): Ditto.
8077
8078 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8079
8080 * dispextern.h (struct glyph_matrix): Add top_line_p.
8081
80821999-07-16 Gerd Moellmann <gerd@gnu.org>
8083
8084 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8085 instead.
8086
8087 * fns.c (cmpfn_eq): Add hash code parameters.
8088 (cmpfn_eql): Ditto.
8089 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8090 (cmpfn_user_defined): Likewise.
8091
80921999-07-15 Gerd Moellmann <gerd@gnu.org>
8093
8094 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8095
8096 * fns.c (maybe_resize_hash_table): Correct computation of
8097 index vector size.
8098 (make_hash_table): Ditto.
8099 (Fmakehash): New.
8100
8101 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8102
8103 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8104 (survives_gc_p): Make it externally visible.
8105 (mark_object): Ditto.
8106
8107 * fns.c (remove_hash_entry): Removed.
8108 (sweep_weak_hash_tables): New.
8109
8110 * print.c (print): Print more information about hash tables.
8111
8112 * xfns.c (image_spec_hash): Removed.
8113 (lookup_image): Use sxhash instead of image_spec_hash.
8114 (image_spec_equal_p): Removed.
8115 (lookup_image): Use Fequal instead of image_spec_equal_p.
8116
81171999-07-14 Gerd Moellmann <gerd@gnu.org>
8118
8119 * lisp.h (P_): Moved to top of file.
8120
8121 * fns.c (make_hash_table): Set new members.
8122
8123 * alloc.c (mark_object): Mark hash table's user_hash_function.
8124 Mark index vector for weak hash tables.
8125
8126 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8127 user_hash_function, cmpfn, and hashfn.
8128
8129 * fns.c (build_hash): Removed.
8130 (hash_test): Removed.
8131 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8132 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8133
81341999-07-13 Gerd Moellmann <gerd@gnu.org>
8135
8136 * alloc.c (survives_gc_p): New.
8137
8138 * print.c (print): Add hash table handling.
8139
8140 * alloc.c (mark_object): Add code to mark hash tables.
8141
8142 * lisp.h (GC_HASH_TABLE_P): New.
8143
8144 * emacs.c (main): Call init_fns.
8145
8146 * fns.c (init_fns): New.
8147
8148 * fns.c: Add hash table implementation.
8149
8150 * lisp.h (PVEC_HASH_TABLE): New.
8151 (struct Lisp_Hash_Table): New.
8152 (XHASH_TABLE): New.
8153 (XSET_HASH_TABLE): New.
8154 (HASH_TABLE_P): New.
8155 (CHECK_HASH_TABLE): New.
8156 (DEFAULT_HASH_SIZE): New.
8157 (DEFAULT_REHASH_THRESHOLD): New.
8158 (DEFAULT_REHASH_SIZE): New.
8159
8160 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8161 (x_write_glyphs): Compute overwritten cursor using real start
8162 and end positions of display.
8163 (x_insert_glyphs): Ditto.
8164
81651999-07-10 Gerd Moellmann <gerd@gnu.org>
8166
8167 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8168
8169 * dispnew.c (blank_row): Add y-position as parameter. Compute
8170 visible height.
8171
8172 * xdisp.c (next_element_from_string): Give padding spaces
8173 a position of -1.
8174
8175 * dispnew.c (adjust_glyph_matrix): Some work to support
8176 marginals areas on tty frames in a future version.
8177 (allocate_matrices_for_frame_redisplay): Ditto.
8178
8179 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8180 to zero if number of glyphs in the row is <= 1.
8181
81821999-07-09 Gerd Moellmann <gerd@gnu.org>
8183
8184 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8185 into account.
8186
8187 * xdisp.c (handle_display_prop): Don't reset area if handing
8188 a property from a string that came from a `display' property.
8189 (handle_single_display_prop): Don't handle recursive `display'
8190 properties.
8191 (handle_single_display_prop): Handle some display property
8192 forms for terminal frames.
8193 (Qimage): Moved here from xfns.c.
8194
8195 * dispextern.h (struct it): New field string_from_display_prop_p.
8196
8197 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8198 line.
8199
82001999-07-08 Gerd Moellmann <gerd@gnu.org>
8201
8202 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8203
8204 * window.c (set_window_buffer): Set window's vscroll to zero.
8205
8206 * xdisp.c (QCwhen): New.
8207 (display_prop_end): New.
8208 (handle_single_display_prop): Use it.
8209 (debug_method_add): Print buffer name if tracing.
8210 (try_window_reusing_current_matrix): Compute visible height
8211 of reused rows. Fix cursor position calculation in case of
8212 top-line.
8213
8214 * dispextern.h (struct redisplay_interface): Add parameter
8215 cursor_on_p to update_window_end_hook.
8216
8217 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8218
82191999-07-07 Gerd Moellmann <gerd@gnu.org>
8220
8221 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
8222 doesn't become negative when decrementing it.
8223
8224 * eval.c (Fsignal): Reset redisplaying_p to zero.
8225
8226 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8227 for window update.
8228 (try_window_id): Ditto.
8229
8230 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8231 (x_scroll_run): Ditto.
8232 (any_help_event_p): New.
8233 (x_initialize): Set it to zero.
8234 (XTread_socket): Clear help echo only if any_help_event_p.
8235
8236 * xdisp.c (init_iterator): Set top_line_p.
8237 (start_display): Use correct initial y if top-line is present.
8238 (make_cursor_line_fully_visible): Bug fixes for top-line.
8239 (try_scrolling): Ditto.
8240 (try_window_reusing_current_matrix): Ditto.
8241
8242 * dispextern.h (struct it): Add top_line_p.
8243
8244 * dispnew.c (shift_glyph_matrix): Move some computations out
8245 of the loop.
8246
8247 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
8248 XFLOATINT.
8249
82501999-07-06 Gerd Moellmann <gerd@gnu.org>
8251
8252 * dispnew.c (update_frame_1): When setting cursor in echo area,
8253 skip only over padding spaces at the end.
8254
8255 * xfaces.c (realize_tty_face): Set face's font_name field to
8256 "tty".
8257
8258 * term.c (update_end): Turn cursor on only if selected window's
8259 cursor_off_p flag is not set.
8260
82611999-07-05 Gerd Moellmann <gerd@gnu.org>
8262
8263 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8264 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8265 (TS_cursor_invisible): New.
8266 (term_init): Initialize TS_cursor_invisible.
8267 (tty_hide_cursor): New.
8268 (tty_show_cursor): New.
8269 (update_end): Show tty cursor.
8270 (update_begin): Hide tty cursor to prevent cursor flickering
8271 during redisplays triggered by timers (stealth fontification).
8272
8273 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8274
8275 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8276 in scroll bars.
8277 (x_handle_toolbar_click): Set modifier bits.
8278
82791999-07-04 Gerd Moellmann <gerd@gnu.org>
8280
8281 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8282 instead of a pointer to a volatile input_event.
8283 (kbd_buffer_store_event): Remove volatile modifier from
8284 declaration of local variable `sp'.
8285 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8286 to kbd_fetch_ptr.
8287
82881999-07-03 Gerd Moellmann <gerd@gnu.org>
8289
8290 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8291 only if buffer is modified. Return quickly if changes are
8292 above window start.
8293
82941999-07-02 Gerd Moellmann <gerd@gnu.org>
8295
8296 * dispextern.h (HSCROLL_WINDOWS): Removed.
8297
8298 * xdisp.c (mark_window_display_accurate): Don't set
8299 w->region_showing.
8300 (redisplay_internal): Don't call redraw_garbaged_frames.
8301
83021999-07-01 Gerd Moellmann <gerd@gnu.org>
8303
8304 * xdisp.c (echo_area_display): Don't display truncation marks
8305 for messages because 20.4 doesn't do it either.
8306 (redisplay_window): Case same window start. Instead of giving
8307 up when cursor is partially visible, make it fully visible.
8308 (mark_window_display_accurate): Some cleanup. Record window's
8309 last cursor information.
8310 (debug_method_add): Improved.
8311 (redisplay_internal): Record last cursor info only if not
8312 consider_all_windows_p.
8313
8314 * dispnew.c (update_window): Update top line after scrolling.
8315 (blank_row): Renamed from make_empty_enabled_row.
8316 (increment_glyph_row_buffer_positions): Increment positions
8317 in buffers, only.
8318
8319 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8320 string.
8321
83221999-06-30 Gerd Moellmann <gerd@gnu.org>
8323
8324 * dispnew.c (update_window): Check that updated row is visible.
8325
8326 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8327 top of window differently.
8328
8329 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8330 if region is showing.
8331
8332 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8333 avoiding matrix reallocation. Set window_vscroll in matrix.
8334
8335 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8336
26901792
DL
8337 * xdisp.c (debug_method_add): New.
8338 (debug_redisplay_method): Removed.
8339 (try_window_reusing_current_matrix): Handle case where old
8340 window start is the same as new window start.
8341
8342 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8343 an array instead of a pointer.
8344
26901792
DL
8345 * xfns.c (Fx_show_tip): Undo previous change.
8346
8347 * xterm.c (x_append_glyph): Clear glyph->u.val.
8348
8349 * dispextern.h (struct glyph): Increase size of face_id bit-field
8350 for CHAR_GLYPH to 12.
8351
83521999-06-29 Gerd Moellmann <gerd@gnu.org>
8353
8354 * xfaces.c (x_charset_registry): Make it externally visible.
8355
83561999-06-28 Gerd Moellmann <gerd@gnu.org>
8357
8358 * dispnew.c (update_window): Use mode_line_p flag of rows
8359 instead of WINDOW_WANTS_MODELINE_P.
8360
8361 * xterm.c (clear_mouse_face): Make externally visible.
8362
8363 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8364
8365 * xterm.c (expose_line): Handle exposure of top-lines.
8366
8367 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8368 if mouse_face_mouse_frame is null.
8369
8370 * xdisp.c (redisplay_window): If window is echo_area_window,
8371 and update_mode_line is set, update menubar and toolbar.
8372
8373 * dispnew.c (space_glyph): Set its charpos to -1.
8374 (update_frame_1): Ignore trailing padding spaces.
8375
8376 * xdisp.c (next_element_from_c_string): Set position of padding
8377 glyphs to -1.
8378
83791999-06-27 Gerd Moellmann <gerd@gnu.org>
8380
8381 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8382 XQueryColor.
8383
8384 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8385 (set_cursor_from_row): Skip over glyphs having a null object at
8386 the start of rows.
8387 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8388 glyphs.
8389 (handle_invisible_prop): Compute next change only when needed.
8390 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8391 line.
8392
83931999-06-26 Gerd Moellmann <gerd@gnu.org>
8394
8395 * xrdb.c (x_load_resources): Don't set resource for double-click
8396 time.
8397
8398 * xdisp.c (try_window_id): Return quickly if all changes are
8399 below the window's current matrix end.
8400
8401 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8402 parameter.
8403
8404 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8405 in desired not in current matrix.
8406 (try_window_reusing_current_matrix): Rotate matrices starting
8407 at start_vpos instead of 0.
8408
8409 * xterm.c (expose_window): Use window_text_bottom_y.
8410 (fast_find_position): Ditto.
8411
8412 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8413 (try_window_reusing_current_matrix): Ditto.
8414 (get_last_unchanged_at_beg_row): Ditto.
8415 (init_iterator): Ditto.
8416
8417 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8418 more row.
8419 (check_matrix_invariants): Use window_text_bottom_y.
8420 (update_window): Ditto.
8421 (scrolling_window): Ditto.
8422
8423 * xdisp.c (window_text_bottom_y): New.
8424
84251999-06-25 Gerd Moellmann <gerd@gnu.org>
8426
8427 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8428 clearing mouse face.
8429 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8430 event.xcrossing.focus is not set, and focus is in the menu bar,
8431 set focus frame as if event.xcrossing.focus were set.
8432
84331999-06-24 Gerd Moellmann <gerd@gnu.org>
8434
8435 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8436 * keyboard.c (make_lispy_movement): Ditto.
8437
8438 * window.c (coordinates_in_window): Return 4 if on top line.
8439 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8440
8441 * xdisp.c (window_box_height): Subtract top line height.
8442 (window_box): Add top line height to top y position if top line
8443 exists.
8444 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8445 the top line row of the window. Set initial y-position to
8446 window's top line height plus delta.
8447 (start_display): Choose start glyph row depending on whether
8448 window has a top line.
8449 (try_scrolling): Take top line height into account for aggressive
8450 scrolling.
8451 (compute_window_start_on_continuation_line): Take top line into
8452 account.
8453 (redisplay_window): Ditto. If top line height has changed,
8454 trigger a new redisplay.
8455 (try_window_reusing_current_matrix): Take top line into account.
8456 (find_last_row_displaying_text): Ditto.
8457 (get_last_unchanged_at_beg_row): DItto.
8458 (try_window_id): Ditto.
8459 (compute_line_metrics): Ditto.
8460
8461 * dispnew.c (shift_glyph_matrix): Compute visible row height
8462 taking top line of window into account.
8463 (update_window): Update top line. If scrolling_window detects
8464 that all rows are equal, only set cursor.
8465 (update_window_line): Call after_update_window_line_hook if
8466 mode_line_p flag of rows has changed.
8467 (scrolling_window): Add parameter top_line_p. Return -1 if
8468 all rows are equal.
8469 (mode_line_string): Add parameter mode_line_p. Handle strings
8470 in top lines.
8471
8472 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8473 (MATRIX_FIRST_TEXT_ROW): New.
8474 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8475 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8476 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8477 (MATRIX_TOP_LINE_HEIGHT): New.
8478 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8479 (CURRENT_TOP_LINE_HEIGHT): New.
8480 (DESIRED_TOP_LINE_HEIGHT): New.
8481 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8482 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8483 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8484 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8485
8486 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8487 lines.
8488 (x_draw_row_bitmaps): Take top line into account when clearing
8489 bitmap area.
8490 (x_estimate_mode_line_height): Replacement for
8491 x_frame_mode_line_height.
8492 (x_get_glyph_string_clip_rect): Take top line into account.
8493 (x_clear_end_of_line): Ditto.
8494 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8495 top lines.
8496 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8497 (x_erase_phys_cursor): Take top line into account.
8498
8499 * xdisp.c (window_box_height): Subtract top line height if
8500 window wants a top line.
8501 (display_mode_lines): New.
8502 (redisplay_window): Call it.
8503 (display_mode_line): Add parameters face_id and format.
8504
8505 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8506 (MATRIX_TOP_LINE_HEIGHT): New.
8507
8508 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8509
8510 * term.c (estimate_mode_line_height): Renamed from
8511 frame_mode_line_height. Add parameter face_id.
8512 (estimate_mode_line_height_hook): Renamed from
8513 frame_mode_line_height_hook.
8514 (produce_special_glyphs_hook): Removed.
8515 (produce_glyphs_hook): Removed.
8516
85171999-06-23 Gerd Moellmann <gerd@gnu.org>
8518
8519 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8520 (struct glyph_row): Add mode_line_p.
8521
8522 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8523 (Qtop_line): New.
8524 (syms_of_xfaces): Initialize Qtop_line.
8525
8526 * dispextern.h (TOP_LINE_FACE_ID): New.
8527
8528 * buffer.c (init_buffer_once): Set default for
8529 top_line_format to nil.
8530 (init_buffer_once): Init top_line_format.
8531 (default-top-line-format): New.
8532 (top-line-format): New buffer-local variable.
8533
8534 * buffer.h: Add top_line_format.
8535
8536 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8537
85381999-06-17 Dave Love <fx@gnu.org>
8539
8540 * xfns.c: Move the PNG section before the JPEG one to avoid
8541 problems surrounding setjmp.h/png.h on GNU/Linux.
8542
85431999-06-17 Gerd Moellmann <gerd@gnu.org>
8544
8545 * xfns.c (x_kill_gs_process): Don't free colors.
8546
85471999-06-17 Dave Love <fx@gnu.org>
8548
8549 * s/gnu-linux.h: Zap spurious ~.
8550
85511999-06-16 Gerd Moellmann <gerd@gnu.org>
8552
8553 * xfns.c (gif_load): Improve multi-image support.
8554
85551999-06-15 Gerd Moellmann <gerd@gnu.org>
8556
8557 * xfns.c (gif_load): Support multi-image files.
8558
8559 * Makefile.in (LIBGIF): Use libungif.
8560
8561 * configure.in (HAVE_GIF): Use libungif instead of libgif
8562 because the former doesn't contain patented compression code.
8563
8564 * xdisp.c (compute_window_start_on_continuation_line): Don't
8565 do it if line start is too far away from window start.
8566
85671999-06-14 Gerd Moellmann <gerd@gnu.org>
8568
8569 * buffer.c (init_buffer_once): Set buffer_local_flags for
8570 scroll_*_aggressively.
8571 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
8572 (init_buffer_once): Set defaults for these variables.
8573 (syms_of_buffer): Add default-scroll-*-aggressively.
8574
8575 * buffer.h (scroll_up_aggressively): New.
8576 (scroll_down_aggressively): New.
8577
8578 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
8579 a static PNG library.
8580
8581 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
8582 in case it's a static library.
8583
8584 * Makefile.in (ctagsfiles): Split so that files starting
8585 with an `x' are found before files starting with `w32'.
8586 (ctagsfiles1): New.
8587 (ctagsfiles2): New.
8588 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
8589
8590 * xdisp.c (compute_window_start_on_continuation_line): New.
8591 (redisplay_window): Use it.
8592 (INFINITY): New.
8593 (reseat_to_string): Use it.
8594 (hscroll_window_tree): Ditto.
8595 (compute_window_start_on_continuation_line): Ditto.
8596 (redisplay_window): Don't force display with a new window start.
8597
85981999-06-06 Gerd Moellmann <gerd@gnu.org>
8599
8600 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
8601 if widget not present.
8602
8603 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
8604
86051999-06-04 Gerd Moellmann <gerd@gnu.org>
8606
8607 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
8608 value of realize_basic_faces.
8609 (load_face_font_or_fontset): Store full font name in face.
8610 (realize_default_face): Use full font name.
8611
26901792
DL
8612 * xterm.c (x_produce_glyphs): Set member char_to_display.
8613 (x_append_glyph): Store char_to_display in glyphs.
8614
8615 * dispextern.h (struct it): Add char_to_display.
8616
8617 * xfns.c (x_set_font): Don't call face-set-after-frame-default
8618 if faces haven't been initialized.
8619 (Fx_create_frame): Call face-set-after-frame-default after
8620 faces have been initialized, and widget has been created.
8621
8622 * puresize.h (BASE_PURESIZE): Increased.
8623
86241999-06-01 Gerd Moellmann <gerd@gnu.org>
8625
8626 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
8627 (Finternal_set_lisp_face_attribute): If frame is t when
8628 :font attribute is set, use the selected frame.
8629 (clear_face_cache): Add parameter clear_fonts_p.
8630 (Fclear_face_cache): Add optional parameter thorougly.
8631
8632 * xfaces.c (face_numeric_value): Return -1 if symbol is not
8633 in table.
8634 (Fclear_face_cache): New.
8635 (choose_face_fontset_font): If fontset doesn't contain font
8636 pattern for the given charset, use CHARSET_ASCII.
8637 (Finternal_set_lisp_face_attribute): Fix handling of nil
8638 stipple attribute.
8639 (Finternal_set_lisp_face_attribute): Fix handling of changing
8640 font-related face attributes of the default face.
8641 (set_lface_from_font_name): Set only attributes that aren't
8642 specified.
8643
86441999-05-31 Gerd Moellmann <gerd@gnu.org>
8645
8646 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
8647 font support.
8648 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
8649 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
8650 scalable fonts depending on the setting of SCALABLE_FONTS.
8651 (first_font_matching): List more than one font to find the
8652 first non-scalable matching font.
8653 (sorted_font_list): Let x_face_list_fonts return scalable fonts
8654 depending on SCALABLE_FONTS.
8655 (better_font_p): New parameter compare_pt_p. If zero, don't
8656 compare point sizes of fonts.
8657 (exact_face_match_p) [SCALABLE_FONTS]: New.
8658 (build_scalable_font_name) [SCALABLE_FONTS]: New.
8659 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
8660 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
8661 (syms_of_xfaces): Add scalable-fonts-allowed.
8662
86631999-05-26 Gerd Moellmann <gerd@gnu.org>
8664
8665 * xfns.c (png_load): Let PNG lib handle gamma. Construct
8666 mask only if image contains simple transparency information.
8667 Otherwise, combine image with frame background color.
8668
8669 * configure.in (--with-png, HAVE_PNG): New.
8670
8671 * config.in (HAVE_PNG): New.
8672
8673 * Makefile.in: Add PNG library.
8674
8675 * xfns.c: Add PNG support.
8676
86771999-05-25 Gerd Moellmann <gerd@gnu.org>
8678
8679 * xdisp.c (init_xdisp): Initialize echo_area_message and
8680 previous_echo_area_message to nil.
8681
8682 * keyboard.c (read_char): Rename local variable echo_area_message
8683 because it shadows the global one.
8684
86851999-05-05 Gerd Moellmann <gerd@gnu.org>
8686
8687 * xterm.c (note_mode_line_highlight): Restructured.
8688
8689 * window.c (coordinates_in_window): Handle windows that don't have
8690 a mode line because their buffer's mode-line-format is nil.
8691 Recognize the mode line under x positions that correspond to
8692 flags areas and left scroll bar.
8693
86941999-05-02 Dave Love <fx@gnu.org>
8695
8696 * xterm.c (note_mouse_highlight): Separate help-echo processing
8697 from check on mouse-face so that it works generally.
8698
86991999-04-21 Gerd Moellmann <gerd@gnu.org>
8700
8701 * sound.c (Fplay_sound): Run hook play-sound-hook.
8702 (Qplay_sound_hook): New.
8703
87041999-04-20 Gerd Moellmann <gerd@gnu.org>
8705
8706 * xdisp.c (update_echo_area): Handle echo_area_message.
8707
87081999-04-19 Gerd Moellmann <gerd@gnu.org>
8709
8710 * editfns.c (Fmessage): Use message3.
8711
8712 * print.c (printchar): Set echo_area_message to nil.
8713 (strout): Ditto.
8714
8715 * minibuf.c (read_minibuf): Reset echo message strings to nil.
8716 (Fminibuffer_completion_help): Ditto.
8717
8718 * keyboard.c (cmd_error_internal): Set echo_areA_message.
8719 (command_loop_1): Test echo_areA_message.
8720 (read_char): Ditto.
8721 (record_menu_key): Set echo_area_message to nil.
8722 (Fexecute_extended_command): Test echo_area_message.
8723 (Fexecute_extended_command): Handle echo_area_message.
8724
8725 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
8726 is set.
8727
8728 * editfns.c (Fcurrent_message): If echo_area_message is set,
8729 return a substring of that string.
8730
8731 * dispnew.c (direct_output_for_insert): Test echo_area_message
8732 in addition to echo_area_glyphs.
8733 (set_window_cursor_after_update): Ditto.
8734 (update_frame_1): Ditto.
8735
8736 * alloc.c (Fgarbage_collect): Use message3_nolog to display
8737 old Lisp message string.
8738
8739 * xdisp.c (echo_area_message): New.
8740 (previous_echo_area_message): New.
8741 (syms_of_xdisp): Initialize and staticpro new variables.
8742 (echo_area_display): Display echo_area_message if set.
8743 (message2_nolog): Set echo_area_message and
8744 previous_echo_area_message.
8745 (echo_area_display): Set previous_echo_area_message.
8746 (redisplay_internal): Display echo area if echo_area_message
8747 or previous_echo_area_message are set.
8748 (redisplay_preserve_echo_area): Test/set echo_area_message and
8749 previous_echo_area_message.
8750 (redisplay_window): Test echo_area_message.
8751 (message3_nolog): New.
8752 (message3): New.
8753
8754 * editfns.c (Fformat): Add text properties to the result string
8755 from properties of the format string and properties of string
8756 arguments.
8757
8758 * textprop.c (text_property_list): New.
8759 (add_text_properties_from_list): New.
8760 (extend_property_ranges): New.
8761
87621999-03-29 Gerd Moellmann <gerd@gnu.org>
8763
8764 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
8765 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
8766 Use these symbols for the box face attribute instead of the
8767 removed ones.
8768
87691999-03-12 Gerd Moellmann <gerd@gnu.org>
8770
8771 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
8772 Correct wrong test for slant.
8773
87741999-03-10 Gerd Moellmann <gerd@gnu.org>
8775
8776 * xfaces.c: Use `unspecified' for unspecified face attributes,
8777 use t and nil for on/off.
8778
87791999-03-06 Gerd Moellmann <gerd@gnu.org>
8780
8781 * buffer.c (syms_of_buffer): Extend doc string of
8782 mode-line-format.
8783
8784 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
8785 (first_font_matching): New.
8786 (set_lface_from_font_name): Use it if font name is a pattern.
8787 (font_field_wildcard_p): Removed.
8788
8789 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
8790 Recompute visible height of rows.
8791
8792 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
8793 Don't accept non-strings for help-echo from overlays.
8794
87951999-03-04 Dave Love <fx@gnu.org>
8796
8797 * xterm.c (note_mouse_highlight): Check overlays for help-text
8798 property.
8799 (XTread_socket): Fix compiler warning.
8800
88011999-03-05 Gerd Moellmann <gerd@gnu.org>
8802
8803 * xterm.c (note_mouse_highlight): Don't restrict number of
8804 overlay to 10. Call overlays_at so that it doesn't try to
8805 extend the vector.
8806
8807 * xdisp.c (compute_line_metrics): Compute glyph row's visible
8808 height.
8809
8810 * dispnew.c (row_equal_p): Compare visible row height, only.
8811 (update_text_area): Draw whole line if visible heights of
8812 rows differ.
8813 (update_window_line): Call after_update_window_line_hook
8814 if visible row height has changed.
8815
8816 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
8817 (struct glyph_row): New member visible_height.
8818
8819 * xfaces.c (font_field_wildcard_p): New.
8820 (set_lface_from_font_name): Remove parameter force_p. Accept
8821 font names containing wildcards.
8822
88231999-03-04 Gerd Moellmann <gerd@gnu.org>
8824
8825 * xterm.c (x_after_update_window_line): Clear internal border
8826 when windows_or_buffers_changed.
8827
8828 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
8829 buffer has a nil mode_line_format.
8830
88311999-03-03 Gerd Moellmann <gerd@gnu.org>
8832
8833 * xterm.c (x_setup_relief_colors): Use either background color
8834 or specified color.
8835
8836 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
8837
8838 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
8839
8840 * xterm.c (x_draw_box_rect): New.
8841 (x_draw_glyph_string_box): Renamed from
8842 x_draw_glyph_string_relief. Call x_draw_box_rect.
8843
8844 * xfns.c (QCrelief): New.
8845 (syms_of_xfns): Initialize it.
8846
8847 * dispextern.h (struct glyph): Rename left_shadow_p to
8848 left_box_line_p, right_shadow_p to right_box_line_p.
8849 (MAX_RELIEF_THICKNESS): Removed.
8850 (struct it): Rename members having `relief' in their names
8851 to contain `box' instead.
8852
8853 * xfaces.c (realize_x_face): Handle new box attribute values.
8854 (QCrelief, Qbox): Removed.
8855 (QCshadow, QCcolor, Qraised, Qsunken): New.
8856 (syms_of_xfaces): Initialize new symbols.
8857
88581999-03-02 Gerd Moellmann <gerd@gnu.org>
8859
8860 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
8861
8862 * xfaces.c (LFACE_RELIEF): Removed.
8863 (merge_face_vector_with_property): Remove handling of `:relief'.
8864 (Finternal_set_lisp_face_attribute): Ditto.
8865 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8866 (Finternal_get_lisp_face_attribute): Ditto.
8867 (realize_default_face): Ditto.
8868 (lface_hash): Don't compute hash from relief.
8869
8870 * dispextern.h (struct face): Replace member `relief' by
8871 `box_line_width'. Add member `box'.
8872 (face_box_type): New.
8873
8874 * xterm.c (x_produce_glyphs): If face has overline, add overline
8875 thickness + 1 to ascent.
8876
88771999-03-01 Gerd Moellmann <gerd@gnu.org>
8878
8879 * xterm.c (x_draw_glyph_string): Draw underline, overline,
8880 strike-through, and boxes.
8881 (x_draw_glyph_string_underline): Removed.
8882
8883 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
8884 (Qoverline, Qstrike_through, Qbox): New.
8885 (syms_of_xfaces): Define these symbols.
8886 (check_lface_attrs): Add checks for overline, strike-through,
8887 and box.
8888 (Finternal_set_lisp_face_attribute): Set new attributes.
8889 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
8890 (load_color): Handle new attributes.
8891 (realize_x_face): Ditto.
8892 (merge_face_vector_with_property): Ditto.
8893 (free_face_colors): Ditto.
8894 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8895 (Finternal_get_lisp_face_attribute): Ditto.
8896 (Finternal_lisp_face_attribute_values): Ditto.
8897
8898 * dispextern.h (lface_attribute_index): Add enumerators for
8899 overstrike, strike-through, and box.
8900 (struct face): Add members for overline, strike-through, and
8901 box.
8902
89031999-02-17 Dave Love <fx@gnu.org>
8904
8905 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
8906 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
8907 files.
8908
89091999-02-16 Gerd Moellmann <gerd@gnu.org>
8910
8911 * keyboard.c (toolbar_items): Call access_keymap with third
8912 parameter 1, so that we don't get inherited toolbar item
8913 definitions.
8914
8915 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
8916 the window end vpos when in empty first line of window.
8917
89181999-02-15 Gerd Moellmann <gerd@gnu.org>
8919
8920 * xfaces.c (set_font_frame_param): New.
8921 (Finternal_set_lisp_face_attribute): Call it.
8922
8923Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8924
8925 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
8926 Accept specifications of color for underline.
8927
89281999-02-13 Gerd Moellmann <gerd@gnu.org>
8929
8930 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
8931 `frame' is t, operate on face defaults for new frames. If it
8932 is nil, operate on the selected frame.
8933
89341999-02-12 Gerd Moellmann <gerd@gnu.org>
8935
8936 * dispnew.c (check_matrix_invariants): Put it in #if 0.
8937 (update_window): Put the call to check_matrix_invariants in #if 0.
8938
8939Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8940
8941 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
8942 Remove definition of UNDERLINE_COLOR.
8943
8944Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8945
8946 * xfaces.c (free_face_colors): Free the color for underline.
8947
8948 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
8949 to the GC.
8950
8951Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8952
8953 * dispextern.h (UNDERLINE_COLOR): Defined.
8954 (struct face): Added two new members.
8955 underline_color, underline_defaulted_p.
8956
8957 * xfaces.c (merge_face_vector_with_property):
8958 (check_lface_attrs): Accept the string value for underline.
8959 (Finternal_set_lisp_face_attribute): Likewise.
8960
8961 * xfaces.c (load_color): Change the last argument type to enum
8962 lface_attribute_index from int. And addec code for underling coloring.
8963 (load_face_colors): Pass LFACE_*_INDEX to load_color.
8964
89651999-02-12 Gerd Moellmann <gerd@gnu.org>
8966
8967 * xfns.c (Fx_image_header): Removed.
8968
89691999-02-07 Gerd Moellmann <gerd@gnu.org>
8970
8971 * xterm.c: Don't include <bitmaps/gray>.
8972 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
8973
8974 * xfns.c (Fx_image_header): Add missing `\n\'.
8975 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
8976
89771999-02-01 Gerd Moellmann <gerd@gnu.org>
8978
8979 * xterm.c (x_scroll_bar_create): Set background pixel from
8980 specified scroll bar color.
8981 (x_scroll_bar_set_handle): Use scroll bar foreground color.
8982
8983 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
8984 (x_set_scroll_bar_background): Ditto.
8985
8986 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
8987
8988 * xfns.c (x_default_scroll_bar_color_parameter): New.
8989 (Fx_create_frame): Call it.
8990
89911999-01-31 Gerd Moellmann <gerd@gnu.org>
8992
8993 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
8994 values in x_output structure.
8995 (Qscroll_bar_foreground, Qscroll_bar_background): New.
8996 (syms_of_xfns): Initialize these symbols.
8997
8998 * xterm.h (struct x_output): Add scroll bar pixel colors.
8999
9000 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
9001 (x_set_scroll_bar_foreground): New.
9002 (x_set_scroll_bar_background): New.
9003
26901792
DL
90041999-01-12 Gerd Moellmann <gerd@gnu.org>
9005
9006 * xdisp.c (handle_single_display_prop): New.
9007 (handle_display_prop): Call it.
9008 (handle_raise_prop): Removed.
9009 (handle_height_prop): Removed.
9010 (handle_space_width_prop): Removed.
9011 (handle_face_prop): Remove handling of raised text.
9012 (handle_display_prop): Do it here.
9013
9014 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
9015 (RAISE_PROP_IDX): Removed.
9016 (HEIGHT_PROP_IDX): Removed.
9017 (SPACE_WIDTH_PROP_IDX): Removed.
9018
9019 * xdisp.c (Qdisplay): Replaces Qglyph.
9020 (handle_display_prop): Formerly handle_glyph_prop.
9021
90221999-01-11 Gerd Moellmann <gerd@gnu.org>
9023
9024 * xdisp.c (reseat_to_string): Set position in display vector to -1.
9025 (handle_stop): Set position in display vector to -1. Don't
9026 check overlay strings when set up to deliver characters from a
9027 display vector.
9028 (set_iterator_to_next): At the end of a run of characters from a
9029 display vector, check whether the display vector display replaces
9030 the display of a character.
9031
90321999-01-05 Gerd Moellmann <gerd@gnu.org>
9033
9034 * xfaces.c (init_frame_faces): Don't realize faces if frame's
9035 X window hasn't been created yet.
9036
90371998-12-06 Gerd Moellmann <gerd@gnu.org>
9038
9039 * sound.c: New.
9040
90411998-12-04 Gerd Moellmann <gerd@gnu.org>
9042
9043 * config.in (HAVE_SOUND): New.
9044
9045 * emacs.c (main): Call syms_of_sound and init_sound.
9046
9047 * Makefile.in (obj): Add sound.o.
9048
9049 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9050
9051 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9052 (HAVE_SYS_SOUNDCARD_H): New.
9053
90541998-12-03 Gerd Moellmann <gerd@gnu.org>
9055
9056 * buffer.h (struct buffer): indicate_empty_lines renamed from
9057 indicate_zv_lines.
9058
9059 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9060 (default-indicate-zv-lines): Likewise.
9061
9062 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9063 to indicate_empty_line_p.
9064
9065 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9066 to next_element_from_buffer.
9067
9068 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9069
9070 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9071 and `N-'.
9072
9073 * xfns.c (xbm_scan): New.
9074 (xbm_read_hexint): Removed.
9075 (xbm_read_bitmap_file_data): Use xbm_scan.
9076
9077 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9078
90791998-12-02 Gerd Moellmann <gerd@gnu.org>
9080
9081 * xfns.c (xbm_read_hexint): New.
9082 (xbm_read_bitmap_file_data): New.
9083 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9084 instead of XReadBitmapFileData.
9085
9086 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9087
9088 * xfaces.c (face_with_height): New.
9089
9090 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9091 (eval_form): Renamed from eval_mode_element.
9092 (handle_face_prop): Use it.
9093 (Qheight): Replaces Qsmaller.
9094 (handle_height_prop): Replaces handle_smaller_prop.
9095 (handle_face_prop): If iterator's font_height is not an
9096 integer, evaluate it to get the font height to use.
9097
9098 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9099 (struct it): Use `font_height' instead of `smaller'.
9100
91011998-12-01 Gerd Moellmann <gerd@gnu.org>
9102
9103 * xdisp.c (reseat_1): New.
9104 (reseat): Call it.
9105 (move_it_vertically_backward): Ditto.
9106 (redisplay_window): Don't abort when cursor not found in recenter.
9107
91081998-11-30 Gerd Moellmann <gerd@gnu.org>
9109
9110 * xdisp.c (reseat_at_next_visible_line_start): When not
9111 currently delivering display elements from the current buffer,
9112 restore buffer position first.
9113 (init_from_display_pos): Don't set IT's position from the
9114 position passed to this function.
9115
91161998-11-28 Gerd Moellmann <gerd@gnu.org>
9117
9118 * config.in (PROTO): Removed.
9119
9120 * xterm.h: Change PROTO to P_.
9121
91221998-11-26 Gerd Moellmann <gerd@gnu.org>
9123
9124 * xterm.c (take_vertical_position_into_account): New.
9125 (x_produce_image_glyph): Call it.
9126 (x_produce_stretch_glyph): Ditto.
9127 (x_produce_glyphs): Ditto.
9128 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9129 (x_fill_composite_glyph_string): Ditto.
9130 (x_fill_image_glyph_string): Ditto.
9131 (x_fill_stretch_glyph_string): Ditto.
9132
9133 * xdisp.c (display_line): Always compute row height from
9134 max_ascent and max_descent.
9135
9136 * dispextern.h (struct glyph): Add voffset.
9137 (struct it): Replace height by descent, max_height by max_descent.
9138
9139 * xterm.c (x_append_glyph): Set voffset
9140 (x_append_stretch_glyph): Ditto.
9141 (x_produce_image_glyph): Ditto.
9142 (x_produce_glyphs): Take voffset into account.
9143 (x_produce_image_glyph): Ditto.
9144 (x_produce_stretch_glyph): Ditto.
9145
9146 * dispextern.h (struct it): Add voffset.
9147 * xdisp.c (push_it): Save voffset.
9148 (pop_it): Restore it.
9149
9150 * xdisp.c (it_props): Add entry for `raise'.
9151 (handle_raise_prop): New.
9152
9153 * dispextern.h (RAISE_PROP_IDX): New.
9154
9155 * xdisp.c (Qraise): New.
9156 (syms_of_xdisp): Define Qraised.
9157
9158 * xterm.c (x_scroll_bar_move): Clear to the left and right
9159 of toolkit scroll bars differently.
9160 (x_scroll_bar_move): Removed.
9161 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9162
9163 * dispextern.h: Make it compilable --with-x=no.
9164 * alloc.c: Ditto.
9165 * emacs.c: Ditto.
9166 * dispnew.c: Ditto.
9167 * keyboard.c: Ditto.
9168 * term.c: Ditto.
9169 * xdisp.c: Ditto.
9170 * xfaces.c: Ditto.
9171 * xfns.c: Ditto.
9172 * xmenu.c: Ditto.
9173
91741998-11-25 Gerd Moellmann <gerd@gnu.org>
9175
9176 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9177
91781998-11-24 Gerd Moellmann <gerd@gnu.org>
9179
9180 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9181 update slider size, only.
9182 (xm_scroll_callback): Set dragging member of the scroll bar.
9183 (xt_action_hook): Reset last_scroll_bar_part.
9184 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9185
26901792
DL
9186 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9187 window on newly created frames that don't have one.
9188
91891998-11-23 Gerd Moellmann <gerd@gnu.org>
9190
9191 * xdisp.c (restore_overlay_strings): Removed.
9192 (restore_dpvec): Removed.
9193 (init_from_display_pos): Inline both functions above.
9194
9195 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9196 (parse_image_spec): Handle it.
9197 (xbm_format): Use it.
9198 (xpm_format): Ditto.
9199 (pbm_format): Ditto.
9200 (jpeg_format): Ditto.
9201 (tiff_format): Ditto.
9202 (gif_format): Ditto.
9203 (gs_format): Ditto.
9204
9205 * xdisp.c (set_window_cursor): Removed.
9206 (redisplay_internal): Case cursor motion in cursor line of
9207 selected window; use set_cursor_from_row.
9208
92091998-11-22 Gerd Moellmann <gerd@gnu.org>
9210
9211 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9212 into account.
9213
92141998-11-21 Gerd Moellmann <gerd@gnu.org>
9215
9216 * xterm.c (expose_frame): Redraw menu bar window.
9217
9218 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9219 in menu item.
9220
9221 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9222 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9223
9224 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9225 to determine vertical_scroll_bar_extra.
9226 (EmacsFrameSetCharSize): Ditto.
9227 * xfns.c (x_figure_window_size): Ditto.
9228
9229 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9230 (x_draw_bitmap): Ditto.
9231
9232 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9233 * xfaces.c (realize_basic_faces): Realize it.
9234
92351998-11-20 Gerd Moellmann <gerd@gnu.org>
9236
9237 * xmenu.c (xmenu_show): Add workaround for remaining button grab
9238 under LessTif Use the widget of the frame as parent for the
9239 menu, again.
9240
92411998-11-19 Gerd Moellmann <gerd@gnu.org>
9242
9243 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9244 When EnterNotify, don't generate a mouse movement event if
9245 notification is from a busy-cursor child window.
9246
9247 * xterm.h (struct x_output): Add busy_window, remove cursor.
9248
9249 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9250 Use a transparent window to display the busy-cursor.
9251 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9252
92531998-11-17 Gerd Moellmann <gerd@gnu.org>
9254
9255 * xdisp.c (check_window_end): New, for debugging.
9256 (CHECK_WINDOW_END): New.
9257 (try_window_id): Use it.
9258
9259 * xterm.c (process_expose_from_menu): Return int.
9260
9261 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9262 TOOLBAR_EVENT events in last_nonmenu_event.
9263
92641998-11-16 Gerd Moellmann <gerd@gnu.org>
9265
9266 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9267 window end isn't reliable, so set window_end_valid to nil.
9268 (redisplay_internal): If overlay arrow has changed, set
9269 windows_or_buffers_changed to redisplay thoroughly.
9270
9271 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9272 necessary.
9273
9274 * xfns.c (file_dialog_cb): New.
9275 (Fx_file_dialog): New.
9276 * fileio.c (Fread_file_name): Call it.
9277
9278 * xrdb.c (x_load_resources): Add default resoures for file
9279 selection dialog.
9280
92811998-11-14 Gerd Moellmann <gerd@gnu.org>
9282
9283 * xterm.c (note_mouse_highlight): Don't highlight when popup
9284 is active.
9285
26901792
DL
9286 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9287 timer-event-handler. This busy cursor tends to be anoying if
9288 fontifying stealthily.
9289
9290 * dispnew.c (direct_output_for_insert): Give up if current row
9291 contains trailing whitespace.
9292
92931998-11-13 Gerd Moellmann <gerd@gnu.org>
9294
9295 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9296
9297 * xdisp.c (handle_fontified_prop): New.
9298 (Vfontification_functions): New.
9299 (Qfontification_functions): New.
9300 (it_props): Add handle_fontified_prop.
9301
93021998-11-12 Gerd Moellmann <gerd@gnu.org>
9303
9304 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9305 Otherwise, under LessTif, after the popup has gone, all button
9306 press events come in for the frame's widget, and release events
9307 come in for the edit_widget.
9308 * xterm.c (XTread_socket): Remove workaround for that problem.
9309 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9310 XmScrollBarSetValues.
9311 (SET_SAVED_MENU_EVENT): Give it statement form.
9312
26901792
DL
9313 * xfaces.c (display_message): If waiting_for_input, don't display
9314 the message.
9315
9316 * window.c (scroll_command): If not acting on current_buffer,
9317 make redisplay consider all windows.
9318
9319 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9320
9321 * xdisp.c (handle_glyph_prop): Set it->object for images to
9322 the object having the glyph property.
9323
9324 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9325 invisible.
9326
93271998-11-11 Gerd Moellmann <gerd@gnu.org>
9328
9329 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9330 (x_term_init): Create the gray pixmap.
9331 (x_setup_relief_color): Use it.
9332 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9333 internal border at the top of a frame.
9334 (x_init_glyph_string): Likewise.
9335 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
9336 full-width lines.
9337 (XTflash): Don't flash the toolbar window.
9338
9339 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9340 in case of ButtonPress events.
9341
93421998-11-10 Gerd Moellmann <gerd@gnu.org>
9343
9344 * xrdb.c (x_load_resources): Add grey background colors as
9345 defaults for menus, scroll bars, and dialogs.
9346
9347 * insdel.c (prepare_to_modify_buffer): Move setting
9348 windows_or_buffers_changed from modify_region here.
9349
9350 * xfns.c (Fx_show_tip): Inhibit redisplay.
9351 (Fx_hide_tip): Ditto.
9352 (Fx_image_header): New.
9353
93541998-11-09 Gerd Moellmann <gerd@gnu.org>
9355
9356 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9357 when clearing current window matrices.
9358
93591998-11-08 Gerd Moellmann <gerd@gnu.org>
9360
9361 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9362 position from a string position. Use the right end position
9363 if the property spans a whole overlay string.
9364
93651998-11-07 Gerd Moellmann <gerd@gnu.org>
9366
9367 * xmenu.c (menubar_selection_callback): Remove workaround for
9368 Lesstif not calling XmNpopdownCallback because it doesn't
9369 handle the case where users don't select any menu item.
9370
26901792
DL
9371 * insdel.c (modify_region): Set windows_or_buffers_changed.
9372
9373 * buffer.c (set_buffer_internal): Don't set
9374 windows_or_buffers_changed.
9375
26901792
DL
9376 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9377
26901792
DL
9378 * xmenu.c (menubar_selection_callback): Add workaround for
9379 Lesstif not calling XmNpopdownCallback.
9380
9381 * xdisp.c (eval_mode_element): New.
9382 (eval_mode_handler): New.
9383 (display_mode_element): Use eval_mode_element.
9384
9385 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9386 Remove code looking at text props of default value.
9387
9388 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9389
26901792
DL
93901998-11-06 Gerd Moellmann <gerd@gnu.org>
9391
9392 * xmenu.c (single_submenu): Set button_type of menu to
9393 BUTTON_TYPE_NONE.
9394 (single_submenu): Likewise for panes and menu items.
9395 (set_frame_menubar): Set button_type of menu bar to none.
9396 (xmenu_show): Likewise.
9397 (single_submenu): Set widget values selected slot.
9398 (xmenu_show): Likewise.
9399
26901792
DL
9400 * xmenu.c (push_menu_item): Add parameters `type' and
9401 `selected'. Store it in menu_items.
9402 (MENU_ITEMS_ITEM_TYPE): New.
9403 (MENU_ITEMS_ITEM_SELECTED): New.
9404 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9405
9406 * xfns.c (clear_image_cache): Get the current time, before
9407 doing anything.
9408 (cache_image): Set prev pointer of next image.
9409 (clear_image_cache): Clear current matrices if any image was
9410 freed.
9411
9412 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9413
9414 * xfns.c (x_set_cursor): New.
9415 (Fx_display_busy_cursor): New.
9416 (Fx_undisplay_busy_cursor): New.
9417
9418 * xterm.h (struct x_output): Add busy_cursor.
9419
9420 * xfns.c (Vx_busy_pointer_shape): New.
9421 (x_set_mouse_color): Create busy cursor.
9422
9423 * process.c (wait_reading_process_input): Show and hide busy
9424 cursor.
9425
9426 * keyboard.c (command_loop_1): Display busy cursor.
9427
9428 * eval.c (Fsignal): Hide busy cursor.
9429
9430 * buffer.c (set_buffer_internal): Don't set
9431 windows_or_buffers_changed.
9432
9433 * xterm.c (redo_mouse_highlight): New.
9434
94351998-11-04 Gerd Moellmann <gerd@gnu.org>
9436
26901792
DL
9437 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9438 (x_build_heuritic_mask): New.
9439 (lookup_image): Call it.
9440
9441 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9442 (previous_help_echo): New.
9443 (XTread_socket): Generate help event with nil message when
9444 leaving a region with help-echo.
9445 (note_mouse_highlight): Handle `help-echo' over text.
9446 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9447 CirculateRequest.
9448 (clear_mouse_face): Don't clear if tooltip is shown.
9449 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9450 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9451
9452 * keyboard.c (Vshow_help_function): New.
9453 (read_char): Use it.
9454
94551998-11-03 Gerd Moellmann <gerd@gnu.org>
9456
9457 * xfns.c (x_create_tip_frame): New.
9458 (Fx_show_tip): New.
9459 (Fx_hide_tip): New.
9460
9461 * xterm.c (x_destroy_window): Handle case that we don't have
9462 a widget.
9463
9464 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9465 to full_width_p. Add internal_border_p.
9466
94671998-11-02 Gerd Moellmann <gerd@gnu.org>
9468
9469 * xterm.c (note_mode_line_highlight): Check the charpos of
9470 the glyph under the mouse pointer before accessing text
9471 properties at that position.
9472
94731998-11-01 Gerd Moellmann <gerd@gnu.org>
9474
9475 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9476
9477 * xdisp.c (auto-raise-toolbar-buttons): New.
9478 (build_desired_toolbar_string): Handle the flag.
9479 (toolbar-button-margin): New.
9480 (toolbar-button-relief): New.
9481 (build_desired_toolbar_string): Use margin and relief.
9482
9483 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9484 for FreeBSD.
9485 (note_mode_line_highlight): New.
9486 (note_mouse_highlight): Call it.
9487
94881998-10-31 Gerd Moellmann <gerd@gnu.org>
9489
9490 * s/freebsd.h (NARROWPROTO): New.
9491
9492 * xdisp.c (display_string): New parameter face_string.
9493 (display_mode_element): When displaying a symbol with a string
9494 value, use text properties from the symbol's default value, maybe.
9495
9496 * xrdb.c (x_load_resources): Add font defaults for menus and
9497 dialogs.
9498
94991998-10-30 Gerd Moellmann <gerd@gnu.org>
9500
9501 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9502
95031998-10-29 Gerd Moellmann <gerd@gnu.org>
9504
9505 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9506 produced for characters with codes < 32 under certain
9507 circumstances.
9508
9509 * xdisp.c (redisplay_window): Handle values of PT in front
9510 of invisible, intangible text.
9511 (try_window_id): Set overlay_arrow_seen to zero before
9512 displaying lines.
9513 (display_mode_element): Assign to glyphs written for a mode
9514 line spec `%x' as object the Lisp format string, as position
9515 the position of the `%' in that string.
9516 (display_string): If displaying a C string, optionally get
9517 the face to use from a Lisp string.
9518
9519 * xterm.c (expose_window_tree): Include mode line height.
9520
9521 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9522
95231998-10-27 Gerd Moellmann <gerd@gnu.org>
9524
9525 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9526 over mode line.
9527
95281998-10-26 Gerd Moellmann <gerd@gnu.org>
9529
9530 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9531
9532 * xdisp.c (redisplay_window): If mode line height has changed,
9533 arrange for a thorough immediate redisplay using the correct mode
9534 line height.
9535 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9536
9537 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9538 (CURRENT_MODE_LINE_HEIGHT): New.
9539 (DESIRED_MODE_LINE_HEIGHT): New.
9540
9541 * keyboard.c (make_lispy_event): Add string and string position
9542 info to mouse-click events.
9543 (read_key_sequence): Handle `local-map' property of mode line
9544 strings.
9545
9546 * keyboard.h (POSN_STRING): New.
9547
95481998-10-25 Gerd Moellmann <gerd@gnu.org>
9549
9550 * dispnew.c (mode_line_string): Mew.
9551
9552 * xterm.c (xt_action_hook): New.
9553 (x_create_toolkit_scroll_bar): Add action hook.
9554 (xm_scroll_callback): Implement dragging.
9555
9556 * keyboard.c (Qend_scroll): New.
9557 (scroll_bar_parts): Add it.
9558
9559 * termhooks.h (scroll_bar_end_scroll): New.
9560
9561 * xterm.c (XTread_socket): Bug fix.
9562
95631998-10-24 Gerd Moellmann <gerd@gnu.org>
9564
9565 * xdisp.c (redisplay_window): Finish scroll bars after
9566 redisplaying toolbar.
9567
9568 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
9569 (syms_of_keyboard): Add Qbottom.
9570
9571 * termhooks.h (scroll_bar_to_top): New.
9572 (scroll_bar_to_bottom): New.
9573
9574 * xdisp.c (redisplay_window): Always resize toolbar window if
9575 auto_resize_toolbar_p is non-zero.
9576 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
9577 (window_box): New.
9578 (window_box_height): New.
9579 (window_box_width): New.
9580 (window_box_left): New.
9581 (window_box_right): New.
9582 (window_box_edges): New.
9583
95841998-10-23 Gerd Moellmann <gerd@gnu.org>
9585
9586 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
9587 XawScrollbarSetThumb in FreeBSD.
9588 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
9589 to true.
9590
9591 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
9592 is out of range.
9593
9594 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
9595 (x_term_init): Initialize it.
9596
9597 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
9598
9599 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
9600 cursor.
9601
96021998-10-22 Gerd Moellmann <gerd@gnu.org>
9603
9604 * keyboard.c (make_lispy_event): Handle scroll_bar_click
9605 differently when using toolkit scroll bars.
9606
9607 * xterm.c (x_send_scroll_bar_event): New.
9608 (x_scroll_bar_to_input_event): New.
9609 (xaw3d_scroll_callback): New.
9610 (xaw3d_jump_callback): New.
9611 (xm_scroll_callback): New.
9612 (x_toolkit_scroll_p): New.
9613 (XTread_socket): Handle scroll bar client message.
9614 (x_term_init): Initialize Xatom_Scrollbar.
9615 (x_scroll_bar_create): Set cursor.
9616 (xm_scroll_callback):
9617 (x_create_toolkit_scroll_bar): New.
9618 (x_set_toolkit_scroll_bar_thumb): New.
9619 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
9620 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
9621
9622 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
9623
96241998-10-21 Gerd Moellmann <gerd@gnu.org>
9625
9626 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
9627 (XTread_socket): Don't handle mouse button events for scroll bars
9628 if using toolkit scroll bars.
9629 (XTset_vertical_scroll_bar): Set thumb size and position for
9630 Athena scroll bar.
9631
9632 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
9633
9634 * xterm.c (XTread_socket): Dispatch expose event to widget
9635 if using toolkit scroll bars.
9636 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
9637 (x_scroll_bar_create): Create and show a scroll bar widget
9638 if using toolkit scroll bars.
9639 (x_scroll_bar_move): Handle tookit scroll bars.
9640
9641 * Makefile.in (LIBW): Use Xaw3d if present.
9642
9643 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
9644 (HAVE_XAW3D): New.
9645
9646 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
9647 (HAVE_XAW3D): New.
9648
9649 * xterm.c (XTset_vertical_scroll_bar): Correct position of
9650 right vertical scroll bar.
9651
96521998-10-20 Gerd Moellmann <gerd@gnu.org>
9653
9654 * xfns.c (xpm_load): Support reading XPM images from string
9655 buffers containing data in the same format as an XPM file.
9656 Support `:color-symbols'.
9657 (xpm_format): Add `:data'.
9658 (xpm_keyword_index): Add XPM_DATA.
9659 (syms_of_xfns): Add `:color-symbols'.
9660 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
9661 (xpm_valid_color_symbols_p): New.
9662 (xpm_image_p): Call it.
9663
9664 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
9665 attribute to the image if item is not enabled.
9666
9667 * xfns.c (x_laplace): New.
9668 (x_laplace_read_row): New.
9669 (x_laplace_write_row): New.
9670 (lookup_image): Handle common image attributes here. New
9671 attribute `:algorithm'.
9672
9673 * xfaces.c (clear_face_cache): Call clear_image_cache.
9674
9675 * xterm.c (x_inverted_image_mask): Removed.
9676 (x_draw_image_foreground_1): New.
9677 (x_draw_image_glyph_string): Draw images with mask to a temporary
9678 pixmap to reduce flickering.
9679
9680 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
9681 (display_toolbar_line): Remove parameter `margin'.
9682
96831998-10-19 Gerd Moellmann <gerd@gnu.org>
9684
9685 * xdisp.c (toolbar_lines_needed): New.
9686 (auto-resize-toolbars): New.
9687
9688 * xfns.c (cache_image): Correct call to xrealloc.
9689
9690 * dispnew.c (Fset_toolbar_height): Removed.
9691
9692 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
9693 FRAME_MENU_BAR_LINES.
9694
9695 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
9696 instead of FRAME_MENU_BAR_LINES.
9697 (check_frame_size): Ditto.
9698
9699 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
9700 instead of FRAME_MENU_BAR_LINES.
9701 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
9702 (build_frame_matrix): Ditto.
9703 (change_frame_size_1): Ditto.
9704
9705 * frame.h (FRAME_TOOLBAR_LINES): New.
9706 (FRAME_TOP_MARGIN): New.
9707
9708 * window.c (struct save_window_data): Add frame_toolbar_lines.
9709 (Fset_window_configuration): Handle toolbar lines.
9710 (Fcurrent_window_configuration): Save toolbar lines.
9711
9712 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
9713
9714 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
9715
9716 * frame.h (struct frame): Rename top_margin to toolbar_lines.
9717
9718 * xfns.c (x_frame_parms): Add `toolbar-lines'.
9719 (x_set_toolbar_lines): New.
9720
9721 * keyboard.c (cmd_error_internal): Bug fix.
9722
9723 * xterm.c: Remove double include of syssignal.h.
9724
97251998-10-18 Gerd Moellmann <gerd@gnu.org>
9726
9727 * xterm.c (x_toolbar_item): New.
9728 (x_handle_toolbar_click): Use it.
9729 (note_toolbar_highlight): Use it.
9730
9731 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
9732 and toolbar_items_vectors.
9733
9734 * xterm.c (help_echo): New.
9735 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
9736 (x_set_glyph_string_gc): Handle them.
9737 (x_after_update_window_line): Don't do anything in pseudo-windows.
9738 (x_produce_image_glyph): Take image margin and face relief into
9739 account.
9740 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
9741 (x_draw_glyph_string_background): Optimize case when face has
9742 relief.
9743 (x_setup_relief_color): Take frame instead of glyph string
9744 parameter.
9745 (x_draw_relief_rect): New.
9746 (x_draw_glyph_string_relief): Call it.
9747 (x_draw_image_glyph_string_foreground): Handle margin and image
9748 relief.
9749 (x_draw_image_glyph_string_background): Ditto.
9750 (expose_frame): Redraw toolbar window.
9751 (expose_window): Don't draw cursor for pseudo-windows.
9752 (x_y_to_hpos_vpos): Handle pseudo-windows.
9753 (frame_to_window_pixel_xy): New.
9754 (note_mouse_highlight): Call note_toolbar_highlight.
9755 (x_handle_toolbar_click): New.
9756 (note_toolbar_highlight): New.
9757 (show_mouse_face): Change int parameter `hl' to parameter of
9758 type enum draw_glyphs_face. Handle image highlighting.
9759 (XTread_socket): Return a HELP_EVENT input event if help_echo is
9760 non-nil. Use x_handle_toolbar_click.
9761
9762 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
9763
9764 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
9765 IMAGE_BOOL_VALUE.
9766 (parse_image_spec): Handle them.
9767 (image_spec_value): Additional parameter found.
9768 (free_image): Remove image from the vector `images' of the
9769 image cache.
9770 (clear_image_cache): Additional parameter force_p.
9771 (Fclear_image_cache): New.
9772 (x_find_image_file): New.
9773 (xbm_load): Handle `:margin' and `:relief'. Use
9774 x_find_image_file.
9775 (xpm_load): Likewise.
9776 (pbm_load): Likewise.
9777 (jpeg_load): Likewise.
9778 (tiff_load): Likewise.
9779 (gif_load): Likewise.
9780
9781 * keyboard.c (Qhelp_echo): New symbol.
9782 (read_char): Handle `toolbar' and `help_echo' events.
9783 (kbd_buffer_get_event): Handle HELP_ECHO input event.
9784 (make_lispy_event): Handle TOOLBAR_EVENT.
9785 (toolbar_items): New.
9786 (process_toolbar_item): New.
9787 (PROP): New.
9788 (init_toolbar_items): New.
9789 (append_toolbar_item): New.
9790 (read_char_x_menu_prompt): Handle `toolbar' event.
9791 (read_key_sequence): Ditto.
9792
9793 * xfaces.c (Qtoolbar): New.
9794 (realize_basic_faces): Realize `toolbar' face.
9795 (face_at_string_position): Remove parameter modeline_p, add
9796 base_face_id.
9797
9798 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
9799 to read data.
9800
98011998-10-17 Gerd Moellmann <gerd@gnu.org>
9802
9803 * xdisp.c (init_iterator): Replace parameter modeline_p with
9804 base_face_id.
9805 (next_element_from_string): Call get_next_display_element
9806 recursively after handling text properties.
9807 (prepare_menu_bars): Call update_toolbar.
9808 (update_toolbar): New.
9809 (build_desired_toolbar_string): New.
9810 (display_toolbar_line): New.
9811 (redisplay_toolbar): New.
9812 (toolbar_item_info): New.
9813 (redisplay_window): Call redisplay_toolbar.
9814 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
9815
9816 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
9817 window.
9818 (clear_desired_matrices): Ditto.
9819 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
9820 (free_glyphs): Free matrices of toolbar window.
9821 (update_frame): Update toolbar window.
9822 (change_frame_size_1): Take toolbar into account.
9823 (Fset_toolbar_height): New.
9824
9825 * dispextern.h (struct it): Remove member modeline_p, add
9826 base_face_id.
9827 (struct image): Add members relief and margin.
9828 (IMAGE_ASCENT): Include margin in height.
9829
98301998-10-14 Gerd Moellmann <gerd@gnu.org>
9831
9832 * xfns.c (Fclear_image_cache): New.
9833
9834 * xfaces.c (realize_basic_faces): Realize toolbar face.
9835 (face_at_string_position): Remove parameter modeline_p, add
9836 base_face_id.
9837
9838 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
9839
98401998-10-13 Gerd Moellmann <gerd@gnu.org>
9841
9842 * keyboard.c (syms_of_keyboard): Intern `:help'.
9843
98441998-10-12 Gerd Moellmann <gerd@gnu.org>
9845
9846 * xterm.c (note_toolbar_highlight): New.
9847 (note_mouse_highlight): Call it.
9848
9849 * window.c (window_from_coordinates): Additional parameter toolbar_p.
9850 (coordinates_in_window): Handle toolbar window.
9851
9852 * keyboard.c (toolbar_items): New.
9853 (process_toolbar_item): New.
9854 (parse_toolbar_item): New.
9855 (init_toolbar_items): New.
9856 (append_toolbar_item): New.
9857
9858 * dispextern.h (enum toolbar_item_idx): New.
9859 (enum toolbar_item_image): New.
9860
9861 * frame.h (struct frame): Add toolbar-related members.
9862
9863 * xfaces.c (face_at_string_position): Remove assertion that
9864 current_buffer == window's buffer. This is not the case when
9865 called for the toolbar window.
9866
9867 * frame.c (make_frame): Initialize toolbar members.
9868
9869 * alloc.c (mark_object): Mark toolbar data of frames.
9870
9871 * frame.h (struct frame): Add toolbar-related members
9872 toolbar_window, desired_toolbar_items, current_toolbar_items,
9873 desired_toolbar_string, current_toolbar_string,
9874 n_desired_toolbar_items, n_current_toolbar_items. Add
9875 window_height.
9876
9877 * xterm.c (x_after_update_window_line): Don't draw bitmap
9878 areas for pseudo-windows.
9879 (expose_frame): Handle toolbar window.
9880 (expose_window): Don't do cursor stuff for pseudo-windows.
9881
9882 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
9883
98841998-10-11 Gerd Moellmann <gerd@gnu.org>
9885
9886 * frame.c (make_frame): Initialize toolbar_window.
9887
9888 * alloc.c (mark_object): Make the toolbar window.
9889
9890 * dispnew.c (update_frame): Update frame's toolbar_window.
9891 (clear_current_matrices): Likewise.
9892 (clear_desired_matrices): Likewise.
9893 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
9894 (free_glyphs): Free the toolbar window and its matrices.
9895
9896 * frame.h (struct frame): Add toolbar_window.
9897
9898 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
9899 with relief.
9900
99011998-10-10 Gerd Moellmann <gerd@gnu.org>
9902
9903 * dispnew.c (buffer_posn_from_coords): Don't screw up if
9904 window start is not in the range BEGV..ZV.
9905
99061998-10-09 Gerd Moellmann <gerd@gnu.org>
9907
9908 * xdisp.c (try_scrolling): Experimentally handle the case
9909 that scroll-preserve-screen-position is set to `always'.
9910
9911 * window.c (Vscroll_preserve_screen_position): Replacement for
9912 scroll_preserve_screen_position.
9913
99141998-10-08 Gerd Moellmann <gerd@gnu.org>
9915
9916 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
9917 doesn't like it.
9918 * xdisp.c: Ditto.
9919
9920 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
9921
99221998-10-06 Gerd Moellmann <gerd@gnu.org>
9923
9924 * minibuf.c (Fminibuffer_complete_word): Fix computation of
9925 i_byte when prompts are inserted into minibuffers.
9926
9927 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
9928 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
9929 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
9930
99311998-10-04 Gerd Moellmann <gerd@gnu.org>
9932
9933 * xdisp.c (make_cursor_line_fully_visible): New.
9934 (try_scrolling): New.
9935 (redisplay_window): Move scrolling code to try_scrolling.
9936 (make_cursor_line_fully_visible): Handle case of window too small
9937 to show a single line.
9938 (redisplay_window): Case forced window start---use
9939 make_cursor_line_fully_visible.
9940 (redisplay_window): Case cursor movement via current matrix.
9941 If ending up on a partially visible line, make it fully visible
9942 instead of recentering.
9943 (try_scrolling): Additional parameter scroll_smoothly.
9944
9945 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
9946
99471998-09-28 Gerd Moellmann <gerd@gnu.org>
9948
9949 * window.c (window_scroll_pixel_based): Bug fix: vpos used
9950 instead of y-position for scroll-preserved-screen-position.
9951
99521998-09-07 Gerd Moellmann <gerd@gnu.org>
9953
9954 * dispnew.c (update_frame_line): If current row is not enabled,
9955 write the whole line.
9956
99571998-09-06 Gerd Moellmann <gerd@gnu.org>
9958
9959 * lisp.h (HAVE_FACES): Removed.
9960
9961 * dispextern.h (HAVE_FACES): Removed.
9962
9963 * config.in (HAVE_FACES): Removed.
9964
9965 * dispnew.c (HAVE_FACES): Removed.
9966
9967 * xdisp.c (HAVE_FACES): Removed.
9968
9969 * xfaces.c (HAVE_FACES): Removed.
9970
99711998-09-05 Gerd Moellmann <gerd@gnu.org>
9972
9973 * xdisp.c (init_iterator): If face_change_count is non-zero,
9974 free realized faces.
9975
9976 * xfaces.c (free_all_realized_faces): Make it externally visible.
9977 (Finternal_set_lisp_face_attribute): Increment
9978 windows_or_buffers_changed.
9979
9980 * dispnew.c (direct_output_for_insert): Give up if
9981 face_change_count is non-zero.
9982 (direct_output_forward_char): Ditto.
9983
9984 * xfaces.c (face_change_count): New.
9985
99861998-09-04 Gerd Moellmann <gerd@gnu.org>
9987
9988 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
9989 of range.
9990
99911998-09-03 Gerd Moellmann <gerd@gnu.org>
9992
9993 * term.c (Ftty_display_color_p): New.
9994
99951998-09-02 Gerd Moellmann <gerd@gnu.org>
9996
9997 * xfaces.c (Ftty_defined_colors): New.
9998
9999 * xterm.c (x_produce_glyphs): Fix computation of
10000 contains_overlapping_glyphs_p for ASCII.
10001
10002 * dispnew.c (Fshow_cursor): Don't change cursor state while
10003 redisplaying.
10004 (direct_output_for_insert): If a glyph with lbearing or rbearing
10005 is among the new glyphs, set row flag contains_overlapping_glyph_p.
10006
100071998-09-01 Gerd Moellmann <gerd@gnu.org>
10008
10009 * term.c (OUTPUT_IF): Make replacement text have statement form.
10010 (OUTPUT1_IF): Ditto.
10011 (TS_italic_mode, TS_end_italic_mode): Removed.
10012 (TS_bold_mode): Removed.
10013 (TS_underscore_mode, TS_end_underscore_mode): Removed.
10014 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
10015 (TS_enter_reverse_mode): New.
10016 (TS_enter_underline_mode, TS_exit_underline_mode): New.
10017 (TN_magic_cookie_glitch_ul): New.
10018 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
10019 (TS_exit_attribute_mode): New.
10020 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
10021 (TS_set_foreground, TS_set_background): New.
10022 (reset_terminal_modes): Switch colors back to default.
10023 (write_glyphs): Turn face on before writing text, turn it off
10024 afterwards.
10025 (insert_glyphs): Ditto.
10026 (term_init): Initialize new terminal capability variables.
10027 (turn_on_face): Turn a face on.
10028 (turn_off_face): Turn a face off.
10029
10030 * lisp.h (MAKE_GLYPH): Remove test for frame type.
10031 (GLYPH_CHAR): Ditto.
10032 (GLYPH_FACE): Ditto.
10033
10034 * xfaces.c (Vface_tty_color_alist): New.
10035 (face-register-tty-color): New.
10036 (face-clear-tty-colors): New.
10037
10038 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
10039 (struct it): Remove member faces_p since we now always have faces.
10040
100411998-08-31 Gerd Moellmann <gerd@gnu.org>
10042
10043 * dispextern.h (struct face): Add tty appearance flags.
10044
10045 * xdisp.c (init_iterator): Always handle faces.
10046 (extend_face_to_end_of_line): Handle tty frames.
10047
10048 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10049 passed in.
10050
100511998-08-30 Gerd Moellmann <gerd@gnu.org>
10052
10053 * xfaces.c (realize_default_face): Use empty strings to indicate
10054 that the face should use the default foreground/background
10055 color of the terminal. Fill font-related attributes with
10056 appropriate values for tty frames.
10057
10058 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10059
10060 * xfaces.c (realize_default_face): If face `default' is not
10061 yet known, create it.
10062
10063 * frame.c (make_terminal_frame): Call init_frame_faces
10064 unconditionally.
10065
10066 * xfaces.c (init_frame_faces): Make it work for tty frames.
10067 (free_frame_faces): Ditto.
10068 (clear_face_cache): Ditto.
10069 (recompute_basic_faces): Ditto.
10070 (Fframe_face_alist): Ditto.
10071 (free_realized_face): Ditto.
10072 (prepare_face_for_display): Ditto.
10073 (clear_face_gcs): Ditto.
10074 (lookup_face): Ditto.
10075 (smaller_face): Ditto.
10076 (realize_default_face): Ditto.
10077 (realize_face): Ditto.
10078 (realize_face): Dispatch to functions depending on the frame type.
10079 (realize_x_face): X way of realizing faces.
10080 (realize_tty_face): TTY way of realizing faces.
10081
100821998-08-29 Gerd Moellmann <gerd@gnu.org>
10083
10084 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10085 compute it instead.
10086 (lookup_face): Remove local variable unibyte_registry.
10087
100881998-08-22 Gerd Moellmann <gerd@gnu.org>
10089
10090 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10091 1 pixel longer.
10092
10093 * xdisp.c (face_before_or_after_it_pos): Fix computation
10094 of face in buffer.
10095
10096 * editfns.c (make_buffer_string_both): If prompt in buffer,
10097 prevent start > end.
10098
10099 * indent.c (Fvertical_motion): Set current_buffer to window's
10100 buffer if it isn't already.
10101
101021998-08-21 Gerd Moellmann <gerd@gnu.org>
10103
10104 * dispextern.h (GLYPH_DEBUG): Use default 0.
10105
10106 * xdisp.c (it_props): New member `smaller'.
10107 (init_iterator): Initialize it.
10108 (Qsmaller): New.
10109 (push_it): Save value of `smaller' value on the stack.
10110 (pop_it): Restore `smaller' from the stack.
10111 (handle_smaller_prop): New.
10112 (handle_face_prop): Use `smaller' text property to select a
10113 suitable face.
10114
10115 * dispextern.h (SMALLER_PROP_IDX): New.
10116 (struct it): Add member `smaller'.
10117
10118 * xfaces.c (smaller_face): New.
10119
10120 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10121
10122 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10123 total pixel width of window differently.
10124
10125 * xdisp.c (init_iterator): Compute width of mode line differently.
10126
10127 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10128 of bitmap areas.
10129
10130 * window.c (Fsplit_window): Include width of bitmap areas in
10131 window width.
10132 (window_internal_width): Subtract width of bitmap areas from
10133 total width.
10134
101351998-08-18 Gerd Moellmann <gerd@gnu.org>
10136
10137 * xdisp.c: Functions reordered for better readability.
10138
10139 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10140 lbearing.
10141 (update_window_tree): Parameter no_scrolling_p removed.
10142 (update_single_window): Ditto.
10143
10144 * xterm.c (x_get_char_font_and_encoding): Renamed to
10145 x_get_char_face_and_encoding.
10146
10147 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10148 if end of current row reached.
10149
10150 * xterm.c (x_get_glyph_face_and_encoding): New.
10151 (x_get_glyph_overhangs): Call it.
10152
10153 * xdisp.c (Qshow_trailing_whitespace): New.
10154 (Qtrailing_whitespace): New.
10155 (enum prop_handled): New.
10156 (struct props, it_props): New.
10157 (next_overlay_change): New. Works like Fnext_overlay_change
10158 but doesn't use xmalloc.
10159 (handle_stop): Restructured.
10160 (face_before_or_after_it_pos): Case iteration over a string: fix
10161 handling of face before current position.
10162
101631998-08-16 Gerd Moellmann <gerd@gnu.org>
10164
10165 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10166 reallocation matrix if fonts_changed_p.
10167 (update_text_area): Handle glyphs with lbearing.
10168
101691998-08-14 Gerd Moellmann <gerd@gnu.org>
10170
10171 * xdisp.c (struct props): New.
10172 (it_props): New.
10173 (compute_prop_info): New.
10174 (handle_stop): New.
10175
10176 * textprop.c (validate_interval_range): Make it externally
10177 visible.
10178
10179 * dispnew.c (direct_output_for_insert): Remove calls
10180 to compute_stop_pos.
10181
10182 * dispextern.h (struct it): Remove check_charpos,
10183 next_overlay_pos. Add what_changes.
10184
101851998-08-10 Gerd Moellmann <gerd@gnu.org>
10186
10187 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10188
10189 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10190 face_default_registry instead.
10191
10192 * syntax.c (scan_sexps_forward): Set up syntax table before
10193 jumping to initial state label.
10194
101951998-08-09 Gerd Moellmann <gerd@gnu.org>
10196
10197 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10198 >= ZV specially.
10199
102001998-08-08 Gerd Moellmann <gerd@gnu.org>
10201
10202 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10203 ends up in partially visible row, try to scroll. Case forced
10204 window start---handle windows not tall enough to show a single
10205 line.
10206
10207 * window.h (struct window): Member dy renamed vscroll.
10208
10209 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10210 fonts.
10211 (x_draw_stretch_glyph_string): Set clipping if using GC that
10212 hasn't set it yet.
10213
10214 * xdisp.c (redisplay_window): Case forced window start -
10215 don't let cursor end on partially visible row. Use desired
10216 matrix to find a suitable PT if it doesn't appear.
10217 (decode_mode_spec): Merged with 20.2.97.
10218 (try_window_reusing_current_matrix): Give up if old or
10219 new display is vscrolled.
10220 (redisplay_window): Reset vscrolling if forced window start,
10221 or if recentering.
10222
102231998-08-06 Gerd Moellmann <gerd@gnu.org>
10224
10225 * xfaces.c (realize_default_face): Use the fontset name instead of
10226 the alias for the family attribute of the default face because we
10227 can't easily determine a good alias from fontset-alias-alist.
10228 (face_fontset): Use Fquery_fontset to find the fontset.
10229 (font_list): Additional pattern parameter.
10230 (try_font_list): Ditto.
10231 (set_lface_from_font_name): Set face family from font foundry
10232 and family.
10233 (font_list): If family contains a hyphen, build pattern differently.
10234
102351998-08-05 Gerd Moellmann <gerd@gnu.org>
10236
10237 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10238 changed instead of setting the frame garbaged.
10239
10240 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10241 all attribute values. This is wrong if values are unspecified,
10242 i.e. nil.
10243
10244 * xdisp.c (try_window_id): Give up if window start changed.
10245
10246 * xfaces.c (make_realized_face): Store registry as Lisp object.
10247 (load_face_font_or_fontset): Compute registry of a face
10248 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10249 possible.
10250
10251 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10252 differently.
10253
10254 * alloc.c (mark_face_cache): Mark the registry member of faces.
10255
10256 * dispextern.h (struct face): Make registry a Lisp string.
10257
102581998-08-04 Gerd Moellmann <gerd@gnu.org>
10259
10260 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10261 multibyte_p. Handle unibyte text.
10262 (x_append_glyph): Set the multibyte_p flag of glyphs.
10263 (x_produce_image_glyph): Ditto.
10264 (x_append_stretch_glyph): Ditto.
10265 (x_produce_glyphs): Handle unibyte text like ASCII.
10266
10267 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10268 stack.
10269 (pop_it): Restore it.
10270 (face_before_or_after_it_pos): Handle the case that the string or
10271 buffer is unibyte.
10272 (get_overlay_strings): Set the multibyte flag of the iterator if
10273 the new overlay string is multibyte.
10274 (get_glyph_property): Likewise.
10275 (get_next_display_element): Don't check for charset changes in
10276 unibyte text.
10277 (append_space): Compute face differently for unibyte text.
10278 (extend_face_to_end_of_line): Don't return quickly if face has
10279 stipple.
10280
10281 * xfaces.c (load_face_font_or_fontset): Store registry and
10282 encoding of the font in the registry member of the face.
10283 (make_realized_face): Additional parameter `registry'.
10284 (free_realized_face): Free the registry of a realized face.
10285 (face_suitable_for_charset_p): Function form of the macro
10286 with the same name in uppercase.
10287 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10288 (choose_face_font): New parameter unibyte_registry.
10289 (choose_face_fontset_font): Ditto.
10290 (realize_default_face): Remember the registry and encoding of
10291 the specified frame font in Vx_unibyte_registry_and_encoding.
10292 (face_at_buffer_position): Handle unibyte.
10293 (face_at_string_position): Likewise.
10294 (realize_face): New parameter unibyte_registry.
10295 (compute_char_face): Handle the unibyte case.
10296
10297 * dispextern.h (struct glyph): Add bit multibyte_p.
10298 (struct face): New member registry holding the registry and
10299 encoding of the X font of the face.
10300 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10301 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10302 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10303 text.
10304 (struct iterator_stack_entry): Add multibyte_p.
10305
10306 * xdisp.c (string_pos): Use string_char_to_byte.
10307 (char_charset): Removed.
10308
103091998-08-03 Gerd Moellmann <gerd@gnu.org>
10310
10311 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10312 rectangle for a block cursor over an image without a mask.
10313 (x_stretch_block_cursor): Added. Non-zero means don't draw
10314 a block cursor over a stretch as wide as that stretch.
10315 (x_draw_stretch_glyph_string): Use it.
10316 (x_draw_hollow_cursor): Ditto.
10317
10318 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10319 (read_minibuf): Add front-sticky text property for prompt.
10320
10321 * xdisp.c (char_charset): Return charset of a character,
10322 depending on whether or not multi-byte characters are enabled.
10323
10324 * xfaces.c (Fset_face_charset_registry): Removed.
10325 (x_charset_registry): Determine registry from charset plist.
10326
103271998-08-02 Gerd Moellmann <gerd@gnu.org>
10328
10329 * xdisp.c (get_next_display_element): Don't check for charset
10330 changes if multi-byte characters are not enabled.
10331
10332 * xdisp.c (echo_area_display): Use the flush function from the
10333 redisplay interface.
10334 * keyboard.c (detect_input_pending_run_timers): Likewise.
10335
10336 * dispextern.h (produce_*glyphs_hook): Removed.
10337 * term.c (produce_*glyphs): Ditto.
10338 (cursor_to): Remove pixel position parameters.
10339
10340 * dispnew.c: Remove hooks for window-based redisplay, introduce
10341 a redisplay interface structure.
10342
10343 * xterm.c (x_per_char_metric): Return default char metrics if per
10344 char metric exists but contains a zero width. Adobe Courier seems
10345 to contain such characters.
10346
10347 * xdisp.c (compute_line_metrics): Compute the width of rows
10348 without stopping at glyphs with zero width.
10349
103501998-08-01 Gerd Moellmann <gerd@gnu.org>
10351
10352 * xdisp.c (display_mode_line): If nothing was displayed at all,
10353 display a space.
10354 (hscroll_window_tree): Don't subtract 1 from target point if equal
10355 to ZV and window is not the selected window.
10356
10357 * dispnew.c (check_matrix_invariants): Remove check for window
10358 start at BEGV or after newline. This happens in rare cases
10359 intentionally.
10360
103611998-07-31 Gerd Moellmann <gerd@gnu.org>
10362
10363 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10364 (syms_of_xfaces): Add Vface_default_registry.
10365 (x_charset_registry): Use it.
10366
10367 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10368 (redisplay_window): Use it.
10369
10370 * dispnew.c (update_text_area): Handle lbearing of deleted text
10371 by backing up one character.
10372
103731998-07-30 Gerd Moellmann <gerd@gnu.org>
10374
10375 * dispnew.c (adjust_glyph_matrix): Use a different check to
10376 decide to do nothing.
10377
10378 * xfaces.c (face_at_string_position): Additional parameter
10379 mode_line_p. If non-zero, merge with the mode line face
10380 instead of the default face.
10381 * dispextern.h (struct it): Add mode_line_p.
10382 * xdisp.c (init_iterator): Set it.
10383 (compute_face_in_string): Use it.
10384 (face_before_or_after_it_pos): Handle strings.
10385 (get_next_display_element): Don't look for relief end in C strings.
10386 (next_element_from_string): Deliver string position instead of
10387 buffer position.
10388
10389 * xterm.c (x_flush): Flush X output buffer.
10390 (XTflash): Use it.
10391
10392 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10393 Allow strings as face names.
10394
10395 * xfns.c (forall_images_in_image_cache): Check that frame is
10396 alive.
10397
10398 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10399 it's also called from x_destroy_window. Since this function is
10400 called from X, freeing stuff allocated with xmalloc is dangerous
10401 here, anyway.
10402
10403 * xfaces.c (free_realized_faces): Don't clear current matrices
10404 of a frame being destroyed.
10405
10406 * frame.c (make_frame): Call set_window_buffer instead of
10407 Fset_window_buffer.
10408
10409 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10410 with an additional argument specifying whether or not hooks may
10411 be called.
10412 (Fset_window_buffer): Call it.
10413
10414 * dispnew.c (clear_desired_matrices): Check that frame has
10415 a valid root window before clearing matrices in the window tree.
10416 (clear_current_matrices): Ditto.
10417 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10418 vchild are valid windows if not nil.
10419
10420 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10421 for :inverse-video.
10422 (Finternal_set_lisp_face_attribute): Ditto.
10423 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10424 (Finternal_get_lisp_face_attribute): Ditto.
10425 (Finternal_lisp_face_attribute_values): Ditto.
10426 (syms_of_xfaces): Define the symbol `:reverse-video'.
10427
10428 * xdisp.c (get_glyph_property): Renamed from
10429 fill_iterator_from_glyph_property.
10430 (next_element_from_buffer): Handle case that no `glyph' property
10431 was found correctly.
10432 (display_line): Extend face to end of line only if we have faces.
10433
104341998-07-29 Gerd Moellmann <gerd@gnu.org>
10435
10436 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10437 additional window argument.
10438
10439 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10440 set_iterator_to_previous_visible_line_start.
10441 (reseat_at_next_visible_line_start): Likewise.
10442 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10443 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10444 (compute_face_in_buffer): Renamed from
10445 compute_face_at_iterator_position.
10446 (compute_face_in_string): Renamed from
10447 compute_face_at_iterator_string_position.
10448 (get_space_width): Renamed from get_iterator_space_width.
10449 (next_overlay_string): Renamed from
10450 set_iterator_to_next_overlay_string.
10451 (get_overlay_strings): Renamed from
10452 get_overlay_strings_at_iterator_position.
10453 (restore_overlay_strings): Renamed from
10454 setup_overlay_strings_from_glyph_pos.
10455 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10456 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10457 (init_to_row_start): Renamed from init_iterator_to_row_start.
10458 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10459
10460 * xterm.c: Merge with 20.2.97.
10461 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10462
10463 * dispextern.h (struct glyph): Replace text_pos position with
10464 simple charpos.
10465
10466 * xdisp.c (this_line_start_pos): Use struct text_pos.
10467 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10468 (enum move_it_result): Renamed from move_iterator_result.
10469 (string_pos_nchars_ahead): Compute text_pos in a string from a
10470 known text_pos plus a character delta.
10471 (string_pos): Compute text_pos in string from charpos.
10472 (c_string_pos): Likewise for a C string.
10473 (number_of_chars): Return number of characters in a possibly
10474 multi-byte C string.
10475 (check_it): Renamed from check_iterator. Check that charpos and
10476 bytepos are in sync.
10477 (push_it): Renamed from save_iterator_settings.
10478 (pop_it): Renamed from restore_iterator_settings.
10479 (move_it_.*): Renamed from move_iterator_.*.
10480 (charset_at_position): Take charpos/bytepos into account.
10481 (back_to_previous_line_start): Set iterator to previous line start.
10482 (forward_to_next_line_start): Set iterator to next line start.
10483 (back_to_previous_visible_line_start): Renamed from
10484 move_iterator_previous_visible_line_start.
10485 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10486 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10487 Handle charpos/bytepos.
10488 (compute_face_at_iterator_position): Handle charpos/bytepos.
10489 (compute_face_at_iterator_string_position): Likewise.
10490 (get_iterator_space_width): Likewise.
10491 (load_overlay_strings): Likewise.
10492 (get_overlay_strings_at_iterator_position): Likewise.
10493 (reseat_iterator): Take a text_pos position argument.
10494 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10495 bytepos.
10496 (init_iterator): Take additional bytepos parameter.
10497 (reseat_iterator_to_string): Handle charpos/bytepos.
10498 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10499 (next_element_from_string): Handle charpos/bytepos.
10500 (next_element_from_c_string): Likewise.
10501 (fill_iterator_from_glyph_property): Likewise.
10502 (next_element_from_buffer): Likewise.
10503 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10504 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10505 (move_it_to): Likewise.
10506 (move_it_vertically_backward): Likewise.
10507 (move_it_vertically): Likewise.
10508 (move_it_by_lines): Likewise.
10509 (hscroll_window_tree): Likewise.
10510 (redisplay_internal): Likewise.
10511 (set_cursor_from_row): Likewise.
10512 (redisplay_window): Likewise.
10513 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10514 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10515 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10516 (try_window_id): Handle charpos/bytepos.
10517 (Ftrace_redisplay_toggle): Return Qnil.
10518 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10519 (insert_left_trunc_glyphs): Likewise.
10520
10521 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10522 do a real merge).
10523 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10524 (increment_glyph_row_buffer_positions): Ditto.
10525 (copy_glyph_row_contents): Ditto.
10526 (check_matrix_invariants): Add additional checks for charpos/
10527 bytepos consistency.
10528 (direct_output_for_insert): Changed for charpos/bytepos.
10529 (buffer_posn_from_coords): Likewise. Put code dealing with
10530 `direction-reversed' in #if 0.
10531
10532 * xterm.h: Merge with 20.2.97.
10533
10534 * frame.h: Merge with 20.2.97.
10535
10536 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10537
10538 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10539 start.
10540 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10541 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10542 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10543 (struct it): Various members renamed from .*pos to .*charpos.
10544 (IT_CHARPOS): Access current buffer character position of an
10545 iterator.
10546 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10547 (IT_STRING_CHARPOS): Access current string character position of
10548 an iterator.
10549 (IT_STRING_BYTEPOS): Access current string byte position of
10550 an iterator.
10551 (globally): Add function prototypes from 20.2.97.
10552
10553 * everywhere: Use P_ instead of PROTO for function prototypes
10554 because everyone else seems to use P_.
10555
10556 * dispextern.h (struct text_pos): Structure describing a charpos/
10557 bytepos position in text.
10558 (BYTEPOS): Access the byte position part of a text_pos.
10559 (CHARPOS): Likewise for the character position.
10560 (SET_TEXT_POS): Set a text_pos from a character and byte position.
10561 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
10562 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
10563 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
10564 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
10565 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
10566 for buffer and string positions.
10567 (struct glyph): Use text_pos.
10568 (struct it): Renamed from display_iterator. Use text_pos.
10569
105701998-07-23 Gerd Moellmann <gerd@gnu.org>
10571
10572 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
10573 pixmap.
10574
105751998-07-21 Gerd Moellmann <gerd@gnu.org>
10576
10577 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
10578 * xterm.c (x_draw_row_bitmaps): Use it.
10579 * dispnew.c (row_equal_p): Ditto.
10580 (update_window_line): Ditto.
10581
10582 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
10583 flag of images.
10584
10585 * dispextern.h (struct image): Removed member loading_failed_p.
10586 It's probably better to have the chance to try to load an image
10587 again.
10588
105891998-07-20 Gerd Moellmann <gerd@gnu.org>
10590
10591 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
10592 at ZV if `indicate-zv-lines' is non-nil.
10593 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
10594
10595 * dispnew.c (row_equal_p): Compare displays_text_p and
10596 ends_at_zv_p flags of rows.
10597 (update_window_line): Ditto.
10598
10599 * buffer.h (struct buffer): New member indicate_zv_lines.
10600
10601 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
10602 (init_buffer_once): New variable `default-indicate-zv-lines'.
10603 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
10604
10605 * xdisp.c (redisplay_window): Don't try moving the cursor
10606 if current glyph row w->last_cursor.vpos isn't enabled.
10607
10608 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
10609
10610 * window.c (Fset_window_vscroll): Allow only negative scroll
10611 values. Others don't seem to make sense, and this way it's easy
10612 to restore a vscroll of zero.
10613
10614 * xterm.c (x_inverted_image_mask): Check that pixmap could be
10615 allocated.
10616 (x_draw_image_glyph_string_background): Don't clip if pixmap
10617 could not be created.
10618
10619 * xfns.c (xbm_load_image_from_file): Check that pixmap could
10620 be created.
10621 (xbm_load): Ditto.
10622 (gs_load): Ditto.
10623
10624 * xterm.c (x_get_glyph_overhangs): Take image and stretch
10625 glyphs into account.
10626
10627 * xfaces.c (realize_default_face): Don't set font family of
10628 the default face from the fontset alias name for `fontset-startup'.
10629
10630 * xfns.c (gs_load): Pass frame's pixel foreground and background
10631 color to the Lisp loader.
10632
106331998-07-19 Gerd Moellmann <gerd@gnu.org>
10634
10635 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
10636 libtiff34.
10637
10638 * configure.in (--with-tiff, HAVE_TIFF): Added.
10639
10640 * config.in (HAVE_TIFF): Added.
10641
10642 * Makefile.in (LIBTIFF): Added.
10643
10644 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
10645
10646 * Makefile.in (LIBJPEG): Added.
10647
10648 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
10649 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
10650 jpeglib.h.
10651
10652 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
10653 where the library is installed in /usr/local/lib, e.g. FreeBSD,
10654 configure must be run with `--x-includes=/usr/X11R6/include:
10655 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
10656
106571998-07-18 Gerd Moellmann <gerd@gnu.org>
10658
10659 * config.in (HAVE_JPEG): Added.
10660
10661 * xfns.c (ct_init): Initialize color table used to map RGB colors
10662 from images to X pixel colors.
10663 (ct_free): Free color table.
10664 (ct_lookup): Look an RGB color up.
10665 (ct_allocated_colors): Get vector of allocated colors.
10666 (pbm_image_p): Test if image specification is a valid PPM
10667 image specification.
10668 (pbm_scan_number): Scan a decimal ASCII number from a file.
10669 (pbm_load): Load a PPM image.
10670
10671 * window.c (Fset_window_vscroll): Adjust glyph matrix if
10672 necessary. Take canonical character units as parameter.
10673 (Fwindow_vscroll): Return canonical character units.
10674
10675 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
10676 w->dy to display height for which glyph rows must be allocated.
10677
106781998-07-17 Gerd Moellmann <gerd@gnu.org>
10679
10680 * xfaces.c (face_at_string_position): Merge in region face
10681 so that it won't overwrite the font in the region.
10682 (face_at_buffer_position): Ditto.
10683 (realize_basic_faces): Don't realize region face.
10684
10685 * dispextern.h (enum face_id): REGION_FACE_ID removed.
10686
10687 * xterm.c (x_set_glyph_string_background_width): Don't let
10688 cursor face extend to end of line.
10689
10690 * xdisp.c (append_space): If adding space of default face,
10691 make sure glyph ist produced with right face.
10692
10693 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
10694 background color of a glyph string.
10695 (x_draw_glyph_string_background): Call it.
10696 (x_draw_glyph_string_bg_rect): Ditto.
10697 (x_draw_stretch_glyph_string): Ditto.
10698
106991998-07-15 Gerd Moellmann <gerd@gnu.org>
10700
10701 * xdisp.c (init_iterator): Initialize it->current_y to the
10702 window's vscroll w->dy.
10703
10704 * window.c (Fwindow_vscroll): Return number of pixels window
10705 is vscrolled smoothly.
10706 (Fset_window_vscroll): Set the number.
10707
10708 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
10709 to_pos in truncated part of a line.
10710
107111998-07-14 Gerd Moellmann <gerd@gnu.org>
10712
10713 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
10714 doesn't fit on the line, truncate it, despite truncate_lines nil.
10715 (display_line): Ditto.
10716
10717 * xfns.c: Experimental support for Ghostscript images.
10718
10719 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
10720 (XTread_socket): React on events from Ghostscript.
10721 (expose_frame): If width or height are zero, redraw entire frame.
10722 (XTread_socket): Call expose_frame after receiving event from
10723 Ghostscript.
10724
10725 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
10726 for Ghostscript support.
10727
10728 * xdisp.c (redisplay_internal): Return quickly if called
10729 recursively.
10730
10731 * alloc.c (NSTATICS): Increased to 1024.
10732
107331998-07-08 Gerd Moellmann <gerd@gnu.org>
10734
10735 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
10736 iterator's glyph row.
10737 (x_produce_stretch_glyph): Call it.
10738 (x_produce_glyphs): Handle `space-width' property; call
10739 x_append_stretch_glyph.
10740
10741 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
10742 property.
10743 (get_iterator_space_width): Determine value of `space-width'
10744 property at iterator's position.
10745 (reseat_iterator): Call it.
10746 (next_element_from_string): Ditto.
10747 (next_element_from_buffer): Ditto.
10748 (init_iterator): Initialize space_width of iterator.
10749 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
10750 moved, but cursor blinks.
10751 (redisplay_internal): Set w->last_cursor_off_p after update.
10752
10753 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
10754 (struct display_iterator): Add new member space_width.
10755
10756 * window.h (struct window): Add last_cursor_off_p.
10757
107581998-07-07 Gerd Moellmann <gerd@gnu.org>
10759
10760 * Saved.
10761
10762 * window.c (Fpos_visible_in_window_p): Case window not up to
10763 date---return nil if iterator hasn't reached position.
10764
107651998-07-06 Gerd Moellmann <gerd@gnu.org>
10766
10767 * xdisp.c (text_outside_line_unchanged_p): Fix case that
10768 overlays have changed.
10769 (redisplay_window): Case cursor movement. Don't try it if
10770 last_cursor.vpos is out of range.
10771
10772 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
10773 way, the display optimization for the line containing the cursor
10774 is used more frequently, esp. when we have a blinking cursor.
10775 (display_line): Don't set this_line_.* variables.
10776
10777 * xterm.c (x_redraw_cursor): Removed.
10778 (x_display_and_set_cursor): Set cursor type depending on
10779 cursor_off_p flag of window.
10780
10781 * dispnew.c (redraw_cursor_hook): Removed.
10782 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
10783 member of the selected window.
10784
10785 * xfaces.c (Fface_font): Added for compatibility with 20.2.
10786
10787 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
10788 Return glyph area under x/y.
10789 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
10790
10791 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
10792 after redisplaying.
10793
107941998-07-05 Gerd Moellmann <gerd@gnu.org>
10795
10796 * xdisp.c (text_outside_line_unchanged_p): Test if changes
10797 are all outside of a line of text.
10798 (redisplay_internal): Use it.
10799
108001998-06-30 Gerd Moellmann <gerd@gnu.org>
10801
10802 * xdisp.c (next_element_from_buffer): After skipping over
10803 invisible text, look for the `glyph' property.
10804 (set_iterator_stop_pos): Ignore check positions in front
10805 of an iterator's current position.
10806
10807 * xterm.c (show_mouse_face): Don't act on rows that don't exist
10808 anymore or which are marked as not having valid contents.
10809
10810 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
10811 realized faces if new attribute value is equal to old value.
10812
108131998-06-29 Gerd Moellmann <gerd@gnu.org>
10814
10815 * xfaces.c (Finternal_make_lisp_face): Increment
10816 lface_id_to_name_size when lface_id_to_name is reallocated.
10817
108181998-06-27 Gerd Moellmann <gerd@gnu.org>
10819
10820 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
10821 as minimum of endpos and overlay_pos.
10822 (load_overlay_strings): Set next_overlay_pos of iterator to
10823 -1 if we don't have to check for more overlay strings.
10824
108251998-05-09 Gerd Moellmann <gerd@gnu.org>
10826
10827 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
10828 do anything if iterator is at ZV because scan_buffer doesn't
10829 work otherwise.
10830
10831 * xterm.c (x_encode_char): Inline it.
10832 (x_get_char_font_and_encoding): Simplified.
10833 (x_per_char_metric): Inline it.
10834
10835 * xterm.c (x_draw_glyph_string_relief): Use clipping.
10836
10837 * xdisp.c (get_next_display_element): Check for end of relief
10838 face moved here from next_element_from_buffer.
10839
10840 * xterm.c (x_produce_image_glyph): Add relief thickness.
10841 (x_produce_stretch_glyph): Ditto.
10842
108431998-05-08 Gerd Moellmann <gerd@gnu.org>
10844
10845 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
10846 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
10847
10848 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
10849 from a glyph property.
10850 (x_produce_glyphs): Use it.
10851
10852 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
10853
10854 * xterm.c (x_produce_image_glyph): Add to current_x only if
10855 in text area.
10856 (x_produce_glyphs): Ditto.
10857
10858 * xdisp.c (display_line): Compute row height from glyphs in
10859 marginal areas.
10860
10861 * xterm.c (x_draw_image_glyph_string_background): Draw
10862 background of an image glyph string.
10863 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
10864 the background of a glyph string.
10865 (x_draw_image_glyph_string_foreground): Draw the foreground of
10866 an image glyph string.
10867 (x_inverted_image_mask): Return the inverted mask of an image.
10868
10869 * xfns.c (x_draw_image): Removed.
10870
10871 * dispextern.h (struct image_type): Remove drawing function.
10872
10873 * xfaces.c (load_face_colors): Swap colors if face is inverse.
10874
10875 * xdisp.c (get_next_display_element): In marginal areas, translate
10876 newlines, tabs, etc. like normal control characters.
10877
10878 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
10879 and color.
10880 (free_realized_faces): Set frame garbaged.
10881
10882 * xfaces.c (syms_of_xfaces): Add defsubr for
10883 internal-lisp-face-attribute-values.
10884
108851998-05-07 Gerd Moellmann <gerd@gnu.org>
10886
10887 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
10888 full.
10889 (x_produce_image_glyph): Set IT->nglyphs to 1.
10890 (x_draw_image_glyph_string): Use inverted mask to draw background.
10891
10892 * dispextern.h (struct image_type): Additional clipping rect
10893 parameters for drawing functions.
10894
10895 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
10896 a glyph string.
10897 (x_draw_image_glyph_string): Use it and pass the rect to the
10898 image drawing function.
10899
10900 * xdisp.c (fill_iterator_from_glyph_property): Use position of
10901 first character with `glyph' property as image position. Set
10902 iterator back to that position as long as the image hasn't been
10903 consumed with set_iterator_to_next.
10904 (set_cursor_from_row): Accept when glyph with given position is
10905 not found in the row. Set cursor x to end of line in that case,
10906 so that we can hscroll.
10907 (redisplay_internal): Correct computation of delta by which
10908 positions have changed in redisplay optimization for cursor
10909 row of selected window.
10910
10911 * xdisp.c (display_line): Remove start_pos.
10912 (display_line): Fix bug preventing display optimization for
10913 cursor line of selected window.
10914 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
10915 instead.
10916
10917 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
10918 (update_text_area): Take glyph pixel width into account
10919 when trying to find a resync point.
10920 (row_equal_p): Compare glyphs in all areas.
10921
109221998-05-06 Gerd Moellmann <gerd@gnu.org>
10923
10924 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
10925
10926 * dispextern.h (struct glyph_row): Use unsigned hash value.
10927
10928 * xdisp.c (display_line): Simplified and made faster by setting
10929 the cursor with set_cursor_from_row.
10930 (set_cursor_from_row): Handle rows of desired matrix.
10931
109321998-05-05 Gerd Moellmann <gerd@gnu.org>
10933
10934 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
10935 with type != CHAR_GLYPH.
10936 (fill_iterator_from_glyph_property): Return void. Set
10937 method to next_element_from_image.
10938 (next_element_from_image): Dummy function for delivering a
10939 single image id.
10940 (set_iterator_to_next): Add method next_element_from_image.
10941 (redisplay_window): When recentering, and cursor vpos is -1
10942 after display, assume middle of window is in first line displayed
10943 in window, and display again.
10944 (fill_iterator_from_glyph_property): Assign image glyph
10945 the position of the first character having the glyph property.
10946
10947 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
10948 * xfns.c (x_draw_image): Use it.
10949 * xterm.c (x_produce_image_glyph): Use it.
10950
10951 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
10952
10953 * Makefile.in: Extraneous #define of LIBXPM removed.
10954
10955 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
10956 (x_fill_stretch_glyph_string): Fill a glyph string from a
10957 stretch glyph.
10958 (x_compute_glyph_string_overhangs): Compute overhangs only
10959 for text glyph strings.
10960 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
10961 (x_draw_glyph_string): Call it.
10962
10963 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
10964 (struct glyph): Add sub-structure for stretchable glyphs.
10965 (GLYPH_EQUAL_P): Compare glyph type and u.val.
10966
10967 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
10968 #ifdef HAVE_FACES.
10969
10970 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
10971
10972 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
10973 setup_iterator_from_glyph_property. Don't do it for terminal
10974 frames.
10975
10976 * xterm.c (x_produce_image_glyph): Produce glyph for image
10977 that can't be loaded.
10978
10979 * xfns.c (lookup_image): If image can't be loaded, set its
10980 width and height so that we can draw a rectangle.
10981 (x_draw_image): Draw a rectangle for images that don't have
10982 a pixmap.
10983 (make_image): Set hash value.
10984 (image_spec_equal_p): Use image_spec_value.
10985
10986 * xterm.c (expose_frame): Don't try to redraw if basic faces
10987 haven't benn realized yet.
10988 (x_draw_image_glyph_string): Fill background only if image
10989 is not as tall as row.
10990
109911998-05-04 Gerd Moellmann <gerd@gnu.org>
10992
10993 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
10994 (LIBX)[HAVE_X11]: Add LIBXPM.
10995
10996 * xfns.c (xpm_image_p): Implementation of image type functions
10997 for XPM.
10998 (xpm_load): Ditto.
10999
11000 * dispextern.h (struct image): Add mask pixmap for XPM.
11001
11002 * xfns.c (x_draw_image): Handle images with masks.
11003
11004 * configure.in: --with-xpm added. Code detecting -lXpm added.
11005
11006 * config.in: Add HAVE_XPM.
11007
11008 * xfns.c (xbm_draw): Removed.
11009 (x_draw_image): Default implementation for drawing images.
11010 (xbm_keyword_index): Remove XBM_DEPTH.
11011 (xbm_format): Remove `:depth'.
11012 (xbm_image_spec_from_file): Removed to reduce consing.
11013 (xbm_load_image_from_file): Added for the same reason.
11014
11015 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
11016 glyph string.
11017 (x_draw_image_glyph_string): Pass ybase to image draw function.
11018
11019 * xfns.c (make_image): Set default baseline.
11020
11021 * xterm.c (x_produce_image_glyph): Compute ascent of image
11022 from its height and baseline percentage.
11023
11024 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
11025 (xbm_format): Add description for `:baseline'.
11026 (xbm_image_spec_from_file): Add keywords from original spec to
11027 result.
11028 (xbm_load): Set baseline of image.
11029 (xbm_image_p): Check range for baseline.
11030
11031 * dispextern.h (struct image): Add member baseline.
11032
11033 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
11034
11035 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
11036
11037 * xdisp.c (get_next_display_element): Do character translations
11038 only if delivering characters.
11039
110401998-05-03 Gerd Moellmann <gerd@gnu.org>
11041
11042 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
11043 DISP_CHARACTER.
11044
11045 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11046 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11047
110481998-05-02 Gerd Moellmann <gerd@gnu.org>
11049
11050 * xfns.c (prepare_image_for_display): Set image timestamp.
11051 (clear_image_cache): Clear images if image's timestamp +
11052 Vimage_eviction_seconds is > now.
11053 (syms_of_xfns): New variables image-eviction-seconds, and
11054 image-types.
11055 (add_image_format): Add to image-types.
11056 (xbm_load): Support new image spec format.
11057 (x_alloc_image_color): Allocate a color for an image.
11058
11059 * dispextern.h (struct image): Add timestamp.
11060
11061 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11062 vectors of bool-vectors.
11063 (xbm_lisp_object_from_file): Build new format image spec.
11064
110651998-05-01 Gerd Moellmann <gerd@gnu.org>
11066
11067 * xfaces.c (init_frame_faces): Initialize image cache.
11068 (free_frame_faces): Free it.
11069
11070 * xterm.c (x_delete_display): Don't free image cache.
11071
11072 * emacs.c (main): Call init_xfns.
11073
110741998-04-30 Gerd Moellmann <gerd@gnu.org>
11075
11076 * alloc.c (mark_object): Mark objects in image cache.
11077
11078 * xfns.c (x_set_internal_border_width): Correct call to
11079 widget_store_internal_border_width.
11080
11081 * widget.c (widget_store_internal_border): Return void.
11082
11083 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11084 void.
11085 (init_x_parm_symbols): Return void.
11086 (x_report_frame_params): Ditto.
11087 (x_set_border_pixel): Ditto.
11088 (syms_of_xfns): Ditto.
11089 (x_destroy_all_bitmaps): Use xfree instead of free.
11090
11091 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11092
11093 * xterm.c (x_term_init): Initialize image_cache of display info.
11094 (x_delete_display): Free image cache.
11095
11096 * xterm.h (struct x_display_info): Add image_cache.
11097
11098 * xfns.c (make_image_cache): Allocate a new image cache.
11099 (free_image_cache): Free an image cache.
11100 (make_image): Allocate an image.
11101 (free_image): Free an image.
11102
11103 * dispextern.h (struct image): Structure describing an image.
11104 (struct image_cache): Structure describing an image cache.
11105
111061998-04-29 Gerd Moellmann <gerd@gnu.org>
11107
11108 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11109 non-zero if iterator is filled with something to return.
11110 (next_element_from_buffer): Immediately return if
11111 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11112 (next_element_from_string): Likewise.
11113
11114 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11115
11116 * dispextern.h (struct glyph): Add pixmap_id.
11117 (display_element_type): Add DISP_PIXMAP.
11118
11119 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11120 malloc/free.
11121
11122 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11123 (clear_face_cache): Call it.
11124
11125 * xterm.c (x_query_font): Don't look at empty font table slots.
11126 (x_compute_min_glyph_bounds): Likewise.
11127 (x_term_init): Initialize font_table to null.
11128 (x_load_font): Change allocation of font_info structures so
11129 that it is possible to free fonts.
11130
11131 * xfns.c (Fx_close_connection): Use xfree instead of free.
11132 Only free fonts from filled font table entries.
11133
11134 * xfaces.c (best_matching_font): Support use of scalable fonts.
11135 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11136
11137 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11138 and resy.
11139 * xterm.c (x_term_init): Compute resx and resy.
11140
11141 * xfaces.c (split_font_name): Don't reject scalable fonts.
11142
11143 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
11144 in #if 0.
11145
11146 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11147 point size cannot be determined.
11148
11149 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11150 width over all fonts on a frame.
11151 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11152 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11153 macros.
11154
11155 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11156 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11157 (x_load_font): Use x_compute_min_char_bounds.
11158
11159 * xterm.h (struct x_display_info): New members smallest_char_width
11160 and smallest_font_height.
11161
111621998-04-28 Gerd Moellmann <gerd@gnu.org>
11163
11164 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11165 the same name if GC of face is zero.
11166
11167 * dispextern.h (struct face): Member non_ascii_gc removed.
11168
11169 * xterm.c (x_get_char_font_and_encoding): Return face's font
11170 for characters < 0177 in default face. Prepare face for
11171 display before returning it.
11172 (x_produce_glyphs): Use it->charset.
11173 (x_get_char_font_and_encoding): Simplified.
11174 (x_encode_char): Remove parameter `font'.
11175
11176 * xfaces.c (choose_face_font): If registry from charset symbol
11177 doesn't contain a `-', make it a pattern by appending "*-*".
11178
11179 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11180 glyph_check_pos computation to character boundary.
11181
111821998-04-27 Gerd Moellmann <gerd@gnu.org>
11183
11184 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11185
11186 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11187 ASCII face for a given Lisp face id.
11188
11189 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11190 account.
11191 (reseat_iterator): Set glyph_check_pos. Handle case where
11192 new position is < original position.
11193 (check_iterator_glyph_property): Handle glyph property in strings.
11194 (next_element_from_string): Call above function.
11195 (next_element_from_display_vector): Handle faces in glyphs.
11196 (get_next_display_element): Set face_id of glyphs for
11197 control chars to zero.
11198
11199 * Makefile.in (term.o): Add dependency on dispextern.h.
11200
11201 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11202 (display_line): Handle marginal areas.
11203 (move_iterator_in_display_line_to): Likewise.
11204
11205 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11206
11207 * xfaces.c (face_at_buffer_position): Don't merge with nil
11208 text property.
11209 (face_at_string_position): Ditto.
11210
11211 * dispextern.h (struct display_iterator): Use a stack of saved
11212 values instead of saving check positions etc. individually.
11213
11214 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11215 maybe pop the iterator's stack.
11216 (save_iterator_settings): Push a value on iterator's stack.
11217 (get_overlay_strings_at_iterator_position): Use it.
11218 (restore_iterator_settings): Pop the stack.
11219 (set_iterator_to_next_overlay_string): Use it.
11220
11221 * xfaces.c (try_font_list): Use alternative font families.
11222
112231998-04-26 Gerd Moellmann <gerd@gnu.org>
11224
11225 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11226 font selection matches fonts.
11227 (Fface_font_sort_order): Return the font sort order.
11228 (best_matching_font): Find best matching font based on sort order.
11229 (cmp_font_names): Sort by given sort order.
11230
11231 * dispextern.h (struct display_iterator): New member faces_p.
11232 * xdisp.c (init_iterator): Initialize it->faces_p.
11233 (compute_face_at_iterator_string_position): Use it.
11234 (compute_face_at_iterator_position): Use it.
11235 (init_iterator): Use it.
11236 (display_mode_line): Ditto.
11237
11238 * xdisp.c (get_next_display_element): Put code choosing a face
11239 when the charset changes in #ifdef HAVE_FACES.
11240
11241 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
11242 lookup_face_for_charset.
11243
11244 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11245 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11246
112471998-04-25 Gerd Moellmann <gerd@gnu.org>
11248
11249 * xfaces.c (best_matching_font): Return the name of the best
11250 matching font in an array of font_name structures.
11251 (choose_face_font): Use it.
11252 (choose_face_fontset_font): Use it.
11253 (find_best_weight_font): If final font found has same weight as
11254 the font we started with, return the original font because it is a
11255 better match for the resolution of the display.
11256 (find_best_slant_font): Likewise.
11257 (merge_face_vector_with_property): Check more invalid attribute
11258 values.
11259 (lface_suitable_for_charset_p): Replaced by a macro with the same
11260 name in upper-case.
11261
112621998-04-24 Gerd Moellmann <gerd@gnu.org>
11263
11264 * dispextern.h (struct face): Member
11265 fontset_chosen_for_realization_p removed.
11266
11267 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11268 end of the collision list, so that we find more specific faces
11269 first.
11270 (lookup_face_for_charset): Look up a new face if face->fontset >=
11271 0, and charset != CHARSET_COMPOSITION.
11272
11273 * xfaces.c (split_font_name): Return zero if point size of font
11274 couldn't be computed.
11275 (realize_default_face): Use ASCII font of a fontset to determine
11276 font-related attributes of the default face.
11277 (face_fontset): Return fontset id for face family.
11278 (font_list): Additional parameter font_pattern. If non-nil,
11279 return fonts matching that pattern.
11280
112811998-04-23 Gerd Moellmann <gerd@gnu.org>
11282
11283 * xfaces.c (choose_face_fontset): If new fontset cannot be
11284 constructed, or fontset name cannot be split, return the id of the
11285 standard fontset.
11286
11287 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11288 When Emacs starts, it may be called for the initial frame which
11289 isn't an X frame.
11290
11291 * dispextern.h (struct face): New members foreground_defaulted_p,
11292 background_defaulted_p.
11293 (struct face): Members `mask' and `cache' removed.
11294
11295 * xfaces.c (load_color): Set them.
11296 (free_face_colors): Check them.
11297 (xlfd_point_size): Return -1 if resolution or point size of
11298 font unknown.
11299
11300 * xfaces.c (free_font): Removed.
11301 (load_face_font_or_fontset): Renamed from load_font.
11302 (load_face_font_or_fontset): Use message2 instead of signalling.
11303 (load_color): Likewise.
11304 (load_pixmap): Likewise.
11305
11306 * xterm.h (struct x_display_info): Add screen_dpi.
11307 * xterm.c (x_term_init): Initialize it.
11308 * xfaces.c (xlfd_point_size): Use it.
11309 (split_font_name): Compute numeric XLFD_RESY.
11310 (cmp_font_names): Make fonts with an y-resolution more
11311 similar to that of the frame appear first in the result.
11312
11313 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11314 is set for the face to cache, add it to the end of the collision
11315 list.
11316 (try_font_list): If fonts for given family and registry cannot
11317 be found, first try to keep the registry, and choose a different
11318 family.
11319 (choose_face_font): Allow nfonts == 0.
11320 (try_font_list): Give up if no font matches given registry.
11321
113221998-04-22 Gerd Moellmann <gerd@gnu.org>
11323
11324 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11325 font info id of the face.
11326
11327 * xfaces.c (load_font): Set font_info_id.
11328 (realize_face): Ditto.
11329
11330 * dispextern.h (struct face): Change member font_info to
11331 font_info_id.
11332
11333 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11334 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11335
11336 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11337 isn't ASCII, get the ASCII face before adding a space.
11338 (append_space): Likewise.
11339 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11340 to -1 so that it will compute the right face for the truncation
11341 glyphs.
11342
11343 * xfaces.c (realize_face): Set
11344 face->fontset_chosen_for_realization_p.
11345 (lookup_face_for_charset): If fontset wasn't specified originally
11346 and new charset != CHARSET_COMPOSITION, get a new face for that
11347 charset.
11348
11349 * dispextern.h (struct face): New member
11350 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11351 realize_face has chosen a fontset to display composite characters
11352 for a Lisp face not specifying a fontset.
11353
11354 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11355 face and line already filled here. Don't do anything if current
11356 face hasn't a relief or has a background equal to the frame
11357 background.
11358
11359 * xfaces.c (split_font_name): Additional parameter numeric_p.
11360 Don't compute numeric values if it is non-zero.
11361 (choose_face_fontset): Call split_font_name with numeric_p == 0.
11362 (choose_face_fontset): Print a message if fontset contains a
11363 font whose name cannot be split into fields.
11364
113651998-04-21 Gerd Moellmann <gerd@gnu.org>
11366
11367 * xfaces.c (try_font_list): Try to load a list of fonts,
11368 possibly using less restrictive patterns.
11369 (choose_face_font): Use it.
11370
11371 * xterm.c (x_get_char_font_and_encoding): For charset !=
11372 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11373
11374 * dispextern.h (struct face): New member font_info.
11375
11376 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11377 specifying a fontset as well as those not having a fontset.
11378 (free_font): Make it empty.
11379 (realize_face): Use changed load_font.
11380
11381 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11382 fit for charset, get the right one.
11383
11384 * xfaces.c (load_font): Take frame and name parameter, return
11385 font.
11386 (free_font): Likewise.
11387 (split_font_name): Compute numeric values for height, swidth etc.
11388 (cmp_font_names): Use them.
11389 (find_best_width_font): Ditto.
11390 (find_best_height_font): Ditto.
11391 (find_best_weight_font): Ditto.
11392 (find_best_slant_font): Ditto.
11393 (lface_hash): Add weight, slant, swidth and relief to hash value.
11394 (lface_equal_p): Make it faster.
11395 (lface_from_symbol): Use assq_no_quit.
11396 (Fnote_default_face_changed): Removed.
11397 (cmp_font_names): Use strcmp instead of xstricmp.
11398 (face_charset_registries): Removed.
11399
114001998-04-20 Gerd Moellmann <gerd@gnu.org>
11401
11402 * frame.h (CHECK_FRAME): Give this macro a statement form.
11403 (CHECK_LIVE_FRAME): Ditto.
11404
11405 * xfaces.c (find_best_width_font): Find the best matching font
11406 for a given width.
11407 (find_best_height_font): Likewise for height.
11408 (find_best_weight_font): Likewise for weight.
11409 (find_best_slant_font): Likewise for slant.
11410 (choose_face_font): Use them.
11411 (get_lface_attributes): Always return frame-local face attrs.
11412 (Finternal_merge_in_global_face): Merge local face with
11413 global face attributes.
11414
11415 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11416 Lisp face attributes.
11417
114181998-04-19 Gerd Moellmann <gerd@gnu.org>
11419
11420 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11421 and :italic for compatibility.
11422 (Finternal_set_lisp_face_attribute_from_resource): Handle
11423 :bold and :italic. Handle boolean resource values for
11424 :underline and :italic.
11425
11426 * xfns.c (display_x_get_resource): Make it externally visible.
11427
11428 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11429 If that frame is non-null, return the frame-local face.
11430 (Finternal_make_lisp_face): Additional frame argument.
11431 (lface_attributes): Get face attributes from global and frame-local
11432 definitions.
11433 (Finternal_lisp_face_equal_p): Additional frame argument.
11434 (merge_lisp_face_vector_with_property): Ditto.
11435 (Frealize_basic_faces): Removed.
11436 (Finternal_get_lisp_face_attribute): Additional frame argument.
11437 (Finternal_lisp_face_p): Ditto.
11438 (load_color) [MSDOS]: Removed because it isn't clear how
11439 to do this for MS-DOS.
11440
11441 * xfaces.c (lface_from_symbol): Get global face definition
11442 from face-global-alist.
11443
11444 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11445 as values for :underline and :inverse-video.
11446 (Finternal_set_lisp_face_attribute): Allow nil values.
11447
114481998-04-17 Gerd Moellmann <gerd@gnu.org>
11449
11450 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11451
11452 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11453 (Finternal_make_lisp_face): Add new face to Vall_faces.
11454
11455 * xdisp.c (echo_area_display): Remove code recomputing faces.
11456 (redisplay_internal): Ditto.
11457 (init_iterator): Do it here.
11458
11459 * xfaces.c (choose_face_font): Check that swidth doesn't change
11460 for subusequent attributes.
11461 (xlfd_point_size): Return int.
11462
11463 * xdisp.c (redisplay_internal, echo_area-display): If realized
11464 faces have been cleared, call recompute_basic_faces.
11465
11466 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11467 face_attributes_changed_p.
11468 (remove_all_realized_faces): Remove all realized faces on
11469 all frames.
11470 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11471
11472 * xdisp.c (redisplay_internal): If face attributes have been
11473 changed since the last redisplay, recompute basic faces.
11474 (echo_area_display): Ditto.
11475
11476 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11477
11478 * xfaces.c (min_char_bounds): If face cache not yet present,
11479 don't try to get font dimensions from faces.
11480
11481 * xterm.c (x_frame_mode_line_height): If face cache not present
11482 set, return default height.
11483
11484 * alloc.c (mark_face_cache): Check for null faces. Correct
11485 index bug.
11486
11487 * dispextern.h (struct face): Renamed from struct rface. Member
11488 underline renamed underline_p. Make it a bit-field.
11489
11490 * xfaces.c (init_frame_faces): Allocate face cache.
11491 (free_frame_faces): Free face cache.
11492 (recompute_basic_faces): Realize basic faces only if face cache is
11493 allocated, i.e. after init_frame_faces has been called.
11494
11495 * frame.c (make_frame): Initialze face cache with null.
11496
11497 * xfaces.c (same_size_fonts): Removed.
11498
11499 * xterm.c (x_set_glyph_string_gc): Add post-condition
11500 s->gc != 0.
11501 (x_set_mouse_face_gc): Ditto.
11502 (x_set_mode_line_face_gc): Ditto.
11503
11504 * xfaces.c (realize_default_face): Return int. Value is
11505 zero if frame params don't contain enough information to
11506 realize the default face.
11507 (realize_basic_faces): Ditto.
11508 (init_frame_faces): Realize basic faces.
11509
11510 * xfns.c (x_set_font): First store real font name in frame
11511 parameters, then call recompute_basic_faces.
11512
11513 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11514
115151998-04-16 Gerd Moellmann <gerd@gnu.org>
11516
11517 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11518
11519 * xfns.c (Fx_face_fixed_p): Removed.
11520 (Fx_list_fonts): Moved to xfaces.c.
11521
11522 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11523 face_at_buffer_position. Parameter charset removed; always
11524 compute face for CHARSET_ASCII.
11525 (face_at_string_position): Renamed from
11526 compute_face_at_string_pos. Parameter charset removed; always
11527 compute for CHARSET_ASCII.
11528 (lookup_face_for_charset): Take frame parameter instead of
11529 face_cache.
11530 (lookup_face): Ditto.
11531 (compute_char_face): Renamed from compute_glyph_face.
11532
11533 * xdisp.c (init_iterator): Initialize charset member.
11534 (reseat_iterator_to_string): Ditto.
11535 (get_charset_at_buffer_position): Determine charset at
11536 buffer position in current_buffer.
11537 (reseat_iterator): Call above function.
11538 (compute_face_at_iterator_position): Call
11539 compute_face_at_buffer_pos.
11540 (compute_face_at_iterator_string_position): Call
11541 compute_face_at_string_pos.
11542 (get_face_from_id): Removed.
11543 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11544 Call get_charset_at_buffer_position.
11545 (reseat_iterator): Determine face if charset at pos differs
11546 from iterator's charset.
11547 (reseat_iterator_to_glyph_pos): Removed.
11548
11549 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11550 Determine charset from buffer position.
11551 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11552 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11553
11554 * dispextern.h (struct display_iterator): Add member charset.
11555
115561998-04-15 Gerd Moellmann <gerd@gnu.org>
11557
11558 * xfaces.c (compute_char_face): Removed.
11559
11560 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
11561 with new parameter list.
11562
11563 * xfaces.c (region_face): Removed.
11564 (allocate_face): Removed.
11565 (copy_face): Ditto.
11566 (face_eql): Removed.
11567 (intern_face): Removed.
11568 (clear_face_cache): Removed.
11569 (load_font): Ditto.
11570 (unload_font): Ditto.
11571 (load_color): Ditto.
11572 (unload_color): Ditto.
11573 (new_computed_face): Ditto.
11574 (intern_computed_face): Ditto.
11575 (ensure_face_ready): Ditto.
11576 (merge_faces): Ditto.
11577 (compute_base_face): Ditto.
11578 (merge_face_list): Ditto.
11579 (Fmake_face_internal): Removed.
11580 (Fset_face_attribute_internal): Ditto.
11581 (face_name_id_number): Removed.
11582 (Fframe_face_alist): Ditto.
11583 (Fset_frame_face_alist): Ditto.
11584 (Finternal_next_face_id): Ditto.
11585
11586 * xterm.h (struct x_output): Remove computed_faces, and
11587 param_faces. Remove macros accessing them.
11588
11589 * xfaces.c: Entirely new face implementation added.
11590
115911998-04-11 Gerd Moellmann <gerd@gnu.org>
11592
11593 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
11594 `charpos'.
11595
115961998-04-10 Gerd Moellmann <gerd@gnu.org>
11597
11598 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
11599 scroll bar window to reduce flickering. Clear entire height.
11600
11601 * xdisp.c (move_iterator_vertically_backward): Set iterator's
11602 current_x and hpos to zero after moving to previous line
11603 start.
11604
116051998-04-03 Gerd Moellmann <gerd@gnu.org>
11606
11607 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
11608
11609 * xfaces.c (xlfd_point_size): Compute relative point size of
11610 fonts from font and frame resolution.
11611 (sort_fonts): New function to sort fonts, temporarily setting
11612 font_frame to the frame in effect.
11613 (xlfd_point_size): Take additional frame parameter to be able
11614 to get at the display's resolution.
11615
11616 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
11617 BLACK_PIX_DEFAULT.
11618 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
11619 screen of display.
11620
116211998-03-31 Gerd Moellmann <gerd@gnu.org>
11622
11623 * xfaces.c (choose_face_fontset): Instantiate fontsets.
11624
11625 * fontset.h: Add external declarations for Vfontset_alias_alist
11626 and Vglobal_fontset_alist.
11627
11628 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
11629 (realize_default_face): If frame parameters contain an artificial
11630 font name naming a fontset, set the family of the default face to
11631 the fontset name given by the registry.
11632
11633 * Makefile.in (alloc.o): Add dependency to dispextern.h.
11634
116351998-03-22 Gerd Moellmann <gerd@gnu.org>
11636
11637 * alloc.c (mark_object): Add function prototype. Add cast to
11638 Lisp_Object pointer in call to mark_object for symbol names
11639 because this otherwise gives a warning from gcc 2.8.1.
11640 (mark_face_cache): Mark Lisp objects in realized faces.
11641
116421998-03-19 Gerd Moellmann <gerd@gnu.org>
11643
11644 * frame.h (struct frame): Add member face_cache.
11645
11646 * alloc.c (mark_object): Mark face cache.
11647 (mark_face_cache): Mark Lisp faces in face cache of frame.
11648
11649 * frame.c (make_frame): Initialize face_cache.
11650 (Fdelete_frame): Free it.
11651
116521998-03-18 Gerd Moellmann <gerd@gnu.org>
11653
11654 * xfaces.c: Very first skeleton of functions for face realization,
11655 face merging, face cache etc.
11656
11657 * dispextern.h (struct rface): Realized faces. Will replace
11658 struct face when tested.
11659 (struct face_cache): Realized face caches.
11660
11661 * xdisp.c (init_iterator): Initialize area member of display
11662 iterator.
11663
116641998-03-17 Gerd Moellmann <gerd@gnu.org>
11665
11666 * xterm.c (x_append_glyph): Use it->area to store glyphs.
11667
11668 * dispextern.h (struct display_iterator): New member area.
11669
11670 * xterm.c (note_overwritten_text_cursor): Note when the text
11671 cursor of a window is overwritten.
11672
11673 * xdisp.c (set_cursor_from_row): If PT is not found in the
11674 row, display the cursor at the start of the row.
11675
11676 * dispnew.c (direct_output_forward_char): Call
11677 set_cursor_from_row.
11678
11679 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
11680 position is not in an overlay string, set iterator's position and
11681 method explicitly so.
11682 (set_cursor_from_row): Correct cursor position calculation.
11683 Make it externally visible.
11684 (redisplay_window): Call set_cursor_from_row so that there is only
11685 one place where the cursor position is calculated from a current
11686 row.
11687
11688 * dispextern.h (struct display_iterator): New member
11689 overlay_strings_at_end_processed_p.
11690
11691 * xdisp.c (check_iterator): Perform sanity checks on
11692 display_iterators.
11693 (next_element_from_buffer): Check for overlay strings at ZV.
11694
116951998-03-16 Gerd Moellmann <gerd@gnu.org>
11696
11697 * buffer.c (init_buffer_once): Add left_margin_width and
11698 right_margin_width to buffer_local_flags.
11699
11700 * dispnew.c (margin_glyphs_to_reserve): Function computing
11701 number of glyphs to reserve for a marginal area.
11702 (adjust_glyph_matrix): Call it.
11703 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
11704 is not alive.
11705
11706 * window.c (Fset_window_margins): Allow floats.
11707
11708 * buffer.c (syms_of_buffer): Add buffer-local variables
11709 left-margin-width and right-margin-width. Add defaults
11710 default-left-margin-width and default-right-margin-width.
11711
11712 * buffer.h (struct buffer): New members left_margin_width
11713 and right_margin_width.
11714
11715 * window.c (Fset_window_margins): Make window the last and
11716 optional argument.
11717
11718 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
11719 flag no_marginal_areas_p differently.
11720 (x_clear_end_of_line): Ditto.
11721 (x_draw_glyph_string_relief): Compute width of relief differently
11722 for rows with flag no_marginal_areas_p.
11723
11724 * dispnew.c (update_window_line): Update marginal areas only
11725 for rows that don't have no_marginal_areas_p set.
11726
11727 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
11728 (display_menu_bar): Ditto.
11729
11730 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
11731
11732 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
11733 marginal areas in window-based redisplay.
11734
11735 * dispextern.h (struct glyph_matrix): New members
11736 left_margin_glyphs and right_margin_glyphs.
11737
117381998-03-15 Gerd Moellmann <gerd@gnu.org>
11739
11740 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
11741
11742 * charset.c (non_ascii_char_to_string): Use char type parameters
11743 because the function is used that way from outside. Use unsigned
11744 char internally.
11745
11746 * window.c (change_window_height): Return void.
11747 (make_dummy_parent): Return void.
11748 (init_window_once): Return void.
11749 (syms_of_window): Ditto.
11750 (keys_of_window): Ditto.
11751 (delete_window): Correct return with and without value.
11752
11753 * buffer.c (record_buffer): Return void.
11754
11755 * marker.c (unchain_marker): Return void.
11756
11757 * window.c (unshow_buffer): Return void.
11758 (replace_window): Ditto.
11759 (delete_window): Ditto.
11760
11761 * term.c (delete_glyphs_hook): Void return type.
11762 (ring_bell_hook): Ditto.
11763 (set_terminal_window_hook): Ditto.
11764
11765 * sysdep.c (init_sigio): Return void.
11766
11767 * xterm.c (x_set_window_size): Return void.
11768 (x_calc_absolute_position): Ditto.
11769 (x_set_offset): Ditto.
11770 (x_focus_on_frame): Ditto.
11771 (x_unfocus_frame): Ditto.
11772 (x_make_frame_visible): Ditto.
11773 (x_make_frame_invisible): Ditto.
11774 (x_iconify_frame): Ditto.
11775 (x_destroy_window): Ditto.
11776 (x_wm_set_window_state): Ditto.
11777 (x_wm_set_icon_pixmap): Ditto.
11778 (x_wm_set_icon_position): Ditto.
11779 (x_initialize): Ditto.
11780 (x_error_quitter): Ditto.
11781 (x_destroy_window): Use xfree instead of free.
11782
11783 * keyboard.c (clear_waiting_for_input): Return void.
11784
11785 * xterm.c (x_wm_set_size_hint): Return void.
11786 (x_raise_frame): Ditto.
11787 (refreshicon): Ditto.
11788 (x_error_catcher): Ditto.
11789 (x_clear_errors): Ditto.
11790
11791 * keyboard.c (record_asynch_buffer_change): Return void.
11792
11793